正文
命名
这一段废话太多,而且过于「说正确的废话」,我没有吸收到啥有益处的东西。
在我看来,命名把握两点即可:
-
变量or常量,必须使用「名词」(不管是纯名词,还是形容词+名词,都是名词)
-
函数命名,必须
显式地
使用「动词」(广义的。大部分时候人们使用的是
动宾短语
,我基本是跟着Java的风格走)
函数
什么是函数
-
三要素:名字,输入是什么,输出是什么
-
最初应该是摘取的数学里面的概念
函数式编程
我对这个一直不懂,到现在也不懂,总觉得自己很难理解与掌握「函数式编程」,同时也觉得「很玄,听不懂」。
即便自己对「pure function」与「impure function」的概念如数家珍,但是到了生产环境写代码,还是两眼一抓瞎,这些东西很难转化成我的实际代码。
接口与系统
什么是接口,想必大家心里都有数,但是这东西就是没有个统一的标准的概念,「只能意会不能言传」,能言传出来的,也不过是「一堆无用的废话」。
这一部分的一张图倒是激发了我的思考。
如果把思考层次分层,那么我们大致会有:
-
Solution (business,能赚钱的那种)
-
Application
-
Component (我们大部分人工作在此层次,即写某一系统的某一部分)
-
Module
-
Function
一门好的编程语言要能提供到 Component 层次的,语言级别的手段,方便程序员组织他们的逻辑,比如:
Level
|
Python中的概念
|
Java中的概念
|
Component
|
package
|
package
|
Module
|
.py 源码文件
|
.java源码文件(很接近,但是Java中还是有诸多限制的)
|
Function
|
function, class,method
|
class,method(有严格约束,method只能附属于class)
|
而且语言要提供一整套逻辑完整的「隔绝命名空间的的体制」,目前我最喜欢 TypeScript 的做法