完美的 js 的世界
发布于 10 年前 作者 cicada 4824 次浏览 最后一次编辑是 8 年前

作为一个悲催的程序员,开发过前台,后台,甚至app,所以各种语言和技术尝试了很多,虽然很多不是特别深入,但是都曾完成过独立的项目。每次做一个项目前就要花不少的时间去选择,想找个简单实用兼容性好的语言和框架,以求减少项目开发量和周期。后来开始独立开发项目,涉及设计、前台、后台方方面面,更希望有个简化的框架,统一的开发环境,让一切简单起来。

HELLO,JS

js 之前也一直在用,只是很简单的前台逻辑和操作,用用jquery 就全部搞定了。突然有一天就发现了 nodejs,发现前后台的开发环境竟然可以统一起来,于是心里痒的难受,到了不试试睡不着觉的状态。正好正准备开发一个火星问答的项目,于是就毫不犹豫的进去了。

后台JS

因为有js的底子,所以学习nodejs算不得难,一周左右就可以顺利写业务逻辑了。借助各种优秀的插件(express + async + …)及文档,后台进行的颇为顺利,一周左右基本款的功能就开发成型了,同时对js的使用和理解提高了很多,在接下来的前台和app开发中就更加得心应手了。

前台 js

前台选了bootstrap ,网页版的js代码并不多,所以就简单的用了用jquery就都够用了。如果此时选择后来使用的angular ,应该会是更好的选择,只是当时没时间尝试这么多新东西,赶进度更重要。

app JS

火星问答本来只是练手开发的,上线后反而受到很多用户的喜欢,所以就不断的增量开发下来。添加了更多的功能与内容。也在不断的改善使用体验,直到觉得应该尝试一下app,让用户更方便的使用。当然不想去写ios和android的native应用,不熟练,而且还是相互独立的,以后更新要死人的,打算用html5 +cordova的方式。 以前用过mobilejquery 开发过一个项目,效果很不理想,这次就另外选择框架,选来选去确定了google的angular 框架,原因主要是看了他的demo,代码层级很直观,扩展也容易,更喜欢他的双向数据结构,几行代码就可以建立前后台的依赖。刚开始用的时候确实觉得有上当受骗的感觉,和之前的js使用很大的不同,语法都有区别,让我怀疑这到底是不是tm的js,为毛和其他的js长的不像,不过硬着头皮做下来,慢慢就理解了,原来用angular写的业务代码并不是普通js代码,运行是需要angular框架先compile 进行预处理,所以与普通js代码有些区别。angular学习成本有些高,搞了2周多才搞清楚啥东西,才能比较顺利的只关注业务逻辑的编写。不过一旦上手了,发现写业务逻辑及其的方便,模块依赖,数据绑定,用最少的代码实现需要的功能。不知不觉写的代码越来越有层次了,后头再看之前写的网页js代码,一坨屎一样,只是懒的去重写了。如果以后再写前台,一定使用angular 。app的UI因为图简单也只是选择了适合angular 的bootstrap,用起来和网页版的bootstrap 基本一致。总的来说,app开发因为选择angular的原因,周期拉成了一倍,一个多月才出第一版,好在angular 逐步熟悉了,后面再开发就容易了。

桌面应用 JS

火星问答本身需要桌面应用,只是因为看到了可以用js做桌面应用,技术宅的毛病强迫自己去尝试一下。使用node webkit ,不需要修改angular 写的app代码,只要添加node webkit需要的包信息,然后通过软件打包就可以了,2个小时就做成了桌面应用,相当方便,缺点是打包过程中要打包chromium 内核,最后生成的exe相当的大,40多M,实在让人无法忍受,因为此app生成的apk只有3M多。因为桌面应用纯粹为了试验,所以也没有进行进一步的深入。

至此,通过火星问答这个项目,体验了用js一种语言做前后台、app、桌面应用的全过程,感觉对于独立小项目,js绝逼是一个极好的选择,统一的开发环境,统一的语言,前后台代码有的甚至可以copy通用,也不需要考虑各种语言之间的编码不统一,字符串处理不一致等问题。以后打算用js做一个通用的项目seed,再做其他项目时只要替换其他的业务代码,估计时间可以节省一半以上。

8 回复

还算不上吧,只是一个人做独立项目多了,希望能找到一种更简单更高效的全端框架,然后做成seed,然后就可以简化开发,提高效率。正在考虑根据之前的经历完成这个seed,对那些和自己一样独立开发项目的人有所帮助

也想折腾,后端做前端的太难入门了的感觉

建议试试bootstrap,后端做前端最大障碍应该是ui吧,ui能看的过去了,至于写逻辑代码,就是强项了

人家都说前端入后端难啊。。

就是ui,想着html、css,js的就要学一堆的感觉

@alsotang 后端入前端也不容易,做后端做习惯了,关注的是逻辑和业务,只有功能跑通了就ok了,但是前端关注的ui体验,再加上各浏览器的兼容性问题,让人更头疼,开始做的时候会很难受的

回到顶部