viewpl
发表于 29-6-2014 01:35:57
让人抓狂的是:库、框架、工具、模版实在多如牛毛,让人吐血!
Backbone.js: Provides models with key-value binding and custom events, collections, and connects it all to your existing API over a RESTful JSON interface.
AngularJS: A toolset based on extending the HTML vocabulary for your application.
Ember.js: Provides template written in the Handlebars templating language, views, controllers, models and a router.
Knockout: Aims to simplify JavaScript UIs by applying the Model-View-View Model (MVVM) pattern.
Agility.js: Aims to let developers write maintainable and reusable browser code without the verbose or infrastructural overhead found in other MVC libraries.
CanJS: Focuses on striking a balance between size, ease of use, safety, speed and flexibility.
Spine: A lightweight framework that strives to have the most friendly documentation for any JavaScript framework available.
Maria: Based on the original MVC flavor as it was used in Smalltalk - aka "the Gang of Four MVC".
ExtJS: Amongst other things offers plugin-free charting, and modern UI widgets.
Sammy.js: A small JavaScript framework developed to provide a basic structure for developing JavaScript applications.
Stapes.js: A tiny framework that aims to be easy to fit in an existing codebase, and because of its size it's suitable for mobile development.
Epitome: Epitome is a MVC* (MVP) framework for MooTools.
soma.js: Tries help developers to write loosely-coupled applications to increase scalability and maintainability.
PlastronJS: MVC framework for Closure Library and Closure Compiler.
rAppid.js: Lets you encapsulate complexity into components which can be easy used like HTML elements in your application.
Serenade.js: Tries to follow the ideas of classical MVC than competing frameworks.
Kendo UI: Combines jQuery-based widgets, an MVVM framework, themes, templates, and more.
DDD888
发表于 29-6-2014 07:04:46
black_zerg 发表于 28-6-2014 20:50 static/image/common/back.gif
AngularJS 适合交互不是很重的网站,很容易能抽象出Model出来, 用户操作的目的就是改变model,从而再刷一 ...
谢谢回答:)
mason00
发表于 29-6-2014 10:38:31
职场也是一个先有鸡,先有蛋的迷局。很多公司要现成的鸡,但是都不肯孵蛋。而实际上,除非新项目,很多公司用不到这些,只是招人的时候赶时髦,谁还好意思说我要找asp.net web form的程序员?即便公司一大堆web form,甚至vb6,classic asp的东西。
现在把web当作服务/数据提供越来越明显,本来web的设计只是纯文本和可连接来换取任何地方,任何系统都可以展现。自从javascript开始上位,web的功能是越来越强,但是原本那种简单明了的兼容性就弱了。浏览器都在打仗。html5实际上是浏览器厂商共同提出的。真正的w3c对于web的标准化方向xhtml,脱离了实际,基本没有web可以符合完整的xhtml要求。
微软这几年一直很被动,只有在.net 2.0的时候风光了一回。本来很希望学会.net,走遍天下都不怕的。现在是不行了,程序员将越来越陷入厂商混战,平台混战,框架混战,而实际能学的,能用的又有多少呢?关键还是看工作内容啊。。。还有兴趣。。。
mason00
发表于 29-6-2014 10:46:28
ubuntuhk 发表于 28-6-2014 23:58 static/image/common/back.gif
mason这段话我看懂了一半,学到一个新词MVVM(Model-View—ViewModel),搜到这个网页,有个评论挺有趣 ...
从二进制到纯文本我感觉是tcp到http,两种协议服务的需求不同。最早的html/http是讲究纯文本的通用性的。但是后来对html/http的发展产生了更多的需求,通过css/javascript/json/restful这些技术又是可以满足一些新需求的,这样http上就不单是跑纯文本了,纯文本形式描述数据,进而提供服务就出来了。SPDY什么的,可能是想让二进制服务能跑在http上,跨越防火墙。而json主要是能通过javascript直接解析,统一了序列化方面的标准,开销比二进制大一些,但是兼容性也应该更大。
web是比较动态,大家都想做领头羊,又都是推自己的一套理解和做法,而这个纯文本的平台还真能提供这样的舞台给他们表演,蛮不错的。
black_zerg
发表于 29-6-2014 13:57:37
viewpl
发表于 29-6-2014 17:33:39
我已经患上了Javascript学习资料收集强迫症:
Javascript基础
http://eloquentjavascript.net/contents.html
https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript?redirectlocale=en-US&redirectslug=JavaScript%2FA_re-introduction_to_JavaScript
https://developer.mozilla.org/en-US/docs/Web/JavaScript?redirectlocale=en-US&redirectslug=JavaScript
http://yuiblog.com/crockford/
http://javascript.crockford.com/
http://bonsaiden.github.io/JavaScript-Garden/
http://learn.jquery.com/
http://www.ecma-international.org/ecma-262/5.1/
Javascript对象模型
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Details_of_the_Object_Model
http://stackoverflow.com/questions/2107556/how-to-inherit-from-a-class-in-javascript
http://stackoverflow.com/questions/8093057/javascript-inheritance-and-the-constructor-property/
http://stackoverflow.com/questions/12592913/what-is-the-reason-to-use-the-new-keyword-here
http://javascriptweblog.wordpress.com/2010/03/16/five-ways-to-create-obejcts-part-2-inheritance/
Javascript类型
http://jibbering.com/faq/notes/type-conversion/
http://javascriptweblog.wordpress.com/2010/09/27/the-secret-life-of-javascript-primitives/
http://javascriptweblog.wordpress.com/2011/08/08/fixing-the-javascript-typeof-operator/
http://tobyho.com/2011/01/28/checking-types-in-javascript/
http://stackoverflow.com/questions/7893776/the-most-accurate-way-to-check-js-object-type
Javascript创建对象
http://a-developer-life.blogspot.com.au/2011/11/7-ways-to-create-objects-in-javascript.html
http://stackoverflow.com/questions/2709612/using-object-create-instead-of-new
http://stackoverflow.com/questions/14545210/why-prototype-is-undefined
http://www.htmlgoodies.com/beyond/javascript/object.create-the-new-way-to-create-objects-in-javascript.html
http://stackoverflow.com/questions/13040684/javascript-inheritance-object-create-vs-new
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create
http://www.adobe.com/devnet/html5/articles/javascript-object-creation.html
http://stackoverflow.com/questions/6843951/which-way-is-best-for-creating-an-object-in-javascript-is-var-necessary-befor
Javascript Libraries 大全
http://jster.net/
http://todomvc.com/
http://www.jsdb.io/
http://www.nodecloud.org/
Frontend
http://angularjs.org/
http://emberjs.com/
http://backbonejs.org/
http://underscorejs.org
http://knockoutjs.com
http://dojotoolkit.org/
http://getbootstrap.com/
http://embeddedjs.com/
http://handlebarsjs.com/
http://sass-lang.com/
http://lesscss.org/
http://requirejs.org/
http://bower.io/
http://browserify.org/
Backend
http://nodejs.org/
http://gruntjs.com
http://expressjs.com/
http://geddyjs.org/
其他工具
http://dailyjs.com/
http://codepen.io/
http://www.appcelerator.com/
http://www.meteor.com/
http://yeoman.io/
ubuntuhk
发表于 29-6-2014 21:29:22
viewpl 发表于 29-6-2014 01:35 static/image/common/back.gif
让人抓狂的是:库、框架、工具、模版实在多如牛毛,让人吐血!
Backbone.js: Provides models with key-va ...
感觉现在是Web的战国时代,各方神仙各显神通,就看最后谁能突围而出,建立一个一统江山的标准。
ubuntuhk
发表于 29-6-2014 21:31:47
mason00 发表于 29-6-2014 10:38 static/image/common/back.gif
职场也是一个先有鸡,先有蛋的迷局。很多公司要现成的鸡,但是都不肯孵蛋。而实际上,除非新项目,很多公司 ...
未来的世界,归根结底会是web的世界,这个趋势难以阻挡,程序员只有投身web大潮,顺势而为。
mason00
发表于 29-6-2014 21:57:34
ubuntuhk 发表于 29-6-2014 21:31 static/image/common/back.gif
未来的世界,归根结底会是web的世界,这个趋势难以阻挡,程序员只有投身web大潮,顺势而为。
难说,我觉得今后还是平台之争。google I/O 这次推出的adriod L,大力开发smart TV,wearable,Home等各种设备领域。我觉得google对未来多种设备之间的通信有一些蓝图,而这个大架构是基于adriod平台的。web是个开放平台,历来越是兼容好,越是跨平台的技术越是难挣钱,赚大钱的都是封闭技术。比如google的搜索,苹果的ios,微软的各种os,office。web现在流行,主要是公司解决一般业务还是需要一些统一的普遍解决方案。这一块算是企业级的。未来新的利润点,还是在个人移动设备,智能设备上。现在看苹果是主流,google的眼光和设想以及研发实力是最强的。微软历来都是跟风,走得慢一拍但是稳。从windows 8的metro设计来看,大方向是OK的,就是在如何解决desktop的问题上决策有问题,想搞大统一。其实desktop是legacy market了,主要是企业用户的使用习惯不可能向个人用户那样转。搞得很多企业都被迫转向其他平台。因为跟随windows 8和微软的代价太大,同时其他解决方案也不差太多了。
ubuntuhk
发表于 29-6-2014 21:57:40
mason00 发表于 29-6-2014 10:46 static/image/common/back.gif
从二进制到纯文本我感觉是tcp到http,两种协议服务的需求不同。最早的html/http是讲究纯文本的通用性的。 ...
仔细看了一下SPDY,它实际上是在TCP和HTTP之间的一层协议,用于复用单一TCP连接,提过多路的HTTP资源,并且用压缩和SSL传输,提高速度和安全性。但是在应用层是不需要关心这个,只是浏览器和Web server之间的协议(服务器端可以利用SPDY来主动推送资源到客户端,这个会影响一些后端的开发模式)。
ubuntuhk
发表于 29-6-2014 22:06:10
black_zerg 发表于 29-6-2014 13:57 static/image/common/back.gif
angularJS会检查model实例是否有变化,如果变化了,就刷新这部分页面。所以它的实现理念是依赖于Model ...
大概明白你的意思,不过限于自己在Web开发上的经验不足,无法评论太多,现在的AngularJS肯定不是一个完美的可以替代其它框架的终极框架,还是需要配合其它框架来实现复杂的Web应用。
最后两句我很赞同,一个再先进的框架是否应该采用,还是要看公司和团队的能力以及客观条件再决定,不能盲目采用。
ubuntuhk
发表于 29-6-2014 22:07:08
viewpl 发表于 29-6-2014 17:33 static/image/common/back.gif
我已经患上了Javascript学习资料收集强迫症:
Javascript基础
很好的信息收集工作,有需要的适合挑着看,赞一个:good:good
mason00
发表于 29-6-2014 22:16:12
还有一个新闻,Adriod的手机总体卖的比苹果多了,但是app market的利润还是苹果最好。为什么?就是Adriod是开放平台,价格低甚至免费。所以用户消费习惯,采用低价平台的必然没有太高的消费能力,这同样在开发人员中适用。Adriod的app多半以植入广告赚钱,收费app不是第一选择,要收费,也是低廉收费。
web不是一个好赚钱的平台,这和它的设计初衷有关系。web上最赚钱的是广告,这也和它的设计初衷有密切的关系。提供服务赚钱的还是封闭平台好,独此一家,门槛就是付费。web有时候因为太通用,可以视作硬件无关的纯软件平台,这样的平台又是开放的,复制和拷贝的成本就太低了。很多产品,web只是一个用户界面,背后的软硬件完全又是另一套东西。比如google的搜索。
记得Jobs相关视频里谁说过那句话,软件公司最终是要自己设计硬件的。这一点,google和苹果,包括以前的IBM和Oracle都是做得不错的,就连微软,也有intel联盟,做支撑。赚钱的产品通常是软硬件打包销售。Jobs的眼光独到之处,就是能找到硬件和软件最大利润的可能性。这种眼光也推动了软硬件的发展方向,也就是找到市场的需求,甚至创造市场的需求。
唉,想想自己,70%的代码是循环迭代,20%大概是封装,继承,有10%算是在找一些好的解决办法去处理一些tricky的问题,完全没有程序员的感觉啊。。。
cais
发表于 29-6-2014 23:06:56
mason00 发表于 29-6-2014 21:57 static/image/common/back.gif
难说,我觉得今后还是平台之争。google I/O 这次推出的adriod L,大力开发smart TV,wearable,Home等各种 ...
平台太多。作为老程序员,感觉总是慢半拍。
就算是只想专注做后端,这要求也会因为前端平台的不同而有所变化。
jojopig2002
发表于 1-7-2014 12:45:11
强帖留名
shyaka
发表于 1-7-2014 14:38:09
mason00 发表于 29-6-2014 22:16 static/image/common/back.gif
还有一个新闻,Adriod的手机总体卖的比苹果多了,但是app market的利润还是苹果最好。为什么?就是Adriod是 ...
做web确实很少会有“程序员”的感觉,因为web的层次太高了。如果做底层,天天和内存、驱动玩;或者做DSP相关的,比如自己写个数字滤波器,做个音频压缩算法,我觉得这才有感觉。
当然,web做到十分深入之后,也是可以关注到底层的。
可惜澳洲这边真正的“程序员”工作太少了。
ubuntuhk
发表于 1-7-2014 18:01:17
mason00 发表于 29-6-2014 22:16 static/image/common/back.gif
还有一个新闻,Adriod的手机总体卖的比苹果多了,但是app market的利润还是苹果最好。为什么?就是Adriod是 ...
苹果的做法没有别家能模仿得来,再者,乔布斯仙去之后,苹果的红旗还能再抗几年是个未知之数,我相信Google的开放平台生命力会更顽强,直到有个更有革命性的公司领先它。
对于程序员来说,我觉得要做的还是持续学习,Web虽然很难直接赚钱,但是Web已经成为基础设施,不管哪个平台,最后都要在Web这个大舞台上唱戏,在澳洲这个相对孤立的环境,Web应用只会越来越重要。
ubuntuhk
发表于 1-7-2014 18:06:56
shyaka 发表于 1-7-2014 14:38 static/image/common/back.gif
做web确实很少会有“程序员”的感觉,因为web的层次太高了。如果做底层,天天和内存、驱动玩;或者做DSP相 ...
澳洲也有一小部分做工业控制方面、游戏引擎等相对底层的公司,不过这方面的工作机会确实远比中国和美国少。
底层的东西也可以通过Web来封装,提供更广阔的应用。比如最近开始炒概念的智能灯泡,就是一个缩影,通过Wifi和TCP/IP、HTTP进行控制灯泡。
http://www.36kr.com/p/153717.html
ubuntuhk
发表于 1-7-2014 18:07:40
jojopig2002 发表于 1-7-2014 12:45 static/image/common/back.gif
强帖留名
欢迎也来谈谈你的Web开发经验:D:D
shyaka
发表于 1-7-2014 19:23:21
ubuntuhk 发表于 1-7-2014 18:06 static/image/common/back.gif
澳洲也有一小部分做工业控制方面、游戏引擎等相对底层的公司,不过这方面的工作机会确实远比中国和美国 ...
稍微看了下链接,理解的不知道对不对。我感觉web在这里的角色还是上层应用,控制灯泡的开关和亮度的还是硬件和驱动。上层应用只能看到被封装好的接口,然后调用一下。
不过web development也不需要这么底层,因为http本来就不是设计来做这些事的。TCP/IP也只是3/4层的协议,负责数据的传输,并不是用来也干不了其他事。
做网络开发是一件很有趣也很有技术的活。当然,作为“程序员”,个人观点,遇到做更底层的机会就不要放过。就算是只做网络开发,也不能仅仅满足于搞点框架,把网页写出来就完了。浏览器的实现逻辑是什么,HTTP协议到底是咋运行的,这些其实很重要也很有用。可惜澳洲的公司似乎都仅仅看中你会什么框架,合同工嘛,立马能上手,干完滚蛋;P
ubuntuhk
发表于 1-7-2014 19:29:15
shyaka 发表于 1-7-2014 19:23 static/image/common/back.gif
稍微看了下链接,理解的不知道对不对。我感觉web在这里的角色还是上层应用,控制灯泡的开关和亮度的还是硬 ...
嗯,你理解的没错,Web主要是针对封装好的接口做各种各样的上层应用。
我能理解你说的做偏底层的开发那种成就感,我也做过ASM级别的嵌入式开发,不过现在不敢回首了,虽然是很有成就感,但是调试的过程太痛苦了,当然现在大多是C级别的嵌入式开发,比以前会幸福一些。
fu122
发表于 4-7-2014 08:12:43
我最近也在做nodejs的项目。有空交流一下。大家怎么联系啊?
ubuntuhk
发表于 4-7-2014 19:06:21
fu122 发表于 4-7-2014 08:12 static/image/common/back.gif
我最近也在做nodejs的项目。有空交流一下。大家怎么联系啊?
大家主要还是在论坛交流,你是在澳洲的公司做nodejs方面的项目吗?客户端用什么技术?
superopengl
发表于 5-7-2014 04:40:36
cais 发表于 29-6-2014 22:06 static/image/common/back.gif
平台太多。作为老程序员,感觉总是慢半拍。
就算是只想专注做后端,这要求也会因为前端平台的不同而有所 ...
跟得太快也不见得好,太累。可以跟踪观察,看到大家都往那个方向走了,再出手。
superopengl
发表于 5-7-2014 04:42:58
本帖最后由 superopengl 于 5-7-2014 04:10 编辑
shyaka 发表于 1-7-2014 13:38 static/image/common/back.gif
做web确实很少会有“程序员”的感觉,因为web的层次太高了。如果做底层,天天和内存、驱动玩;或者做DSP相 ...
Web是应用需求大,相对于那些底层算法和硬件操作驱动。其实都差不多,硬件驱动就跟硬件借口打交道,算法就跟内存数据原理等打交道,Web就是跟HTTP协议界面等打交道——在一定的规则基础之上实现一些东西去迎合另一种规则,思想哲学都差不多。
superopengl
发表于 5-7-2014 04:45:04
ubuntuhk 发表于 1-7-2014 17:01 static/image/common/back.gif
苹果的做法没有别家能模仿得来,再者,乔布斯仙去之后,苹果的红旗还能再抗几年是个未知之数,我相信Go ...
现在赚钱的不是应用本身,而是通过应用程序capture来的数据。就像银行不是主要靠手续费赚钱,而是凭收集存款放贷赚钱。
superopengl
发表于 5-7-2014 05:08:52
本帖最后由 superopengl 于 6-7-2014 15:51 编辑
最近在公司里做了一个小项目的prototype,MongoDB + Node.js/Express as REST APIs + AngularJS。
优点
[*]数据层、逻辑层、表现层都说JavaScript。
[*]开发速度飞快,尤其AngularJS的表现层,根本无需编译,服务器端修改好了,Browser F5就搞定了(这是个prototype的项目,没有做API version,所以修改JavaScript没有改变URL)。
[*]MongoDB这个NoSQL的东西真是方便呀,没有schema束手束脚。(schema都在REST Service端实现)
[*]正如AngularJS文档所说,基本上使用了AngularJS就不需要jQuery了。
缺点
[*]Node.js的callback方式开发也觉得很有意思,当然在读code的时候会有点困难。
[*]用JetBrains WebStorm,已经非常不错的IDE了。但因为是动态语言,读code时,Go to declaration时,非常不可靠,经常找不到或找到不相关的类库里去。
[*]第一次load各种JavaScript类库(bootstrap.js, angular.js, jQuery.js ...)时需要点时间
有待观望
[*]JavaScript需要靠unit tests确保contract,但感觉现在的testing framework还是太繁琐,代码经常比被测试代码还多。而且dependency code变更后,相应的mock code也得更新。因为JavaScript又不是强类型,所以确保code & testing一致性的工作都要靠程序员自己。这在team开发的时候很要命。不知用typescript开发,运行时翻译成JavaScript的方法会更高效。
[*]都说Node.js速度快,但没在实践中测试过,有待观望。
[*]Biz Logic大部分推到Browser端做,如何保障安全性和代码不被篡改,数据可信还需要研究
[*]跨domain访问JavaScript(CORS)的安全性和便利性的控制
black_zerg
发表于 5-7-2014 20:47:08
superopengl
发表于 6-7-2014 16:46:41
这是high level的层次图
DDD888
发表于 6-7-2014 19:34:34
superopengl 发表于 6-7-2014 16:46 static/image/common/back.gif
这是high level的层次图
你如何处理security?business logic 在 client side很危险,你不怕被hack?