框架(库): 基础用法 -> 高级用法 -> 性能优化 -> 原理
学习路径: 抛出问题 -> 解释 -> 从原理角度全面分析

计算机技术的核心是:操作系统、数据结构和算法、编译原理、计算机网络、计算机图形学。

解决问题:
场景:
注意事项:
原理:
衍生:

  • 可读性
    • 更易于维护
    • 更易于重构
    • 更易于测试
    • 更易于应用设计模式
  • 复用性设计
  • 可靠性设计
  • 性能性设计
  • 安全性设计
  • 可服务性设计

Unix 哲学

Unix 哲学是一套基于 Unix 操作系统顶级开发者们的经验所提出的软件开发的准则和理念
主张组合设计,而不是单体设计;主张使用集体智慧,而不是某个人的特殊智慧

  • 模块化
  • 解耦、高内聚低耦合
  • 开源

Peter H. Salus 总结的三条原则:

  1. 模块化(简单完备性), 降低软件复杂度:一个程序只做一件事,并做得很好。
    1. 代码库规模
    2. 技术复杂度
    3. 实现复杂度
  2. 组合思维, 应对多变的需求:高内聚,低耦合
    1. 解耦
    2. 模块化
  3. 数据驱动:代码和代码作用的数据结构分开

代码层次

  1. 正确
  2. 安全
  3. 可读
  4. 优雅
  5. 利他