我不知道的周刊第 12 期

662 字 15 min read
博主 来源
软件开发 创意表达 编程哲学 个人成长

软件是一种艺术形式

img

来源: x.com/decohack

这是一段关于软件开发本质的深度思考,作者认为编写软件不仅仅是一种技术工作,更是一种创意表达的艺术形式。

核心观点

  • 创造动机:开发软件的动力不仅来自于身为开发者的身份
  • 表达方式:软件产品是表达创意的一种媒介
  • 艺术比喻:软件开发如同诗人写诗、歌手创作、画家作画
  • 个人风格:软件是开发者艺术表达和创造力的载体

启示意义

  • 重新思考:以艺术创作的视角看待软件开发
  • 创意驱动:将创造力融入技术实现过程
  • 个性表达:在代码中注入个人风格和创意
  • 价值认同:认可软件开发的艺术价值

这段思考提醒我们,优秀的软件不仅需要过硬的技术,还需要创造力和艺术感。它鼓励开发者将编程视为一种艺术创作,在技术实现中追求创意表达。

资源 来源
系统设计 架构设计 技术面试 学习资源

系统设计学习资源汇总

这是一个精选的系统设计学习资源合集,包含了多个知名平台的系统设计课程,帮助开发者掌握系统设计的核心概念和实践技能。

课程推荐

核心内容

  • 分布式系统基础:CAP理论、一致性模型、故障处理
  • 系统组件:负载均衡、缓存、数据分区、代理
  • 架构模式:微服务、事件驱动、分层架构
  • 实战案例:设计 Twitter、设计聊天系统、设计短链接服务
  • 性能优化:可扩展性、高可用性、容错设计

学习建议

  • 从基础概念开始,逐步深入复杂主题
  • 结合实际案例学习,加深理解
  • 动手实践,尝试设计和实现简单系统
  • 参与社区讨论,分享和获取反馈

这些课程资源涵盖了从入门到高级的系统设计知识,适合不同层次的开发者学习和提升。通过系统学习,可以帮助开发者在技术面试中表现更好,同时提升实际工作中的系统设计能力。

资源 来源
Prompt Engineering AI学习 ChatGPT Claude

Prompt Engineering 学习资源大全

这是一个精心整理的 Prompt Engineering 学习资源合集,包含了从入门到进阶的各类学习材料。

基础教程

  • Prompt Engineering Guide:最全面的开源提示工程指南,包含理论基础、实践技巧和高级应用,支持中文等多语言
  • Anthropic Prompt Engineering:Claude 官方提供的提示工程最佳实践,包含系统提示、角色设定和任务分解等进阶技巧
  • OpenAI Prompt Engineering:ChatGPT 官方提示工程指南,涵盖六大原则和常见应用场景的详细示例

进阶资源

  • Anthropic Prompt Library:Claude 官方提供的提示词模板库,包含 40+ 个经过验证的高质量提示词模板
  • Anthropic Cookbook:Claude API 的官方示例集,包含代码实现和最佳实践,适合开发者参考
  • OpenAI Cookbook:OpenAI 官方的 API 使用指南,包含 100+ 个实用代码示例和完整项目案例
  • OpenAI Examples:ChatGPT 官方提供的提示词示例库,包含 80+ 个经过优化的任务型提示词

视频课程

实践平台

  • Anthropic Prompt Generator:基于 Claude 的智能提示词生成工具,可根据需求自动生成和优化提示词
  • Microsoft AI Course:微软官方的 AI 入门教程,包含 12 节课程和完整的动手实践项目
  • Google AI Resources:Google 提供的 AI 学习资源,包含 PaLM API 的提示工程最佳实践和示例

这些资源涵盖了从理论到实践的各个方面,适合不同层次的学习者。建议先从基础教程开始系统学习,再通过实践平台积累经验,最后深入研究进阶资源。

资源 来源
JavaScript 学习资源 开源项目 编程教程

8个必学的 JavaScript 开源项目

这是一个精选的 JavaScript 学习资源合集,包含了从基础到进阶的多个高质量开源项目。

算法与数据结构

编码规范与最佳实践

深入学习资源

  • you-dont-know-js:179k+ stars,深入探讨 JavaScript 核心机制的系列书籍
  • javascript-questions:62k+ stars,高级 JavaScript 问题集合
  • wtfjs:35k+ stars,JavaScript 语言中的奇特案例集合

学习建议

  • 从基础规范开始,建立良好的编码习惯
  • 通过代码片段学习实用技巧
  • 深入理解语言核心机制
  • 练习算法和数据结构
  • 关注代码质量和最佳实践

这些开源项目都是经过社区验证的优质学习资源,适合不同阶段的 JavaScript 开发者学习和参考。通过系统学习这些资源,可以全面提升 JavaScript 开发技能。

开源 来源
AI应用 开源项目 Next.js Together.ai

10个实用的 AI 开源项目

来源: @nutlope

这是一个由开发者 Hassan 开源的 AI 应用项目合集,包含了 10 个不同领域的实用项目,所有项目均已开源且免费使用。

图像处理类

  • RoomGPT:使用 ControlNet 模型重新设计房间布局
  • RestorePhotos:使用 GFPGAN 模型修复老旧和模糊的人脸照片
  • Napkins.dev:将手绘线框图转换为应用界面

开发工具类

  • AI Commits:使用 GPT-3 自动生成 git 提交信息的 CLI 工具
  • Llama Coder:基于 Llama 3.1 的代码生成工具
  • TwitterBio:使用 Mixtral 和 GPT-3.5 生成 Twitter 简介

生产力工具类

  • TurboSeek:类似 Perplexity 的 AI 搜索引擎
  • PDFToChat:基于 Mixtral 的 PDF 智能对话工具
  • notesGPT:语音笔记转录和总结工具
  • ExploreCareers:基于个人简历和兴趣推荐职业发展方向

技术特点

  • 框架:主要使用 Next.js App Router
  • AI 模型:Together.ai 提供的 Mixtral、Llama 3 等
  • 数据存储:MongoDB Atlas、Convex、Pinecone 等
  • 认证服务:主要使用 Clerk
  • 部署平台:Vercel

这些项目展示了 AI 技术在实际应用中的潜力,涵盖了图像处理、开发工具、生产力工具等多个领域。所有项目均开源,可以作为学习 AI 应用开发的参考。

开源 来源
AI翻译 视频处理 字幕生成 开源项目

VideoLingo - AI 视频翻译与配音工具

img

VideoLingo 是一个一站式视频翻译、本地化和配音工具,旨在生成 Netflix 级别的字幕质量。它通过 AI 技术消除机器翻译的生硬感,优化多行字幕,并提供高质量配音,帮助实现跨语言的知识共享。

核心功能

  • 字幕识别:使用 WhisperX 实现单词级别的精准识别
  • 智能分割:基于 NLP 和 AI 的字幕分段处理
  • 专业翻译:三步式翻译-反思-调整流程确保影视级质量
  • 标准规范:严格遵循 Netflix 标准,仅使用单行字幕
  • 配音支持:集成 GPT-SoVITS、Azure、OpenAI 等多种语音合成

技术特点

  • 语言支持:输入支持英语、俄语、法语等8种主要语言
  • 翻译引擎:支持 Claude 3.5、Gemini 2.0、GPT-4 等多种模型
  • 配音选项:提供多 TTS 服务,支持自定义配音接口
  • 一键部署:支持 Docker 容器化部署,配置简单
  • 本地运行:支持完全本地部署,无需云 API

使用场景

  • 视频本地化:快速生成多语言版本
  • 教育培训:跨语言知识传播
  • 内容创作:高质量视频翻译与配音
  • 媒体处理:专业级字幕制作

这是一个功能强大的开源项目,通过 AI 技术实现了专业级的视频翻译和配音。项目获得 8.3k+ stars,持续更新维护,是视频本地化和内容创作的理想工具。

工具 来源
设计参考 UI设计 移动应用 设计资源

Mobbin - 移动应用设计参考平台

img

来源: mobbin.com

Mobbin 是一个专业的移动应用设计参考平台,收集了数千个真实应用的界面设计和交互模式。平台提供了详细的界面截图和交互流程,帮助设计师获取灵感和参考。

核心功能

  • 应用截图:超过 50,000+ 高质量移动应用界面截图
  • 交互流程:完整记录用户操作路径和交互设计
  • 分类浏览:按功能、行业、设计模式等多维度筛选
  • 设计规范:展示主流应用的设计系统和组件库

资源特点

  • 实时更新:定期添加新的应用界面和交互设计
  • 高清预览:支持放大查看界面细节
  • 便捷搜索:支持关键词和标签快速定位
  • 收藏功能:可创建个人收藏夹整理设计参考

使用场景

  • UI设计:参考主流应用的界面设计方案
  • 交互设计:学习成熟产品的用户体验设计
  • 产品研究:分析竞品的功能设计和实现
  • 设计灵感:获取最新的移动端设计趋势

这是一个非常实用的设计参考工具,通过系统化收集和整理真实应用的设计案例,为设计师提供了丰富的参考资源和灵感来源。

教程 来源
远程工作 技能提升 职业发展 编程

程序员远程岗位所需技能

img

来源: YouTube

本视频探讨了程序员在远程工作中所需的关键技能和准备,适合希望进入远程工作的开发者。内容涵盖了远程工作文化、招聘技巧及个人经验分享等。

核心内容

  • 远程工作文化:了解远程工作的基本文化和价值观。
  • 国内外远程工作差异:分析国内外在远程工作方面的不同之处。
  • 时区考量:如何管理跨时区团队的沟通与协作。
  • 招聘网站使用:推荐有效的招聘平台和求职技巧。
  • 远程工作要求:总结远程工作岗位的常见要求和技能。
  • 个人经验分享:分享个人在远程工作中的经验和教训。
  • 远程工作准备建议:提供准备远程工作的实用建议。
  • 远程工作的未来趋势:展望远程工作的未来发展方向。

适用场景

  • 编程初学者:寻找合适的学习路径和资源。
  • 有经验的开发者:提升技能和参与社区活动。

本视频为希望进入远程工作的程序员提供了实用的建议和资源,帮助他们在职业发展中更具竞争力。

教程 来源
React 组件开发 性能优化 工程实践

React 进阶开发实战教程

img

来源: master-react.georgemoller.com

这是一套面向 React 开发者的进阶教程,通过 107 个精美信息图和 77 个视频教程,帮助开发者掌握 React 应用开发的核心概念和最佳实践。

课程内容

  • 应用架构:如何构建清晰、组织良好的 React 应用
  • 性能优化:组件优化技巧,避免不必要的渲染
  • UI 组件:如何抽象和设计可复用的 UI 组件
  • 工程原则:关注点分离,保持业务逻辑解耦
  • 设计模式:在 React 中应用工程设计模式

视频教程主题

  • 条件渲染的最佳实践
  • React 中的绝对导入
  • 如何避免 Provider Hell
  • useEffect 的正确使用方式
  • 组合模式的应用
  • 工厂模式在 React 中的实践

信息图内容

  • useEffect 和 useLayoutEffect 的区别
  • React 项目结构设计
  • useMemo 和 useCallback 的使用场景
  • Ref 变化监听方法
  • useCallback 钩子的正确使用
  • React 渲染过程解析

这套教程适合想要提升 React 开发技能的开发者,通过视觉化的学习方式,帮助开发者更好地理解和应用 React 的高级概念。

教程 来源
Next.js 图片优化 性能优化 Web开发

Next.js 图片优化完全指南

img

来源: leeerob

这是一篇详细的 Next.js 图片优化指南,通过实际案例展示如何使用 next/image 组件优化网站图片加载性能。

核心优化

  • 自动转换:将大尺寸 JPG 自动转换为优化后的 WebP 格式
  • 尺寸控制:通过 width/height 或 fill 属性控制图片尺寸
  • 预加载:使用 priority 属性预加载首屏图片
  • 模糊占位:添加 blur-up 效果提升用户体验

代码示例

// 基础用法
<Image src="/cat.jpg" width={500} height={500} alt="Siamese cat" />

// 填充容器
<div className="relative h-[500px] w-[500px]">
  <Image fill src="/cat.jpg" alt="Siamese cat" objectFit="cover" />
</div>

// 响应式优化
<Image 
  priority
  sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw"
  src="/cat.jpg"
  alt="Siamese cat"
  fill
/>

进阶技巧

  • 远程图片:存储图片 thumbhash 用于生成占位图
  • 响应式设计:使用 sizes 属性定义不同断点的图片尺寸
  • 自动导入:直接导入本地图片文件获取完整属性
  • 对象存储:处理远程存储的图片优化

这篇指南通过实际案例展示了 Next.js 图片优化的最佳实践,帮助开发者提升网站性能和用户体验。特别适合需要处理大量图片资源的 Next.js 项目参考。

教程 来源
系统设计 技术面试 架构设计 学习资源

大厂系统设计面试题目合集

这是一个来自 @gkcs_ 整理的系统设计面试题目合集,包含了 Amazon、Uber、Microsoft 等大厂常见的面试题目。

基础服务设计

  • 票务预订系统:类似 IRCTC 的在线票务系统设计,包含高并发订票和库存管理
  • 社交媒体应用:类似 Instagram 的图片分享平台,涵盖存储、Feed 流和推荐系统
  • 异常检测系统:类似 PagerDuty 的监控告警系统,实现实时异常检测
  • 即时通讯应用:类似 WhatsApp 的聊天应用,处理消息投递和在线状态

平台服务设计

应用服务设计

这些面试题目涵盖了不同类型的系统设计场景,每个案例都包含详细的需求分析、架构设计和技术选型。通过学习这些案例,可以帮助开发者更好地准备系统设计面试。

教程 来源
网络基础 TCP/IP 交换机 路由器

计算机网络基础知识图解

img

这是一篇图解计算机网络基础知识的文章,从最基础的两台计算机通信开始,逐步讲解网络通信的核心概念。

基础通信

  • 两台计算机:通过网线直连实现通信
  • 多台计算机:使用集线器或交换机连接
  • MAC 地址:设备的物理地址,全球唯一标识
  • IP 地址:网络层的逻辑地址,可动态分配

交换机工作原理

  • MAC 地址表:记录设备 MAC 地址与端口的对应关系
  • 泛洪:当目标 MAC 地址未知时,向所有端口转发
  • 地址学习:通过源 MAC 地址学习设备位置
  • 定向转发:已知目标 MAC 地址时直接转发到对应端口

ARP 协议

  • 作用:实现 IP 地址到 MAC 地址的转换
  • 工作流程:
    1. 发送 ARP 广播请求
    2. 目标设备响应自己的 MAC 地址
    3. 源设备缓存 MAC 地址
  • ARP 缓存表:存储 IP 和 MAC 地址的映射关系

路由与子网

  • 子网掩码:用于划分网络段
  • 网关:不同网段间通信的出口
  • 路由表:决定数据包的转发路径
  • 路由协议:OSPF、BGP 等自动路由发现协议

传输层协议

  • UDP:简单、无连接的传输协议
    • 特点:快速但不可靠
    • 应用:实时音视频、DNS 查询
  • TCP:可靠的面向连接的传输协议
    • 三次握手:建立连接
    • 四次挥手:断开连接
    • 流量控制:滑动窗口机制
    • 可靠传输:确认重传机制

这篇文章通过简单的比喻和图解,帮助读者理解计算机网络的基本原理和核心概念。适合网络初学者阅读和参考。

教程 来源
前端开发 React JavaScript 开源项目

8个前端进阶练手项目

这是一个精心设计的前端练手项目合集,包含 8 个不同难度和类型的项目,帮助开发者掌握前端开发技能。

基础工具类

  • 计算器:支持基础运算、百分比、数值反转等功能
  • 天气应用:包含城市搜索、温度单位切换、日出日落时间等
  • 个人主页:展示开发者信息,社交媒体链接,交互式悬停效果

游戏开发类

  • 打砖块:经典游戏,包含移动挡板、碰撞检测、计分系统
  • 2048:数字益智游戏,支持滑动合并、分数记录、最佳成绩
  • 记忆游戏:配对游戏,记录移动次数和匹配百分比
  • 井字棋:内置走法计算,胜负判定
  • 石头剪刀布:回合记录,分数统计,电脑选择

技术要点

  • 状态管理:游戏状态、分数记录
  • 事件处理:键盘输入、鼠标交互
  • 动画效果:移动动画、过渡效果
  • 响应式设计:适配不同屏幕尺寸
  • 数据持久化:最高分保存

这些项目涵盖了前端开发中常见的技术点,从基础工具到交互游戏,是提升前端开发技能的理想练手项目。所有项目均开源,可以在 GitHub 上查看源码学习。

教程 来源
数学教育 可视化学习 在线课程 教育资源

3Blue1Brown - 数学可视化教学平台

img

3Blue1Brown 是一个由 Grant Sanderson 创建的数学教育平台,通过精美的动画和直观的可视化方式,帮助学习者理解复杂的数学概念。

核心课程

  • 线性代数:通过可视化理解向量、矩阵和线性变换
  • 微积分:探索微积分的本质和几何意义
  • 神经网络:深入浅出讲解机器学习基础
  • 微分方程:用动画展示微分方程的解和应用
  • 概率论:通过直观示例理解概率概念

特色主题

  • 拓扑学:数学中的形状和空间研究
  • 群论:抽象代数的可视化理解
  • 物理学:数学在物理中的应用
  • 计算机科学:算法和数据结构的可视化
  • 数学分析:深入理解数学原理

学习资源

  • 视频课程:YouTube 频道提供免费的教学视频
  • 书面材料:配套的文字教程和推导过程
  • 交互演示:在线交互式数学概念演示
  • 练习题:帮助巩固所学知识的练习

这是一个独特的数学教育平台,通过艺术般的动画演示让抽象的数学概念变得直观易懂。所有内容通过观众支持维持,而不是广告或付费墙,保持了优质内容的开放性。