FreeOZ论坛

标题: 我的开源项目Knot.js正式发布,请大家捧场啊 :-) [打印本页]

作者: woodheadz    时间: 14-7-2015 15:00
标题: 我的开源项目Knot.js正式发布,请大家捧场啊 :-)
说起来这个项目一定程度上可以说是诞生于FreeOZ的,所以我也把我推广knot.js的第一帖发在这里 。
两年前我做好knot.js的第一个原型后曾经在Freeoz发帖讨论,在讨论过程中忽然产生了创造CBS的灵感,而CBS可以说是knot.js最大的一项突破。
当时做完支持CBS的第二个原型之后,因为实在喜欢CBS带来的编程体验,我就冒险把它用于我手上的正式项目之中,取得了很好的效果。可惜再后来忙于工作和小孩,再加上拖延症爆发,到今天才把这东西重构完毕,并架设好网站写完文档。

这个项目基于MIT协议发布,官方网站在这里:http://www.knotjs.com

Knot.js并不是简单的“另一个”前端MVVM框架。 比较AngularJS,KnockoutJS等前辈,knot.js有很多创新和突破。下面我简单介绍下knot.js的几大优势:

CBS

CBS是一种全新的前端开发方式。它的名字来自于“Cascading Binding Sheet”, 看起来是不是和“CSS”很像?实际上它的工作方式也和CSS非常相似,熟悉CCS的你几乎不需要多少额外的成本就能学会。

就像CSS把样式从HTML中提取出来使得网页的可维护性得以大幅提高, CBS把混杂在HTML中的数据绑定逻辑提取出来,形成独立的,结构化的CBS块或者CBS文件,让你的HTML和数据绑定逻辑清爽易读。

下图左边是AngularJS的数据绑定配置实例片段,右边是同样功能的CBS化之后的knot.js配置实例片段,knot.js明显清爽很多。随着项目的变大和变复杂,CBS带来的优势将会十分显著。前面说我将完全不成熟的knot.js应用于项目的主要原因就是我实在无法抵挡CBS带来的诱惑, 相信你只要尝试一下CBS也会有类似的感受。


                               
登录/注册后可看大图



自动数据感知

Knot.js的另一项特色是数据自动感知功能。 传统MVVM框架为了实现数据感知(侦测数据变化以修改UI),往往逼迫用户按它的要求和规范编写model/view model,你所熟悉的一切在框架里都变了,甚至一个简单的计时器都得重新学习,全程学习曲线均相当陡峭。

Knot.js则几乎不对你的model/view model做任何要求,哪怕是一个直白的json对象,knot.js也能自动建立双向绑定。你以前所有的知识在knot.js中都有效,只需通过简单地熟悉下Knot.js中寥寥的几个概念,你就能迅速上手。

下图左边是AngularJS的代码片段,右边是使用Knot.js后的代码片段。你应该能发现Knot.js的代码和你平时写的js代码几乎没什么不同。

                               
登录/注册后可看大图



调试器

相信任何一个用过框架的程序猿都有过和框架搏斗的痛苦经历。一个小小的配置错误,就能杀掉你一个下午的时间。 Knot.js希望改变这个现状。所以我模仿了常见的CSS调试器开发了knot.js CBS调试器,使你能够实时监控整个系统内各个HTML元素上的绑定状态。knot.js调试器甚至还提供了CSS调试器常见的鼠标选取元素/元素高亮功能,让你轻易定位自己想要监控的HTML元素。

knot.js调试器基本上把整个系统变成了一个白盒系统,所有的工作细节均能一览无遗。你开发过程中的绝大多数问题都能通过调试器解决。

                               
登录/注册后可看大图



Knot.js还有这些优点



关于Knot.js的详细教程,请访问Knot.js 官网 http://www.knotjs.com
工作中有前端内容的兄弟们,我强烈推你仔细了解一下Knot.js,我相信看完之后你不会觉得是在浪费你的时间。

另外... 另外我最近要换工作了 。
知道布村这边有好的工作机会的弟兄帮忙推荐一下啊,我从前端到后端,从C#, javascript到php,都是一条好枪。如果有不错的中短期contract机会更好,我先谢谢啦!

作者: gobre    时间: 14-7-2015 15:17
支持一下,我现在在用angular,觉得坑很多。 楼主都自己写前端框架了,找工作肯定不在话下
作者: DDD888    时间: 14-7-2015 15:20
gobre 发表于 14-7-2015 14:17
支持一下,我现在在用angular,觉得坑很多。 楼主都自己写前端框架了,找工作肯定不在话下

可以具体说下哪些坑很多?

我好奇
作者: woodheadz    时间: 14-7-2015 15:25
gobre 发表于 14-7-2015 14:17
支持一下,我现在在用angular,觉得坑很多。 楼主都自己写前端框架了,找工作肯定不在话下

花点时间看看我这个?
我就是因为对angularjs非常不满,才开始做这玩意儿的
作者: DDD888    时间: 14-7-2015 15:35
woodheadz 发表于 14-7-2015 14:25
花点时间看看我这个?
我就是因为对angularjs非常不满,才开始做这玩意儿的

请问如何混淆cbs文件啊?
作者: woodheadz    时间: 14-7-2015 15:38
DDD888 发表于 14-7-2015 14:35
请问如何混淆cbs文件啊?

cbs文件只能mini化,不能混淆。
这类前端MVVM框架都有类似的问题。
作者: fenzuan    时间: 14-7-2015 16:24
woodheadz 发表于 14-7-2015 14:38
cbs文件只能mini化,不能混淆。
这类前端MVVM框架都有类似的问题。

看了一下,一无所知,实在太高深了。不知能否借此机会问一下Geek, 我的电脑,用windows8.1的,最近突然会有广告自动弹出,旅游的,卖东西的都有。每天一到两个,关了他们,后面不会出现了。但是好讨厌。请问一下,自已能不能处理这个问题??
作者: woodheadz    时间: 14-7-2015 16:51
fenzuan 发表于 14-7-2015 15:24
看了一下,一无所知,实在太高深了。不知能否借此机会问一下Geek, 我的电脑,用windows8.1的,最近突然会 ...

估计是你装了什么国产的流氓软件了?
把你机器上国产软件全部删掉试试, 什么pps之类的
作者: ubuntuhk    时间: 14-7-2015 16:52
谢谢woodheadz的贡献,CBS,又学到一个新词,找时间试试

打算怎么推广你的框架?本地meetup先推广一下?
作者: woodheadz    时间: 14-7-2015 16:53
ubuntuhk 发表于 14-7-2015 15:52
谢谢woodheadz的贡献,CBS,又学到一个新词,找时间试试

打算怎么推广你的框架?本地meetup先 ...

我还在愁这事呢,你有什么好建议?
作者: ubuntuhk    时间: 14-7-2015 16:55
woodheadz 发表于 14-7-2015 15:53
我还在愁这事呢,你有什么好建议?


本地和online的兴趣组都试试?能说服一些有点名气的网站做示范就更有说服力了。
作者: ubuntuhk    时间: 14-7-2015 16:58
写一些介绍文章,发到知名的IT网站(比如国内的CSDN)?
作者: woodheadz    时间: 14-7-2015 17:04
ubuntuhk 发表于 14-7-2015 15:58
写一些介绍文章,发到知名的IT网站(比如国内的CSDN)?

嗯,今天开始在博客园开系列博客了: http://www.cnblogs.com/knotjs/ar ... e_announcement.html

另外计划去下本地的几个meetup,我想现在中文网站上推广推广,有点感觉了再往英文技术网站上靠
作者: ubuntuhk    时间: 14-7-2015 21:56
woodheadz 发表于 14-7-2015 16:04
嗯,今天开始在博客园开系列博客了: http://www.cnblogs.com/knotjs/archive/2015/07/14/Knotjs_release ...


看了一下例子,有一个建议,能不能把那些js代码合并成一个,像jQuery和AngularJS那样,否则每个html页面都要引用一堆js代码,感觉有点麻烦。

(PS,我是js外行,纯属看热闹的)
作者: woodheadz    时间: 14-7-2015 22:33
ubuntuhk 发表于 14-7-2015 20:56
看了一下例子,有一个建议,能不能把那些js代码合并成一个,像jQuery和AngularJS那样,否则每个html页 ...

我有合并的,在发布版本的压缩包里有个knot.min.js, 引用那个就够了。如果要引用debugger则再增加引用knot.debug.js就好啦
作者: Serin    时间: 14-7-2015 23:05
不懂帮顶
作者: MICHELLE07    时间: 15-7-2015 00:09
我也是路过看热闹的
作者: DDD888    时间: 15-7-2015 14:29
请问你有没有json call server的例子吗?

另外我大致看了下你的网站,我感觉我从使用jquery到angularjs,我已经省去了许多代码,我仔细阅读了我自己写的使用angularjs的代码,感觉也没几行,我在工作里用jquery要写几千行,我估计如果我用angularjs重新写一下,大概也就几百行,但我没有重新写,因为我还没有掌握如何混淆用angularjs写的代码,我的老板对于保护公司的数据要求近乎苛刻,如果一共只有几k字节的混淆的javascript应该很容易被破解相对于几百k字节

你所说的html代码分离,我感觉就象使用jquery写代码到用angularjs写代码是从1 到95,如果使用你的,可能会95到97

但你的那个也有个学习的过程,现在我看你写的cbs代码,感觉就象看天书,我实在找不到一个强有力的理由来用你的代码
作者: woodheadz    时间: 15-7-2015 15:49
本帖最后由 woodheadz 于 15-7-2015 14:56 编辑
DDD888 发表于 15-7-2015 13:29
请问你有没有json call server的例子吗?

另外我大致看了下你的网站,我感觉我从使用jquery到angularjs, ...


Knot.js的好处就是你爱用什么手段和服务器联系都由得你。例如你直接用jquery ajax call server拿到的json,直接扔给Knot.js绑定就好了。我那个单页应用的tutorial里就是这样的用法。http://knotjs.com/tutorial/5

如果你用angularjs已经觉得很爽,当然没必要理会knot.js。 但如果你看你项目里那些夹杂着各种tag的html不舒服,或者对用angularjs是的种种编码限制感到不爽,或者你才开始用angularjs不久,对这个框架种种和平时编码方式迥异的地方感到陌生,那么knot.js就很值得你去尝试了。
对CSS熟悉的话,CBS会上手很快。不信你认真看看第一个tutorial

如果你们特别讲究混淆,那么我建议你慎用绑定框架。不管什么绑定框架,必然都会在非javascript的代码里掺杂javascript对象的属性,方法。除非混淆器对绑定框架做了特别的支持,否则是不能混淆的。
作者: DDD888    时间: 15-7-2015 18:25
本帖最后由 DDD888 于 15-7-2015 17:28 编辑
woodheadz 发表于 15-7-2015 14:49
Knot.js的好处就是你爱用什么手段和服务器联系都由得你。例如你直接用jquery ajax call server拿到的js ...


Thanks

I obfuscated request url/response data between browser and server. I have to obfuscate javascript to hide my logic about obfuscate request/response. I look for security feature when I select framework. I am using jquery which is fine for obfuscation.
作者: ubuntuhk    时间: 15-7-2015 22:43
woodheadz 发表于 14-7-2015 21:33
我有合并的,在发布版本的压缩包里有个knot.min.js, 引用那个就够了。如果要引用debugger则再增加引用kn ...


我想应该不至于这么傻,哈哈。

不过例子也用这个合并版是不是好点?否则像我这种外行菜鸟看了例子代码可能会敬而生畏。

以前一直没重视JS,看来真要挤时间学JS了,太强大了,前端大家基本都向JS臣服了。
作者: black_zerg    时间: 16-7-2015 00:02
提示: 作者被禁止或删除, 无法发言 本帖最后由 black_zerg 于 15-7-2015 23:33 编辑

angular 就是个悲剧, 到了2前面的都不兼容,整个变了。问题来了,如果都是好设计,为什么要变这么厉害?就是太挫了,他们自己都看不下去。这个就是上手容易,真做点事麻烦的要命。估计给designer之类看得顺眼,如果是full stack的根本用不着,双向绑定对我一点吸引力都没有 有兴趣就搜索 angular sucks 还有为什么lib>framework

我记得一两年前我就在论坛上提出这个观点,angular就是个破玩意。现在我在网上是越来越常见类似的观点。我是纯兴趣,工作并不用angular,真要我用我肯定骂娘的更厉害。这些个破框架第一就是 学起来麻烦,第二好不容易学会了,也就是有的时候巨好用,有的时候就巨艰难。多数又要开始跟他斗。 属于简单东西变简单,复杂东西变得不可能。这有个毛用。没有什么不可替代性,反而这个破坏性巨大,根本就是反生产力。jquery就是好样的,虽然现在浏览器比以前好用多了,但是jquery这么些年了还是一条好枪。 我觉得比较好用的typescript很不错。然后gulp还有哪些插件都很好用。atom不错。browser sync好用 sass好用 那些什么mvc的都是可有可无,我分分钟手写一个
作者: DDD888    时间: 16-7-2015 09:17
black_zerg 发表于 15-7-2015 23:02
angular 就是个悲剧, 到了2前面的都不兼容,整个变了。问题来了,如果都是好设计,为什么要变这么厉害?就 ...

我感觉angularjs挺好的,就是学起来有个过程,但好东西都是要花投入的啦

我大学两年级的时候自己学习写C语言还花了一周时间在图书馆里呢

学习angularjs是渐进的,所以很有乐趣,我发觉我用jquery写的代码太长了,不停的用onevent啦
作者: black_zerg    时间: 16-7-2015 10:24
提示: 作者被禁止或删除, 无法发言 公允的说 Angular 好不好要看应用场景 但是绝对不好上手 相对 jQuery就是性价比超高 但是我个人觉得学 JavaScript的话 就要有一切手写的能力 angular现在面临一个很大问题就是 2会整个不一样 侧面反映了 这玩意其实问题很多 具体可以在网上搜搜
作者: black_zerg    时间: 16-7-2015 10:25
提示: 作者被禁止或删除, 无法发言 说的不对 angular是很好上手 但是真做点复杂的东西 就马上晕头转向
作者: black_zerg    时间: 16-7-2015 10:29
提示: 作者被禁止或删除, 无法发言 这个说深点就涉及到 设计哲学 这里双向绑定的作用是封装隐藏Dom操作 那么问题来了 这是否必要和可行 特别是在web有各种类型的情况下 不光是一网站
作者: woodheadz    时间: 16-7-2015 10:45
ubuntuhk 发表于 15-7-2015 21:43
我想应该不至于这么傻,哈哈。

不过例子也用这个合并版是不是好点?否则像我这种外行菜鸟看了例子代 ...

你是直接看github上的例子是不? 我建议从tutorial开始看
作者: woodheadz    时间: 16-7-2015 10:48
本帖最后由 woodheadz 于 16-7-2015 09:49 编辑
black_zerg 发表于 16-7-2015 09:29
这个说深点就涉及到 设计哲学 这里双向绑定的作用是封装隐藏Dom操作 那么问题来了 这是否必要和可行 特别是 ...


双向绑定的作用并不是封装和隐藏DOM操作。DOM被隐藏和封装只不过是因为angularjs实现的过程中产生的副作用罢了。
knot.js的双向绑定基于自动数据感知实现,所以不隐藏,不封装dom,所有的dom属性你都能直接绑定,和你用jquery的区别仅仅在于是写在代码里还是写在CBS里而已。
作者: black_zerg    时间: 16-7-2015 13:14
提示: 作者被禁止或删除, 无法发言 如果你不想封装 Dom操作, 绑定目的在哪里
作者: black_zerg    时间: 16-7-2015 13:16
提示: 作者被禁止或删除, 无法发言 我对于这些 MVC 和 绑定到 model 的设计 的理解 就是直接 操 Dom 麻烦而且代码重复 所以只想操 model
作者: woodheadz    时间: 16-7-2015 14:52
本帖最后由 woodheadz 于 16-7-2015 13:55 编辑
black_zerg 发表于 16-7-2015 12:14
如果你不想封装 Dom操作, 绑定目的在哪里


不是我不想,而是我不需要。 除非你是类似reactjs这类的为了效率而封装dom,或者类似jquery这样为了便利和跨浏览器封装dom,否则封装dom本身是没意义的。很多框架对dom的封装更多的是实现框架时候所需要采取的策略之一罢了。Knot.js没这个需要,所以完全不用封装dom。knotj.s只是从便利性和跨浏览器的角度出发做了一点扩展而已,整个dom是完全开放的,knot.js自己能和dom的这些特性协同工作。
angularjs不只封装了dom,甚至还“封装”了一些javascript语言的特性例如setTimeout,为什么要封装setTimeout? 只不过是因为原有的setTimeout无法和angularjs一起工作而已。类似的还有service,controller,你用javascript清清秀秀写逻辑就好了,为什么angularjs在这个崇尚敏捷轻量的时代还会做出这些j2ee时代才流行的笨重设计?其实都是因为实现框架的需要。
angularjs这些设计是有历史原因的,而knot.js没有这些负担,一开始就不支持老版本ie浏览器,自然就能从新的javascript语言特性中获益,做出简洁得多的设计。
作者: black_zerg    时间: 16-7-2015 17:19
提示: 作者被禁止或删除, 无法发言 要想推广估计你还是得说明优点在哪里 代码更简洁 还是更统一 还是说自带电池 还是说自带强大界面控件总之就是有什么特点。比如你这到底有没有 model 这概念 。 ajax回来了是操 model 还是操 Dom. 如果你说直接操 Dom 那你就得和 jQuery 竞争了 现在各种库多如牛毛, 你起码得搞个 showcase.
作者: black_zerg    时间: 16-7-2015 17:20
提示: 作者被禁止或删除, 无法发言 关键就是这究竟解决了啥问题 不然谁有动力研究
作者: DDD888    时间: 16-7-2015 17:24
本帖最后由 DDD888 于 16-7-2015 18:15 编辑
black_zerg 发表于 16-7-2015 16:20
关键就是这究竟解决了啥问题 不然谁有动力研究


I think his whole idea is separate data logic from html to cbs file. This way get a clean separation.

But the framework does not support ie8.

The code I wrote for my work support ie8 I modified angularjs latest version to support ie8. I did not know angularjs does not support ie8 at the the time I pickup angularjs. I only know that when the customer told me that it does not work with ie8. The customer forces me to support ie8 even for third party library.
作者: black_zerg    时间: 16-7-2015 17:38
提示: 作者被禁止或删除, 无法发言 把js逻辑从html分割这事,jquery早做完了。这十年前就不是个问题了。angular又给搞回来了。总之大家都有道理。
作者: black_zerg    时间: 16-7-2015 18:31
提示: 作者被禁止或删除, 无法发言 关键就是操 Dom算不算逻辑 能否复用 angular的话 如果Dom操作不重 比较简单 那是没啥问题的 做点小网站很快。 问题都是在有些复杂场景大家憋住了 就都开始发挥 那个什么 scope更是搞得一个个满头大汗。 现在要重搞,必然是迎合了一批就丢了另一批
作者: woodheadz    时间: 16-7-2015 18:41
呵呵,jquery可不算把数据和ui分开。
我解决的问题,就是angularjs解决的问题。只不过我认为Knot.js的解决方案在很多场合会避免angularjs带来的过多的复杂性。
当然,我明白angularjs所解决的问题在一部分开发人员看起来不叫问题,这没关系,就让觉得这些问题是问题的人来用就好了。
作者: woodheadz    时间: 16-7-2015 18:55
本帖最后由 woodheadz 于 16-7-2015 18:05 编辑
black_zerg 发表于 16-7-2015 17:31
关键就是操 Dom算不算逻辑 能否复用 angular的话 如果Dom操作不重 比较简单 那是没啥问题的 做点小网站很快 ...


knot.js不需要scope, 你完全可以用你习惯的方式开发。只在呈现数据的时候使用knot.js即可。
knot.js不规定你该用什么方式来编写model/viewmodel,不强迫你按knot.js的方式写controller。你真喜欢的话,用Angularjs的方式写你的程序,knot.js一样能够工作。
我在knot.js设计的时候就小心翼翼地避免在这些方面限制用户,我本人对那种面面俱到的大型框架非常反感,这也是我设计knot.js的初衷。
作者: black_zerg    时间: 16-7-2015 19:22
提示: 作者被禁止或删除, 无法发言 那你这就不是框架 是功能库 名字就不对撒
作者: woodheadz    时间: 16-7-2015 21:44
black_zerg 发表于 16-7-2015 18:22
那你这就不是框架 是功能库 名字就不对撒

呵呵,这是非常标准的框架。不过没关系,你爱叫它功能库就叫它功能库好了。
作者: black_zerg    时间: 16-7-2015 22:07
提示: 作者被禁止或删除, 无法发言 本帖最后由 black_zerg 于 16-7-2015 21:23 编辑

framework就是必须符合一定的代码结构,而且多数就是有观点的,遵循一定的设计理念。使用框架就应该符合其规范,而且一般来说,必须有足够的功能去支持 常用的场景 和需求 典型的就是 router/navigation, 数据绑定,ajax,event bus之类的, 一般最好还有点生成器啊啥的,哗啦就建一个骨架项目出来,打包工具都带着了,比如gulp 或者grunt. 真做个框架不那么容易。我个人觉得一个人非要非常强还要非常固执,时间天份都要有,理论实践都强才能搞出来。

好几年前我就看到了这个 http://www.crossui.com/ 以前叫linb好象是中国人写的,我怀疑就是作者一个人写出来的,这个是我真心比较佩服的。

按照我这帖子里看到的,我理解,你的这个是基于那个什么CBS的一个库,主要功能是否可理解为‘对象绑定’ ?。 比如两个 object,或者object到Dom(html).同时有些模板功能? 能这么认真地做网站写文档还是很不容易的。可能很多功能我还没有看到,期待下集
作者: woodheadz    时间: 16-7-2015 22:23
black_zerg 发表于 16-7-2015 21:07
framework就是必须符合一定的代码结构,而且多数就是有观点的,遵循一定的设计理念。使用框架就应该符合其 ...

我没指望你佩服,也不指望改变你的想法,你放心好啦。
Agree to disagree嘛,要是实在觉得我写的“框架”两个字你看不顺眼,就找管理员投诉好了。
作者: black_zerg    时间: 16-7-2015 22:29
提示: 作者被禁止或删除, 无法发言 本帖最后由 black_zerg 于 16-7-2015 21:56 编辑

不是不顺眼,而是这两者设计理念是很不同的 (用户的期待也不同)。angular就是框架,jquery就是库,完全不同的风格。 框架的话 开篇就该来一个 主要结构图, 解释一个标准的用你这个框架的应用程序 应该有哪些部分 (module, control, store 之类),然后来一个 示例 什么pet store之类。 如果你是个库,那就随意点,那就看你的功能强不强,比如一个date picker只要做得好那也能是个很好的库

这是我的理解,不同意见可以讨论么。我们做程序的 力求就是精确理解 如果人云亦云糊里糊涂 最后水平就提不高。当然我可能着急了点,还没看到全貌。抱歉了。 你这个有个很大的问题 就是你列的几大优势 我看都不怎么吸引人
1)  CBS 这个你看起来是优势,但是多数人都没试过还要学,这必然让人犹豫
2)自动数据感知 这个做得好其实是很不错的,但是你得证明比angular和市面上无数的单向双向绑定之类做的好。也要比手写得好。不然别人未必相信你。
3)调试器 ,做的好象是蛮有意思的, 但是大家都用chrome自带或者 filebug之类,都好用得很。你这个到底能做什么也看不大出来,但是又得有个新东西学。

所以我看你就得搞几个例子,得让人眼前一亮,就像angular入门那几个,不然没戏。

对了,今天看到有个本来搞angular的牛哥现在跑了 开始搞这个 http://aurelia.io/  不妨借鉴一下。我是怕你东西不错,包装的不行,白写了。 你要我都说服不了,别人更没戏。就只能孤芳自赏了。你注意到他那个介绍的视频 https://vimeo.com/117778145,上来就展示了一个典型的应用是怎么样的。
  


作者: woodheadz    时间: 16-7-2015 23:28
black_zerg 发表于 16-7-2015 21:29
不是不顺眼,而是这两者设计理念是很不同的 (用户的期待也不同)。angular就是框架,jquery就是库,完全不 ...

我挺开放的,事实上从昨天开始推广,我一直在其他地方和别人讨论knotjs。 居然还找到跟我一样意识到angularjs的问题但采取了相反的思路解决问题的人。
我只是不想讨论什么叫框架而已。你找其它人讨论这问题好了。
说服你这个任务对我要求太高,angularjs那么火用在你看来也不过是倒退,我这才开始的新玩意儿就别想了。
例子我写了很多啊,根据这两天的反馈,我还会再加。不过你既然debugger 是干嘛的都没空搞清楚,具体的例子只怕也没空看了吧。
作者: black_zerg    时间: 17-7-2015 00:13
提示: 作者被禁止或删除, 无法发言 本帖最后由 black_zerg 于 16-7-2015 23:42 编辑

我从来没说Angular是倒退 我的看法是 Angular1很有特色,有些场景很适合,有的场景就很糟糕。所以现在有2的几乎完全重设计,我是很期待的。Angular2 会丢弃双向绑定,把主框架放入 webworker, 引入DomRender和native Render的概念 (也就是说能用Angular做native应用),引入typescript之类的语法工具。我个人是非常看好的

其实你不要误会我的意思,好像库就不如框架。 其实如果你这个是库,还可能给推广,如果真的是往框架上走,基本没生存空间,只能是个人把玩儿的。所以我自己写东西从来都是以写库为目标,框架我觉得不是一个人玩的起来的。你仔细看看angular2现在推广的那些视频,看看人家都的投入力度。设计思想,功能细节,代码质量,还有市场推广,还有google支持,这没法竞争得过。框架是主要设计架构,一个应用按理只能选择一个框架。 说个实在话,工作里估计很少architect 甘冒这大风险用你的。出错了都没借口说。遇到问题被上下骂死。angular就有维护有社区有名声,有点问题谁也不能说你蠢
作者: woodheadz    时间: 17-7-2015 00:48
black_zerg 发表于 16-7-2015 23:13
我从来没说Angular是倒退 我的看法是 Angular1很有特色,有些场景很适合,有的场景就很糟糕。所以现在有2的 ...

好啦好啦,咱们也是老熟人了是吧? 从技术到政治社会,我们居然几乎所有的观点都等于对方观点乘以负一。
我看你你也别费劲跟我在这儿扯了。万一我忽然被你说服了,嚎啕大哭一场,然后把我这不值钱的项目删了从此以后跟你混你一定也会觉得挺没劲的是吧。
这年头要找两个如此不一样的人还真不容易,让我们珍惜下这么难得的对方,agree to disagree 算了。
作者: DDD888    时间: 17-7-2015 08:48
black_zerg 发表于 16-7-2015 21:29
不是不顺眼,而是这两者设计理念是很不同的 (用户的期待也不同)。angular就是框架,jquery就是库,完全不 ...

我简单看了下http://aurelia.io/,我感觉不过是把后台的mvc搬到了前台来了,是不是值得啊?弄的这样复杂?
作者: DDD888    时间: 17-7-2015 08:52
black_zerg 发表于 16-7-2015 21:29
不是不顺眼,而是这两者设计理念是很不同的 (用户的期待也不同)。angular就是框架,jquery就是库,完全不 ...

我很赞同你说的三点外加上我说过的两点

1 没有混淆(我感觉用了woodheadz的东西,javascript代码是会少写许多,如果碰上一个也懂cbs的人,那他就直接读懂网站的通讯原理了,就是等于给他源程序了)
2 不支持ie8
作者: black_zerg    时间: 17-7-2015 09:51
提示: 作者被禁止或删除, 无法发言 真正牛的还得是 angular 2,  angular 1是从很老的一个框架发展来的,设计理念不清晰,性能和扩展上都问题不少。 2 我认为是很先进的 现在看到的都是 牛 b闪闪的 不过不兼容 1 我看是好事
作者: black_zerg    时间: 17-7-2015 09:53
提示: 作者被禁止或删除, 无法发言 Aurelia 好像是个资深的 angular开发 因为 2把 1的设计丢弃光了 他就愤怒出走自立门户
作者: DDD888    时间: 17-7-2015 12:34
本帖最后由 DDD888 于 17-7-2015 14:11 编辑
black_zerg 发表于 17-7-2015 08:51
真正牛的还得是 angular 2,  angular 1是从很老的一个框架发展来的,设计理念不清晰,性能和扩展上都问题不 ...


其实这样对打工的人挺不错的,对同样的业务每隔几年重新写一次,就又有事干了,不然干瞪眼盯着十几行代码,几年时间坐在那也不是一回事吧,老板面子上过不去,连timesheet也不知道应该如何填啦

我又要说起我以前工作的公司,2000年用delphi写了个订货销售系统,一年以后老板说j2ee热门,就重新用j2ee重写了系统, 到2010年C#盛行,就把大部队都去改写成C# .net,然后公司借口经济不好,在2011年解散了这个项目,把我也解散了,我真希望那时还有啥时髦的工具可以来改写下系统

当然解散了更好,第一我可以在家工作,第二涨工资了 ,总经理在我工作的十一年里每次会议上都语重心长的告诉大家,公司给了市场上的高工资了,现在看来他说谎了

我回家后在家里工作所做的事就是用.net给现在的老板写订货销售系统
作者: DDD888    时间: 17-7-2015 12:53
black_zerg 发表于 17-7-2015 08:51
真正牛的还得是 angular 2,  angular 1是从很老的一个框架发展来的,设计理念不清晰,性能和扩展上都问题不 ...

我看了下, angular 2不错
作者: black_zerg    时间: 17-7-2015 14:01
提示: 作者被禁止或删除, 无法发言 对的 楼上不亏是老程序员一语中的
作者: black_zerg    时间: 17-7-2015 14:04
提示: 作者被禁止或删除, 无法发言 我现在基本工作和 自己研究 完全分开 工作的话就是把事情搞定 最重要
作者: DDD888    时间: 17-7-2015 15:13
black_zerg 发表于 17-7-2015 13:04
我现在基本工作和 自己研究 完全分开 工作的话就是把事情搞定 最重要

我感觉还是要把研究的用在工作上,这样等于老板出钱来培养,不然得用自己的业余时间太奢侈啦
作者: DDD888    时间: 17-7-2015 15:16
black_zerg 发表于 17-7-2015 13:01
对的 楼上不亏是老程序员一语中的

谢谢夸奖
作者: fenzuan    时间: 18-7-2015 21:36
woodheadz 发表于 14-7-2015 15:51
估计是你装了什么国产的流氓软件了?
把你机器上国产软件全部删掉试试, 什么pps之类的

谢谢,我把最近新装的不管中文英文的软件全删了。这两天没有问题了。
作者: jgcgomk    时间: 20-7-2015 02:53
DDD888 发表于 17-7-2015 11:34
其实这样对打工的人挺不错的,对同样的业务每隔几年重新写一次,就又有事干了,不然干瞪眼盯着十几行代 ...

哈哈,这个楼不错,欣赏这样的人
在哪里啊?阿村的话大家出来聊聊天
我也是喜欢编程
作者: jgcgomk    时间: 20-7-2015 02:54
black_zerg 发表于 17-7-2015 08:53
Aurelia 好像是个资深的 angular开发 因为 2把 1的设计丢弃光了 他就愤怒出走自立门户

是durandal的开发者,他半路加入angular,后来发现发展方向不是他要的,又离开了
我们正在就是用durandal,说实话,很痛苦
作者: 愚夫    时间: 20-7-2015 11:07
此贴顶起,支持原创精神~~
作者: DDD888    时间: 20-7-2015 16:13
jgcgomk 发表于 20-7-2015 01:53
哈哈,这个楼不错,欣赏这样的人
在哪里啊?阿村的话大家出来聊聊天
我也是喜欢编程

Thanks

I am at Auckland, NZ
作者: wangvq    时间: 20-7-2015 21:41
不明觉厉,帮顶
作者: yzfeng    时间: 29-7-2015 23:11
不容易啊,要花很多精力,必须顶.收藏了慢慢研究
作者: superopengl    时间: 30-7-2015 08:02
DDD888 发表于 17-7-2015 10:34
其实这样对打工的人挺不错的,对同样的业务每隔几年重新写一次,就又有事干了,不然干瞪眼盯着十几行代 ...

Don't reinvent a wheel. But IT industry must keep recreating wheels.
作者: superopengl    时间: 30-7-2015 08:05
black_zerg 发表于 16-7-2015 20:29
不是不顺眼,而是这两者设计理念是很不同的 (用户的期待也不同)。angular就是框架,jquery就是库,完全不 ...

我也读了LZ的code,也搞懂了其运行原理,但我知道“我不会在这里讨论——谁都不想别人说自己孩子不好”。
作者: DDD888    时间: 30-7-2015 09:13
superopengl 发表于 30-7-2015 07:02
Don't reinvent a wheel. But IT industry must keep recreating wheels.

我也没办法啊

上司安排做啥项目,我只能做啦,不然只有跳槽啦

不过这样也好,流行的技术我都接触过啦
作者: woodheadz    时间: 30-7-2015 09:33
superopengl 发表于 30-7-2015 07:05
我也读了LZ的code,也搞懂了其运行原理,但我知道“我不会在这里讨论——谁都不想别人说自己孩子不好”。

倒也不是不想别人说不好。我在其它地方和别人有大量的讨论,这东西比较其它的MVVM框架有很大的不同,自然会有不少人反对和赞同。
反对意见对于改进knotjs非常重要,所有认真提出的反对意见我都会认真回复并表达感谢
只不过黑虫关于这个框架的观点我早在两年前就已经明白,因此觉得不需要花时间就那些观点继续讨论罢了
作者: black_zerg    时间: 30-7-2015 10:00
提示: 作者被禁止或删除, 无法发言 我是觉得观点交流很重要的 比如我自己做个东西 我就希望有懂行的人给真实的意见 因为大家都是业内人 一个人提出来肯定有一定的理由 那就可以或解释或改进 这种也能解惑 不然别人一看不顺眼 根本就没兴趣看
作者: black_zerg    时间: 30-7-2015 10:02
提示: 作者被禁止或删除, 无法发言 我觉得关键就是思路清晰 要有明确的功能和应用场景 别人作为用户 脑子里第一个想到的就是 what's in it for me 必须有卖点
作者: black_zerg    时间: 30-7-2015 10:04
提示: 作者被禁止或删除, 无法发言 我这些年自己写的代码工具的也不少 但是维护下来的却不多 推广给别人用就更没成功过 往往满足于解决了自己的问题 省了自己的时间 楼主这种精神是很值得点赞的 说服技术人员是很难的 因为大家都是聪明人
作者: black_zerg    时间: 30-7-2015 10:10
提示: 作者被禁止或删除, 无法发言 我的看法就是 你得坚定于自己的设计理念 但是不能逃避问题 别人有问题就解释 这也是锻炼沟通能力 反正是论坛都没所谓的 工作里哪里有这样的机会
作者: black_zerg    时间: 30-7-2015 10:11
提示: 作者被禁止或删除, 无法发言 如果能用英文讨论其实就更好了 我一直惭愧于自己的英文
作者: black_zerg    时间: 30-7-2015 10:17
提示: 作者被禁止或删除, 无法发言 对于我来说每个别人提出的问题其实都是 unit testing。欢迎楼主到我那个帖子里去批评
作者: superopengl    时间: 30-7-2015 13:28
black_zerg 发表于 30-7-2015 08:04
我这些年自己写的代码工具的也不少 但是维护下来的却不多 推广给别人用就更没成功过 往往满足于解决了自己 ...

所以我的原则就是:如果我需要什么,我就去找,找到一个最接近我需要的然后试着改变我的想法去适应它。我坚持不自己写框架和类库,因为太消耗精力。而且一旦陷进去了,就很容易“只埋头造船,不抬头看海”,最后发现要么最开始自己想法有问题,要么没精力维护下去,要么别人写的新东西比自己的还好。

其实现在的所谓开源都是有公司在背后支持(从人脉到资金),纯“屌丝开源”上位的几乎没有。很多成功的框架或类库比如jQuery,Angular其实想法都很简单,就是细节、文档、社区都做到位了才有了今天。说白了不光有想法,还得有钱做下去,而且还得来一帮人在社区里“捧臭脚”,然后就推广开了。

谁的想法最好不重要,最先最快实现出来的才是老大。这个“实现”可不单单是一个prototype的原型,像前面说的细节、文档、社区都要有,否则即便0.9, 1.0, 1.1做做得很好,升级慢,社区问题反馈慢,文档慢或不全都会被淘汰。能生存下来的都是有肌肉的项目,而不是想法好得项目。
作者: black_zerg    时间: 30-7-2015 18:00
提示: 作者被禁止或删除, 无法发言 一般都是技术市场都要有 要确实解决问题 比如 ejb的歇菜 比如 jQuery的兴起 就说明 大家也都不傻 你的东西能确实帮到别人 这个是推广的前提 在这之上 很多工作要做 也不一定有大回报 这个就看各人了 你就当兴趣爱好 有空就弄弄 不影响工作娱乐
作者: black_zerg    时间: 30-7-2015 18:01
提示: 作者被禁止或删除, 无法发言 就像有人说代码是艺术对吧 虽然不一定能卖大钱
作者: trisun    时间: 30-7-2015 18:40
看起来还不错,多点应用实例,还是有可能得到推广的。
作者: woodheadz    时间: 30-7-2015 23:44
trisun 发表于 30-7-2015 17:40
看起来还不错,多点应用实例,还是有可能得到推广的。

最近特别忙。本来还想再加入服务端渲染和自动依赖解决,例子文档也有很多想法,另外还想去社区里推一推,可惜完全没空。
近期可能会去布村的一个js技术Meetup做speaker,看看到时候能不能找到有兴趣一起做的人
作者: cais    时间: 4-8-2015 02:47
LZ的CBS概念不错。我挺喜欢的。
网站上的英文可以改进一下。读起来顺畅一点。
主页上一开始的几个从angular转成你的knot.js的图片例子,最好能给全。里面knot.js的都给截了一些,看不清楚。我估计很多人看到那里就会走人。
如果能一下子让人看清楚跟那段angularjs相应的例子是什么样子,直接比较一下,应该会比较容易让人信服。
debugger我还没真正用,但是能不能做成个iframe放在同一页面?有需要的时候再popout成另外的窗口?
推广的话,可以试试用knot.js写一个todo app提交到http://todomvc.com/。不过我建议等文档完善之后,至少是英文修正通顺了之后,再大力推广英文用户。
不管怎么样,这个东西,能做出来就是
作者: black_zerg    时间: 4-8-2015 09:56
提示: 作者被禁止或删除, 无法发言 做点啥都不容易 特别是有了好主意之后如何实现 如何文档和长久发展 所以我很关注这个帖子 woodheadz只要能坚持做完我都是很佩服的
作者: woodheadz    时间: 5-8-2015 23:22
cais 发表于 4-8-2015 01:47
LZ的CBS概念不错。我挺喜欢的。
网站上的英文可以改进一下。读起来顺畅一点。
主页上一开始的几个从angul ...

最近创业中,正没日没夜的做东西,短时间内是没有精力继续完善了。不过一旦有空我会继续。
有兴趣一起弄不?
作者: cais    时间: 6-8-2015 00:29
woodheadz 发表于 5-8-2015 22:22
最近创业中,正没日没夜的做东西,短时间内是没有精力继续完善了。不过一旦有空我会继续。
有兴趣一起弄 ...

前端的东西我还不太熟。有时间我看看文档有什么可以改进的。接受PR吗?
作者: woodheadz    时间: 6-8-2015 00:36
cais 发表于 5-8-2015 23:29
前端的东西我还不太熟。有时间我看看文档有什么可以改进的。接受PR吗?

Pr 是啥?
我那个网站也在GitHub上,你只管改。改完把你自己也加到about里,别客气哈
作者: DDD888    时间: 6-8-2015 12:29
woodheadz 发表于 5-8-2015 22:22
最近创业中,正没日没夜的做东西,短时间内是没有精力继续完善了。不过一旦有空我会继续。
有兴趣一起弄 ...

羡慕,创啥业啊?
作者: cais    时间: 10-8-2015 00:58
woodheadz 发表于 5-8-2015 23:36
Pr 是啥?
我那个网站也在GitHub上,你只管改。改完把你自己也加到about里,别客气哈

PR就是pull request。中文应该是叫拉取请求吧。
你的repo别人应该是写不了的。要通过PR,你批准之后,再merge进来。
作者: yzfeng    时间: 10-8-2015 13:50
woodheadz 发表于 5-8-2015 22:22
最近创业中,正没日没夜的做东西,短时间内是没有精力继续完善了。不过一旦有空我会继续。
有兴趣一起弄 ...

赞一个

作者: woodheadz    时间: 10-8-2015 17:29
cais 发表于 9-8-2015 23:58
PR就是pull request。中文应该是叫拉取请求吧。
你的repo别人应该是写不了的。要通过PR,你批准之后,再 ...

哦,当然接受pull request,你只管下手好了
作者: woodheadz    时间: 10-8-2015 17:30
DDD888 发表于 6-8-2015 11:29
羡慕,创啥业啊?

和朋友一起做个东西
作者: DDD888    时间: 11-8-2015 09:38
woodheadz 发表于 10-8-2015 16:30
和朋友一起做个东西

噢,做个东西
作者: shenlh    时间: 28-8-2015 18:36
楼主是javascript的顶尖高手,非常佩服,也非常赞你开源你的Knot.js。
现在已经换了工作吗还是正在找?
我有时会知道一些工作机会,有空跟我联系。我的email:SHENLH.OZ@GMAIL.COM
手机:0423 879 883

Sean




欢迎光临 FreeOZ论坛 (https://hioz.im/ibbs/) Powered by Discuz! X3.2