范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

花5分钟规范代码注释

  序
  【注释】从技术上来说没有对错,理论上,你想怎么写就怎么写,你爱怎么写就怎么写!
  但它确实也会对我们造成影响,尤其是在多人协同开发的系统中。杂乱的注释也会让你或你的队友头疼~
  所以,我们需要规范一下注释。那什么才是好的注释呢?我们先来看看什么是不好的注释! 注释冗余
  我们往往会写一段注释来说明"这是什么"。比如: // Find all the users let users = userHelper.findAll();  // Add score to each user users.forEach((user) => { 	user.score++; } 						 // Return the users return users;
  但是这段代码本身的意思就很清楚了,再附上注释就有点多余了。
  所以我们应该将其剔除。 let users = userHelper.findAll();  users.forEach((user) => { 	user.score++; } 						 return users;
  那么,这段代码是不是就方便阅读了呢?其实,咱们还能更进一步: let users = userHelper.findAll(); userHelper.incrementScoreForAll(users);						 return users;
  这样你感觉如何?相比于最开始的那段代码,这段是不是就 看得舒舒服服 ?
  所以,可读的代码比可读的注释更重要。优先考虑让你的代码说话,实在不行,再附上简短、清晰的注释。  注释未更新// Find all users let users = userHelper.findBanned();  // Give each user 100 extra score users.forEach((user) => { 	user.score = 0; }  return users;
  我们有时候会发现注释和代码并不匹配,比如这里为用户设置分数的操作。代码中是 0 分,注释却是 100 分。
  导致出现这种情况有多种可能: 我们总是在从其它地方复制代码,有时也会一并复制注释,然后在为己所用的过程中,修改了代码却没有修改对应的注释。 我们同时也在不断的根据产品需求调整代码(比如此处设置分值),修改代码也可能会忘记修改之前写的注释。
  怎么办?让我们来看看优解: // userHelper.js function updateScoreForUsers(score, users) {   users.forEach((user) => { 	  user.score += score;   } }  // Code 1: punish banned users let users = userHelper.findBanned(); userHelper.updateScoreForUsers(users, -100); return users;  // Code 2: give everybody 1 extra score let users = userHelper.findAll(); userHelper.updateScoreForUsers(users, 1); return users;
  这样写将设置分数的逻辑封装成函数进行了抽离,功能更强了,也更易于阅读了。
  现在,我们可以在多种情况下重复调用它,且不必担心注释未及时更新的问题了。 注释太长
  请问如果是这样的注释,你还有信心整个完整读下来吗?即使你是一个勇敢坚强的技术人,读下来也会消耗很多时间吧?这样低效率的事肯定不是我们想要的。 // userHelper.js /**  * Mass updates the user score for the given a list of user  * The score will be updated by the amount given in the parameter score  * For example, if the parameter score is 5, the users will all receive 5 extra score  * But if the score is negative, it can also be used. In that case, the score will be decreased by 5.  * If you set score as 0, then this method will be useless as nothing will be updated.  * If you set the score as a non number value, the function will not do anything and return false  * just to ensure the score is not messed up after updating it with a non-number value  * Try to avoid using non-number values in the score parameter as this should not be used like that  * If you do however choose to use Infinity in the score argument, it will work, because Infinity is considered as a number in JavaScript  * If you set the score to Infinity, all the users score will become Inifinity, because n + Infinity where n is a number, will always result in Infinity  * Regarding the users, make sure this is an array! If it is not an array, we will not process the users score,  * then our method will simply return false instead and stop processing  * Also make sure the users array is a list of actual user objects, we do not check this, but make sure the object has all the required fields as expected  * especially the score object is important in this case.  * @returns {boolean} Returns true if successful, false if not processed.  */ function updateScoreForUsers(score, users) {   if (isNaN(score) || typeof users !== "array") { return false; }      users.forEach((user) => { 	  user.score += score;   }                    return true; }
  所以,请确保你的注释不要太长。有那么多想说的,可以写文档、可以写文章,不要写注释~
  简单直接是最迷人的! 注释太短
  这是另一个极端的例子,但是它确实源自于现实的开发项目中。 // userHelper.js /**  * Update score  * @returns {boolean} result  */ function updateScoreForUsers(score, users) {   if (isNaN(score) || typeof users !== "array") { return false; }      users.forEach((user) => { 	  user.score += score;   }                    return true; }
  此段代码注释只是说明了返回值,但是更为关键的传参并未作出释义。显得有些尴尬~
  如果你决定注释,那就不要只写一半。请尽量准确、完整、干净的将其写出。从长期来看,你一定会从中受益。 好的注释
  好的注释就是告诉大家你  为什么  要进行注释!
  比如: // userHelper.js function updateScoreForUsers(score, users) {   users.forEach((user) => {     user.score += score;          // VIPs are promised 500 extra score on top     if (user.type == "VIP") {       user.score += 500;     }   }                    return true; }
  此例中我们可以明白 VIP 用户是被产品要求多加 500 分值的。这样其它开发就不会对此产生疑惑。
  如果代码由多个团队维护,简单直接的小标注就更为必要了! 小结
  注释在代码中扮演很重要的角色。本瓜还记得大学老师说:注释应该占代码的三分之一。
  我们都有不同的注释习惯,但是也应该有一个基本的指导: 注释应当简短、清晰,长篇大论稍边边。 告诉大家你  "为什么"  写这个注释, 而不是 告诉大家这段代码  "是什么" ! "是什么"  应该交给代码本身去解释。这个最为关键! 保持你的注释持久维护,也就是记得及时更新和与代码匹配。
  代码可读就是最好的注释。我是掘金安东尼: 一名人气前端技术博主(文章 100w+ 阅读量)
  终身写作者(INFP 写作人格)
  坚持与热爱(简书打卡 1000 日)
  我能陪你一起度过漫长技术岁月吗(以梦为马)
  觉得不错,给个三连吧(这是我最大的动力 )

比亚迪DMi销量创新高,王朝实力不容小觑官方数据显示,比亚迪乘用车8月全系销售67630辆,同比增长90。5,环比增长18。7其中新能源乘用车销售60508辆,同比增长331。9。比亚迪新能源乘用车销量占整个公司当月销量99元的RedMiAirDots到底香不香?是不是小米最极致性价比的产品近几年真蓝牙耳机在市场非常受欢迎,素有价格屠夫的小米也推出了小米AirDots,价格仅售149,不得不说这个价格已经非常实惠,可是没有想到在这之后RedMi再一次刷新了价格,Red发廊妹16岁创业,曾不敢发展线上,如今日销几千瓶发胶两个月前,李莎花了1200元烫了个头,她是杭州某电商公司的运营,月入8000元。这个发型,耗掉她半个月房租。美发是个暴利行业,Tony老师卖的不仅是发型,还有手艺。第二天,李莎就发iOS15。1准正式版来了,优化iPhone12电池容量算法iOS15。1准正式版上手体验本周二凌晨苹果向开发者推送了iOS15。1RC版本,本次更新可以看作是iOS15。1正式版,更新包大小为5。6GB左右。版本号15。1(19B74)。如何提高iPhone电池健康度?自从苹果在iOS10系统更新中加入了电池健康度这个指标以后,每次无论讨论电池续航时间抑或出售购买二手手机,一个离不开的话题就是电池健康度还剩多少?是否是原装电池?可以说使用iPho电脑的技术性常识与基础配置常识(1)我们今天来了解的是电脑的配置方面的常识,电脑的配置是可以分为很多的组件的,有很多的组件构成我们的电脑。一台完整的电脑由主板处理器内存硬盘电源机箱散热显卡组成。1。主板主板是搭载众多iOS15准正式版发布,带来24项大更新,续航表现让人意外iOS15准正式版体验分享嗨,各位早安,欢迎收看本期的iOS系统体验分享,我是追卜忆!今天凌晨苹果召开秋季新品发布会,发布了第九代iPad全面屏设计的iPadmini6AppleWiOS13。2。3正式版体验分享iOS13。2。3正式版体验分享今天凌晨苹果正式发布了iOS13。2。3正式版,本次更新包大小为105mb。版本号13。2。3(17B111)本次体验设备为iPhone11ProM零基础入门教你给新机装系统,非常简单一台刚刚装好的电脑就像有了肉身但还没有灵魂,那我们就要给他注入灵魂。准备工具1。系统U盘2。一台电脑步骤1。在电脑开机前,把系统盘插在电脑的USB插口上,然后开机地按F12,进入启iOS15。1正式版体验分享,更新之前不如先进来看看iOS15。1正式版体验分享今天凌晨苹果推送了iOS15。1正式版系统。本次更新内容和修复的问题都比较多。有FaceTime上的同播共享功能iPhone13系列的自动微距的开关iPiOS15。1beta3已推送,iPhone13系列的更新大礼包iOS15。1beta3体验分享欢迎各位收看本期的iOS系统体验分享!我是追卜忆今天凌晨苹果向开发者推送了iOS15。1的第三个beta版。更新包大小为900MB,版本号为15。1
华为Mate40即将登场,Mate30Pro新低,降600元由于美国的制裁,华为的麒麟芯片即将成为一首天鹅歌,这使得华为即将面世的年度旗舰产品华为Mate40系列引起了人们的关注。不久前,华为消费者业务首席执行官于承东公开表示,华为的MatF17Pro即将海外发布,网友可能是最时尚的F系列手机众所周知,自从进入2020年后,5G手机便迅速普及,这对于我们来说,当然是一件好事情,毕竟可以享受到5G带来的高速网络体验。但相信有接触过5G手机的朋友,都会明显感受到其与4G手机七夕函厂来袭!婚礼请柬定制服务已开启,网友新业务上线?今天是农历七月初七,是中国的传统节日七夕节,又名乞巧节。这个节日一直是中国人重要的传统佳节,有很多传统习俗,也有很多浪漫传说。在这个浪漫的日子,魅族推出了七夕特别活动8月25日当天准大学生新装备都选TA?这些体验太酸爽,谁用谁知道9月开学季,相信很多准大学生在正式踏入大学校园之前,都会给自己更换一些新装备,而手机无疑是同学们最想更换的新装备之一。如果屏幕前的你正在纠结换什么手机好,那么接下来要给大家推荐的这华为成功突破,又一项新专利公布,手机行业或许将要ampampquot变天ampampquot众所周知,没有真正意义上的全屏手机。尽管弹出式摄像机可以全屏显示,但也有许多缺点。机械笨重,手机不防水,结构复杂且价格昂贵,所有制造商都放弃了这种设计,取而代之的是使用药丸屏幕,刘跌至2800元,麒麟990256G,前置镜头DXO排名第一华为的nova系列现已发展到华为nova7,但给消费者留下深刻印象的是nova65G。现在由于华为nova7的上市,华为nova6不得不调整价格。在第三方平台上,华为nova65G被忽视的影音大厂!OPPO音乐素养很高,怪不得这品类卖这么好不久前,OPPO声学联合网易云音乐推出了一款OPPOEncoW31网易云音乐定制款耳机,凭借着精致小巧的设计以及出色完善的功能体验,该耳机一经上线就得到了广大消费者的青睐。甚至还得iQOO3狙击小米10失败,这次iQOO5能成功吗?目前,下半年的旗舰之战即将开始。当然,小米是首当其冲的。现在距离小米10Pro尊享纪念版的发布时间也不多了,配置什么的现在已经完全被曝光了,发布会的悬念只剩下价格,以小米为竞争对手高性价比配置不差,这款手机亮点均能满足每个时期都会有一些非常激动人心的手机,这些手机通常都配备了比较先进的,而且价格也比较合理,所以人们都喜欢购买这样的手机,毕竟谁不愿意买一个物美价廉的产品呢?如果你也希望,那么今天跟OPPO西欧最大旗舰店开业,网友一亿小目标稳了近日,OPPO在德国汉堡市开设了一家旗舰店,该店铺位于汉堡明克贝格街,是汉萨同盟城市中最受欢迎的海滨长廊之一。汉堡旗舰店也是OPPO在西欧开设的最大的销售门店。(OPPO在汉堡的旗国产品牌的高端之路除了华为,这家也很成功我们都知道,随着智能手机的高速发展,如今的手机市场已经被划分为了低中高三个档位,而国产手机凭借着亲民的价格和出色的硬件配置,一直占据着中低端市盘踞,高端市场则一直被三星苹果等大厂所