Loading...
Loading...
Compare original and translation side by side
"Care about your craft." "Think about your work."
"重视你的技艺。" "思考你的工作。"
| Principle | Summary |
|---|---|
| DRY - Don't Repeat Yourself | Every piece of knowledge has a single representation |
| Orthogonality | Keep things independent and decoupled |
| Reversibility | Make decisions reversible; avoid lock-in |
| Tracer Bullets | Get feedback fast with end-to-end skeleton |
| Prototypes | Learn before committing; throw away prototypes |
| Domain Languages | Program close to the problem domain |
| Estimating | Learn to give accurate estimates |
| 原则 | 摘要 |
|---|---|
| DRY - Don't Repeat Yourself | 每一项知识都有唯一的表示形式 |
| Orthogonality | 保持事物独立且解耦 |
| Reversibility | 让决策具备可逆性;避免锁定 |
| Tracer Bullets | 通过端到端骨架快速获取反馈 |
| Prototypes | 先学习再投入;原型可丢弃 |
| Domain Languages | 贴近问题域进行编程 |
| Estimating | 学会给出准确的估算 |
| Practice | Summary |
|---|---|
| The Power of Plain Text | Keep knowledge in accessible format |
| Shell Games | Master the command line |
| Debugging | Fix the problem, not the blame |
| Text Manipulation | Learn text processing tools |
| Code Generators | Write code that writes code |
| Design by Contract | Define rights and responsibilities |
| Assertive Programming | If it can't happen, use assertions |
| Decoupling | Minimize dependencies between modules |
| Refactoring | Improve code continuously |
| Testing | Test early, test often, test automatically |
| Automation | Don't use manual procedures |
| 实践 | 摘要 |
|---|---|
| The Power of Plain Text | 以易访问的格式存储知识 |
| Shell Games | 精通命令行 |
| Debugging | 解决问题,而非归咎于人 |
| Text Manipulation | 学习文本处理工具 |
| Code Generators | 编写能生成代码的代码 |
| Design by Contract | 定义权利与责任 |
| Assertive Programming | 对于不可能发生的情况,使用断言 |
| Decoupling | 最小化模块间的依赖 |
| Refactoring | 持续改进代码 |
| Testing | 尽早测试、经常测试、自动化测试 |
| Automation | 拒绝手动流程 |
classfunction->class.classdef.classfunction->class.classdef.