gpt4 book ai didi

design-patterns - 用于开发在多个平台上运行的应用程序的软件架构

转载 作者:行者123 更新时间:2023-12-04 07:06:37 24 4
gpt4 key购买 nike

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

6年前关闭。




Improve this question




各种应用程序,如 Firefox、Fring、Skype 运行在各种平台上。他们如何管理他们的代码?他们是否有针对不同平台的不同 UI?例如,Firefox 必须在 Mac 上使用 Cocoa,在 Windows 上使用 WinForms 或等效软件,在 Linux 上使用 QT 等效软件。相同的源代码如何仅通过为 diff 目标编译来显示 diff UI?

他们确保在所有版本中都修复了一个版本中的错误修复(如安全问题),这意味着代码不会在任何地方重复。那么底层架构是如何设计的呢?

最佳答案

根据我的经验,帮助我解决跨平台问题的是:

  • 一种语言的库代码可以跨您需要开发的任何平台移植,在我的例子中是 C/C++。
  • 与单元测试持续集成,以便您可以尽快处理任何破坏性代码更改。
  • 非常模块化的库,试图尽可能少地依赖。
  • 不要害怕拥有速度/功能/任何所需的任何概念的特定平台实现。有很多方法可以隐藏您在代码主体中使用平台特定代码的事实。
  • 使用设计模式可以帮助实现您想要的结果。 DRY 和 SOLID 等其他原则也有帮助。这是比跨平台特定的更好的软件设计。

  • 您可能面临的一些设计问题在很大程度上取决于您要实现的目标。如果 UI 不是一个交易,那么使用像 QT 这样的库可能是要走的路。这同样适用于您应用程序的任何方面。使用开源或付费库有助于减少开发时间,这可能是一件好事。

    在你的应用程序想要发光的地方,那么你真的应该自己编写这部分代码。

    我不能过多地谈论 UI 选择,因为我处理的大多数平台都非常不同,以至于您每次都必须重新设计 UI 层。库和主引擎层在平台之间可移植的事实有助于使这更容易。

    关于design-patterns - 用于开发在多个平台上运行的应用程序的软件架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/973965/

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