# 编程与优雅的思考

By [Jerod.YAN](https://paragraph.com/@jerod-yan) · 2022-04-15

---

孔子说，里仁为美，择不处仁，焉得知（智）。

英文中的「优雅」有两个层面：

*   posh：一个喜欢把一个事情做花哨点，把自己用时尚包装起来。
    
*   grace/elegant：一个人由内而外的得体，内涵得体而有身份。
    

注意：Fake it till make -> posh 会走向 elegant；装，耳濡目染，见识增加，自身努力，成为偶像。

汉语中「优雅」有另一层意思：「含蓄」。含蓄的一个意思是收敛和隐藏细节。

编程中的「优雅」有隐藏细节的意思，也可理解为合理的「抽象 （abstract）」。把所要表达的事物用更高层次的方法表示出来，其表达性要远高于直接陈述。例如，良好的编程风格讲究细节的隐藏，只暴露出其语义。分层抽象（如C4 Model)，逐步隐藏细节，可使得源码易读。封装细节，排错范围小，Debug容易。

实际实施时：

*   大道虽简，却布满荆棘，工程上的复杂性，功能组合极难。
    
*   过度优雅，elegant variation, while 循环也是有尊严。
    
*   过度抽象，过度隐藏细节，决不能像官僚体系一样，不是为了解决问题，而是为了掩盖问题，这是无能和腐朽的表现。
    
*   尊重别人的时间是尊重自己的时间。
    

最优雅的编程范式是好好写文档和注释。重要的是表达，不是炫技。

---

*Originally published on [Jerod.YAN](https://paragraph.com/@jerod-yan/Wqpo5cq6brcg0qAnqf1v)*
