梦断代码读后感1
今天开始读梦断代码了。
书中说道,“关于软件缺陷的话题,只要谈上几分钟,必会有人拍案叹道,‘为什么就是不能像造桥那样造软件?’”的确,掩卷长思,为神马不能像造桥那样造软件哪!细想起来,两者之间的根本不同在于,一个是体力劳动,以机械为主;一个是脑力劳动,以人为主。人,从来就不是一个确定的东西,有喜怒哀乐,有自己的偏爱和偏见,充满了各种不确定性,以它为主的项目,自然不可能做到分毫不差。软件工程的主要目的,就是尽量把这种不确定性从项目中剥离出来,使做软件真正成为一个工程,而不是个人英雄主义的胡拼乱凑。
《梦断代码》在讨论“软件时间”这一概念时,其中,布鲁克斯提出了一个十分著名的法则,“往以延误的项目中补充人力,只会使其继续厌恶”,这听起来像是一个悖论,但是其后无数年间的实践,这一原则都成了程序猿和开发经理的梦魇,他们“宁愿装作法则并不适用于自己,也不肯与之妥协“。布鲁克斯指出了其中要害,”只有在任务能分派给许多相互之间无须沟通的工作者时,人和月才是可互换品。“制作软件的大量工作受困与”序列约束“”,它限制的任务分解的程度:完成某项任务是处理其他任务的先决条件,这与人力投入多少无关。“十月怀胎,无论多少妇女参加都一样。”想想也是,一个完整的软件项目,必然要按照一定的流程来进行,诸如用户需求分析,详细设计等等,人力再多,有时也无法加快各个阶段的进度,反而可能会因为交流不畅而拖累整个项目。
所以一个项目不是投入的人越多越好,而是要按照一定的流程来做,这样才有可能及时完成。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· golang自带的死锁检测并非银弹
· 2024年终总结:5000 Star,10w 下载量,这是我交出的开源答卷
· 一个适用于 .NET 的开源整洁架构项目模板
· AI Editor 真的被惊到了
· API 风格选对了,文档写好了,项目就成功了一半!
· 【开源】C#上位机必备高效数据转换助手