<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>软件工程 on LeoChu Space</title>
    <link>https://leochu.work/blog/tags/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/</link>
    <description>Recent content in 软件工程 on LeoChu Space</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Wed, 22 Jan 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://leochu.work/blog/tags/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>人月传奇</title>
      <link>https://leochu.work/blog/reading/%E4%BA%BA%E6%9C%88%E4%BC%A0%E5%A5%87/</link>
      <pubDate>Wed, 22 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/reading/%E4%BA%BA%E6%9C%88%E4%BC%A0%E5%A5%87/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Frederick P. Brooks Jr.《人月传奇》。核心观点：软件项目最大的难点不是编码本身，而是复杂性、沟通成本和不可压缩的系统设计工作。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;核心观点&#34;&gt;核心观点&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;向延期项目增加人手，只会让它更晚。&lt;/strong&gt; 新人加入需要沟通、培训、同步上下文，短期内增加的是负担而不是产能。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;概念完整性比局部聪明更重要。&lt;/strong&gt; 一个系统最宝贵的是整体一致的设计语言，而不是每个模块都由最聪明的人各自发挥。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;软件开发存在本质复杂性。&lt;/strong&gt; 有些问题可以靠工具改善，但需求理解、系统边界、多人协作这些难题无法被简单消灭。&lt;/p&gt;
&lt;h2 id=&#34;印象较深的部分&#34;&gt;印象较深的部分&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;人月并不能自由替换。&lt;/strong&gt; 并不是每个任务都能线性拆分后并行推进，很多关键工作天然依赖少数人做深度思考。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;文档和接口设计是沟通成本控制器。&lt;/strong&gt; 项目一旦变大，真正稀缺的就不是“谁会写代码”，而是“谁能让协作保持有序”。&lt;/p&gt;
&lt;h2 id=&#34;读后感&#34;&gt;读后感&lt;/h2&gt;
&lt;p&gt;这本书虽然老，但读起来并不旧。今天工具多了很多，项目翻车的原因却没怎么变：目标没说清，边界没定住，沟通一乱，就开始指望“再加点人”补回来。&lt;/p&gt;
&lt;p&gt;核心是把软件工程从“多写点代码”拉回到“怎么组织人和系统一起工作”。&lt;/p&gt;</description>
    </item>
    <item>
      <title>代码整洁之道</title>
      <link>https://leochu.work/blog/reading/%E4%BB%A3%E7%A0%81%E6%95%B4%E6%B4%81%E4%B9%8B%E9%81%93/</link>
      <pubDate>Sat, 07 Sep 2024 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/reading/%E4%BB%A3%E7%A0%81%E6%95%B4%E6%B4%81%E4%B9%8B%E9%81%93/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Robert C. Martin《代码整洁之道》。核心观点：整洁代码不是美学偏好，而是长期可维护性的基础。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;核心观点&#34;&gt;核心观点&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;代码首先是写给人读的。&lt;/strong&gt; 机器最终当然会执行，但程序员大部分时间都花在理解和修改已有代码上。可读性不是附加价值，而是主价值。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;函数要短，职责要单一。&lt;/strong&gt; 一个函数一旦同时承担多层抽象、多种意图，理解成本就会迅速上升。短函数不是教条，单一意图才是关键。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;命名是第一层设计。&lt;/strong&gt; 好命名能直接省掉解释成本；坏命名会让系统像永远开着一层雾。&lt;/p&gt;
&lt;h2 id=&#34;印象较深的部分&#34;&gt;印象较深的部分&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;重复不只是代码味道，更是未来修改成本。&lt;/strong&gt; 逻辑复制一次看似省事，后面会以一致性风险的形式成倍偿还。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;错误处理和正常流程应当分离。&lt;/strong&gt; 把异常分支塞进主逻辑里，会让代码阅读路径被打断，结构也变得混浊。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;整洁不是一次性整理，而是持续的小修正。&lt;/strong&gt; 童子军军规式的“离开时让它比来时更干净一点”，比大规模重构更现实。&lt;/p&gt;
&lt;h2 id=&#34;读后感&#34;&gt;读后感&lt;/h2&gt;
&lt;p&gt;代码不会在项目后期突然变整洁，它只会在每次提交里慢慢变好，或者慢慢变烂。&lt;/p&gt;
&lt;p&gt;很多工程问题到最后都不是技术突破不了，而是前面欠下的整洁债开始一起算账。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
