热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

你应该把代码重构当成你的编程习惯

写代码,这个是每个程序员(无论是菜鸟,还是大牛)都会的技能和几乎每天都做的事,如同厨师会炒菜、民工会码砖一样。虽然都会,但看其代码就可以大概知道此人技术咋样,最起码可以看出其代码写的好与差。——好的代码就像是好的文章,让人一看就感觉:思路清晰,作用明确,实现简洁,所以说写代码是门艺术,想成为高级程序员就必须掌握好这门艺

写代码,这个是每个程序员(无论是菜鸟,还是大牛)都会的技能和几乎每天都做的事,如同厨师会炒菜、民工会码砖一样。虽然都会,但看其代码就可以大概知道此人技术咋样,最起码可以看出其代码写的好与差。——好的代码就像是好的文章,让人一看就感觉:思路清晰,作用明确,实现简洁,所以说写代码是门艺术,想成为高级程序员就必须掌握好这门艺术。此文要跟大家分享的就是我对练好这门艺术的核心技能:"代码重构"的看法!

“代码重构”并不是像算法那样深奥,需要你有相应的“硬件”(数学等方面知识)支撑,是你从开始学习编程就可以也应该锻炼的技能,这也就是我此文想要说的核心:将代码重构成为一种习惯。

是的,你需要把代码重构培养成为一种习惯,因为只有这样,你才会将代码重构融入到你写的每段代码中,并且会认为就应该如此做。看到公司做开发的同事写的代码,感觉一方面是编码风格上不同、有点儿各树一帜——公司在开发上不是没有规范,而是大家没有把规范落实、去遵行,更况且规范比较粗略,这就导致在看或维护别人写的代码时,经常会感觉跟自己的编码风格差异比较大,阅读起来比较费劲,甚至头疼、有想抓狂的冲动。规范对于团队开发相当重要也是必须的,要不然也不会有很多大公司(像华为)都有自己比较严格和细致的开发规范,其作用也毋庸置疑:能提高团队开发的效率,确保编码风格上的一致性,降低维护的成本……——想想看,当一个团队中大家都遵行规范,这个规范可以小到类名或变量名的命名规范,也可以大到模块文件夹目录结构,如规定:全局变量统一以'_'开头,模块对外提供的服务类,都统一放在service文件夹下...,如此这样你在看别人写的代码,就跟看自己写的代码一样(如果规范粒度越细,其相似度就越高,可能就难分你我了),也能比较方便快速的看懂代码的意图和找到需要的类或方法。另一方面,“代码重构”做的并不够好,即使是经验比较丰富的程序员,其代码中充斥着一些重复的代码段,为此在开会时我提出我们应该注意“代码重构”,并询问他们对其看法,其答复基本上是:开发时时间比较紧,不想花那点儿时间去进行“代码重构”。然后,我就问“那样是不是导致你们在维护自己的代码时,连自己都会感觉头大和费时间”,他们的回答是肯定的。其实,不想去做“代码重构”的编码,在以后维护中,你会花更多的时间去做当时用个一两分钟就可以搞定的事,而当你把"代码重构养成一种习惯"后,"代码重构"就不再是你认为的"额外的事",你会很自然也感觉必须要这样做

“代码重构”并不是说你对设计模式比较熟悉才可以,因为不少程序员可能熟知各种设计或开发模式,但并没有认识到“代码重构”的重要性,也更没有将其成为一种习惯。就我自己而言,虽然我对设计模式知道的很少,也不会“得心应手”的去使用,但我一直(大概是工作一年后到现在)以“确保自己写的代码里没有重复的代码段”这个基本原则规范自己的编码,也同时要求和提醒着自己:要保证每行代码或每个变量都有意义,没有多余的,并保持每行代码都不可随意改变顺序以呈现编码思路的清晰逻辑

最后,我想说的是:你应该在工作中多想和考虑,如:如何让自己的代码写的让别人用起来简单易用,不要只会“写代码”,也更不要盲目的追求技术上的狂热将代码写的生涩难懂,增加了复杂度,好的代码应该是:简洁高效的实现。程序员,其实你可以做的更好!

本文地址:http://www.nowamagic.net/librarys/veda/detail/1619,欢迎访问原出处。


推荐阅读
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 垂直泊车路径设计
    本文探讨了垂直泊车路径的设计原理与实现方法。垂直泊车是指汽车从特定位置出发,经过一系列横向和纵向移动,最终达到与车位垂直停放的状态。路径设计旨在确保泊车过程既高效又安全。 ... [详细]
  • 本文探讨了在不同场景下如何高效且安全地存储Token,包括使用定时器刷新、数据库存储等方法,并针对个人开发者与第三方服务平台的不同需求提供了具体建议。 ... [详细]
  • This article explores the process of integrating Promises into Ext Ajax calls for a more functional programming approach, along with detailed steps on testing these asynchronous operations. ... [详细]
  • 深入理解MongoDB的SCRAM-SHA-1认证流程
    本文详细解析了MongoDB的SCRAM-SHA-1认证机制的具体步骤,旨在帮助读者深入了解这一安全认证方法的工作原理及其在实际应用中的重要性。 ... [详细]
  • Web开发实践:创建连连看小游戏
    本文详细介绍了如何在Web环境中开发一款连连看小游戏,适合初学者和技术爱好者参考。通过本文,您将了解游戏的基本结构、连线算法以及实现方法。 ... [详细]
  • 本文介绍了如何通过 ADB 命令行工具启动和停止 Android 应用。通过简单的命令,您可以轻松地控制设备上的应用运行状态。 ... [详细]
  • 本文介绍了如何使用jQuery获取浏览器窗口的可视区域高度、文档的整体高度以及宽度等关键尺寸信息,包括边界、填充和边距在内的完整尺寸。 ... [详细]
  • SPFA算法详解与应用
    当图中包含负权边时,传统的最短路径算法如Dijkstra不再适用,而Bellman-Ford算法虽然能解决问题,但其时间复杂度过高。SPFA算法作为一种改进的Bellman-Ford算法,能够在多数情况下提供更高效的解决方案。本文将详细介绍SPFA算法的原理、实现步骤及其应用场景。 ... [详细]
  • 本文详细介绍了Socket在Linux内核中的实现机制,包括基本的Socket结构、协议操作集以及不同协议下的具体实现。通过这些内容,读者可以更好地理解Socket的工作原理。 ... [详细]
  • 探索CNN的可视化技术
    神经网络的可视化在理论学习与实践应用中扮演着至关重要的角色。本文深入探讨了三种有效的CNN(卷积神经网络)可视化方法,旨在帮助读者更好地理解和优化模型。 ... [详细]
  • 我整理了HMOV四大5G旗舰的参数,可依然没能拯救我的选择困难症
    伊瓢茕茕发自凹非寺量子位报道|公众号QbitAI报道了那么多发布会,依然无法选出要换的第一部5G手机。这不,随着华为P40系列发布,目前国 ... [详细]
  • 最优化算法与matlab应用3:最速下降法
    最优化算法与matlab应用3:最速下降法最速下降法是一种沿着N维目标函数的负梯度方向搜索最小值的方法。(1)算法原理函数的负梯度表示如下:搜索步长可调整ak,通常记为(第k次迭代 ... [详细]
  • 本文探讨了在 Python 2.7 环境下,如何有效地对大量数据(如几百 KB 的字符串)进行加密和压缩,并确保能够准确无误地解密回原始数据。 ... [详细]
  • ACM经典书籍推荐
    本文介绍了几本在算法和计算机科学领域具有重要影响力的书籍,包括由Donald E. Knuth编著的《计算机程序设计艺术》第一卷,以及潘氏兄弟的数论经典教材等。这些书籍不仅是学习相关领域的宝贵资源,也是专业人士不可或缺的参考书。 ... [详细]
author-avatar
臻艾龙522_292
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有