Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

EP175:什么是 SOLID 原则?

Posted on 2025-08-10

🚀 通过自动化 QA 加快移动版本发布速度(赞助)

Pasted Graphic.png

在移动设备上进行手动测试速度太慢,局限性也太大。这迫使团队不得不提前一周发布,只是为了在提交到应用商店之前进行测试。而且,由于缺乏广泛的设备覆盖,问题很容易被忽略。

QA Wolf让工程团队在几周内实现 80% 的自动化测试覆盖率,并在真实的 iOS 设备和 Android 模拟器上运行测试——所有测试均100% 并行进行,没有任何问题。

  • 质量保证周期缩短至仅 15 分钟

  • 全面支持多设备+手势交互

  • 可靠的测试执行,零剥落

  • 人工验证的错误报告

工程团队行动更快,发布保持正常进行,测试自动进行 – 因此开发人员可以专注于构建,而不是调试。

G2 评分 4.8/5 ⭐

安排演示以了解更多信息


本周的系统设计复习:

  • 什么是 SOLID 原则?

  • 常见的 HTTP 状态代码

  • ByteByteGo 技术面试准备工具包

  • 清洁架构如何运作?

  • Docker 如何工作?

  • 大型语言模型如何工作?

  • 特色职位

  • 赞助我们


什么是 SOLID 原则?

SOLID 提供了创建易于理解、修改和扩展的软件的指南。

Image

SOLID 的首字母缩写代表:

S -> 单一职责原则
O -> 开放/封闭原则
L -> 里氏替换原则
I -> 接口隔离原则
D -> 依赖倒置原则

  • 单一职责原则 (SRP) 指出,一个类应该只有一个变更的原因。换句话说,在软件系统中,它应该具有单一且定义明确的职责或任务。

  • 开放/封闭原则 (OCP) 指出,软件实体(例如类)应该对扩展开放,但对修改关闭。这意味着您可以在不更改现有代码的情况下添加新功能。

  • 里氏替换原则 (LSP) 指出,派生类的对象应该能够替换基类的对象,而不会影响程序的正确性。

  • 接口隔离原则 (ISP) 强调使用接口的类或组件不应被强制依赖于它们不使用的接口。

  • 依赖倒置原则 (DIP) 指出高级模块(或类)不应该依赖于低级模块;两者都应该依赖于抽象,例如接口。

交给你:在日常开发工作中,你认为哪个 SOLID 原则最有用或最具挑战性?


常见的 HTTP 状态代码

HTTP 状态代码是由服务器响应客户端请求而发出的。这些来自服务器的简洁响应在调试 Web 应用、移动应用或 API 时非常有用。

Image

  • 1xx 信息:表示已收到客户端的请求,并且处理继续(例如,100 继续)。

  • 2xx 成功:确认请求已成功完成(例如,200 OK)。

  • 3xx 重定向:需要客户端操作,例如以下重定向(例如,301 永久移动)。

  • 4xx 客户端错误:表示客户端导致的请求失败(例如,404 未找到)。

  • 5xx 服务器错误:显示服务器在处理请求时发生故障(例如,500 内部服务器错误)。

交给您:哪个类别最让您困惑,为什么?


ByteByteGo 技术面试准备工具包

推出一体化面试准备课程。我们将在ByteByteGo 网站上提供所有书籍。

包含的内容:

  • 系统设计面试

  • 编码面试模式

  • 面向对象设计面试

  • 如何写一份好的简历

  • 行为面试(即将推出)

  • 机器学习系统设计面试

  • 生成式人工智能系统设计面试

  • 移动系统设计面试

  • 更多精彩即将到来

首发优惠:50% 折扣


清洁架构如何运作?

清晰架构 (Clean Architecture) 是一种组织软件应用程序的方式,使其易于理解、维护和扩展。清晰架构包含 4 个层级,每个层级都有明确的角色。这些层级之间的依赖关系始终指向内部,从而确保系统松散耦合、可测试且易于维护。

No alternative text description for this image

让我们看一下这些层:

  1. 实体:这些是业务的核心规则和逻辑。它们代表系统中最稳定的部分,并且独立于任何外部系统或框架。

  2. 用例:这些定义了应用程序可以执行的具体操作。它们协调实体和外部接口之间的数据流,但不关心数据如何显示或存储。

  3. 接口适配器:此层包括控制器、演示器和网关。它将来自外层(如 Web、数据库或 UI)的数据转换为用例和实体可以理解的形式。

  4. 框架和驱动程序:这些是外部工具和系统,例如数据库、Web UI 或设备。它们位于外部,并依赖于内层。

交给你:你还需要补充什么来理解清洁架构的工作原理?


Docker 如何工作?

Docker 的架构由三个主要组件组成:

  • Docker 客户端
    这是用户交互的界面。它与 Docker 守护进程进行通信。

  • Docker 主机
    在这里,Docker 守护进程监听 Docker API 请求并管理各种 Docker 对象,包括镜像、容器、网络和卷。

  • Docker 注册表
    这是存储 Docker 镜像的地方。例如,Docker Hub 是一个广泛使用的公共镜像仓库。


大型语言模型如何工作?

Image

  1. 数据收集和标记化。
    LLM 首先从书籍、网站和代码等来源获取大量文本。这些文本会被清理并分解成更小的单元(即 token),用于训练。

  2. 使用 Transformer 架构进行预训练
    该系统利用 Transformer 模型和自注意力机制,学习预测序列中的下一个 token。这个过程会调整数十亿个参数,从而形成对语言的广泛理解。

  3. 针对特定任务进行微调
    然后,通过微调技术,对预训练模型进行定制,使其行为与人类偏好或特定任务保持一致,以适应特定应用。一些方法包括 RLHF、LoRA 等。

  4. 推理和响应生成
    该模型通过预测下一个最可能的词条,在推理时根据输入提示生成响应。先进的策略和检索机制可以提高流畅度和事实准确性。

  5. 优化与部署
    在部署之前,模型会被压缩和过滤,以确保速度、效率和安全性。之后,它会被部署到云平台和边缘设备等环境中,供实际使用。

交给你:你还会在这个高级流程中添加什么?


特色职位

  • 技术策略师

    • 上市

    • 描述:作为 Tenex 的技术 AI 策略师,您的任务包括拥有客户关系、诊断关键工作流程瓶颈、制定产品策略、数据基础设施、提供战略建议以及实施为 AI 价值实现奠定基础的产品。

    • 薪酬与您和您的团队创造的收入直接相关。

  • 前沿部署工程师

    • 上市

    • 描述:作为 Tenex 的前沿部署 AI 工程师,您可以设计并实施定制的 AI 驱动解决方案,直接与客户合作,将业务挑战转化为可扩展的系统。

    • 薪酬根据产出而定,没有上限。


赞助我们

将您的产品展示给超过 1,000,000 名技术专业人士。

我们的时事通讯将您的产品和服务直接呈现给重要的受众——数十万工程领导和高级工程师——他们对重大技术决策和大宗采购有影响力。

房间很快订满 – 立即预订

广告位通常提前4周左右售罄。为了确保您的广告能够触达这些极具影响力的受众,请立即发送电子邮件至[email protected] 预订您的广告位。

原文: https://blog.bytebytego.com/p/ep175-what-is-the-solid-principle

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Big Technology
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • eighty twenty
  • Elad Gil
  • Ellie Huxtable
  • Ethan Dalool
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • HeardThat Blog
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Li Haoyi
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Maggie Appleton
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mind Matters
  • Mostly metrics
  • Naval Ravikant
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Steph Ango
  • Stephen Wolfram
  • Steve Blank
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • Wes Kao
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme