漫谈程序员系列:千奇百怪的程序员

干开发时间长了,遇见好多好玩儿的程序员。

    看看你躺枪了没。

    博客之星评选,点击投我一票,谢谢。投过了也可以点哦,每天都可以投投一票。

留一手


    有个哥们儿,在一合资公司做程序员,能力挺强,写代码很神的。

    他的代码我看过,深得 MFC 的精髓:大量的宏,很多函数就两三个宏,一个BEGIN_XXX,一个END_XXX,中间再夹另外一个宏。诺,这就是汉堡包了。

    我碰巧看他的代码(题外话,没和他在一个公司一块儿待过),那个头大啊……这玩意儿也能记得住嘛,厉害,真是厉害。

    就是这么厉害个人儿,项目组数他牛 B ,他的代码只有他能看懂,他的地盘他做主,没人敢进去改东西。

    这都不是真正的牛 B 之处,最牛逼的是,这哥们儿代码里有不少 BUG ,每个版本都不改完,故意留上两个,要是项目经理急了,就把旧的改完,埋两个新雷进去。

    因为没人动得了他的代码,他就这么一直搞着,项目经理恨得牙根痒痒,可愣是没办法。

全局变量控

    看一段代码:

[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. /* Exported variables */  
  2.   
  3. char hfile_name[MAXARGLEN+1], location[MAXARGLEN*2], *ppm = NULL,  
  4.   *gif = NULL, tzfile[MAXARGLEN+1], units[MAXARGLEN+1],  
  5.   units_abbrv[MAXARGLEN+1], tadjust_tzname[MAXARGLEN+1];  
  6. char next_ht_text[20], next_ht_date[20], next_lt_text[20],  
  7.   next_lt_date[20], *geometry = NULL, loadunits[80];  
  8. char *fgrise_color_arg = NULL, *fgfall_color_arg = NULL,  
  9.   *fgtext_color_arg = NULL, *fgmark_color_arg = NULL,  
  10.   *fgmllw_color_arg = NULL, *fgmiddle_color_arg = NULL;  
  11. int Usetadjust=0, Itadjust = 0, tadjust = 0, utc = 0, list = 0, checkyear = 0, text = 0, skinny = 0,  
  12.   now = 0, graphmode = 0, httimeoff = 0, lttimeoff = 0, tstep = 180,  
  13.   middle = 0, mark = 0, mllw = 0, lines = 1, PPMWIDTH = 960,  
  14.   PPMHEIGHT = 300, hinc = 0, tinc = 0, loctz = 0, iscurrent = 0,  
  15.   curonly = 0, toplines = 0, hincmagic = 0, calendar = 0, banner = 0,  
  16.   weekday = 0, hairy = 0, linegraph = 0, ps = 0, noampm = 0, uutc = 0,  
  17.   have_offsets = 0, Ihttimeoff = 0, Ilttimeoff = 0, newload = 0, subproc=1,OnlyTCD=0, datemdy=0, mapZoom=0;  
  18. double llevelmult = 1.0, hlevelmult = 1.0, Illevelmult = 1.0, Ihlevelmult = 1.0;  
  19. time_t next_ht = 0, prev_ht = 0, next_ht_adj = 0,  
  20.   prev_ht_adj = 0, faketime = 0, epoch = 0, mark_time_adj = 0;  
  21. double amplitude = 0.0, htleveloff = 0.0, ltleveloff = 0.0, DATUM, marklev,  
  22.   absmax = 0.0, absmin = 0.0, fakedatum = 0.0, fakeamplitude = 0.0,  
  23.   Ihtleveloff = 0.0, Iltleveloff = 0.0;  
  24. double next_ht_amplitude, next_lt_amplitude; //mgh+  
  25. int num_epochs = 0, first_year = 0;  

    恐怖吗?这是我在一个项目中的一个源文件里看到的,还有很多类似的源文件……

    话说,有些程序员就爱这口,特别喜欢全局变量,只是,代码写完的第二天,他就可能被自己的全局变量们给吞噬了……

别想看我的代码

    还有的兄弟,对于自己的代码,非常之在意,他把自己的代码当作圣姑了,虽然必须行走江湖,但是我就是要给它戴个斗笠蒙个面纱,就是不让你看。有时候你看他一直埋头电脑前,噼里啪啦的击键之声不绝,可是就是不知道他写了什么。他从来不让别人看他的代码,谁看给谁急。不知道是怎么想的,我有时候只能猜测,他啪啪啪敲键盘,其实是在聊 QQ 了,他之所以不让人看,完全是因为,半个月过去了,一行代码还没写呢。当然还有一种可能,他的代码比较凌乱,不想让人看出来……我们也可以往好的方面猜猜,此君自视甚高,认为自己的代码高深莫测,怕别人看了自惭形秽,怕打击别人柔弱的小心脏;或者此君认为自己的代码太优秀了,怕别人偷学了去……

    不管怎么样,死捂着代码不放,终归不是个办法。

祥林嫂


    “祥林嫂”原本是鲁迅小说《祝福》中的人物,是旧中国农村劳动妇女的典型。而“祥林嫂”这个词儿本身,现在又有了特别的含义,我只取其“牢骚满腹”、“不断 goto 当初”之意。

    有个别程序员,对自己的技能比较珍视,采用二分法,认为这些技术是好的,是灵丹妙药,认为那些技术是坏的,是穿肠毒药。尤其是产品技术方案没有选择他认为好的那个技术时,他会很长一段时间不能接受,但凡项目执行过程中遇到点儿不顺,就会唠叨:“要是当初选择 XXX ,肯定没这些问题”。类似的话,会不断从他嘴里说出来,循环往复,一咏三叹,简直让人崩溃。

我能干我不干我很忙

    也许你遇见过这样的队友:分解任务时,说到哪个模块,都能头头是道,看起来没有他不懂的,可是你让他干时,哪个都不愿意干,老推说我已经 take 了多少少 task 。到最后,他基本上没什么 task ,还是很简单的,但当你跟踪进度时,他却总是说遇到了这个问题,还得多长时间,遇到了那个问题,又得多长时间,你要帮他看看时,他又说不用自己能搞定。

未来战士

    未来战士们对新的技术和工具特别热衷,每个领域的前沿技术他都知道,都能说出个一二三,而且这些技术更迭时他也都知道,比办公室里的其他人都知道得早。对于那些新技术,一旦他和你说起来,就神采飞扬,唾沫星星子四溅,此时即便你有事儿都不好意思走开。

    未来战士所开发的软件所使用的 SDK 、 工具 ,只要有新的版本出现,一定要更新。哪怕是昨天刚刚更新过,今天也要更新。你不让他更新他就坐立不安,一定要来说服你,新版本有千般好,旧版本性能差、漏洞多、使用不便、编译缓慢等等问题都会被他找出来。

    未来战士的哲学思想非常明确:新的就是好的。

石器时代的守护神

    与未来战士相反,另有一些程序员,对自己掌握的技术、对既有产品所采用的技术坚定不移的维护,你要想让他把软件依赖的框架版本升级一下,那是比登天还难:Run得好好的,为毛要升级?用现在的版本可以应付一切!

    石器时代的守护神具有很强的韧性和对抗一切新技术的定力,只要旧系统还可以用,他就可以旷日持久的坚持、维护下去,因为他们的原则就是:只要将就能用,不到万不得已一定不要去更新,因为任何新的技术新的改动新的设计新的重构都是怪兽,不知道会带来多大的破坏。

老子不需要帮助

    见过没?有的程序员就爱自己搞,就算是我被一个问题绊住,吭哧吭哧搞上一星期还搞不出来,你也别想帮助我!他们的信条是:老子能搞定,老子不需要帮助。

    这种类型的程序员特别敏感,特别害怕别人瞧不起他,当然有时也有些自卑、多疑,担心别人的帮助里夹带着嘲笑,他们的敏感、多疑、骄傲、自卑等等复杂情感驱使他们拒绝接受别人的帮助,也驱使他们忘记时间盒的存在。

快来帮帮我吧


    嘿嘿,这种类型的程序员,最爱说的就是:哎呀搞不定了,谁来帮帮我。

    只要你一帮他,这活儿就成你的了,他们会让你觉得帮人不到底你好意思吗你,还会让你觉得送佛不到西天就是你的罪过……我天,他们遇到问题都不想的,直接拉你过来调代码。

    他们是“老子不需要帮助”的反面。

别让我读代码,我是文盲

    我懂得一门语言的所有语法,关键字认得,控制结构懂得,继承知道,多态了解,设计模式我也清楚,可你别让我看代码,看不懂,真心不懂。

    这也是一类程序员,他们能够了解编程语言的所有语法和细节,可就是看不懂别人的代码。

精雕细琢的艺术家

    咦,这里该不该断行?

    代码编辑器里,到底这种字体好看还是那种字体好看?

    这里的条件判断,到底是三层 IF 语句嵌套好还是三个 IF-RETURN 好?

    ……

    这些艺术家们把代码当作一门艺术,从编辑器开始打磨,一直到每一行代码到底多少个字符合适,花括号是放在行尾还是行首……都要仔细斟酌研究。对他们来讲:美观是高于一切的。

孤独的人


    有些人选择软件开发,就是因为:再也不用和别人打交道了。

    所以,他们会回避任何与别人交流的机会,谈话、电话、邮件、即时通信、微信……总之,他们理想的工作环境里只有代码没有人类。与同事或客户沟通,对他们来讲是巨大的负担,感觉说一句话就会耗费他们一辈子力气。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255271.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HALCON示例程序check_hazelnut_wafers.hdev威化饼干质量检测(完整与否,是否破碎)

HALCON示例程序check_hazelnut_wafers.hdev威化饼干质量检测(完整与否,是否破碎) 示例程序源码(加注释) 读入图片 read_image (Image, ‘food/hazelnut_wafer_01’) 关闭窗口 dev_close_window () 根据给定的长宽比…

Windows Media Center .MCL文件代码执行漏洞(MS16-059)

blast 2016/06/21 13:180x00 简介漏洞作者EduardoBraun Prado在今年早期发现了WMP的.MCL文件又存在一个可以导致远程代码执行的漏洞。为什么要说又呢,因为这个东西实在是“不争气”,同一个地方出现了多次绕过导致远程代码执行的问题。0x01 历史A――MS1…

SCARA机器人与 DELTA机器人

1、SCARA机器人SCARA(Selective Compliance Assembly Robot Arm,中文译名:选择顺应性装配机器手臂)是一种圆柱坐标型的特殊类型的工业机器人。1978年,日本山梨大学牧野洋发明SCARA,该机器人具有四个轴和四个…

一直以来都没直视的轮播-_-

一直以来做项目碰到轮播图我都是去网站上找现成插件拿来用,现成的插件1是省时间,拿来改改尺寸改改参数就能直接用,2是现在的插件确实很强大,对于我一个刚刚学习前端的人来说,牛人写的轮播我看懂也要花些功夫&#xff0…

HALCON示例程序circles.hdev边界轮廓的圆形拟合

HALCON示例程序circles.hdev边界轮廓的圆形拟合 小哥哥小姐姐觉得有用点个赞呗! 示例程序源码(加注释) 读入图片 read_image (Image, ‘double_circle’)窗口初始化 dev_close_window () get_image_size (Image, Width, Height) dev_open…

asp.net 微信企业号办公系统-流程设计--保存与发布

如果流程未设计完时可以先保存,以后再打开接着设计。点击工具栏上的保存按钮即可保存当前流程设计: 如果下次要接着设计,则可以打开该流程继续设计: 如果流程设计完成,可以点击安装按钮来发布流程,流程安装成功后即加入…

search-guard 在 Elasticsearch 2.3 上的运用

uni3orns 2016/06/23 11:09Author:uni3orns参考内容:kibana.logstash.es/content/ela…groups.google.com/forum/#!for…github.com/floragunnco…此文章基于以下软件版本,不同版本可能略有差异:elasticsearch 2.3.3search-guard…

HALCON示例程序class_2dim_sup.hdev使用二维像素分类对图像进行分割

HALCON示例程序class_2dim_sup.hdev使用二维像素分类对图像进行分割 示例程序源码(加注释) 定义Interactive并赋值,0:固定框;1:手工绘制框。 Interactive : 0 读入图片 read_image (Image, ‘ic’) 关闭…

sys

sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径,初…

修改环境变量

在path变量后添加,对变量长度无限制,需要重启后生效reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_SZ /d "%path%;c:\newpath;whatever" /freg save "HKLM\SYSTEM\CurrentCont…

Canny边缘检测算法原理及其VC实现详解(二)

3、 Canny算法的实现流程 由于本文主要目的在于学习和实现算法,而对于图像读取、视频获取等内容不进行阐述。因此选用OpenCV算法库作为其他功能的实现途径(关于OpenCV的使用,作者将另文表述)。首先展现本文将要处理的彩色图片。 …

IDEA注册jar包使用和常用插件

IDEA注册jar包使用 点击获取下载地址或生成注册码 一、安装完成后,先不启动,首先如下图修改相关的地方。 二、启动IDEA,并且激活IDEA IDEA插件仓库 IntelliJ IDEA Plugins 一、Maven Helper 我一般用这款插件来查看maven的依赖树。在不使用此…

HALCON示例程序class_2dim_unsup.hdev基于二维直方图的聚类分类

HALCON示例程序class_2dim_unsup.hdev基于二维直方图聚类分类的颜色分类 示例程序源码(加注释) 读入图片 read_image (Image, ‘patras’)关闭窗口 dev_close_window ()得到图片尺寸大小 get_image_size (Image, Width, Height)打开窗口 dev_open_wind…

Android Monkey压力测试

一. JAVA环境的搭建 安装jdk-8u151-windows-x64,可以到官网或者应用中心下载.JAVA环境变量的搭建: 在"我的电脑"-"属性"-"高级"-"环境变量"中,点击新建,填写变量名为JAVA_HOME,变量值为JAVA安装的路径.在系统变量中找到Path,点击编辑,…

bzoj 4517: [Sdoi2016]排列计数

4517: [Sdoi2016]排列计数 Time Limit: 60 Sec Memory Limit: 128 MBSubmit: 637 Solved: 396[Submit][Status][Discuss]Description 求有多少种长度为 n 的序列 A,满足以下条件:1 ~ n 这 n 个数在序列中各出现了一次若第 i 个数 A[i] 的值为 i&#x…

idea compare功能 之一次bug修复

一次bug修复 最近开发完了一套单点系统,jenkins打包上传到服务器就出问题, 可以启动但是不能正常工作。 首先想到的是环境不一样, 于是把jenkins的jdk和maven都调整和本机大版本相同。 当然肯定是没卵用的, 于是查看日志 Class pa…

黑白CCD成像不理想,如何补色

黑白CCD成像不理想,如何补色

HALCON示例程序class_ndim_box.hdev基于多通道图像的分类

HALCON示例程序class_ndim_box.hdev基于多通道图像的分类 示例程序源码(加注释) 读入图片 read_image (Image, ‘ic’)创建一个新的分类器 create_class_box (ClassifHandle)获取图片大小 get_image_size (Image, Width, Height)关闭窗口 dev_close_wi…

gcc编译系统

一、 C语言编译过程 C语言的编译过程可分为四个阶段: 1、预处理(Preprocessing) 对源程序中的伪指令(即以#开头的指令)和特殊符号进行处理的过程。 伪指令包括:1)宏定义指令; 2&…

自制反汇编逆向分析工具 迭代第六版本 (五)

本工具从最初版的跳转分布图只为了更直观地分析反汇编代码的分支结构,第三版开始对直观图进行逆向分支代码的输出,第四版对分支输出策略的一些探索,第五版结合之前的探索进行改进。第六版在现在功能的基础上进行增强,利用第六版&a…