通常,代码以功能为单位,按块划分。
这里的矛盾主要发生在:
事件中,动作的发生区域,也就是交叉区域。
例如:
吃苹果,“吃”放在动作模块里,“苹果”放在物品模块里。
“吃苹果”放在动作模块里,还是放在物品模块里,还是单独放在“吃东西”的模块里?
我认为,最开始应该放在动作模块里,以动作为主要分类标准。
如果,“吃东西”变的越来越复杂,就需要创建独立的“吃东西”模块,搬运之前的“吃苹果”代码到这个模块里。
这就是开发过程中的一种重构。
耗时耗力,非常容易引起BUG,并且,玩家,美术,策划和老板都感知不到,不过,还是有必要的~
“不重构,会怎么样?”
省时省力,代码不易维护。
如果是月抛型代码,可以这么干。
其他情况,建议花时间和精力重构。
“有先例吗?”
很多,Linux的内核代码,或者公共运行时库的代码,可以看到有些文件里,就一个函数,甚至只有几个变量或宏。
他们这样写,应该是因为这些代码必然不是月抛型代码,保持良好的结构和扩展性,这里就非常重要了。
不过,这个过程肯定非常耗时,让人纠结,而且,代码产量不高,甚至没有产量,只是“变了个位置”。
如果,一定要找出一个所谓的标准,我认为,我找不到。
跟软件工程里的很多问题一样,能标准化的问题,机器都可以做。
“是否应该进行重构?”,以及“如何进行代码的模块划分?”,机器都做不到。
或者说,机器能做到,但是,人看了机器写的代码,会非常费解。
人是给人服务的,机器给人写的代码,人给人写的代码,读代码的人,如果看不懂,不好说这是一个好的做法~
有点扯远了,总之,代码以功能划分,功能以动作为主要分类标准,必要时进行重构。
多快好省,保质保量。
写的不好,来日方长。
山高路险还远,低头看路。
抬头看天,啥也不会,大脑一片空白,一步一步地来。
标准不唯一,多看看多想想,共勉~
“你这么喜欢写代码,就是码农。”
有时我也费解“当码农有什么不好的?”。
我感觉当一个码农,当一个肤浅的码农,挺好~
无我据说是一种境界,我觉得更多的有点像一种状态,没有把自己放在“里面”,“码农”这个时候,就有点像一种身份,让我只考虑身份,而忘记了“里面”,进而有一点儿无我的状态。
我觉得可能就是心理学上说的心流(Flow),不一定对,我瞎猜的~