写点什么

左耳听风 - 编程的本质「读书打卡 day 10」

  • 2024-01-18
    北京
  • 本文字数:902 字

    阅读完需:约 3 分钟

左耳听风 - 编程的本质「读书打卡 day 10」

你好!我是 Java 工程师蔡姬,此蔡姬非彼菜鸡!很高兴和大家一起共读陈皓老师的《左耳听风》一书,并在这里分享自己的感悟。


我的读书打卡将会分为两部分——笔记 + 打卡

  • 笔记部分,我会整理在读书过程中感悟比较深的内容,和你一起分享。

  • 打卡部分,我会就一个点阐述个人的思考。


话不多说,让我们开始吧!

笔记

  • 编程的本质包括逻辑(Logic)、控制(Control)和数据(Data)。逻辑是问题的本质,控制是解决问题的策略,数据是问题的表现形式。


  • 有效地分离 Logic、Control 和 Data 是写出好程序的关键所在。

理解编程的本质

  • Algorithm + Data Structures = Programs


  • Algorithm = Logic + Control


  • 所有的语言或编程范式都在解决以下问题:

  • 控制是可以标准化的。例如:遍历数据、查找数据、多线程、并发、异步等都是可以标准化的。

  • 由于控制需要处理数据,因此标准化控制需要标准化数据结构,我们可以通过泛型编程来解决这个问题。

  • 控制还需要处理用户的业务逻辑。因此,我们可以通过标准化接口/协议来实现,我们的控制模式适配于任何逻辑。


  • 如果你看过那些混乱不堪的代码,你会发现其中最大的问题是我们把 Logic 和 Control 纠缠在一起了。


  • 为了实现编程中的各部分解耦,我们可以使用以下技术:

  • 状态机

  • 状态定义

  • 状态变迁的条件

  • 状态的行为

  • 领域特定语言(Domain-Specific Language, DSL)

  • HTML

  • SQL

  • UNIX Shell Script

  • AWK

  • 正则表达式

  • 编程范式

  • 面向对象:委托、策略、桥接、修饰、IoC/DIP、MVC……

  • 函数式编程:修饰、管道、拼装

  • 逻辑推导式编程:Prolog

打卡:结合你的经历,你觉得编程的本质是什么?

书中所说的编程的本质是逻辑、控制和数据。非常经典的拆解,充分利用下面这两个公式来组织程序,能极大程度上提高代码的质量。


  • Algorithm + Data Structures = Programs

  • Algorithm = Logic + Control


在这里,我愿意从另外一个角度拆解一下编程的本质:编程 = 抽象 + 实现


对问题的抽象层级决定了程序的上限。对细节的实现水平决定了程序的下限。


在我看来,程序员最重要的能力之一,就是抽象问题的能力,这是真正的道。


以上便是今日份的笔记和打卡内容。欢迎你在评论区留言,我们一起探讨,共同进步。


我是 Java 工程师蔡姬,期待和伙伴们有更多交流和思维碰撞,明天见!

发布于: 刚刚阅读数: 4
用户头像

公众号「有理想的菜鸡」感谢关注 2020-07-28 加入

一枚专注「职业发展」与「个人成长」的软件工程师。

评论

发布
暂无评论
左耳听风 - 编程的本质「读书打卡 day 10」_读书笔记_Java 工程师蔡姬_InfoQ写作社区