#做了个架子#

这几天在整理实验室,找外面的师傅,做了个架子。

用途嘛,在这个周围布满网,可以在里面调试一些较为危险的东西,比如无人机。

架子的四个角都装了轮子,带锁的,方便固定整个架子不让其移动,也方便我们移动这个架子。

地上之前铺了跑道,后面都撕掉了,所以留下了很多胶,没有处理好,所以地面比较黑。

后面在某宝上买了除胶的玩意,效果还不错。可以有效除去一些胶布残留下的玩意。

大家如果需要有一些难处理的胶印,可以买来试试。

#关于程序注释#

装了个台式机,想着就把笔记本的一些东西整理到台式机上,没想到发现了大一时写的代码。。。

不看不知道,一看吓一跳。

摘录一些,大家一起感受下。

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、单片机、等等

在公众号内回复「更多资源」,即可免费获取,期待你的关注~

长按识别图中二维码关注

翻到几年前的代码,我惊了。相关推荐

  1. 几年前的代码发现一个BUG: 整数相除结果不能默认转换为浮点数

    2019独角兽企业重金招聘Python工程师标准>>> 几年前的代码发现一个BUG: #include "stdafx.h" #include "std ...

  2. 苹果开源代码中惊现“wechat”,老外注释的吐槽亮了!

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 每个科技大厂的开源项目,几乎都是各领域开发者最重要的研究学习 ...

  3. iOS常用于显示几小时前/几天前/几月前/几年前的代码片段

    /*** Retain a formated string with a real date string** @param dateString a real date string, which ...

  4. 虾米音乐代码注释惊现“穷逼vip”程序员又背锅了

    开源最前线(ID:OpenSourceTop) 猿妹整编 综合自:V2EX社区.知乎等 11 月 19 日,在 V2EX 社区的技术版一名网友发布了一篇名为<虾米 mac 客户端发现个好玩的注释 ...

  5. 程序员又背锅了!虾米音乐代码注释惊现“穷逼vip”

    点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 11 月 19 日,在 V2EX 社区的技术版一名网友发布了一篇名为<虾米 mac ...

  6. 无意间翻到五年前的工作笔记

    今天在拿U盘拷贝一个东西,发现了16年的一个工作笔记.我记得我是11月17日入职,入职以后就开始处理各种问题.简单的扫描了一眼,发现了一些问题,当时作为核心开发,视界还是不够宽. 1,一直在处理问题, ...

  7. 虾米音乐代码注释惊现 “穷逼 vip”,程序员要出来接锅了

    11 月 19 日,某技术论坛出现了一篇讨论阿里旗下虾米音乐客户端的帖子,引发了网友争议. 发帖人称,虾米音乐客户端的程序员竟然称一些短期 VIP 客户为 "穷逼"VIP 气氛一下 ...

  8. 比尔盖茨40年前的代码被公布 精彩

    世界首富只有一个,而31岁就成为世界首富的也只有一个人,那就是比尔盖茨.众所周知,比尔盖茨是技术出身,与现在千千万万的程序员一样,都是奉行"技术改变世界"的一员.很多人好奇,作为世 ...

  9. 虾米音乐mac端应用代码注释惊现“穷逼vip”,是程序员干的

    http://www.guancha.cn/industry-science/2017_11_19_435527_s.shtml 11月19日,某技术论坛出现了一篇讨论阿里旗下虾米音乐客户端的帖子,引 ...

最新文章

  1. linux卸载kodi,如何在Ubuntu上安装Kodi 18 Beta
  2. jFreeChary初探
  3. 【深度学习】EfficientNetV2分析总结和flops的开源库
  4. 原生JAVA的TCP/UDP编程
  5. 让物联网真正起飞的关键:无线充电
  6. 回拨系统服务器,CISCO接入服务器回拨功能的实现
  7. python apache_Windows 配置 Apache Python CGI
  8. 在什么情况下自己应该辞职走人了,而不是等领导下“逐客令”?
  9. 魅族内斗;中兴危机;阿里百度要回 A 股 | CSDN极客头条
  10. 小程序 微信统计表格_微信小程序登录机制
  11. 流水作业c语言代码,C语言流水灯
  12. 戴尔修复计算机软件,DELL电脑系统恢复工具(Dell OS Recovery Tool)2019 v2.3.6066官方版...
  13. 广东开放大学形考任务保险学原理(本,2022春)形考三答案
  14. 电脑开启热点手机显示不可上网
  15. Maven项目之一号店——注册与登录
  16. 马哥教育开学感想随笔
  17. php迭代什么意思,迭代关系什么意思
  18. 什么耳机适合跑步、挑选五款最佳的跑步耳机推荐
  19. Spring IOC与DI、反射的理解 含小案例说明
  20. 华为服务器忘记系统登录密码,服务器主机登陆密码忘记了

热门文章

  1. SAP Kyma发布到SAP Marketing Cloud的事件
  2. 如何把SAP Kyma和SAP Cloud for Customer连接起来
  3. How to find CRM system's integrated ERP system
  4. jQuery.proxy debug
  5. 使用GraphQL的subscription订阅服务器的通知
  6. Sales Organization with Fiscal Year
  7. ABAP maintenance view event handling
  8. Live rates territory LRTERR is invalid for product or account hierarchy
  9. 如何解决AET field创建失败后的一系列dump
  10. How to get user parameter settings