V2EX runawaygo
 runawaygo 最近的时间轴更新
runawaygo

runawaygo

V2EX 第 10976 号会员,加入于 2011-08-12 00:52:19 +08:00
runawaygo 最近回复了
2014-02-11 11:37:03 +08:00
回复了 sd4399340 创建的主题 Node.js 大家怎么看yeoman
项目是在不断演化的,创建项目只是整个过程当中的一小部分,除非你是不断制作minisite。
所以我一直认为:yeoman是yo这个团队利用grunt和bower搞起来的概念,grunt和bower毫无疑问是神器,yo的用处主要还是生成grunt的配置,因为说实话grunt配置起来也很麻烦。虽然不能解决全部问题,但是还是有用的。
@takwai 前端更多的职责是负责交互逻辑,后端是业务逻辑,没有谁比谁更强大。况且大部分程序员做不好前端,因为根本就没有人机交互的素养,学校也不会教。
我发现很多后端需要被普及一下mvc的编年史,以前在qclub讲过一次,从最早的smalltalk-80体系中的mvc讲到今天精粹的backbone和大红大紫的angular,再到未来奇幻的meteor。

总体来说,mvc本来是客户端的UI组件交互体系,之所以放在了服务器后端,是因为机器性能,浏览器和当时html/css/js的局限性。

现在看来是服务器端mvc是个硕大无比的坑,但是站在当时的角度来看,浏览器才是一个完整app,那么你的web仅仅是一个view而已。

时代改变技术格局。
2014-01-24 14:16:52 +08:00
回复了 Livid 创建的主题 Node.js Node.js 0.12 的性能增强点
@verfino 这跟rails有什么关系?
2014-01-24 11:14:54 +08:00
回复了 Shared 创建的主题 Javascript web app 开发使用哪个框架最好?
@vven 跳转是通过一个统一的navigationController来控制的,基本上就是一个CardView或者tabview。history记录根据当前页面名称啊,每个页面都有一个名称啊。
2014-01-23 23:18:19 +08:00
回复了 Shared 创建的主题 Javascript web app 开发使用哪个框架最好?
@vven WebApp性能问题是就是render和paint两步特别慢,所以首先要减少的是元素显示的数量,然后是元素的层级。还有就是动画用translate3d,避免使用某些css3高级技巧,点击优化什么的。

举2个例子:

1. carousel如果有10个item,那么实际上只有三个元素的display参数不会是none,就是当前显示的item以及prevItem和nextItem。

2. list如果有100个数据,一个屏幕最多能显示8个,那么这个list里面可能只是用9个htmlnode节点去做渲染,最好每一个数据的现实格式是固定的(尤其是固定高度,当然宽度一个般都是固定的)

当然上述两个情况Sencha Touch都帮你做好了。
2014-01-23 22:52:19 +08:00
回复了 Shared 创建的主题 Javascript web app 开发使用哪个框架最好?
@zythum 用jquery的话还是要加一个fastclick框架来快速响应点击,去除因为双击等待判断延迟的300ms
2014-01-23 22:51:20 +08:00
回复了 Shared 创建的主题 Javascript web app 开发使用哪个框架最好?
1. WebApp+PhoneGap(2.0之后移交到Apache改名叫Cordova)

a. Sencha touch首屈一指,我们团队开始的产品1.0-2.0就是选来选取最后落在了ST上。ST提供了直接打包成原生应用的能力,也就是说你不需要Cordova,当然有些接口可能你还是要用Cordova,因为ST提供的接口不完全。当然Sencha的开发模型就RIA来说看起来很2B不能接受,但我发现我后来自己用backbone+zepto,最后得出的结论跟ST差不多。其实这就是成熟化的组件开发模式,以前用wpf或者silverlight的RIA其实也是这个思路,当然代码量肯定略大。

b. jqMobile,怎么说呢,前者1.1以前的版本有好几个性能问题,比如说一开始不用translate3d导致性能慢,不进行点击优化导致响应慢,还有坑爹的属性重新生成html的功能导致页面前渲染缓慢,还要手动的缓存页面,列表加速不行(ST也是到了2.1之后才做了元素复用优化),没有carousel控件(这个控件我写过两边,快速滑动,加速,切换加速,是否切换判定,其实还是挺复杂的),所以都是用iScroll以及他们家的SwipeView和CardView做一些补充。总体来说,虽然你写起来跟jquery很像而且简单,但是会遇到各种性能问题,不知道现在如何了。

c. dojo mobile,这个我用的少,我们在用ST之前有人用DojoMobile开发了一个其他产品,还行,但是跟ST比起来还是有点差距,控件和界面,并且DOJO的MVC体系不如ST的组件形态的MVC来的快。(App开发和桌面开发不同,App开发界面相对简单堆控件,桌面开发就有更多的交互和细节的问题要处理)

上述的问题是,性能的优化会达到一个极限值,我们要做一些图形处理,在canvas上面已经优化到极致了,ios4s以上都是很流畅,但是在android上面就。。。。。。悲剧了。

2. Runtime Titanium
Titanium并不是把js编译成iOS或者android源码,而是在系统中跑一个v8或者spidermonkey,并且做一些jsbinding的工作讲原生层面的东西暴露成js接口,跟nodejs原理类似。当然很多游戏引擎,如unity3d可以用c#,js写,cocos2d-x可以用lua和js写脚本,机制差不多。TI将iOS同Android界面在一定程度上面做了一致性处理,可想而知,各个平台的特殊优势就难以发挥了。还好性能方面不必原生的差太多,那么成本上面也小了很多。

3. 其他
还有些技术是直接将ruby或者c#转化成ios代码的,大部分问题是只支持iOS。所以跟你写objc差不了多少。ThoughtWorks有个理念是逻辑层用js,界面层各自实现什么的。我只能说客户端的工作大部分是UI交互,所以意义也不是很大。

最后说一下我们公司的项目。
一开始是ST+Cordova。
后来TI一路各种坑趟平,完全使用coffeescript替代Javascript。后来太寂寞开始该Ti源代码。
图形层也改成Cocos2d-x,效率奇高。
都是跨平台的技术。有兴趣的可以下载 银天下 这个app玩一下。

介绍一下我们团队吧,我以前微软,后来自己出来创业2次(都因为各种原因跪了),现在在全国最大的贵金属券商-银天下做架构师。
我们团队10+个人,负责公司所有移动端的技术研发以及后端的部分业务,清一色Mac全栈工程师,用coffeescript,ios,android,c++,rails,go等等。WebApp方面我们MobileWebApp我们用backbone+zepto.js,桌面的WebApp我们用angularjs,端到端测试做的也非常全面。大部分后端我们用nodejs,部分使用rails或者java(机器学习方面的东西)。所有好玩有用,新奇的技术我们都会尝试或者使用:)

我们在2014年重点发展移动业务,所以将大力招聘(其实一直在招聘但是因为我们面试比较严格,技术很重要,但是因为我们很多时候要pair programming,所以性格也一样重要)。预计扩充到20-25人。

擦,不知不觉就成了招聘贴了,好吧,继续无节操,希望有兴趣的朋友联系我,如果你是全栈工程师那就最好,如果你希望成为全栈工程师也不错哦。

PS:我们这边的全栈工程师是,自己做交互设计,自己PS,自己写客户端,自己写服务器端,因为有些以前创业,你们懂得。还有个好处就是我们是一家金融企业,IT金融你们懂得。
2014-01-21 13:25:11 +08:00
回复了 zythum 创建的主题 Node.js 写coffee的同学你们知道这两个的区别么?
10+人的团队写了两年的coffeescript,Web前端,nodejs后端,App采用的是Titanium技术,所以也全都使用coffeescript,虽然js是函数第一型的语言,但是工程中类型化更加利于维护,所以无耻的使用coffeescript类型系统。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3092 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 13ms UTC 12:07 PVG 20:07 LAX 05:07 JFK 08:07
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86