上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
简洁性
简洁性是成败之间最为明显的分界点。理解复杂性的产生过程有助于理解什么是简洁性。我认为,不愿意做出设计权衡和设计错误的累积是导致复杂性的两个主要因素。
在设计过程中,每次走错一条道,就离最优的方案越来越远。一个初始的设计错误,如果没能被纠正过来,那么可能导致一条道走到黑,最终得到的是一个复杂的系统,而不是对原先系统的重新设计。项目会因此变得更加复杂和低效。
程序员可以在脑子里进行“概念验证”,从大量简单的设计想法中选择可行性最高且最直接的方案,从而达成简洁性。在后续的改进工作中,个人的经验和设计能力开始发挥作用,为子任务找到更加明智的解决方案。
不过,如果系统复杂性不可避免,那么在放弃挣扎之前也要尽量想办法降低系统复杂性,甚至尝试采取完全相反的设计。