《程序员修炼之道》第七八九章读书笔记
《程序员修炼之道》第七八章
第七章“当你编码时”中主要强调的时候我们在写代码时应当如何处理直觉、结构、测试等内容。“听从蜥蜴脑”这一提示强调我们在编码时通常会通过直觉判断代码对不对,逻辑是否合理,这种直觉其实是很宝贵的,如果出现这种直觉我们需要去好好审计一下我们的代码,很有可能隐藏着我们没有发现的坑。“巧合式编程”提醒我们不能因为程序看起来能跑就相信它是正确的,不应该停留在表象,强调我们不应该依赖偶然成功。“重构”和“为编码测试”这两个提示更是我们日常开发中常会遇到的问题。重构代码时虽然痛苦,也伴随着风险,但是重构完成之后能够为后续迭代和优化带来很大的便利。“事物命名”就更加的常见了,我们每定义一个变量、字段或者方法都需要让使用者能够直观知道其含义。
第八章“项目启动之前”,这一章节强调我们在正式编码之前的阶段如:需求分析、项目协作等,在我们公司项目开发前往往会有两个步骤就是需求评审、和技术评审。随着接触的项目越多越发的觉得这两个阶段是很重要的。只有深刻的理解了需求评审的内容,项目目标我们才能够更好的为了实现这一目标选择什么样的技术方案。而技术方案往往就关系着我们在编码时的代码内容。在这两个阶段我们需要去主动识别不确定性,善于提问、预判边界、反复澄清。这些内容往往会帮我们规避很多线上bug,提升我们的代码质量和健壮性。其实我们不仅仅要写出正确的代码,更要在正确的时间写出有价值的代码,并能与他人协同高效推进项目。这需要我们既要有技术的沉淀,也要有思维的高度,既要重视代码本身,也要重视人、团队与流程之间的关系。
《程序员修炼之道》第九章
在阅读《程序员修炼之道》第九章“务实的项目”时,我对“务实的团队”和“取悦用户”这两节感触最深。作者指出,真正高效的开发团队并非天才聚集,而是由一群愿意主动沟通、互相支持、尊重流程、追求改进的开发者组成。团队之间的协作效率与心理安全感比单个成员的技术水平更能影响项目成败。
一个好的团队对于项目来说是大于程序员的技术能力的,遇到问题不去甩锅而是想着如何去面对问题解决问题。队员之间积极讨论,思想之间的碰撞能够为项目带来正反馈。团队不只是人员的集合,而是一个能够相互补位、协作前进的系统体。
“取悦用户”这节也让我重新审视了我们与最终使用者之间的关系。也让我意识到一个更深的务实含义——程序的最终目的是服务于人。我们开发的系统再稳定、性能再好,如果用户不愿意使用、不知道怎么使用,都是失败的。
“傲慢与偏见”,我认为是对程序员常见认知误区的深刻反思。有时候我们容易陷入“用户不懂技术所以他们的反馈没价值”的误区,从而忽略用户意见,推崇“技术至上”。但事实上,开发者再聪明也无法预知所有业务场景,用户反馈才是功能设计的真实落脚点。如果我们设计的功能无法切实符合用户的使用场景,那么这个功能即使再好用也是鸡肋。程序员不能因为掌握技术就产生优越感,忽略来自用户、测试、运营等角色的反馈,技术只是一个工具,而不是我们所需要达成的目标。