翻到几年前的代码,我惊了。
#做了个架子#
这几天在整理实验室,找外面的师傅,做了个架子。
用途嘛,在这个周围布满网,可以在里面调试一些较为危险的东西,比如无人机。
架子的四个角都装了轮子,带锁的,方便固定整个架子不让其移动,也方便我们移动这个架子。
地上之前铺了跑道,后面都撕掉了,所以留下了很多胶,没有处理好,所以地面比较黑。
后面在某宝上买了除胶的玩意,效果还不错。可以有效除去一些胶布残留下的玩意。
大家如果需要有一些难处理的胶印,可以买来试试。
#关于程序注释#
装了个台式机,想着就把笔记本的一些东西整理到台式机上,没想到发现了大一时写的代码。。。
不看不知道,一看吓一跳。
摘录一些,大家一起感受下。
void wanggei(int a,int b)//画网格{ initgraph(20*a,20*b); setbkcolor(BLUE); cleardevice(); setwritemode(R2_XORPEN); setfillcolor(WHITE); settextstyle(15, 0, _T("楷体")); // 操作说明 outtextxy(20, 10, _T("操作说明")); outtextxy(20, 30, _T("w:旋转")); outtextxy(20, 50, _T("a:左移")); outtextxy(20, 70, _T("d:右移")); outtextxy(20, 90, _T("s:下移")); return;}void suiji(int a[],int b[])//生成随机方块{ int n; srand((unsigned)time(NULL)); n=rand()%(X-9); if(n==1) { a[0]=1+n;b[0]=Y+1;a[1]=1+n;b[1]=Y+2;a[2]=2+n;b[2]=Y+1;a[3]=2+n;b[3]=Y+2;//正方形的方块。 return; } if(n==2) { a[0]=1+n;b[0]=Y+1;a[1]=2+n;b[1]=Y+1;a[2]=3+n;b[2]=Y+1;a[3]=2+n;b[3]=Y+2; return; } if(n==3) { a[0]=1+n;b[0]=Y+1;a[1]=1+n;b[1]=Y+2;a[2]=1+n;b[2]=Y+3;a[3]=1+n;b[3]=Y+4; return; } if(n==4) { a[0]=1+n;b[0]=Y+1;a[1]=2+n;b[1]=Y+1;a[2]=2+n;b[2]=Y+2;a[3]=2+n;b[3]=Y+3; return; } if(n==5) { a[0]=1+n;b[0]=Y+3;a[1]=1+n;b[1]=Y+1;a[2]=1+n;b[2]=Y+2;a[3]=2+n;b[3]=Y+1; return; } if(n==6) { a[0]=2+n;b[0]=Y+1;a[1]=2+n;b[1]=Y+2;a[2]=1+n;b[2]=Y+2;a[3]=1+n;b[3]=Y+3; return; } if(n==7) { a[0]=1+n;b[0]=Y+1;a[1]=1+n;b[1]=Y+2;a[2]=2+n;b[2]=Y+2;a[3]=2+n;b[3]=Y+3; return; }}void Judge(int a[],int b[],int n,int x[X+2][Y+2],int y[X+2][Y+2],int speed)//游戏规则{ int i=0,j=0,k,a0[4],b0[4]; char c; while(1) { for(j=1;j<=Y;j++) //消去的行 { for(i=1;i<=X;i++) if(i!=x[i][j]&&j!=y[i][j])break; if(i==X+1) { for(i=1;i<=X;i++) { Rectangle(i,j); x[i][j]=0; y[i][j]=0; } for(i=1;i<=X;i++) for(k=j+1;k<=Y;k++) if(x[i][k]==i&&y[i][k]==k) { x[i][k]=0; y[i][k]=0; x[i][k-1]=i; y[i][k-1]=k-1; Rectangle(i,k); Rectangle(i,k-1); } } } for(i=0;i<n;i++) Rectangle(a[i],b[i]); Sleep(1000-100*speed); for(i=0;i<n;i++) Rectangle(a[i],b[i]); for(i=0;i<n;i++) { a0[i]=a[i]; b0[i]=b[i]; }if(kbhit()) { c=getch(); Move(a,b,n,c); if(c=='s')speed=10; } else { Move(a,b,n,'0'); for(i=0;i<X+2;i++) for(j=0;j<Y+2;j++) for(k=0;k<n;k++) if(a[k]==x[i][j]&&b[k]==y[i][j]) { for(i=0;i<n;i++) { a[i]=a0[i]; b[i]=b0[i]; } return; } } for(i=0;i<X+2;i++) for(j=0;j<Y+2;j++) for(k=0;k<n;k++) if(a[k]==x[i][j]&&b[k]==y[i][j]) { for(i=0;i<n;i++) { a[i]=a0[i]; b[i]=b0[i]; } goto ex; } ex:; }}
什么感觉:写的啥玩意。
拼音和英文混排,哈哈哈。给力不给力
最重要的是,没有注释。
说实话,虽然是我自己写的,但我刚开始看的时候,这是啥变量啊。
这又是啥变量啊。为啥要放到这里。
变量的定义,务必要清晰,让人一看就能够知道大致意义。
有些朋友,对于自己熟悉的英文,可能会用英文表示,但如果不会表达,可能直接用aa,bb这样没有任何代表意义的字母来命名。
出现这种命名的话,如果代码整体量较大,写再多注释都没用,可读性非常差,可能自己今天写的,一个星期后回来再看,也忘记其代表的含义了。。。
所以,变量的命名极为重要。
#解决命名的好帮手#
基于此,在此给大家介绍一个网站:
CODELF,一个搜索界面,可以为变量进行专业的命名。
比如,项目中需要命名一个变量叫做温度,有的童鞋一下想不起来怎么命名,直接用拼音温度来表示了。
该网站,输入一个中文词汇,会弹出很多对应的翻译。算是变相的翻译~
同样,函数的命名也可以这样去操作。
放上网站:https://unbug.github.io/codelf/
另外,解决命名后,在别人第一眼看到程序时,就能够了解我们接下来写的代码意义。
其次,就是具体的逻辑过程。这部分的注释也尤为重要。
程序的过程说到底,无非就是用语句去操作变量,玩转数据。交替得出最终我们想要的结果。
所以,程序操作过程,应该也值得记录。毕竟以后维护的时候,再看到代码时,能快速的理解其逻辑。
当然,有朋友会有另外的观点:
程序结构不好,写再多的注释都没用
但,如果程序结构好,注释也多,代码的可读性应该就会更强了。
毕竟程序员最讨厌的两件事就是:
1、别人的代码不写注释。
2、自己写完代码还要写注释。
《代码大全》,讲到注释有以下几个种类:
1、复述代码—这种把代码复述一遍的注释最无聊。
2、解释代码—解释代码的思路,这种代码可以有,但是大部分时候是因为代码写得不好。
3、概述代码一句话告诉别人代码做了什么,很好的注释。
4、代码意图说明—指出代码要解决的问题。
5、传达代码无法表述的信息—非常重要。
不知道各位朋友喜欢写哪种注释,还是喜欢写完代码绝对不回头。
当然,注释只是项目文档之一,还可能要写设计文档、测试用例、变更列表、使用手册等多种文档去让别人理解及维护项目。
这样的话,如果只是单写个程序注释,应该算上是一件幸福的事情。
-END-
往期好文合集
雷军 1994 年写的代码,经典老古董。
致初级开发者的一封信:坚持写代码!
新手如何快速上手Linux,韦东山告诉你。
最 后
若觉得文章不错,转发分享,也是我们继续更新的动力。
5T资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、单片机、等等!
在公众号内回复「更多资源」,即可免费获取,期待你的关注~
长按识别图中二维码关注
翻到几年前的代码,我惊了。相关推荐
- 几年前的代码发现一个BUG: 整数相除结果不能默认转换为浮点数
2019独角兽企业重金招聘Python工程师标准>>> 几年前的代码发现一个BUG: #include "stdafx.h" #include "std ...
- 苹果开源代码中惊现“wechat”,老外注释的吐槽亮了!
点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 每个科技大厂的开源项目,几乎都是各领域开发者最重要的研究学习 ...
- iOS常用于显示几小时前/几天前/几月前/几年前的代码片段
/*** Retain a formated string with a real date string** @param dateString a real date string, which ...
- 虾米音乐代码注释惊现“穷逼vip”程序员又背锅了
开源最前线(ID:OpenSourceTop) 猿妹整编 综合自:V2EX社区.知乎等 11 月 19 日,在 V2EX 社区的技术版一名网友发布了一篇名为<虾米 mac 客户端发现个好玩的注释 ...
- 程序员又背锅了!虾米音乐代码注释惊现“穷逼vip”
点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 11 月 19 日,在 V2EX 社区的技术版一名网友发布了一篇名为<虾米 mac ...
- 无意间翻到五年前的工作笔记
今天在拿U盘拷贝一个东西,发现了16年的一个工作笔记.我记得我是11月17日入职,入职以后就开始处理各种问题.简单的扫描了一眼,发现了一些问题,当时作为核心开发,视界还是不够宽. 1,一直在处理问题, ...
- 虾米音乐代码注释惊现 “穷逼 vip”,程序员要出来接锅了
11 月 19 日,某技术论坛出现了一篇讨论阿里旗下虾米音乐客户端的帖子,引发了网友争议. 发帖人称,虾米音乐客户端的程序员竟然称一些短期 VIP 客户为 "穷逼"VIP 气氛一下 ...
- 比尔盖茨40年前的代码被公布 精彩
世界首富只有一个,而31岁就成为世界首富的也只有一个人,那就是比尔盖茨.众所周知,比尔盖茨是技术出身,与现在千千万万的程序员一样,都是奉行"技术改变世界"的一员.很多人好奇,作为世 ...
- 虾米音乐mac端应用代码注释惊现“穷逼vip”,是程序员干的
http://www.guancha.cn/industry-science/2017_11_19_435527_s.shtml 11月19日,某技术论坛出现了一篇讨论阿里旗下虾米音乐客户端的帖子,引 ...
最新文章
- linux卸载kodi,如何在Ubuntu上安装Kodi 18 Beta
- jFreeChary初探
- 【深度学习】EfficientNetV2分析总结和flops的开源库
- 原生JAVA的TCP/UDP编程
- 让物联网真正起飞的关键:无线充电
- 回拨系统服务器,CISCO接入服务器回拨功能的实现
- python apache_Windows 配置 Apache Python CGI
- 在什么情况下自己应该辞职走人了,而不是等领导下“逐客令”?
- 魅族内斗;中兴危机;阿里百度要回 A 股 | CSDN极客头条
- 小程序 微信统计表格_微信小程序登录机制
- 流水作业c语言代码,C语言流水灯
- 戴尔修复计算机软件,DELL电脑系统恢复工具(Dell OS Recovery Tool)2019 v2.3.6066官方版...
- 广东开放大学形考任务保险学原理(本,2022春)形考三答案
- 电脑开启热点手机显示不可上网
- Maven项目之一号店——注册与登录
- 马哥教育开学感想随笔
- php迭代什么意思,迭代关系什么意思
- 什么耳机适合跑步、挑选五款最佳的跑步耳机推荐
- Spring IOC与DI、反射的理解 含小案例说明
- 华为服务器忘记系统登录密码,服务器主机登陆密码忘记了
热门文章
- SAP Kyma发布到SAP Marketing Cloud的事件
- 如何把SAP Kyma和SAP Cloud for Customer连接起来
- How to find CRM system's integrated ERP system
- jQuery.proxy debug
- 使用GraphQL的subscription订阅服务器的通知
- Sales Organization with Fiscal Year
- ABAP maintenance view event handling
- Live rates territory LRTERR is invalid for product or account hierarchy
- 如何解决AET field创建失败后的一系列dump
- How to get user parameter settings