zoukankan      html  css  js  c++  java
  • 《梦断代码》读书笔记

    ​ 我这周读完了《梦断代码》,这本书详细讲了 Chandler 软件的开发过程。在讲团队协作时,作者提到了一本书《大教堂与集市》。《大教堂与集市》的作者认为,重要的软件应该像建大教堂一样,由独立的巫师精心打造,在面世之前绝对不发布 beta 版本。而 Linux 采用的开发风格却像一个乱哄哄的大集市,铺陈了各种日程和手法,要从中得到一个前后一致的稳定系统,简直只能指望奇迹再三出现。可事实上这种集市风格看起来行之有效,让人非常震惊。后来人们在 Linux 系统的开发中总结出了 Linus 法则:只要有足够多的 beta 版测试人员和开发者队伍,几乎所有问题都能被很快发现,而且总有人知道该怎么修复。虽然 Linux 和 Apache 服务器采用的是集市型的开发并取得了巨大的成功。但我仍然更欣赏大教堂式的开发模式和Unix 的设计哲学 “KISS”:即,让代码得到复用,由稳定、健壮和独立的小工具组合出大程序。

    ​ 书中还提到,量化程序员的工作量是很困难的事情,用代码行来衡量程序员的工作非常愚蠢。程序员之间的生产力差距可能多达十倍以上,给程序员分配合适的任务也是很困难的事情。在我看来,

    ​ Linus 在接受采访给开源项目的建议是:从小项目开始,而且永远不要期望它变大。如果期望它变大,就会过度设计,把它想象得过于重要。更坏的情况是,可能会被自己想象中的艰难工作吓到。所以要从小处起步,着力考虑细节。别去想大图景和好设计。如果项目没有解决眼前的需求,多半就是被过度设计了。我认为这很有道理,很多时候,过度设计、过早优化、过度抽象、过度工程都是造成软件工程失败的原因,在开发软件的过程中,我们应该及时反思,以避免这些问题。

    ​ 书中还提到一个有意思的概念,如“意大利面条式代码”,指的是糟糕的程序员写出来的枝蔓缠结的代码。我们应该尽量避免产生这样的代码。

    ​ 最后,我想用书中的一个资深程序员的话结尾:软件的成功是铁一般的纪律的副产品 。要想在大型项目中保持高效,你得效忠于它。你要将它印在脑海之中。我在做大项目的时候,常常睡觉也梦到代码。

  • 相关阅读:
    五步搞定Android开发环境部署
    centos7安装MongoDB3.4
    java数据结构之三叉链表示的二叉树
    java数据结构之二叉树遍历的非递归实现
    java数据结构之二叉树的定义和递归实现
    java数据结构之树
    java数据结构之递归算法
    java数据结构之(堆)栈
    redis主从复制配置
    Redis 发布订阅
  • 原文地址:https://www.cnblogs.com/nicekingwei/p/8824307.html
Copyright © 2011-2022 走看看