UML之属性与参数的多重性
在UML中,多重性是指一个条目潜在的数量范围。多重性可被用于属性、操作参数、关联关系。UML元模型也使用多重性对元模型元素之间的关系进行约束。多重性总是包含基数值,它是相关条目在现实世界中的确切数量。本文将说明类属性和类操作参数的多重性。 一、属性的多重性 假设我们需要定义一个表示书的Book类,它 ...
导出 wireshark 网络包二进制数据的三种方法
wireshark 抓到的包想要进一步分析,如何保存成本地二进制文件?它导出的十六进制如何“喂”给 xxd?且听我一一道来 ...
详解AQS四:ReentrantLock条件队列原理
ReentrantLock的条件队列是实现“等待通知”机制的关键,本篇文章将会一行一行代码分析ReentrantLock显式锁中AQS队列和等待队列如何搭配实现等待通知机制的。 ...
循规蹈矩--从零开始建设k8s监控(一)
前言 监控k8s集群,目前主流就是使用prometheus以及其周围的生态,本文开始介绍怎么一步步完成k8s监控的建设 环境准备 组件 版本 操作系统 Ubuntu 22.04.4 LTS minikube v1.30.1 docker 24.0.7 prometheus v2.54.1 kube- ...
学习破解一个Android程序
首先编写一个android测试程序 功能:校验用户名和注册码,成功则弹出注册成功提示 以下仅给出关键部分的代码 res/layout/activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:androi ...
在 Ubuntu 上搭建 MinIO 服务器
本文介绍在服务器上单节点单硬盘部署 MinIO,并为其配置域名访问的过程。并给出了 SpringBoot 和 Flask 访问 API 实现文件上传下载的示例。 ...
ASP.NET Core 中的速率限制中间件的使用
简介 在ASP.NET Core中,速率限制中间件是用来控制客户端对Web API或MVC应用程序发出请求的速率,以防止服务器过载和提高安全性。 下面是 AddRateLimiter 的一些基本用法: 1. 注册服务 在 Startup.cs 或 Program.cs 中,需要注册 AddRateL ...
Python包管理不再头疼:uv工具快速上手
Python 包管理生态中存在多种工具,如 pip、pip-tools、poetry、conda 等,各自具备一定功能。 而今天介绍的uv 是 Astral 公司推出的一款基于 Rust 编写的 Python 包管理工具,旨在成为 “Python 的 Cargo”。 它提供了快速、可靠且易用的包管理 ...
FluentAssertions:C#单元测试断言库,让测试代码更加直观、易读!
推荐一个C#开源库,用于单元测试中的断言,它提供了一系列的扩展方法,使得单元测试的断言看起来更加自然流畅。 01 项目简介 FluentAssertions 是一个基于 .NET 的断言库,它提供了一种链式调用的方式来编写断言语句。支持框架.NET Framework 4.7、.NET Core 2 ...
记一次 .NET某工业视觉软件 崩溃分析
一:背景 1. 讲故事 前两天给训练营里的一位学员分析了一个dump,学员因为弄了一整天也没找到祸根,被我一下子弄出来了,极度想看看我是怎么分析的?由于在微信上不能一言两语表尽,干脆写一篇文章出来详细的讲讲吧,哈哈,训练营里的学员得有求必应哈。。。话不多说,我们一起探索下这个程序的崩溃之路吧。 二: ...
履约系统:发货单、配送单模型设计详解
大家好,我是汤师爷~ 概念模型设计是系统开发的关键步骤,它能帮助我们厘清业务逻辑并定义核心实体。我们将从订单履约的基本概念入手,深入探讨各实体间的关系。 履约域核心概念模型 如图展示了履约域的核心概念模型。 1、发货单 发货单是订单履约过程中的重要执行单据,它将订单转化为具体的发货任务。门店和仓储部 ...
主打一个“小巧灵动”:Vite + Svelte
在研发小型项目时,传统的Vue、React显得太“笨重”。本文主要针对开发小型项目的场景,谈谈Vite+Svelte是如何让项目变得“小巧灵动”,并横向对比Svelte和Vue的性能表现,对二者的加载流程做详细分析。 ...
鸿蒙OS高级技巧:打造个性化动态Swiper效果
前言 在鸿蒙OS的广阔天地中,开发者们有机会创造出令人惊叹的用户体验。最近,我着手设计一款具有独特滑动效果的Swiper组件,它在滑动时能够迅速进入视野,同时巧妙地将旧的cell隐藏到视线之外。本文将分享如何利用鸿蒙的Swiper组件,实现这一引人入胜的动态效果。 一、设计与构思 Swiper的设计 ...
Solon v3.0.5 发布!(Spring 生态可以退休了吗?)
新一代,面向全场景的 Java 应用开发框架。从零开始构建(非 java-ee 架构),有灵活的接口规范与开放生态。 ...
面试官:不会“不定高”虚拟列表,你在简历上面提他干嘛?
前言 很多同学将虚拟列表当做亮点写在简历上面,但是却不知道如何手写,那么这个就不是加分项而是减分项了。在上一篇文章欧阳教会你 如何实现一个定高虚拟列表 ,但是实际项目中更多的是不定高虚拟列表,这篇文章欧阳来教你不定高如何实现。PS:建议先看看欧阳的上一篇 如何实现一个定高虚拟列表 后再来看这篇效果更 ...
《老程序员的快乐刷题时代》题一:找单独的数
一、写在开头 哈喽,兄弟们!最近Build哥不是在搞那个年度人气创作者嘛(随便搞搞,嘿嘿,好心人给投下票呗),然后有个活动是刷算法题可以获得额外投票机会,于是乎,每天早上开工前的20分钟,俺就开始整上算法了,遥想上一次正儿八经的刷这种题还要追溯到五六年前,但是!现在又回首再刷,突然找到了年少轻狂时的 ...
重拾 iptables
iptables 是一个常看常忘的命令,本文试图从应用的角度理解它 iptables 是运行在用户空间的应用软件,通过控制 Linux 内核 netfilter 模块,来管理网络数据包的处理和转发 一些常用的场景 1. 禁止 ip 访问后端 IP 在 192.168.64.6 上增加规则: # -A ...
《HelloGitHub》第 105 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Pytho ...
Scoop: 开发者多环境管理利器
Scoop是什么? Scoop 是一个基于 Windows 的包管理器,能够帮助开发者高效管理开发环境和应用程序。 它推荐通过命令行进行包的安装、更新和卸载,同时提供了简单易用的包组织方式,透明化了安装和管理的过程。 与传统的 Windows 应用安装比较,Scoop 允许用户使用命令行将应用安装到 ...
并发编程 - 死锁的产生、排查与解决方案
多线程中死锁因资源争夺形成循环等待,必要条件为互斥、占有并等待、不可剥夺、循环等待。可用VisualStudio等工具排查,解决办法包括顺序加锁、尝试锁、超时机制、避免嵌套使用锁。 ...