最近一年一直负责公司一款大数据挖掘产品的设计和基础开发,目前基本到了稳定版,下面是一些经验教训。
软件设计中的注意点:
1.只要有一个不确定点或者歧义的地方,然后这里肯定会出问题。这个也符合墨菲定理,只要不往好的方向努力,最后得到肯定是坏的结果。
2.在基础框架实现时,一定要确定好模块和框架间的接口关系,并且不能有接口歧义或多定义的地方。
3.看似简单的东西往往要开发很长时间,因为大部分时间都耗费在调试和不断的迭代测试中。
4.如果软件的外部接口过多,必然有小功能带来大工作量的问题。要及时做出取舍,不然产品发布永远遥不可及。
5.随着系统不断的重构,必然带来很多歧义的接口,对于不确定方法,接口,尽早删除。
6.分清变和不变,不变的尽量通用,变的尽量和框架隔离。
7.观察者模式是模块解耦的利器。但是事件类型必须统一定义,分门别类,强势固化。
8.个人知识面必须尽可能的广,产品牵扯到图形输出,数据库,大数据技术,并使用python,scala,java开发。测试和实施中的问题必须及时解决。
9.性能是用户体验的基础,必须全力保证。多人开发时必须紧定每日提交代码。着重性能瓶颈分析。
10.上帝类在不知不觉中产生,一有苗头,必须马上重构。
11.对于引入的框架必须彻底学会后使用。
12.基础知识是效率的保证,必须先磨刀后砍柴。