gpt4 book ai didi

language-agnostic - 主观性在编程中的作用有多大?

转载 作者:行者123 更新时间:2023-12-04 08:36:53 26 4
gpt4 key购买 nike

我经常读到可读性和可维护性的重要性。或者,我读到了关于哪些语法特征是好的或坏的非常强烈的意见。或者讨论某些范式的值(value),比如 OOP。

除此之外,每当我阅读关于 SO 或 Meta 的关于主观问题的辩论时,同样的问题会浮现在我的脑海中。或者阅读有关最佳实践的问题,有时会发现自己或其他人不同意。

主观性在编程领域中扮演什么角色?

有时我认为它起着很大的作用。软件开发人员在某种程度上是工程师,但也是人。编程的很大一部分是处理人类可读的代码。这与数学或物理或其他具有非常精确和结构化规则的学科非常不同。在这里,确切的结构和规则在很大程度上是悬而未决的,可以随心所欲地改变,因此存在的语言数量也是如此。一个人可能会发现一种语言非常易读,而另一个人可能会发现他们自己的语言最令人欣慰。

实践也是一样。一个人可能不喜欢某些公认的做法。例如,我自己发现将类拆分为不同的文件非常不可读。

但是,我不能说规则总体上没有帮助。某些做法已经并且确实使生活更轻松。新语言催生了使生活更轻松的语法和结构。即使考虑到大量不同的人群,代码也更易于阅读和维护,这当然是一个进步。所以也许这些事情并不像我想象的那么主观。

在某种程度上,它让我想起了 UI 设计。当然,这是主观的,但是制作良好的 UI 涉及一整套学科,而且它往往会奏效。

关于可维护性、可读性和其他最佳实践背后的想法,是否有一些非主观的东西?当一个人开发一种新的语言或想到新的实践时,是否有一些有形的东西可以掌握?

最佳答案

可以说,您的问题实际上是关于编程(数学、算法和科学)与软件工程(主观、可变和以人为中心)之间的区别。

伟大的程序员不一定是伟大的软件工程师,反之亦然。这两个技能集虽然无论如何都不是排他性的,但它们的重叠比它们最初出现的要少。它们的相对重要性在很大程度上取决于项目:一个出色的程序员独自工作可以产生令人惊叹的技术天才示例,而其他人无法理解或维护它并不重要,因为无论如何他都不会共享代码。但是进入企业环境——比如企业内部软件开发——我很乐意用十个“洞穴巨魔”天才交换一个理解可读性和文档重要性的平庸程序员。

我的经验是,世界更需要优秀的软件工程师,而不是优秀的程序员。在这个时代,相对较少的人正在编写真正对性能至关重要的软件(操作系统内核、编译器、图形引擎、实时嵌入式系统等),而互联网允许平庸的程序员快速获取他们无法解决的问题的算法解决方案单独解决。但是几乎每个编写专业代码的人都必须在一个团队中工作。团队生产力的上升和下降取决于其成员有效沟通和有效分配工作量的能力,这两项技能非常主观,无法用僵化的公式来证明。

大多数软件工程原理都建立在经验之上,而不是客观规律之​​上。就像社会科学一样,我们学习、学习、适应和应用——但没有真正的结果保证。我们只能说,在大多数群体中,有些事情似乎比其他事情更有效。

关于language-agnostic - 主观性在编程中的作用有多大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2549460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com