在这篇文章中,我们将讨论以下话题:
- ChatGPT 开发者技巧
- 日常使用的数据结构
- 为什么需要消息代理
- Twitter”For You”时间线
- 输入”ssh hostname”时发生了什么
日常使用的数据结构
一个好工程师需要识别数据结构在我们日常生活中的使用。
- 列表(List):保存你的 Twitter 信息流
- 栈(Stack):支持文字编辑器的撤销/重做
- 队列(Queue):保存打印作业,或在游戏中发送用户动作
- 堆(Heap):任务调度
- 树(Tree):保存 HTML 文档,或用于 AI 决策
- 后缀树(Suffix Tree):用于在文档中搜索字符串
- 图(Graph):用于跟踪友谊关系,或路径查找
- R 树(R-tree):用于查找最近邻居
- 顶点缓冲区(Vertex Buffer):用于发送数据到 GPU 进行渲染
总之,数据结构在我们的日常生活中扮演着重要角色,无论是在我们的技术中还是在我们的体验中。工程师应该了解这些数据结构及其用例,以创建有效和高效的解决方案。
问题:我们忽略了哪些额外的数据结构?
为什么需要消息代理
消息代理在构建分布式系统或微服务时发挥着至关重要的作用,以提高性能、可扩展性和可维护性。
- 解耦:消息代理通过在软件组件之间创建分离来促进独立开发、部署和扩展。结果是更容易维护和故障排除。
- 异步通信:消息代理允许组件在不等待响应的情况下进行通信,使系统更高效并实现有效的负载平衡。
- 可靠性:消息代理通过提供缓冲和消息持久化来确保在组件故障期间消息不会丢失。
- 可扩展性:消息代理可以管理大量消息,允许你的系统通过根据需要添加更多消息代理实例来水平扩展。
总之,消息代理可以提高架构的效率、可扩展性和可靠性。考虑使用消息代理可以极大地有利于应用程序的长期成功。始终考虑更大的图景,以及你的设计选择将如何影响整体项目。
问题:你熟悉 pub/sub 这个术语吗?
Twitter 推荐算法
我们花了几天时间分析它。
下图显示了基于开源算法的详细管道。
该过程涉及 5 个阶段:
- 候选来源:从 5 亿条推文开始
- 全局过滤:减少到 1500 个候选
- 评分和排名:4800 万参数神经网络,Twitter Blue 提升
- 过滤:实现作者和内容多样性
- 混合:与广告推荐和”值得关注的人”混合
SSH 工作原理
在 1990 年代,开发安全外壳(SSH)是为了提供安全的 Telnet 替代方案,用于远程系统访问和管理。使用 SSH 是通过使用安全协议在客户端和服务器之间建立安全通信的好方法。
当你输入”ssh hostname”时,发生以下情况:
- 主机名解析:使用 DNS 或本地 hosts 文件将主机名转换为 IP 地址
- SSH 客户端初始化:连接到远程 SSH 服务器
- TCP 握手:建立可靠连接
- 协议协商:就 SSH 协议版本和加密算法达成一致
- 密钥交换:安全地生成共享密钥
- 服务器认证:验证服务器的公钥
- 用户认证:使用密码、公钥或其他方法认证
- 会话建立:创建加密的 SSH 会话并访问远程系统
确保始终使用基于密钥的 SSH 认证以获得更好的安全性,并学习 SSH 配置文件和选项以自定义你的体验。跟上最佳实践和安全建议,以确保安全高效的远程访问体验。
问题:你能说出 SSH、SSL 和 TLS 之间的区别吗?
本文为学习目的的个人翻译,译文仅供参考。
原文链接:EP55: Top 7 ChatGPT Developer Hacks。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。