- 我的编程风格是“面向痛苦的编程”。 什么问题让我痛苦,我就去解决它,最痛苦的,最先解决,不痛苦的,就不去碰它。 这种编程可以确保你始终在做重要的事情,从而极大地降低了风险。
- 面向痛苦的编程可以总结为:除非你感受到没有它的痛苦,否则不要构建技术。它适用于大的架构决策以及日常编程中的小决策。面向痛苦的编程通过确保你总是在做重要的事情来大大降低风险,并确保在进行大规模投资之前你已经对问题领域非常熟悉。
-编程中的流程: 1. 首先使其成为可能 当遇到一个你不熟悉的问题领域时,试图一开始就构建一个“通用”或“可扩展”的解决方案是错误的。你对问题领域的理解还不够深入,无法预见未来的需求。你会让不需要的东西变得通用,增加复杂性并浪费时间。 最好只是“快速解决问题”,直接解决手头的问题。这使你能够完成需要完成的工作,避免浪费工作。在你快速解决问题的过程中,你会越来越多地了解问题领域的复杂性。 2. 然后让它变得美丽 “让它变得美丽”是指你运用设计和抽象技能,将问题空间提炼成可以组合在一起的简单抽象。我认为开发美丽的抽象类似于统计回归:你在图表上有一组点(你的用例),你在寻找最简单的曲线来适应这些点(一个抽象集)(下图) 然后让它变快 一旦你完成了美丽的设计,就可以放心地投入时间进行分析和优化。过早进行优化只会浪费时间,因为你可能还会重新考虑设计。这被称为过早优化。 3. 优化并重复 痛苦导向编程是一个持续的过程。你构建的美丽系统为你提供了新的能力,使你能够在问题空间的新领域和更深层次中“实现可能”。这将学习反馈给技术。你常常需要调整或添加你已经想出的抽象,以处理越来越多的用例。