搜索
首页Javajava教程成为更好的编码员:提示

Become a Better Coder: Tips

网上流传着无数的 Python 最佳实践,对每个最佳实践的看法可能会因你询问的人而异。互联网使专业知识民主化,允许任何人——包括我自己——分享他们的观点。然而,在本文中,我们将重点关注 10 个永恒的 Python 最佳实践,这些实践已获得广泛共识并被广泛认为是基础。

Pandas 备忘单

Git 命令备忘单

前 50 个 SQL 面试问题

提示 1:函数应指定参数和返回类型
定义函数时,您希望始终指定参数的类型以及函数返回的数据类型。这将帮助您和团队中的开发人员知道会发生什么,而不必总是使用打印语句来获得直观的理解。

提示 2:函数应该处于同一抽象级别
当我们谈论处于同一抽象级别的函数时,我们指的是函数应该执行单个、定义良好的任务的想法。该任务在整个功能中应该处于一致的抽象级别。换句话说,函数应该专注于特定级别的细节或复杂性,并且所有函数的操作都应该在同一级别上运行。

技巧 3:函数应该很小
函数应该是可重用的。而且函数越大,可重用的可能性就越小。这也与为什么一个函数应该只做一件事相关。如果它只做一件事,那么它很可能会很小。

技巧4:开闭原则
开闭原则 (OCP) 规定类、方法或函数必须对扩展开放,但不能对修改开放。这意味着定义的任何类、方法或函数都可以轻松地重用或扩展用于多个实例,而无需更改其代码。
这不符合 OCP,因为每当有一个新的国家时,我们就需要编写一个新的 if 语句来补充它。现在这可能看起来很简单,但想象一下我们有 100 个或更多的国家/地区需要考虑。看起来怎么样?

提示 5:不惜一切代价避免发表评论
评论有一种虚假的真实性。它们将读者的注意力从代码实际执行的操作转移到其他人所说的执行的操作上。

随着时间的推移以及代码收到更新或更改,这可能会变得非常成问题。在某些时候,评论会变成谎言,现在每个人都必须通过谎言的镜头来观察真相。

必须不惜一切代价避免发表评论。评论迫使读者继承你的想法,而你的想法充其量只是过去的。当函数或类更改时,它的注释很可能不会随之更改。最有可能的是,它们阻碍了读者向前思考。

注释表明作者精神上无法提供描述性良好的类、函数或变量名称。它暴露了程序员平庸的态度,并迫使团队继承这样的态度。

提示 6:避免使用幻数
幻数是一个硬编码值,可能会在稍后阶段发生变化,但因此很难更新。

例如,假设您有一个页面在“您的订单”概览页面中显示最后 50 个订单。 50 是这里的神奇数字,因为它不是通过标准或约定设置的,它是您出于规范中概述的原因而编造的数字。

现在,您要做的就是在不同的地方拥有这 50 个订单 - 您的 SQL 脚本(从订单中选择前 50 个 *)、您的网站(您的最后 50 个订单)、您的订单登录信息(对于 (i = 0; i

提示 7:避免深层嵌套
限制循环、条件或函数内的嵌套级别以提高可读性。

提示 8:避免硬编码路径
避免对文件路径或 URL 进行硬编码;请改用配置文件或环境变量。

提示9:小班授课
是的!班级规模应尽可能小。就像函数一样。

唯一的区别是,在函数中,大小由该函数中的行数决定,而在类中,大小由该类中的职责数量决定。

通常,类名代表它可能拥有的职责类型,但是当名称不明确或过于笼统时,很可能我们赋予了它太多的职责。

这让我们回到了 SRP(单一责任原则),它规定一个类应该只有一个理由——一个责任——来改变。

提示 10:避免复杂的三元表达式
避免使用过于复杂的三元表达式;优先考虑可读性而不是简洁性,以使代码更容易理解。

以上是成为更好的编码员:提示的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
2025年的前4个JavaScript框架:React,Angular,Vue,Svelte2025年的前4个JavaScript框架:React,Angular,Vue,SvelteMar 07, 2025 pm 06:09 PM

本文分析了2025年的前四个JavaScript框架(React,Angular,Vue,Susve),比较了它们的性能,可伸缩性和未来前景。 尽管由于强大的社区和生态系统,所有这些都保持占主导地位,但它们的相对人口

Spring Boot Snakeyaml 2.0 CVE-2022-1471问题已修复Spring Boot Snakeyaml 2.0 CVE-2022-1471问题已修复Mar 07, 2025 pm 05:52 PM

本文介绍了SnakeyAml中的CVE-2022-1471漏洞,这是一个允许远程代码执行的关键缺陷。 它详细介绍了如何升级春季启动应用程序到Snakeyaml 1.33或更高版本的降低风险,强调了依赖性更新

如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?Mar 17, 2025 pm 05:44 PM

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

Java的类负载机制如何起作用,包括不同的类载荷及其委托模型?Java的类负载机制如何起作用,包括不同的类载荷及其委托模型?Mar 17, 2025 pm 05:35 PM

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA

Node.js 20:关键性能提升和新功能Node.js 20:关键性能提升和新功能Mar 07, 2025 pm 06:12 PM

Node.js 20通过V8发动机改进可显着提高性能,特别是更快的垃圾收集和I/O。 新功能包括更好的WebSembly支持和精制的调试工具,提高开发人员的生产率和应用速度。

冰山:数据湖桌的未来冰山:数据湖桌的未来Mar 07, 2025 pm 06:31 PM

冰山是用于大型分析数据集的开放式桌子格式,可提高数据湖的性能和可伸缩性。 它通过内部元数据管理解决了镶木quet/orc的局限

如何共享黄瓜中的步骤之间的数据如何共享黄瓜中的步骤之间的数据Mar 07, 2025 pm 05:55 PM

本文探讨了在黄瓜步骤之间共享数据的方法,比较方案上下文,全局变量,参数传递和数据结构。 它强调可维护性的最佳实践,包括简洁的上下文使用,描述性

如何在Java中实施功能编程技术?如何在Java中实施功能编程技术?Mar 11, 2025 pm 05:51 PM

本文使用lambda表达式,流API,方法参考和可选探索将功能编程集成到Java中。 它突出显示了通过简洁性和不变性改善代码可读性和可维护性等好处

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版