谈谈团队合作中的设计与优化

在团队合作之前,需要对要开发的功能进行设计,究竟设计到什么程度,哪些是可以忽略的,哪些是一定要敲定的,希望本文可以说清楚。


每个功能都可以从story开始

例如:作为XXX角色,需要1个XXX功能,这样就可以完成XXX工作


一切从原型开始

这个story中该有什么,UI简图,什么是简图,就是原型图,可以使用原型工具来完成,或者CSS+HTML放几个链接模拟出简单的交互。


完成了原型,是输入和输出

最重要的信息是什么,输入和输出。确定输入来自哪里,接受输入的人就开始考虑如何来模拟这个输入;确定了输出,用于接收输出的人也可以考虑如何mock这个输出。


常见的过度设计

现在就可以开始编码以及联调了,可是在没有效率的会议中,通常会出现讨论实现细节的问题,例如具体的数据结构,类层次结构,继承关系,哪些改抽象,甚至使用哪种模式等等。以上种种,我统统称为过度设计。过度设计除了浪费时间之外,不会有任何价值。


推荐的流程

先完成功能

在功能没做出来以及联调工作没完成(如果需要)之前,谈设计细节是没有意义的。软件不是传统工业,需要迭代来保证持续交付性。因此,第一次迭代,先把功能做出来。


重构

完成了功能(包括单元测试)之后,代码总有不满意的地方,这时可以适当重构,但不必过度重构。重构与编码时的关注点不同,重构时只关注可维护性,在面向对象编程中,主要关注对象的职责,找出没有尽到职责的对象,以及多管闲事的对象。


优化

首先是用户体验。其次,取决于应用类型,实时性高,并发大的应用,就需要重点关注性能部分;金融系统,就需要更多的关注安全性方面。

你可能感兴趣的:(谈谈团队合作中的设计与优化)