- 博客(80)
- 收藏
- 关注
原创 DDD(领域驱动设计)详解
后端 DDD 的精髓在于:以真实业务为中心进行建模,控制复杂度,提升长期演进能力。真正掌握 DDD,不是掌握了一堆术语,而是能用业务语言自然地解释系统设计背后的每一个决策。
2025-04-28 22:41:22
787
原创 在前端应用领域驱动设计(DDD):必要性、挑战与实践指南
前端 DDD 并非生搬硬套后端 DDD 的全部内容,而是有选择地引入领域建模思想,以提升前端代码的可维护性、可扩展性和与业务的一致性。按领域划分代码结构:不再按技术栈(components、services、pages)划分,而是按业务领域(如order/user/inventory/)组织。建立领域模型(Domain Model):在前端维护独立的数据结构与核心业务逻辑,而非直接使用后端接口返回的数据。应用防腐层(ACL)
2025-04-28 22:37:54
630
原创 使用 Exporter + Prometheus Pushprox(高级用法)
设备(如云主机、IoT 设备等)没有公网 IP,Prometheus 服务器无法直接拉取其 metrics。但这些设备可以主动访问 Prometheus 服务器。
2025-04-16 11:29:11
241
原创 supervisord的常用命令
以配置文件启动 Supervisor 进程。reread只检查新修改的配置,不会立即应用;update则真正应用配置到 Supervisor。shutdown彻底关闭 Supervisor;之后需要手动用重新启动。
2025-04-01 11:20:30
270
原创 linux apt安装docker
3. 添加 Docker 官方 GPG 密钥。4. 添加 Docker 官方 APT 源。在 Ubuntu 24.04 上使用。7. 验证 Docker 是否安装成功。8. (可选)允许当前用户无需。6. 安装 Docker。
2025-04-01 11:12:37
277
原创 gitlab 提交pr
这样,你就成功提交了一个 GitLab PR(Merge Request)。如果你需要在 GitLab CI/CD 中自动运行测试或构建流程,可以在。你的团队成员会进行代码审核,可能会要求你做一些修改。如果你的 Merge Request 通过了审核,可以点击。如果仓库设置了自动删除合并的分支,你的。将新分支推送到远程仓库。
2025-03-18 10:51:55
485
原创 console 对象
console提供了多种方法帮助我们调试代码和分析数据,常用的有logwarnerrorinfo等,其他功能如计时(time)、分组(group)和表格展示(table)则用于更复杂的调试需求。你可以根据不同的调试需求选择适合的函数。
2025-01-20 09:28:46
327
原创 css 原子化
原子化 CSS是一种有效的 CSS 设计模式,它通过拆分样式成最小的单元,使得样式可以灵活组合和复用。通过使用像这样的工具,你可以在项目中方便地实现这种设计模式,快速构建响应式、灵活的 UI,同时保持样式的可维护性和简洁性。不过,要避免过度依赖原子类而导致 HTML 中类名过多,合理的管理和优化工具可以帮助保持代码的清晰和性能的高效。
2025-01-16 16:51:29
1321
原创 react中的hook
React 的 Hook 提供了许多强大的功能,使函数组件能够处理状态、生命周期、引用等。掌握这些常用的 Hook,能够帮助你在开发中写出更加简洁、可维护的代码。
2025-01-16 16:24:57
1000
原创 python 执行任务进度条展示
你可以为进度条设置描述,显示任务的详细信息。# 设置描述信息如果你在某些自定义任务中需要手动更新进度条,可以通过# 手动控制进度条pbar = tqdm(total=100, desc="Processing") # 创建进度条pbar.update(1) # 每次更新进度基本使用:通过for循环和tqdm包装可以轻松显示进度条。多线程/多进程tqdm可以与或配合使用。手动更新:通过可以手动更新进度条。通过tqdm,你可以很容易地在 Python 脚本中展示任务的进度。
2025-01-16 09:52:14
416
原创 Ts反向约束类型
问题:函数func(x) 要求x不能是number类型在 TypeScript 中,反向约束(即,要求某个参数不能是某种类型)可以通过(Conditional Types)和(Excluding Types)来实现。你提到的需求是:定义一个函数,要求某个参数x不能是number类型。我们可以利用 TypeScript 的Exclude工具类型来实现这一功能。
2025-01-10 18:14:27
291
原创 前端学习网络
前端与网络的学习重点包括理解 Web 请求和响应的基本协议,掌握如何与后端交互,以及如何优化网络性能。随着技术的发展,了解 HTTP/2、WebSocket、GraphQL 等新技术将帮助你构建更高效、更现代的前端应用。
2025-01-08 17:27:04
1056
原创 js new Set()、new Map()、new WeakSet()、new WeakMap()
特性SetMapWeakSetWeakMap存储类型任意类型(唯一值)键值对(任意类型)只能存储对象键为对象,值为任意类型是否支持迭代是是否否键的类型任意类型任意类型(键为对象类型)只能存储对象键为对象垃圾回收支持否否是(弱引用对象)是(弱引用键)使用场景存储唯一的值存储键值对存储对象,自动回收存储对象键值对,自动回收。
2025-01-07 10:57:21
806
原创 js 获取浏览器指纹
/ 可选:通过特殊方法获取字体// 可选:通过Canvas获取指纹return {userAgent,language,plugins,fonts,canvas// 可选:获取 Canvas 指纹', 2, 2);// 可选:获取已安装字体列表// 获取浏览器指纹使用库是最简便和可靠的方法来生成浏览器指纹。如果不依赖第三方库,可以通过获取浏览器的基本信息、Canvas 和字体等方式生成自定义指纹。
2025-01-07 10:14:40
1399
原创 浏览器的渲染原理
HTML 解析:构建 DOM 树。CSS 解析:构建 CSSOM 树。构建渲染树:根据 DOM 和 CSSOM 树结合生成渲染树。布局:浏览器计算每个元素的确切位置和大小。绘制:根据布局信息绘制每个元素的视觉表现。在这个过程中,CSS 的解析和应用遵循层叠规则、选择器优先级、继承和默认值等原则,确保最终样式的正确应用。如果某些样式没有明确值,浏览器会根据这些规则决定如何处理。
2025-01-03 15:16:30
778
原创 axios 实现进度监控
使用和可以实现文件的上传和下载进度监控。你可以根据获取到loaded和total字段,计算出上传或下载的进度百分比。可以结合浏览器的<progress>元素或自定义进度条来显示上传或下载的进度。axios提供了非常简单且直接的方式来实现文件的进度监控,适用于大文件的上传和下载场景。通过这些方法,你可以轻松地在前端实现文件上传和下载的进度显示。
2025-01-02 17:21:50
1555
1
原创 大O表示法
假设有一个算法,输入规模为 nnn,该算法的运行时间或空间复杂度为 T(n)T(n)T(n)。我们说该算法的时间复杂度是 O(f(n))O(f(n))O(f(n)),其中 f(n)f(n)f(n) 是一个函数,它描述了输入规模 nnn 增大时,算法运行时间或空间需求的增长率。大O表示法忽略了常数因子和低阶项,专注于描述增长速度。大O表示法提供了一种标准化的方式来描述和比较算法的效率,帮助我们在设计算法时进行性能分析。
2025-01-02 16:58:08
451
原创 vmin、vmax
在 CSS 中,vmin和vmax是相对于视口(viewport)尺寸的单位,主要用于响应式设计,可以帮助元素根据视口的大小灵活调整。
2025-01-02 16:49:18
393
原创 js 用2进制来表示权限
在 JavaScript 中,可以使用二进制来表示权限,常用于访问控制或角色权限管理。通常通过位运算来进行处理。每个权限可以对应一个二进制位,通过按位操作(如与、或、异或)来设置、清除或检查权限。
2025-01-02 16:43:47
239
原创 js 文档注释
JSDoc 是 JavaScript 开发中用于提高代码可维护性和可读性的一个重要工具,它不仅帮助开发者理解代码的功能,还能自动生成 API 文档。合理使用 JSDoc 可以使你的代码更加清晰、规范,尤其是在团队合作时非常有用。
2025-01-02 15:44:48
935
原创 function 拥有的方法和属性
是一种特殊的对象类型,因此函数也拥有自己的方法和属性。对象的基础功能,广泛用于函数调用、上下文绑定和动态行为扩展。这些方法可以直接通过函数实例调用。在 JavaScript 中,
2024-12-26 10:20:19
803
原创 js 深度克隆
深度克隆(Deep Clone)是指复制一个对象或数组及其所有嵌套结构的副本,使得克隆后的对象与原对象完全独立。JavaScript 提供了一些方法实现深度克隆,但每种方法有其优缺点。是一种内置的深拷贝方法,支持复杂数据结构。通过递归遍历对象和数组,手动实现深拷贝。对于有循环引用的对象,需要使用。这种方法最简单,但有局限性。来避免递归陷入死循环。
2024-12-23 10:52:25
581
原创 js 数据类型以及typeof的关系
运算符可以检查数据类型,但有一些特殊情况需要注意。运算符可以检查数据类型,但有一些特殊情况需要注意。在 JavaScript 中,数据类型分为。在 JavaScript 中,数据类型分为。返回一个字符串,表示操作数的数据类型。
2024-12-23 10:13:09
214
原创 css 裁剪 clip-path
是一个强大的 CSS 属性,用于裁剪元素的可视区域,支持多种形状裁剪。它可以用来创建复杂的裁剪效果,如圆形、多边形、路径等。
2024-12-23 10:06:24
420
原创 前端需要学什么
作为前端开发者,学习的内容不仅仅局限于 HTML、CSS 和 JavaScript。无论选择什么方向,保持好奇心和学习动力是最重要的!
2024-12-16 16:35:36
969
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人