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

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

    看看你躺枪了没。

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

留一手


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

    他的代码我看过,深得 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,一经查实,立即删除!

相关文章

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 微信企业号办公系统-流程设计--保存与发布

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

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

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

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

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

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…

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

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

centos7搭建FTP服务器

1.   使用 yum 安装 vsftpd:yum install -y vsftpd 2.  启动 VSFTPD:systemctl start vsftpd.service 3.  启动后可监听到21端口:netstat -nltp | grep 21 4.  配置FTP权限:(vsftpd.conf,修改前先备…

教你如何剖析源码

一、源码阅读需求 在学习中,我们会需要了解,学习,使用一个框架,一个新的函数库。在工作中,因为业务需求,因为性能问题,可能通过一个更高性能的工具,架构去优化我们的程序。 那么&…

php调用API支付接口(转自刘68)

首先访问 https://charging.teegon.com/ 注册账号, 找到开发配置 记下client_id和client_secret。 点击 天工开放平台 点击天工收银 点击 SDK下载与使用 选择php版下载 解压后获得 打开form.php这个是样板文件可以用它来测试是否成功,测试前需要先修…

单目相机标定原理

一.相机标定主要涉及三个坐标系:图像坐标系、摄像机坐标系和世界坐标系 【图像坐标系】 摄像机采集的图像变换为数字图像后,每副数字图像在计算机内为M x N数组,M行N列的图像中每一个元素(pixel)数值就是图…

Android开始之 activity_lifecycle和现场保护

生命周期: oncreate—onstart—onresume,--onpause--onstop,——onrestart——onstart——onresume,。。onpause。。。onstop。。。ondestroy 现在保护---保存系统状态 通过这个方法保存到数据库中或者xml中,&#xff…

Apache启动错误:could not bind to address[::]:443

Q:Windows环境下启动apache报错如下: 可是在httpd.conf文件中apache listen的明明是http 80端口,为什么会报443的错误? A:因为你的计算机安装了VM,所有有个vm的进程一直占用着443端口,在命令行下…

针孔相机拍摄的图像坐标和空间点的对应关系

一:摄像机成像原理 摄像机成像模型一般有三种:透镜投影模型(小孔摄像机模型)、正交投影模型和透视投影模型 光学中最基本的高斯成像公式:1/u 1/v 1/f (式一) 原理图如下: 二:认识三个…

粥做得好不好,全凭一个良心!

粥做得好不好,全凭一个良心! 工作不也是凭良心么! 文章中的红色字体表达了一切! 霜降节气的到来,意味着冬季的临近,而霜降后气温的降低,利于蔬菜的淀粉沉淀,收浆后的莲藕也变得更为…

黑盒测试

引言: 什么是黑盒测试呢!? 像我一样的测试小白就会望文生义了:对黑盒子测试 那么黑盒子是什么!? 思考5秒后,得出了这样的答案:黑盒子就是黑色的盒子,嘿嘿! 正文&#xf…

Expo大作战(十二)--expo中的自定义样式Custom font,以及expo中的路由RouteNavigation

简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻个人修改补充…

悬浮按钮

效果图 //将dp转换为px public static int dip2px(Context context, float dpValue) {final float scale context.getResources().getDisplayMetrics().density;return (int) (dpValue * scale 0.5f); }//浮动图片监听 private void initListener() {//弹出对话框jianwen.set…