fCC开源技术分享活动回顾

2025 年 3 月 1 日周六下午由 fCC 成都社区举办的开源技术分享活动在成都市天府五街 200 号菁蓉汇 2A 栋 5 层炎上台成功举办。

软件工程师会被AI替代吗?
Image

资深前端工程师彭雪梅就“软件工程师是否会被AI替代”这一话题进行了分享。首先从AI工具的实现步骤入手,将其分为三个阶段:预训练、后训练和强化学习,并结合理论与实操详细讲解了每个阶段的用途和作用。随后,分析了当前软件工程师的市场现状,将其划分为三个层级:能够实现基本功能、能够适当考虑性能和框架优化、以及能够结合业务需求搭建框架并提供解决方案。最后,结合AI工具的实现步骤与软件工程师的现状,探讨了软件工程师是否会被AI替代的可能性。分享结束后,与参与者围绕这一话题展开了讨论,各自表达了不同的观点和见解。分享链接:https://mp.weixin.qq.com/s/Y5BgpdIqoXUaybUjYycF5g

手搓一个Deno脚手架
Image

idea2app 公司的创始人、fCC 成都社区主理事、TS 全栈开发工程师 水歌分享了怎么手搓一个Deno脚手架 ,首先介绍了Deno的用途及其当前的发展现状,随后详细分享了自己搭建Deno脚手架的具体步骤和过程,包括在搭建过程中遇到的问题以及相应的解决方案。接着,带领参与者进行实操,帮助大家更好地理解Deno。分享结束后,与参与者共同探讨了目前Bun、Deno和Node.js各自的优势,并对三者进行了对比分析。Deno脚手架地址:https://github.com/idea2app/Deno-quick-start/tree/main

在活动的结对编程环节调整为自由交流环节后,参与者们展开了轻松愉快的讨论。大家围绕旅游、编程等话题畅所欲言,分享各自的经历和见解。整个交流过程充满了欢声笑语,大家在轻松的氛围中度过了愉快的半小时。

开源技术分享活动作为对技术爱好者提供一个互动交流的学习平台,通过主题分享加理论实践,增强参与者的实操技能,促进知识共享与技能提升。

本次活动圆满结束,感谢所有参与者的积极参与和赞助商的支持。


理解容器镜像层

容器非常了不起。它们允许简单的进程像虚拟机一样运行。这种优雅的背后是一套模式和实践,最终使一切都能正常工作。设计的根源在于。层是存储和分发容器化文件系统内容的基本方式。这种设计既非常简单,同时又非常强大。在今天的文章中,我将解释什么是层,以及它们在概念上是如何工作的。


如何快速学习

人们常说互联网已经实现了教育民主化:人类知识的总和只需要谷歌搜索即可获取!然而,获取信息只是故事的一半;你还需要能够将原始信息转化为可用的技能。

对于我们很多人来说,这两者之间的差距可能会导致类似于 教程地狱 的情况——不断地做一个又一个教程,却从未觉得自己在取得实质性的进展。

学习如何有效地学习是非常重要的,尤其 是作为一名软件开发人员;学习新知识几乎就是整个工作的全部!如果你能快速掌握新语言/框架/工具,你会比一般的开发人员 更高效 。这有点像超级能力。

在这篇博文中,我将分享我关于学习的心得,并展示我如何快速掌握新技能!


从零开始构建容器:层

在 Depot,我们专注于为容器镜像提供最快的构建服务。我们主要通过以下方式实现这一目标:

  1. 提供对强大计算和存储的即时访问。
  2. 优化构建过程本身以使其尽可能快。

我们将 Depot 运行在 AWS 之上,为每个 Depot 项目使用大型 16 核机器。这些机器使用原生 Intel 和 Arm CPU,避免了多平台镜像的仿真。并且我们使用带有 NVMe SSD 的 Ceph 集群为它们提供分布式缓存存储。这一切都使得执行 RUN 语句变得快速,并使缓存查找和写入变得快速。

对于构建过程本身,除了对构建过程进行许多高级优化之外,我们目前正在对构建过程本身进行许多低级优化。

为了更好地理解其中一些优化,了解 OCI 容器镜像层格式本身很有帮助。


使用 Certbot 在内网签发 wildcards(通配符证书)

前置条件

  1. Certbot 和 certbot-dns-cloudflare 插件
  2. 域名的 NS 服务器设置为 CloudFlare, 配置好,大概一天后生效(保守估计)
  3. 内网 DNS 服务器, 如果路由器支持定义局域网域名,可以不安装,我用的是 adguard
  4. 内网 Ubuntu 服务器
  5. Ubuntu 安装 Nginx

使用 Caddy 和 CloudFlare 在内网自动签发 https 证书

前置条件

  1. Caddy 和 dns-cloudflare 插件,需要构建自己的 Docker 镜像
  2. 域名的 NS 服务器设置为 CloudFlare, 配置好,大概一天后生效(保守估计)
  3. 内网 DNS 服务器, 如果路由器支持定义局域网域名,可以不安装,我用的是 adguard
  4. 内网 Ubuntu 服务器
  5. Ubuntu 安装 Docker

你正在错过的最新 Docker BuildKit 功能

随着 BuildKit 的引入,Docker 的构建后端得到了显著改进,并增添了许多强大的新功能。然而,很多用户并不了解这些新功能。因此,本文将向你介绍那些你绝对应该了解并开始使用的 BuildKit 功能,助你更好地利用 Docker。


关于 Git 错误信息的说明

在写关于 Git 的文章时,我注意到很多人都在纠结 Git 的错误信息。我已经习惯这些错误信息很多年了,所以花了很长时间才明白大家为什么会困惑:

  1. 有时我确实被错误信息弄糊涂了,我只是习惯了被弄糊涂而已
  2. 当 Git 给我的错误信息不是很有参考价值时,我有很多策略来获取更多信息。

所以,在这篇文章里,我将逐一分析 Git 的错误信息,列出每条信息中我认为容易混淆的地方,并谈谈当我被错误信息弄糊涂时该怎么做。


你应该使用的现代 Git 命令和功能

我们所有软件工程师每天都在使用 git,但大多数人只接触过最基本的命令,如 addcommitpush 或者 pull,好像还停留在 2005 年。

不过,Git 从那时起引入了许多功能,使用它们能让你的生活变得更轻松,下面就让我们来了解一下最近添加的一些现代 Git 命令。


我不再使用 React.setState 的 3 个理由

Michel Weststrate

CloudBoost

Michel Weststrate published in CloudBoost · Jun 15, 2016

自几个月前,我已在所有我新写的 React 组件弃用 React 的 setState 。别误会我,我没有弃用本地组件状态,我只是不再用 React 去管理它,并且令人愉快!

使用 setState 对初学者来说很棘手。即使经验丰富的 React 程序员在使用 React 自有状态机制时,也很容易引入微妙的 bug,例如:

忘记 React 状态是异步的而引入了 bug,日志输出总是在后面一项。

这篇优秀的 React 文档总结了错误使用 setState 的各种情况:


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×