抓狂代码
^^^^^^^^
- 作者:臭豆腐[trydofor.com]
- 日期:2008-12-14
- 授权:署名-非商业-保持一致 1.0 协议
- 声明:拷贝、分发、呈现和表演本作品,请保留以上全部信息。
0. 文档目录
^^^^^^^^^^
[[<=$INDEX]]
1. 可怜的虫子
^^^^^^^^^^^^^
现代人的生活,经常碰到糗事,或让人捧腹大笑或让人苦笑不得.
程序员闹糗事,一般都称之为BUG,有种"都是月亮惹的祸那种感觉".
曾经篡改老罗名句,笑称:彪悍的程序不需要测试.
实际上,你不测试程序,程序就会不断地测试你,轻则让你抓狂,重则让你失业,
甚至引发世界问题,比如千年虫(又是虫,呵呵)
2. 逻辑行划分
^^^^^^^^^^^^^
程序都是区分物理行和逻辑行的,不同的编程语言对逻辑行有不同的定义.
比如C-Like语言是分号(;),Basic是物理行,而javascript这样还是混编的.
在我刚学习java,用记事本写代码的时候,经常忘记在行尾加分号导致编译错误.
后来养成加分号的好习惯,但也碰到了一次麻烦,代码大概如下.
=================== java : 不该有的分号 ===================
public String trimToNull(String str)
{
String rst = null;
if(str != null)
{
rst = str.trim();
if(rst.length()==0);
{
rst = null;
}
}
return rst;
}
===========================================================
trimToNull的可怕之处是运行时永远返回null,但编译阶段却是正常的.
3. 与或混淆
^^^^^^^^^^^
自然语言不可能像程序那么严谨,尤其是我们的母语.
因此我对不久前炒作的汉语编程非常费解,自认为除了炒作外没有任何意义.
汉语中时候不太严格区分and和or,请看下面的汉语描述:
有整数变量x,y;如果x不等于1 或/和 x不等于2时,则y=2x;否则y=3x;
咋看起来好像没啥问题,用'或'与'和'好像不影响我们的理解,
那么翻译成代码吧.
=================== java : 与或混淆 ===================
public int testOr(int x){
int y = 3*x;
if(x != 1 || x != 2){
y = 2*x;
}
return y;
}
public int testAnd(int x){
int y = 3*x;
if(x != 1 && x != 2){
y = 2*x;
}
return y;
}
===========================================================
testOr是错的,结果永远是y=2x;
这个错误,我犯过2次了.哎,真是该销自己两下,以示警戒.
还有个错误是来自于老婆的同事,最后被老婆发现(老婆是个比我严谨的人).
有大概以下这样的SQL
=================== sql : 与或混淆 ===================
//这个是错误的,没搞清and和or的优先级
SELECT
COUNT(1)
FROM
TEST
WHERE
SEQ=1
AND DIS=2
OR HIT=3
//下面是原始要求的本来面貌
SELECT
COUNT(1)
FROM
TEST
WHERE
SEQ=1
AND (DIS=2 OR HIT=3)
===========================================================
4. CV精通
^^^^^^^^^
有个笑话说,
一个程序员去面试,说自己精通CV,然后面试官问什么是CV?
答曰:CTRL+C CTRL+V .
基本上大家都是精通CV的人.
有CV @author, "嫁祸于人"的;有CV代码,偷工减料的.
有CV google,进行测试和学习的,等等吧.
CV的案例太多了,简直五花八门,呵呵.
总之,CV无罪,但务必要留意上下文和适用场合.
=========================
a9text排版地址
http://www.trydofor.com/a9w3-auhome/trydofor/article/2008/1214074100/body.htm
分享到:
相关推荐
在几千行代码里跟踪、跳转真让人抓狂! Javascript做面向对象开发的时候,总是会用到很多模拟面向对象特性的方法,这些方法就构成了支撑面向对象Javascript的核心代码,以下就是部分代码,其中参考
微信公众号验证token经常失败,是一件很让人抓狂的事。找了很久,终于找相关一个可用的相关代码,希望对你有用。
linux操作系统下,vi编辑器使用起来实在令人抓狂,适应了一个月,还是有抵触心理。正好这段时间在学c语言,于是用vi和gcc自编完整全屏幕编辑器,命名为ed;上传全部1.0版完整源代码,毫无保留,有兴趣可继续完善开发...
NASA World Wind是一款虚拟地球仪软件,像Google Earth一样,可以用它来查看地球的卫星照片。 NASA World Wind俗称地球放大镜,是NASA(美国)...熟悉的人为之疯狂,不熟悉的人为之抓狂。一切只因它太过于贴近专业!
这样的代码是不是很让人抓狂呢? 格式化后的代码,使用适当的缩进和换行,可读性就好多了! 那如何使用Dreamweaver格式化代码呢? 第一步:依次点击菜单栏的 编辑 – 首选参数 – 代码格式 (注:Dreamweaver...
Content Assist 是 Zend Studio 提供的一种智能编码辅助功能,它能够在编写代码时自动提供可能的函数、类、变量等建议,从而提高编写代码的速度。然而,当项目变得庞大或者代码行数过多时,这个功能可能会变得反应...
8. **“死牛肉”的意义**:软件工程师面对的可能是隐喻或编程术语,需要他们解读抽象概念或代码语言。 9. **酒店谜题**:这是一个逻辑推理题,要求应聘者理解语境并找到关键信息。 10. **Bob的电话号码问题**:这...
在存在这么一个变量 tt, 它满足下面的代码. 代码执行完毕后 ,errCount=0 而且 断言函数也从未 alert 信息 代码如下: 代码如下:[removed] var tt=/* 请在这里定义tt */; var errCount=0 //全局变量,...
你还在为C语言繁琐的代码而抓狂吗?你还在为C语言复杂的流程而纠结吗?那么来VisualFreeBasic 的温馨家庭来瞧瞧吧,一个自由、免费、包容的编程家庭,说不定就能重新定义你对编程的认知,改变你的未来编程方向。 ...
如果碰上一团糟的代码(估计概率不小),那更是让你抓狂。 经常分发自己编写的SQL代码给别人,不管是通过博客、论坛、Email、还是其他方式,不规范的代码会让你看上去很不专业。 需要格式化、规范大量的SQL文件,...
本文将详细介绍如何关闭或自定义这些令人抓狂的 ESLint 语法检测配置。 首先,关闭 ESLint 的一种简单方法是在项目中找到相应的配置文件。对于使用 vue-cli 脚手架创建的项目,通常在 `build/webpack.base.conf.js`...
寒羽枫的日历控件相信大家都很熟悉,这是一款简易的,通用的,实用的日历控件,最近一个项目有要用到它,但是这里发现一个bug,就是日期的初始值,竟然是2009年11月份,这真是让人抓狂,后来花费了三个小时的时间,...
没有你的极限,柯西抓狂。 我的心已成自变量, 函数因你波起波荡。 低阶的有限阶的, 一致的不一致的, 是我想你的皮亚诺余项。 狄利克雷,勒贝格、杨 , 一同仰望莱布尼茨的肖像, 拉贝、泰勒,
众所周知,软件开发者每天都要做各种各样的决定:如何最好的实现功能、如何修复bug、如何提升应用程序的性能等等。但是他们同样是在别人的劳动成果下面继续做自己的决定的,...除此之外,对于每天都要写代码的软件开发