为什么编程中最难的部分是命名?
Why is the hardest part of programming is naming things?
我听说对程序员来说最难的部分是命名变量、类、对象和方法等,真的吗?那为什么我们更关注算法和数据结构?
我认为任何项目都应该有文档,您可以在其中定义项目的命名约定。
因为如果让所有程序员自行命名 classes、变量、属性、方法等……。这可能会导致难以立即理解 class、方法等的目的...
想一想,对于从未看过您的代码的人来说,这个名称应该尽可能多地自我描述以理解它的意图。
因为命名东西需要你理解人类语言和程序的问题域,到目前为止只有人类才能做到。 正在研究解决命名问题,称为"artificial intelligence"或"natural language generation"、"expert systems"等。
只是这些领域还处于起步阶段。如今的计算机几乎无法理解人们用自然语言告诉他们的内容,忘记了真正想出自己的句子和通用答案和解决方案。因此,就编程语言研究人员而言,这项研究可能还不存在。
这些天可能的事情通常是付出太多的努力而不值得。我们可能会查找一些算法并为基于变量名和尖端技术(如 Wolfram Alpha)的程序实现 "algorithmic spell check",但如果你能获得该算法的预制实现,谁愿意为此买单Github 或来自您的语言的标准库?
请注意,就是今天。一旦 AI 和更现代的等价物取得进步,我相信它们都会被集成到编程语言中。
我听说对程序员来说最难的部分是命名变量、类、对象和方法等,真的吗?那为什么我们更关注算法和数据结构?
我认为任何项目都应该有文档,您可以在其中定义项目的命名约定。 因为如果让所有程序员自行命名 classes、变量、属性、方法等……。这可能会导致难以立即理解 class、方法等的目的... 想一想,对于从未看过您的代码的人来说,这个名称应该尽可能多地自我描述以理解它的意图。
因为命名东西需要你理解人类语言和程序的问题域,到目前为止只有人类才能做到。 正在研究解决命名问题,称为"artificial intelligence"或"natural language generation"、"expert systems"等。
只是这些领域还处于起步阶段。如今的计算机几乎无法理解人们用自然语言告诉他们的内容,忘记了真正想出自己的句子和通用答案和解决方案。因此,就编程语言研究人员而言,这项研究可能还不存在。
这些天可能的事情通常是付出太多的努力而不值得。我们可能会查找一些算法并为基于变量名和尖端技术(如 Wolfram Alpha)的程序实现 "algorithmic spell check",但如果你能获得该算法的预制实现,谁愿意为此买单Github 或来自您的语言的标准库?
请注意,就是今天。一旦 AI 和更现代的等价物取得进步,我相信它们都会被集成到编程语言中。