首页>>新闻>>App开发,怎样又快又稳又清晰(下)

App开发,怎样又快又稳又清晰(下)

19-08-27

    结构分层

    使用框架是必须的,Model层,View层必须职责单一,至于使用MVP、MVVM还是别的什么就看个人偏好和项目需要了。个人比较偏好MVP,当然,Rx链式编程也不错。

    * 个人在结构分层上,有这么几个经验

    高内聚的数据层,把与数据读写相关的处理,网络读写、本地读写、缓存数据等,包括模拟数据,都集中到数据层,通过回调或链式调用等方式抛出数据给业务层,通过多版本机制切换模拟数据和真实数据。

    松耦合的Activity,界面应该是与业务相关最低的,主要提供一个显示载体,并触发生命周期处理,Activity应该可以很容易地被替换掉。
    独立且方便测试的业务层,业务层应该可以实现自动化测试,这非常重要,即使你不去实施自动化测试,把代码写成可以自动化测试的,也能帮你优化代码,该抽象的抽象,该剥离的剥离。

    必要时抽象特殊控件,如果控件需要复用,就不要让控件融合进Activity,而是抽象为独立的显示控件,这样既能解耦合,又方便复用。

    不要过度设计

    敏捷开发里有一个实践原则,就是不要过度设计,开发的价值不在于写出漂亮的代码,在于实现产品并支撑其正常运转,在能实现产品功能的前提下,代码逻辑其实是越简单越好,简单往往就意味着高可靠性+低维护成本,如果将来需要扩展功能,可以通过修改和重构实现。
    当然,简单并不意味着随意,要把事件做复杂很容易,要做简单却很难。能做到逻辑清晰、线程安全、内存安全,又容易修改和扩展的同时,还能保持代码简洁,其实反而更考验功力的。

    其实不仅在开发新功能时要避免过度设计,在维护和扩展旧代码时,也要注意,能正常运行的代码,都是好代码,我觉得在维护旧代码时,其实也适用开放封闭原则,对不得不改,不改就崩的旧代码,是开放的,可以修改的;对能正常运行的代码,哪怕你觉得再难看再手痒,那也是封闭的,是不可以修改的。

    回到那句话,开发的价值不在于写出漂亮的代码,在于实现产品并支撑其正常运转。

    通用库的建立与维护

    我们知道,项目管理有四个要素,时间、成本、范围、质量,这四个要素一般是不能兼得的,要时间,就得砍一些范围的项目目标,降成本,就容易牺牲质量,等等,不过,建立和维护通用库,却能同时对四个要素都有好处。

  • 加快开发速度,专注于具体业务(时间)

  • 降低团队成员熟悉项目的成本,为新业务开发提供基础,加快开发迭* 代速度,有利于更快地发布版本

  • 提高代码复用率,降低开发投入(成本)

  • 稳定的公共模块采用依赖组件库方式,提供给各个业务线协作使用,* 减少重复开发和升级维护工作量

  • 提升开发效率,更容易实现项目目标(范围)

  • 对已实现过的功能/业务,抽象出通用模块,再有类似的需求,能够 迅速实现,更容易实现项目的业务需求

  • 提升产品质量,持续改进通用功能(质量)

  • 频繁使用的功能/业务模块采用组件复用方式,更有利于暴露缺陷, 一处修改,多处受益,提高产品质量

    工具与模板等

    其实说起提高效率,前面的很多经验因为需要在实际开发中慢慢体会,难以迅速上手,反而是工具模板,真正见效快,一次安装,终生受益 :)

    就我的经验而言,对我开发效率帮助最大的,包括代码模板、常用配置和开发插件,以及著名的程序员在线交友网站Github。

    代码注释

    一般来说,程序员看自己一个月前写的代码,是完全陌生的,我也一样,基本上过一个月就没印象了,但是如果要修改/扩展怎么办,这时候,就得看代码注释了。就个人经验而言,有这么几个地方,一定要写注释:

    接口,特别是MVP的Contract接口,这里面基本定义了你的主要业务行为,谁来加载数据,谁来显示数据,谁触发的下一步操作,这些内容写明白了,以后读代码,只要看接口就知道主要业务是怎么回事儿了。

    服务、广播等,服务和广播因为没有界面,容易游离在业务逻辑链条之外,在业务逻辑上缺少上下文,就必须有详尽的注释,说明其业务场景。

    初始化、注入等,如果自定义了一些扩展的功能或控件,要求执行某些初始化函数,或者要注入特定功能的,就必须写好注释,提示调用者进行必要的操作。

    TODO,工作总要排优先级的,有些工作暂时延后,自己记录是没用的,团队开发最终用的还是代码,所以一定要写TODO,提示开发者,这里是未完成的状态,避免不必要的误会和延误。

   网站建设知识>>

郑州企业网站建设,找闪创科技!

怎么去开发一个企业官网 都需要准备什么

   app开发知识>>

郑州APP开发,速度质量怎么定义?

微信小程序的市场如何?

   运营服务>>

郑州APP开发:自媒体运营到底是什么?

郑州软件开发:怎么花最少的钱去运营APP?