ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

20220319-代码日记

2022-03-20 00:01:53  阅读:209  来源: 互联网

标签:驼峰 20220319 名词 代码 NPC 命名 message 日记


今日整理代码。

前四周的课程结束了,将所学的东西整理整理。代码有些杂乱,可读性小。因此整理了一番。整理的内容可分为以下几个方面:
命名;
减少代码冗余和重复;
修改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,名词,代码,NPC,命名,message,日记
来源: https://blog.csdn.net/m0_46737006/article/details/123604024

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有