锁定老帖子 主题:GWT用来开发web程序会不会成为趋势
精华帖 (0) :: 良好帖 (12) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-01-05
学过GWT,但现实中公司都还用jQuery,无论项目有多复杂
|
|
返回顶楼 | |
发表时间:2013-01-05
daquan198163 写道 快乐的牛 写道 GWT不会成为趋势,除了前面各位提到的优点和缺点之外,我觉得没必要用Java来“写”Javascript代码。GWT的设计初衷,我就不赞同。
Javascript作为一门动态语言,本身就比静态的Java更灵活、更强大。Javascript的开发效率、敏捷程度,是java不能比的。 Javascript编辑器的支持的确没有Java好,但是并不妨碍,写完之后直接刷新网页,调试效率高。 没必要强求成员提示,我写Java代码就一直按ESC,不让提示,一个方法用过两次就记住了,顶多用个自动补全。 我这人比较懒,离开增量编译IDE的帮助(即时错误提示),我就一行代码也不想写。 快乐的牛 写道 至于Java强大的自动重构功能,对于Javascript更是没有必要。重构的代码,说明机器能自动写,这部分代码基本上是“死的”,需要编辑器帮忙避免重复劳动。但是用Javascript,你没有必要写那么多“死的”代码,如果你写了,说明你没有利用好动态语言的特性,或者你用了一个差劲的类库。 用过python,ruby的,都会有同感吧。 这个理论头一回听说,动态语言不需要重构? 另外js有靠谱的unit test框架么? 貌似测试框架不少,但还是那个问题,没有编译器帮助,写js单元测试也会很痛苦。 话说一个编程语言,一没有好的IDE支持、二没有编译器检查、三不方便重构、四难以单元测试,你拿它来写几万行代码的大项目,这不是开玩笑么? 别跟我提那些js大牛、js牛叉框架,毕竟咱们都是普通人,公司也只能招到一些普通人, 也被跟我说那么多项目不也都这么搞出来了么,我想说你见过哪个项目不是一段IT民工的血泪史啊? 你的观点很没依据。 先说说 js 脚本语言方面的工具: 我这篇博客讲述的很清楚, ide, debug, 测试: http://witcheryne.iteye.com/blog/585226 测试方面我到没怎么用, 其他经常用. IDE: Aptana Studio, 很完善的自动补全, js 的错误检查也很到位。 重构是软肋,不过代码质量主要靠写的人,靠IDE工具提供一个重构功能, 并不能解决代码重构问题。 在说一个普通公司, 普通团队, 普通员工用 GWT。 从09进现在这家公司久开始用GWT, 项目研发+后期维护我一共做了一年半。现在这个项目还在维护中, 持续4年。 当初在用的时候,决定用GWT的同事(也是招我的人)感觉相当舒服。感叹前端也能这么些,开发速度也挺快(少了学js的时间,是挺快)。 后来在维护期, 各种崩溃: 做一次改动编译20分钟, 现场前端报错,错误日志基本都是a,bc,d各种压缩代码。 发布不压缩的版本, 变量名全是java的方法签名, Ljava.lang.String.name 这类代码,看的人吐血。 后面再说一个大项目的问题: 上万行代码? javascript 还真少见上万行代码。如果把上千行的js用java写,估计有可能上万。 再说js这个语言, 从语法角度讲,语法上借鉴c和lisp. 从Lisp借鉴的数据结构这个特性非常方便。 一个Object 可以理解成一个 key-value的ma。 |
|
返回顶楼 | |
发表时间:2013-01-08
接上上面童鞋的发言,偶补充下
js的单元测试和集成工具都有的,可能不太成熟,但做基础的自动化测试还是没问题的(参考jasmine,mocha,testjsdriver,testacular) 另外js的mv*框架强大的双向绑定完全可以做到以model为中心的开发方式,可测试性强 有了这些框架,开发大型应用木有什么问题的——BS:我上个项目js代码量在3w左右,并没用到mv*框架,维护起来一样没问题,个人感觉代码质量,设计等关键还是看人的,工具也只是工具。 最近在做公司的前端选型,后面别说上万行的js,估计在我们项目中出现10w行也是很正常的 |
|
返回顶楼 | |
发表时间:2013-01-08
key232323 写道 接上上面童鞋的发言,偶补充下
js的单元测试和集成工具都有的,可能不太成熟,但做基础的自动化测试还是没问题的(参考jasmine,mocha,testjsdriver,testacular) 另外js的mv*框架强大的双向绑定完全可以做到以model为中心的开发方式,可测试性强 有了这些框架,开发大型应用木有什么问题的——BS:我上个项目js代码量在3w左右,并没用到mv*框架,维护起来一样没问题,个人感觉代码质量,设计等关键还是看人的,工具也只是工具。 最近在做公司的前端选型,后面别说上万行的js,估计在我们项目中出现10w行也是很正常的 具体是怎么做到的呢? 比如你列出的那几个测试框架,你们实际选择的是哪个, 重构怎么做的、模块化怎么做的,或者还有什么其它技巧? |
|
返回顶楼 | |
发表时间:2013-01-08
daquan198163 写道 key232323 写道 接上上面童鞋的发言,偶补充下
js的单元测试和集成工具都有的,可能不太成熟,但做基础的自动化测试还是没问题的(参考jasmine,mocha,testjsdriver,testacular) 另外js的mv*框架强大的双向绑定完全可以做到以model为中心的开发方式,可测试性强 有了这些框架,开发大型应用木有什么问题的——BS:我上个项目js代码量在3w左右,并没用到mv*框架,维护起来一样没问题,个人感觉代码质量,设计等关键还是看人的,工具也只是工具。 最近在做公司的前端选型,后面别说上万行的js,估计在我们项目中出现10w行也是很正常的 具体是怎么做到的呢? 比如你列出的那几个测试框架,你们实际选择的是哪个, 重构怎么做的、模块化怎么做的,或者还有什么其它技巧? 模块化, SeaJS: http://witcheryne.iteye.com/blog/1166331 单元测试: QUnit: http://qunitjs.com/ 对接口做异步测试. |
|
返回顶楼 | |
发表时间:2013-01-08
gmail 的js代码应该过万。
|
|
返回顶楼 | |
发表时间:2013-01-08
看看 Google Wave
http://incubator.apache.org/wave/source-code.html 现在是Apache Wave 这个项目是用GWT写的 |
|
返回顶楼 | |
发表时间:2013-01-08
daquan198163 写道 key232323 写道 接上上面童鞋的发言,偶补充下
js的单元测试和集成工具都有的,可能不太成熟,但做基础的自动化测试还是没问题的(参考jasmine,mocha,testjsdriver,testacular) 另外js的mv*框架强大的双向绑定完全可以做到以model为中心的开发方式,可测试性强 有了这些框架,开发大型应用木有什么问题的——BS:我上个项目js代码量在3w左右,并没用到mv*框架,维护起来一样没问题,个人感觉代码质量,设计等关键还是看人的,工具也只是工具。 最近在做公司的前端选型,后面别说上万行的js,估计在我们项目中出现10w行也是很正常的 具体是怎么做到的呢? 比如你列出的那几个测试框架,你们实际选择的是哪个, 重构怎么做的、模块化怎么做的,或者还有什么其它技巧? 前端模块化我个人认为主要解决好“类系统、对象模型”,“关系依赖和动态加载”,“对象作用域控制”等问题剩余的就和传统的服务端编程语言没什么区别了,也可以做MVC,应用各种设计模式(这点动态语言有优势,很多模式实现起来更简洁),js一样也有很多语言层面的工具,UI方面积累一套成熟的库集成过来就可以了,就是开发技能要求高点而已——不过把这些架子弄好,剩下的搭积木,我觉得比gwt快,也比zk的zul快。 更粗粒度的模块化(比如业务),模块本身只依赖自己需要的web元素,环境相关配置,提供入口参数,再提供接口方法(初始化,输出数据)即可。借助requirejs/seajs这样的很容易做到复用 大家对js貌似都是jquery jquery ui就是前端的大部分内容这个印象?我觉得下面几点也是前端比较热的话题 1. 类系统,模块化,依赖和注入 2. MV*(UI和模型分离) 3. 自动化测试 BTW:js关注点(UI,样式,事件,交互)更少,解决了一些语言层面的历史问题之后,还是很容易集中搞好这些的。 我们选的是testjavascriptdriver + jasmine,和jackins(拼写错?)集成 seajs angular/backbone可选 jquery + ui + plugins 自己写的一些工具库等 |
|
返回顶楼 | |