- 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.
- Spring Boot開發與測試實戰
- C/C++算法從菜鳥到達人
- 精通搜索分析
- Vue.js 3.0源碼解析(微課視頻版)
- Animate CC二維動畫設計與制作(微課版)
- 區塊鏈:以太坊DApp開發實戰
- 重學Java設計模式
- iOS編程基礎:Swift、Xcode和Cocoa入門指南
- Spring快速入門
- Getting Started with Hazelcast(Second Edition)
- Android系統級深入開發
- Solr Cookbook(Third Edition)
- Python從入門到精通
- Spring MVC+MyBatis開發從入門到項目實踐(超值版)
- Hands-On Kubernetes on Windows