到底什么样的代码才算的上优秀?
❝ 你这个周写的代码比上个周有进步,你这个月写的代码比上月有进步,你今年写的代码比去年有进步。 我认为,你应该就写出了基于当时来说,最好的代码。
可行性
❝ 如果程序根本无法正常运转,对其效率、适应性及生产成本的评估就毫无意义。无论如何,我们需要务实一些,需要承认:也许根本没有哪个完美的程序曾经被写出来过。每一个真正大型和重要的程序都必然包含很多个纰漏。所以对程序进行评估时,必须考虑到其不完美的一面。
按时性
适应性 & 效率
❝ 在软件生命周期内,多数程序都会被修改,无论其经验的多少,绝少有哪位程序员能反驳这一论断。既然如此,为什么在必须修改以前的程序时,我们总是觉得这项任务如此艰巨,以至于往往决定弃之不用,干脆自己从头写起呢?只要阅读过程序,我们就会透过这些程序发现:实际上,很少有哪位原作者会考虑可能的后续修改。
❝ 在编写程序时,你曾经有多少次想到过它在未来可能被别人修改?反过来,在修改别人程序时,你又曾经咒骂够几回?
❝ Fisher定理:一个系统对某一特定环境适应性越强,它适应新环境的能力也就越弱。
❝ 如果强调的是程序的效率,那么我们往往会追求紧密式的代码,而如果在未来要对这些代码进行修改,那将会非常棘手。如果使用的是更高层的语言,那么为了使程序更高效,我们往往需要深入到机器语言层。这种做法至少抵消了原本用更高层语言编程的一个好处 —— 在不同机器之间的可移植性。其实际效果是,我们将被局限于特定的某台计算机或特定的某个实现。
❝ 运行效率正在成为计算中一个日益不明朗的问题,随着单位计算能力成本的逐年下降,以及单位程序开发成本的不断提高,在程序开发方面比在产品方面投资更多的典型做法,早已不合时宜。因此我们期望,随着岁月的推移,我们听到的关于效率的言论将会越来越少。
❝ 你是否曾经因为追求效率而延误了工作进度?反过来,是否曾经因为要赶时间完成而没有做到尽善尽美?
可读性:代码应该易于理解,命名规范,结构清晰,有适当的注释。 简洁性:代码简洁,没有冗余的部分,避免过度复杂的逻辑。 可维护性:代码结构合理,模块化,便于后续的维护和升级。 可扩展性:代码设计灵活,能够容易地添加新功能或修改现有功能。 健壮性:代码能够处理异常情况,有错误处理机制,不会因为意外输入而崩溃。 性能:代码运行效率高,优化了性能瓶颈,不会无谓地消耗系统资源。 安全性:代码考虑了安全性,没有安全漏洞,如SQL注入、跨站脚本攻击等。 遵循规范:代码遵循了编程语言和项目特定的编码规范和最佳实践。 文档齐全:有完整的文档,包括代码注释、API文档、用户手册等。 测试覆盖:有充分的单元测试和集成测试,确保代码的正确性和稳定性。 可重用性:代码中的函数或类具有良好的封装性,便于在其他项目中重用。 版本控制:代码使用版本控制系统进行管理,如Git,便于追踪变更和协作。 持续集成/持续部署:代码集成了CI/CD流程,可以自动化测试和部署。 用户友好:如果代码是用户交互软件的一部分,那么它应该提供良好的用户体验。 可移植性:代码能够在不同的环境或平台上运行,没有硬编码的依赖。 注释质量:代码注释应该清晰、准确,能够解释代码的意图和复杂逻辑。 适当的复杂度:代码的复杂度应该适中,既不过于简单也不过于复杂,符合问题域的需要。 依赖管理:代码的外部依赖应该被明确管理,并且保持更新,避免安全漏洞。 资源管理:代码应该正确管理资源,如内存、文件句柄、数据库连接等,避免泄露。 代码审查:代码经过同行审查,以发现并修复潜在的问题。
如喜欢本文,请点击右上角,把文章分享到朋友圈
如有想了解学习的技术点,请留言给若飞安排分享
因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享
·END·
相关阅读:
一张图看懂微服务架构路线 基于Spring Cloud的微服务架构分析 微服务等于Spring Cloud?了解微服务架构和框架 如何构建基于 DDD 领域驱动的微服务? 微服务架构实施原理详解 微服务的简介和技术栈 微服务场景下的数据一致性解决方案 设计一个容错的微服务架构
作者:唐子玄
来源:juejin.cn/post/6844903886264729607
版权申明:内容来源网络,仅供学习研究,版权归原创者所有。如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!
我们都是架构师!
关注架构师(JiaGouX),添加“星标”
获取每天技术干货,一起成为牛逼架构师
技术群请加若飞:1321113940 进架构师群
投稿、合作、版权等邮箱:admin@137x.com