## 图灵 - 图灵机 = 卡片条 + 读写头 - 卡片内的东西: 数据or指令 - 数据与指令可以分开储存, 也可以合在一起储存, 但是他们是不同类型的东西 - 分开能让人更容易理解 ## Lambda 演算法 - Lambda 演算法是把 函数 作为了元数据, 通过函数直接的关系代表数据和指令 ## 元细胞自动机 - 元细胞自动机是把 元细胞 作为了元数据, 设定了默认的四种基于周围网格的变化规则, 实现的一种计算机范式, 可以主要是实现了非图灵非Lambda演算的新做法, 主要可以应用在深度学习和流体模拟这种上面, 卷积的算法原理, 但是无法编程主打的是一种炼丹的方式实现 ## 软件工程解耦合 - 模块化 (功能之间解耦合)(菜鸟负责简单模块, 高手负责复杂模块) - 高内聚 - 低耦合 - 单一职责 - 分层化(需求与实现解耦合) (无论高手和菜鸟, 都是负责一整层, 或者把一整层拆小再划分, 对能力要求不高. 比如前后端开发) - 底层功能接口需要保证完备, 方便上层调用实现 - 举例 - 底层: 操作系统 - 中高层: 计算机软件 - 用户输入=>操作系统回调=>软件=>操作系统API=>硬件 - 模式化(历史与未来解耦合)(按照这些范式去做, 能为未来可能的需求变更做准备) - 设计模式 - 指令式编程+面向对象式编程+函数式编程 - 编程原则 - 面向对象S.O.L.I.D 原则 - S 单一功能原则 - O 开放封闭原则 - L 里式替换原则 - I 接口隔离原则 - D 依赖反转原则 - 数据库设计 CRUD 原则 - 增删改查 ## 软件开发瀑布流程(开发过程过长) ![Dev](Aseets/Dev.png) ### 软件开发三层模型 - V 表现层 (前端, 用户直观看到的) - A 控制层/应用层 (后端, 业务操作,逻辑判断) - D 数据层 (数据库, 增删改查) ### 领域驱动设计 以不变的业务领域作为核心(中台), 进行上下的领域设计 ### 敏捷开发 ![dev2](Aseets/dev2.png) 小步快跑, 及时反馈, 快速进步 敏捷开发, 早点投入市场, 测试 市场反响不错时, 重构 ><敏捷革命> <精益创业> <凤凰项目> >scrum , 精益, DevOps ### 开源 开源举例: Linux 追求性能高效, 放弃解耦合 开放多人合作, 多人调试优化 ## Reference https://www.bilibili.com/video/BV1h3411G741/?spm_id_from=333.788