最新要闻
- 有钱玩家真多!越来越多Steam用户配置RTX 4090显卡:已超2万人
- 女子误用八千元一斤茶叶煮茶叶蛋 以为过期:网友称这茶叶蛋真吃不起
- 天天观天下!专家:年轻人工资低是因为能力不够 很少有人反思这问题
- 全球微速讯:爱奇艺回应3台设备登录账号被封:改密码能解封 不用充值更贵会员
- 全球滚动:PS游戏启动失败?PS日本教你如何进行问题排查
- 剧版一集就被砍之后 DC电影版《沼泽怪物》物色导演
- 订单破5万!比亚迪腾势D9登35万以上新能源豪华MPV销量第一
- 环球微动态丨导演评价《狂飙》:可能是可以刻在自己墓碑上的一部戏
- 每日快报!12.4万的保时捷带来诸多疑问 故意营销质疑越来越多!
- 造车新势力第一!广汽埃安1月交付10206辆 今年冲击60万辆
- 今日快讯:蔚来开启降价 内部员工回应:像小鹏那样直接降太没面子
- 彻底不冒黑烟!沃尔沃天然气重卡发布:发动机最大500马力
- 世界速讯:30岁中国女子在日本买70万平小岛成岛主:永久使用权
- 天天资讯:体育纳入高考、鲨鱼咬人?朋友圈十大谣言出炉
- 环球速看:800W核弹 老外猜测RTX Titan Ada售价:2.5万元都是良心价
- 环球今日报丨超越三星 中国电视品牌出货量首次登顶全球第一
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
当前热讯:编写干净代码的 9 条必须知道的规则
您是否厌倦了盯着一堆连您的猫都不会碰的代码?别再看了。在这篇文章中,我将告诉您 9 条规则,将您的烂尾代码变成艺术品。
所以喝杯咖啡,坐下来负责你的代码!
(资料图片)
规则#1 - 让你的代码井井有条且易于阅读
你可以不整理你的衣橱,但一定要整理你的代码。通过使代码井井有条且易于阅读,您可以快速找到所需内容。
检查以下示例:
// Group related functions togetherfunction calculateTotal() { // code}function calculateTax() { // code}function calculateDiscount() { // code}// Use comments to explain the purpose of the codefunction calculateTotal() { // calculate subtotal let subtotal = 0; // add items subtotal += item1.price; subtotal += item2.price; // return total return subtotal;}
如您所见,稍加计划和适量的注释可以让浏览代码变得轻而易举。
乍一看,即使在编写代码已有一段时间后,您也能很好地了解整体功能。
并不是每一天你都会感谢过去的自己做了一些好事!
规则#2 - 遵循既定的编码约定和标准
我知道成为叛逆者并规划自己的路线很诱人。
但有时,遵循既定的编码惯例和标准是值得的。这包括命名约定、评论指南等内容。
请参阅下面的片段,了解我要说的内容。
// Naming conventionslet userName; // camelCase for variables and propertiesconst MAX_USERS; // UpperCamelCase for constants// Commenting guidelines// This function takes in a number and returns its squarefunction square(num) { return num * num;}
我们的想法是要始终如一地玩游戏。通过遵循您团队的代码约定,您的代码不会像拇指一样突出,您的开发人员也会欣赏您。
规则#3 - 使用描述性变量和函数名称
我知道将变量命名为 X 和 Y 很时髦。
但是请相信我,几个月后,即使是你也无法理解它们的真正含义。
为变量赋予描述性名称总是安全的。从长远来看,它甚至可能对您更好。
// Descriptive function namefunction calculateSum(numbers) { // Descriptive variable name let sum = 0; // Iterate through the array of numbers for (let i = 0; i < numbers.length; i++) { // Add each number to the sum sum += numbers[i];} // Return the sum return sum;}
如您所见,即使函数的代码有一个循环,函数和变量名也使程序的目标一目了然。
规则#4 - 避免硬编码值并使用常量
向硬编码说再见,向常量问好!
通过使用常量,您将能够存储您知道在整个程序中不会改变的值。这将帮助您避免在整个代码中搜索和替换值的麻烦。
查看下面的代码。
const TAX_RATE = 0.07;function calculateTotal(subtotal) { return subtotal + (subtotal * TAX_RATE);}
如果未来税率发生变化,您可以轻松地在一个地方更新该值,并将其反映在整个代码中。
规则#5 - 保持函数小而集中
当您开始作为一名开发人员时,总是很想将您的功能变成瑞士刀。解释您的代码可以做这么多事情的感觉是如此诱人。
当您成为经验丰富的开发人员时,这种习惯就会消失。但有时它不会。
相信我。保持你的功能小,你的生活就会快乐。
如果您编写易于理解的小而集中的函数,那么如果出现问题,您很可能不会在海滩度假时受到打扰。
请参阅此示例。
function calculateTotal(subtotal, tax, discount) { const total = subtotal + tax - discount; return total;}
上面的函数简短而切题。这使得它易于理解和维护。
规则#6 - 使用合适的数据结构
您是否总是试图在圆孔中安装方钉?如果是,是时候使用适当的数据结构了。
就像木匠针对不同的任务拥有多种工具一样,开发人员应该针对不同类型的功能拥有多种数据结构。
这是一个备忘单:
- 当您需要存储具有特定顺序的项目集合时,请使用数组。
- 当您需要存储可以动态更改的项目集合时,请使用列表。
- 最后,如果您需要存储可以通过键访问的项目集合,请使用映射。
查看下面的代码,演示了不同数据结构的使用。
// Using an array to store a collection of items that have a specific orderconst shoppingList = ["milk", "bread", "eggs"];console.log(shoppingList[1]); // Output: "bread"// Using a list to store a collection of items that can change dynamicallyconst todoList = ["write code", "debug", "test"];todoList.push("deploy");console.log(todoList); // Output: ["write code", "debug", "test", "deploy"]// Using a dictionary to store a collection of items that can be accessed by a keyconst phonebook = { "John": "555-555-5555", "Mary": "555-555-5556", "Bob": "555-555-5557"};console.log(phonebook["Mary"]); // Output: "555-555-5556"
通过根据需求使用合适的数据结构,您会发现您的代码不仅高效而且易于理解。
规则#7 - 使用版本控制
就像你的应用程序如果只在你的机器上运行就没有用一样,如果你的代码没有提交到中央存储库,它也没有用。
每个开发人员都应该习惯版本控制。不要忘记定期提交代码。如果您正在这样做,请确保您团队中的其他人也这样做。
只需要几个命令:
// Initialize a new Git repository$ git init// Add all files to the repository$ git add .// Commit the changes with a message$ git commit -m "Initial commit"
一个好的版本控制工具允许开发人员跟踪更改、与他人协作并在出现任何问题时轻松恢复到以前的版本。
规则# 8 - 自动化重复性任务
不要像轮子上的仓鼠一样,不停地原地打转,一遍又一遍地做着同样无聊的工作。
您应该使用工具和脚本来自动执行代码中的重复性任务。这不仅可以节省时间,还可以使您的代码更加可靠和高效。
查看此简单测试自动化脚本的代码示例。
const testCases = [ { input: [1, 2], expectedOutput: 3 }, { input: [2, 3], expectedOutput: 5 }, { input: [3, 4], expectedOutput: 7 },];testCases.forEach(testCase => { const output = addNumbers(testCase.input[0], testCase.input[1]); if (output !== testCase.expectedOutput) { console.error(`Test failed: expected ${testCase.expectedOutput} but got ${output}`); } else { console.log("Test passed"); }});
您还可以自动化编译代码和创建最终包的构建过程。
请参阅下面的示例,其中我们使用 Gulp 等工具自动化构建过程。
// Automating a build process using a tool like Grunt or Gulpconst gulp = require("gulp");gulp.task("build", function() {// Build process logic});gulp.task("default", ["build"]);
规则#9 - 保持你的代码是最新的
不要成为恐龙。你只会灭绝。
让您的代码保持最新。尽可能更新您的应用程序依赖项。
例如,如果您在 Node 生态系统中工作,请使 NPM 保持最新并升级您的开发环境。
// Keep dependencies up-to-date using package manager$ npm update// Keep the development environment up-to-date$ nvm install 12.16.3
就是这样!
那么,你有它。9 条规则可帮助您编写干净高效的代码。
当然,这些并不是唯一重要的事情。但是通过遵循它们,您将能够开始编写不仅运行良好而且看起来令人愉悦的代码,让其他人阅读、理解和维护。
为帮助到一部分同学不走弯路,真正达到一线互联网大厂前端项目研发要求,首次实力宠粉,打造了《30天挑战学习计划》,内容如下:
HTML/HTML5,CSS/CSS3,JavaScript,真实企业项目开发,云服务器部署上线,从入门到精通
- PC端项目开发(1个)
- 移动WebApp开发(2个)
- 多端响应式开发(1个)
共4大完整的项目开发 !一行一行代码带领实践开发,实际企业开发怎么做我们就是怎么做。从学习一开始就进入工作状态,省得浪费时间。
从学习一开始就同步使用 Git 进行项目代码的版本的管理,Markdown 记录学习笔记,包括真实大厂项目的开发标准和设计规范,命名规范,项目代码规范,SEO优化规范
从蓝湖UI设计稿 到 PC端,移动端,多端响应式开发项目开发
- 真机调试,云服务部署上线;
- Linux环境下 的 Nginx 部署,Nginx 性能优化;
- Gzip 压缩,HTTPS 加密协议,域名服务器备案,解析;
- 企业项目域名跳转的终极解决方案,多网站、多系统部署;
- 使用 使用 Git 在线项目部署;
这些内容在《30天挑战学习计划》中每一个细节都有讲到,包含视频+图文教程+项目资料素材等。只为实力宠粉,真正一次掌握企业项目开发必备技能,不走弯路 !
过程中【不涉及】任何费用和利益,非诚勿扰 。
如果你没有添加助理老师微信,可以添加下方微信,说明要参加30天挑战学习计划,来自今日头条!老师会邀请你进入学习,并给你发放相关资料。
30 天挑战学习计划 Web 前端从入门到实战 | arry老师的博客-艾编程
-
世界看点:mybatis-plus代码生成器
用idea建一个javaproject项目,然后在pom xml中加入以下依赖<dependency><groupId>org projectlombok< gro
来源: 当前热讯:编写干净代码的 9 条必须知道的规则
有钱玩家真多!越来越多Steam用户配置RTX 4090显卡:已超2万人
Python教程:OS与sys模块用法教程
世界看点:mybatis-plus代码生成器
女子误用八千元一斤茶叶煮茶叶蛋 以为过期:网友称这茶叶蛋真吃不起
天天观天下!专家:年轻人工资低是因为能力不够 很少有人反思这问题
全球微速讯:爱奇艺回应3台设备登录账号被封:改密码能解封 不用充值更贵会员
全球滚动:PS游戏启动失败?PS日本教你如何进行问题排查
剧版一集就被砍之后 DC电影版《沼泽怪物》物色导演
订单破5万!比亚迪腾势D9登35万以上新能源豪华MPV销量第一
环球微动态丨导演评价《狂飙》:可能是可以刻在自己墓碑上的一部戏
每日快报!12.4万的保时捷带来诸多疑问 故意营销质疑越来越多!
造车新势力第一!广汽埃安1月交付10206辆 今年冲击60万辆
天天观热点:CSS 清除浮动
今日快讯:蔚来开启降价 内部员工回应:像小鹏那样直接降太没面子
彻底不冒黑烟!沃尔沃天然气重卡发布:发动机最大500马力
世界速讯:30岁中国女子在日本买70万平小岛成岛主:永久使用权
天天资讯:体育纳入高考、鲨鱼咬人?朋友圈十大谣言出炉
环球速看:800W核弹 老外猜测RTX Titan Ada售价:2.5万元都是良心价
每日信息:程序员应该专注技术,还是优雅转管理?
环球今日报丨超越三星 中国电视品牌出货量首次登顶全球第一
天天看热讯:33款砍掉一半多!奔驰大刀阔斧改革旗下车型:不赚钱的都扔掉
环球短讯!上海动物园小老虎意外溺亡 回应:因外界人员干扰致应激反应
河南一地发现大型石墨矿:自然界最软的矿物 估算超100万吨
95比92更耐烧吗、中石化和中石油能混加吗?官方科普
当前焦点![JavaSript]闭包
即时焦点:element-ui表格展开行每次只能展开一行
阿里二面:千万级、亿级数据,如何性能优化? 教科书级 答案来了
热推荐:MyBatis的使用一(框架的搭建)
环球要闻:数字孪生|可视化图表之散点图
焦点报道:视网膜能秒击穿!网友用小米12实测新能源车激光雷达威力:相机被烧坏
天天速讯:可口可乐定制版真我10 Pro外观首曝:最具辨识度的千元机
世界滚动:《狂飙》落幕后 《三体》剧版上线超前点播:18元提前看大结局
安卓之光归来 三星对Galaxy S23系列很自信:最好的相机及游戏性能
世界今日报丨小米汽车设计泄密供应商被处罚100万!雷军:泄密员工正在处理
自动化运维:如何构建和部署前端应用
cpp简单总结
你只会用 xxl-job?一款更强大、新一代分布式任务调度框架来了,太强大了!
微动态丨可口可乐定制版真我10 Pro官宣:LCD屏 边框比iPhone 14 Pro还窄
天天快资讯丨英特尔锐炫显卡驱动更新:DirectX 9游戏性能提升超过40%
环球速递!连赢友商两代的CPU功臣退位 AMD确认5nm Zen4今年成为主力
【天天热闻】吃鱼或将再也不用挑刺了!中国科学家取得新突破:基因突变搞定
《狂飙》大结局口碑崩了!豆瓣评分跌至8.8:网友吐槽结尾仓促
多功能游戏工具箱 - Watt Toolkit V4.4
每日视讯:IOS逆向--恢复Dyld的内存加载方式
世界快讯:智能学习灯赛道竞争日趋激烈 火山引擎 VeDI 用数据技术助力打造新优势
全球微资讯!Java里面为什么搞了双重检查锁,写完这篇文章终于真相大白了
抄袭、偷票房、成本1千万争端不断!张艺谋:《满江红》是正能量传承
网易暴雪游戏退款服务爆火!排队人数超100万 你退了多少?
恒大恒驰上海公司被强执409万:累计被执行2.8亿
天天热头条丨微信多开工具,微信消息防撤回、QQ消息防撤回、Tim消息防撤回,不错过每一条消息
京东PLUS会员与爱奇艺、喜马拉雅联名卡宣布调价:都涨了
视焦点讯!能怎样?韩数万用户上诉苹果:故意降低旧款iPhone性能让换新败诉
每日观察!马斯克测试推特“仅粉丝可见”遭群嘲:懂的工程师都被裁了?
每日消息!董明珠造车路又遭一击!海南三亚67辆格力钛新能源大巴起火被烧
焦点简讯:限制480P投屏被7年老粉起诉:律师称爱奇艺大概率会败诉
网友囤1000片退烧药全砸手里了被点赞:囤N95口罩血氧仪价格也都惨了
iPhone反复输错密码 Apple ID锁定怎么办?苹果解答
当前播报:比特斯拉还狠!蔚来被曝降价促销 降幅最高超过10万元
环球新动态:刚上班三天就被裁。。还有谁!!
对话 BitSail Contributor | 梁奋杰:保持耐心,享受创造
当前视点!云原生场景下实现编译加速
【北斗七星】北斗卫星授时之星解读与应用
全球速看:kubernetes 污点(Taint)和容忍度(Toleration)研究
完胜iPhone 14 Pro Max!一加Ace 2连续滑动10万次:没有1次断触
天天快资讯丨河北90后小伙做叶雕月入过万 一张“树叶”售价120元
天天微头条丨米哈游起诉《原神》内鬼泄密 获赔15000元
世界观天下!小米汽车设计文件意外泄密被疯传!小米通报:供应商被罚100万
批判主义的观点是什么?批判主义的代表人物有哪些?
什么是平稳序列?平稳序列的三个条件是什么?
imovie怎么添加音乐?imovie怎么调整视频画面大小?
怎么制作电子图章?图章制作软件有哪些?
罹难怎么读?罹难是什么意思?
平板电视和液晶电视有什么区别?平板电视哪个牌子质量好?
ctrl键无响应是什么原因?ctrl键无响应怎么办?
怎么用电脑打电话?电脑打电话没声音是怎么回事?
手机进水了怎么处理比较好?手机进水了放什么歌可以把水震出来?
csv文件用什么打开?csv文件打开乱码的解决方法
环球快消息!将Windows系统设置为NTP服务器
全球快看:38999元 雷蛇灵刃18游戏本上架:13代i9+RTX 4090
世界球精选!《雷霆沙赞:众神之怒》国内定档3月17日:与北美同步上映
李书福是懂借壳上市的 吉利旗下跑车“路特斯”赴美上市
女子手机不慎落入西湖 “打捞神器”只用30秒捞出
可惜了!《泰坦陨落》还有未公布的单机版游戏 现已被EA砍掉
vmware时间不同步问题
全球热讯:真爱粉!网友凌晨4点花1万多下单三星Galaxy S23 Ultra:直言“早买早享受”
【当前独家】比亚迪元PLUS夺得极寒续航达率成第一 城市高达74.2%
当前短讯!鱼跃血氧仪涨价131%被罚270万!消费者能退差价?客服回应
实时焦点:连点五次才能关:微软全屏通知强推Win11
3D模型 | 回旋火箭弹乐园教程之火箭 有手就会的火箭弹教程,超详细>>
环球快讯:读Java8函数式编程笔记08_测试、调试和重构
世界滚动:18英寸大屏+RTX 40系显卡!ROG枪神7 Plus超竞版图赏
车主注意!明天油价又要调整 加满一箱油可能多花11元
天天新消息丨万元机皇!三星Galaxy S23 Ultra真机图赏
一度濒临破产倒闭!李书福4亿救活的跑车公司:作价364亿上市
Meta搞元宇宙太烧钱 一年亏掉900多亿 CEO被炮轰搞垮公司
三星Galaxy S23/S23+/S23 Ultra有何区别?一文了解
韩国1500年历史的木简刻有生僻汉字引围观:画面让国内网友看尬
世界快资讯丨iPhone 15 Ultra/16 Ultra独占潜望长焦:Pro版本也不香了
环球微动态丨QPython实例02-调用其他app实例