热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

怎样提高代码重用性

代码重用性是开发人员经常提起的问题。但是到实际项目中,很多人并不知道怎么落地。本文介绍一些方法,可以帮助你编写可重用的代码,节省宝贵时间。一、项目开始前,要有个正确的规划   

"代码重用性"是开发人员经常提起的问题。 但是到实际项目中,很多人并不知道怎么落地。
本文介绍一些方法,可以帮助你编写可重用的代码,节省宝贵时间。


一、 项目开始前,要有个正确的规划

       在开始正式编码前,召集团队成员,规划应用程序所有的需求,并按照水平方向分层,垂直方向模块化的方式来划分。
 
       例如 —— 考虑一个需要数据模型、数据库、组件控制器和视图的应用程序。 所有这些单元都应该以同样一种方式开发,通过有效的分层,降低层与层之间的依赖。比较简单的【表现层/业务层/数据持久层】的分法可以借鉴。 这些分层可能是团队里不同人员负责的,好的分层方式,有助于将来的升级维护, 技术邻域常说的低耦合设计方式,就是这样的道理。  

       高耦合的极端例子, 就是oracle版本升级的时候,一个简单的bug,都需要非常专业的技术人员测试修改2周。 可见高耦合系统,在系统升级维护上,造成巨大的成本支出。


   
二、创建通用的功能函数类库UtilityClass

       这些类库应该是跟项目本身无关, 可以直接在其他项目中使用。例如
       所有日期字符串格式方法;
       Html 错误代码检测和错误信息;
       电子邮件验证; 
       日期格式;
       图像压缩;
       图像转换(png-jpg 或反之亦然);
       图片下载;
       Excel处理;
       文件格式转换;

       可被抽象的, 在多个项目中,无差别使用的功能,都应该添加到通用类库UtilityClass中。
  


三、 尽力避免复制粘贴代码片段

       初级开发人员经常将代码片段从一个模型复制到另一个模型,而没有为它创建一个单独的公共类 。 当需要更改任何逻辑或要添加新代码时,需要在所有其他地方进行更新。 

       任何一组代码至少需要两次,你应该为其制定一个方法,一堆相似的功能或相同用途的功能放在一个新的类中, 一堆没有任何依赖性的类构成了一个包或可重用的库。  当然初级开发人员可能是因为抽象能力弱,或者是图前期的省事,大量复制粘贴代码片段,造成后面系统维护困难的局面。



四、将一个复杂的过程拆分成几个简单的过程


        拆解后,每个简单的过程,都有比较明确的职能。  这样简单的过程具有很好地重用性,而不是仅服务于一处代码。
         假设您需要解析一个 json 文件,选取一个出生日期并计算年龄。 这个任务非常小,以至于人们在大多数情况下都希望用一种方法编写整个任务。 实际上你应该分两步来完成,
        解析 json 并从中创建一个模型对象, 然后传递给另外一个方法,该方法用于计算年份中两个日期之间的差异,得出年龄。  看似琐碎的拆分,我们得到了2个可重用的过程,解析模型过程,
计算年龄过程。 大部分初级人员需要养成正确拆解复杂过程的良好习惯。


  
   
五、做一个思想勤快,四肢懒惰的程序员


        资深的技术会建议大家做一个思想勤快,四肢懒惰的程序员,一生不要写两次类似的代码。 不断提高抽象思维能力,以跨项目有用的方式编写代码/方法。


    
    通过上面的介绍,大家对如何提高代码重用性应该有了不错的了解。  

    当然想要在代码重用性层面上,有更进一步的造诣,需要更深入的研究, 比较好的方向就是借鉴低代码编程

     低代码编程的整个设计思想,把代码重用性推向了极致。  组件、元素、单页、权限、事务、前后端函数等都是跨项目重用的。

     原来认为无法抽象的业务层, 通过无结构系统设计的思路,在线配置也完成了重用。
   
     深奥的内容,不适合于普通的技术人员,这里就不展开讲, 欢迎资深的技术人员私信探讨。



推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文介绍如何使用 Python 提取和替换 .docx 文件中的图片。.docx 文件本质上是压缩文件,通过解压可以访问其中的图片资源。此外,我们还将探讨使用第三方库 docx 的方法来简化这一过程。 ... [详细]
  • 帝国CMS多图上传插件详解及使用指南
    本文介绍了一款用于帝国CMS的多图上传插件,该插件通过Flash技术实现批量图片上传功能,显著提升了多图上传效率。文章详细说明了插件的安装、配置和使用方法。 ... [详细]
  • 最近团队在部署DLP,作为一个技术人员对于黑盒看不到的地方还是充满了好奇心。多次咨询乙方人员DLP的算法原理是什么,他们都以商业秘密为由避而不谈,不得已只能自己查资料学习,于是有了下面的浅见。身为甲方,虽然不需要开发DLP产品,但是也有必要弄明白DLP基本的原理。俗话说工欲善其事必先利其器,只有在懂这个工具的原理之后才能更加灵活地使用这个工具,即使出现意外情况也能快速排错,越接近底层,越接近真相。根据DLP的实际用途,本文将DLP检测分为2部分,泄露关键字检测和近似重复文档检测。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
author-avatar
sunhuan
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有