02:入门篇-漫谈ctk

一去丶二三里 一去丶二三里     2023-03-04     397

关键词:

作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员

十万个为什么

五千个在哪里?七千个怎么办?十万个为什么?。。。生活中,有很多奥秘在等着我们去思考、揭示!

同样地,在使用 CTK 时,很多小伙伴一定也存在诸多疑问:

  • 为什么 CTK Plugin Framework 要借鉴 OSGi?
  • 为什么 CTK 要基于 Qt 实现?
  • CTK Plugin Framework 的架构策略是什么?
  • 使用 CTK Plugin Framework 的好处是什么?
  • 为什么 CTK 不流行?

针对这些问题,我们来一探究竟!

为什么 CTK Plugin Framework 要借鉴 OSGi?

对于任何新框架/库,在设计之初都需要考虑众多因素,CTK Plugin Framework 也不例外:

  • 框架不得对插件强加功能限制
  • 插件应该通过定义良好的方式(服务、接口等)进行通信
  • 必须处理插件之间的依赖关系
  • 应该在运行时加载插件

18:ctk总结篇(faq)

作者:一去、二三里个人微信号:iwaleon微信公众号:高效程序员经过了几个月的艰苦奋战,终于到了最后一节啦,是不是和我一样,心里有点儿小激动!回顾之前的章节,从初级->进阶->高级,我们针对CTK做了详细的分类讲... 查看详情

06:进阶篇-hello,ctk!(代码片段)

作者:一去、二三里个人微信号:iwaleon微信公众号:高效程序员在接触任何语言时,我们总能看到“Hello,World!",它的中文意思是“你好,世界!”。由于简洁、实用,所以非常著名。为了延续这个优良传统并迎接CTK,在演示第... 查看详情

09:进阶篇-ctk插件和服务

...K提供了一个中央服务注册中心。插件和服务在《06:进阶篇-Hello,CTK!》一节中,我们介绍了插件的一些基本概念,并演示了如何去创建一个插件。但这个插件可以说是最简单的-一个插件创建一个对象,并在一个接口下进行注... 查看详情

10:进阶篇-ctk插件之间的依赖(代码片段)

...题,但CTK很巧妙地解决了这个问题。其实这在《08:进阶篇-CTK插件元数据》一文中已经简单的介绍过了-Require-Plugin,现在是时候深入了。准备环境为了便于演示,创建两个插件-PluginA、PluginB,它们会很小并且几乎没有任何用途,... 查看详情

04:进阶篇-编译ctk

作者:一去、二三里个人微信号:iwaleon微信公众号:高效程序员在使用CTK之前,首先要进行编译。但要成功编译它,并不是一件很容易的事,这不仅取决于平台、Qt的版本,也取决于编译器,以及所使用的IDE。平台(Linux、Windows... 查看详情

13:高级篇-ctk事件管理机制(signal/slot)(代码片段)

...个人微信号:iwaleon微信公众号:高效程序员在《12:高级篇-CTK事件管理机制(sendEvent/postEvent)》一文中,我们介绍了如何进行插件间通信-sendEvent()/postEvent()+ctkEventHandler。然而,除了这种方式之外,EventAdmin还提供了另一种方式-s... 查看详情

16:高级篇-ctk服务追踪

作者:一去、二三里个人微信号:iwaleon微信公众号:高效程序员访问服务如果构建了一个LogService作为服务,并将其注册到服务注册中心。这时要在其它Plugin中使用LogService来记录日志,你可能会想到这种方式:使用ctkPluginContext::... 查看详情

12:高级篇-ctk事件管理机制(sendevent/postevent)(代码片段)

...k_eventadmin.dll已经编译成功。编译方式,请参考《04:进阶篇-编译CTK》。然后,创建几个插件,让它们彼此之间可以通信。以发布博客为例,新建两个插件:BlogManagerÿ 查看详情

17:高级篇-访问ctk服务的最佳方式(代码片段)

作者:一去、二三里个人微信号:iwaleon微信公众号:高效程序员访问服务的方式在使用CTK时,必须始终将服务认为是动态的、不稳定的,轻轻地我来了,轻轻地我又走了。。。服务可能随时消失,或变得不可用!所以,在访问... 查看详情

08:进阶篇-ctk插件元数据(代码片段)

作者:一去、二三里个人微信号:iwaleon微信公众号:高效程序员元数据元数据用于准确描述一个插件的特征,这样才能让CTKPluginFramework适当地对Plugin进行各种处理(例如:依赖解析)。CTKPluginFramework本身提供了一些清单头(元... 查看详情

漫谈c语言指针(代码片段)

...看音视频系统学习的浪漫马车之总目录C内存与指针:漫谈C语言内存管理漫谈C语言指针(一)漫谈C语言指针(二)漫谈C语言指针(三)上一篇漫谈C语言内存管理主要讲解了C语言内存管理相关的内容&#x... 查看详情

14:高级篇-ctk服务工厂简述

作者:一去、二三里个人微信号:iwaleon微信公众号:高效程序员一般情况下,服务对象在被注册之后,任何其它的Plugin在请求该服务时,CTKPluginFramework都返回的是同一个对象。倘若要为每一个Plugin消费者返回不同的服务对象,... 查看详情

15:高级篇-ctk事件与监听

作者:一去、二三里个人微信号:iwaleon微信公众号:高效程序员生命周期层事件在Plugin生命周期的不同状态相互转换时,CTKPluginFramework会发出各种不同的事件,以供事先注册好的事件监听器处理,这些事件被称为“生命周期层... 查看详情

java入门篇2021/02/22(代码片段)

Java入门篇2021/02/22Java的三大版本java三大版本主要包括JavaSE,JavaME,JavaEE,其中现如今的JavaME已经是很少见了,JavaSE是JavaEE的基础。JDK、JER、JVM三个关系JDK,JRE,JVM具体的关系可以参照下图,是名副其实的包含关系。JDK的安... 查看详情

03:入门篇-ctkpluginframework基本原理

作者:一去、二三里个人微信号:iwaleon微信公众号:高效程序员CTKPluginFramework技术是面向C++的动态模型系统。该系统允许插件之间的松散耦合,并且提供了设计良好的方式来进行功能和数据的交互。此外,它没有预先对插件施... 查看详情

11:高级篇-ctk事件管理机制(插件间通信)

作者:一去、二三里个人微信号:iwaleon微信公众号:高效程序员发布/订阅模式事件管理服务规范是CTKPluginFramework规范的一部分,它定义了一个通用的插件间通信机制。该机制遵循流行的发布/订阅模式,并且可以以同步或异步的... 查看详情

漫谈c语言指针(代码片段)

...看音视频系统学习的浪漫马车之总目录C内存与指针:漫谈C语言内存管理漫谈C语言指针(一)漫谈C语言指针(二)漫谈C语言指针(三)上一篇漫谈C语言指针(一)中主要讲了指针的基本概念相... 查看详情

《mongodb入门教程》第02篇mongodb安装

本篇我们将会学习如何安装MongoDB数据库服务器和管理开发工具。下载MongoDB社区版首先,打开MongoDB官方网站中的下载页面。点击“On-Premises”标签:然后选择MongDBCommunityServer。在页面右侧选择版本、平台和安装包类型࿰... 查看详情