惊艳于红警开源代码?赏心悦目的代码注释,我们也可以
1。前言
红警1的开源代码重现江湖,这个20年前,甚至25年前的代码,被我们所有的后来者所惊叹,这才是一个艺术品(art)一般的存在。其优秀的代码才是一款RTS游戏能够风靡全球的最根本保障。
其开源链接为:https:github。comelectronicartsCnCRemasteredCollection
如果你想重温这款童年记忆,那么花费140人民币,你就可以在Steam上体验到这款游戏。
但是,我们的重点,主要在其代码上,因此不放出其游戏截图了,而是专注代码。下面是我随便点开的一个文件内容。大家可以欣赏一下什么是赏心悦目的代码。
2。我们惊叹它的什么?
通过上图,我们能够看到什么?我们惊叹的是它的什么?
先看看小伙伴们的评价(只摘取了部分评价):
在我看来,我们惊艳的部分至少包含三点:清晰的代码注释语义化的编码规范小而精的逻辑实现2。1清晰的代码注释
我们可以看到非常工整的文档头注释(图1),还有详细的方法注释(图2),以及代码的字里行间里的逻辑注释(图3)。这些注释不仅仅是简单的重复代码,更把代码背后的业务逻辑详细的呈现了出来,使得我们不用猜测这个的用途,只读代码就可以知道它应该在哪里使用。最为夸张的是第三张,在具体实现中,注释竟然比代码所占篇幅还要大。2。2语义化的编码规范
我们可以看到它明显的语义化编码,也就是在逻辑实现部分,尽可能的能够少考虑具体的实现,如if判断条件中,使用一个函数来实现具体的判断,而不是直接把判断细节暴露出来。这有助于我们思维的连续性,从而从更高的层面对于代码有一个整体的把握。2。3小而精的逻辑实现
一般的,尽可能的要让一个函数的实现少,大概一个屏幕可以放得下即可,真正做到一个函数只做1件事,这样既可以避免逻辑混乱,而且也易于维护。对于其中的复杂的逻辑的细节实现,完全可以放到另一个函数中,从而避免一个函数包含了若干个层次的逻辑。3。依葫芦画瓢
那么在我们感叹之余,我们能不能做些什么向大佬看齐?在我的Blink发出以后,收到了上百个点赞评论,一致认为都想像20多年前的前辈一样优雅的编程。那么,我们就从最简单的、最明显改观的代码注释开始。
在Python中,代码注释其实就两种,单行代码注释()和多行代码注释()。但是我们需要用到的地方则有4个部分:文档级、类级、方法级和行级别。下面我们分别讲解一下这些部分的组成。3。1添加文档级注释
我们可以看到红警文件开头的那个非常醒目的注释,它展示了整个文件的简要信息,如属于什么项目,谁在什么时候创建的,什么时候更新的,而且以一种非常规范的格式呈现在我们面前。我们能不能拥有这样酷炫的文档开头呢?答案是Yes!
首先看一下我复现的效果:
尽管看起来可能没有红警原版霸气,但是只要学会了这个技术,我们都可以创建属于自己的风格的文件头。我们只需要利用pycharm中的文件模板设置即可。它总共分为3个步骤:
首先,点击FileSettings进入设置界面,选择Editor下的FileandCodeTemplates选项。
然后,点击PythonScript(你也可以为其他类型文件设置文件头),就可以看到最右侧显式的文件模板了。
最后,只需要将我们喜欢的文件头复制粘贴进去即可,点击OK即可。
下面是我仿照红警风格自己设计的文件头,大家可以随意取用(CV一下):
当然,更多其他的这种内置变量或者自定义变量的使用方法可以参见《详解pycharm新建文件时头部的模板oukohouCSDN博客》。3。2添加类级注释
当添加完文件注释以后,我们就需要添加更加细致的注释,首先来看对于类的注释。下面的例子给出了类注释的两个部分,一个部分是直接处于类下的简要介绍,另一个则是在init下的注释。两个部分都是使用进行标记的。图上风格为pycharm自带的编码风格,也有google和Numpy风格的注释,详情可以看《Python类和方法注释规范XerCis的博客CSDN博客python方法注释》。
3。3添加方法级注释
更加细致的注释是在方法级的注释,如下面代码所示,它注释在方法上,一个好处是可以直接指导这个函数的功能,另一个好处就是当你在查看方法时,不需要点击方法里面查看源代码,也知道它的用途、参数和返回值,这个操作我们下面会介绍。
3。4添加行级注释
最细致的是行级注释,只注释在每一个行上,例如刚才出现过的例子。它可以用来解释一些不是很容易知道操作的目的的代码。fileFilefileFileSpecialoperationtoavoidthereisnoroot。3。5其他小技巧
经过以上4级的注释,我们让代码更加的丰满了,从而能够达到红警里注释的效果。但是我们这东西可不是绣花枕头,中看不中用,它是可以实实在在帮助我们提高编程效率的。下面我们介绍一些小技巧来帮助我们更好的利用我们其他人的注释。3。5。1查看方法注释
当我们费了千辛万苦注释完毕后,该怎么查看呢?一个方法就是将鼠标放置在我们想要查看的方法上,按住ctrl,就可以查看到其注释了。
另一个方法则是ctrlQ,它用来查看说明文档呈现的注释,两者的不同大家可以通过下面的图和上面的图对比可得。
3。5。2生成说明文档
就像刚才讲的,这些都是在代码里查看的,如果我们想生成一个工业级的软件说明文档该如何呢?这么多注释不能白写了呀。这时候我们就可以使用Sphinx来帮助我们实现自动化的说明文档生成,详情可以看《Sphinx入门快速生成Python文档》。3。5。3打包项目所需依赖包
当我们代码也准备好了,说明文档也准备好了,距离交付别人就只差一个依赖包了。我们的项目可能会依赖很多第三方的包,如果不给别人一个依赖清单,那么别人也没有办法非常容易地复现你的程序,因为总会报各种各样的错误。这时候,我们又需要另一个神器了pipreqs。
首先使用命令行执行pipinstallpipreqs。
然后进入项目的文件夹里,执行下面的命令:pipreqs。报错就执行下面这条pipreqs。encodingutf8
这样就会生成一个requirement。txt文件,里面就是我们的依赖包了,等到再复现的时候,只需要执行pipinstallrrequirement。txt即可重装这些依赖了。4小结
至此,我们基本上讲述了如何实现教科书级的红警开源代码需要注意的事项,为以后我们更好地编码打下了基础。在将来,我们将会磨砺自己的编程技巧,终有一天做出一流的艺术品,为整个虚拟世界真真正正地贡献自己的一份力量!
本人技术博客同步更新,欢迎关注:刘炫320的博客CSDN博客算法编程习题解答(java版),机器学习习题集,leetcode领域博主
黄晓明中餐厅考察杨紫还珠格格扣工资承担责任收获好评星关系8月23日讯第三季《中餐厅》自开播以来收视稳居同时段一位,一路话题不断,黄晓明作为店长带领一众明星在意大利西西里岛的开店历程也让网友看得十分投入。本期节目中,黄晓明开会总……
邓伦香蜜沉沉烬如霜获好评收官上演穿貂寻妻名场面星关系9月5日讯昨日,唯美古装神话爱情巨制《香蜜沉沉烬如霜》正式收官。该剧讲述了花神之女锦觅与天帝之子旭凤之间痴缠万年的轮回之恋,一经上线便收获了广泛好评,收视率、播放量也节节……
中国邮政有多厉害?中国邮政才是快递界的天花板。以前的时候,大家经常吐槽中国邮政速度慢、快递损坏严重、丢快递现象频发。。。。但是你们知道中国邮政有多努力吗?只要有人送快递,不管快递要送……
邓伦香蜜沉沉烬如霜飙哭戏获赞网友心疼邓伦苏星关系8月23日讯由邓伦、杨紫等主演的唯美古装青春爱情剧《香蜜沉沉烬如霜》(以下简称《香蜜》)正在热播中,该剧改编自知名网络作家电线同名小说,讲述了天帝之子旭凤(邓伦饰)和水神……
电视剧香蜜沉沉烬如霜热播邓伦上演深情虐恋星关系讯:天帝之子之子旭凤(邓伦饰)涅槃时遭人暗算掉落花界水镜现出真身,随后被葡萄精灵锦觅(杨紫饰)所救并误认为乌鸦,锦觅以恩人自居让旭凤带她去往天界,而旭凤看她心性单纯便将她……
小爱同学商标遭抢注,小米上诉被驳回IT之家6月2日消息小米科技有限责任公司与知识产权局商标行政管理(商标)的案件于近日公布,小爱同学商标37类建筑修理类曾于2017年被陈某注册成功,小米于2018年注册该商标被……
双生姐妹刘嘉格刘嘉芮参演湖南卫视蜗牛与黄鹂鸟近日,正在湖南卫视金鹰独播剧场热播的青春励志剧《蜗牛与黄鹂鸟》掀起了新一波得到追剧热潮。剧情刚刚过半,播放量便早早突破了两亿。随着剧情的发展,除去男女主的有趣互动外,剧中一对双……
白话天下阿里巴巴被罚182亿天价,自家的孩子为什么不护短?文大白大家好,我是大白,欢迎来到我的白话频道。昨天开始,好多白话粉丝除了NBA的问题之外,催我更的最多的一个话题就是阿里巴巴因为垄断而被处以天价罚款这个事情。没问题……
地产公司又爆雷了,下一个是谁?融创爆雷对你有什么好处?〔吐彩虹〕下一个融创也很危险。融创是一家全年销售近6000亿的房企,在国内长期位居第四,紧跟碧桂园、万科、恒大。其中恒大已经全面暴雷,碧桂园……
互联网推广有什么好的方法?看你们网站主要面向群体,然后再选择推广方法。不同行业的推广方式不一样。找到你的潜在客户,定向推广,不然做太多的推广都是白费劲推广方法有很多啊。搜索引擎推广(SEO推……
彩色激光打印机值得推荐的有哪些?和彩色喷墨打印机相比,彩色激光打印机打印的彩色可以长时间不褪色,而喷墨打印印打印的彩色如果不及时过塑,放一段时间就针对褪色。更重要的是喷墨打印机在放置一段时间不用,它就会存在堵……
预算2000元以下,不要死磕Redmi,OPPO也有性价比预算2000元以下购买手机,大部分人会率先想到Redmi与realme,毕竟这两个品牌的性价比已经给我们留下了根深蒂固的印象。那么,如今在千元机中真的只有这两个品牌的机型可选么……