• The Pragmatic Programmer Quick Reference Guide


    1.关心你的技艺

      Care About Your Craft

      如果不在乎能否漂亮地开发出软件,你又为何要耗费生命去开发软件呢?

    2.思考!你的工作

      Think! About Your Work

      关掉自动驾驶仪,接管操作。不断的批评和评估你的工作。

    3.提供各种选择,不要找蹩脚的借口

      Provide Options,Don't Make Lame Excuses

      要提供各种选择,而不是找借口。不要说事情做不到;说明能够做什么。

    4.不要容忍破窗户

      Don't Live with Broken Windows

      当你看到糟糕的设计、错误的决策和糟糕的代码时,修正它们。

    5.做变化的催化剂

      Be a Catalyst for Change

      你不能强迫人民改变,相反,要向他们展示未来可能会怎样,并帮助他们参与对未来的创造。

    6.记住大图景

      Remember the Big Picture

      不要太过专注于细节。。

    7.使质量成为需求问题

      Make Quanlity a Requirements Issue

      让你的用户参与确定项目真正的质量需求

    8.定期为你的知识资产投资

      Invest Regularly in Your Knowledge Potfolio

      让学习成为习惯

    9.批判的分析你读到的和听到的

      Critically Analyze What You Read and Hear

      不要被供应商、媒体炒作、或教条左右。要按照你自己的看法和你的项目的情况去对信息进行分析。

    10.It's Both What You Say and the Way You Say It

    11.DRY-Don't Repeat Yourself

    12.Make It Esay to Reuse

    13.Eliminate Effects Between Unrelated Things

    14.There Are No Final Decisions

    15.Use Tracer Bullets to Find the Target

    16.Prototype to Learn

    17.Program Close to the Problem Domain

    18.Estimate to Avoid Surprises

    19.Iterate the Schedule with the Code

      用你在进行实现时获得的经验去提炼项目的时间指标。

    20.Keep Knowledge with Plain Text

    21.Use the Power of Command Shells

    22.Use a Single Eidtor Well

    23.Always Use Source Code Control

    24.Fix the Problem,Not the Blame

    25.Don't Panic When Debuging

    26."Select" Isn't Broken

      bug可能在应用中

    27.Don't Assume It -Prove It

    28.学习一种文本操作语言

    29.Write Code that Writes code

    30.you Can not write perfect software

    31.design with contracts

    32.crash early

    33.Use assertions prevent the Impossible

    34.Use Exceptions for exceptional problems

    35.finish what you start

    36.minimize coupling between modules

    37.configure,do not integrate

    38.put abstractions in code ,details in metadata

    39.analyze workflow to improve concurrency

    40.Design using services

    41.Separate views from modules

    42.always design for concurrency

    43.use blackboards to coordinate workflow

    44.do not program by coincedence

    45.estimate the order of you algorithms

    46.test your estimates

    47.refactor early,refactor often

    48.design to test

    49.test your software,or you users will

    50.dont use wiszrd code you dont understand

    51.dont gather requirements-dig for them

    52.work with a user to think like a user

    53.abstractions live longer than details

    54.use a project glossary

    55.dont think outside the box -find the box

    56.start when you are ready

    57.some things are better done than described

    58.dont be a slave to formal methods

    59.costly tools dont produce better designs

    60.organize teams around functionality

    61.dont use manual procedures

    62.test early,test often,test automatically

    63.coding are not done untill all the tests run

    64.use saboteurs to test your testing

    65.test state coverage,not code coverage

    66.find bugs once

    67.english is just a programming language

      像你编写代码一样编写文档

    68.build documentation in, dont bolt it on

    69.gently exceed your users's expectations

    70.sign your work

  • 相关阅读:
    关于C++顺序容器一致初始化的问题
    44. 通配符匹配(Wildcard Matching)
    76. 最小覆盖子串(Minimum Window Substring)
    72. 编辑距离(Edit Distance)
    首入大观园
    删除链表的倒数第N个节点
    目标和
    克隆图
    最长回文子串
    旋转矩阵
  • 原文地址:https://www.cnblogs.com/wellma/p/3415342.html
Copyright © 2020-2023  润新知