V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  jarlyyn  ›  全部回复第 224 页 / 共 279 页
回复总数  5580
1 ... 220  221  222  223  224  225  226  227  228  229 ... 279  
2015-06-28 23:31:51 +08:00
回复了 system 创建的主题 问与答 买了 MacBook 的 都买延保了吗?
没有。

买macbook本来就是冲工业质量。

如果在正常试用期里都会出质量问题,那就直接把macbook列黑名单了。
2015-06-26 16:29:43 +08:00
回复了 yakczh 创建的主题 PHP 有没有专门做企业官网的 cms
@gdtv 估计用zend加密过了。
2015-06-24 20:57:08 +08:00
回复了 cxshun 创建的主题 程序员 再吐槽 linux 的版本依赖
debian用户路过。
收到监控信息了

回复了

发现楼主的帖子很辟邪……
这回是搞大了。

很多重要客户的网站都在香港。。。。
2015-06-19 17:48:15 +08:00
回复了 yimity 创建的主题 Node.js 网站有边栏,边栏的数据应该怎么查?
不好意思,贴代码贴的太多了,回到主题。

我觉得你的问题不是取数据是异步还是同步的,这是技术细节问题。

你的问题是大量的回调代码破坏了本来能从代码中体现出的逻辑关系。

那我的处理方法就是把他们藏起来。

而页面本身,其实我的理解是你可以处理为

{
‘body’:{'template':'body.ejs','data':'bodydata'}
'widget':{'template':'sidebar.ejs','data':'sidedata'}
}

丢给处理数据的程序,返回

{
‘body’:'<div>....</div>',
'widget':'<div>...</div>',
}

这样的输出字符串,再在前台渲染。


异步获取数据的代码都注册到 'bodydata'和'sidedata'里,取数据库也要,缓存套数据库也好,不干扰主要逻辑。

毕竟我是玩儿nodejs的,不知道这样做是否能符合你的业务需求。
2015-06-19 17:36:59 +08:00
回复了 yimity 创建的主题 Node.js 网站有边栏,边栏的数据应该怎么查?
反正是自己写着玩的,本职工作写代码还是拍黄片为主。

把所有异步的部分做在类似model的类里。

把所有数据注册起来,在控制器里不要过多的关注异步的内容,以列表(顺序)和字典(并列)来代表每一步要做的任务。

逻辑层面要干净,脏东西写在其他代码里,由单元测试来负责正确性。
2015-06-19 17:33:54 +08:00
回复了 yimity 创建的主题 Node.js 网站有边栏,边栏的数据应该怎么查?
表单这样:

module.exports=function(app,web)
{
var Form=web.Form;
Form.registerValidator('loginUser',function(callback,form,name,params){
if (form.hasError){return callback(null,true)}
if (form.get(name)=='webfoss')
{
form.uid=1;
return callback(null,true);
}
return callback(null,false)
});
Form.registerValidator('loginPassword',function(callback,form,name,params){
if (form.hasError){return callback(null,true)}
return callback(null,form.get(name)==123456);
});

Form.registerValidator('userExists',function(callback,form,name,params){
if (form.hasError){return callback(null,true)}
var query={where:{}}
query.where[name]=form.get(name);
web.models.userModel.find(query).success(
function(user){
form._userModel=user;
return callback(null,user?true:false);
}
);
});
Form.registerValidator('passwordExists',function(callback,form,name,params){
if (form.hasError){return callback(null,true)}
var query={where:{}}
query.where[name]=form.get(name);
web.models.passwordModel.find(query).success(
function(password){
form._passwordModel=password;
return callback(null,password?true:false);
}
)
.fail(function(err){
callback(err,false);
});
});

var loginForm=Form.registerForm('login');
loginForm.field('username').required('用户名必填').addValidator('loginUser','用户名错误');
loginForm.field('password').required('密码必填').addValidator('loginPassword','密码错误');
var createUserForm=Form.registerForm('createuser');
createUserForm.field('name').required('姓名必填');
createUserForm.field('username').required('用户名必填').addValidator('isEmail','信箱格式不对').addValidator(['seUnique',web.models.userModel,'username'],'用户名已经被使用');
createUserForm.field('password').required('密码不可为空');
createUserForm.field('passwordrepeat').required('密码不可为空').addValidator(['compare','password'],'密码不一致');

var getUpdateUnquieQuery=function(form,name){return {where:{'id':{'ne':form.get('id')}}};}
var updateUserForm=Form.registerForm('updateuser');
updateUserForm.field('name')
.required('姓名必填');
updateUserForm.field('username')
.required('用户名必填')
.addValidator('isEmail','信箱格式不对')
.addValidator(['seUnique',web.models.userModel,'username',getUpdateUnquieQuery],'用户名已经被使用');
updateUserForm.field('id')
.required('没有ID')
.addValidator('userExists','用户不存在');

var toggleUserStatusForm=Form.registerForm('toggleuser');
toggleUserStatusForm.field('id').required('没有ID').addValidator('userExists','用户不存在');

var setPassword=Form.registerForm('setpassword');
setPassword.field('uid').required('没有ID').addValidator('passwordExists','用户不存在');
setPassword.field('password').required('密码不可为空');
setPassword.field('passwordrepeat').required('密码不可为空').addValidator(['compare','password'],'密码不一致');

var listUserForm=Form.registerForm('listuser','get');
listUserForm.field('id');
listUserForm.field('name');
listUserForm.field('username');
listUserForm.field('sort').addValidator(['isIn',['name','username','id','createdAt','status']]);
listUserForm.field('status')
listUserForm.field('asc');
listUserForm.field('offset');
listUserForm.field('limit');

app.load(__dirname+'/role/forms');
}
2015-06-19 17:32:12 +08:00
回复了 yimity 创建的主题 Node.js 网站有边栏,边栏的数据应该怎么查?
视图里大概是这样的:

module.exports=function(app,web){
var MVC=web.MVC;
MVC.viewpath=__dirname+'/views/';
MVC.registerView('layouts/main');
MVC.registerView('404').setLayout('layouts/main');
//MVC.registerView('layoutName').bindData('dataName');
MVC.registerView('index').setLayout('layouts/main').bindData('homeslider');
//MVC.registerView('viewname').setLayout('layoutViewname').bindData('dataName');
}


然后绑定的数据是这样的

module.exports=function(app,web)
{
var MVC=web.MVC;
var models=web.models;
var _=web.libs.lodash;
var moment=web.libs.moment;
MVC.registerData('homeslider',function(callback,runtime){
callback(null,[
{
href:'#',
src:'/assets/images/air.jpg',
text:'空运',
},
{
href:'#',
src:'/assets/images/boat.jpg',
text:'海运',
},
]);
});
}

自己写着玩的东西,为了比较正常的方式去写一个类似cms的网站。
2015-06-19 17:28:40 +08:00
回复了 yimity 创建的主题 Node.js 网站有边栏,边栏的数据应该怎么查?
@yimity

用异步没啥不好,不想异步么用async搞。

我觉得关键的问题不是在异步上,而是在怎么让这个过程自动化。不要让回调充斥整个代码,打乱逻辑。

我自己给express写了个扩展,最后的话控制器大概是这样的:

app.post('/api/create',Run(
web.IF(Form.isValidated('createuser'))(
'createuser'
),
Http.notFoundIf(Form.isPending('createuser')),
Form.doJsonErrors('createuser')
));
app.post('/api/update',Run(
web.IF(Form.isValidated('updateuser'))(
'updateuser'
),
Http.notFoundIf(
Form.isPending('updateuser'),
Form.isError('updateuser','id')
),
Form.doJsonErrors('updateuser')
));

app.post('/api/toggle',Run(
web.IF(Form.isValidated('toggleuser'))(
'toggleuser'
),
Http.notFoundIf(
Form.isPending('toggleuser'),
Form.isError('toggleuser','id')
),
Form.doJsonErrors('toggleuser')
));
app.post('/api/setpassword',Run(
web.IF(Form.isValidated('setpassword'))(
'setpassword'
),
Http.notFoundIf(
Form.isPending('setpassword'),
Form.isError('setpassword','uid')
),
Form.doJsonErrors('setpassword')
));
app.get('/api/users',Run(
Http.notFoundIfNot(Form.isValidated('listuser')),
MVC.doJsonData('usersjson')
));

app.get('/api/admin_history_recently',Run(
MVC.doJsonData('adminHistoryRecently')
));
app.load(__dirname+'/role/routers');
app.use(Run(Http.doNotFound('Page not found')));
//app.get('/index',Runtime(MVC.doRender('listuser')));
app.use(HttpError(404)(MVC.doRender('404')));
http://jarln.net/site/blogi/89-Retina+Macbook+Pro+2014+mid+%E5%AE%89%E8%A3%85debian+testing+linux+%E6%8A%A5%E5%91%8A

http://jarln.net/site/blogi/91-rmpb+2014+mid+debian+Kworker%E9%AB%98CPU%E5%8D%A0%E7%94%A8%E9%97%AE%E9%A2%98

就是普通的bcm的wifi驱动。

推荐搞个usb有线网卡,有网络啥事都是小事。

另外,工作机不是特别推荐ubuntu,版本更新太快。
2015-06-19 17:16:24 +08:00
回复了 yimity 创建的主题 Node.js 网站有边栏,边栏的数据应该怎么查?
按mvc的话是controller取回所有数据丢给view渲染的。

我自己写过一个简单的东西,把需要的数据绑定到view/widget,渲染的时候事先去取一下。

另外,边栏这种应该是有缓存的吧?
2015-06-17 13:05:18 +08:00
回复了 qq2549112 创建的主题 问与答 有会拍照的 v 友吗,帮我看看这个是如何打光的
如果只是暗淡的话。

楼主还要注意一下合适的曝光补偿以及后期。
2015-06-16 21:49:02 +08:00
回复了 qq2549112 创建的主题 问与答 有会拍照的 v 友吗,帮我看看这个是如何打光的
@qq2549112

我猜没打。

1.8是痰盂或者人精么?全开的话画质较悬啊。

下午6点太晚了,光线不够,对比不足的。

但中午肯定也不行,光太硬,角度也不好。

3-4点吧。

而且模特,化妆,后期,都依次比设备重要。

纯属个人猜测。
2015-06-16 19:20:44 +08:00
回复了 knightdf 创建的主题 职场话题 奇葩公司,你们见过公司域名备案负责人填员工的?
@knightdf

这种事情都要老板自己处理的话,那老板还请人干嘛……
2015-06-16 19:14:37 +08:00
回复了 qq2549112 创建的主题 问与答 有会拍照的 v 友吗,帮我看看这个是如何打光的
@Keinez

确定么……

从哪个方向打的光?

正前方偏上?为什么在地面上没痕迹……

没觉得这光有特地打过啊,这场景也没多少补光的必要。
2015-06-16 19:09:14 +08:00
回复了 qq2549112 创建的主题 问与答 有会拍照的 v 友吗,帮我看看这个是如何打光的
另外根据背景广告牌和模特的透视关系。

基本应该不是中长焦,可能是等效24/35/50的大光圈镜头。

感觉找个漂亮妹子,整个6d/d610/a7之类,上个s35,找个通透点天气的下午,环境好点人少点的地方,提一下对比度和饱和度,再死命修图就对了。
2015-06-16 19:04:27 +08:00
回复了 knightdf 创建的主题 职场话题 奇葩公司,你们见过公司域名备案负责人填员工的?
联系人不填员工难道填老板的么……

总不见得还要老板去搞备案接备案电话么……
2015-06-16 19:02:25 +08:00
回复了 qq2549112 创建的主题 问与答 有会拍照的 v 友吗,帮我看看这个是如何打光的
从背后招牌来看是,是顺光,那基本连补光都没了。

一定要说有光,从墨镜的影子来看,是从拍摄者片上方----基本就是太阳的角度---有光源。

说真的吧,人像3要素还是关键。
正好相反。

比如电脑吧。

一直用3k的,觉得和7k的差距不大。可实际上会发现,7k有7k的道理。

比如房子吧,一直住40w的,会觉得和200w的差距不大,可实际上会发现,200w有200w的道理。

这个社会,有钱人的平均智商可能更高一点,选择面也更广。

所以,一般都是贵的自然有贵的道理。
1 ... 220  221  222  223  224  225  226  227  228  229 ... 279  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2643 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 57ms · UTC 13:12 · PVG 21:12 · LAX 06:12 · JFK 09:12
Developed with CodeLauncher
♥ Do have faith in what you're doing.