- Game Development Patterns and Best Practices
- John P. Doran Matt Casanova
- 289字
- 2021-07-02 23:43:48
Why a monolithic game object is a bad design
When you break it down to the simplest terms, programming is about solving problems with code. Someone has an idea for a game or an app, and the problem that needs to be solved is how to describe that idea logically and correctly to the computer. Day to day, these problems usually come in the form of integrating code you wrote today with code written earlier by you or another programmer. When solving these problems, there is a constant struggle between doing things the easy way or doing them the right way.
The easy way to solve a problem means solving the immediate problem in the fastest way possible. Examples of this might be hardcoding a number or string literal instead of using a named constant, copying code instead of writing a function or refactoring code into a base class, or just writing code without thinking about how it can impact the rest of the code base.
On the other hand, solving a problem the right way means thinking about how the new code will interact with the old code. It also means thinking about how the new code will interact with future code if the design changes. The right way doesn't mean that there is only one correct solution to the problem. There are often many possible ways to reach the same result. The creativity involved in programming is one of the reasons programming is so much fun.
Veteran programmers know that in the long run, the easy way often turns out to be more difficult. This is often because a quick fix solves an immediate problem but doesn't consider the changes that will occur as the project evolves.
- Java語言程序設計
- MySQL數據庫管理實戰
- Python數據分析入門與實戰
- What's New in TensorFlow 2.0
- 工程軟件開發技術基礎
- PaaS程序設計
- 劍指Offer(專項突破版):數據結構與算法名企面試題精講
- 趣學Python算法100例
- TypeScript圖形渲染實戰:基于WebGL的3D架構與實現
- Managing Microsoft Hybrid Clouds
- Natural Language Processing with Python Quick Start Guide
- Practical GIS
- 程序員必會的40種算法
- R語言實戰(第2版)
- Java Web動態網站開發(第2版·微課版)