什么是软件架构?
架构是关于改动的。
软件架构的关键目标: 最小化在编写代码前需要了解的信息。
当一块代码有改动时,不需要修改另一块代码。 肯定也得修改一些东西,但耦合程度越小,改动会波及的范围就越小。(解耦的重要性)
代价:
需要花费大量的努力去管理代码, 使得程序在开发过程中面对千百次变化仍能保持它的结构。
预测未来很难,模块化如果最终无益,那就有害。 毕竟,你得处理更多的代码。
不要因为沉浸软件架构而忽略开发游戏。
性能和速度
实现优化需要基于确定的限制。太过于注重架构可能会浪费性能。
折中的办法是保持代码灵活直到确定设计,再去除抽象层来提高性能。
糟糕代码的优势
一个字概括,快。但是不能被维护,需要重写。
保持平衡
草就的代码很少是运行时最快的。 相反,提升性能需要很多的开发时间。 一旦完成,它就会污染代码库:高度优化的代码不灵活,很难改动。
简单
大道至简,蒸干代码是很重要的。具体体现在选择正确的数据结构,更清晰明了的解决方案。
通用: 只需要很少的逻辑就可以覆盖整个用况。
这么做的话可以在了解更少信息的情况下维护代码。
总结
1.抽象和解耦让扩展代码更快更容易,但除非确信需要灵活性,否则不要在这上面浪费时间。
2.在整个开发周期中为性能考虑并做好设计,但是尽可能推迟那些底层的,基于假设的优化,那会锁死代码。
3.相信我,发布前两个月不是开始思考“游戏运行只有1FPS”这种问题的时候。
4.快速地探索游戏的设计空间,但不要跑得太快,在身后留下烂摊子。毕竟你总得回来打扫。
5.如果打算抛弃这段代码,就不要尝试将其写完美。
6.但最重要的是,如果你想要做出让人享受的东西,那就享受做它的过程。