最近自己做了一个小项目,功能很简单,自己完成前后端的开发,还是有一些感受。
后端是由spring+nodejs来构成的。在此我不考虑执行效率等因素,快速开发才是我的目的。
Spring
HTTP接口部分由spring mvc + hibernate,这样做的主要原因是开发简单快速,不用太过于注重数据结构。
由于自己做的项目,很多地方的考虑并没有那么周全,很多东西都没有那么确定,功能流程都是一个模糊的概念,所以数据结构这块的改动是非常大的,hibernate自己管理数据库和model以及之间的映射,这对于结构经常变更的情景实在是太符合了。至少从头到尾我都没怎么关心过数据库方面的事情。
但是spring最大的缺点就是内存占用,由于是java的项目,这也办法避免,对于小型项目来说这个的资源使用率就比较差了。我部署完观察看到spring的占用始终在几百M,加上其他一些服务,服务器要求还是需要配置挺好的,对于自己玩玩的小项目来说,有点利用率太低了。
spring作为快速开发还是非常好的,同时作为一门强类型语言,出错率也比较低,一些新手也很很好的参与。但是我应该不会再考虑作为我自己个人开发的语言了。
node
node部分主要用作web服务和socket服务。
由于socket服务占用资源的问题,我决定使用node来做socket服务器,而且还有socket.io这个开源长连接库。这样也省去了很多协议和底层代码。
用这个写的一个即时聊天消息服务器用的代码也没有超过1k行,还是非常简单的。
node的具体性能怎么样我没有实际去测试过,但相比于其他创建进程的方式应该会优秀一些吧。作为自己的一个小项目来说也已经足够了。
现在总结起来,在做一个项目之前的准备实在是太不够充分了,而且现在也很难一个人来开发一个项目了。