Think Programming - Insights from My Coding Journey
Note: The main content is first written in Chinese, with the English translation (by AI) following below.
Chinese Version
我编写商业软件到现在有10年的时间.
使用过的编程语言(按掌握程度排序): C/C++, Python, Python(machine learn), F#, Golang, Scala, Clojure, JavaScript
使用过的编程范式: Object-Oriented (OO), Functional Programming (FP)
实现过的软件项目: 低延迟TCP/UDP Server side Framework, 高并发订单系统, 利用machine learning实现的高性能预测系统等等
我计划在这篇文章里记录一下我对编程的一些思考, 而且这些想法随着我解决更复杂问题, 积累更多的经验后也会有些变化, 因此我会不断更新这篇文章.
1. 自顶向下编程
有两种编程理念, 一种是自底向上, 一种是自顶向下.
自低向上
: 先实现很多小的函数, 然后使用这些小函数组成很复杂的功能. 在很多讲lisp的书里, 经常会讲如何实践自底向上的编程思想.
自顶向下
: 从使用者的角度, 先写完框架/函数API, 最后才是具体代码实现.
我赞同使用很多小的函数组成很复杂的功能
这个编程思路, 但是在我的编程实践里, 我认为自顶向下才更容易写出高质量的代码.
举个例子: 假如我们要写一个网站,用来展示在不同的网站上,同一款汽车的最新销售信息, 方便用户选择最优的网站去购买汽车
如果使用自底向上
的思路, 我们会依次实现这些代码