设计模式:代理模式详解

需求场景 按着惯例,还是以一个应用场景作为代理模式的切入点。现在有一个订单系统,要求是:一旦订单被创建,只有订单的创建人才可以修改订单中的数据,其他人则不能修改。 基本实现思路 按着最直白的思路,就是查询数据库中订单的创建人和当前Session中的登录账号ID是否一致。 class Order {

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

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

需求管理秘籍:从混乱到有序,让你的项目高效运转

引言 在项目管理的广阔天地中,需求管理犹如一颗璀璨的明珠,它不仅是项目启动的基石,更是项目成功的关键引擎。从最初的需求收集、分析到后期的变更管理,需求管理的每一步都深刻影响着项目的进展和结果。 需求管理是项目目标和方向的指南针 一个明确、具体的需求能够清晰地描绘出项目的轮廓,为团队提供明确的工作方向

mybaits-plus实现自定义字典转换

需求:字典实现类似mybatis-plus中@EnumValue的功能,假设枚举类中应用使用code,数据库存储对应的value 思路:Mybatis支持对Executor、StatementHandler、PameterHandler和ResultSetHandler进行拦截,也就是说会对这4种对

java split用法 案例

需求:java读取一个csv文件并将文件内容每行按照","隔开 场景一: 读取1.csv文件:文件内容如下: 1,zhangsan,note2,lisi, 注意:第二行逗号后面没有数据 public static void main(String[] args) { String csvFile =

开发日志:Kylin麒麟操作系统部署ASP.NET CORE

需求场景: 我需要部署的项目是在Windows上开发的,目标框架为.net core 6.0 因此我们需要先在kylin上部署项目运行所需要的环境。 借助百度词条,先看看Kylin是什么: 服务器资源: 查看系统版本 cat /etc/kylin-release cat /proc/version

[转帖]查看请求在nginx中消耗的时间

需求:查看请求在nginx中消耗的时间,不包括程序响应时间。 1.声明日志的格式,在nginx配置文件nginx.conf里的http下添加如下内容: log_format test '$remote_addr - $remote_user [$time_local] "$request" ' '$

[转帖]Linux平台shell脚本输入密码,不显示明文

需求:shell脚本中输入密码,要求不显示明文,需要将其转换为“*”星号,或者不显示 实现方案:有两种实现方案,一是通过stty命令来实现,二是直接使用read来实现 方案一:使用stty来实现 使用stty -echo可以实现不显示密码,就像登录Linux系统输入密码时一样,stty的代码如下:

使用Prometheus监控docker compose方式部署的ES

需求 收集 ES 的指标, 并进行展示和告警; 现状 ES 通过 docker compose 安装 所在环境的 K8S 集群有 Prometheus 和 AlertManager 及 Grafana 方案 复用现有的监控体系, 通过: Prometheus 监控 ES. 具体实现为: 采集端 el

使用Prometheus监控docker compose方式部署的ES

需求 收集 ES 的指标, 并进行展示和告警; 现状 ES 通过 docker compose 安装 所在环境的 K8S 集群有 Prometheus 和 AlertManager 及 Grafana 方案 复用现有的监控体系, 通过: Prometheus 监控 ES. 具体实现为: 采集端 el

在 NGINX 中根据用户真实 IP 进行限制

需求 需要根据用户的真实 IP 进行限制, 但是 NGINX 前边还有个 F5, 导致 deny 指令不生效. 阻止用户的真实 IP 不是 192.168.14.* 和 192.168.15.* 的访问请求. 实现 最简单的实现如下: :notebook: 前置条件: 需要 nginx 前边的 lo

【算法】根据输入的正整数,重新排列生成一个更大的数字

需求:创建一个函数,该函数取一个正整数,并返回下一个较大的数字,该数字可以通过重新排列其数字来形成。例如: 12 >21 513==>531 2017 >2071 如果数字不能重新排列以形成更大的数字,则返回-1: 9 >-1 111=>-1 531=>-1

Oracle Users表空间重命名

需求:默认无法直接删除Oracle的users表空间,直接尝试删除会有报错如下: ```shell SQL> drop tablespace users including contents and datafiles; drop tablespace users including content

.NET指定图片地址下载并转换Base64字符串

需求描述 需要调用第三方图片上传接口上传图片,对方图片格式只能接收Base64字符串。所以我们需要将系统服务器的图片通过Url下载下来,然后转换成Base64字符串。接下来我们将使用HttpClient类库下载图片并将其转换为Base64格式的字符串。 代码示例 /// ///

终极指南:Scrum中如何设置需求优先级

需求众多不知道如何下手?总想先做简单的需求,复杂需求却一拖再拖?那么,我们是时候开始考虑如何设置需求优先级了。 本期终极指南将展示如何为需求设置有效优先级,如何有效管理工作量,让效率指数倍增长,搭配 《 Scrum流程:如何科学地进行需求优先级排序 ?》 使用更佳! 一、如何设置优先级? 在Scru

需求太多处理不过来?MoSCoW模型帮你

MoSCoW模型是在项目管理、软件开发中使用的一种排序优先级的方法,以便开发人员、产品经理、客户对每个需求交付的重要性达成共识。

Docker容器共享磁盘

需求:.NET程序需要监控一个FTP上的文件变化并进行操作,在linux上使用原生目录时,不管怎么切换后台运行,总是会在一段时间运行后死掉。 方案:远程也不好debug,想了一下,干脆直接使用docker-compose运行,设置死了自动重启(restart=always)就完事了。 由于FTP与.

几个公司wiki知识库调研和感悟

@目录需求背景具体实现经验&吐槽小结 需求背景 公司准备做一个知识库,我这边调研了几个项目,也看了篇别人的经验文章传送门,如下 第一个是我们耳熟能详的confluence,但是好想要收费,先搁置 第二个是mindoc,是一个小型的开源项目,可以docker跑项目,上传文件直接映射到本地,使可以用my

从需求角度介绍PasteSpider(K8S平替部署工具适合于任何开发语言)

你是否被K8S的强大而吸引,我相信一部分人是被那复杂的配置和各种专业知识而劝退,应该还有一部分人是因为K8S太吃资源而放手! 这里介绍一款平替工具PasteSpider,PasteSpider是一款使用c#编写的linux容器部署工具(使用PasteSpider和自己用啥语言开发没关系哈!),简单易

奇葩需求记录 各个系统取数据联表展示

首先,我刚进公司没多长时间,然后介绍一下背景,这边是个工厂,上了很多个系统搞信息化,这边是有自己的研发团队的(C#),还做了一套系统出来搞生产管理。为了实现信息化呢,这边叫了很多个外包团队开发很多个系统,有些系统语言也不一样(java,C#,我甚至看到了jsp,不过也有springcloud),数据