Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 是否有可能将最佳实践进一步嵌入到编程语言中?_Oop - Fatal编程技术网

Oop 是否有可能将最佳实践进一步嵌入到编程语言中?

Oop 是否有可能将最佳实践进一步嵌入到编程语言中?,oop,Oop,例如,在c中,默认情况下访问修饰符通过为类和字段提供最严格的访问权限来实现信息隐藏。 在ASP.NET中,您的网站内置了应用程序代码和应用程序数据作为库。 ASP.NET MVC又迈出了一步,让您使用MVC。 我不知道用不同的语言怎么说 您认为诸如单一责任、强内聚、关注点分离等概念可以进一步嵌入到编程语言和技术中吗 编辑:也许我应该问一下——你能想出一种编程语言和框架的方法来嵌入这些概念吗 我问这个问题有两个原因——第一个是好奇心。第二,我认为这个问题的答案可以为如何实现这些概念制定经验法则 多

例如,在c中,默认情况下访问修饰符通过为类和字段提供最严格的访问权限来实现信息隐藏。 在ASP.NET中,您的网站内置了应用程序代码和应用程序数据作为库。 ASP.NET MVC又迈出了一步,让您使用MVC。 我不知道用不同的语言怎么说

您认为诸如单一责任、强内聚、关注点分离等概念可以进一步嵌入到编程语言和技术中吗

编辑:也许我应该问一下——你能想出一种编程语言和框架的方法来嵌入这些概念吗

我问这个问题有两个原因——第一个是好奇心。第二,我认为这个问题的答案可以为如何实现这些概念制定经验法则

多谢各位

您认为诸如单一责任、强内聚、关注点分离等概念可以进一步嵌入到编程语言和技术中吗


不。只有人类的头脑才能解决这个问题。

除了帮助你完成工作之外,这几乎是每个框架的工作。检查什么,做什么,你就会明白我想说什么


您可能会发现它在用动态语言编写的框架中实现得更频繁,因为它们允许通过编写DLS轻松扩展语言。

正如我常说的那样:语言只能向您显示路径,如果您遵循它,它应该是您的选择


这就是你作为一名程序员的技能可以发挥作用的地方。

我认为答案是否定的,因为好的设计和工程决策通常不能被纯粹的技术手段所取代

然而,更难判断技术能在多大程度上推动程序员朝着、促进甚至实施好的设计前进。我怀疑这里的答案取决于您所看到的最佳实践。语言规则可以比其他规则更好地实施一些最佳实践:

例如,有一个共同的概念,即组合和聚合应该优先于继承。OO语言可以通过多种方式实现这一点,包括:

完全禁止继承

禁止特定深度的类层次结构,例如,您不能从已经是派生类的类派生,因此只允许一级深度的继承

禁止继承,同时仍允许实现接口。 如果你想知道上面的清单,我没有发疯:这个清单是假设性的,我并不是说应该采取这些措施。每种选择都有其明显的缺点

其他常见的最佳实践——事实上,我怀疑最有用的最佳实践——如DRY don't repeat yourself、SRP single responsibility principle等,可能无法通过语言强制执行

您认为诸如单一责任、强内聚、关注点分离等概念可以进一步嵌入到编程语言和技术中吗


这是一个很好的编程语言示例,它是专门围绕这些更一般的概念设计的。

我记得开始工作时,我和一位顾问共用一间办公室。我记得他打电话给一个朋友,问了一些问题,比如你能解释一下Windows是如何创建进程的吗?这里它说它还创建了一个线程,这与UNIX有什么不同?他喜欢最佳实践之类的词语

最好远离强制使用它们的语言。

鼓励->是

强制->否


我在RoR和asp.net mvc中看到了一些非常糟糕的源代码。

将C与asp.net和asp.net mvc一起列出有点像篮子里既有苹果也有桔子。如果ASP.NET MVC没有让你使用MVC,它就没有任何用途。我意识到编程语言和框架之间的区别。。我的问题是关于两者的。我想问的是,是否有一种方法,有点像ASP.NET MVC试图实现的嵌入最佳实践。即使如此,也有一些方法鼓励最佳实践,比如我在这个问题上给出的默认访问修饰符示例。