这是一个设计问题!!

遇到问题思考设计是否完备是否到位,而不是代码层面补丁。
这不只是一个“意识”问题,更是一个习惯和基本功的问题。

最近项目里遇到处理问题的不到位的地方,这里mark下,也谈下自己看法

这是设计问题
一个常见的只见树木不见森林的情况,就是遇到问题就在代码层面各种处理,而看不到系统设计层面。
设计的问题就是设计的问题,如果看不到这一点,在代码上折腾,最终却是南辕北辙,得到的是一个无法维护的系统,进而把模块“写死”。
其实模块或者系统的功能设计并不复杂,所遵循的原则就那么几个,甚至可以以“清晰”一个词来概括。

新手遇到问题的时候常常就会在代码层面看事情,有一些条件没考虑全,更多的是认为思维不够缜密,赶紧补上这个条件,然后冲进下一个问题。
这很常见也很正常,因为这个就是人的直接反应。
所以在能够形成牢固的对于设计的嗅觉之前,至少我们可以做的一点就是“留意设计”–在看到问题的时候,始终问问自己,这是不是一个设计问题。

这是基本功问题
进一步来说,实际情况中,我们有各种设计的问题,并不是我们意识不到,而是项目进度的问题,时间非常的赶的话,你自然就没有时间去仔细思考设计,直接因为“时间太紧”来打各种补丁。
这里我们有两种选择,一个是继续抱怨项目进度,一个是持续推进自己的内功,在非常快的开发节奏中,保持设计和实现。
而后者其实是可以做到的,也有很多人做到了。
本质上,游戏开发特别像竞技运动,和NBA有很大相似之处。
我们遇到非常多的阻力,多变的需求,变态的进度,很像打球对位的时候,遇到的防守,我们当然可以抱怨防守太tmd变态了,但是好的球员面对变态防守都是能够正常的运球过人传球和得分。
真正nb的球员,可以被犯规的情况把球打进,在最后时刻投入绝杀。
what’s your choice?

总结&复习
解说的话,有意识就够了,上场比赛的时候,就要有强大的基本功,可以非常快的把设计和实现做好,甚至在更长的时间里,可以给自己留出空位(通过超越进度的开发速度),来进一步优化设计实现以及文档。
这里并无捷径,但有高效的方法:
通过持续的review看到设计实现基本功的提升带来什么样的结果–将自己带入正反馈循环。
通过刻意练习(总结复习),来高效的提升设计实现基本功。

这种基本功包括:

  • 设计的套路,各种问题如何处理,类似打球时候的各种技术
  • hold模块的能力,我们到底能hold住多大的模块,类似打球时候我们的力量和弹跳,如果实现的本身就是非常符合设计套路,那么hold住模块就容易非常多

嗯,说到刻意练习可以说是现在知识平台常推的东西,大规模实践中,也并不这么“刻意”,因为本质上,刻意练习更多是为了“比赛&考试”这种单次反复性质的事情而设立,比如反复练习提升自己“投篮”时候的姿势。
但是实际开发中,并不是反复做一个事情,而是大量的开发各种各样的系统,所以更加准确的说就是用心的总结和复习是非常符合实际情况的。

猜你喜欢

转载自blog.csdn.net/ccanan/article/details/80248656