cover 不知不觉App已经上线快一个月了。而自己也总算结束了匆忙且无序的生活。生活节奏开始走向了正轨。
上个月说好的在博客更新iNCU项目中的点滴,也从这篇博客开始,慢慢的书写。
开发过程中,想的有点久,东西有点多。
今天就先从技术选型开始讲起。

主要技术

作为一个程序员,自然要把App中使用的开源技术,放到感谢的栏目中。
以下是App中核心的技术与框架。

技术选型の观点

关于技术选型,其实是一个老生常谈的问题。每个人都有各自的想法与观点。因为技术选型的观点不同而在社区引起争论的现象比比皆是。

于我而言,技术选型最重要的一点是:效用
效用在这儿指的是技术选型对整个项目/个人/团队所起的作用。
假如从这一点出发,便能避免很多不必要的问题与怀疑。

对项目的效用

首先则是对项目的效用,也就是要选用的技术对项目所起的作用与满足的需求。
一味追新,则可能经常性的碰见Breaking Changes,大部分时间都耗在弥补升级的坑上了。
一味保守,则可能出现效率不高,无法应付未来需求的问题。用jQuery当然很稳定,但是如果是大型SPA,则会出现力不从心的情况。

从iNCU项目本身而言,从技术层面出发,选用的都是偏稳定,生态繁荣,依旧在发展中的技术。
比如React Native,比如TypeScript,两者目前都是偏稳定的技术,一定时期内不会有太大的Breaking Changes,能稳定且持续的开发下去。

从需求层面出发,iNCU最好是能够发布Android与iOS版本,而目前团队移动端人手不足,短期内培养出移动端开发人员是个不现实的愿望。所以只能自己亲自上阵。
而我作为一个前端,技术选型上自然偏向了HTML5和RN。最后在评估几次需求与使用RN和HTML5(Cordova, ionic)写了好几个demo时,做出了最后的选择,RN。

对我而言,RN的优点如下:

  • 满足需求,能实现iOS/Android端的开发
  • 性能较强
  • 可拓展性强,后期可以通过原生拓展实现一些高级功能
  • 使用纯 JS + CSS Flexbox 语法编写,上手难度低,无语言切换成本

RN的缺点则是:

  • 团队目前前端主技术栈为 Vue,学习React的人比较少,后期维护可能会有问题。
  • RN仍不够稳定,一定时间后可能会出现较多的Breaking Changes,升级可能有障碍

再三权衡之下,选择了RN作为主开发框架。

对个人的效用

因为自己目前也只是一名学生,所以很看重技术选型给自己带来的效用。
换句话就是,选这个技术对自己的成长有什么帮助?或者能给自己带来什么?
带着这种想法去做技术选型,去学新技术,则会明确许多,而不是盲目的追新。

假使我已经能熟练运用Vue,理解Vue的思想与要解决的问题,那么下一个项目一定是React/Angular等未知领域的框架。
即使Vue用起来很方便,由于经验的积累,写起来也很快。但是对于个人成长而言,所起的作用已经不大,是时候去接触新的思想,新的框架,而不是继续留在舒适区。

这也是我在日常学习中很注重的一个方面:刻意练习。

在这种情况下,我选择了TypeScript作为自己的主开发语言,于我个人而言,TS的类型系统写起来很爽,也能让自己避免一些低级错误,还起到了基础的ESLint的作用,可谓是一箭三雕。
而事后也证明,熟练使用TS,让自己的开发效率大幅度提升,同时BUG数量比之前的少了很多。同时也能学到一些静态语言的知识。

另外一种情况则是自己选用的RxJS,整个项目中,就一个函数使用了RxJS,功能也很简单。
但是自己却觉得很划得来,因为RxJS的函数式写法很优雅,赏心悦目,看着就很开心。(对,为了开心

扫描二维码,分享此文章

Lxxyx's Picture
Lxxyx