首页 > 其他分享 >梦断代码读书笔记1

梦断代码读书笔记1

时间:2023-04-17 20:12:01浏览次数:36  
标签:读书笔记 代码 梦断 开发 软件 过程 Chandler

这个月我开始了对《梦断代码》这本书的阅读。

《梦断代码》一书记录的是作者罗森伯格对OSAF主持的Chandler项目进行田野调查,通过Chandler开发过程来揭示软件开发过程中一些根本性的大问题。对本书才刚刚阅读了三分之一,就已经忍不住对作者描述的开发过程所感叹,虽然刚进入软件领域不久,但是仍旧有感于这本书中的现实,对自己也很有启发。

初读本书,最让我耳目一新的就是它的章节排布,出现了第0章。印象最深的一句话是作者在写到关于“hello world”时提到的一句话,“既然能叫它说话,就能让它做任何事”。遥想自己刚入门编程的时候,对helloworld还懵懵懂懂,但是仍旧不减对软件世界的憧憬,无论是手机上还是电脑上,五花八门的软件甚至让我有过把手机上的软件全部换成自己开发的软件的幻想(虽然不切实际,但确实是高中时就对软件工程专业的憧憬)。而作者将首个章节标记为第0章的意义,就是程序员从0开始计数的寓意。从0开始憧憬,从0开始进步,计算机也是从0开始计数的,从0开始,我第一次让计算机说出了helloworld,同时也激发了我对软件的兴趣与期望。

在当今社会,软件已经成为人类生活中不可或缺的一部分,“人类文明运行于软件之上”的说法虽然有点自卖自夸,但它很是明确的反应了软件在人类社会中的地位。它存在于厨具里、汽车里、玩具里、建筑中,商业、科研、医疗、基础公共设施哪里都有它的影子,人类生存之所需都系于计算机代码这根易断的细线上。软件事业发展至今,也不乏面临过、面临着许多困难。而从事与软件事业的程序员们,最优秀的品质莫过于面临困境还不忘幽上一默的乐观态度,也正是这样的乐观态度,才使得软件能够不断地被修复、被更新,以至于发展到今天这个软件纵横的社会。

还记得大一下学期有一段时间对游戏开发产生了兴趣,当时的热情激励我学习了C#,学习了unity,甚至学习了一部分3d建模(当然时间问题并不精通)。在自认“学有小成”之后,我决定从0开始开发一个自己的游戏,虽然都说“若能取之于现有,程序员绝不肯创之于本无”,但是心中的热情还是促使我创造自己的代码与模型。经过一个月的建模工作,终于搭建好了一个比较满意的地图,但是当地图搭建完成之后,我突然不知道游戏的主题应该往哪个方向发展了,做射击类?但是地图又不能很好的支持剧情。做冒险类?又没有太多的素材。最后终于在进行一段胡乱编码后不了了之。

这件事之后,我也是充分认识到了架构的重要性。如果在动手开发之前没有合理的设计方案,没有列出可能的错误,没有给定开发的方向以及注意事项,最终的结果就是白费力气,要知道,软件不等同于程序。一个简单的程序可以不用明文的设计,一股脑的敲代码或许就能实现,但是软件不一样,如果一开始不确定软件的功能模块、体系架构,到后期就会出现无数种不确定性。在后来的web开发中,我充分吸取了以前的教训,无论多么简单的web项目,都首先确定其架构,列出功能项和子功能分布,数据库的数据表结构设计,以及开发过程中需要注意的事项,这些开发前的准备往往会大大减少编码时间,让编码时的思路更加清晰。

在《梦断代码》中,Chandler的开发过程中就有我碰到的问题的放大版,虽然Chandler开发过程中制定了很多的开发计划,但是每一个决定中都包含了不确定性。构建软件最难的部分是决定说什么,而不是怎么说。如果没有一个好的决策,就像在没有凝固的地面上建楼,怎么能站得稳呢?

书中提到一句话,“唯有万丈雄心能助你艰难前行”,这其实是对软件开发过程中某种现状的讽刺,即仅仅抱着自己的工作能改变人们生活的期望投入开发,没有合理的、完整的、优秀的设计与决策,仅靠“万丈雄心”,是很难做出成果的。

综上,清晰的思路、合理的设计是开发软件必须的第一步。

标签:读书笔记,代码,梦断,开发,软件,过程,Chandler
From: https://www.cnblogs.com/wzs-study/p/17327334.html

相关文章

  • 跨屏零代码saas建站平台2023.4.17发布更新
    跨屏零代码saas建站平台2023.4.17发布更新,对于用户管理后台中的菜单设置做了升级,允许新增菜单并且自定义菜单链接,这样可以让网站菜单变得更加灵活可控,可以满足不同模板中多样的需求,升级以后的网站菜单支持添加菜单,删除菜单,控制菜单是否在导航显示,设置菜单排序,修改菜单名称等。......
  • 《用户故事与敏捷方法》读书笔记4
    用户故事和Scrum团队需要逐步地完善整个系统,不断地给软件添加更多的细节,软件的功能也由此越来越完备。Scrum是敏捷方法中一种迭代递增的软件过程,实施scrum过程的项目往往采用30天为周期的迭代,称为Sprint,团队确认这个Sprint需要完成的工作,将所有任务放到成为产品Backlog的列表中......
  • 人人尽享的低代码,会不会是下一个“财富密码”?
    数字化进入深水区,你的企业在追求数字化转型但无从入手亦或是手忙脚乱,不少人会遇到这样的问题:与开发新应用相比,你花费了更多的时间在维护和更新现有应用上,的IT团队正在不断收到打击;如果你挨过了最困难的时期,但资金却难以平衡于新业务和现有业务,一系列的问题,让你头昏脑涨。有问题......
  • 代码大全读后感(1)
    《代码大全》读后感(一):软件设计与开发的核心就在于:控制复杂度最近在《代码大全》这本书,包括的内容非常多,从软件设计到代码开发,团队管理都有,更像是一个软件编程领域的百科全书.但是,对于书中提到的一点印象最为深刻,其实在《人月神话》和《卓有成效的程序员......
  • 如果是不创建新浏览器窗口,直接在已打开的浏览器,则代码需要修改为:
    如果是不创建新浏览器窗口,直接在已打开的浏览器,则代码需要修改为:caps=DesiredCapabilities.CHROMEcaps['loggingPrefs']={'performance':'ALL'}options=webdriver.ChromeOptions()options.add_experimental_option('w3c',False)options.add_experiment......
  • 用低代码平台可视化设计表单
    表单在前端可谓是非常常见的场景,而且通常需要花费开发非常多的时间来处理各种复杂的逻辑。特别是在企业中后台的业务中,存在着大量的表单,比如客户的订单,投诉的问题单,服务跟进过程每个流程的流转。凡是存在用户输入的地方都存在着各种各样的表单,字段或多或少,逻辑或繁或简。需求一旦......
  • 代码随想录 46天 day198.打家劫舍 | | 337.打家劫舍 III | 213.打家劫舍II
    你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你不触动警报装置的情况下,一夜之内能......
  • <<梦断代码>>读后感(二)
     当今世界,软件已经成为当今世界不可或缺的一部分。而《梦断代码》一书记录的是作者罗森伯格对OSAF主持的Chandler项目进行田野调查,通过Chandler开发过程来揭示软件开发过程中一些根本性的大问题。   第四章作者将其命名为乐高王国。卡普尔很注重前台的效果,着重于如何体现Ag......
  • 介绍一款 ABAP 代码搜索工具 RS_ABAP_SOURCE_SCAN 的使用方法
    @目录ABAP代码搜索工具:ABAP报表RS_ABAP_SOURCE_SCAN实际工作中的一个需求:找到SAPCRM产品主数据搜索实现里使用了OPENCURSOR关键字的准确位置笔者曾经写过一篇文章,介绍了如何根据ABAP错误消息找到准确的抛出该错误消息的代码位置:SAP错误消息调试之七种武器:让所有的错误......
  • 代码随想录 day 46 139.单词拆分
    给定一个非空字符串s和一个包含非空单词的列表wordDict,判定 s是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例1:输入:s="leetcode",wordDict=["leet","code"]输出:true解释:......