借降本增效之名,探索开闭原则架构设计

在我们的研发生产活动中,经常会遇到如下类似的疑惑:业务和技术在公司组织活动中,究竟应该各扮演什么样的角色?技术的目的是什么?

设计模式

设计模式的七大原则 1、开闭原则(Open Close Principle) 开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中

10分钟掌握Python缓存

全文速览 python的不同缓存组件的使用场景和使用样例 cachetools的使用 项目背景 代码检查项目,需要存储每一步检查的中间结果,最终把结果汇总并写入文件中 在中间结果的存储中 可以使用context进行上下文的传递,但是整体对代码改动比较大,违背了开闭原则 也可以利用缓存存储,处理完成之

OOP第二阶段题集总结

一.前言 知识点:考察继承和多态为多,其中还涉及迭代器的使用,在每个题集中都有一个综合性题目设计多方面知识点考试,有List类和HashMap的使用以及正则表达式的运用,并且注重考查设计,理解类与类之间的关系进行合理设计,其中也要遵循我们所学的单一职责,开闭原则,迪米特法则等。 题量:第四次题集和第

责任链和策略设计模式-基于Java编程语言

在日常代码的编写中,业务需求的变化总是不定的。文中描述的责任链和策略设计模式能有效满足代码编写的开闭原则,能更加有效的应对随时变化的业务需求。

创建型:工厂模式-工厂方法、抽象工厂

简单工厂问题 简单工厂中我们通过参数来返回不同的产品对象,如果管理的对象过多,这个工厂函数会比较庞大,且当我们需要增加一个新的产品时,需要修改这个工厂方法,违反开闭原则(对拓展开放,对修改关闭)。 为了解决简单工厂模式的问题,出现了工厂方法模式。 解决简单工厂思路 简单工厂类图关系类似如下: 如上图

面向对象编程的六大原则个人总结(附代码)

面向对象编程的六大原则个人总结(附代码) 目录面向对象编程的六大原则个人总结(附代码)一、什么是单一职责原则?核心思想好处代码示例总结二、什么是里式替换原则?规则代码示例总结三、什么是迪米特法则?核心思想规则代码示例总结四、什么是开闭原则?理解代码示例总结五、什么是依赖倒置原则?核心思想理解代码示例

开发一个题库系统App和小程序的心得

序言 对于一名开发者来说,独自开发一款小程序与App,也许总会有一些疑问: 1. 需要掌握哪些技术? 答:java、vue、及常规Linux命令 2. 需要多少成本? 答:服务器购买,云服务器新人50多三年; 域名购买,10块的域名够用,后续每年30左右的续期费用; 短信套餐购买,50块钱,够用很久

不单独部署注册中心,又要具备注册中心的功能,咋不让我上天?

开心一刻 暗恋公司的一个女同事,聊了快一年了,一直没勇气表白 上个月突然找我借 5000 块钱,我直接转给她了 我:这钱干嘛用的? 她:给男朋友买个手机 我强颜欢笑说:你真贴心 几天后我收到一个快递,打开一看是部手机!!! 我压抑着内心的激动,放下手头的工作,立马微信上问她怎么回事 她说:手机她男朋

开源一个RAG大模型本地知识库问答机器人

弹指间,2009年大学毕业到现在2024年,已经15年过去了。 前2天,看到自己14年在博客园写的一个博客,哪个时候是工作之余创业 感兴趣的朋友可以看看我10年前发的一篇博客 https://www.cnblogs.com/likwo/p/3832795.html 目前全职创业中,用过不少开源软件,

MySQL自定义函数(User Define Function)开发实例——发送TCP/UDP消息

开发背景 当数据库中某个字段的值改为特定值时,实时发送消息通知到其他系统。 实现思路 监控数据库中特定字段值的变化可以用数据库触发器实现。还需要实现一个自定义的函数,接收一个字符串参数,然后将这个字符传通过udp消息发送到指定端口。 在触发器中执行这个自定义函数并在其他系统中监听指定端口的消息。从而

免费且离线的同声翻译利器「GitHub 热点速览」

开源的翻译软件众多,但大多数依赖于翻译 API 服务,因此就需要联网、有次数限制、并非完全免费。然后,本周上榜的是一款可以离线使用的 Android 翻译软件:RTranslator,它创建于 4 年前,最初也是基于谷歌翻译 API 开发,但在上周发布的 2.0 版本中,采用了全新的 NLLB+Wh...

开源一个反sql注入的asp.net core中间件

现在公安有一个专门负责信息安全的部门,前几天公司就收到了一个整改通知,防sql注入的整改。 我们公司开始对网站进行了简单的测试,普通的sql都能检测出来。 但还是被发了整改通知,肯定有些sql注入的方法没测出来,于是我就开始查找了sql注入的手法。 sql注入主要有:基于注释、基于一般错误、基于时间

SQLite vs MySQL vs PostgreSQL对比总结

开发业务系统时,是绕不开RDBMS(关系型数据库)的。虽然现在诞生了各种NoSQL的数据库,RDBMS在业务系统中的严谨和优势依然无法取代。 近几年大大小小的项目中,常用的三种RDBMS(SQLite,MySQL,Postgres)都有多次接触过,一些使用心得记录如下,供大家参考。 1. SQLit

开源的网络瑞士军刀「GitHub 热点速览」

上周的开源热搜项目可谓是精彩纷呈,主打的就一个方便快捷、开箱即用!这款无需安装、点开就用的网络瑞士军刀 CyberChef,试用后你就会感叹它的功能齐全和干净的界面。不喜欢 GitHub 的英文界面?GitHub 网站汉化插件 github-chinese,让英语不好的同学实现无障碍浏览 GitHu...

基于Web3.0的区块链图片上传

开始前,我们先简单了解一下基本的概念,我大致归纳为以下几个点 什么是Web3.0,和区块链又有什么关系?(上回的文章不就派上用场了) 需求:开发一个基于Python的Web 3.0图片上传系统。这个系统将允许用户上传图片,并将图片存储在去中心化的网络上,同时记录交易信息在区块链上。 本就是写着玩的,

『手撕Vue-CLI』自动安装依赖

开篇 经过『手撕Vue-CLI』拷贝模板,实现了自动下载并复制指定模板到目标目录。然而,虽然项目已复制,但其依赖并未自动安装,可能需要用户手动操作,这并不够智能。 正如前文所述,我们已经了解了业务需求和背景。那么,接下来我们将直接深入探讨核心实现细节。 自动安装依赖 在前文中,我们已经将模板文件复制

C#进程调用FFmpeg操作音视频

开发背景 因为公司需要对音视频做一些操作,比如说对系统用户的发音和背景视频进行合成,以及对多个音视频之间进行合成,还有就是在指定的源背景音频中按照对应的规则在视频的多少秒钟内插入一段客户发音等一些复杂的音视频操作。本篇文章主要讲解的是使用C#进程(Process)调用FFmpeg.exe进行视频合并

开源一款功能强大的 .NET 消息队列通讯模型框架 Maomi.MQ

目录文档说明导读快速开始消息发布者IMessagePublisher连接池消息过期事务发送方确认模式独占模式消费者消费者模式事件模式分组消费者模式消费、重试和补偿消费失败自动创建队列Qos延迟队列空消费者分组事件总线模式中间件分组消费配置消费者配置环境隔离雪花 id 配置Qos 并发和顺序Qos 场

开源高性能结构化日志模块NanoLog

最近在写数据库程序,需要一个高性能的结构化日志记录组件,简单研究了一下Microsoft.Extensions.Logging和Serilog,还是决定重造一个轮子。 一、使用方法 直接参考以下示例代码: NanoLogger.Start(); DateTime? nullable = null;