今天拿到一个Excel表格,内容是中国行政单位名称,有省,市,区县,解析文件将数据导入到数据库中并且用三张表将三级行政单位关联起来。
之所以这么晚了还坚持将做这件事情的苦逼经历写出来,一方面记录下这次小题大做的经历;另一方面希望通过文字记录和边写边思考重新唤起本应该遵循的开发惯例和开发方法。
今天犯的错误太多了,感觉背上十字架游街都不为过,编程方法学,编码规范都成了纸上谈兵。罪状罗列下来一一参透:
1.对数据源即Execel文件么有做相关的数据,格式的分析
2.在主干方法未完成的情况下,过分在意代码重构
3.编码过程中没有进行版本控制,导致代码更改混乱
4.操作文件和数据库写入方面编码问题忽视
5.目标把握出错,致使过分讲究编码
这些问题归结一点是没有认真的思考,严密的分析,目标的准确把握。
场景:
1.数据库连接池方面一次性编码完成,并通单元测试通过,未花费过多时间
2.编写了Excel文件解析类,将数据以链表存储,链表的元素为自定义类型。在此之间编写了无用方法,比如统计各级数量,用户参数等信息,企图使类能够满足更多的需要,实际上违背了单一职责的原则。
2.将省,市,区县作为单独实体,编写了实体类。错误的将数据写入和查询联系在了一起,任务目标是将Excel文件解析,将数据按要求写入数据库,因此实体类不需要,这个错误属于过分扩大目标。
3.将省,市,区县通过HashMap存储,编写了三个级联的关系类。典型的小题大作,并且企图为简单的数据写入引进级联写入等复杂操作,最初想法是通过写入“省信息”而关联到“市信息”,再由“市信息”关联到“区县信息”,这样也为数据库的级联查询留出了空间,犯这样的错误还是对任务目标的认知有很大问题,并且对需求基本没有把握。
4.在写入数据库时,组织SQL脚本遇到了问题,使用对象化存储数据带来很大不变,遇到障碍。犯了一个严重的错误就是没有立刻停止工作,静下来重新想一想,企图通过代码的组织,重构来解决障碍,最终失败。
5.小任务在时间上的花费已经忍无可忍的时候,终于删掉了关系类,实体类,可扩展的方法等,重新对问题进行思考,最终立足对数据进行处理,而不是对象关系(各级数据)处理。
6.事先没有对源数据进行分析,当数据写入数据库后,发现数据文件中存在不符合格式排列的数据,致使重新将数据写入数据库。
7.编码问题应该更早时间里就应该意识到,并且有相应的解决策略。
总结下:
一个很小的工作反映了很多问题,这些问题有时候不会发生,但是目前反生了就足以说明软件开发的素养亟待提高。
思考不足,干劲再足只能使事情更糟糕。
目标明确,有效的结果是最基本的要求。
有软件开发理论,更应该有恪守原则的执行素养。
时间控制,效率也很重要。
寻求突破,在完成任务的前提下,注入更多思考和探索意义会更大。
记住吧!错误已经酿成,就安心消受带来的教育,读完卷开发指导思想,不如停下来深刻的想想。