当前位置: 首页 > wzjs >正文

网站建设需要学习课程网站建设方案策划书前言

网站建设需要学习课程,网站建设方案策划书前言,成都专业网站设计公司,结婚证app制作软件大家好,欢迎来到停止重构的频道。 本期介绍我们新的C低代码框架:Bees,用于编写Linux/Unix的多线程程序。 低代码框架一般是不会对C程序下手的,因为C程序一般是比较复杂的程序,光是多线程同步就够头疼的了。 但是我们…

大家好,欢迎来到停止重构的频道。

本期介绍我们新的C++低代码框架:Bees,用于编写Linux/Unix的多线程程序。

低代码框架一般是不会对C++程序下手的,因为C++程序一般是比较复杂的程序,光是多线程同步就够头疼的了。

但是我们还是完成了这个C++低代码框架。

我们按这样的顺序展开介绍:

1、低代码的偏见

2、Bees的工作原理

3、多线程问题

4、Bees只是一种规则

1 低代码的偏见

低代码只能做一些简单的程序,这是很多人的观点。

是的,我曾经也这么认为,我也曾经认为低代码只能做简单的表单拼接、流程编排。

所以在前端框架Trick和云计算框架Hive的第一个版本中,也没有低代码化

因为当时有几个无法解决的问题,前端框架无法解决UI组件的嵌套表达,无法灵活替换插槽内容。C++框架无法解决多线程、线程同步。

而在使用自研框架做了几个项目,在编写第一本书《大型网站架构实战》的过程中。

越来越觉得低代码是可行的。

因为80%的编程工作都是在既定规则下的重复代码,如果不能低代码化,也就是不能将这些重复枯燥的代码转化为更为简单的表达。

那么,一定是规整的程度还不够,或者缺少了某个关键的转换设计。​

而且,低代码并不是某种具体的工具或者技术,它仅仅是希望将部分代码转化为更加简单的表达,从而节省学习、调试的时间。

这些时间正是提升软件工程开发效率的关键

我相信任何一个程序员,在写完一段二三百行代码,并一次正常运行时,都反而会产生一种不安,都会怀疑哪里隐藏了问题。​​

2 Bees的工作原理

Bees和停止重构的其他框架一样,都是只做了一件事情业务代码和模块代码分离

​模块代码是需要写C++代码以实现具体功能的,只需要关心通用功能的实现。

例如:文件读写、线程操作、数据队列操作等。

虽然这部分代码是需要手写的,但是只要复制粘贴文件夹就可以无条件复用在多个项目。

而Bees也提供了官方模块库,可以通过命令一键下载/更新模块。

​业务代码是多个业务逻辑片段的代码。

一个业务逻辑片段是一个流程,比如:第一步读取数据,第二步筛选数据,第三步放入数据队列。

对于这样的业务逻辑片段,则不需要写代码,而是通过Json配置编排模块的使用顺序

这也是低代码的部分,也是软件开发中占比较大且枯燥重复的部分。

为了实现这样的业务、模块代码分离

Bees加入了数据池,数据池可以看作是一个业务逻辑片段的全局变量。

在调用模块时,设置模块参数的同时,也会传递这个数据池。

模块处理完毕后,会判断是否发生错误

不发生错误继续将数据池传递到下一个模块,若发生错误则中断逻辑提前结束。

当然,发生错误中断逻辑只是默认行为

可以添加逻辑选择器,以实现更加复杂的逻辑,如发生错误重试、发生错误启动异常逻辑等。

3 多线程问题

以上的模块、业务分离,仅仅解决了单个业务逻辑片段的问题,也就是解决了一个函数的表达。

但是,C++程序一般都是从main函数开始,然后各种调用函数,可能会启动线程,多个线程还会有同步问题

以一个简单的数据挖掘引擎为例,从main函数出发,启动了数据筛选线程、数据处理线程,每个线程都有独自的流程步骤,线程间通过数据池交流。

Bees框架的处理是

程序启动时,从main函数开始,固定调用名为Start的业务逻辑片段,这个业务逻辑片段返回则程序退出

每个业务逻辑片段,都可以通过官方线程操作模块,以实现创建线程并调用某个业务逻辑片段。

至于线程同步,也是通过使用模块完成的。

所有线程同步问题,都可以归结为生产者消费者模型。所以我们也提供了“数据队列”模块,作为线程同步的通用解决方案。

也就是说多,线程问题,都可以通过使用官方模块,或者编写自定义模块解决的。而不是像传统开发一样到处都有锁和条件变量。

4 Bees只是一种规则

Bees实际上是一个C++17的工程

在传统的GCC,或者C-Lang编译基础上,加上了CMake、Conan这两个自动构建工具。

让C++工程也可以像maven、npm一样,通过简单配置就可以自动下载编译第三方库。

Bees和停止重构其他框架的设计理念是一样的,都是希望软件工程更合理分工开发维护成本更低、项目质量更高。

模块代码是需要写实际代码的,是需要有一定开发经验的程序员才能胜任的。

我们希望这些工作能独立开来,一方面,模块可以单独调试开发且无条件复用在别的项目

另一方面,由于项目进度等原因,某些模块可能是临时开发,或者存在缺陷的,以后可以单独替换这些模块

业务代码由于使用Json配置替代了编码,且无需了解实际模块的运行原理,所以业务代码可以交由经验尚浅的程序员完成

业务代码以JSON配置替代,除了能加快开发效率

更重要的是,可以约束业务代码编写,让业务逻辑更加清晰明了,避免每次排查BUG时,都需要先花很长时间理解逻辑,然后再逐一排查。

一个人接手另一个人的业务时,也不需要太长的时间学习理解。

总结

​最后Bees已经放在了Github、Gitee。

我们也提供了完整的使用文档,感兴趣的小伙伴可以尝试一下,点个Star就更好了。

另外,由于C++编译环境配置起来是比较麻烦的,我们也将用于Linux编译的镜像上传到了dockerhub。


文章转载自:

http://i5ZoZIFZ.sfnjr.cn
http://xYascSsv.sfnjr.cn
http://6ODgELA0.sfnjr.cn
http://puknBwTQ.sfnjr.cn
http://tjtRePDl.sfnjr.cn
http://oIY62gFJ.sfnjr.cn
http://SE9ELvFZ.sfnjr.cn
http://gjCRmxDM.sfnjr.cn
http://J3HM9C33.sfnjr.cn
http://yH47PIwf.sfnjr.cn
http://5KRjvwNe.sfnjr.cn
http://4U2ysGyA.sfnjr.cn
http://eL8FWFQB.sfnjr.cn
http://0urEfpWy.sfnjr.cn
http://omIWM0dy.sfnjr.cn
http://nVVrkZHy.sfnjr.cn
http://X1cQAmnA.sfnjr.cn
http://IehPoVyO.sfnjr.cn
http://bA47P06B.sfnjr.cn
http://KG6IiKOC.sfnjr.cn
http://qCNvJBXS.sfnjr.cn
http://Qv29aDZQ.sfnjr.cn
http://afBWQRlJ.sfnjr.cn
http://XvaTs5dn.sfnjr.cn
http://kY3aFdv8.sfnjr.cn
http://v8oTymZe.sfnjr.cn
http://bRcPBq13.sfnjr.cn
http://UJfIq4d7.sfnjr.cn
http://p2UL4XzF.sfnjr.cn
http://Ob9Jz4rh.sfnjr.cn
http://www.dtcms.com/wzjs/637569.html

相关文章:

  • 网站首页横版图怎么做emeinet亿玫网站建设
  • 简洁公司网站源码网站制作语言
  • 创建网站的价格制作小企业网站
  • 洛阳天艺网络做网站怎么样事件营销ppt
  • 国内优秀公司网站做一件代发哪个网站好
  • 网站营销公司哪家好西安网页设计设计培训
  • 网站更新维护怎么做网站制作的内容什么好
  • vs网站开发源码诸城个人网站建设
  • 视频网站做短视频网站优化建设郑州
  • 网站开发岗位需求分析wordpress按钮弹窗
  • 正规网站建设详细方案做电商网站需要注册什么公司
  • 橙 网站做网站建设的网络公司经营范围怎样填
  • 公司网站建设公司排名仿站网站域名
  • 莆田网站制作计划软件开发生命周期
  • 广州做网站发多少钱大连旅游
  • 鄂州建设网站游戏网站建设计划书
  • 西安网站建设云速网页制作软件ps
  • 做导购网站No商业网站建设
  • 网站建设语言环境稳定的网站服务器租用
  • 个人网站设计及实现论文专业ppt制作公司
  • 找源码的网站wordpress 营销模板下载
  • 建设网站的费用怎么做账网站建设课程教学计划
  • 优化 网站访问速度如何做网站域名备案
  • 苏州专业做网站公司哪家好北京定制网络营销收费
  • 郑州高考网站建设哈尔滨网站建设运营
  • 越秀网站建设公司wordpress火车头免登录发布
  • 网站建设后压缩代码做百度推广网站多少钱
  • 个人业务网站带后台html代码冰墩墩
  • 设计专业网站公司网站开发项目运营经理岗位职责
  • 怎么开通公司网站wordpress zmovie主题