技术选型小结

Posted on By Vivian Sun

简介

技术选型,选择合适技术方案来实现需求。

因为本人是从事移动开发,因此这里主要基于移动端的软件选型来总结。

了解需求

知己知彼,百战不殆。 我再做事情的事情通常会思考:

  1. What 任务是什么? 答:实现一个论坛app
  2. Why 为什么? 答:论坛仅有web端,需要client端方便用户交流
  3. When schedule要求? 答:一个月后Alpha版完成
  4. How 如何进行? 答:确认需求,接口定义,技术选型和架构搭建
  5. How 如何高效? 答:性能优化,项目重构

其中的第一步就是了解需求,总的来书是了解产品需要哪些模块,每个模块的Spec和呈现

  • 产品定位:论坛性质app (此处需要参考各类竞品)
  • 页面功能划分:首页,论坛,搜索,我的
  • 各个功能模块的具体Spec和呈现效果

产品初期往往会参照很多竞品,比较容易get到产品的功能点。

另外产品的需求通常需要几轮的讨论以及实际开发中遇到问题再多次反馈,才有最终定案。因此BRD,MRD,PRD通常都是不断更新的。

技术选型

在了解初步需求后,开始实做时,第一步就是技术选型。

我们需要考虑下面几点:

  1. 跨平台的性能
    • 没有跨平台要求,因此选择混合Hybird开发:H5 webview装载 + android原生开发
  2. 技术是否稳定
    • android原生开发 + H5(webview加载)较为稳定
    • RN也比较适合信息内容类的app,但是RN较android开发尚有一些性能和不稳定的问题。比如listview滚动性能不佳(不知现在是否已经改善)
  3. 扩展性和维护性
    • 项目架构分为展示层,数据层和公用库三层,扩展性和测试性都相对不错
    • 如果后期需要还可以通过组件化和插件化等实现更好可维护性和扩展性

总的来说,最重要的是选择的技术是否符合产品的特性。比如论坛app属于信息更新时效性比较强的app,很适合混合开发。这就需要自己对主流技术的优缺点非常的了解。

另外因开发周期非常短(人力3),而且需要跟三个部门协同合作。选择混合开发可以大大降低android native开发的压力其中第一点尤为重要和

此项目的总结在这里:ZenTalk