专栏名称: 唤之
目录
相关文章推荐
OSC开源社区  ·  大模型训练中的开源数据和算法:机遇及挑战 ·  3 天前  
程序猿  ·  TCP 才不傻! ·  4 天前  
程序猿  ·  问问DeepSeek,你和ChatGPT谁厉 ... ·  3 天前  
程序员小灰  ·  DeepSeek创始人梁文峰牛逼的个人经历 ·  3 天前  
51好读  ›  专栏  ›  唤之

知乎Live「回归本源:软件开发中那些基本的概念」总结

唤之  · 掘金  · 程序员  · 2017-12-09 07:24

正文

命名

这一段废话太多,而且过于「说正确的废话」,我没有吸收到啥有益处的东西。

在我看来,命名把握两点即可:

  1. 变量or常量,必须使用「名词」(不管是纯名词,还是形容词+名词,都是名词)
  2. 函数命名,必须 显式地 使用「动词」(广义的。大部分时候人们使用的是 动宾短语 ,我基本是跟着Java的风格走)

函数

什么是函数

  1. 三要素:名字,输入是什么,输出是什么
  2. 最初应该是摘取的数学里面的概念

函数式编程
我对这个一直不懂,到现在也不懂,总觉得自己很难理解与掌握「函数式编程」,同时也觉得「很玄,听不懂」。 即便自己对「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 的做法







请到「今天看啥」查看全文