记录一下2024年10月18号和前同事的一次模拟面试
敏捷开发敏捷开发是一种以迭代和增量的方式来开发软件的流程,它注重团队协作、快速反馈以及应对变化的能力。在敏捷开发中,Sprint(冲刺) 是一个核心概念。下面我为你总结了敏捷开发流程中的Sprint、迭代节奏、和时间周期:
1. Sprint(冲刺)
Sprint 是敏捷开发的基础单位,通常是一个固定时间周期,通常为1到4周。
每个 Sprint 都是一个小型迭代周期,在这个周期中,团队需要完成一定数量的工作(通常是具体的功能、用户故事或任务)。
目标是在每个 Sprint 结束时交付一个可工作的产品增量,即使不一定是完整产品,也应该是能够演示或发布的可用功能。
2. 迭代节奏敏捷开发的迭代节奏是基于 Sprint 的。团队会按照以下步骤循环进行开发:
Sprint 计划会议(Sprint Planning):
在每个 Sprint 开始时,团队会召开计划会议,确定当前 Sprint 的目标和待完成的任务。这些任务一般从产品待办事项列表(Product Backlog)中选取,并拆分成更小的用户故事(User Stories)或任务(Tasks)。
团队会评估每个任务的工作量,并 ...
JavaScript中的闭包
定义闭包(closure)是一个函数以及其捆绑的周边环境状态(lexical environment,词法环境)的引用的组合。换而言之,闭包让开发者可以从内部函数访问外部函数的作用域。在 JavaScript 中,闭包就是能够读取其他函数内部变量的, 闭包会随着函数的创建而被同时创建。
作用
本部分例子来自chatgpt
创建私有变量
1234567891011function createCounter() { let count = 0; return function() { count++; return count; };}const counter = createCounter();console.log(counter()); // 输出 1console.log(counter());
保持函数执行上下文
12345678910function outer() { let name = "John"; return functio ...
使用docker-compose备份Postgres Docker容器的解决方案
使用docker-compose备份Postgres Docker容器的解决方案备份使用pg_dumpall命令备份Postgres数据库。
1docker-compose exec <postgres_service> pg_dumpall -U postgres > dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql
docker-compose exec <postgres_service> 在名为<postgres_service>的Postgres容器上执行命令。
-U postgres 指定数据库的用户名。Docker的默认用户名是postgres,如果你使用不同的用户名,请进行修改。
恢复将dump_date +%Y-%m-%d”“%H%M_%S.sql文件放置在backup文件夹中。
然后使用Docker卷将backup文件夹绑定到Postgres容器上:
12volumes: - ./backup:/backup
删除现有的Postgres容器并创建一个新的容器:
1do ...
如何在10分钟内使用LangChain
如何在10分钟内使用LangChainLangChain是一个强大的Python和Javascript/Typescript库,它可以让你快速地原型化大型语言模型应用。它允许你将LLM任务链在一起(因此得名),甚至可以让你快速轻松地运行自主代理(autonomous agents)。今天,我们将介绍chain的基础知识,这样你就可以立即开始你最新的LLM项目。
前言本文主要讨论了LangChain的使用和优势。LangChain是一个对于希望快速创建大型语言模型应用的人来说非常有用的工具。它可以在几分钟内创建链、定义提示,甚至将多个LLM调用链接在一起以创建动态的TikTok脚本。
LangChain的优势在于其简单性和灵活性。无论你是经验丰富的开发者还是刚刚起步,LangChain的直观设计都让你能够像从未有过的那样利用大型语言模型的能力。从生成创意内容到运行自主代理,可能性是无穷无尽的。
此外,如果你正在寻找将AI集成到你现有的工作流程或产品中,TimeSurge Labs可以提供帮助。他们专注于AI咨询、开发、内部工具和LLM托管,他们的团队致力于构建AI的未来,并帮助 ...
使用bazel构建spring boot项目
前言根据官网的定义,Bazel是类似于Make,Maven和Gradle的开源构建和测试工具。它使用人类可读的高级构建语言Starlark(一种基于python的方言)。 Bazel支持多种语言的项目,并为多种平台构建输出。
从我个人角度来看,bazel是一个强大且复杂的构建系统,通过build rule的概念,支持多种语言、不同平台,支持构建C/C++,Java,Android,IOS,Golang,Nodejs,Docker项目
本文的目的是使用bazel去构建并运行一个spring boot项目。
配置bazel编译java项目在项目根目录中创建.bazelrc文件,设置bazel使用java17构建:
12build --java_language_version=17 --java_runtime_version=17 --tool_java_language_version=17 --tool_java_runtime_version=17test --java_language_version=17 --java_runtime_version=17 --t ...
Podman的hello world入门
前言Podnam是一个符合OCI,用于在 Linux® 系统上开发、提供了与 Docker 等类似的功能来管理容器。管理和运行容器开源工具。 Podman 最初由 Red Hat® 工程师与开源社区一起开发。Podman使用 libpod 库管理整个容器生态系统。
安装如果你使用Macos, 可以使用homebrew安装:
1brew install podman
安装之后就可以创建和启动Podnam虚拟机:
12podman machine initpodman machine start
如果你使用Debian 或者 ubuntu, 可以使用apt-get命令安装:
12sudo apt-get install runc -ysudo apt-get -y install podman
其他系统可能参考podman安装页面
注意:对于 Windows 和 Mac,podman 需要一个虚拟机来部署容器。
配置默认情况下,Podman 配置有两个容器注册表。
quay.io
docker.io
我们可以在·/etc/containers/ ...
2023年度总结
2023年度总结2023年就这样子莫名其妙的过了,又是稀里糊涂的一年。这一年,和最爱的人去了一趟西藏,圆了她心心念念的梦想;这一年,坐了30多小时的火车,跨越千里去见证一段美好的爱情;这一年,参加了加入PWC以来第二次的线下年会,疫情总算是过去了。
美好的西藏其实是先从上海到成都出发,在成都带了两天,陪她那只叫做花花的大熊猫。 其实19年时候我去过成都大熊貓繁育研究基地,那个时候还没有花花,也没有那么多的游客,当然也有可能我去的是淡季,不过总算是满足她的心愿了。吃了当地的特色,三大炮,鸡豆花,兔腿,麻婆豆腐,其实那个陈麻婆的那个夫妻肺片还是很有特色的,不辣,有点甜,和紫燕百味鸡的那个压根就不一样的。
我们是报了一个旅行团,四个人,一个司机。除了我们之外,还有一个山东小哥,一个四川小伙。山东小哥是真的很社牛,和什么人都能聊起来,喜欢旅游,朋友圈三天两头出去玩,晒各地的美景。四川小伙是拿到美国一家博士的offer了,想在出国前能够好好放松一下。四个人一个司机,就这样子从成都沿着318国道出发了。
去了很多地方,但是我没记住,因为这不是我热爱的,吃了很多美食,我记住了它们的味道,永远不会忘记 ...
学习multipass笔记
前言Multipass 是一个轻量虚拟机管理器,是由 Ubuntu 运营公司 Canonical 所推出的开源项目。运行环境支持 Linux、Windows、macOS。在不同的操作系统上,使用的是不同的虚拟化技术。在 Linux 上使用的是 KVM、Window 上使用 Hyper-V、macOS 中使用 HyperKit 以最小开销运行 VM,支持在笔记本模拟小型云。
同时,Multipass 提供了一个命令行界面来启动和管理 Linux 实例。下载一个全新的镜像需要几秒钟的时间,并且在几分钟内就可以启动并运行 VM。
安装在window环境下进行部署,下载最新安装包:https://github.com/canonical/multipass/releases/
创建vm创建实例
1multipass launch -n k3s-master -c 2 -m 4G -d 10G
查看实例
1234multipass listName State IPv4 Imagek3s-master ...
HorizontalPodAutoscaler入门实践
HorizontalPodAutoscaler在Kubernetes中,HorizontalPodAutoscaler 自动更新工作负载资源(例如Deployment或者StatefulSet),目的是自动扩缩工作负载以满足需求。水平扩缩意味着对增加的负载的响应是部署更多的 Pod。
本文目的是通过Docker Desktop上的Kubernetes实例去实践pod的水平扩展。
本文默认Docker Desktop上的Kubernetes已经安装完成。如果需要帮助,可以阅读Docker Desktop自带k8s安装笔记。
安装 Metrics server由于Docker Desktop上的Kubernetes默认并没有安装Metrics server,而HorizontalPodAutoscaler依赖通过Metrics server获取到的数据, 因此需要提前安装。
12kubectl top node error: Metrics API not available
从Metrics server的release页面获取最新的components.yaml文件,
然后执行:
1 ...
如何使用bazel去构建基于express和typescript的nodejs项目
前言Bazel 是一款类似于 Make、Maven 和 Gradle的开源构建和测试工具。它使用可读的高级构建语言,支持多种变成语言编写的项目,并且能够为多个平台进行构建。Bazel 支持构建包含多个仓库、大量开发人员的大型代码库。
详细介绍可见Bazel官网。
目的本文的目的是使用bazel5去构建一个完整的nodejs后端项目,并不负责bazel相关知识的介绍。
配置首先在package.json文件中·devDependencies·部分添加:
1234"@bazel/bazelisk": "^1.7.5","@bazel/buildifier": "^6.0.0","@bazel/ibazel": "^0.16.0","@bazel/typescript": "^5.8.1",
然后再执行安装依赖命令。
创建.bazelignore文件并写入下面的内容:
123.gitnode_modulesdist
创建.baze ...