关键词不能为空

重构项目中的库(重构数据库)

作者:admin
来源:http://www.sdzsb8.cn/zsxx/31458.html
日期:2022-07-31 01:45
评论:0
阅读 53

重构项目中的库?重构数据库?最近发现 job[1] 有很多 clone。这个写了快一年的项目当时的目的是为了做压力测试。现在回看整个项目与代码都存在太多的冗余,所以做了一下重构。重构之后的项目,全部代码也就 80 行左右。所以,也就借着这次重构,向大家介绍一下,这个压箱底的库 routine[4]. 这个库自从写出来以后,基本上我所有的 Go 项目都会使用。当然,job 项目中还用到了,我封装的另外一个库 cmd[5],通过这个库可以快速的实现一个命令行程序。

重构项目中的库(重构数据库)

以下文章来自慢舟,由慢舟撰写。

最近,人们发现job[1]有许多克隆。这个写了快一年的项目,目的是做一个压力测试。

现在回过头来看,整个项目和代码之间有太多的冗余,于是我做了一些重构。重构项目后,整个代码大概80行。

主要功能已经在routine[2]中实现了,job[3]实际上只是一个简单的组装。

所以,通过这次重构,我想给大家介绍一下壁橱底层的库例程[4]。这个库自从写出来以后,基本上我所有的Go项目都在用。

套路做了什么?

为什么要写这么基础的库?

每个程序都是从主函数开始的,但是整个程序的功能实现不会放在主函数中。而是通过层层功能的抽象和封装,最终,主功能只提供功能性功能的入口。所以,当我们看很多大型程序的时候,其实主函数很简单。

但是,即使主函数变得越来越简单,一些必要的函数也是逃不掉的。比如程序启动参数,程序信号处理,这些通常放在主函数中进行处理。

除了上面对主函数本身的处理,我发现在程序中定义线程,也就是在主函数中定义固定Go协处理器的入口,可以帮助维护人员更快的理解应用的逻辑实现。

所以我写了这样一个基础库,我只需要实现具体的函数作为Executor接口的实现。它是这样工作的:

常规协同控制

很多初学Go语言的开发者在控制过程中经常会犯以下错误:

提供简单协调控制的基本库,可以避免类似的错误。

整个套路的协同逻辑可以通过下图简单演示。

常规执行器

例程库不仅提供了一个主函数和协同进程控制的基本框架,还提供了许多功能函数的执行器。包括:

重试执行

重复执行repeat。

计划执行crontab

并发执行。

等等,很多功能包。

例行程序执行工作。

所以有了例程库,重构作业函数就很简单了,真的只是简单的汇编代码。

看一看,job的核心代码是3360。

当然,我打包的另一个库cmd[5]也用在了job项目中。通过这个库,可以快速实现命令行程序。感兴趣的同学不妨参考一下。

参考数据

[1]

job : https://github.com/liujianping/job

[2]

路线: https://github.com/x-mod/routine

[3]

job : https://github.com/liujianping/job

[4]

路线: https://github.com/x-mod/routine

[5]

cmd : https://github.com/x-mod/cmd


本文来自网络,不代表「专升本要什么条件_专升本要几年_成人高考专升本_山东专升本信息网」立场,转载请注明出处:http://www.sdzsb8.cn/zsxx/31458.html

重构项目中的库(重构数据库)的相关文章

  • 校际交流项目是什么「大学校际交流真实目的」

    校际交流项目是什么「大学校际交流真实目的」:关于2022年澳大利亚悉尼新南威尔士大学校际交流项目报名的通知一、学校简介新南威尔士大学( The University of New South Wales ,简称 UNSW )位于澳大利亚悉尼.....

    政策
  • 卞毓方:《史记·老子传》中的“逼”

    卞毓方:《史记·老子传》中的“逼”:作者:卞毓方好文章,大抵是逼出来的——这样的结论源自众多古代文化大咖。先看看司马迁。他在《报任安书》中写道:古者富贵而名摩灭,不可胜记,唯倜傥非常之人称焉。盖文王

    百科
  • 离骚是什么诗「离骚中的一首诗」

    离骚是什么诗「离骚中的一首诗」:离骚《离骚》是战国时期著名诗人屈原的代表作,也是《楚辞》的代表作之一,是中国古代诗歌史上最长的一首浪漫主义的政治抒情诗。诗人从自叙身世、品德、理想写起...《离骚》是战国

    招生学校
  • 项目技术负责人职责「项目工程技术负责人的主要职责」

    项目技术负责人职责「项目工程技术负责人的主要职责」:技术负责人与项目技术负责人他们所担负的职责是不同的,区别为: 1、技术负责人应该是这个单位整体技术工作的具体领导者,对各个项目工程的技术方案,工程技术人...新天水记者 张文都

    招生学校
  • 跆拳道中的黑带段位,你知道多少?

    跆拳道中的黑带段位,你知道多少?: 跆拳道中常说的十级九段,就是我们通常看到的腰带颜色和所说的黑带段位。目前我国的跆拳道发展已经逐渐规范,大家对这项运动也有了一定的认知,但关于腰带的颜色与黑带的段位

    百科
  • 2022冬奥会项目(2022年冬奥会)

    2022冬奥会项目(2022年冬奥会):1、2022年冬奥会的7个大项分别为滑冰、滑雪、雪车、雪橇、冰球、冰壶、冬季两项。2、2022年北京张家口奥运会设7个大项(滑冰、滑雪、雪车、雪橇、冰球、冰壶、冬季两项),15个分项

    热讯
  • 文言文中的单纯词和合成词有什么区别?

    文言文中的单纯词和合成词有什么区别?:为了区分单纯词和合成词的概念,必须引出语素的概念。语素是最小的音义结合体。单纯词是只含有一个语素的词,单纯词中两个音节构成的词也称连绵词。单纯词既有单音节的,也有

    百科
  • 上海人眼中的好大学,你怎么看(上海人眼中的立信)

    上海人眼中的好大学,你怎么看(上海人眼中的立信):1、第一档:复旦,交大第二档:同济大学,华东师范大学,上海财经大学,第二军医大学。2、第三档:上海外国语大学,华东理工大学,东华大学,上海大学,华东政法大学。3、(新

    热讯
  • 零基础也能学会的21个小游戏开发项目

    零基础也能学会的21个小游戏开发项目:我们整理了21个简单易学的小游戏开发项目,既可以帮助你提高编程能力,又能让你感受到游戏的乐趣!这些项目的技能要求并不高,零基础的同学也能学会哦~一、web前端:1、基于HTM

    百科
网站公告