App开发,怎样又快又稳又清晰

2017-08-22  本文已影响369人  蓝灰_q

开发者的价值,是通过技术和产品体现的,对于App开发来说,除了实现业务之外,最重要的莫过于开发的速度、质量和可维护性,速度决定你能否支撑公司抢占市场,质量决定你们能不能站稳位置不被迅速踢走,可维护性决定你们继续前行时能否保持轻快的步伐。

速度、质量和可维护性

对速度、质量和可维护性的要求,其实就是又快,又稳,又清晰的要求。

对于开发者来说,怎样才能又快又稳又清晰地开发App,这里梳理了我的几点心得。

有限参与业务设计

从职责分工上,业务设计是运营部门和产品经理的工作,确实不应由研发负责,但我说的是参与,研发(包括测试)应当尽早参与业务设计,一方面提前发现问题,另一方面可以引导和建议技术路线。
研发参与设计,可以规避很多问题,例如通信压力、加载速度、延迟时间、硬件负载等移动开发特有问题,不能指望运营和产品能像专业的研发一样面面俱到,考虑周翔。
另一方面,研发参与设计还可以引导技术路线,例如采用原生App、混合App还是ReactNative形式,采用单用户体系还是多用户体系,采用什么收费形式等。
在实际操作中,业务设计诸如收费形式,异常提示,乃至于业务逻辑上的严密性,你都可能发现漏洞。

当然,参与设计必然会占用研发时间,有人会觉得委屈,感觉这是替产品做了他们的工作,但其实研发参与设计,省下的还是自己的时间,因为无论产品如何设计,最终都需要技术来研发实现,如果设计上出了问题,你修改代码的投入,可比产品改文档的那点儿投入大多了。
当然,公司层面也应有清楚的定位,研发对设计的投入,必须是有限的指导性的,如果大量把研发投入到设计工作,就是另一种形式的浪费了。

异常处理

在实际开发过程中,除bug其实占了相当一部分工作量,有时候好好的开发计划,因为几个诡异的bug就得耽误半天,所谓“码字5分钟,排错两小时”是也。所以,能否尽早尽快处理异常,是非常影响开发效率的。
处理异常,我有这么几条心得:

其实java的异常处理的内容还有很多,感兴趣可以看一看我以前总结过的Java异常捕获的设计原则

结构分层

使用框架是必须的,Model层,View层必须职责单一,至于使用MVP、MVVM还是别的什么就看个人偏好和项目需要了。
个人比较偏好MVP,感兴趣可以看一看MVP框架的演化,当然,Rx链式编程也不错。
个人在结构分层上,有这么几个经验:

不要过度设计

敏捷开发里有一个实践原则,就是不要过度设计,开发的价值不在于写出漂亮的代码,在于实现产品并支撑其正常运转,在能实现产品功能的前提下,代码逻辑其实是越简单越好,简单往往就意味着高可靠性+低维护成本,如果将来需要扩展功能,可以通过修改和重构实现。
当然,简单并不意味着随意,要把事件做复杂很容易,要做简单却很难。能做到逻辑清晰、线程安全、内存安全,又容易修改和扩展的同时,还能保持代码简洁,其实反而更考验功力的。
其实不仅在开发新功能时要避免过度设计,在维护和扩展旧代码时,也要注意,能正常运行的代码,都是好代码,我觉得在维护旧代码时,其实也适用开放封闭原则,对不得不改,不改就崩的旧代码,是开放的,可以修改的;对能正常运行的代码,哪怕你觉得再难看再手痒,那也是封闭的,是不可以修改的。
回到那句话,开发的价值不在于写出漂亮的代码,在于实现产品并支撑其正常运转。

通用库的建立与维护

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

工具与模板等

其实说起提高效率,前面的很多经验因为需要在实际开发中慢慢体会,难以迅速上手,反而是工具模板,真正见效快,一次安装,终生受益 :)
就我的经验而言,对我开发效率帮助最大的,包括代码模板常用配置和开发插件,以及著名的程序员在线交友网站

代码注释

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

上一篇 下一篇

猜你喜欢

热点阅读