zoukankan      html  css  js  c++  java
  • M总语录之导一下


     ……
    “M老师,我们这个动态感知功能有问题,按着鼠标,系统就down了。”看到M总来到我旁边,我赶快汇报刚发现的bug。
    “...在鼠标移动的时候,判断一下是否按下鼠标的任一个键,如果没按下我们就启用动态感知功能。”M总想了一下吩咐道。
    这还不简单,心想。于是刷刷的写下了如下代码:

    //……
    if( (...) && (nFlags & (MK_LBUTTON | MK_MBUTTON | MK_RBUTTON) == 0))
    {
       //……启用动态感知
    }


    “这样的对吗?”还没等我写完,M总就发彪了。
    回头仔细一看,哦,优先级搞错了,少了对括号。于是又好不犹豫的加上了一对括号:

    //……
    if((...) && (nFlags & (MK_LBUTTON | MK_MBUTTON | MK_RBUTTON)) == 0))
    {
       //……启用动态感知
    }

    心想:这下可万事大吉了。


    “你这样写容易读吗?为什么不声明个变量‘导一下’呢?”M总又发话了。

    导一下,挺熟悉的词汇,听过M总说过N多边了。所谓导一下,是指要使用某个函数的返回值,先声明个变量获取之,然后再对变量进行操作;或者是进行条件判断时,如果条件很多很复杂,先声明个变量取得表达式的条件值。

    于是,再次返工:

    UINT nBtState = nFlags & (MK_LBUTTON | MK_MBUTTON | MK_RBUTTON);
    if( (...) && (nBtState == 0))
    {
     //...启用动态感知
    }

    “这样子,不就即容易读,又会减少出错率,还方便调试了嘛。”M总语重心长地说,“下面这句也给导一下,你能保证它返回值不为NULL吗?”忽然,他指着下面的几句代码说。

    //...
    m_pOpMgr->GetCurrentOperator()->Capture();
    //...

    于是又改起来,导它一下,呵呵。
    “这样导一下,不会影响执行的效率,反而会增加代码的安全性,特别是有指针的情况一定要注意……”我一边改,M总一边说。

    其实这个导一下的理论听过多次了,只不过没太放在心上。不过经过这次,可得好好地记住了。

    导一下海阔天空,导一下妙不可言,呵呵。


  • 相关阅读:
    Windows2012 cannot access netapp CIFS share
    Import SHA2 SSL cert to Windows IIS7
    IE11登陆交行网银崩溃
    Understanding and Managing SMTP Virtual Servers
    IIS SMTP Queue stuck
    C#夯实基础之多线程三:线程的优先级
    C#夯实基础之多线程二:主线程、前台线程与后台线程
    ORA-00257: archiver error. Connect internal only, until freed.
    C#夯实基础之多线程一:初识多线程
    在Oracle中恢复被DROP掉的表
  • 原文地址:https://www.cnblogs.com/aiwz/p/6333273.html
Copyright © 2011-2022 走看看