为什么有人代码不写注释

观点

        写注释是一种习惯,有些时候是一个程序员基本素养,甚至是职业道德体现。但是有些人就是不写,跟人、开发经验、性格等很多因素有关。和上班年限也有关,比如:

  • 上班一年不写注释,我命个名都费劲,还写毛注释?
  • 上班三年写注释,代码量有些积累,不写注释不是担心别人看不懂,而是担心自己看不懂
  • 上班五年不写注释,我写的这么牛逼的代码,肯定不能写注释让别人看懂,这是我的核心技术
  • 上班八年不写注释,公司离开我就会倒闭,我写的bug,只有我自己看得懂,我就是大湿
  • 上班10年写注释,格局打开,日行一善

不写注释的原因有哪些

原因1:有一种代码本身写得很牛,行文风格流畅,让人一看就是大家风范,这种代码就不要注释。通俗讲你看他代码就知道代码作者的意图,举个例子,以下是ORB-SLAM2源码:  链接:orm-slam2代码块

MapPoint::MapPoint(const cv::Mat &Pos, Map* pMap, Frame* pFrame, const int &idxF):
    mnFirstKFid(-1), mnFirstFrame(pFrame->mnId), nObs(0), mnTrackReferenceForFrame(0), mnLastFrameSeen(0),
    mnBALocalForKF(0), mnFuseCandidateForKF(0),mnLoopPointForKF(0), mnCorrectedByKF(0),
    mnCorrectedReference(0), mnBAGlobalForKF(0), mpRefKF(static_cast<KeyFrame*>(NULL)), mnVisible(1),
    mnFound(1), mbBad(false), mpReplaced(NULL), mpMap(pMap)
{
    Pos.copyTo(mWorldPos);
    cv::Mat Ow = pFrame->GetCameraCenter();
    mNormalVector = mWorldPos - Ow;
    mNormalVector = mNormalVector/cv::norm(mNormalVector);

    cv::Mat PC = Pos - Ow;
    const float dist = cv::norm(PC);
    const int level = pFrame->mvKeysUn[idxF].octave;
    const float levelScaleFactor =  pFrame->mvScaleFactors[level];
    const int nLevels = pFrame->mnScaleLevels;

    mfMaxDistance = dist*levelScaleFactor;
    mfMinDistance = mfMaxDistance/pFrame->mvScaleFactors[nLevels-1];

    pFrame->mDescriptors.row(idxF).copyTo(mDescriptor);

    // MapPoints can be created from Tracking and Local Mapping. This mutex avoid conflicts with id.
    unique_lock<mutex> lock(mpMap->mMutexPointCreation);
    mnId=nNextId++;
}

原因2:有些代码不注释就是作者懒猪,呵呵,过了半个月,自己都看不懂自己写得bug了。过了一个月,看到自己的写得代码,一时半会没认出来,内心:这是哪个沙雕写的bug。哈哈哈哈

原因3:所谓教会徒弟,饿死师傅,只要我代码不写注释,公司永远就要需求我,出了bug只有我能解决,我永远立于不败之地。哈哈哈。

如何才能写出漂亮的注释

代码注释是有固定格式的,以上面那个构造函数为例子。可以参考下。

/**
* @brief 该函数实现了地图点管理功能
* @in   Pos  输入图像
* @out  pMap 地图点
* @out  pFrame 关键帧
* @in   idxF 帧ID
*/
MapPoint::MapPoint(const cv::Mat &Pos, Map* pMap, Frame* pFrame, const int &idxF)
{
    // 代码省略
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄家驹beyond

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值