Reload Original PagePrint PageEmail Page

新的编程术语,你知道几个? - 软件研发频道 - CSDN.NET

最近在Stack Overflow上就新的编程术语这一话题网友们展开的激烈的讨论,最后竟然有386个,没错,386个!请不要吃惊。一个问题可以有386个不同的回答,或许这已经不是一个问题了。这仅仅是一个民意调查,在调查中有一个X列表。我想你在浏览完所有答案后会学到一些关于编程方面的东西,但是很显然,太多的答案与GTKY(Getting to Know You)、学习相比,更多会被嘲笑。这就是为什么会被Stack Overflow社区管理员删除。就学习而言,它可能太边缘化。

就编程文化而言,还是有先例可循的术语文件形式。不幸地是,我们没有为其指定一个“家”,那些“太有趣”的问题往往被活生生的删除了。这也就意味着,给它们安排适当的归属,一个属于它们自己的家,例如,我们的博客。所以,我收集了Stack Overflow上最新的30个编程术语,请享受吧!

1.Yoda Conditions

使用if(常量==变量)代替if(变量==常量)就像if(4==foo)。因为这就相当于说:“蓝色是天空”或“如果高是男人”。

2.神奇宝贝异常处理

当你需要Gotta Catch所有的Em。

  1. try {  
  2.  
  3. }catch (Exception ex) {  
  4.  
  5. // Gotcha!  
  6.  

3.埃及括号

括号的风格就是括号一直推移到最后一行。例如下面这样:

  1. if (a == b) {  
  2.  
  3. printf("hello");  
  4.  

我们把这种风格的括号称作“埃及括号”。为什么?可以把括号的位置与上面的图片相比(这种括号风格被Kernighan和Ritchie用于他们的C语言编程一书,所以它是因为K&R才出名)。

4.臭名昭著的报告

用户提交Bug报告,他会认为他对系统的理解比他真正懂的要多。这个报告里面充满了许多与技术无关的细节和一个或多个(总是错的)建议,他会思考导致这些错误的原因并且思考我们该如何修复它。

毒品报告(一个完全不可理解的报告),Chug报告(提交者认为至少有一个或者多个地方有这个Bug),Shrug报告(一个Bug报告,里面没有任何错误消息或者操作步骤,只有一个模糊的问题描述:“doesn't work”)。

5.一只鸭子

为了吸引管理人员的注意,毫无根据地添加一个特征或者删除,产品的其他方面引起不必要的改变。

这个专业术语一开始只是个相互影响的企业传说。众所周知,为了提升企业价值,生产商不得不去改变。这个只是潜意识的假设,他们认为如果他们不做出创新与改变,价值就不会得到提升。

这个为Battle Chess女王专门设计动画的艺术家认为这已经是一个趋势并且他还提出了一个非常有创意的方案。他做了一个自我感觉非常好的动画:他给女王做了一个宠物鸭,把所有女王的动画集合起来,设计一个扑在每个角落的鸭子。他也花了很多心思去确保与“实际”动画没有重复的地方。

最后,替女王审查动画的人来了,那个人坐下来并且观看所有的动画。他转向头对艺术家说:“这些看起来都很棒,只有一件事——摆脱掉鸭子”。

6.Refuctoring

这个过程是将一段优秀的代码通过一些细微的、反向的改变,使它完全不可维护,除了自己。

7.Stringly类型

强制类型的即兴重复。描述一个不需要依赖strings类型即可实现的程序或者重构可利用的友好选项。

例如:

  • 当其他类型的参数更为合适时,该方法却使用字符串类型作为参数。
  • 调用一个方法的时候,需要传递字符串类型(例如网络服务)作为参数,随后字符串被传递并且在其余调用图部分没有进行转换(例如,分析并创建一个枚举类型,然后你通过其他部分的代码库进行强制转换)。
  • 没有使用类型化消息进行消息传递等。

过多的字符串类型代码通常很难去理解和发现,编译的时候一般很难发现,只有在运行时才会报错。

8.Heisenbug

这是一个电脑Bug,当试图去研究它的时候突然消失或改变。

9.Doctype装饰

当Web设计师添加一个doctype类型声明时,却没有去编写一个有效的标签。

  1. <!DOCTYPE html> 
  2. <BLINK>Now on sale!</BLINK> 

10.Jimmy

是对开发新手和菜鸟级别的一个泛称。

我们正在组织开发一个框架组件,需要用最少的知识来了解其他开发人员是如何进行工作的?我们总会去强调一个问题:“倘若Jimmy忘记更新属性怎么办?”。

在精心设计一个代码框架时,就产生了“Jimmy—proof”这个术语,。

11.Higgs-Bugson

一个假设性的Bug预测,其基于少数可能的相关日志条目和从用户那里得到的模糊不清的传闻报告。但是很难(如果可能)在一个开发的机器上进行复制,因为你真的不知道它的存在或假设他存在,是什么导致的?(参考Higgs-Boson)。

12.Nopping

从一个Al的POV上,写了一个科幻小说,其内部语言包含许多编程术语。其中“nopping”这个术语被广泛运用,其来源于无操作的NOP汇编指令。它与’打盹’很相似,但是并不是指“睡眠”,仅仅是分区。Stanislav一边打个小盹一边坐看屏幕保护程序。

13.Unicorny

形容早期计划阶段的一个形容词,这也可能是虚构的。这是从Yehuda Katz抄袭来的,在去年的Windy City Rails中用来形容即将发布的产品特征。

14.Baklava Code

与“千层饼”一起编码。

Baklava是一种非常美味的糕点,由许多薄如纸的面层组成。薄而精致的糕点,但是对于瘦软件来说,并没有多大价值,尤其是当你把所有这些薄层互相堆积在一起的时候。当深入到代码时,每层都必须放入堆栈里面。另外,用蜂蜜泡过以后,千层饼层层渗透。但是抽象软件在不泄露的时候是最好的。当你一层一层的在软件上面堆放时,层泄漏是被约束的。

15.Hindenbug

灾难性的数据毁坏Bug,“哦,人类!”

该术语与Counterbug(一个Bug在提交时,不小心又制造了一个Bug)和Bloombug(因为一个Bug而产生的资金)相关。

16.恐惧驱动开发

项目经理增加额外的压力(开除某人,提前项目截止时间,抽减项目资源等)。

17.九头蛇代码

代码无法被固定。传说像九头蛇一样,每一个新的修补程序都会引入两个新的Bug。它应该被改写。

18.习惯法特征

一个根深蒂固存在的Bug,并且现在已成为应用程序模块的一部分,必须进行实际修复才可以被用户支持。

19.尼斯湖水怪Bug

最近在关注尼斯湖水怪Bug一个不可再生/只有一个人可见的Bug。在办公室里面已经听很多人讨论过了。(可能还会讨论:Bugfoot,Nessiebug)

20.Ninja Comments

也被称作隐藏的评论、迷茫评论或者无评论。

21.Smurf Naming Convention

几乎所有的类都有一个相同的前缀,当用户在IE里面点击一个按钮的时候,一个SmurfAccountView传递给SmurfAccountDTO,这个SmurfID是用来捕获SmurfOrderHistory,在页面跳转到SmurfHistoryReviewView或SmurfHistoryReportingView之前,SmurfOrderHistory把值传递给SmurfHistoryMatch。如果SmurfErrorEvent运行,就会被SmurfErrorLogger类把错误信息记录到${app}/smurf/log/smurf/smurflog.log 这个日子文件里。

22.Protoduction

原型——在生产中结束。在Fermi实验室里面听到的一个技术术语。他没有创造这个术语,但是曾听说过,并且在Fermi实验室里被多次使用。

23.Rubber Ducking

某些时刻,你必须要讨论一些问题。有时候在老板办公室进行谈话,我只会关心并讨论我自己的那部分话题。我读到有人在他们的显示器上面放一个塑料玩具鸭然后讨论的相关文章。所以rubberducking是用自己的方式去讨论问题。

24.Banana Banana Banana

占位符文本文件,表面上文档正在创建或者已经完成。主要用于FxCop一个公共函数缺少文档。

  1. /// <summary> 
  2. /// banana banana banana  
  3. /// </summary> 
  4. public CustomerValidationResponse Validate() 

其他涉及到食品的术语:Programmer Fuel、Hot Potato、Cake、Chunky Salsa。

25.Bicrement

在后边加一个成为一个变量。

26.现实版的101实效

程序(或许是更接近程序特征)真正的需求并不是在部署的时候,结果通常被人误解并且是毫无作用。

27.疯狂的女友Bug

总会有一些奇怪的事情发生,但是软件运行起来却一切正常。

28.Megamoth

MEGA MOnolithic meTHod代表。通常包含一个God Object对象,横跨两个屏幕高度。与2k LOC相比,Megamoths规模更大。当心MEGAMOTH。

29.胡克代码

是一种有问题的代码,并且会导致应用程序不稳定(应用程序性能“下降”)。“网站再次崩溃了,是的,吉姆还必须放一些hooker代码在里面”。

30.积木代码

当改变一个代码块过后,整个应用崩溃。

上面仅仅是把前30名专业术语介绍给大家,我认为这是最有代表性地新编程术语。对于程序员来说,这并不只是“有趣的事情”,每个编程术语都会给你带来一些领悟!

英文来自:New Programming Jargon

本文为CSDN编译整理,未经许可不得转载。如需转载请联系market@csdn.net