复杂性 核心 领域 软件
【大型软件开发】浅谈大型Qt软件开发(四)动态链接库的宏冲突问题、COM组件开发的常见问题
最近工作的时候有一个链接库的对接工作,在对接时发生了一些小问题,这篇FAQ是办公室写这个库的工程师戴工写的,这里记录一下: 一、编译工程时报链接错误“不允许dllimport静态数据成员的定义” 1.错误截图 2.错误原因分析 此错误是Q_OBJECT和Q_DECL_IMPORT宏共同作用时产生的结 ......
【大型软件开发】浅谈大型Qt软件开发(三)QtActive Server如何通过COM口传递自定义类型?如何通过一个COM口来获得所有COM接口?
前言 最近我们项目部的核心产品正在进行重构,然后又是年底了,除了开发工作之外项目并不紧急,加上加班时间混不够了....所以就忙里偷闲把整个项目的开发思路聊一下,以供参考。 鉴于接下来的一年我要进行这个主框架的开发,本着精益求精的态度,加上之前维护前辈的产品代码确实给我这个刚毕业的社畜带来了不小的震撼 ......
Fabric2.x中Raft共识算法核心数据结构
一、共识算法可插拔的代码体现Chain接口 Hyperledger Fabric的共识算法是可插拔的,在代码上体现为Chain接口,所有不同的共识算法均可根据Chain接口进行具体实现,目前fabric支持solo、kafka、raft、sbft等共识算法。Chain接口的代码在fabric/ord ......
JDK8 四大核心函数式接口及扩展接口总结
前言 Java8的四大函数式接口及相关的扩展接口在日常使用中的频率也是非常多的,包括自己定义的函数式接口,在JDK1.8之前,我们定义的方法都是用来接收参数,然后自己根据参数传递实现逻辑。在1.8之后,可以通过参数传递一段行为代码,将公共的行为代码封装成一个函数式接口传递,可以减少很多代码量,在St ......
使用小黄鸟(HttpCanary)+模拟器(VMOS Pro)对手机APP进行抓包(附带软件)
最近接触app开发,苦于app端不能像网页端可以F12看请求信息,对于后端来说当接口出现异常却不能拿到请求参数是很苦恼的, 因为之前了解过逍遥模拟器,先使用了模拟器对app进行抓包,但发现这一款app在模拟器上面卡的很,根本玩不转。 后面找到了一个可以在手机上直接抓包的工具——httpcanary( ......
特定领域知识图谱(Domain-specific KnowledgeGraph:DKG)融合方案:技术知识前置【一】-文本匹配算法、知识融合学术界方案、知识融合业界落地方案、算法测评KG生产质量保障
特定领域知识图谱(Domain-specific KnowledgeGraph:DKG)融合方案:技术知识前置【一】-文本匹配算法、知识融合学术界方案、知识融合业界落地方案、算法测评KG生产质量保障 0.前言 本项目主要围绕着特定领域知识图谱(Domain-specific KnowledgeGra ......
【译】我们对 2023 年核心页面指标的建议
原文地址:https://web.dev/top-cwv-2023,在正文开始前,推荐一款前端监控脚本:shin-monitor,它能监控前端的错误、通信、打印等行为,以及计算各类性能参数,包括 FMP、LCP、FP 等。 我们 Google 希望我们的性能建议侧重于: 对现实世界产生最大影响的建议 ......
Redis缓存何以一枝独秀?——从百变应用场景与热门面试题中感受下Redis的核心特性与使用注意点
在分布式盛行的今天,本地缓存明显无法满足分布式场景的缓存诉求。作为应对之法,集中式缓存被广泛的使用在各中分布式系统中,而使用最广泛的莫过于大家耳熟能详的Redis了,本篇开始聊一聊Redis相关的内容。 ......
Debian 软件包管理
帮助了解 Debian 软件包管理,如何使用 APT 管理软件包,如何配置 apt 源,获得更好的体验
对于部分问题 apt 源配置问题,比如 GPG error
apt, apt-get 的关系 ... ......
dotnet 代码优化 聊聊逻辑圈复杂度
本文属于 dotnet 代码优化系列博客。相信大家都对圈复杂度这个概念很是熟悉,本文来和大家聊聊逻辑的圈复杂度。代码优化里面,一个关注的重点在于代码的逻辑复杂度。一段代码的逻辑复杂度越高,那么维护起来的难度也就越大。衡量代码的逻辑复杂度的一个维度是通过逻辑圈复杂度进行衡量。本文将告诉大家如何判断代码... ......
linux基础:1、linux简介,虚拟化软件的安装与配置,Xshell的安装与配置
Linux 一、linux简介 常见岗位 1、自动化运维 2、容器运维 3、DBA 4、IDC运维(机房运维员) 计算机种类 linux常用的计算机种类: 1、台式机 2、笔记本 3、服务器 作用: 1.相比较于笔记本和台式机数据的安全性更高、不易于丢失 2.可以24小时不间断地提供服务 3.提升用 ......
【架构设计】你真的理解软件设计中的SOLID原则吗?
前言 在软件架构设计领域,有一个大名鼎鼎的设计原则——SOLID原则,它是由由Robert C. Martin(也称为 Uncle Bob)提出的,指导我们写出可维护、可以测试、高扩展、高内聚、低耦合的代码。是不是很牛,但是你们都理解这个设计原则吗,如果理解不深入的话,更这我通过JAVA示例深入浅出 ......
【大型软件开发】浅谈大型Qt软件开发(一)开发前的准备——在着手开发之前,我们要做些什么?
前言 最近我们项目部的核心产品正在进行重构,然后又是年底了,除了开发工作之外项目并不紧急,加上加班时间混不够了....所以就忙里偷闲把整个项目的开发思路聊一下,以供参考。 鉴于接下来的一年我要操刀这个主框架的开发,本着精益求精的态度,加上之前维护前辈的产品代码确实给我这个刚毕业的社畜带来了不小的震撼 ......
【大型软件开发】浅谈大型Qt软件开发(二)面向未来开发——来自未来的技术:COM组件。我如何做到让我们的教学模块像插件一样即插即用,以及为什么这么做。
前言 最近我们项目部的核心产品正在进行重构,然后又是年底了,除了开发工作之外项目并不紧急,加上加班时间混不够了....所以就忙里偷闲把整个项目的开发思路聊一下,以供参考。 鉴于接下来的一年我要进行这个主框架的开发,本着精益求精的态度,加上之前维护前辈的产品代码确实给我这个刚毕业的社畜带来了不小的震撼 ......
【c#】从外部复制文本、图片到软件中的解决方案(支持ppt,qq等)
原文地址 https://www.cnblogs.com/younShieh/p/17010572.html ❤如果本文对你有所帮助,不妨点个关注和推荐呀,这是对笔者最大的支持~❤ 我们先考虑一般会从什么地方复制文本、图片到我们的软件中。 首先说文本。我们可能会从文本文件,网页,word,ppt,q ......
【好软推荐】Scoop - Windows快速软件安装指南
在平常生活中如果要安装像git、java、node这些环境的时都需要先去官网下载安装程序,点击安装,之后还需要配置,不仅过程麻烦,而且工具多了之后整理起来也相当不容易,配置也很杂,整个电脑就像被污染了一样。而scoop可以很好地解决这一问题,安装scoop后,只需要在命令行输入简单的一串命令即可安装... ......
一篇文章带你了解设计模式原理——UML图和软件设计原则
一篇文章带你了解设计模式原理——UML图和软件设计原则 我们在学习过程中可能并不会关心设计模式,但一旦牵扯到项目和面试,设计模式就成了我们的短板 这篇文章并不会讲到二十三种设计模式,但是会讲解设计模式的设计原则以及设计依据和最明显的图形表示 或许我们只有先去了解设计模式的来源才能真正理解设计模式吧 ......
【机器学习】李宏毅——Domain Adaptation(领域自适应)
本文介绍了Domain Adaptation(领域自适应)的相关知识,包括现在出现的具体问题、问题如何解决、所面对的各种情况等等。 ......
历时9个月重构iNeuOS工业互联网操作系统,打造工业领域的“Office”
历时9个月的时间,对iNeuOS工业互联网操作系统进行全面重构,发布内部测试版本。重构的主要目的:工程化的框架优化,更好的聚焦工业领域业务发展。重构也是保障产品能够可持续发展的重要手段,同时兼顾产品的安全性和稳定性。 ......
遥感图像识别(标注)软件实现
遥感图像识别已经有很多成熟的模型和实现,这里我们选择yolov5_obb和dota数据集,以说明并实现一种思路:那就是先识别、再标注、再训练的过程。鉴于领域内数据往往比较封闭,对此类数据的标注实现难度较大,所以需要模型迁移。首先基于已经训练的成果,实现初步标绘;而后通过人在回路的修正,获得精确的结果 ......
PowerDotNet平台化软件架构设计与实现系列(15):支付平台
PowerDotNet个人项目中功能全面而强大的一个系统是支付平台。我对PowerDotNet的自信很大程度上来自于经过PowerDotNet重写后的支付、财务、结算、CRM等业务型公共服务系统的稳定运行。 使用PowerDotNet和PowerDotNetCore特别开发的业务逻辑型公共服务既有极 ......
PowerDotNet平台化软件架构设计与实现系列(14):平台建设指南
软件开发中常见的几种不同服务模型包括SaaS(软件即服务)、LaaS(许可即服务)、PaaS(平台即服务)、CaaS(容器即服务)、IaaS(基础设施即服务)和FaaS(功能即服务)。 很多人认为IaaS和FaaS是趋势,是未来软件设计与开发人员的基本必备技能,PowerDotNet和PowerDo ......
有状态软件如何在 k8s 上快速扩容甚至自动扩容
概述 在传统的虚机/物理机环境里, 如果我们想要对一个有状态应用扩容, 我们需要做哪些步骤? 申请虚机/物理机 安装依赖 下载安装包 按规范配置主机名, hosts 配置网络: 包括域名, DNS, 虚 ip, 防火墙... 配置监控 今天虚机环境上出现了问题, 是因为 RabbitMQ 资源不足. ......
软件设计中最关键的“开闭原则”,究竟指什么呢?
前言 软件设计原则中有一条很关键的原则是开闭原则,就是所谓的对扩展开放,对修改关闭。个人觉得这条原则是非常重要的,直接关系到你的设计是否具备良好的扩展性,但也是相对比较难以理解和掌握的,究竟怎样的代码改动才被定义为“扩展”?怎样的代码改动才被定义为“修改”?怎么才算满足或违反“开闭原则”?别急,本文 ......
Qt开发Active控件:如何使用ActiveQt Server开发大型软件的主框架(2)
Qt开发Active控件:如何使用ActiveQt Server开发大型软件的主框架 注:本文更多地是带着如何去思考答案,而不是纯粹的放一个答案上来,如果你需要直接看到完整的答案,请直接看实例和最后的柳暗花明部分,里面由详细的注释可以解答你的问题。 前情提要: Qt的进程间通信,以服务器的形式,手把 ......
MasaFramework -- 领域驱动设计
概念 什么是领域驱动设计 领域驱动的主要思想是, 利用确定的业务模型来指导业务与应用的设计和实现。主张开发人员与业务人员持续地沟通和模型的持续迭代,从而保证业务模型与代码的一致性,实现有效管理业务的复杂度,优化软件设计的目的 痛点 基于领域驱动设计的模型有很多难点需要克服 统一认知 语言统一, 领域 ......
重新认识下JVM级别的本地缓存框架Guava Cache(3)——探寻实现细节与核心机制
本篇文章我们将进一步探讨下Guava Cache 实现层面的一些逻辑与设计策略,让我们可以对Guava Cache整体有个更加明朗的认识,促进实际使用中对其的理解。 ......
前端学习 linux —— 软件安装(Ubuntu)
软件安装(Ubuntu) 本篇主要讲解 ubuntu 中软件的安装、apt 的源、内网部署案例(graylog 为例),最后是 python 开发准备。 apt 和 rpm 在linux 第一篇我们知道如果机器是 ubuntu 则可用 apt-get/dpkg 安装软件,如果是centos 则可用 ......
Linux系统各种库/软件版本输出指令
日常开发基于Linux系统(其实更多的是Ubuntu平台),平时总会遇到一些情况需要查看某个库或者软件的版本信息,在这里做一下简单的记录。 1. 查看glibc版本 方法一:使用ldd指令 cv@cv:~$ ldd --version ldd (Ubuntu GLIBC 2.23-0ubuntu11 ......