《游戏编程模式》章节总结——第一章-架构、性能和游戏

 正如书中所说,许多人都会跳过第一章的内容,但是我还是读了下来,并在读完后决定写一个关于这本书的章节总结,以此来巩固我对这本书的学习,当然如果当你不经意间看到这东西并且对你有帮助的话,对于我来说是最大的开心。


 1.1什么是软件架构 

 1. 软件架构描述的是关于软件的组织性。 

2. 而软件架构是有好与坏的,糟糕的软件架构会让我们剔除它以结束自己的痛苦,而好的软件架构则是意味着我们总能进行很少的调用就可以完成我们自己的需求,同时也不需要担心有副作用。

 3. 我们总会去修改代码,但是在修改之前,我们需要先花上很大一部分的时间去学习现有的代码与组织,随后便可轻松的完成编码。

 4. 整个修改过程便是:遇到问题->学习代码->解决方案->解决问题,如此循环。 

 5. 当然,在解决了问题后,我们仍需要对我们写的代码进行清理,让他更好的融入组织中,以便于方便后面的人去理解或修改你的代码。 

 6. 解耦的好处便是让你在改变一块代码时,只需要学习少量的代码便可以进行更改。同时也可以认为在改变一块代码时,不必更改另外一块代码。 

 7. 耦合越低,更改所波及的范围就会越小。


1.2有什么代价

 1. 良好的架构需要很大的努力及一些列准则。每当你做出一个改变或者实现一个功能时,你必须很优雅地将它们融入到程序的其余部分。你必须非常谨慎地组织代码并保证其在开发周期中经过数以千计的小变化之后仍然具有良好的组织性。

 2. 不要轻易的添加一个抽象层或者支持可扩展的地方,因为这需要花费你的时间去开发、调试与维护。但是这个扩展可能并不会出现。

 3. 解耦意味着在你进行扩展时仅需理解少量代码,然而抽象却增加了理解代码的难度。

4. 不要一味的追求可扩展性,时刻意识到引擎是用来做游戏的。


1.3性能和速度

 1. 软件架构使你的程序变得更加灵活,同时也会因此导致性能的降低。

 2. 性能优化总是在某些假设下进行的。优化的方法在特定的条件下进行更好。

 3. 将你的程序做得更具有灵活性,以便能够更快速的进行原型编写,但这会带来一些性能损失。同样地,对你的代码进行优化会降低它的灵活性。

 4. 保持代码的灵活性,直到设计稳定下来,然后去除一些抽象,以提高游戏的性能。


1.4坏代码中的好代码

 1. 编写架构良好的代码需要仔细的思考,这是需要时间的。所以如果是一些一次性的代码,则不需要过多的考虑,只需要去尽快实现功能就行。当你要长期与这份代码打交道时,是需要进行良好的架构的。

 2. 原型是一个完全正确的编程实践,但是一定要确保它是一次性,用后一定要扔掉,否则你将会看到一团糟的代码组织。


1.5寻求平衡

 在开发中我们总是会去考虑

1. 获得一个良好的架构以便于更好的理解代码。

 2. 获得快速的运行时的性能。

3. 快速完成今天的功能。

 但是它们是相互矛盾的,良好的架构需要花费更多的时间去完成今天的功能,而更好的性能则会使程序僵化失去灵活性,快速完成今天的功能总是伴随这糟糕的组织与一堆Bug,所以这需要我们自己去寻找其中的平衡点。


1.6简单性

 简单性即为在保持数据结构与算法的正确性,努力尝试着编写最干净最直接的函数来解决问题。


1.7作者的建议

 1.抽象和解耦能够使得你的程序开发变得更快更简单。但是不要浪费时间来做这件事,除非你确信存在问题的代码需要这种灵活性。
2.在你的开发周期中要对性能进行思考和设计,但是要推迟纳西降低灵活性的、底层的、详尽的优化,能晚则晚。
3.尽快地探索你的游戏的设计空间,但是不要走得太快留下一个烂摊子给自己,毕竟你将不得不面对它。
4.如果你将要删除代码,那么不要浪费时间将它整理。


Stkcd [股票代码] ShortName [股票简称] Accper [统计截止日期] Typrep [报表类型编码] Indcd [行业代码] Indnme [行业名称] Source [公告来源] F060101B [净利润现金净含量] F060101C [净利润现金净含量TTM] F060201B [营业收入现金含量] F060201C [营业收入现金含量TTM] F060301B [营业收入现金净含量] F060301C [营业收入现金净含量TTM] F060401B [营业利润现金净含量] F060401C [营业利润现金净含量TTM] F060901B [筹资活动债权人现金净流量] F060901C [筹资活动债权人现金净流量TTM] F061001B [筹资活动股东现金净流量] F061001C [筹资活动股东现金净流量TTM] F061201B [折旧摊销] F061201C [折旧摊销TTM] F061301B [公司现金流1] F061302B [公司现金流2] F061301C [公司现金流TTM1] F061302C [公司现金流TTM2] F061401B [股权现金流1] F061402B [股权现金流2] F061401C [股权现金流TTM1] F061402C [股权现金流TTM2] F061501B [公司自由现金流(原有)] F061601B [股权自由现金流(原有)] F061701B [全部现金回收率] F061801B [营运指数] F061901B [资本支出与折旧摊销比] F062001B [现金适合比率] F062101B [现金再投资比率] F062201B [现金满足投资比率] F062301B [股权自由现金流] F062401B [企业自由现金流] Indcd1 [行业代码1] Indnme1 [行业名称1] 季度数据,所有沪深北上市公司的 分别包含excel、dta数据文件格式及其说明,便于不同软件工具对数据的分析应用 数据来源:基于上市公司年报及公告数据整理,或相关证券交易所、各部委、省、市数据 数据范围:基于沪深北证上市公司 A股(主板、中小企业板、创业板、科创板等)数据整理计算
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值