分享最近项目出现的问题和思想升华

news/2024/7/4 15:43:34

每天最多的时间对着电脑鼓捣着程序,或因为一个问题不能解决而绞尽脑汁苦苦思索,或因为有了点小小的成果而沾沾自喜兴奋异常。 ----《疯狂的程序员》

软件开发是一个善于思考的职业,写程序都是要经过需求分析、设计、编码还有测试运行的。所以我在写程序的时候自然而然的就形成了一些坏毛病,例如:唯我独尊,不愿测试,不喜欢别人说自己程序烂等等。

而事实告诉我,我太把自己当回事了。

最近的最近给学校在做一个关于综合测评的BS项目,项目实现是非常容易的,但是在项目几近结束的时候发现了一个bug。

这个bug让我好几天都没有睡好觉,每天脑子中都在想是什么导致这个问题出现,怎样才能解决这个问题。

不过还好,经过了几天的痛苦折磨,在一个夜黑风高的深夜,我终于把它给解决了。

经过这次问题,我更加深刻的认识到自己在写程序上出现的一些问题,并且总结出来一些思想,今天把这些问题和思想分享给大家,和大家交流沟通,共同努力。

无风不起浪,你别把自己当个艺术家


我设计的代码是否非常糟糕,从我一敲击键盘就能察觉到。把一个方法或函数写上成千上万行,那最后不想承受洪水冲击都不行;我把所有的变量都写成i,j,k那么过一段时间之后它认识我,我却不认识它了;我不把注释写好,我还想奢望让团队的每个人都理解我的代码?可能他们到最后连我本人都不想理解了。


无风不起浪,要想风平浪静,就要运筹帷幄。让自己强大起来,做好运筹帷幄的事情。

我不是什么艺术家,我也没有那么高尚,我写出来的代码是非常烂的,没有必要把自己奉为神明,唯我独尊,东方不败的样zhi。自己写出来了代码,不去检查,不去调试,那自己做这个高尚的职业又有啥意义呢?

所以,我不要去挑剔别人的程序,有一天也许我的程序会被人放在聚光灯下挑剔。要保持客观和专业的评论,不要轻易判断。要谦虚,从周围人哪里学习经验,警戒自己不要写出这么糟的程序。


时刻告诫自己,我不是艺术家。

不注重前戏,后果很严重


前戏很重要,需求分析和设计是要要求我们对整个系统的结构和逻辑都有很清楚的理解。需求要到位,这是项目的根基,如果根基没有了,那么大楼是无从谈起的。文档和架构UML都要明确清晰明了,如果这些不明了,那么交流是项目进行中的一个阻碍。前戏阶段思路清晰非常非常重要,否则会一乱到底,乱上加乱。后果不堪设想。

所以前戏非常重要,为了避免出现意想不到的结果,还是要好好的把前戏做好。

勿以善小而不为,勿以恶小而为之

像刚才说到的无风不起浪,我们项目中会出现诸多bug,是什么原因呢?可能有很多,有些是技术上的,有些是非技术上的。


所以在这里要好好的说说这个代码编写。


1. 代码的编写,要尽量减少拼写的错误,严禁使用关键字作为变量来使用,要尽量做到代码模块化,并且保证其正确性和可重复使用性

2. 函数别写太长,功能越单一越好。函数写那么长干哈,又不是写论文,想让看程序的人累死,也想让debug的自己愁死,有木有啊!

3. 缩进要合理,当debug的时候会感受到这条带来的好处。

4. 要做代码检查工作,你不要写一万行代码再进行调试,这样增加了排错的难度。如果你把一万换成四五行,你想你的排错是不是更加容易。

5. 命名是非常有学问的事情,我一刚写程序的时候,一写变量除了i就是j要不就是k。当然我也遇到过这样尴尬的情况--写了一段代码过了一段时间后,我反问我自己,这是我写的程序吗,丫的,那个i是表示的什么变量呀!

6. 注释。做好注释不仅让自己在debug阶段更加方便而且还会让团队开发更加和谐,也会让代码更加具有亲和力。

所以编码的规范性是非常重要的,勿以善小而不为,勿以恶小而为之。



http://www.niftyadmin.cn/n/4748251.html

相关文章

提高班下一阶段的学习任务汇总

提高班下一阶段的学习任务概括起来很简单——软件工程 1.软工视屏 要求:做笔记,画图,看完后写关于机房收费的文档 2.UML的视屏 要求:做笔记 3.Rose制图 要求:看完后,画机房收费系统的UML图(共9种…

关于RDP协议的分析(一)

导读: 关于RDP协议的分析(一)关于RDP协议的分析和研究 -------------- leadgenius 写这个一是便于学习,再就是与网友们共同讨论,有一些我也不确定的,只是我的理解…

linux ftp上传下载文件,Linux利用ftp命令上传下载文件

Linux中如何使用ftp命令,包括如何连接ftp服务器,上传or下载文件以及创建文件夹。虽然现在有很多ftp桌面应用(例如:FlashFXP),但是在服务器、SSH、远程会话中掌握命令行ftp的使用还是很有必要的。ftp命令使用格式:ftp […

qwt-6.0.2在qt creator下的编译和运行

今天在书上看到qt下有一个很好的图形界面插件qwt,于是就想着来试一试。在网上把qwt(版本为6.0.2)下下来之后,按照网站(qwt.sourceforge.net)上给的提示译了之后,就可以运行qwt自带的例子了&…

乘法命令linux,如何在Linux命令行中做基础数学计算/数值运算

Linux bash或命令行可让您执行基本和复杂的算术和布尔运算。诸如expr,jot,bc和factor等命令可帮助您找到复杂问题的最佳数学解决方案。在本文中,我们将描述这些命令并提供示例,这些示例将成为您转向更有用的数学解决方案的基础。这…

linux里面编辑命令,Linux中Vi编辑器之简单常用命令Linux中

原标题:Linux中Vi编辑器之简单常用命令Linux中Vi是Linux中最基本的文本编辑器。vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:1) 命令行模式command…

采用灰度分组统计方法实现图像中值滤波

中值滤波是图像处理中常用的一种噪声滤波方法。传统的图像中值滤波代码采用排序方法实现,处理速度主要取决于排序算法,但无论什么排序算法,总离不开大量的元素比较、交换或移动,而这些恰好是当前计算机处理的“弱项”(…

linux内核选项,linux内核选项详解

linux内核选项详解 (11页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!14.9 积分General setup(基本属性设置) ->[]prompt for development and/or incomplete code/drivers //显示尚在开发的代码…