Java教程

20220319-代码日记

本文主要是介绍20220319-代码日记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

今日整理代码。

前四周的课程结束了,将所学的东西整理整理。代码有些杂乱,可读性小。因此整理了一番。整理的内容可分为以下几个方面:
命名;
减少代码冗余和重复;
修改bug(部分)。
另外还有一部分内容,以后再进行整理:代码注释;代码重构,抽象出框架。

关于命名

代码命名一直是我比较头疼的一个问题。
我正经学过的语言只有c和c#,现在用的最多的就是c#。
之前查过很多命名规范,但是用起来总感觉还是很乱。
昨天又在网上查了查一些关于命名规范的博客:
其中有一篇是微软官方的命名规范:
框架设计准则
我平时所用的命名方法部分与它所规定的命名规范是一样的。例如类名,方法名,接口名,属性名等都是用大驼峰,参数名等用小驼峰。
但是另外一部分是不一样的。到目前为止,我没有找到一种我习惯的命名方法。作为一个强迫症患者,我需要继续寻找一种命名规范,更正我的命名习惯,并且完善各种细节,这样,在以后更换命名规范时,会方便很多。

  • 全部的命名都要能见其名而知其意,除了一些特定的广为人知的缩写,其余尽可能写全称。
  • c#命名时,在名称中不要出现该变量的类型。例如,
    private List<int> ages = new List<int>(); //合适 private List<int> ageList = new List<int>(); //不合适
  • 布尔类型用is,can,have等开头。不要使用否定形式开头。
    private bool isRun=false; //合适 private bool isNotRun=false; //不合适
  • 命名空间、类名:大驼峰命名,并且命名为名词或名词词组。
  • 结构体名、枚举名:大驼峰命名。
  • 枚举成员:大驼峰命名,名词。
  • 方法名:大驼峰命名,命名为动词或动宾短语。
  • 接口:大驼峰命名,名词。
  • 事件:大驼峰命名,动词。
  • 属性:大驼峰命名,名词或者形容词。
  • 字段:小驼峰命名。私有字段以下划线开头,并且第一个单词首字母小写。名词。
  • 参数名:小驼峰命名,名词。
  • 结构体成员:小驼峰命名,名词。

关于命名这一块儿,还需要继续积累经验,积累规范。

减少代码冗余和重复

在编程的时候,需要为工程增加一些功能,例如人物发出技能。一个角色可以同时拥有多个技能,在编写这些技能时,如果每个技能都写一遍,会产生大量重复的代码。这使代码的可读性降低,而且对我来说,代码也不美观。因此,我将相同的部分进行了抽象,让具体的技能都继承于这个类。并且利用虚函数,减少代码冗余。
具体就是Skill系列代码,进行了抽象,并且代码的编写速度大幅提高。
另外,有很多资源需要Resources.Load出来,需要提供具体的路径。但是这些路径一旦改变,再去找各个脚本中的路径,会很麻烦,因此,我将这些路径都写在一个GameDefinition类里面,写成字符串常量。这样进行同一管理,方便修改和查找。当路径发生变化时,直接去这个定义类里查找和修改。

修改Bug(部分Bug)

今天的bug,仅仅指运行中出现的错误,不包括运行中的不完美的地方。
我稍微有些追求完美,现在已经在尽力改掉这个毛病了,因为追求完美真的很耽误事,它只会加重我的拖延症。
在运行时,

public override void RecieveMessage(MessageClass message)
    {
        base.RecieveMessage(message);
        if (message.Command == MessageType.Quest_AddQuest)
        {
            //--------这一块是从0 开始,但是任务id从1开始。---------待解决----------
            //原因:在inspector面板上,NPC乔巴的taskId是0,因此,出现错误。
            AddQuest((int)message.Contend);
        }
        if (message.Command == MessageType.Quest_Enemy)
        {
            AddEnemy((int)message.Contend);
        }
    }

这一块是出了错误的,原因是字典中没有message.Content这个键值。在联调之后,发现这个参数值是从0开始。无奈之下,我只能将该值进行加1。这样,工程能正常运行了。
在调整NPC时,发现NPC身上的一个参数赋值为0,导致了工程在运行时报错。再次将它赋值为1,然后message.Content恢复,将“+1”去掉,这样工程不再报错。
在进行多个NPC开启任务时,又遇到了报错。这个错误在今天即将结束之际还没有找到。

另外,关于Application.dataPath,Application.streamingAssetsPath这两个的用法还没有完全弄明白;XML和json两种文件的解析和用法也不清楚。需要继续学习。

该工程项目需要继续优化。让代码变得更加优美,提高代码可读性,抽象出一个合理的框架。

工程文件之后进行托管。


本篇日记用时:大约一小时。需要提高速度。
今日代码修改:用时约6小时,增删改代码量不到100行。
需改进的地方:编程速度慢,需要多写代码。本月剩余时间,需要写200行有效代码。

这篇关于20220319-代码日记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!