`
suifeng
  • 浏览: 181495 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

编程元素---代码(重构==对代码进行编程)

阅读更多

前言

最近在思考编程的元素有那些,想了很多:如变量,运算符,函数,类等等,今天在重构newniu ETL时突然想到代码也是编程元素.

 

代码

今天在重构代码, 发现代码里面有很多重复的, 尤其是那种遍历的, 在ETL过程中都涉及遍历, 每种ETL都定义了一个存储过程来处理.

重构前

存储过程:初始ETL

从 etl_etls表中查询出需要"初始ETL"的etl
loop 1..ROW_COUNT then
    1, 拼接初始抽取sql
    2, 执行sql
end loop;


存储过程:增量1ETL
从 etl_etls表中查询出需要"增量1ETL"的etl
loop 1..ROW_COUNT then
    1, 拼接增量1ETLsql
    2, 执行sql
end loop;


存储过程:增量2ETL
从 etl_etls表中查询出需要"增量2ETL"的etl
loop 1..ROW_COUNT then
    1, 拼接增量2ETLsql
    2, 执行sql
end loop;


存储过程:变更1ETL
从 etl_etls表中查询出需要"变更1ETL"的etl
loop 1..ROW_COUNT then
    1, 拼接变更1ETLsql
    2, 执行sql
end loop;


存储过程:变更2ETL
从 etl_etls表中查询出需要"变更2ETL"的etl
loop 1..ROW_COUNT then
    1, 拼接变更2ETLsql
    2, 执行sql
end loop;

 

重构后

 

 

存储过程:生成etl的SQL

从 etl_etls表中查询出需要"初始抽取"的etl
loop 1..ROW_COUNT then
    1, 拼接初始抽取sql
    2, 把sql插入 ETL_SQL_CODES
end loop;


从 etl_etls表中查询出需要"增量1ETL"的etl
loop 1..ROW_COUNT then
    1, 拼接增量1ETLsql
    2, 把sql插入 ETL_SQL_CODES
end loop;

从 etl_etls表中查询出需要"增量2ETL"的etl
loop 1..ROW_COUNT then
    1, 拼接增量2ETLsql
    2, 把sql插入 ETL_SQL_CODES
end loop;


从 etl_etls表中查询出需要"变更1ETL"的etl
loop 1..ROW_COUNT then
    1, 拼接变更1ETLsql
    2, 把sql插入 ETL_SQL_CODES
end loop;

从 etl_etls表中查询出需要"变更2ETL"的etl
loop 1..ROW_COUNT then
    1, 拼接变更2ETLsql
    2, 把sql插入 ETL_SQL_CODES
end loop;




存储过程:ETL_BY(ETL类型名)

按 类型名 从 etl_sql_codes表中查询出代码  
loop 1..ROW_COUNT then
    1, 执行ETL SQL 代码
end loop;

 

对比

1, 性能提升:重构前每次都要拼接SQL, 重构后只需拼接一次

2, 重构前有5个存储过程, 重构后只有2个

3, 外部调用也方便多了, 只要改变参数, 就可以改变ELT类型

 

结论

重构就是对代码进行编程.

分享到:
评论

相关推荐

    商业编程-源码-视图分割源代码 sizing_tabctrl_bar.zip

    【标题】"商业编程-源码-视图分割源代码 sizing_tabctrl_bar.zip" 提供的是一个关于视图分割功能的源代码实现,主要聚焦在使用 Tab 控件进行界面布局的优化。在软件开发中,视图分割是常见的功能,它允许用户自定义...

    一本介绍如何将现有的 Java 代码重构为 Kotlin 代码的书籍

    综上所述,《从Java到Kotlin:重构指南》是一本非常适合Java开发者学习Kotlin并进行代码重构的专业书籍。它不仅提供了丰富的理论知识,还有大量的实践案例供读者参考,是从事软件开发工作的专业人士不可多得的宝贵...

    告诉你什么是优雅的设计(2)--------重构EasyMonitor

    3. **面向接口编程**:定义清晰的接口,隐藏实现细节,可以增加代码的灵活性,便于更换或扩展实现。例如,EasyMonitor可能有数据收集器接口,不同的数据来源可以实现这个接口。 4. **代码整洁**:遵循良好的编码...

    swift-iOS高度封装自适应表单(重构版)

    8. **重构**:作为“重构版”,该项目很可能对原有的代码进行了优化,提升了性能,修复了已知问题,并改进了API设计,使其更加易用。 通过深入研究"SWForm-master"中的源代码,开发者可以学习到如何高效地构建和...

    经典书籍------代码大全

    这些基础但至关重要的元素是构建高质量代码的基石。作者可能还会讨论如何编写清晰、简洁的代码结构,以及避免过度复杂性,以提高代码的可维护性和可扩展性。 接下来的五章(cc6-10.pdf)可能会涉及程序设计方法论,...

    一本代码重构的书让代码更简洁

    《重构:改善既有代码的设计》是一本由Martin Fowler所著的经典书籍,专注于讲解如何通过重构技术来提升代码质量,使其更具可读性、可维护性和扩展性。在Java编程领域,重构是提升软件开发效率和降低维护成本的重要...

    精彩编程与编程技巧-暂时禁止窗口更新...

    - **代码重构**:定期重构代码以提高其可读性和可维护性。 - **自动化测试**:编写单元测试和集成测试,确保代码的稳定性和可靠性。 ### 4. **精彩编程与编程技巧** #### 4.1 提高编程效率 - **代码复用**:重复...

    代码重构-以贪吃蛇为示例(四)-继续封装

    在本篇博客“代码重构-以贪吃蛇为示例(四)-继续封装”中,作者通过实现贪吃蛇游戏来阐述代码重构的重要性和具体实践。贪吃蛇游戏是许多程序员学习编程时的入门项目,它包含了基本的逻辑控制、用户输入处理以及游戏...

    C# 游戏编程实例---基于.net框架

    开发者需要创建二维数组来表示游戏盘面,用图像资源表示游戏元素,通过鼠标点击事件触发匹配检查,最后运用查找算法(如深度优先搜索或广度优先搜索)来确定可消除的元素对。 潜艇大战则涉及到更复杂的游戏逻辑和...

    商业源码-编程源码-Blue Magic Board v5.1.zip

    源码文件通常包含类、函数、变量声明、条件语句、循环结构等编程元素,它们按照一定的逻辑组织,共同实现预定的功能。源码通过编译器或解释器转换为机器语言,然后可以在计算机上运行。 Blue Magic Board v5.1可能...

    HTML-CSS-Git-挑战代码重构

    "挑战代码重构"通常是指对现有代码进行优化,以提高其可读性、性能或可维护性,而不改变其外部行为。重构可能涉及提取函数、使用更合适的数据结构、消除冗余代码,或者将复杂逻辑分解为更小的、可复用的部分。在HTML...

    AO-Homework01-CodeRefactor:代码重构作业

    描述非常简洁,只提到“代码重构作业”,这可能意味着参与者需要对给定的代码进行分析,并提出改进方案。在重构过程中,开发者通常会关注消除重复代码、改善函数和类的设计、优化数据结构以及调整控制流程等。 标签...

    几种常见的稀疏重构算法代码.rar_FOCUSS重构_Focuss算法_focuss稀疏重构_压缩感知算法_稀疏重构

    这些代码可能包括不同编程语言版本(如Python、MATLAB等),并且可能包含对不同数据类型和问题规模的处理,以便适应各种实际应用场景。 除了FOCUSS,还有其他稀疏重构算法,如OMP(Orthogonal Matching Pursuit)、...

    Python技术如何进行代码重构.docx

    ### Python技术进行代码重构的关键知识点 #### 一、提取函数和方法 - **定义与作用**:在Python中,可以通过`def`关键字定义函数,通过`class`关键字定义方法。提取函数和方法的主要目的是减少代码冗余,提高代码...

    重构-改善既有代码的设计_简体中文

    ### 重构 - 改善既有代码的设计 #### 知识点概述 《重构 - 改善既有代码的设计》是一本经典的软件工程书籍,由著名软件架构师Martin Fowler撰写。本书详细介绍了通过一系列小规模的代码改进操作(即重构),来逐步...

    C++编程思想-中文pdf文档

    - **代码重构**: 定期重构代码以提高可读性和性能。 ### 结论 C++作为一种强大的编程语言,提供了丰富的面向对象编程功能,这些功能不仅让开发者能够更高效地解决问题,同时也为软件工程领域带来了革命性的变化。...

    代码迁移工具:gpt-migrate

    4. **代码重构**:对于大型项目,gpt-migrate可协助进行大规模重构,提高代码质量。 四、使用流程 1. **安装与配置**:首先,开发者需要下载并安装gpt-migrate,根据项目需求进行必要的配置。 2. **代码扫描**:...

    Java语言编程规范--华为技术有限公司

    编写详尽的单元测试,确保每段代码的功能正常,同时为持续集成和重构提供保障。 以上只是部分Java编程规范要点,实际规范还包括更多细节,如代码结构、异常处理策略、日志记录等。华为的Java语言编程规范旨在提升...

Global site tag (gtag.js) - Google Analytics