Architecture 您希望看到什么架构/改进/模式在地狱中燃烧?

Architecture 您希望看到什么架构/改进/模式在地狱中燃烧?,architecture,language-agnostic,Architecture,Language Agnostic,在开发软件时,开发人员总是倾向于诅咒某些语言细节,“改进”使语言变得不易理解,有缺陷 你遇到过哪些障碍/改进,你会为没有人发明/介绍而感到高兴 我的2美分: 我在德尔福2009上诅咒了三天。我有一个内部编译器错误,不知道我做错了什么。事实证明,我无法继承在另一个单元中声明的泛型类。大设计前期单例模式(也称为伪装模式中的全局变量)。Python。因为除非绝对必要,否则空格不应该有意义-D*鸭子* C++。在C语言上进行了一次令人讨厌的黑客攻击,允许OOP,导致可怕的语法和垃圾收集,而不是像Java

在开发软件时,开发人员总是倾向于诅咒某些语言细节,“改进”使语言变得不易理解,有缺陷

你遇到过哪些障碍/改进,你会为没有人发明/介绍而感到高兴

我的2美分:


我在德尔福2009上诅咒了三天。我有一个内部编译器错误,不知道我做错了什么。事实证明,我无法继承在另一个单元中声明的泛型类。

大设计前期

单例模式(也称为伪装模式中的全局变量)。

Python。因为除非绝对必要,否则空格不应该有意义-D*鸭子*

C++。在C语言上进行了一次令人讨厌的黑客攻击,允许OOP,导致可怕的语法和垃圾收集,而不是像Java或C#这样的OOP所需要的彻底重新设计*又是鸭子*

腮腺炎。名字说明了一切


Perl5的OOP基础设施——感觉像是对一种原本不打算成为OOP的语言的恶意攻击。

老实说,我希望看到Java在地狱中燃烧,或者至少他们应该创建一个完整的翻版(我知道已经有一种叫做C),虽然在这种情况下,更多的是缺乏发明,而不是新的发明。

任何和所有的“改进”到基本的。基本功从一开始就是个坏东西。VB试图修复它,但失败了。然后VB.Net就诞生了,所以当人们意识到他们所处的混乱局面时,他们已经深陷地狱。

n分层设计。下次我继承一个“解决方案”,其中包含一个功能上为空的“BusinessObjects”项目时,我将扼杀某人。我很惊讶,在我第一次遇到它15年后,这种模式仍然如此普遍。正如我在另一个答案中所说的,分层对千层面来说是很好的,但它并不是所有软件的一个好选择


社区wiki,请加1“燃烧地狱”,这应该是社区维基。单体有什么不对?全局错误是一样的:它们太容易滥用。@ CyDyMyx,例如,C++读取1。我拒绝回避;让燃烧开始……C++可能…但是python的空白语法强制执行良好的语法。。。哪个好,对吗?腮腺炎。。。多么不可思议的发明。。。请参阅:PHP也不是作为OOP语言设计的。。现在一切都必须是面向对象的:)PHP本质上就像HTML,加上了C,用鼻子鼻子粘在上面。你是说C#完全是地狱的翻版吗?哈哈,你救了我一天。我喜欢千层面的比较:-DSo,只要人们不把业务逻辑放在GUI中(请注意,我没有说表示层!)。有没有试过维护一个应用程序,该应用程序在表单上的按钮点击事件下包含所有代码?任何代码都应该封装在类和/或函数中(而不是像你说的那样封装在按钮点击事件中),但这并不意味着它必须由层本身来分隔。一个简单的例子是从数据库加载DataTable并将其设置为GridView的数据源的代码。我看到的一种常见(反)模式是表单实例化一个业务对象,该业务对象本身实例化一个数据对象,该数据对象加载DataTable并将其返回给业务对象,而业务对象本身将其返回给表单。在这种情况下,业务对象是无用的。。。。。。(我在回答中称之为“功能空虚”。我同意“大”,而不是其他。你是指大前期设计(BUFD)吗?我个人认为,取消BDUF一词可能会更好。我们敏捷实践者用这种观点疏远了许多熟练的开发人员,给人的印象是敏捷中没有设计(不真实)。我相信,谈论最后一个负责任的时刻是弥合差距的一小步。人们感到受到批评时会拿起武器。相反,我们可以向他们展示敏捷技术的好处。虽然我更愿意用C#编程,但主要的区别只是语法。即使是自动化工具也可以在.NET语言之间转换代码。我同意TrueWill的观点。在其核心,BASIC只是一种声明变量、指定循环、if块和case语句等、组织方法、访问对象属性等的方法。有些人喜欢“结束”语句,有些人喜欢花括号和分号。最后(或“;”)没有多大区别。