`
trydofor
  • 浏览: 150466 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

抓狂代码

阅读更多
抓狂代码
^^^^^^^^
- 作者:臭豆腐[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
分享到:
评论
1 楼 mylazygirl 2009-12-08  
说的不错~

相关推荐

    面向对象Javascript核心支持代码分享

    在几千行代码里跟踪、跳转真让人抓狂! Javascript做面向对象开发的时候,总是会用到很多模拟面向对象特性的方法,这些方法就构成了支撑面向对象Javascript的核心代码,以下就是部分代码,其中参考

    微信公众号验证token代码

    微信公众号验证token经常失败,是一件很让人抓狂的事。找了很久,终于找相关一个可用的相关代码,希望对你有用。

    linux下gcc自编全屏幕编辑器源代码

    linux操作系统下,vi编辑器使用起来实在令人抓狂,适应了一个月,还是有抵触心理。正好这段时间在学c语言,于是用vi和gcc自编完整全屏幕编辑器,命名为ed;上传全部1.0版完整源代码,毫无保留,有兴趣可继续完善开发...

    world wind 源代码

    NASA World Wind是一款虚拟地球仪软件,像Google Earth一样,可以用它来查看地球的卫星照片。  NASA World Wind俗称地球放大镜,是NASA(美国)...熟悉的人为之疯狂,不熟悉的人为之抓狂。一切只因它太过于贴近专业!

    Dreamweaver代码的格式化功能掌控html代码的格式

    这样的代码是不是很让人抓狂呢? 格式化后的代码,使用适当的缩进和换行,可读性就好多了! 那如何使用Dreamweaver格式化代码呢? 第一步:依次点击菜单栏的 编辑 – 首选参数 – 代码格式 (注:Dreamweaver...

    完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题

    Content Assist 是 Zend Studio 提供的一种智能编码辅助功能,它能够在编写代码时自动提供可能的函数、类、变量等建议,从而提高编写代码的速度。然而,当项目变得庞大或者代码行数过多时,这个功能可能会变得反应...

    盘点谷歌史上15个最让求职者抓狂的面试题.docx

    8. **“死牛肉”的意义**:软件工程师面对的可能是隐喻或编程术语,需要他们解读抽象概念或代码语言。 9. **酒店谜题**:这是一个逻辑推理题,要求应聘者理解语境并找到关键信息。 10. **Bob的电话号码问题**:这...

    JavaScript中令你抓狂的魔术变量

    在存在这么一个变量 tt, 它满足下面的代码. 代码执行完毕后 ,errCount=0 而且 断言函数也从未 alert 信息 代码如下: 代码如下:[removed] var tt=/* 请在这里定义tt */; var errCount=0 //全局变量,...

    VisualFreeBasic.chm

    你还在为C语言繁琐的代码而抓狂吗?你还在为C语言复杂的流程而纠结吗?那么来VisualFreeBasic 的温馨家庭来瞧瞧吧,一个自由、免费、包容的编程家庭,说不定就能重新定义你对编程的认知,改变你的未来编程方向。 ...

    SQL格式化工具2.8.7汉化+破解

    如果碰上一团糟的代码(估计概率不小),那更是让你抓狂。 经常分发自己编写的SQL代码给别人,不管是通过博客、论坛、Email、还是其他方式,不规范的代码会让你看上去很不专业。 需要格式化、规范大量的SQL文件,...

    详解关闭令人抓狂的ESlint 语法检测配置方法

    本文将详细介绍如何关闭或自定义这些令人抓狂的 ESLint 语法检测配置。 首先,关闭 ESLint 的一种简单方法是在项目中找到相应的配置文件。对于使用 vue-cli 脚手架创建的项目,通常在 `build/webpack.base.conf.js`...

    寒羽枫日历控件修正版

    寒羽枫的日历控件相信大家都很熟悉,这是一款简易的,通用的,实用的日历控件,最近一个项目有要用到它,但是这里发现一个bug,就是日期的初始值,竟然是2009年11月份,这真是让人抓狂,后来花费了三个小时的时间,...

    无穷积分matlab代码-Matlab:Matlab与数学算法代码集合

    没有你的极限,柯西抓狂。 我的心已成自变量, 函数因你波起波荡。 低阶的有限阶的, 一致的不一致的, 是我想你的皮亚诺余项。 狄利克雷,勒贝格、杨 , 一同仰望莱布尼茨的肖像, 拉贝、泰勒,

    编程语言中一些令人抓狂的规则

    众所周知,软件开发者每天都要做各种各样的决定:如何最好的实现功能、如何修复bug、如何提升应用程序的性能等等。但是他们同样是在别人的劳动成果下面继续做自己的决定的,...除此之外,对于每天都要写代码的软件开发

Global site tag (gtag.js) - Google Analytics