对sails和anguarjs一直久仰大名了,一直很想狠狠地拿出来做点东西,放假前,收集了很多相关的资料,希望能够在国庆里面达到快速开发的目的。经过实践后,得出这么一个结论
工具虽然好,也很快,前提你要对框架拥有足够的熟悉。
先说一下我的需求
微信公众帐号管理中心
- 提供用户管理控制
- 后台界面交互,为用户提供自定义回复控制
- token合法性控制
- 用户行为状态保存
##项目进度
零碎的时间,最后大概做了5天
###用户管理控制
这部分主要是session控制,权限控制,完成度最高,达到百分之90,可能未来根据实际情况微调。
###后台界面交互,为用户提供自定义回复控制
后端部分逻辑已经完成了,前端交互因为存在对css不是很熟悉,完成进度百分之60
###token合法性控制
这个比较简单,完成了百分之90,差微调。
###用户状态保存
自己过于矫情,导致状态方案一直徘徊于mysql,redis或者nodejs的内存,最后选择了后者,session保持已经写完,剩下具体数据调试,完成度百分之60
博客地址:http://blog.whattoc.com/2013/10/06/angularjs_sails/
##项目遇到的问题
##sails
###ORM sails使用ORM简化了DB的存储操作,因为模块不够完善,没有外建的定义,对于mysql简直伤不起,ORM很难很好地定义数据表,容易造成空间浪费和数据库的性能低下,当然这也是orm的毛病,对于前期能带来快速开发就很好了,不过没有外建,这很难说快多少。
###定制中间件
sails是基于express来开发的,express的强大,因为他可以通过多种第三方中间件来定制你需要的web服务器,sails看文档,是没看出定义的方法的,需要到github来找,这么重要的东西,竟然不写在文档里面,其实,我也不真太挑剔,因为我需要面对这么一个处理,微信公众平台发送的 XML回复,方法是使用raw post data,传统的express 的bodyParser组建会将xml格式的数据也会抛弃,TJ大神说,俺是不会加的了,因为bodyParser目前功能就足够了,超越了这个范围,请自己编写第三方插件,恩,没我也认同TJ大神的说法,然而,sails对于自定义中间件,竟然在bodyParser之后,也就是说,数据已经被bodyParser抛弃了。唉,这么简单拿个数据的事情,弄了我半天时间,最后,只能改写sails框架代码,提交给sails了,爱改不改。
###权限控制
restful就是将服务端变成客户端的服务那样,想拿数据,就拿什么数据,对于sails来说,完全没有权限控制的概念,只有简单的外部数据屏蔽,这样还不足够的。有些数据,我希望session的主人看到,别的session看不到,某些操作也同理,但sails在这部分处理,基本空白,需要按亲自来写,好吧,就写吧。不过尼吗,我如果写了,意味着ORM提供的自动生成的自动生成的方法就变成浮云了,sails的特性被抛弃了的情况,我用你干嘛。。
##angularjs
###调试真心伤不起
报错位置不具体,对于刚实践的时候,挺困难的,不过熟悉了后,勉强接受吧,请问各位大大,谁有好的angularjs调试工具。
###入门不容易
新概念太多,庆幸例子蛮多的,跟着例子,基本摸着套路来了,因为翻译很多很糟糕,需要配合代码才看懂。
###感觉我是不是杀猪用牛刀了?熟悉了应该挺快的。
因为国庆前,已经看了不少相关资料,但在实践当中还是经过2天的修罗场,算是入门了,现在感觉还是开发起来比较快的。
##总结
sails不是很成熟,有时候,会后悔直接用自己熟悉的express好了,用习惯了django的orm真心觉得sails的太挫了,不过既然现在用了,就好好用下去吧,angularjs不错,就是入门有点难,调试困难。剩下的,好好争取在10月份内,完成开放出来。哈,想起最近看到程序员的六大谎言,“能在这周完成”
angularjs 满有意思的,我看那个文档,有个部分不是很明白,就是关于测试的部分,测试是用来干什么的呀? 目前我只用过express,如果要用angularjs的话,是不是要自己再弄个框架?关于这部分,可以说一点什么么……
测试没有怎么用过,这次的尝试开发,采用了Yo来管理文件,它会自动帮你创建好框架。a
官方有出seed。。可以直接用
@lyman 那个好像只是一个静态服务器
这里有调试工具,https://github.com/angular/angularjs-batarang 不过还是觉得 console.log 最常用
lz,要管理微博账号是不是要先向新浪微博申请一个app ID?
当然要申请,我申请过,2天就过了,前提你要有备案。不过,你可以用测试帐号的,这个不用审批,如果你只是第三方网站介入,有备案很快通过
@hexie 谢谢,一般情况下申请的国际域名是不需要备案的。那么就是说还是去备案一下咯? 另外备案都是跟网站相关的,如果不是网站而是应用程序要访问微博的话,就没有办法了对吗?
@kiinoo 应用是啥呢?如果是安卓那些 要提交的。如果是纯粹第三方用户接入,基本就是备案了,网站有内容 就给过了
最近也在研究sails,看了文档关于权限控制用这个应该可以吧? http://sailsjs.org/#!documentation/policies 关于AngularJS也研究过一直很不喜,语法太怪异了,推荐尝试下CanJS,功能十分强悍,执行效率也不错,和jQuery/mootools这类的库配合的也更顺畅,同样是他们开发的一个stealjs感觉是类似requirejs这种amd动态加载管理js工具中功能最全的也有很多独特的功能,比如动态加载css等等 希望楼主能完美解决遇到的各类问题,感觉sailsjs还是不错的
那么对于Sailsjs的配置文件中,要设置jade相对应的配置项呢?比如jade的配置项pretty:true(即保留空格和换行),怎么在Sailsjs框架中配置?还有就是怎么扩展框架?
我一直觉得用框架的人都是不会编程的, 好吧, 也许这话太狂了。
肿么了?
敢用jq么,亲:)
我也对angularjs很感兴趣, 这几天一直在搞angular的一些东西, 我看咱们可以互相交流, 哈哈.
调试的话, 我感觉如果按照angular的标准写法来写的话, 一般只会是小地方出错, 而且angularjs的错误说明都说明的差不多了, 目前还没有在调试上出现什么大问题.
概念的话, 刚上来确实有些困难, 但是看了一些文档后, 自我感觉比emberjs和backbone还简单, 我现在希望angular一统江湖, 哈哈.
https://github.com/jeremial/kman https://github.com/jeremial/me-pageloading https://github.com/jeremial/me-animate.css https://github.com/jeremial/me-lazyload
这是最近搞的几个关于angular的小项目, LZ可以看看哦, 互相交流,互相学习 :)
chrome 有调试angularjs的插件啊。