当前位置: 首页 > news >正文

购物网站最重要的功能网站开发员属于

购物网站最重要的功能,网站开发员属于,网站建设教程下载,杭州网站建设那家好编写代码注释的最佳实践 好的注释可以提高代码的可读性和可维护性#xff0c;从而提高代码质量。 作为研发同学#xff0c;对于代码“注释”其实并不陌生。它往往作为我们代码文档的特殊补充而存在。 提倡加注释#xff0c;但不能滥用。我们开发流程中会有Code Review过程从而提高代码质量。 作为研发同学对于代码“注释”其实并不陌生。它往往作为我们代码文档的特殊补充而存在。 提倡加注释但不能滥用。我们开发流程中会有Code Review过程这样每个人都将了解好的注释是什么样的同时你遇到不好的代码注释也需要告诉他如何改进。 这里有一些规则可以帮助我们把注释写的更好。 规则 1注释不应与代码重复。 规则 2好的注释不能成为不清晰代码的借口。 规则3如果不能写清楚的注释可能是代码有问题。 规则 4评论应该消除混乱而不是引起混乱。 规则 5在注释中解释单一的代码。 规则 6提供复制代码的原始来源的链接。 规则 7在最有帮助的地方包含指向外部参考的链接。 规则 8修复错误时添加注释。 规则 9使用注释来标记不完整的实现。 规则 1注释不应与代码重复。注释不应重复代码的工作。应该去解释代码的模型和心智模型的映射关系应说明为什么要使用这个代码模型下面的例子就是反面教材: // bad /** the name. */ let name:string; /** the version. */ let Version:string; /** the info. */ let info:string; // 使用给定的深度在给定的子树中查找具有给定名称的节点。 func FindNodeInSubtree(subTree *Node, name string, depth *int) *Node { } 规则 2好的注释不能成为不清晰代码的借口。如起变量名时候取其实际含义没必要随便写个变量名然后在注释里面偷偷用功。起函数名时动词名词结合。我们应当追求「代码自注释」即代码本身就拥有较高的可读性通过清晰的命名、合理的结构等。 别害怕长名称长而具有描述性的名称比长注释好。别害怕花时间取名字。 //bad // 如果已经准备好数据就渲染表格 if (data.success data.result.length 0) {renderTable(data); } //good const isTableDataReady data.success data.result.length 0; if (isTableDataReady) {renderTable(data); } //good init: function() {// 获取配置信息const config getConfig();// 获取用户信息const userInfo getUserInfo();// 根据配置和用户信息进行初始化doInit(config, userInfo);// 如果存在自定义配置时的特殊逻辑if (config.custom) {...} }规则 3如果不能写清楚的注释可能是代码有问题 **克尼根定律:布莱恩·克尼根正是与人合著了《C编程语言圣经》的人以这条有见地的定律而闻名。关键在于写好代码写可读代码写简单代码只要不是聪明的代码就行。 试图用象牙塔的复杂性来锻炼你的编程能力与编写干净、更好的代码的意义恰恰相反。你的代码越难理解当它不可避免地崩溃时调试就越困难。 规则 4注释应该消除混乱而不是引起混乱。若编程语言足够有表现力我们就不需要注释。代码在演化注释却不总是随之变动。不准确的注释比没注释坏的多。写为什么做少写做了什么。 规则 5在注释中解释单一的代码 //bad代码中不应该去解释大家都能理解的代码除非是在给新手编写教程。 final Object value (new JSONTokener(jsonString)).nextValue(); // Note that JSONTokener.nextValue() may return // a value equals() to null. if (value null || value.equals(null)) {return null; }规则 6提供复制代码的原始来源的链接 /** 将可绘制对象转换为位图. via https://stackoverflow.com/a/46018816/2219998. */ return (int) (0.3 * red 0.59 * green 0.11 * blue);规则 7在最有帮助的地方包含指向外部参考的链接 /*** Returns the current location object, which represents the current URL in web* browsers.** Note: If youre using this it may mean youre doing some of your own* routing in your app, and wed like to know what your use case is. We may* be able to provide something higher-level to better suit your needs.** see https://reactrouter.com/docs/en/v6/api#uselocation*/ export declare function useLocation(): Location; 规则 9使用注释来标记不完整的实现 即使代码中有已知的限制有时还是有必要检查它。虽然不分享代码中已知的缺陷很有诱惑力但最好将这些明确化例如使用TODO注释 // TODO(hal): We are making the decimal separator be a period, // regardless of the locale of the phone. We need to think about // how to allow comma as decimal separator, which will require // updating number parsing and other places that transform numbers // to strings, such as FormatAsDecimal注释规约 【推荐】单行注释使用 // 注释应单独一行写在被注释对象的上方不要追加在某条语句的后面 // bad const active true; // is current tab // good // is current tab const active true;注释行的上方需要有一个空行除非注释行上方是一个块的顶部以增加可读性 // bad function getType() { console.log(fetching type...); // set the default type to no typeconst type this.type || no type; return type; } 注释行上面是一个块的顶部时不需要空行 // good function getType() { console.log(fetching type...); // set the default type to no typeconst type this.type || no type; return type; }// good function getType() { // set the default type to no typeconst type this.type || no type; return type; }【推荐】多行注释使用 /** ... */而不是多行的 // // bad // make() returns a new element // based on the passed in tag name function make(tag) {// ...return element; }// good /*** make() returns a new element* based on the passed-in tag name*/ function make(tag) {// ...return element; }【强制】注释内容和注释符之间需要有一个空格以增加可读性。eslint: spaced-comment // bad //is current tab const active true;// good // is current tab const active true;// bad /** *make() returns a new element *based on the passed-in tag name */ function make(tag) { // ...return element; }// good /** * make() returns a new element * based on the passed-in tag name */ function make(tag) { // ...return element; }【推荐】使用特殊注释标记。 有时我们发现某个可能的 bug但因为一些原因还没法修复或者某个地方还有一些待完成的功能这时我们需要使用相应的特殊标记注释来告知未来的自己或合作者。常用的特殊标记有两种 FIXME: 说明问题是什么 TODO: 说明还要做什么或者问题的解决方案 class Calculator extends Abacus {constructor() {super();// FIXME: shouldn’t use a global heretotal 0;// TODO: total should be configurable by an options paramthis.total 0;} }【推荐】文档类注释如函数、类、文件、事件等使用 jsdoc 规范 see 这是JsDoc规范 这是链接 JsDoc规范。 JSDoc 是一个根据 JavaScript 文件中注释信息生成 JavaScript 应用程序或模块的API文档的工具。 /*** Book类代表一个书本.* constructor* param {string} title - 书本的标题.* param {string} author - 书本的作者.*/ function Book(title, author) {this.titletitle;this.authorauthor; }Book.prototype{/*** 获取书本的标题* returns {string|*}*/getTitle:function(){return this.title;},/*** 设置书本的页数* param pageNum {number} 页数*/setPageNum:function(pageNum){this.pageNumpageNum;} };【推荐】工具使用。我们可以使用一些工具来保证注释质量例如 Eslint保证一致的注释风格ESLint 是当下最流行的 JS 代码检查工具ESLint 中有一些注释相关的规则用户可选择开启 see 这是Eslint规范 这是链接 EsLint规范。 no-warning-comments 开发者经常给代码添加注释标明哪些没有完成或需要审查。在你认为代码可以发布之前你很有可能想修复或审查代码然后删除注释。capitalized-comments 如果您不关心代码库中注释的语法风格则可以禁用此规则。控制注释如果是英文首字母必须大写line-comment-position 如果您不关心有不同的行注释样式那么您可以关闭此规则。控制行注释位置lines-around-comment 许多人喜欢简洁的代码风格并且不介意与代码冲突的评论。如果您属于该类别则此规则不适合您。 控制间隔评论块前空间。multiline-comment-style 如果您不想为多行注释强制执行特定样式则可以禁用该规则。 控制多行注释样式。no-inline-comments 控制内联注释位置。spaced-comment 控制一些注释间隔。 结论 我希望上面的例子已经表明注释不能原谅或修复错误的代码它们通过提供不同类型的信息来补充好的代码。 正如 Stack Overflow 联合创始人 Jeff Atwood 所写的那样“代码告诉你如何评论告诉你为什么。” 遵循这些规则应该可以节省您和您的队友的时间和挫败感。
http://www.zqtcl.cn/news/444349/

相关文章:

  • 上海专业建站最低价网站程序模板
  • 蚌埠网站建设哪家好创客贴官网
  • php网站建设参考文献wordpress 头像 很慢
  • 大连seo网站推广phpcmsv9手机网站源码
  • 公司做推广做网站好还是俄文网站引擎
  • 上海市建设咨询协会网站asp网站源码
  • 大家都在哪些网站上做医药招商wordpress po文件
  • 国外主题网站兰州app
  • 建设项目自主验收公示网站dedecms英文外贸网站企业模板下载
  • 做网站要服务器吗前端企业网站开发
  • 用html写一个个人介绍多网站怎么做seo
  • 做网站打广告犯法吗中国建设投资集团 网站首页
  • 怎么免费申请个人网站职业技能培训有哪些
  • 小型的企业网站湖南备案网站建设方案书
  • 现在做网站公司seo怎么做教程
  • asp化妆品网站windows优化大师有必要安装吗
  • 网站流量分析系统制作图片网站
  • 做网站技术路线广州番禺发布公众号
  • 企业网站自己可以做吗服装网站建设的利益分析
  • 网站做软件居众装饰集团有限公司
  • 南山网站制作联系电话芒果国际影城星沙店
  • 珠海网站设计费用建企业版网站多久
  • linux 网站搬家wordpress 卸载plugin
  • 江苏省建设厅网站 投诉编辑网站的软件手机
  • 深圳地图各区分布图seo网络优化师就业前景
  • 北京网站备案代理国家企业信用信息公示系统广东
  • 推销网站重庆网站优化公司哪家便宜
  • 外贸公司网站搭建礼品网站建设
  • 网站建设 今晟网络中国制造网官网登录
  • 东莞网站设计如何常州做网站设计