我目前正在构建一个包含大量JavaScript的小型Web应用程序。当我对最初的想法进行原型设计时,我只是将一些函数混合在一起,以演示应用程序最终将如何在面向对象的本质中重新编写JavaScript。
现在我已进入实施阶段,我发现为面向对象而创建面向对象的JavaScript似乎有点过分 - 该项目未来可能不需要进行任何重大修改保证和面向对象的设计。相反,我发现一套简洁,有凝聚力的功能运作良好。
因此,有了这样说并试图遵守KISS原则,当一组函数为问题提供合适的解决方案时,还有其他理由值得考虑将我的代码转换为面向对象的设计吗?
答案 0 :(得分:11)
不,虽然我个人认为OOP更加美味,但它是达到目的的手段,而不是目的。在许多情况下,程序编程比OOP更有意义,转换为转换,可能就像你说的那样过度。
答案 1 :(得分:10)
不,让它成为前进 - 我认为这更有成效。
答案 2 :(得分:5)
如果你的代码结构合理,布局合理,评论很好,并完成了所需的工作,那么除了添加功能之外的其他任何原因搞乱它是不明智的。
虽然说程序很好OOP等可能会很好,但如果它不需要改成工作那么我会定义它保持原样。
如果它没有破坏,不要随便它:)
答案 3 :(得分:2)
如果此代码已经实施且不需要维护,或者 - 更好 - 升级,请坚持使用。如果您现在要实现它并且它可能变得复杂,请考虑OO方法。
经验告诉我,编写和维护过程代码非常容易,而复杂性很低,但在某个阈值之后,使用过程式编程时,开始变得难以增加复杂性,而OOP虽然难以开始,但仍然保持不变复杂性更易于管理。
底线:如果任务足够简单或已经实施,请保持简单。如果它可能变得更复杂,请考虑OOP。
答案 4 :(得分:1)
我会说在做出决定之前仍然值得审查您的代码。 “重写”代码的明显缺点是确保代码与以前一样工作的测试成本。你有任何单元测试吗?如果没有,那么您的测试成本会更高。所以一般来说,我反对重写工作代码,除非它服务于另一端,这是为了让你更容易编写现在需要的新功能(即重构常用功能等)。
然而,每当一个人说“我一起入侵”时,我建议你的代码总是值得一看。为什么它首先被黑客攻击?我知道有很多人说面向对象的代码本身并不是目的,但它是一种方法,在此之后也不必考虑。你只是自然而然地开始这样做。
也许你的js相对简单,因此OO scafolding确实是额外的开销。精细。但我仍然建议你应该总是对你称之为“黑客”的任何代码进行代码审查(尤其是让其他人审查)。也许这是一个弗洛伊德式的失误......但它确实滑倒了。
答案 5 :(得分:0)
从现在开始将其视为遗留代码。当你想要改变某些东西时,重构它以便代码在头脑中变得更容易。如果您需要一点OOP,请使用它。如果不这样做,请不要。
OOP是一把锤子,请不要将螺钉问题当作钉子。
答案 6 :(得分:0)
如果它有效,并且易于维护,我不会为转换而烦恼。必须有更多有趣的事情要做。
答案 7 :(得分:0)
请记住,在javascript中创建对象相当昂贵。
将物体的构造保持在最低限度。