Notes on Software Engineering at Google (1)
前言:这本书看的断断续续的,如果不留点笔记可能很快就忘了,所以还是要记录一下。本书作者免费发布 pdf 版本,可以在 Software Engineering at Google (一下可能简称为 SWE)免费下载。因为是个笔记,所以行文可能逻辑比较断裂。 什么是软件工程 Nothing is built on stone; all is built on sand, but we must build as if the sand were stone. —Jorge Luis Borges 第一部分主要是在讲软件工程的定义,Software Enginner (以下可能简称为 SE)与 Programming 的区别。 最核心的一个想法是,你的代码的生命周期是多久?Google 的新项目往往默认项目会存在十年——这样一来,基础组件升级、依赖变化、团队组成都可能会变化,从而最终影响决策、影响设计。 这一点上国内很多项目肉眼可见的做的不好,最典型的莫过于百度的博客。当然这不意味着个 Google 的产品做得多好,但是这个思维方式确实很有用。当你设计的时候想的是要用十年,很多设计和决策就就和短期项目完全不同了。 我猜可能有很多人会有不同意见,比如像下面这个图里的例子 我觉得也并非不可调和,业务驱动的产品,很多时候就是需要快速试错,上线一个 demo 能用就行——这种情况就是定位为 demo,定位为 programming 就好了。另一方面,这也和从业人员对 SE 了解太少,公司无法做到将 SE 融入到日常有关,如果 […]