• 基础代码有其特定使用场景,符合linux小而精的理念。追求面面俱到很可能会导致臃肿低效。明确其使用场景和潜在问题,对开发过程有一定程度的限制,有助于提升整体效率和代码水平
  • 处理工程问题的方法论:

    1.清晰的问题定义
     2.验证核心思路是否可行
     3.如可行,完善实现细节;如不可行,更换思路或问题定义
    
  • 理论和现实的区别:

    1.理论上的工作之所以漂亮正是因为抓住了事物的主要矛盾,忽略“无关”的细节进行了简化和抽象,从而对比较“干净”的对象进行操作
     2.在一系列的“assumption”下建立起理论体系。但是当要将理论应用到实践中的时候,这些之前被忽略掉了的细节又得全部加回去。
     3.在一系列的“assumption”都不再严格满足的条件下,找出会出现哪些问题并通过一些所谓的“engineering trick”来让原来的理论能“大致地”继续有效,大体就是工程方面的工作
     4.这就是工作在不同的抽象程度下的区别的样子
    
  • 避免过早陷入细节,先验证,再优化
  • 工具化+可视化