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配置起来也很麻烦。虽然不能解决全部问题,但是还是有用的。
2014-01-24 16:40:59 +08:00
回复了 colinxt 创建的主题 JavaScript 好奇为什么web app现在很多都用某种js的框架来开发了?
@takwai 前端更多的职责是负责交互逻辑,后端是业务逻辑,没有谁比谁更强大。况且大部分程序员做不好前端,因为根本就没有人机交互的素养,学校也不会教。
2014-01-24 16:39:07 +08:00
回复了 colinxt 创建的主题 JavaScript 好奇为什么web app现在很多都用某种js的框架来开发了?
我发现很多后端需要被普及一下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   ·   实用小工具   ·   3399 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 56ms · UTC 00:14 · PVG 08:14 · LAX 16:14 · JFK 19:14
Developed with CodeLauncher
♥ Do have faith in what you're doing.