设计模式学习(二)工厂模式——抽象工厂模式+注册表

目录前言使用简单工厂改进使用注册表改进参考文章 前言 在上一篇文章中我们提到了抽象工厂模式初版代码的一些缺点:①客户端违反开闭原则②提供方违反开闭原则。本文将针对这两点进行讨论 使用简单工厂改进 对于缺点①,我们可以使用简单工厂的思路来改进抽象工厂的初版代码。对于上一篇文章中的例子,我们去除Came

解码技术债:AI代码助手与智能体的革新之道

技术债可能来源于多种原因,比如时间压力、资源限制、技术选型不当等。它可以表现为代码中的临时性修补、未能彻底解决的设计问题、缺乏文档或测试覆盖等。虽然技术债可以帮助快速推进项目进度,但长期来看,它会增加软件维护的成本和风险,降低系统的稳定性和可维护性。

设计模式学习(二)工厂模式——抽象工厂模式

目录背景抽象工厂模式优点与缺点参考文章 背景 现在我需要开发一个相机操作模块,它可能在Windows下运行,也可能在Linux下运行。由于在厂家提供的SDK中,Windows下的SDK和Linux下的SDK是有区别的,因此对于一个品牌的相机,我们要创建两个类去封装这两个不同平台下的API。 我们先使

需求变更,代码改的像辣鸡 - 论代码质量

一句注释引发的思考 接到一个有鸡毛信般的紧急需求(当然,002的需求向来是如此紧急的):大屏展示原来只有二个品牌数据,现增加到三个品牌的数据。一句话的需求,且没有业务逻辑变更,我认为可以迅雷不及掩耳之势,2小时收拾干净交差。当我满腔激情的定位的核心逻辑部分时,这样一句注释(见下图),让我顿时思绪天马

【Playwright+Python】手把手带你写一个自动化测试脚本

​ 如何使用代理方式打开网页 在 playwright.chromium.launch() 中传入 proxy 参数即可,示例代码如下: 1、同步写法: 1 from playwright.sync_api import sync_playwright 2 3 proxy = {'server': 

(数据科学学习手札162)Python GIS神器geopandas 1.0版本发布

本文完整代码及附件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,就在昨天,Python生态中著名的GIS分析库geopandas发布了其1.0.0正式版本。 历经10年迭代升级,geopa

LuBase 低代码开发框架介绍 - 可私有化部署

框架定位 面向开发人员,针对管理软件领域,对页面交互和通用功能进行高阶封装,逐步打造成平台型、生态型开发工具。 涓涓细流 ,汇聚成海,基于 PBC(组件式开发)开发理念,让功能模块的复用更简单。 让管理软件开发回归到对需求的深入思考和求解。 框架简介 LuBase 是以数据模型驱动,可视化表单和页面

众所周知,配置即代码≠基础设置即代码

前段时间翻到几条留言,问: “配置即代码和基础设施即代码一样吗?” “配置即代码是什么?怎么都是基础设施即代码?” 我们都是知道,DevOp的快速发展,让服务器管理与配置的时间大大减少,配置即代码和基础设施即代码作为DevOps的重要实践,在其中起到了关键性作用。 不少人将二者看作是一件事,配置即大

Java跳动爱心代码

1.计算爱心曲线上的点的公式 计算爱心曲线上的点的公式通常基于参数方程。以下是两种常见的参数方程表示方法,用于绘制爱心曲线: 1.1基于 (x, y) 坐标的参数方程 x = a * (2 * cos(θ) - sin(θ))^3 y = a * (2 * sin(θ) - cos(θ))^3 其中

记一次 .NET某工厂报警监控设置 崩溃分析

一:背景 1. 讲故事 前些天有位朋友在微信上丢了一个崩溃的dump给我,让我帮忙看下为什么出现了崩溃,在 Windows 的事件查看器上显示的是经典的 访问违例 ,即 c0000005 错误码,不管怎么说有dump就可以上windbg开干了。 二:WinDbg 分析 1. 程序为谁崩溃了 在 Wi

网络世界的脊柱——OSI七层模型

简介 OSI代表开放系统互联(Open Systems Interconnection),这是国际标准化组织(ISO)提出的一个概念模型,用于描述网络通信的功能划分。简单来说,OSI模型把复杂的网络通信过程分成了七个不同的层次,每一层都有其特定的功能和角色。 每一层都有自己的头数据,在封装和解封的时

面试官:如何自定义一个工厂类给线程池命名,我:现场手撕吗?

面试场景模拟 面试官:小伙子平时开发中用过线程池吗?聊一聊它 我:肯定用过啊,然后把build的线程池十八问一顿巴拉巴拉 面试官:不错不错,挺了解的嘛,那你知道怎么给线程池命名?手写一个工厂类给线程池命名吧 我:啊这,现场手撕吗?面试官默默的递上A4... 如何给线程池命名?这是一个好问题,如果我们

【设计模式】观察者模式

设计模式 【设计模式】工厂方法模式 【设计模式】抽象工厂模式 【设计模式】单例模式 【设计模式】策略模式 【设计模式】观察者模式 一、介绍 观察者模式是一种行为设计模式,当一个对象的状态发生改变时,依赖(观察)它的对象会接收到通知,并进行自动的更新操作。 举例:某公司发布了一款新的手机,性能很强大,

(数据科学学习手札161)高性能数据分析利器DuckDB在Python中的使用

本文完整代码及附件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,就在几天前,经过六年多的持续开发迭代,著名的开源高性能分析型数据库DuckDB发布了其1.0.0正式版本。 DuckDB具有

【技巧】JS代码这么写,前端小姐姐都会爱上你

这篇文章分享了JavaScript编程中的实用技巧,包括解构赋值的短路语法避免错误、深度解构及默认值设定,以及数组操作如条件添加元素、获取最后一个元素和使用includes优化条件判断。此外,还介绍了从URL解析参数、页面滚动功能和获取滚动距离的JS片段。作者提倡使用这些技巧提升代码质量和效率,并邀...

java中SimpleDateFormat解析日期格式的问题

在日常写代码的过程中,我们经常要处理各种格式的日期,常见的日期格式有:“20240601”,“2024-06-01”,“2024-6-1”。如何正确地处理日期格式,尤其是对外接口中参数的日期格式,就很重要了,一个不小心就可能出现意想不到的问题。 举一个我遇到的真实例子:我们提供的对外接口中有一个参数

【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)

在前一篇文章中,我们是把.NET 8应用读取SSL证书(X509)示例部署在App Service Windows环境中,那么如果部署在Linux环境,以及Linux Container中呢? 根据前文中的第一种方法,直接在把证书文件包含在源文件中,通过相对路径读取证书文件的方式,经测试,可以正常工

[机器学习] 低代码机器学习工具PyCaret库使用指北

PyCaret是一个开源、低代码Python机器学习库,能够自动化机器学习工作流程。它是一个端到端的机器学习和模型管理工具,极大地加快了实验周期,提高了工作效率。PyCaret本质上是围绕几个机器学习库和框架(如scikit-learn、XGBoost、LightGBM、CatBoost、spaCy

windows安装mysql

1、官网下载:https://dev.mysql.com/downloads/mysql/ 2、解压 3、配置环境变量 添加mysql安装的bin文件目录的路径 4、配置初始化的my.ini文件的文件 解压后的目录并没有的my.ini文件,没关系可以自行创建在安装根目录下添加的my.ini(新建文本

用.NET代码生成JSON Schema 验证器

问题 对于验证复杂JSON数据是否合法的需求,通常的解决方式是标准JSON Schema,.Net下有对应的JSON Schema实现库。应用程序通常需要将标准JSON schema传入实现库,来做后续的数据验证。这里有一种情况,就是如果使用者不太了解标准JSON Schema格式,但又希望能在自己