《重构之美》-开篇

简介:

关于代码的重构,已经是老调常弹。自Martin Fowler《重构》一书横空出世,到如今已有十年光景,对于重构,许多程序员已经耳熟能详。然而,每当我们面对项目压力时,常常会将重构置之脑后,抛到九霄云外。理由足够充分,言之凿凿:功能还未完成,何谈重构?究其原因,是因为我们还未将重构当做习惯。即便现在的许多IDE已经支持自动完成常见的重构手法,我们仍然会忘记,仍然会忽略。只因重构不能直接产生价值,只因我们还没有看清重构之美。

本专栏试图重新擎起重构的大旗,为改善既有代码的设计,使重构深入人心,来一次“歇斯底里”的鼓吹与呐喊。重构并非微不足道的小事,若人人皆能学会运用重构之利器,或许,开发人员的生存环境就会变得美好。美的代码,美的结构,美的设计,总是那样的赏心悦目。我们向往美好的环境,这是天性使然;那么,为何我们不能营造美好的代码环境?

如何呈现重构之美?关键在于发现丑陋而不堪忍受。对丑的憎恶实则是一种强悍的驱动力,它会驱使你运用重构,直到重构变成如呼吸一般自然而不可缺失。重构无需专门的阶段,随时随地皆可进行。经常的重构可以保证代码常拭常新,如利刃一般锋利。Andy Hunt与David Thomas的名著《程序员修炼之道》提到了著名的“破窗户理论”。 破窗户代表低劣的设计、错误的决策或是糟糕的代码。他们认为“不要容忍破窗户(Don’t live with Broken Windows)”,需要及时修理。同样是Andy Hunt的著作Practices of an Agile Developer,在讲到高效编程的好习惯时,认为“要投入时间和精力保持代码的整洁、敞亮。”Hunt的切身感受是“在项目中,代码应该是亮堂的,不应该有黑暗死角。”

诚哉斯言!







本文转自wayfarer51CTO博客,原文链接:http://blog.51cto.com/wayfarer/440202,如需转载请自行联系原作者

相关文章
|
计算机视觉 iOS开发 MacOS
Alfred Clipboard History 回车自动粘贴失效
Alfred Clipboard History 回车自动粘贴失效
1871 0
Alfred Clipboard History 回车自动粘贴失效
|
微服务 设计模式 测试技术
深入理解 DDD(领域驱动设计)思想
领域驱动设计(DDD)是一种以业务为核心的软件开发方法,通过限界上下文、聚合、实体、值对象等模型,分离业务与技术复杂性,提升系统可维护性与扩展性,尤其适用于复杂业务系统的架构设计。
742 0
|
存储 Linux C语言
Linux C/C++之IO多路复用(aio)
这篇文章介绍了Linux中IO多路复用技术epoll和异步IO技术aio的区别、执行过程、编程模型以及具体的编程实现方式。
630 1
Linux C/C++之IO多路复用(aio)
|
12月前
|
供应链 搜索推荐 安全
唯品会Vip商品详情 API 接口:开发应用与收益深度剖析
唯品会Vip商品详情API接口,作为电商数据交互的枢纽,提供详尽的商品信息与动态数据,助力开发者、商家及市场分析者洞察市场趋势、优化商品推荐、提升用户体验,从而实现销售额增长、利润空间拓展及用户忠诚度加固,推动电商行业创新发展。
553 16
|
机器学习/深度学习 移动开发 自然语言处理
大模型Prompt-Tuning技术入门(二)
Prompt-Tuning是一种在大型语言模型中进行下游任务适配的技术,起源于GPT-3的In-context Learning和Demonstration Learning。它通过构建Prompt(提示)和Verbalizer(标签映射)来转换任务,比如将分类任务转化为填空问题。PET模型是Prompt-Tuning的早期实践,通过固定模板(Pattern)和标签词(Verbalizer)来实现。Prompt-Oriented Fine-Tuning是Prompt-Tuning的一种形式,将任务转换为与预训练任务相似的形式,如BERT的MLM任务。
|
10月前
|
Arthas 监控 Java
记一次内存利用率问题排查
记一次内存利用率问题排查
|
存储 中间件 API
ThinkPHP 集成 jwt 技术 token 验证
本文介绍了在ThinkPHP框架中集成JWT技术进行token验证的流程,包括安装JWT扩展、创建Token服务类、编写中间件进行Token校验、配置路由中间件以及测试Token验证的步骤和代码示例。
ThinkPHP 集成 jwt 技术 token 验证
|
达摩院 供应链 调度
【FlowShop流水线作业排班问题【数学规划的应用(含代码)】阿里达摩院MindOpt】
本文探讨了使用阿里巴巴达摩院的MindOpt工具解决FlowShop流水线作业排班的数学规划问题。FlowShop涉及到多台机器、多个工序和多个作业,目标是通过优化排班最小化总生产耗时。MindOpt通过数学规划方法,如线性或混合整数线性规划,将问题建模并转化为代码,利用云建模平台MindOpt Studio和MindOpt APL建模语言进行求解。案例中详细介绍了参数定义、变量解析、约束设置和目标函数,展示了如何通过MindOpt进行建模和求解,以达到最优化的生产调度。此外,文章还提供了代码示例和结果解析,帮助读者理解如何实际应用MindOpt解决这类问题。
|
机器学习/深度学习 自然语言处理 算法
大模型Prompt-Tuning技术入门(一)
Prompt-Tuning是NLP领域的新兴技术,旨在减少预训练模型Fine-Tuning的需要。它通过构造提示(Prompt)使预训练模型能适应各种任务,降低了语义偏差和过拟合风险。Prompt作为任务的“提示词”,可以是人工定义、自动搜索或生成的模板,与预训练的MLM头结合使用,只需少量甚至无标注数据,通过标签词映射进行预测。此方法从GPT-3的In-Context Learning发展至今,包括了连续Prompt、大规模模型的Instruction-tuning和Chain-of-Thought等进展。 Prompt-Tuning是向少监督、无监督学习迈进的关键研究。
|
JavaScript
【vue】 Tinymce 富文本编辑器 不想让上传的图片转换成base64,而是链接
【vue】 Tinymce 富文本编辑器 不想让上传的图片转换成base64,而是链接
834 0