自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 通用软件项目全技术栈综合能力评估 - 架构师级挑战

当一个基于Python asyncio的后台任务消费者(通过RabbitMQ接收消息)需要处理包含敏感数据(如PII)的任务时,为了安全地将这些敏感数据用于调用外部LLM API(如OpenAI),并记录处理日志到ELK Stack,最佳的秘密管理和日志脱敏实践组合是?当一个使用SQLAlchemy的应用需要执行一个非常复杂的、涉及多个JOIN和聚合的只读查询来生成报表,且该报表数据可以接受一定程度的延迟(例如,每天更新一次即可),为了最大化性能,以下哪种数据库层面的优化策略最为直接和有效?

2025-05-15 15:05:20 564

原创 通用软件项目技术报告 - 第一章节检测 - 参考答案

的值主要是用于等值或存在性检查,那么更常见的是使用B-Tree函数索引(如之前讨论的)或者利用 GIN 索引对特定路径进行索引(某些数据库或扩展可能支持更直接的语法,但标准做法是索引整个JSONB然后用操作符查询)。(方案全面性5分,每个优化点(索引、分区、物化视图、查询重写、参数调优)的方案和理由清晰各得1-2分,总分不超过10分。验证效果方法清晰完整得5分。(解释为何难实现得3分,策略设计中组件清晰得2分,关键步骤描述清晰且强调原子性和事务得6分,挑战或优化点讨论得2分。需要双向定义这个关系,并使用。

2025-05-15 14:47:31 752

原创 通用软件项目技术报告 - 第一章节检测

在MongoDB中,设计一个包含用户地址的Schema,如果用户的地址数量非常少(例如最多2-3个),且地址信息总是和用户信息一起被读取,但很少被独立查询或更新,那么最合适的建模方式是?在MongoDB Schema设计中,对于“一对非常多”(one-to-bazillions)的关系,比如用户和他的操作日志,通常推荐哪种处理方式?在MongoDB中,如果一个字段的值是一个数组,并且你需要频繁地根据数组中的某个元素值进行查询,应该考虑创建哪种类型的索引?

2025-05-15 14:36:07 558

原创 通用软件项目技术报告 - 术语词典

一个广泛使用的 JavaScript 编译器,可以将较新版本的 JavaScript 代码(如 ES6+)转换为向后兼容的旧版本,以便在旧的浏览器或环境上运行。一个 JSON 文件,提供了 Web 应用的信息(如名称、作者、图标、描述、启动URL、显示模式),用于将 Web 应用“安装”到设备主屏幕并提供类似原生应用的体验。PWA 的核心技术之一。在 Web 开发(特别是 API)中,负责将应用程序内部的数据对象转换为可以通过网络传输的格式(如 JSON),或者反过来将接收到的数据转换为内部对象的组件。

2025-05-14 20:48:24 686

原创 通用软件项目技术报告 - 导读IV(终)

我们已经详细讨论了 Kubernetes 的健康检查探针。这是确保应用在 K8s 中稳定运行和实现高可用的核心机制。接下来报告将进入 7.2.4 服务发现与负载均衡配置。在继续之前,关于 Liveness, Readiness, Startup Probe 的各自用途、它们如何通过不同的检查方式(HTTP, TCP, Exec)工作、以及如何通过配置参数(, , , )来精细控制它们的行为,您现在头脑中形成的整体画面是怎样的?这个发现对你理解 Kubernetes 是如何“智能地”照顾运行在其上的应用的“生

2025-05-14 18:38:37 631

原创 通用软件项目技术报告 - 导读III

现在,我们正式进入报告的第六个主要领域:6. 领域六:与第三方服务/API 集成 (含 LLM API)。连接:在现代软件开发中,很少有应用程序是完全孤立的。我们经常需要与各种外部的第三方服务或 API 进行集成,以利用它们提供的特定功能(如支付处理、地图服务、社交媒体登录、云存储服务)或获取特定的数据。近年来,与大型语言模型 (LLM) API 的集成也变得越来越普遍和重要。这个领域关注的是,当我们的应用程序需要“走出去”与这些外部系统“对话”时,应该如何进行,以及会遇到哪些挑战。开篇摘要与战略定位:

2025-05-14 18:37:39 791

原创 通用软件项目技术报告 - 导读II

现在,我们正式进入报告的第三个主要领域:3. 领域三:核心业务逻辑与算法实现。连接:我们已经讨论了如何存储数据(领域一)和如何设计 API 让外部或内部服务可以访问这些数据或触发操作(领域二)。现在,我们将深入应用程序的“心脏”——实际执行业务规则、进行计算和(如果需要)应用特定算法的代码。这部分直接决定了应用程序能否正确、可靠地完成其核心功能。开篇摘要与战略意图探寻:本章聚焦于应用程序的核心业务逻辑和算法的实现。它探讨了如何选择和使用合适的库来处理特定的计算(如精确计算、日期时间),如何将外部算法(如

2025-05-14 18:35:14 780

原创 通用软件项目技术报告 - 导读I

这两部分主要讨论的是如何为应用程序设计数据的“骨架”和“蓝图”,也就是数据库 Schema 设计。它们首先对比了两种不同类型的数据库——**PostgreSQL(关系型数据库,像Excel表格一样结构清晰)和MongoDB(文档数据库,像灵活的文件夹,里面可以放各种格式的文件)**在设计数据结构时的核心理念和特点。随后,以一个具体的例子——为PostgreSQL数据库设计一个“用户配置表”——详细展示了如何定义表中的每一个字段(比如用户ID、配置项名称、配置内容等)、它们的数据类型(比如数字、文本、日期)、

2025-05-14 18:32:01 737

原创 通用软件项目技术报告

1. 领域一:数据建模与数据库交互** 1.1 数据库 Schema 设计 (PostgreSQL vs. MongoDB 示例) 1.1.1 用户配置表 Schema 设计 (PostgreSQL) 1.1.1.1 字段定义(名称、类型、约束) 1.1.1.2 主键与唯一性约束 1.1.1.3 索引策略 1.1.2 事件日志集合 Schema 设计 (MongoDB).......

2025-05-14 18:08:59 487

原创 软件工程效率优化:一个分层解耦与熵减驱动的系统框架

本报告构建了一个全面、深入、分层的软件工程效率优化框架,旨在超越简单的技术罗列,从根本的价值驱动和熵减原理出发,系统性地探讨提升效率的策略与实践。框架强调,软件工程效率的核心在于管理日益增长的系统复杂性,并有效优化三大核心资源:**时间**(开发周期、运行速度)、**空间**(计算、存储)以及尤为关键的**认知资源**(理解、维护成本)。通过引入**分层、解耦、抽象、标准化、自动化**等核心优化策略,并结合**领域驱动设计(DDD)、正交设计原则、认知负荷理论**等思想,本框架逐层解析了从基础原理(层级0)

2025-04-25 21:30:22 1111

原创 408知识点自检(一)

一、细节题二、论述题未完待续...

2024-10-02 09:14:10 1033

原创 算法学习笔记——专题拓展5:并查集(Union-find)算法

并查集(Union-Find)算法是一个专门针对「动态连通性」的算法,同时它也是最小生成树算法的前置知识。

2024-04-25 23:33:55 459

原创 算法学习笔记Day8——回溯算法

1.回溯算法是什么?回溯算法就是个多叉树的遍历问题,关键在于在前序和后序时间点做一些操作,本质是一种暴力枚举算法,它和DFS非常相似,区别在于,回溯算法关注点在于树的树枝,DFS关注点在于树的节点。2.回溯算法的技巧站在一棵决策树的节点,需要考虑三个问题:1、路径:也就是已经做出的选择。2、选择列表:也就是你当前可以做的选择。3、结束条件:也就是到达决策树底层,无法再做选择的条件。3. 回溯算法的框架(规律)def backtrack(路径,选择列表){if(满足结束条件){

2024-04-25 23:02:45 854

原创 算法学习笔记Day9——动态规划基础篇

第一个斐波那契数列的问题,解释了如何通过「备忘录」或者「dp table」的方法来优化递归树,并且明确了这两种方法本质上是一样的,只是自顶向下和自底向上的不同而已。第二个凑零钱的问题,展示了如何流程化确定「状态转移方程」,只要通过状态转移方程写出暴力递归解,剩下的也就是优化递归树,消除重叠子问题而已。计算机解决问题其实没有任何特殊的技巧,它唯一的解决办法就是穷举,穷举所有可能性。算法设计无非就是先思考“如何穷举”,然后再追求“如何聪明地穷举”。递归是自顶向下,迭代是自底向上。

2024-04-24 20:54:48 663 1

原创 算法学习笔记Day7——二叉树全解

遍历:遍历一遍二叉树得到答案,遍历方式:用一个 函数配合外部变量来实现(回溯算法)traverse也是递归遍历,特点是在递归过程中更新外部变量。递归:定义一个递归函数,通过子问题的答案推导出原问题的答案,递归方式:写出这个递归函数的定义,并利用这个函数的返回值,分解问题(动态规划)i)前序位置的代码在刚刚进入一个二叉树节点的时候执行;ii)中序位置的代码在一个二叉树节点左子树都遍历完,即将开始遍历右子树的时候执行。(很多多叉树没有中序位置,因为一个节点没有唯一的中序遍历位置。)iii)后序位置的代码在将要

2024-04-17 21:00:33 425

原创 算法学习笔记——专题拓展4:DFS 算法解决岛屿题目

i)淹没岛屿的作用是,不需要维护visited数组ii)框架:在主函数里,遍历每个块,每当遇到一个大陆,就用dfs去淹没它;dfs里,如果越界或者已经访问过这个块,直接返回,否则,递归访问它的相邻块。维护一个全局变量,dfs的函数里面对它做出更新,然后在主函数返回。

2024-04-17 20:58:12 501

原创 算法学习笔记——专题拓展3:二分搜索

i)C++中找到向量的最大元素的迭代器:max_element( vector.begin(), vector.end()), 取最大值还需要加*II)C++中的求数组元素和,accumulate(vector.begin(), vector.end(), 0), 0表示初始值。

2024-04-12 21:55:18 326

原创 算法学习笔记——专题拓展2:数组双指针经典习题

i)对迭代器的增减不会改变数组的长度。ii)截取字符串用 s.substr( begin, length);选取区间是[begin, begin + length), 拼接字符串简单的+就可以。iii)string中的erase:按位置删除:s.erase(int ),直接从第int个位置删除,并且截断字符串(后面的不看了)按位置和长度删除多个字符: s.erase(n, len), 从 n开始删除 len个,不截断,保留后面的。

2024-04-12 14:44:44 450

原创 算法学习笔记Day6——二维数组的花式遍历

矩阵的螺旋遍历的通用模板,设置上下左右四个边界,然后用四个for循环去遍历,i的起始就是螺旋的方向,比如left -> right, up -> down,每铺一层,那一层的变量就对应的增减。

2024-04-11 23:54:26 244

原创 算法学习笔记——专题拓展1:一个方法团灭nSum问题

技巧:1. 如何在排序后保持原数组的下标信息?答:创建一个vector<pair<int, int>> 向量,其中包含下标信息,排序的时候会跟着排序,并且排序默认使用pair的第一个变量排序2. 如何通过迭代器得到下标?答: 使用 distance(nums.begin(), iterator)3. 如何找到某个数字在数组中第一次出现的位置?答: 使用 find( nums.begin(), nums.end(), integer ),得到的是迭代器,如果没有找到返回 nums.end()

2024-04-10 10:34:14 422 1

原创 算法笔记Day5——经典数组技巧:差分数组

前缀和实际上就是求积分(离散),差分就是求导,它们之间互为逆运算。前缀和主要适用于原数组不变,频繁查询某个区间的累加和。差分适用于频繁对某区间的元素进行增减(原数组要变),如果是原数组来操作的话,每次区间加减都需要O(N)的时间复杂度,但是差分数组只需要O(1)的时间复杂度,很多次加减操作的话,这个差距就很大了,差分数组回到原数组需要O(N)的时间复杂度,但是只需要一次。

2024-04-10 01:39:26 315 1

原创 算法学习笔记Day4——经典数组技巧:前缀和数组

后面两个都是i-1, sums数组记得要resize到n+1,因为前0个是一个都不取。

2024-04-08 23:50:10 410

原创 算法学习笔记Day3——双指针技巧之数组

分析:记录遇到0的次数,最后把0一次性输出到数组末尾即可。 主要用来解决子数组/子串问题,比如最大/最小子数组;思路就是维护一个窗口,然后不断滑动来更新结果。因为left和right指针都不会回退,所以每个元素都只会进入窗口一次,出窗口一次,所以复杂度为O(N)。分析:代码:曾经写的C代码:滑动窗口+模式选择(通过判断当前窗口是否包含所有字符来决定左指针还是右指针滑动),预计C++能节省很多代码量这次写的C++代码: 总结:分析:巧妙思路:使用左右指针,right每次遇到一个字母,在日记本里面查找le

2024-04-08 00:32:38 747

原创 算法学习笔记Day2——双指针技巧之单链表

i). 链表的尽头判断是用 List!= nullprt,而不是List->next!ii). 拼接最后的部分不需要用两个while,直接把节点的结构体赋值过去就可以了。iii). C++中所有NULL都用nullptr代替,为了迎合C++的重载特性。(*NULL 在C++ 里表示。

2024-04-06 22:37:26 1768 1

原创 算法学习笔记Day1 ——数据结构和算法的框架思维

对于任何数据结构,所进行的操作无非就是遍历+访问,具体一点就是增删改查,遍历方式分为线性(for/while)和非线性(递归),数组是典型的线性遍历,链表是二者结合,二叉树就是典型的递归遍历。其中数组特点是物理上连续、结构紧凑,支持随机访问,但是O(N)增删,因为需要平移数组;是数组(顺序存储)和链表(链式存储),不管是哈希表、树、图、堆栈、队列等,其基本实现方法都只有数组和链表两种。的题目,培养框架思维,因为所有递归算法都是树的遍历,这样在后续学习DP和回溯等算法时会势如破竹。

2024-04-05 20:53:19 289 1

原创 Leecode刷题日记Day4(数组、滑动窗口)

滑动窗口专题。

2024-03-15 21:18:13 1389 1

原创 Leecode刷题日记Day3(双指针)

这道题主要是分析,从两边开始移动,要是让装水最多肯定是移动短的那边,移动长的那边不可能有提升,还会下降,因为间隔在下降,移动短边还有一线生机。同时有保存最好记录的思想在里面,如果有更好的情况再更新,我称之为骑驴找马法。新颖的点:用哪个字符串先到达了末尾来判断是否是其子序列。这种递增的数列可以试试用双指针放两头,往中间走逼近结果。宏定义函数不能够函数嵌套!

2024-03-15 04:06:16 471 1

原创 Leecode刷题日记Day2(数组、字符串)

注意这里最远处能够覆盖其他所有的情况,所以不用考虑其他的,考虑最远的即可。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。为了方便判别,先对字符串进行预处理,把所有非目标字符换成空格,这件事情可以在确定数组长度的时候做,顺便把大小写给统一了,一举两得。向前跳转的最大长度。

2024-03-15 02:18:17 1471 1

原创 Leecode刷题日记Day1(数组)

要求:每道题学习一到两个优美简洁算法,并且要自己独立复刻一遍。

2024-03-14 16:18:25 484 1

原创 杭电操作系统实验5-简单文件系统的实现

【代码】杭电操作系统实验5-简单文件系统的实现。

2024-01-01 02:52:29 1155

原创 JavaWeb开发学习笔记

一、Web前端的介绍一、Web前端的介绍HTML、CSS和JavaScript(JS)是中的三个核心标准,它们分别用于定义网页的结构、样式和行为。HTML是一种标记语言用于定义网页的。它使用一系列的标签(例如等)来标记文本、图像、链接等元素,并指定它们的层次关系和布局。HTML提供了一种结构化的方式来组织和呈现网页的内容。CSS是一种样式表语言,用于定义网页的。通过使用CSS,可以为HTML元素应用各种样式,如颜色、字体、背景、边框等。

2023-06-13 22:39:04 136

原创 JSP和JSTL学习笔记

1、JSP (JavaServer Pages)是一种将 Java 代码嵌入到 HTML 页面中的技术,它允许开发人员在网页中嵌入动态生成的内容。2、JSP 页面中可以包含 Java 代码块、表达式和声明,这些代码会在服务器端执行,并生成动态的 HTML 内容,然后发送给客户端浏览器。补充:Servlet 通常用于处理业务逻辑、数据处理和与数据库交互等任务。Servlet 接收来自客户端的请求,根据请求的内容进行相应的处理,然后生成响应并发送回客户端。

2023-06-09 16:28:04 203 1

原创 Servlet学习笔记

这篇学习笔记探索了Servlet的基本概念和相关技术。文章首先介绍了HTTP协议的基本原理和Tomcat服务器的作用,作为理解Servlet的基础知识。然后,文章深入讨论了如何实现一个Servlet,包括创建Servlet类、配置Servlet映射和处理HTTP请求的过程。同时,笔记详细解释了Servlet的生命周期,包括初始化、请求处理和销毁阶段。在处理HTTP请求和响应方面,学习笔记介绍了ServletRequest和ServletResponse对象的功能和使用方法。

2023-06-08 23:56:44 326 1

原创 完全与多重背包问题解法

完全背包和多重背包问题的解法

2023-06-04 05:18:06 556 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除