谈谈国庆我与sails和angularjs奋斗的那些日子
发布于 1年前 作者 hexie 4234 次浏览

对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月份内,完成开放出来。哈,想起最近看到程序员的六大谎言,“能在这周完成”

17 回复

angularjs 满有意思的,我看那个文档,有个部分不是很明白,就是关于测试的部分,测试是用来干什么的呀? 目前我只用过express,如果要用angularjs的话,是不是要自己再弄个框架?关于这部分,可以说一点什么么……

测试没有怎么用过,这次的尝试开发,采用了Yo来管理文件,它会自动帮你创建好框架。a

官方有出seed。。可以直接用

@lyman 那个好像只是一个静态服务器

这里有调试工具,https://github.com/angular/angularjs-batarang 不过还是觉得 console.log 最常用

lz,要管理微博账号是不是要先向新浪微博申请一个app ID?

AngularJS 真心难对付啊…

当然要申请,我申请过,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的插件啊。

回到顶部