临近年关,工作有些多,最近就很少更新了。前两章已经搭建好了服务器和域名,那么现在就要开始做一些写代码前的选择问题了。其实这对于我来说还真是挺麻烦的,可选项太多了,有没有UI设计,最近也是为了能搭建好服务器在自学linux系统,时间上挺紧的。
就我自己这两年来的工作来说,开发语言就已经用过了C#,java,python,php,因为这次是个人网站,写代码之前都好纠结到底要选择那种语言。想来想去,还是决定先将自己用过的和了解的一些内容列出来在进行一些选择。
首先是架构设计,刚开始学习的时候用的是流式开发,后来又学习了MVC和MVVM的分层架构设计模式;还有现在较为流行的模块化开发。自己用过的模块化方案有AMD,CMD,CommonJS和ES6。本次开发决定选用模块化和分层的混合式开发。
首先将项目分为逻辑层,数据层,工具层和服务器后台,再将逻辑层分为主模块和子模块;数据层就是用来和子模块进行数据交互并同时保存到服务器中去;最后工具层就是为整个项目提供的一些工具类之类的插件。
接着就是要进行技术选型了。只要决定好软件过程、前后端分离、构建工具、框架、版本控制和发布方式,那么技术选型基本也就决定好了。
1.软件过程:-----敏捷开发
毕竟需求不是一下子就定死的,总是善变的,因此你的代码也就要可以时时根据需求来进行变动,前期可能比较难上手,但是你不得不学,除非你就是甲方,可以保证你的需求是定死的,并且这个开发的项目是一次性的。
2.前后端分离:
大势所趋,现在基本都采用这种模式,稍早一些用过的JSP/Velocity/Freemarker就是发展过程中的产物,不过虽然比早期的前后端不分离的一体式开发要好的多,但还是分离的不够彻底, 每次更新都需要前后端开发同时更新。最终进化为纯静态的前后端完全分离。
3.构建工具:
有Grunt、Gulp和Webpack可供选择,我选择Webpack
4.框架选型:
前端框架:JS框架目前较为热门的JQuery(老牌框架) React Vue Angular,CS样式框架目前较为热门的为CSS Less Sass。至于怎么选择,一般都是开发客户端的时候为了考虑到所有用户的机型,都不会采用最新的技术避免不兼容的问题,追求稳定,因此这次开发我就选择 JQuery+CSS来进行开发。而服务端因为就只有管理员才会用到,追求开发效率,因此我选择最新的React+Sass+ES6。
5.版本控制:
有svn和git两种方式,关于选择哪个好可以参考这篇博客说的非常详细了,此次我选择git。
博客链接:https://www.cnblogs.com/Sungeek/p/9152223.html#sg10
6.发布方式:
git拉取代码------编译完成------------发布到线上机器上去。
到此就已经完成了开发前的选择准备了,可以开始写代码了。