zoukankan      html  css  js  c++  java
  • 《程序员修炼之道》摘录(转)

    1.我的源码让猫给吃了——不要找借口,要负责。

    2.软件的熵——不要容忍“破窗户”(低劣的设计、错误决策或是糟糕的代码),见一个修个。

    3.石头汤与煮青蛙——做变化的催化剂,避免“启动杂役”;记住打图景,温水煮青蛙。

    4.足够好的软件——使质量称为需求问题;避免过度修饰。

    5.你的知识资产——定期为你的知识资产投资(最简单的就是买书);批判地分析你读到的和听到的。

    6.交流——被打量比被忽略要好(这个深有体会);你说什么和你怎么说同样重要。

    7.重复的危害——DRY

    8.正交性——消除无关事物之间的影响。

    9.可撤销性——如果某个想法是你唯一的想法,在没有什么比这更危险的事情了;不存在最终决策;灵活的架构。

    10.曳光弹——原型制作生成用过就扔的代码。曳光弹代码虽然简约,但却是完整的,并且构成了最终系统的骨架的一部分。

    11.原型与便笺——任何带有风险的事物。以前没有试过的事物或是对于最终系统终端极端关键的事物。原型并不一定要编写代码,有时用便笺就可以。

    12.领域语言。

    13.估算——多准确才足够准确

      时长                                       报出估算的单位

       1-15天                                              天

        3-8周                                               周

        8-30周                                             月

        30+周                                     在给出估算前努力思考一下

    14.纯文本的威力。

    15.shell 游戏——利用命令shell的力量。

    16.强力编辑器——(vim 或 sublime text)。

    17.源码控制——(git或svn)。

    18.调试——最容易欺骗的人是一个人自己;不要恐慌;调试的思维方式。

    19.文本操纵——学习一种文本操纵语言。

    20.代码生成器——编写能生成代码的代码(《黑客与画家》中也提到这一点)。

    21.按合约设计。

    22.死程序不说谎——早崩溃;检查每一个可能的错误。

    23.断言式编程——如果它不可能发生,用断言确保它不会发生。

    24.何时使用异常——将异常用于异常的问题。

    25.怎样配平资源——要有始有终。

    26.解耦与得墨蕊耳法则——模块之间的耦合减至最少。

    函数的得墨忒耳法则规定,某个对象的任何方法都应该只调用属于以下情形的方法:
    class Demeter
    {
    public:
       void example(B &b);
    private:
        A *a;
        int func(){}
    }
    void Demeter::example(B &b)
    {
        C c;
        int f = func(); <------------------1. 它自身
        b.invert(); <----------------------2. 传入该方法的任何参数
        a = new A();
        a->setActive(); <------------------3. 它创建的任何对象
        c.print(); <-----------------------4. 任何直接持有的组件对象
    }
    得墨忒耳法则缩小了调用类中的响应集的规模,结果以这种方式设计的类的错误也往往更少。

    27.元程序设计——要配置,不要集成;将抽象放进代码,细节放进元数据。(有所体会)

    28.时间耦合——分析工作流,以改善并发性;架构、并发、接口、部署。

    29.它只是视图——发布/订阅;MVC。

    30.黑板——用黑板协调工作流。

    31.靠巧合编程——编写自己能控制的代码,不要靠巧合编程。

    32.算法速率。

    33.重构——早重构,常重构。

    34.易于测试的代码——单元测试;构建测试窗口。

    35.邪恶的向导——不要使用你不理解的向导代码。

    36.需求之坑——不要搜集需求,要挖掘他们;用户;文档。

    37.解开不可能解开的谜题——什么时候坚持,什么时候改变。

    38.等你准备好——什么时候准备,什么时候开始。(要有良好的判断)

    39.规范陷阱——对有些事情“做”胜于“描述”。

    40.圆圈与箭头——不要做形式的奴隶。

    前面这七章是对个人而言,第八章对团队而言(后面再看)

    关键词:重构  单元测试 没有解不开的难题  交流 曳光弹  元程序设计 DRY 正交性 对代码负责 ”等你准备好“

    原文出处:http://www.cnblogs.com/hidewsj/p/3196650.html

  • 相关阅读:
    js中操作Map集合
    js中json字符串与map的相互转化
    安卓开发--个人软件开发-day05
    javabean工具类方法lombok
    hadoop的datanode没有正常启动
    安卓开发--个人软件开发-day04
    安卓开发--个人软件开发-day03
    bigData学习笔记-hadoop总结
    spring框架学习之mybatis
    安卓开发--个人软件开发-day02
  • 原文地址:https://www.cnblogs.com/m3Lee/p/3497753.html
Copyright © 2011-2022 走看看