DevOps 套件:工程团队的实用工具(赞助)
DevOps 模型可以帮助您更快地构建软件、自信地交付应用程序,并打破整个工程组织中的孤岛。立即获取 Datadog 提供的实践资源:
-
2 本关于在开发和运营领域扩展 DevOps 实践的电子书
-
从 CI/CD 到生产环境的全栈可视性解决方案简介
-
关于使用可观察性数据来自动化和改进工作流程的技术讲座
本周的系统设计复习:
-
URL缩短器如何工作?(YouTube视频)
-
16 种让面试更轻松的编码模式
-
如何学习数据库?
-
当您在浏览器中输入 URL 时会发生什么?
-
HTTPS 如何工作?
-
Netflix 的规模化演进
-
早期团队招聘工程师
-
赞助我们
URL 缩短器如何工作?
16 种让面试更轻松的编码模式
-
双指针技术
-
哈希图
-
链表
-
快指针和慢指针
-
滑动窗口技术
-
二分查找
-
堆栈
-
堆
-
前缀和
-
树木
-
特里斯
-
图表
-
回溯
-
动态规划
-
贪婪算法
-
间隔
交给你:你会将哪种其他编码模式添加到列表中?
发货延迟?DevStats 告诉你原因。(赞助)
还在假装你的送货问题是个谜吗?其实不然。你只是没找到正确的地方。
DevStats 让工程领导者清楚地了解交付失败的地方,这样您就可以修复流程而不是指责别人。
✅ 像成年人一样追踪 DORA 和流量指标
✅ 发现工作停滞、倦怠风险和老化问题
✅ 缩短周期时间,无需偷工减料
✅ 发货更快,意外更少。
更多的人工智能工具并不能解决你的交付问题。更高的清晰度才能。
如何学习数据库?
数据库为网站、应用程序以及企业系统等各种应用提供支持。以下学习地图可以帮助您掌握数据库:
-
数据库基础知识
这包括“什么是数据库”、RDBMS、SQL 与 NoSQL、ACID 与 BASE、OLTP 与 OLAP、事务和隔离级别等主题。 -
数据模型和类型
包括关系数据库、非关系数据库和数据类型(整数、字符串、布尔值、日期、JSON 等)等主题。 -
查询和语言
这包括 SQL 基础(SELECT、INSERT 等)、高级 SQL(视图、索引、CTE 等)和 NoSQL 查询(聚合和键值查找)等主题。 -
索引和优化
包括索引(B 树、哈希和位图)、查询执行计划、非规范化与规范化、分片、连接池和查询批处理等主题。 -
安全性、备份和扩展
这包括用户角色、权限、加密、SQL 注入、高可用性(复制和故障转移)、水平与垂直扩展等主题。 -
工具和生态系统
包括流行 SQL 数据库、NoSQL 数据库、GUI 工具、ORM、云数据库服务(RDS、DynamoDB、Google Cloud SQL 等)等主题。
交给你:你还会在学习数据库的列表中添加什么内容?
当您在浏览器中输入 URL 时会发生什么?
让我们一步一步地看一下这个过程。
步骤 1:用户在浏览器中输入 URL(bytebytego.com)并按 Enter 键。我们需要做的第一件事是将 URL 转换为 IP 地址。映射关系通常存储在缓存中,因此浏览器会在多层缓存中查找 IP 地址:浏览器缓存、操作系统缓存、本地缓存和 ISP 缓存。如果浏览器在缓存中找不到映射关系,则会请求 DNS(域名系统)解析器进行解析。
第 2 步:如果在任何缓存中都找不到该 IP 地址,浏览器将转到 DNS 服务器进行递归 DNS 查找,直到找到该 IP 地址。
步骤3:现在我们有了服务器的IP地址,浏览器向服务器发送HTTP请求。为了安全地访问服务器资源,我们应该始终使用HTTPS。浏览器首先通过TCP三次握手与服务器建立TCP连接。然后,浏览器将公钥发送给客户端。客户端使用公钥加密会话密钥并将其发送给服务器。服务器使用私钥解密会话密钥。现在,客户端和服务器可以使用会话密钥交换加密数据。
步骤 4:服务器处理请求并返回响应。成功响应的状态码为 200。响应包含三个部分:HTML、CSS 和 JavaScript。浏览器解析 HTML 并生成 DOM 树。它还会解析 CSS 并生成 CSSOM 树。然后,它将 DOM 树和 CSSOM 树组合成渲染树。浏览器渲染内容并显示给用户。
HTTPS 如何工作?
HTTPS 使用加密确保您的浏览器(客户端)和网站服务器之间的安全通信。
-
TCP 握手:在进行任何安全通信之前,客户端和服务器首先通过 TCP 握手过程建立基本连接。此时,数据尚未加密。
-
证书检查:此阶段旨在验证服务器的身份。客户端以“hello”消息启动TLS握手,该消息提供支持的加密算法。服务器回复,选择算法并发送包含公钥的数字证书。客户端验证证书,以确保其来自受信任的证书颁发机构 (CA)。
-
密钥交换:客户端验证证书后,即启动密钥交换过程。客户端使用服务器的公钥(来自证书)加密会话密钥。加密后的会话密钥将发送到服务器,服务器可以使用其私钥解密。更改密码规范消息表示从此时起,所有消息都将使用约定的会话密钥和密码进行加密。此步骤使用非对称加密来安全地交换会话密钥。
-
数据传输:现在,双方使用共享会话密钥切换到对称加密(速度更快)。消息使用相同的密钥进行加密和解密。所有交换的数据现在都安全且私密。
交给您:您还能添加更多内容来解释 HTTPS 过程吗?
Netflix 的规模化演进
多年来,Netflix 经历了几个发展阶段。每个阶段,他们都必须改进扩展方法。
-
第一阶段(早期流式架构)
它是典型的三层结构,由客户端、API 和数据库组成。该 API 应用程序名为 NCCP(Netflix 内容控制协议)。它是一个包含所有功能的单体应用程序。
-
第二阶段(引入微服务)
随着更多功能的添加,保持工程速度变得至关重要。为了支持这一点,单体应用被拆分成微服务。从 NCCP 应用程序中提取功能并开发为单独的应用程序,但编排逻辑保留在 NCCP 应用程序中。
-
第 3 阶段(Zuul 网关)
接下来,Netflix 拆分了应用程序。NCCP 保留了播放体验,而其他 API 则开始处理其他功能。引入了 Zuul API 网关来减少客户端和服务之间的耦合。
参考: Netflix TechBlog
问:在 Netflix 扩展到目前水平的过程中,您是否遇到过其他细微差别?
早期团队招聘工程师
如果你想在初创公司寻找有趣的工作机会或结识志同道合的伙伴(例如联合创始人或合作者),请查看 Substack 上的Next Play
-
Jake曾创立过治疗师平台 Headway,目前正在创建Marble Health 。他们正在招聘软件工程师,并致力于为学生打造一个治疗平台。点击此处申请。(纽约市)
-
a37的Brian正在构建一个人工智能驱动的 DevOps 平台。他们正在招聘创始软件工程师。他们表示,他们的薪资将匹配甚至超过你收到的任何报价。点击此处申请。(旧金山)
-
Retail Ready的Sarah正在为品牌和第三方物流 (3PL) 构建一个供应链合规平台。他们已经签署了十份企业合同。他们正在招聘一名全栈工程师。点击此处申请。(旧金山)
-
Tilde的Ben正在招聘工程师。他们最近从 Khosla 融资,用于构建一个 AI 可解释性平台。点击此处申请。(旧金山)
-
Alon曾创立 Better Help,目前致力于职业和个人教练平台Strawberry 的运营。在过去 10 周内,他们的用户会话数量已从 1 万次增加到 2 万次。他们正在招聘工程师。点击此处申请。(远程办公,旧金山)
-
Extend的Mike上个月收入增长了 50% 以上。他们最近融资 1700 万美元,用于扩展其文档处理云服务。他们正在招聘工程师。点击此处申请。(纽约)
-
Nominal正在招聘软件工程师。他们正在构建一个统一的平台,用于构建硬件和基础设施。点击此处申请。(洛杉矶、纽约、奥斯汀)
-
Phoebe的Justin之前创办了一家公司,并将其出售给了 Airtable。他们目前正在开发一款用于家庭健康工作的 AI 助手,并正在招聘一名早期全栈工程师。点击此处申请。(纽约市)
-
Neon Health的Stedman和Harry正在开发 AI 代理,以加速患者获得救命药物。他们目前已实现盈利。他们正在招聘创始工程师。点击此处申请。(旧金山)
-
Halo的AnhPhu正在开发“可穿戴智能”,该产品已火爆全球(观看次数超过 8000 万次)。他们正在招聘创始工程师。点击此处申请。(旧金山)
-
Chalk的Elliot正在构建一个用于推理的数据平台。他们最近融资了 5000 万美元,正在招聘软件工程师。点击此处申请。(旧金山、纽约)
-
Synthflow的Hakob刚刚完成 2000 万美元的 A 轮融资,目前正在招聘工程师。他们正在构建一个语音代理平台。点击此处申请。(纽约、柏林、远程)
-
Clarify的Austin正在招聘工程师。他们正在构建一款人工智能 CRM 系统,刚刚融资 2250 万美元。点击此处申请。(远程)
-
Proto的Nicholas正在打造一家隐形医疗 AI 公司,该公司已签署创收协议并完成种子轮前融资。他们正在招聘 AI 和全栈工程师。联系方式: [email protected] 。(纽约)
-
Ambrook的Mackenzie刚刚完成了新一轮融资,由 Figma 创始人领投。他们正在为农业行业构建一个金融操作系统。他们正在招聘软件工程师。点击此处申请。(纽约、丹佛、远程办公、旧金山)
赞助我们
将您的产品展示给超过 1,000,000 名技术专业人士。
我们的时事通讯将您的产品和服务直接呈现给重要的受众——数十万工程领导和高级工程师——他们对重大技术决策和大宗采购有影响力。
房间很快订满 – 立即预订
广告位通常提前4周左右售罄。为了确保您的广告能够触达这些极具影响力的受众,请立即发送电子邮件至[email protected] 预订您的广告位。
原文: https://blog.bytebytego.com/p/ep174-16-coding-patterns-that-make