粒子 程序设计 算法 能源

一文带你入木三分地理解字符串KMP算法(next指针解法)

1. KMP算法简介 温馨提示:在通篇阅读完并理解后再看简介效果更佳 以下简介由百度百科提供https://baike.baidu.com/item/KMP%E7%AE%97%E6%B3%95/10951804: KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V. ......
入木三分 解法 字符串 指针 算法

模型驱动设计的构造块(上)——DDD

为了保证软件实践得简洁并且与模型保持一致,不管实际情况如何复杂,必须运用建模和设计的实践。 某些设计决策能够使模型和程序紧密结合在一起,互相促进对方的效用。这种结合要求我们注意每个元素的细节,对细节问题的精雕细琢能够打造一个稳定的平台。 本部分主要将一些模式,说明细微的模型差别和设计决策如何影响领域 ......
模型 DDD

Dubbo架构设计与源码解析(三)责任链模式

作者:周可强 一、责任链模式简介 1、责任链模式定义 责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。 ......
架构 源码 模式 责任 Dubbo

Java程序员除了做增删改查还能干嘛?

就以Java后端开发为例,说说不同级别程序员干的事情。 1 初级开发,大概是有3年Java开发经验。 22年底,上海,这批程序员如果学历是本科,薪资一般是8k到2w,当然如果能进好公司或互联网大厂,薪资能更高。初级开发干的活一般是能做各种增删改查业务,遇到简单问题,比如空指针之类的,能通过看日志解决 ......
程序员 程序 Java

浅谈入行Qt桌面端开发程序员-从毕业到上岗(1):当我们说到桌面端开发时,我们在谈论什么?

谈谈我自己 大家好,我是轩先生,是一个刚入行的Qt桌面端开发程序员。我的本科是双非一本的数学专业,22年毕业,只是部分课程与计算机之间有所交叉,其实在我毕业的时候并没有想过会成为一名程序员,也没有想过会成为一名桌面端开发的程序员。我记得大学的时候我最想去做的事是做一名记者,大学呢也在学校校报的通讯社 ......
桌面 程序员 程序

C#不提升自己程序的权限实现操作注册表

当我们编写了自己的C#程序,有程序自定义的文件类型时,通常希望它满足以下需求:双击自定义文件打开自定义程序、自定义文件有着自己的图标 此时,在网上检索可以发现,大多数回答是使用Microsoft.Win32下的CreateSubKey(String)函数,但是很不幸,Win10的注册表项受访问控制列... ......
注册表 权限 程序

MasaFramework -- 领域驱动设计

概念 什么是领域驱动设计 领域驱动的主要思想是, 利用确定的业务模型来指导业务与应用的设计和实现。主张开发人员与业务人员持续地沟通和模型的持续迭代,从而保证业务模型与代码的一致性,实现有效管理业务的复杂度,优化软件设计的目的 痛点 基于领域驱动设计的模型有很多难点需要克服 统一认知 语言统一, 领域 ......
MasaFramework 领域

MASA Framework -- 跨进程事件 IntegrationEventBus入门与设计

概述 跨进程事件总线允许发布和订阅跨服务传输的消息, 服务的发布与订阅不在同一个进程中 在Masa Framework中, 跨进程总线事件提供了一个可以被开箱即用的程序 IntegrationEvents: 提供了发件箱模式 IntegrationEvents.Dapr: 借助Dapr实现了消息的发 ......
IntegrationEventBus Framework 事件 MASA

你真的了解 RSA 加密算法吗?

作者:小傅哥 博客:https://bugstack.cn 源码:https://github.com/fuzhengwei/java-algorithms 沉淀、分享、成长,让自己和他人都能有所收获!😄 记得那是我毕业🎓后的第一个秋天,申请了域名,搭建了论坛。可惜好景不长,没多久进入论坛后就出 ......
算法 RSA

斐波那契散列算法和hashMap实践

斐波那契散列和hashMap实践 适合的场景:抽奖(游戏、轮盘、活动促销等等) 如果有不对的地方,欢迎指正! HashMap实现数据散列: 配置项目,引入pom.xml: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson ......
算法 hashMap

(Java)设计模式:行为型

前言 此篇博文内容续接的是 UML建模语言、设计原则、创建型设计模式 的内容,有兴趣的可以点前面的链接去看一下 3.2、行为型 这类设计模式是专门用于:对象间的高效沟通和职责委派 * 3.2.1、chain of responsibility 责任链模式 定义:责任链模式又名职责链模式,指的是:对某 ......
设计模式 行为 模式 Java

(Java)设计模式:创建型

前言 这篇内容是从另一篇:UML建模、设计原则 中分离出来的,原本这个创建型设计模式是和其放在一起的 但是:把这篇创建型设计模式放在一起让我贼别扭,看起来贼不舒服,越看念头越不通达,导致老衲躺在床上脑海中冒出来时都睡不着了 因此:最后实在受不了了,还是将其抽离出来 3、设计模式 分类: 注:使用设计 ......
设计模式 模式 Java

Easy-Classification-分类框架设计

1. 框架介绍 Easy-Classification是一个应用于分类任务的深度学习框架,它集成了众多成熟的分类神经网络模型,可帮助使用者简单快速的构建分类训练任务。 框架源代码:https://github.com/wuya11/easy-classification 1.1 框架功能 1.1.1 ......

微信小程序实战,基于vue2实现瀑布流

瀑布流,又称瀑布流式布局。是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。 ......
瀑布 实战 程序 vue2 vue

[信息抽取]基于ERNIE3.0的多对多信息抽取算法:属性关系抽取

本项目讲解了基于ERNIE信息抽取技术,对属性和关系的抽取涉及多对多抽取,主要是使用可ERNIEKIT组件,整体效果非常不错,当然追求小样本学习的可以参考之前UIE项目或者去官网看看paddlenlp最新的更新,对训练和部署进行了提速。 ......
信息 算法 属性 ERNIE3 ERNIE

新零售SaaS架构:多租户系统架构设计

传统大企业更喜欢私有化部署、个性化交付的传统模式,因为他们需要更强的管控和更高的安全性。 然而,中小企业付费能力有限,需求往往也更加标准化,所以更喜欢价格更低的、订购更简单的SaaS产品。 为了满足不同客户的需求,多租户的底层架构设计是至关重要的。 ......
架构 租户 系统 SaaS

vivo大数据日志采集Agent设计实践

作者:vivo 互联网存储技术团队- Qiu Sidi 在企业大数据体系建设过程中,数据采集是其中的首要环节。然而,当前行业内的相关开源数据采集组件,并无法满足企业大规模数据采集的需求与有效的数据采集治理,所以大部分企业都采用自研开发采集组件的方式。本文通过在vivo的日志采集服务的设计实践经验,为 ......
数据 Agent 日志 vivo

在C#中使用Halcon开发视觉检测程序

简介 本文的初衷是希望帮助那些有其它平台视觉算法开发经验的人能快速转入Halcon平台下,通过文中的示例开发者能快速了解一个Halcon项目开发的基本步骤,让开发者能把精力完全集中到算法的开发上面。 首先,你需要安装Halcon,HALCON 18.11.0.1的安装包会放在文章末尾。安装包分开发和 ......
视觉 程序 Halcon

贪心算法篇——区间问题

贪心算法篇——区间问题 本次我们介绍贪心算法篇的区间问题,我们会从下面几个角度来介绍: 区间选点 区间分组 区间覆盖 区间选点 我们首先来介绍第一道题目: /*题目名称*/ 区间选点 /*题目介绍*/ 给定 N 个闭区间 [ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点 ......
区间 算法 问题

【开源】全网首个支持国密算法的微信支付 C#/.NET SDK(附 SM2/SM3/SM4 跨语言联调的踩坑要点)

前言 前文回顾:《【开源】这可能是封装微信 API 最全的 C#/.NET SDK 了》 自 2021 年 8 月公开发布后,本项目已开源一年有余。在此期间,受到了很多开发者的关注和使用,也接收了很多热心开源的开发者给予的帮助,无论是上报了缺陷或建议,还是发起了 PR,亦或是在社群内回答他人的提问, ......
全网 算法 要点 SM 语言

Python:对程序做性能分析及计时统计

如果只是想简单地对整个程序做计算统计,通常使用UNIX下的time命令就足够了。由于我用的是Mac系统,和Linux系统的输出可能有不同,不过关键都是这三个时间:user: 运行用户态代码所花费的时间,也即CPU实际用于执行该进程的时间,其他进程和进程阻塞的时间不计入此数字;system: 在内核中... ......
性能分析 性能 程序 Python

谁说.NET没有GC调优?只改一行代码就让程序不再占用内存

经常看到有群友调侃“为什么搞Java的总在学习JVM调优?那是因为Java烂!我们.NET就不需要搞这些!”真的是这样吗?今天我就用一个案例来分析一下。 昨天,一位学生问了我一个问题:他建了一个默认的ASP.NET Core Web API的项目,也就是那个WeatherForecast的默认项目模 ......
一行 内存 代码 程序 NET

[设计模式] 装饰器模式

一、装饰器模式 在软件开发过程中,由于需求的改动,可能面临对某个或某些对象新增一些新的功能的需求。根据开闭原则,新增功能我们也不能直接去修改 原有的类,而如果使用继承的方式去实现,可能出现“子类爆炸”的问题,这个时候就可以使用到 装饰器模式。 装饰器模式:允许向一个现有的对象添加新的功能,同时又不改 ......
模式 设计模式

Java外包程序员的技术出路

学习的两个目的: 应付面试 应付工作(解决问题) 首先要明白学习的目的,不同阶段,不同技术的学习目的是不一样的。 有些技术,仅仅是应用级别的,有些技术是原理级别的(主要还是应试)。所以不同技术、不同时间学习方式需要改变。 学习方法: mysql、redis等日常使用技术: 直接就要熟练掌握,因为日常 ......
程序员 出路 程序 技术 Java

聊一聊如何截获 C# 程序产生的日志

一:背景 1.讲故事 前段时间分析了一个dump,一顿操作之后,我希望用外力来阻止程序内部对某一个com组件的调用,对,就是想借助外力实现,如果用 windbg 的话,可以说非常轻松,但现实情况比较复杂,客户机没有windbg,也不想加入任何的手工配置,希望全自动化来处理。 真的很无理哈。。。不过这 ......
程序 日志

Type Script 在流程设计器的落地实践

流程设计器项目介绍 从事过BPM行业的大佬必然对流程建模工具非常熟悉,做为WFMC三大体系结构模型中的核心模块,它是工作流的能力模型,其他模块都围绕工作流定义来构建。 成熟的建模工具通过可视化的操作界面和行业BPMN规范描述用户容易理解的工作流的各种构成图元,例如圆圈表示事件,方框表示活动。 流程设 ......
流程设计 流程 Script Type

Selenium4+Python3系列(十) - Page Object设计模式

前言 Page Object(PO)模式,是Selenium实战中最为流行,并且被自动化测试同学所熟悉和推崇的一种设计模式之一。在设计测试时,把页面元素定位和元素操作方法按照页面抽象出来,分离成一定的对象,然后再进行组织。 相信每个做自动化测试的同学,一定会遇到这样一个非常头疼的问题,那就是页面变化 ......

Selenium4+Python3系列(十一) - Page Factory设计模式

写在前面: Page Object模式,目的是将元素定位和元素操作分层,只接触测试内容,不写基础内容,便于后续对自动化测试用例体系的维护,这是中心思想,也是核心。 那么我们继续将简洁延续,这里沿用Java的Page Factory模式思想,旨在减少代码冗余,简单易用,具有高度的可扩展能力。 所以,这 ......

软件设计模式白话文系列(十四)策略模式

1、模式描述 定义一个算法的系列,将其各个分装,并且使他们有交互性。策略模式使得算法在用户使用的时候能独立的改变。 在 Java 中,从 JDK1.8 开始支持函数式编程,就是策略模式的一种体现,且无需借助额外的类和接口,代码更加简洁。 2、模式结构 抽象策略类:定义策略算法的规范。 具体策略类:实 ......
模式 白话文 设计模式 白话 策略

【图像处理笔记】SIFT算法原理与源码分析

【图像处理笔记】总目录 0 引言 特征提取就是从图像中提取显著并且具有可区分性和可匹配性的点结构。常见的点结构一般为图像内容中的角点、交叉点、闭合区域中心点等具有一定物理结构的点,而提取点结构的一般思想为构建能够区分其他图像结构的响应函数或者从特征线或轮廓中进行稀疏采样。Harris角点检测器便是运 ......
图像处理 算法 源码 图像 原理