Project1

标题: 怎样维护大量的代码 [打印本页]

作者: 哇哇哇啊叭叭    时间: 2021-11-6 20:41
标题: 怎样维护大量的代码
本帖最后由 哇哇哇啊叭叭 于 2021-11-7 11:22 编辑


  嗯~ o(* ̄▽ ̄*)o前两天看了篇有关《邪恶冥刻》沉浸感的文章,那把这游戏一顿夸的,好像拿起来就放不下了一样。今天码了一天代码,突然觉得沉浸感也没这么难获得呢。

[line]1[/line]
  谢谢!(看着rm自带的代码,才感到官方写的代码是真的...有明显的习惯规律呢)
  有2个思路啦:①规范命名(使用私人简写),②一个函数必须在一个显示屏范围内写完,③每个代码页只完成一个功能。


  p.s.今早醒来,想到之前见过的许多人,他们非常优秀,但最终却没能获得与自己相匹配的归宿。突然有种自己曾经熟悉的东西都在慢慢死去的感觉,以前看过的电视剧,流行过的游戏,觉得非常厉害的漫画,很能谈得来的人...还有RM。新出现的东西以更高的效率迭代,猛地想起儿时幻想的好朋友、坚信的事情,才发现已经忘记它们很久很久了

[line]1[/line]
  为什么沃挺认真的发问,大家的回复都这么幽默呢


[line]6[/line]
  一些工程使用了大量其他作者的插件,且在插件上做出了不同程度的细节修改。加上自己写的一些插件,整个游戏外加的脚本看起来非常的肥大。

  那么怎么解决【脚本可读性】和【脚本容错率】这个问题呢?
  自己写的东西,过上1个星期就忘干净到底是干嘛用的了,更别说别人的插件和自己修改的别人的插件了。怎么才能迅速地理解游戏插件的框架逻辑、怎样能够有效地通过注释或其他工作将必要信息记录下来呢?
  很多人说ruby有个“既叉既用”的好处,但叉多了,就发现代码冗长且难阅读。如何避免脚本过多而产生的耦合呢?

  大家平时是怎样维护自己的代码的呢?







作者: 灯笼菜刀王    时间: 2021-11-6 21:36
修修补补到受不了/ 忘记这段代码怎么工作的 / 实在看不爽的时候

就重写
作者: Im剑侠客    时间: 2021-11-6 22:22
多吃点沙姜吧(
作者: enghao_lim    时间: 2021-11-7 01:11
我个人是利用有效率的命名来解决。如果给每段代码都上注释这工作量太大,所以命名得好的变量完全可以兼顾注释功能。
少用temp, tempA, tempB这类命名,不用一个星期,两天后你就忘了。
举例:
  1. var countOfUser = calculateActiveUser();
复制代码

虽然变量名变长了,但是可以自己定义一下常用或者泛用的缩写,比如User => Usr,大多数人都能看懂。
还有也建议函数代码不要太长,酱函数模块化,最好是一个函数的执行内容在一个显示屏就可以显示完,这样既不用滚动来滚动去也方便代码阅读。

总结:增加有意义的代码,减少垃圾命名,你会发现维护起来也没有那么复杂。

(你说别人写的怎么办?看2楼
作者: 百里_飞柳    时间: 2021-11-7 01:54
为啥会有这么个维护问题

首先要确保一个文件/代码页,所完成的工作是独立的
比如这一个代码页里的,都是为了美化主菜单,那个里的,是增加了一个子菜单

不要全部扔到一起,就为了省几个alias()

作者: SailCat    时间: 2021-11-7 11:45
看不惯内部脚本风格就重新实现
看不惯别人脚本风格就重新实现
就是那种写上1K行代码却只是把轮子重新造一遍
有的时候重新造一遍轮子,只是为了让轮子更圆(代码更易于维护)
比如我用RGSS3的逻辑重新实现了RGSS1的大部分Scene和Window,后面写Scene和Window的扩展就非常容易了
作者: hyrious    时间: 2021-11-7 14:39
用 git(逃
如果每行代码都是你自己写的,那其实也没啥难度
作者: soulsaga    时间: 2021-11-7 15:16
把插件和源生脚本都砍掉全部自己重写..
作者: 清澈淌漾    时间: 2021-11-7 18:53
我是mv   把读脚本的核心改改  分分文件夹 舒服多了
作者: orochi2k    时间: 2021-11-8 06:01
写自己的代码,让别人完全看不懂就完事了,只要自己还看得懂就说明未忘初心(大雾)
作者: melonbun    时间: 2021-11-8 12:30
加注释,然后再建一个文档把关键的地方都写进去。比如整个功能实现的链条,关键变量的作用啥的……
个人感觉长时间不碰的话再回头弄,生疏感是是不可避免的吧。
不过有的时候也会心态爆炸然后化身暴躁老哥推倒重来什么的




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1