Skip to main content

· 4 min read
加菲猫

🌟 AI 相关

🦙使用数据集微调Llama 2最简单方法 ,Llama 2 “烹饪”食谱,附colab完整笔记

硬件笔记:能快速更换的散热耗材,固态硅脂

⭐️ Golang 相关

Prometheus入门

Go项目初始化不再困扰你:gonew全方位解析

云原生运维相关:

基于Openresty+Lua实现微服务Api 网关

挖掘Kubernetes 弹性伸缩:扩展监控指标实现丰富弹性

挖掘Kubernetes 弹性伸缩:水平 Pod 自动扩展的全部潜力

Kubernetes运维必掌握的12个Kubectl命令

下一代云原生网关Higress:基于Wasm开发JWT认证插件

万字长文带你看全网最详细Dockerfile教程

别再用 offset 和 limit 分页了,性能太差!

Go 语言中的零拷贝

Git 速查表:中级用户必备的 12 个 Git 命令

浅谈 K8s Pod IP 分配机制

Go context.WithCancel()的使用

「Go面经」算法 并发模型 缓存落盘 etcd actor模型

Go 1.21 延迟 8 天发布,包大小直降超过 30%

Asynq: 基于Redis实现的Go生态分布式任务队列和异步处理库

多网卡管理高手:Multus-CNI的奇妙之旅

又有新功能!Go 将有生成新模板的 gonew 工具链

不想引入MQ?试试debezium

Go程序里该不该使用 runtime.KeepAlive 这类操作

服务缓存设计指南

使用 OpenTelemetry 构建可观测性 01 - 介绍

Go 1.21 新内置函数:min、max 和 clear

大型 Go 代码库的 3 种最佳设计模式

Go1.21 那些事:泛型库、for 语义变更、统一 log/slog、WASI 等新特性,你知道多少

使用go-zero快速构建微服务

听GPT 讲K8s源代码--pkg(八)

业务规则引擎演变简述

图解Redis和Zookeeper分布式锁 | 京东云技术团队

Kafka实时数据即席查询应用与实践

证书管理:从手工到平台化

听GPT 讲K8s源代码--pkg(七)

Gopher Daily改版了

Go语言爱好者周刊:第 197 期 —— Go 开发者调查

📒 前端相关

探索跨端开发的常用解决方案:条件编译的实现

干货 | 携程度假基于 RPC 和 TypeScript 的 BFF 设计与实践

代码之外的尤雨溪:在新加坡的生活,以及如何面对黑粉

· 5 min read
加菲猫

🌟 AI 相关

Stable Diffusion 硬核生存指南:WebUI 中的 GFPGAN

Stable Diffusion 硬核生存指南:WebUI 中的 CodeFormer

Stable Diffusion 硬核生存指南:WebUI 中的 VAE

⭐️ Golang 相关

Golang实现单机百万长连接服务 - 美图的三年优化经验

一站式Golang内存洗髓经[Go三关典藏版]

深入理解Golang协程调度GPM[Go三关典藏版]

Golang三色标记混合写屏障GC模式全分析[Go三关典藏版]

了解go在协程调度上的改进

浅析bitset的实现原理:一个将非负整数映射到布尔值的位集合库

PromQL看这个就够了

Go Runtime功能初探

Go 性能分析工具从入门到精通

服务架构:Web-Queue-Worker架构

Golang 如何操作 Kafka

Go社区主流Kakfa客户端简要对比

一篇搞定:消息队列概念、kafka入门、Kafka Golang客户端库

Go语言如何操纵Kafka保证无消息丢失

Golang 语言中 kafka 客户端库 sarama

19.Go语言编程之Kafka基础介绍与发布订阅实践

Go 1.21 发布已延期,昨天才发布 Go 1.20.7 和 Go 1.21rc4

Opentelemetry 实践分享 - Golang篇

Go项目实现日志按时间及文件大小切割并压缩

使用 Go 语言实现二叉搜索树

拜托,别在 agent 中依赖 fastjson 了

一款 IDEA 插件帮你优雅转化 DTO、VO、BO、PO、DO

制作crate并发布到Crates.io

Go 改版本号规则,主版本号终于支持第三位数字 0 了

如何用 Docker 容器运行单节点 Kafka 环境

version: '3'
services:
zookeeper:
image: confluentinc/cp-zookeeper
hostname: zookeeper
container_name: zookeeper
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
kafka:
image: confluentinc/cp-kafka
depends_on:
- zookeeper
hostname: kafka
container_name: kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

运行以下命令启动 Kafka:

$ docker-compose up -d

使用以下命令进入 Kafka 容器并使用 Kafka 的命令行工具进行操作:

$ docker exec -it kafka /bin/bash

然后可以使用 Kafka 的命令行工具进行操作,例如,下面的命令会创建一个名为 test 的主题,并将其配置为单个分区和单个副本因子:

$ kafka-topics --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test

使用 Kafka 命令行工具中的 kafka-console-producer.sh 脚本来启动一个生产者,可以将消息发送到 test 主题中。在命令行窗口中运行以下命令。当命令行提示符出现时,你可以开始输入消息。每输入一行,该消息就会被发布到 test 主题中。

$ kafka-console-producer --broker-list localhost:9092 --topic test

新开一个终端,使用 Kafka 命令行工具中的 kafka-console-consumer.sh 脚本来启动一个消费者,可以从 test 主题中接收消息。在命令行窗口中运行以下命令。该命令将打印 test 主题中的所有消息。

$ docker exec -it kafka /bin/bash

$ kafka-console-consumer --bootstrap-server localhost:9092 --topic test --from-beginning

推荐 GoLand 提供的 Kafka 插件:

https://www.jetbrains.com/help/idea/2023.2/big-data-tools-kafka.html#connect_to_kafka_custom

一文总结 MetaQ/RocketMQ 原理

Go语言开发者的Apache Arrow使用指南:读写Parquet文件

使用Redis,你必须知道的21个注意要点

缓存的策略和模式

GoLand 2023.2 发布:有 AI 助手

https://www.jetbrains.com/go/whatsnew/#:~:text=GoLand%202023.2%20offers%20improved%20integration,integration%2C%20and%20the%20Kafka%20plugin.

GoLand 2023.2 发布:有 AI 助手

Go语言中常见100问题-#41 substrings and memory leaks

OpenKruise 中 OpenKruiseGame介绍

📒 前端相关

curl 上手指南,前端开发必会

JavaScript 中隐秘而强大的 compose 和 pipe

一文吃透 React DSL 应用并从零到一实现

从 antDesign 来窥探移动端“滚动穿透”行为

· 4 min read
加菲猫

🌟 AI 相关

基于 Docker 的深度学习环境:Windows 篇

使用 Docker 快速上手 Stability AI 的 SDXL 1.0 正式版

Colab 在线运行 llama-2:

https://github.com/camenduru/text-generation-webui-colab

OpenAI Code Interpreter 的开源实现:GPT Code UI

构建能够使用 CPU 运行的 MetaAI LLaMA2 中文大模型

⭐️ Golang 相关

5000字,10张图,完全掌握 MySQL 事务隔离级别

服务架构:分层架构

本地开发如何用 Dev Container,前端工程配置参考:

version: '3'
services:
node-app:
image: node:18-alpine
ports:
- "3000:3000"
environment:
- NODE_ENV=development
volumes:
# 表示将当前工作目录挂载到容器内的 `/app` 目录
- .:/app
# 当容器被重新启动时,`node_modules` 目录不会被重新构建,从而加快了容器的启动速度。
- node_modules:/app/node_modules
working_dir: /app
command: pnpm run dev
# 将 Docker 容器内的 `/node_modules` 目录挂载到卷上
# 在容器重新启动时,该目录中的依赖项不会被重新构建,从而加快容器的启动速度
volumes:
node_modules:

然后运行下面命令启动容器:

$ docker-compose up

Golang 工程配置参考:

version: '3'
services:
go-app:
image: golang:latest
ports:
- "8080:8080"
environment:
- GOPATH=/go
- PATH=$GOPATH/bin:/usr/local/go/bin:$PATH
volumes:
- .:/go/src/app
working_dir: /go/src/app
command: go run main.go

go channel应用系列二:协程间信息同步

超越 MyBatis-Plus?来领略一下 MyBatis-Flex 的优雅魅力!

WebStorm 2023.2 正式发布

Go可用性(七) 总结: 一张图串联可用性知识点

Go 工程化(十) 如何在整洁架构中使用事务

Go 工程化(十一) 如何优雅的写出 repo 层代码

一个小技巧,如何用 openssl 生成密码:

$ openssl rand -base64 [password length]

全面解读!Golang中泛型的使用

Go 1.19 中的原子指针

服务治理到底治什么,10张图告诉你答案

Go 语言的安全守护者:你用了吗

关于Dockerfile的最佳实践技巧

[Go开源工具] go-optioner:轻松生成函数选项模式代码

支付宝:多线程事务怎么回滚?说用 @Transactional 可以回去等通知了!

白皮书:事件 OnCall 中心建设方法

微服务中的熔断算法

Nacos 配置管理最佳实践

「必知必会」 Nacos 的面试题和详解

谈谈Kubernetes的存储设计理念

Go语言爱好者周刊:第 196 期

📒 前端相关

用Rust生成Ant-Design Table Columns | 京东云技术团队

前端简洁架构

How React 18 Improves Application Performance

· 5 min read
加菲猫

🌟 AI 相关

使用 Transformers 量化 Meta AI LLaMA2 中文版大模型

刷屏的Llama 2性能究竟如何

Fine-tuning Stable Diffusion Models on Intel CPUs

Deploy LLMs with Hugging Face Inference Endpoints

使用 Docker 快速上手中文版 LLaMA2 开源大模型

使用 Docker 快速上手官方版 LLaMA2 开源大模型

Stable Diffusion 腾讯云云原生容器部署实践

一键安装!机器学习和大模型联手了!

⭐️ Golang 相关

Go语言开发者的Apache Arrow使用指南:扩展compute包

服务架构:微服务架构

OpenTelemetry:将跟踪从 Ingress-Nginx 发送到多租户 Grafana Tempo

Rust vs Go:常用语法对比(一)

抽丝剥茧,记一次 Go 程序性能优化之旅

漏桶算法和令牌桶算法

Russ Cox 的个人博客

https://research.swtch.com/coro

美团面试:为什么MySQL不建议使用NULL作为列默认值

深度好文:如何发现及处理 MySQL 主从延迟问题

Go的这个库,让你的命令行输出变得专业

「Go开源包」snappy:google开源的快速、无损压缩包

一文吃透 Go 语言解密之上下文 context

为什么 Go map 和 slice 是非线性安全的

高阶函数编程:探索Go语言中的函数一等公民

线程安全是指在多线程环境下,程序的执行能够正确地处理多个线程并发访问共享数据的情况,保证程序的正确性和可靠性。

能被称之为:线程安全,需要在多个线程同时访问共享数据时,满足如下几个条件:

  • 不会出现数据竞争(data race):多个线程同时对同一数据进行读写操作,导致数据不一致或未定义的行为。
  • 不会出现死锁(deadlock):多个线程互相等待对方释放资源而无法继续执行的情况。
  • 不会出现饥饿(starvation):某个线程因为资源分配不公而无法得到执行的情况。

Go 面试题:string 是线程安全的吗

「Go开源包」xxhash:比标准库更快,基于xxHash算法实现的64位的整型hash值

Go:使用Cobra打造强大命令行应用

开源的Datadog?可观测性平台SigNoz是否名副其实

听GPT 讲K8s源代码--pkg(四)

Traefik v3.0 Docker 全面使用指南:基础篇

答网友问:golang中的slice作为函数参数时是值传递还是引用传递

写给开发者的gRPC教程-服务发现与负载均衡

jsonparser 为什么比 encoding/json 快 10 倍

Go slice扩容N连问

听GPT 讲K8s源代码--pkg(三)

什么是布谷鸟过滤器?它与布隆过滤器有何不同

「Go开源包」env:一个将系统环境变量解析到结构体的库

配图清新的Protobuf 编码&避坑指南

Go语言爱好者周刊:第 195 期 —— Go 终极教程

📒 前端相关

【第3005期】前端简洁架构

架构师对于 Vue 响应式编程的思路梳理,从 RxJS 身上学到这么多

Chrome 115 有哪些值得关注的新特性

前端文件流、切片下载和上传:优化文件传输效率与用户体验

· 4 min read
加菲猫

⭐️ 服务架构:大数据架构

⭐️ 使用testify包辅助Go测试指南

⭐️ 另一种视角:我为什么放弃 Go 语言

⭐️ Go进阶面试题详解 | 文末送书

⭐️ HTTP Router 算法演进

⭐️ Go语言开发者的Apache Arrow使用指南:数据操作

📒 一个新的React概念:Effect Event

📒 干货 | 携程商旅大前端 React Streaming 的探索之路

⭐️ go channel应用系列之控制协程数量

⭐️ 24 张图搞定 ICMP :最常用的网络命令 ping 和 tracert

📒 “Rust难学”只是一个谎言

⭐️ Go实战:开发一个简单的gRPC Demo

⭐️ 你用过 httpguts 包吗?通过 Go 1.20.6 和 Go 1.19.11 安全更新即可了解

⭐️ 微服务最重要的10个设计模式

⭐️ Docker 制作容器镜像的时候, 一定不能 All in One 吗

⭐️ Go defer 去掉闭包函数,靠谱吗

⭐️ 布谷鸟过滤器

⭐️ Go 语言泛型

# 跟着 Go 作者学泛型

# Go 泛型入门教程

# Go泛型系列:maps 包讲解

# Go 1.18 中的 any 是什么

# Go泛型系列:slices 包讲解

# Go泛型系列:Go1.18 类型约束那些事

⭐️ 泛型版 singleflight

singleflight.Group 是一个结构体类型,没有导出任何字段,它代表一类工作并形成一个命名空间,在该命名空间中可以抑制工作单元的重复执行。

该类型有三个方法,它们的功能见注释:

// 执行并返回给定函数的结果,确保对于给定的键,fn 函数只会执行一次。
// 如果有重复的进来,重复的调用者会等待最原始的调用完成并收到相同的结果。
// 返回值 shared 指示是否将 v 提供给多个调用者。
// 返回值 v 是 fn 的执行结果
// 返回值 err 是 fn 返回的 err
func (g *Group) Do(key string, fn func() (interface{}, error)) (v interface{}, err error, shared bool)
// 和 Do 类似,但返回一个 channel(只能接收),用来接收结果。Result 是一个结构体,有三个字段,即 Do 返回的那三个。
func (g *Group) DoChan(key string, fn func() (interface{}, error)) <-chan Result
func (g *Group) Forget(key string)

泛型版 singleflight:Go 中如何防止缓存击穿

⭐️ Gin 框架 Bind 函数如何实现参数绑定

gin 源码阅读(4) - 友好的请求参数处理

「Go 框架」bind 函数:gin 框架中是如何绑定请求数据的

📒 nginx反向代理https域名时,请求报错502问题排查

📒 【第2994期】如意设计助手:Figma Dev Mode下生成React代码

⭐️ Google SRE 创始人讲解 SRE 方法论

⭐️ Docker 多架构镜像介绍和最佳实践

⭐️ 基于Redis实现一个简单的固定窗口限流器

⭐️ Go语言爱好者周刊:第 194 期 — 开销从20%下降到不到1%

· 9 min read
加菲猫

⭐️ Google 工作 10+ 年的感悟,有看到 Go 核心团队的影子吗

⭐️ 万字长文说透分布式锁

⭐️ 服务架构简介

⭐️ 使用 Linux 网络虚拟化技术探究容器网络原理

⭐️ Go语言开发者的Apache Arrow使用指南:高级数据结构

⭐️ 字节跳动开源 Go HTTP 框架 Hertz 设计实践

字节跳动开源 Go HTTP 框架 Hertz 设计实践

「字节开源」基于Hertz和Kitex的Go微服务开源项目 | 文末福利

📒 【第2991期】从自研走向开源的 TinyVue 组件库

⭐️ 我如何用两行代码节省了30%的CPU

📒 第二次重写个人网站,分享一些感想

⭐️ fastcache 高性能设计与实现

📒 找不到好用的 gRPC 调试工具?Apifox 表示我可以!

⭐️ 一句话搞定数据分析,浙大全新大模型数据助手,连搜集都省了

📒 干货 | 瘦身50%-70%,携程 Taro 小程序样式 Size 缩减方案

📒 【第2990】如意设计助手× TDesign:产品设计的绝佳搭档

📒 如何方便的检测React项目的性能

⭐️ Go 团队将修改 for 循环变量的语义,Go1.21 新版本即可体验!

⭐️ 如何基于 IDL 生成 Go 项目模板

https://dev.to/justlorain/high-performance-go-http-framework-tasting-25li

https://www.cloudwego.io/docs/hertz/tutorials/toolkit/usage/usage-thrift/

⭐️ nginx 配置 HTTP/2

# Redirect HTTP to HTTPS
server {
listen 80;
listen [::]:80;
server_name www.example.com;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.example.com;

ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;

# Specify SSL config if using a shared one.
#include conf.d/ssl/ssl.conf;

# Allow large attachments
client_max_body_size 128M;

location / {
proxy_pass http://127.0.0.1:10020;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

location /notifications/hub {
proxy_pass http://127.0.0.1:3012;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

location /notifications/hub/negotiate {
proxy_pass http://127.0.0.1:10020;
}
}

⭐️ 不藏着了,构建并减少Docker镜像容量的优化技巧都分享给你们!

📒 团队把图标方案从iconfont换成iconify了,说说我们的思考

📒 前端食堂技术周刊第 89 期:ES 2023、MDN Playground、TS 5.2 Beta、逆向分析 GitHub Copilot

逆向分析 GitHub Copilot

  • 对于编辑器输入的边界判断,包括太少、太多、取消等等很多场景齐全的考虑;
  • 缓存思想,利用多级缓存策略保护后台,模型运算本身就是一件昂贵的事情;
  • prompt 的设计,不仅仅包含了上下文代码,在文件解析、编辑器打开的相关代码上还做了很多;
  • 利用简单的 Jaccard 算法计算分词后的文本相似度,能够快速决策出当前上下文相关的 snippet;
  • 实验特性,在 Copilot 中,大量的参数、优先级、设置字段都是通过实验来控制的,有一套完整的监控上报体系,帮助 Copilot 去调整这些参数,以达到更好的效果。

字节跳动的前端工程化实践

  • 自研 Monorepo 工具,用于降低多项目的维护成本;
  • 对原有的微前端框架进行升级,进一步降低多人开发的协作成本;
  • 开发 Bundler 和 Build System,来加快巨型应用的构建速度;
  • 提供诊断工具,来有效地防止应用劣化。

前端食堂技术周刊第 89 期:ES 2023、MDN Playground、TS 5.2 Beta、逆向分析 Copilot

📒 不用 React 框架,同事就要打架!

⭐️ Go中这么多创建error的方式,你真的了解它们各自的应用场景吗

⭐️ ants Code Reading

⭐️ How to Deploy Cross-Platform Rust Binaries with GitHub Actions

⭐️ Go 语言 Context 用法

3W 解析 Golang Context:用法、源码

Go组件:context学习笔记!

Go 语言 context 都能做什么

Go Context 怎么用,原理是啥,看完这篇就清晰了

⭐️ 分享6个Linux必备的安全设置,建议收藏!

📒 企业级 React API 调用架构设计

⭐️ Go 语言使用 XORM 操作 MySQL 的陷阱

⭐️ C++/Go 调用约定的原理

⭐️ Go 语言 iota 的神奇力量

📒 相关文章汇总

聊聊 Redux 的下一个计划 — 这位 React YouTuber 之王暂时离开他通常的屏幕演示形式,与 Redux 维护者 Mark Erikson 坐下来讨论 Redux 和 Redux Toolkit 的当前状态和未来状态,两者都离重大新版本不远了。

https://www.youtube.com/watch?v=n5FK8_EXcbs

在 Next.js 13 中为服务器组件配置使用基于 cookie 的身份验证 — 这篇教程非常有意义,尤其是对 Supabase Auth 用户来说。

https://www.youtube.com/watch?v=ywvXGW6P4Gs

你知道 React 可以 在渲染过程中更新状态 吗?Markd Erikson 提供了关于此的 更多信息。

https://swizec.com/blog/react-can-update-state-during-render/

HouseForm:简单易用的基于字段的 React 表单验证 — 基于 Zod 构建,适用于任何支持 React 的环境。相比于类似的解决方案,HouseForm 验证速度更快。

https://houseform.dev/

shadcn/ui:可复制粘贴的 Tailwind CSS 组件 — 如果你经常使用 Tailwind CSS,这些组件将非常适合你。正如创建者所说:“这不是一个组件库。它是一系列可以复制粘贴到你的应用程序中的可重用组件。”

https://ui.shadcn.com/

TypeScript v5.2 现已进入 beta 阶段

https://devblogs.microsoft.com/typescript/announcing-typescript-5-2-beta/

CommonJS 正在损伤 JavaScript —— 这是关于 Node 默认模块系统的有趣观点,文章涵盖了它的历史、缺点以及同时管理 CommonJS 和 ES 模块的复杂性。毫不奇怪,Andy 希望我们尽快加入 ESM 阵营,而将 CommonJS 留在历史中。

https://deno.com/blog/commonjs-is-hurting-javascript

npm 生态系统的一个严重 Bug —— 作者曾在 npm CLI 团队工作,认为这是一个大问题。我们不在此剧透太多,但简言之,包映射表和实际的包内容可能不匹配,这可以被人利用,甚至可能会混淆审计工具。

https://blog.vlt.sh/blog/the-massive-hole-in-the-npm-ecosystem

Next.js 应用路由更新— Next.js v13+ 中的 应用路由 为组织 Next.js 应用提供了一种新的方法,并推荐在未来的项目中使用(在上个月的 Next.js v13.4 中已经稳定)。这篇文章提供了关于该功能如何发展以及团队如何继续与 React 整体进行集成。

https://nextjs.org/blog/june-2023-update

从零开始实现 React Server Components: 视频版 — 最近,Dan Abramov 发布了一个关于 从零开始重新实现 React Server Components(RSC)教程。他在 Twitter 上询问是否有人可以用视频形式记录这篇文章,Jesse 则为其增添了 “戏剧性朗读” 的效果。

https://www.youtube.com/watch?v=8aD58kGBJYc

关于 Next.js 的 Image 组件的一些你可能不知道的事情 — Next.js 的 Image 组件具有许多有用的功能,你可能不知道。

https://dev.to/alex_barashkov/things-you-might-not-know-about-next-image-5go8

⭐️ Go语言爱好者周刊:第 193 期 —— Go1.21 RC 发布

· 6 min read
加菲猫

⭐️ 干货|携程Web组件在跨端场景的实践

📒 Chrome 震撼新特性:文档画中画!

📒 TypeScript 5.2 beta 发布:using 关键字、装饰器元数据、元组匿名与具名元素混用

⭐️ Go语言开发者的Apache Arrow使用指南:内存管理

⭐️ K8S面试题,有57道题,呕心沥血整理并附答案,赶紧收藏!

⭐️ 云原生监控--VictoriaMetrics 之基础篇

⭐️ Go1.21 速览:Context 可以设置取消原因和回调函数了,等的可太久了!

⭐️ Go 面试题:Go interface 的一个 “坑” 及原理分析

⭐️ Go 新关键字 any,interface{} 会成为历史吗

⭐️ 为什么 Go 里值为 nil 可以调用函数

📒 如何排查 Electron V8 引发的内存 OOM 问题

📒 ECMAScript 2023 正式发布,有哪些新特性

⭐️ 为什么 Linux “一切皆文件”

📒 32K star 的 Chakra UI,以及未来的展望

⭐️ 「Go开源包」chromedp:一个基于Chrome DevTools协议的库,支持数据采集、截取网页长图

⭐️ Go 1.21的PGO正式GA,性能提升,更快更猛!

⭐️ 我不允许你还没有这张《K8S容器云平台排错一览图》

⭐️ 精选Go高频面试题和答案汇总,阅读破万,收藏230+

📒 前端食堂技术周刊第 88 期:Svelte4、NestJS 10、State of CSS、Vitest 1.0 Roadmap

  • Svelte 4 主要是一个维护版本,为下一个版本做铺垫,包尺寸减少近 75%,依赖项从 61 个减少到 16 个,开发者体验提升。
  • State of React 2023 先行版 先不用着急回答,答了也没用。
  • Vitest 1.0 Roadmap Vitest 1.0 将和 Vite 5 同步发布,1.0 版本将放弃对 Vite 4 和 Vite 3 的支持,意味着将不再支持 Node.js 16。
  • Rspack v0.2.3 性能优化(依赖缓存、tree shaking)、内置 swc-loader 等。

TypeScript 5.2 前瞻:

前端食堂技术周刊第 88 期:Svelte4、NestJS 10、State of CSS、Vitest 1.0 Roadmap

⭐️ 「Go开源包」nunu:一个快速构建应用程序的脚手架

📒 Web Components 初探:我终于学会了如何在其他框架中使用 Vue 组件

⭐️ 敲黑板!鹅厂程序员面试也考了这些算法知识

📒 Go 语言类型转换的陷阱

⭐️ 精选8道ES高频面试题和答案,后悔没早点看

📒 ”渐进式页面渲染“:详解 React Streaming 过程

⭐️ 这些年在阿里学到的方法论

⭐️ Go 语言并发模式代码模板

⭐️ Go 并发编程 - 数据竞态

⭐️ Go 中线程安全 map 方案选型

⭐️ 保护数据隐私:深入探索Golang中的SM4加密解密算法

📒 2023 React 生态系统,以及我的一些吐槽

Redux Toolkit 还包括一个强大的数据获取和缓存功能,我们将其称为 "RTK Query"。它作为一个独立的入口点包含在软件包中。它是可选的,但可以消除手动编写数据获取逻辑的需求。

2023 React 生态系统,以及我的一些吐槽

⭐️ Go 泛型的二十一个陷阱

选自GopherChina 2023大会的分享《谈谈go泛型》。

https://github.com/smallnest/talk-about-go-generics

Go 泛型的二十一个陷阱

⭐️ Go语言中常见100问题-#38 Misusing trim functions

⭐️ Go1.21 RC2 发布了,没有 RC1

⭐️ Go语言开发者的Apache Arrow使用指南:数据类型

⭐️ 「有问必答」Gopher如何优雅的对时间进行格式化

⭐️ 相关文章汇总

AutoAnimate:通过一行代码为应用添加动画效果——可以在页面上查看一些漂亮的示例,并且这个库可以与 React、Vue、Svelte 或原生 JavaScript 一起使用。

https://auto-animate.formkit.com/

Toad Scheduler:内存中的 Node 和浏览器任务调度器——提供了比 setTimeout 或 setInterval 更多的结构,并支持类似 cron 的调度。

https://github.com/kibertoad/toad-scheduler

⭐️ Go语言爱好者周刊:第 192 期 —— 初始化大 map 的性能

初始化大 map 的性能

一个泛型的有序 Go Map 实现。Go 内建的 map类 型对于插入的元素并没有保持它们的插入顺序,遍历的时候也故意设置成随机的。因此,如果我们想让map保持元素的插入顺序,需要借助第三方的库才行,今天就给大家介绍一个这样的库 OrderedMap。

Go语言爱好者周刊:第 192 期 —— 初始化大 map 的性能

· 8 min read
加菲猫

⭐️ Go 语言日志库

Go 每日一库之 logrus

Awesome Logging in Go With Logrus

Zap Logger

一文告诉你如何用好uber开源的zap日志库

⭐️ Go Concurrency Patterns

Go 语言并发模式代码模板

https://go.dev/talks/2012/concurrency.slide#1

https://go.dev/talks/2013/advconc.slide#1

Go Concurrency Patterns: Context

Go Concurrency Patterns: Pipelines and cancellation

Go Concurrency Patterns: Timing out, moving on

https://go.dev/doc/effective_go#concurrency

⭐️ 泛型版 slice、map

Go1.21 速览:新内置函数 clear、min、max 和新标准库包 cmp!

Go1.21 速览:过了一年半,slices、maps 泛型库终于要加入标准库

⭐️ 手写K8S的YAML很痛苦,看完这篇让你信手拈来

⭐️ Go 项目分层下的最佳 error 处理方式

⭐️ Go 将引入标准库 v2 版本,首个动手的是:math/rand/v2!

⭐️ 瞬间高并发,goroutine执行结束后的资源占用问题

⭐️ Go语言中常见100问题-#37 Inaccurate string iteration

📒 超越所有开源模型,击败 Claude、Bard,专门用于编程任务的大模型来了

⭐️ 死锁、活锁、饥饿、自旋锁

⭐️ 一个悄然崛起的AI开源项目 !!

📒 前端食堂技术周刊第 87 期:2023 Stackoverflow、Bun v0.6.9、React 是否迎来了 Angular.js 时刻、Vercel AI

⭐️ Introducing the Vercel AI SDK

Vercel 推出了全新的工具来改善 AI 体验:

  • Vercel AI SDK:轻松地从 AI 模型中获取 API 响应;
  • Chat & Prompt Playground:探索来自 OpenAI、Hugging Face 等的模型;
  • AI Chatbot:使用 Next.js 构建的开源 AI 聊天应用模板。

Vercel AI SDK 是一个开源库,旨在帮助开发者在 JavaScript 和 TypeScript 中构建 AI 流式聊天应用。该 SDK 支持 React/Next.js、Svelte/SvelteKit,即将支持 Nuxt/Vue。

可以在终端中输入以下命令来安装此 SDK:

$ npm install ai

Vercel 的 AI SDK 支持互操作性,并为 OpenAI、LangChain 和 Hugging Face Inference 提供一流的支持。这意味着无论首选的 AI 模型提供商是哪个,都可以利用 Vercel AI SDK 创建前沿的流式 UI 体验。

import { OpenAIStream, StreamingTextResponse } from 'ai'
import { Configuration, OpenAIApi } from 'openai-edge'

// 创建一个 OpenAI API 客户端
const config = new Configuration({
apiKey: process.env.OPENAI_API_KEY
})
const openai = new OpenAIApi(config)

// 将运行时设置为 edge
export const runtime = 'edge'

export async function POST(req: Request) {
// 从请求正文中提取 messages
const { messages } = await req.json()

// 根据提示要求 OpenAI 完成流式聊天
const response = await openai.createChatCompletion({
model: 'gpt-3.5-turbo',
stream: true,
messages
})
// 将响应转换为友好的文本流
const stream = OpenAIStream(response)
// 响应流
return new StreamingTextResponse(stream)
}

Vercel AI SDK 包括用于数据获取和渲染流式文本响应的 React 和 Svelte 钩子。这些钩子使得应用能够实时、动态地渲染数据,为用户提供沉浸式和交互式的体验。

现在,借助 useChatuseCompletion,构建丰富的聊天或完成接口只需要几行代码:

'use client'

import { useChat } from 'ai/react'

export default function Chat() {
const { messages, input, handleInputChange, handleSubmit } = useChat()

return (
<div>
{messages.map(m => (
<div key={m.id}>
{m.role}: {m.content}
</div>
))}

<form onSubmit={handleSubmit}>
<input
value={input}
placeholder="Say something..."
onChange={handleInputChange}
/>
</form>
</div>
)
}

参考:

https://vercel.com/blog/introducing-the-vercel-ai-sdk

📒 Vercel 推出 AI SDK、AI 应用模板,快速构建 AI 应用!

📒 芜湖,埋点还可以这么做?这也太简单了

⭐️ [代码附录] SIMD能力初体验

📒 【第2976期】前端构建工具的未来

⭐️ Go语言包设计指南

📒 相关文章汇总

Node.js 安全版本已发布 —— Node.js 16.x、18.x 和 20.x 系列都发布了新版本以修复各种中高危安全问题,也包括一些与 OpenSSL 相关的安全更新。如果你想尽快升级,请留意这篇文章。

https://nodejs.org/en/blog/vulnerability/june-2023-security-releases

2023 年可以在何处托管 Remix 应用

https://www.jacobparis.com/content/where-to-host-remix

Toad Scheduler:Node.js 内存和浏览器任务调度程序 —— 提供了比 setTimeout 或 setInterval 多一点的结构,也支持 cron 风格的调度。

https://github.com/kibertoad/toad-scheduler

openGraphScraper:Open Graph 和 Twitter Card 元数据抓取器 —— 很多网页都包含元数据,以帮助像 Facebook 和 Twitter 这样的社交网络创建更有吸引力的链接——这个库可以让你更容易挖掘这些信息。

https://github.com/jshemas/openGraphScraper

Chrome for Testing 是一个全新的官方 Chrome“版本”,专门针对 Web 测试和自动化用例。你已可以使用 Puppeteer。

https://developer.chrome.com/blog/chrome-for-testing/

在你的下一个前端 Pull Request 之前,请使用 Checklist —— 使用 Checklist 避免 Pull Request 中的常见错误,文章的内容涵盖了最小化包大小、确保可访问性、使用语义化标记,以及保持代码整洁等领域。

https://evilmartians.com/chronicles/before-your-next-frontend-pull-request-use-this-checklist

Million.js:以性能为重点的 React VDOM 替代方案 — 两年前 Million 诞生时是一个不依赖任何库的,轻量的虚拟 DOM 实现。最近,它又作为 React 性能提升的一种方式出现:「想象一下 React 组件能以原生 JavaScript 的速度运行。」不过,要想达到这个目标也需要做出一些妥协,官方的 快速入门文档 演示了 React 集成 Million 的示例。

https://million.dev/

为什么使用了 React 服务端组件,客户端组件仍然可以被 SSR 成 HTML? — 当理解服务器组件时不要恐慌,它并不会改变你原有对 React 工作原理的理解。你可以在心智模型上开辟一块新的空间来接纳这个知识点。为了避免混淆,请将概念分为 “React 服务器”和 “React 客户端”,而不是更容易混淆的“服务器”和“客户端”。这将有助于更好地理解 React 在不同环境下的工作方式。

https://github.com/reactwg/server-components/discussions/4

React Redux v8.1 已经发布,增加了针对常见错误的开发模式安全检查,以及修复了 React-Redux hook 被 React 服务器组件引用时的问题。

https://github.com/reduxjs/react-redux/releases/tag/v8.1.0

⭐️ Go语言爱好者周刊:第 191 期 —— 父亲节快乐

· 7 min read
加菲猫

📒 能输出网页的AI应用来了,赶紧测评下

⭐️ SIMD能力初体验

⭐️ 【第2973期】携程Web组件在跨端场景的实践

⭐️ sync.Pool 高性能设计之集大成者

⭐️ Go 1.21.0 带来了什么新特性?min 和 max 内置函数解析

⭐️ K8S资源限制实战:优化性能与资源管理

📒 如何优雅的使用 React Context

⭐️ 聊聊为什么 IDL 只能扩展字段而非修改

📒 【第2972期】Wukong 动态化组件能力实践

⭐️ Gin 框架是如何处理 panic 的

⭐️ 深入解析go channel各状态下的操作结果

📒 React Server Component 从理念到原理

⭐️ 一文实战K8S中的服务发现和负载均衡

⭐️ Go 语言 error 处理

Go error 处理最佳实践

# Go项目中,GRPC框架的error处理,我放在HTTP中1样的好用

⭐️ Go 语言 GC 相关

Go GC 使用三色标记法,在 GC 压力大时用户态 goroutine 是要 assit 协助标记对象的,每个业务goroutine都有机会参与到GC标记工作中来!并且,这种标记辅助采用的是一种补偿机制,即该业务goroutine分配的内存越多,它要辅助标记的内存就越多。

如何优化 GC 的开销:

  • 减少GC次数来间接减少STW次数,缺点是以整个程序的内存开销增大为代价的,稍有不慎可能就会触发OMM killed。
  • 减少堆内存的分配和释放。GC开销大的根源在于heap object多,Go的每轮GC都是FullGC,每轮都要将所有heap object标记(mark)一遍,即便大多数heap object都是长期alive的,因此,一个直观的降低GC开销的方法就是减少heap object的数量,即减少alloc。

Go GC:了解便利背后的开销

真实环境下大内存 Go 服务性能优化一例

⭐️ Go 内存管理概述

📒 或许,你根本不需要全局状态管理

📒 项目规范:让你的代码更上一层楼

📒 Vue和React权限控制的那些事

⭐️ Go fasthttp 相关文章

fasthttp 为什么比标准库快 10 倍

fasthttp:比net/http快十倍的Go框架(server 篇)

Go标准库http与fasthttp服务端性能比较

Golang fasthttp实践

⭐️ 「有问必答」Gopher如何优雅的对时间进行格式化

📒 揭秘 JavaScript 代码整洁技巧,让你的项目更出众

📒 技术派中ES集成的实现姿势

⭐️ Go1.21 速览:go.mod 的 Go 版本号将会约束 Go 程序构建,要特别注意了!

⭐️ 基于 Docker 的深度学习环境:入门篇

📒 网易云音乐大前端监控体系(Corona)建设实践-开篇

⭐️ Go 配置管理库 Viper 怎么读取结构体嵌套的配置信息

📒 如何基于 napi-rs 打造 Rust 前端工具链

📒 深入理解Render阶段Fiber树的初始化与更新

📒 虚拟滚动的3种实现方式~学完直接写简历亮点上!

📒 【第2969期】FormRender 2.0 开箱即用表单方案

⭐️ The State Of Go 2023

⭐️ Go协程池(1): 线程vs协程

📒 相关文章汇总

关于 Node 调试工具和方法的介绍 —— 这是一份信息丰富的初学者指南。文章从简单内容开始进行介绍,如使用 IDE 扩展程序突出潜在问题、使用控制台日志,再到使用 V8 检查器并通过 Chrome 进行调试。

https://blog.openreplay.com/an-introduction-to-debugging-in-nodejs/

Node v20.3.0(Current)发布 —— 此版本在升级 libuv(提供 Node 异步 I/O 功能的库)后带来了显著的 Linux 性能提升。此外,还引入了 AbortSignal.any(),并且开始正式认可 Ruy Adorno 在 Node.js TSC 中的地位。

https://nodejs.org/en/blog/release/v20.3.0

TypeScript v5.1 发布 — 这个版本开始支持 JSX 标记名称的链接编辑、namespace JSX 属性、具有无关类型的 getter 与 setter,以及不需显式返回 undefined 的函数。

https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/

Dan Abramov 深入讲解 React 服务器组件 — 面对关于服务器组件的一系列问题,Dan 决定写一系列文章,从零开始 重新实现 一个基本形式的 RSC。这并不针对日常的 React 开发者,而是面向那些想要理解 RSC 背后思想的人。

https://github.com/reactwg/server-components/discussions/5

2023 年的 React 生态 — 这是一个稍微有些杂乱无章的导览,介绍了当前流行的 React 生态系统工具和库的种类,混合了一些可靠的老面孔和一些新面孔。

https://www.builder.io/blog/react-js-in-2023

服务器组件是否真的将 React 变成了 PHP? — React YouTuber Jack 是那种看起来像标题党,但视频确实富有教育性和洞察力的稀有自媒体作者之一。如果你在权衡选择,这是一个很好的开发者体验的比较参考。

https://www.youtube.com/watch?v=hr_y1hIdZHs

Goxygen v0.4:快速为前端 JavaScript 项目生成 Go 语言的后端项目 — 这个工具可以创建一个前端基于 React、Angular 或 Vue,后端基于 Go(lang) 的新项目,再结合 Docker 和 Docker Compose 文件,形成一个完整可运行的项目。

https://github.com/Shpota/goxygen

⭐️ Go语言爱好者周刊:第 190 期 —— GopherChina 2023 PPT 下载

· 5 min read
加菲猫

📒 13条咒语挖掘GPT-4最大潜力,Github万星AI导师火了,网友:隔行再也不隔山了

⭐️ GORM 相关文章

第二期Go开源说实录:GORM 剖析与最佳实践

golang orm 框架之 gorm

gorm常用使用

GORM 强大的代码生成工具 —— gorm/gen

📒 网易云音乐开源的云原生应用部署平台 - Horizon

⭐️ 借助ChatGPT快速上手ElasticSearch dsl

⭐️ 通过源码剖析Go的map扩容底层实现

📒 一个好的技术头狼是怎样的

📒 鹅厂程序员的9个生存法则

⭐️ Go 1.20.5 发布有关 SUID 和 cgo 的安全修复更新

📒 【第2966期】云音乐低代码 + ChatGPT 实践方案与思考

⭐️ 收藏!!!一图掌握 Go 中 IO 包的关系

📒 现有React架构无法解决的问题

📒 完美搭配,微前端与Monorepo的架构设计

📒 原来懒加载有这些玩法,你确定不看看

⭐️ Go 函数选项模式(Functional Options Pattern)

📒 手把手教你实现一个常用的 antd form 组件

⭐️ 一图胜千言,帮你搞懂Go面试中常问的channel问题!

⭐️ Go1.21 速览:新内置函数 clear、min、max 和新标准库包 cmp!

⭐️ 「Go开源包」requests:一个比net/http包更简洁、高效的开源包

⭐️ OKR之剑·实战篇05:OKR致胜法宝-氛围&业绩双轮驱动(上)

⭐️ 探究|Go JSON 三方包哪家强

⭐️ 超全避坑指南: 盘点 Go 的常见典型错误

⭐️ Go1.21.0 新特性:不需要循环 delete map 元素了

⭐️ 相关文章汇总

AI 加持的代码编写实战:快速实现 Nginx 配置格式化工具

使用 Docker 和 Alpaca LoRA 对 LLaMA 65B 大模型进行 Fine-Tune

基于 Docker 的深度学习环境:入门篇

模型杂谈:使用 IN8 量化推理运行 Meta “开源泄露”的大模型(LLaMA)

模型杂谈:快速上手元宇宙大厂 Meta “开源泄露”的大模型(LLaMA)

RSS Can:借助 V8 让 Golang 应用具备动态化能力(二)

在搭载 M1 及 M2 芯片 MacBook设备上玩 Stable Diffusion 模型

Linux 软件包下载加速工具:APT Proxy

轻量高可用的 K8s 集群搭建方案:MicroK8s

向量数据库入坑:使用 Docker 和 Milvus 快速构建本地轻量图片搜索引擎

向量数据库入坑:入门向量数据库 Milvus 的 Docker 工具镜像

向量数据库入坑:传统文本检索方式的降维打击,使用 Faiss 实现向量语义检索

⭐️ 【GoCN酷Go推荐】Html解析利器-goquery库

⭐️ 「GoCN酷Go推荐」高性能中文分词库 gojieba

📒 【第2962期】WebGL在次元秀的实践

📒 【面试高频题】难度 2.5/5,转换「最长公共子序列」问题

📒 一文搞懂业务架构、应用架构、数据架构

📒 页面一打开就有30个重复请求,我要怎么优化

📒 我放弃 antd 的理由

⭐️ Go语言中JSON处理技巧总结

⭐️ Go语言中常见100问题-#36 Not understanding the concept of a rune

⭐️ 合订本|用Go语言实现23种设计模式及学习重点

⭐️ Go语言爱好者周刊:第 189 期 —— Go 新的版本命名规则