`
jinghuainfo
  • 浏览: 1520119 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

检查新同事的代码时发现的问题

 
阅读更多

检查新同事的代码时发现的问题

今天看了一个组员的代码,他是今年才毕业的。在应届毕业生中,他的能力算是相当不错的了,所以我们才破格录用,并准他一个月假期回去答辩毕业论文。在他的代码中,发现几个问题,其中一些颇具代表性,把它们记下来供新手参考。

函数原型中没有参数名。比如,一个函数原型为int foo(const char*buff, size_t buff_length)的函数,他写成了int foo(const char*, size_t)。其实这也不怪他,很多教材上都是这样写的。教材上为什么这样写呢?原因很简单:替编译器着想。编译器在编译时,会把函数的参数名放进符号表中,这会带来空间和时间上的开销。早期硬件资源紧张,函数原型里不写参数名,可以得到类型检查的好处,同时可以把代价减到最小。如今,这种为编译器着想的作用微乎其微了,现在函数原型起的是文档作用,给人看的,所以参数名不能省略,否则谁知道怎么调用。

代码排版夹杂TAB键和空格。换一个编辑器,甚至同是VIM,只是设置不一样,显示效果变得乱七八糟。在学校里写代码,一般都只是自己看,同一种编辑器的同一种设置,效果自然是一样的。工作时写的代码,不光自己看,同事也会看。不能要求同事的编辑器和你的一样,设置也一样。当然,到底是用TAB键还是用空格来缩进,很难说谁好谁坏,不过你只能选择其一,并且至少在同一个文件中保持一致。

不清楚何时把代码抽出来创建一个新函数。我发现其中一个函数完成了好几个功能,我问他为什么不把那些代码作为几个单独的函数。他说,那个函数不长啊。那个函数是不长,100行都不到。我告诉他,一段代码是否应该作为一个单独的函数,不是看它有多长,而是看它逻辑上的功能是否独立,表达的意义是不是清晰。有时为了让一个表达式具有清晰的意义,一行代码都可以作为一个单独的函数。

刚毕业时,就养成一个好的编程习惯是很重要的。不要以为这只是一些小问题就不在意,注意这些问题,不但会给别人留下好的印象,同时也会提高自己的工作效率。

分享到:
评论

相关推荐

    嵌入式系统C代码走查检查单(编程必看).doc

    代码走查规范介绍,以表格形式呈现,清晰易懂,容易部署操作。初学者应当养成一个好的检查习惯。从业者也应当建立规范的工作流程。否则教训是惨痛的。编码一时爽,同事两行泪啊

    代码大全中文版

    新程序员们的某些实践经验来自于经验丰富的同事.但主要还是靠自己──吃一堑,长一智──获得的,这往往是一个艰苦而缓慢的过程。通过本书,可以使你在短时期内获得大量的经验和技巧,从而脱颖而出,所以,不妨一试...

    bad-pr:演示需要检查和修复的错误代码的任务

    公关不良 该存储库正在模拟由缺乏经验的开发人员针对JIRA功能请求编写的更改。...另一位同事测试了该代码,发现以下问题: 如果两个用户尝试同时上传文件,则上传失败 进口非常缓慢。 导入test3.csv 3000行

    C C++代码审查表

    代码走读的标准。开code review会的时候,帮助你审查同事的代码。

    Web版代码生成器、项目管理器

    系统简介: 系统名称:程序辅助开发平台,程序...check/uncheck表示是否检查输入,也就是mustInput的意思 更多使用参考:/pda/《pda_The-Definitive-Guide.doc》 感谢: 感谢所有给与我们支持的亲人、朋友、同事。

    cards:大学代码提交

    您应该执行此任务: 将一些代码(如下所述)提交给您的同事以供同行评审提供对其他学生代码的有用评论您在评论中应该问的问题是: 该代码是否正确记录/注释? 需要做更多的工作吗?/很棒吗? 在哪里应该更好? 代码...

    code-review-lamp:用于通知开发人员团队即将进行的代码审查的彩色灯

    Code Review Lamp是一个基于Neopixel的,具有WiFi功能的小工具,它提醒开发人员对同事的代码进行同行审查。 对于每个未经过足够审查的提交,它都会以一种特定于开发人员的颜色变暗,该开发人员试图为项目引入新功能...

    vld-2.3-资源泄漏检测

    此外,内存问题存在一个共同的特点,它本身并不会有很明显的现象,当有异常出现时就很难检查问题的原因所在,这给调试内存问题带来了很大的难度。 VLD是一款用于VisualC++的免费内存泄漏检查工具。可以在...

    vld2.5 C++内存泄露检测工具

    可以在codeproject.com网站上找到,相比其它的内存泄漏哦给你根据,他在检查内存泄漏的同事,还具有如下特点: 1) 可以得到内存泄漏点的调用堆栈,如果可以的话,还可以得到其所在的文件及行号; 2) 可以得到...

    检查缺少的分号。:如果您有一个神秘变量打印来筛选一个或多个函数/脚本,请使用。-matlab开发

    然后我经常保存并忘记它,当我一周后回来时,我的代码会将随机变量打印到屏幕上,这非常令人沮丧。 如果您使用任何 .m 文件的字符串名称创建一个元胞数组,这将对您选择的文件运行 mlint 并告诉您哪些行(如果有)...

    svn检查工具

    自己负责的模块代码有时被同事修改,但是没有知会,也不容易了解到具体的改动内容,可能造成各种各样的问题。这里推荐一个工具Commit Monitor,可以监控svn仓库的提交记录,并及时通知,非常方便。一切尽在掌握。

    angular-tslint-rules:共享的TSLint和codelyzer规则可为Angular开发实施一致的代码样式

    所生成软件的价值直接受代码库质量的影响,并非每个开发人员都可能注意中某些构造的潜在陷阱, 在使用框架时被引入某些约定中, 知道并不是每个开发人员都能像原始开发人员那样理解优雅(但抽象)的解决方案。...

    vld内存泄露检测工具

    可以在codeproject.com网站上找到,相比其它的内存泄漏哦给你根据,他在检查内存泄漏的同事,还具有如下特点: 1) 可以得到内存泄漏点的调用堆栈,如果可以的话,还可以得到其所在的文件及行号; 2) 可以得到...

    office-playlistify:在同事之间共享Spotify播放列表并对其进行排名

    在同事之间共享和排序Spotify播放列表。 地方发展 确保已安装节点版本> = 8.0 安装并链接软件包: npm i或yarn 在开发人员模式下启动应用程序: yarn start 现在可以通过浏览器访问localhost:8080来访问前端 有用...

    二次拟合MATLABm文件代码-pgs-error:Sipkens及其同事在题为“分析激光诱导的白炽信号的通用误差模型”的工作中描述的通用误差

    检查P oisson, G aussian和S hot-to-shot错误。 这是一个软件包,最初与一起分发,该软件包评估光信号的一般误差模型,其中包括泊松-高斯噪声和重复观测之间(例如,两次激光照射之间)的测量条件变化。 特别关注的...

    python集成-从基础到实现:集成学习综合教程(附Python代码).pdf

    python集成_从基础到实现:集成学习综合教程(附Python代 码) 介绍 当你想购买⼀辆新车时,你会⾛到第⼀家汽车商店就根据经销商的建议购买⼀辆车吗?这是不太可能的。 你可能会浏览⼀些⼈们发布评论并⽐较不同车型...

    StyleCop自定义规则

    主要是自己写的自定义规则,相对较为详细,里面包含规则文档 ,项目原代码由于特殊原因不方面上传,这边只放出DLL 自己去反编译,具体...自定义规则本来就是我们这边用来自动检查公司同事代码的 代码调用的就是这个DLL

    Cardsgame:纯C#制作的纸牌游戏

    您应该进行此作业:a)向同事提交一些代码(如下所述)以供同行评审b)对其他学生的代码提供有用的评论您在评论中应该问的问题是: 该代码是否正确记录/注释? 一个。 需要更多工作吗?/很棒吗? b。 在哪里应该更...

    ffmpeg-installer:一组 shell 脚本,旨在从源代码安装最新版本的 FFMPEG。 专为基于 cPanel 和 CentOS 的服务器设计

    我在使用较新版本的 FFMPEG 时遇到了大量问题,因此我没有继续修复它,而是将其分叉,并在同事的帮助下对其进行了简化和修复。 安装 克隆 repo 或下载 zip 运行sh ffmpeg.sh 就是这样! 很简单吧! 如果一切顺利...

Global site tag (gtag.js) - Google Analytics