《大道至简》读后感
刚开始接触软件工程时,我总觉得摸不着头绪,直到翻开《大道至简》,像在迷宫里找到了路标,一下子看清了软件开发的门道。读完这本书,我对软件工程有了全新的理解,也开始反思自己以前尝试写代码时踩过的坑。
尝试做Java小项目,比如写个图书管理系统,我都是想到哪写到哪。打开编辑器就开始敲代码,从没想过先问问用户需要啥功能,总觉得能实现增删改查就够了;也不琢磨代码该怎么组织,一个类里塞十几个方法是常事,数据处理和业务逻辑搅成一团。测试更随便,输几个正常数据,没报错就觉得搞定了。
现在回头看,这跟书里说的软件工程差太远了。书里说软件开发得有章法,先搞清楚需求就像盖房子先画图纸。我跳过这一步,后来才发现用户需要“批量借书”“统计图书类别”这些功能,想加进去时,代码乱得像一团麻,改一处就得动好几处,简直头大。代码没规划,找个小功能都得翻半天。
看了《大道至简》,我才明白问题出在哪。软件工程不是瞎糊弄,需求没搞透,做出来的东西用户不爱用,等于白做。不设计代码结构,就不符合“高内聚、低耦合”的规矩,后面想改一点东西,成本能翻好几倍。书里说的“软件生命周期”,从需求到维护一步都不能少,我之前直接跳过前面的步骤写代码,就像盖楼不打地基,越往上越危险。测试这块,书里说要一层层测,从单个方法到整体系统,把各种特殊情况都考虑到,我之前随便测测,根本保证不了质量。
为了不再犯这些错,我照着书里的方法,理出了新的开发步骤。以后做项目,第一步先把需求摸透。比如做图书管理系统,就去问图书馆管理员、学生想要啥,用聊天、发问卷的方式,把功能、能承受多少人同时访问这些事记下来,写成文档。然后设计代码结构,用UML图画出类的分工,分成数据处理、业务逻辑、界面展示几层,每个类该干啥明明白白。写代码时按规矩来,用工厂模式、单例模式这些办法让代码更规整。测试的时候,先用JUnit框架测每个方法对不对,再看模块之间配合得咋样,最后模拟真实使用场景,比如输负数当图书数量、很多人同时用的情况。开发时一小步一小步来,定期回头检查,有问题就赶紧改。
《大道至简》让我明白,软件工程不是随便敲代码,而是一套有规矩的学问。它不光教我怎么开发软件,更让我学会用严谨的态度对待代码。以后学Java、做项目,我会照着书里的道理做,从“瞎写”变成“会做”,让写出来的代码更靠谱、更有用。也希望在以后的学习里,能从这本书里学到更多本事,慢慢提高自己的开发能力。