gpt4 book ai didi

language-agnostic - OOP:在哪里停止抽象

转载 作者:行者123 更新时间:2023-12-04 05:01:37 25 4
gpt4 key购买 nike

您在哪里画线以停止进行抽象并开始编写合理的代码?有大量的“企业代码”示例,例如十几个文件的“FizzBu​​zz”程序……甚至像RTS游戏之类的简单内容也可能具有以下内容:

class Player {} ;/// contains Weapons
class Weapons{} ;/// contains BulletTypes
class BulletType{} ;///contains descriptions of Bullets
class Bullet{} ;///extends PlaceableObject and RenderableObject which can be placed/drawn respectively
class PlaceableObject{} ;///has x,y,z, coords
class RenderableObject{} ;///an object with a draw() command
class MovingObject{}; ///an object with a move() function

等...它可能变成一场噩梦。这可以说到逻辑极限,就像函数编程可以画到极限一样,在那您可以创建仅包含变量,函数应用程序和匿名函数定义的语言(尽管我必须承认这稍微有些优雅)...

关于这个话题有什么理智的建议吗?

最佳答案

  • YAGNI(您根本不需要它)。 不要创建您看不到立即使用或出于合理原因的抽象。这样,您就拥有了一个可能变得更加复杂的简单事物,而不是您会努力使之变得简单但失败的复杂事物。
  • 确保抽象有意义。如果他们离现实太遥远,那就太难辩解了……算了吧。
  • 让解决方案变得自然。对其进行处理直至完成。然后,对于一个陌生的人,解决方案应该看起来如此明显,以至于他大喊:“您怎么能做得与众不同?”。
  • 不要试图预测 future 。 您不能。如果您尝试涵盖所有10种可能的情况,您很快就会发现11号及更多,由于以前的10条(实践中没有遇到),实现起来会更加困难。 使其简单易用。 软件需要更改,但是适应性(敏捷性)通常比试图覆盖所有可能的事例更好的策略。
  • 关于language-agnostic - OOP:在哪里停止抽象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/216150/

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