普通视图

发现新文章,点击刷新页面。
昨天以前Lenix Blog

sqlite详细介绍

作者 admin
2025年12月7日 09:24

SQLite 是一个 轻量级、零配置、嵌入式的关系型数据库。它非常小巧但功能完整,被广泛用于移动端、桌面应用、嵌入式设备、浏览器、IoT、服务器软件等各种场景。

下面用简单清晰的方式介绍 SQLite。


SQLite 是什么?

SQLite 是一个 基于文件 的关系型数据库系统:

  • 不需要安装服务器

  • 所有数据都保存在一个普通文件中(.db / .sqlite)

  • 支持标准 SQL 语法

  • 线程安全、高性能、跨平台

  • 程序可以直接嵌入 SQLite 引擎,无需网络通信

它不像 MySQLPostgreSQL 那样是“守护进程型数据库”,而更像一个“数据库文件 + 操作库”,非常轻量。


SQLite 的特点(为什么这么流行)

1. 零配置,开箱即用

无需安装、无需启动服务、无需管理权限,复制数据库文件即可使用。

2. 单个文件保存所有数据

你可以简单地把数据库文件:…

The post sqlite详细介绍 first appeared on Lenix Blog.

大语言模型中,role为user、assistant、system有什么区别

作者 admin
2024年10月28日 18:22

大语言模型中,role为user、assistant、system有什么区别

聊天模型中不同角色(role)的主要区别:

1. System role (系统角色)
- 用于设定AI助手的基础行为准则、个性特征和能力范围
- 类似于给AI助手的"说明书"或"操作手册"
- 通常在对话开始前设置,对整个对话过程都有效
- 系统角色的内容通常不会直接与用户互动,但会对对话的走向产生间接影响,比如指定助理的语气、知识范围、以及对用户的帮助方式
- 用户一般看不到system prompt的内容
- 例如:"你是一个专业的Python编程助手,需要用通俗易懂的方式回答问题"

2. User role (用户角色)
- 代表与AI对话的人类用户,通常是向模型提问、提出需求或请求信息的用户。
- 负责提出问题、要求或任务
- 引导对话的方向
- 用户的发言构成了模型接收到的输入,模型根据用户的发言生成相应的回复
- 例如:"请解释一下Python中的装饰器是什么?"

3. Assistant role (助手角色)
- AI助手的回应角色,这个角色代表模型本身,即用于为用户提供信息、回答问题或完成用户请求的助手。
- …

The post 大语言模型中,role为user、assistant、system有什么区别 first appeared on Lenix Blog.

Chrome 浏览器禁用三方 Cookies,今天已经开始全球 1% 的灰度,这个问题也折腾了我好几天,踩到一些坑

作者 admin
2024年1月30日 15:21

Chrome 浏览器禁用三方 Cookies,今天已经开始全球 1% 的灰度,这个问题也折腾了我好几天,踩到一些坑。

1)禁用三方 Cookies 是 Google 搞的 Privacy-Sandbox 项目的子项,最主要的目的是为了保护用户的在线隐私,但从厂商角度来看,这也是 Google 对数字广告业的一次主动出击,未来广告主推送广告的精准度将更大程度依赖 Google 系统或平台提供的能力;对应的,苹果在 iOS 14 也推出了 App Tracking Transparency(ATT)技术,目的也是为了提高用户隐私透明度,看资讯说这项技术让 Facebook 损失了 100 亿美元的广告收入,而苹果自身却没有受到此规则的限制。

2)禁用三方 Cookies,类似的还有禁用三方 Storage,这意味着未来跨站点的用户隐私信息收集将被强约束,例如 A 网站嵌入了 B 网站的内容,用户在 B 网站中储存的所有信息,包括 Cookies、LocalStorage、Cache 等等一大堆的东西,在 A 网站下默认都不允许使用(因为这些储存是根据域名分区的),这也会带来一些负面问题,假设你的网站(如文档类、流程图工具、代码演示工具等)大量被人内嵌,同时要求登录才能被使用,那意味着用户需要在每个内嵌你网站的地方重新登陆一次才能正常使用。

3)为了实现跨域数据交互,最通用的做法是在 …

The post Chrome 浏览器禁用三方 Cookies,今天已经开始全球 1% 的灰度,这个问题也折腾了我好几天,踩到一些坑 first appeared on Lenix Blog.

flutter是什么?

作者 admin
2023年11月16日 12:37

Flutter 是Google创建的开源 UI 软件开发工具包。它用于从单个代码库为任何Web浏览器开发跨平台应用程序,[4] Fuchsia、Android、iOS、Linux、macOS和Windows。[5]首次描述于 2015 年,[6] [7] Flutter 于 2017 年 5 月发布。[1]

历史
Flutter 的第一个版本被称为“Sky” [8],运行在Android 操作系统上。它在 2015 年Dart开发者峰会[9]上亮相,明确表示能够以每秒120 帧的速度进行一致渲染。[10] 2018 年 9 月在上海举行的Google 开发者日主题演讲期间,Google 宣布了 Flutter Release Preview 2,这是 Flutter 1.0 之前的最后一个主要版本。2018年12月4日,Flutter 1.0在Flutter Live活动上发布,标志着该框架的第一个稳定版本。2019年12月11日,Flutter 1.12在Flutter …

The post flutter是什么? first appeared on Lenix Blog.

PostgreSQL数据库介绍,为什么使用PostgreSQL

作者 admin
2023年11月2日 11:30

什么是 PostgreSQL?

PostgreSQL 是一个功能强大的开源对象关系数据库系统,它使用并扩展了 SQL 语言,并结合了许多功能,可以安全地存储和扩展最复杂的数据工作负载。PostgreSQL 的起源可以追溯到 1986 年,作为加州大学伯克利分校POSTGRES项目的一部分,并且在核心平台上拥有超过 35 年的积极开发经验。

PostgreSQL 因其经过验证的架构、可靠性、数据完整性、强大的功能集、可扩展性以及软件背后的开源社区始终如一地提供高性能和创新解决方案的奉献精神而赢得了良好的声誉。PostgreSQL 可在所有主要操作系统上运行,自 2001 年以来一直符合ACID,并且具有强大的附加组件,例如流行的PostGIS地理空间数据库扩展器。毫不奇怪,PostgreSQL 已成为许多人和组织选择的开源关系数据库。

开始使用 PostgreSQL 从未如此简单 - 选择您想要构建的项目,然后让 PostgreSQL 安全可靠地存储您的数据。

为什么使用 PostgreSQL?

PostgreSQL 附带了许多功能,旨在帮助开发人员构建应用程序、管理员保护数据完整性和构建容错环境,并帮助您管理数据,无论数据集有多大或多小。除了免费和开源之外,PostgreSQL

The post PostgreSQL数据库介绍,为什么使用PostgreSQL first appeared on Lenix Blog.

聊聊即将到来的 MySQL5.7 停服事件

作者 admin
2023年10月14日 11:03
上个月,信通院下属的云计算开源产业联盟发布了一个关于 MySQL 数据库开源生态的研究报告《开源数据库生态发展研究报告 - MySQL 开源数据库》,其中提到了在 10 月份 MySQL 社区将会发生一件大事 --MySQL 5.7 将会于 2023 年 10 月 21 日结束服务期(EOL)。

MySQL 目前已经成为中国用户使用最广泛的开源数据库,其中 5.7 版本的用户的比重又是最高的,因此 MySQL 5.7 EOL 事件会影响到很多 MySQL 用户。
          
根据报告中的统计数字,MySQL 5.7 用户占比在国内高达 47%。届时这些用户将会面临选择,如何应对 EOL 事件。实际上 2020 年的时候就有一些机构提醒用户,MySQL 5.7 按照生命周期将于 2023 …

The post 聊聊即将到来的 MySQL5.7 停服事件 first appeared on Lenix Blog.

MATLAB是什么

作者 admin
2023年10月11日 11:38

MATLAB  是一个用于科学研究与工程应用分析和设计的商业化算术运算软件,由美国新墨西哥大学的数学教授 Cleve Moler 开发。

Moler 当时在美国阿贡国家实验室(Argonne National Laboratory)参与了两个数值计算软件包的开发:用于求取矩阵特征值的 EISPACK 和用于求解线性系统的 LINPACK。同时,他也在新墨西哥大学讲授数值分析和矩阵论的课程。为了让学生们既能够在计算机上进行实践,又能免除编写程序的麻烦,Moler 利用 FORTRAN 语言和 EISPACK 及 LINPACK 的部分功能,编写了最初版本的 MATLAB。

最初版本的 MATLAB 仅 80 个数学函数,只能在字符界面上绘制粗略的曲线图,而且缺少 M 文件和工具箱等成熟版本 MATLAB 的核心部分。它所关注的是与矩阵有关的计算,这一点从 MATLAB(Matrix Laboratory:矩阵实验室)的名称也能看出来。

在 MATLAB 向商业化软件的转变过程中,自动控制工程师 Jack Little 扮演了重要角色。他是首个商业化 MATLAB 软件的主要开发者。1981 年 …

The post MATLAB是什么 first appeared on Lenix Blog.

一篇文章告诉你公网,私网,内网,外网的区别

作者 admin
2023年9月26日 18:54

最近经常有很多小白朋友在后台问,公网、私网、内网、外网,这些的概念是啥样的,又该怎么去界定。

关于IP地址,确实没有太明确的区分,其实也不必太过咬文嚼字。

内网、外网就是一个参考系选择的结果。

毕竟对你而言是外网,其实是别人的内网,,各有各的定义,最多只能具体问题具体分析。

不过在一般情况下,还是可以区分的。

内、外网是相对于防火墙而言的,在防火墙内部叫做内网,反之就是外网。

所以在一定程度上外网等同于公网,内网等同于私网。

那具体怎么分,再展开探讨一番。

01、公网=外网?

私网=内网?

前面只是浅浅说一下,那到底可以这么理解吗?

这四个名词的意思,很浅显。

公网=公共网络

私网=私有网络

内网=内部网络

外网=外部网络

假设现在我们用大写字母表示网络群组,后面括号跟上数字代表其规模表示群组中有多少台计算机。

C(567918467)-中国网络群组

W(407619781)-全球网络群组

A(57619)-阿里云服务器群组

H(3)-你家里的网络群组

然后这其中就包含了一些关系,W←→C[A,H]。

我们知道由于国内网络实际上被限制了的,可以称之为全球最大的局域网,所以国内网络群组可以(科学)访问国外网络群组,而阿里云和你自家电脑都属于C。

那么如果你的电脑在C,W对于你来说就叫外网,自己所在的网络就叫内网,反之同理。

局域网也是这个概念,如果你身处局域网,那么外部网络就叫外网。

那么什么是公网呢,顾名思义,人人都能访问的网络。

例如H和A,他们都能访问自己的上层也就是C,那么C对于A和H来说就叫公网。

公网=外网吗?可以是可以,但又有部分情况需要具体问题具体分析。

The post 一篇文章告诉你公网,私网,内网,外网的区别 first appeared on Lenix Blog.

MoJo:比Python快35000倍的全新编程语言!

作者 admin
2023年9月26日 12:08

  

Chris Lattner ,这个神一样的男人,他又干了件惊天动地的大事!

他官宣发布全新编程语言——Mojo

MoJo:比Python快35000倍的全新编程语言!

大神何许人也

对于全球各地开发者来说,Chris Lattner 是一个大家都仰望的男人!

他曾是许多大型技术项目的领导者,包括 LLVM 编译器基础结构项目、Clang C 和 C++ 编译器、MLIR 机器学习基础结构等编译器技术,以及为苹果生态系统提供支持的程序设计语言 Swift

他的履历可谓相当精彩:

  • 2011-2017 年,任苹果开发部高级总监、架构师

  • 2017.1-2017.6,任特斯拉副总裁,负责自动驾驶

  • 2017.8-2020.1,任谷歌 Google Brain 高级总监

  • 2020.1,加入芯片创业公司 SiFive 负责平台工程

在去年,他终于下定决心自己创业,和 Tim Davis 共同建立了「Modular AI」,希望自下而上重建全球 ML 基础设施。

Mojo 就是他们公司发布的新编程语言。

The post MoJo:比Python快35000倍的全新编程语言! first appeared on Lenix Blog.

理想的视口VIEWPORT不存在

作者 admin
2023年9月24日 10:14

在决定根据几个严格的断点做出设计决策之前,请确保考虑屏幕尺寸和浏览器视口的巨大碎片。

Set Studio,我们进行了一个小小的实验来回答“视口大小的碎片化程度如何?”。我们收集了超过120,000 个数据点以及超过2,300 个独特的视口尺寸。这些数据主要来自美国和欧洲的用户,因此不一定代表全球受众,但对本文仍然有用。

实验只进行了 48 小时,但我们得到的数据非常有趣。让我们深入了解一下。

点击 https://viewports.fyi/ 查看.

The post 理想的视口VIEWPORT不存在 first appeared on Lenix Blog.

Web 播放 RTSP 推流最佳方案实践

作者 admin
2023年9月24日 10:08

背景

最近接到一个需求,前端需要接一段视频流播放,刚接到的时候感觉这不挺简单的吗,立刻祭出我的 video.js 大法,不过当我拿到后端发给我的视频流地址的时候 rtsp://video-stream/god 我有点蒙,不知道此为何物,但是我还是尝试着用 <video srd="rtsp://video-stream/god" /> 挣扎了一下,结果却是不尽如人意,随后我在官方仓库也是得到了认证:

1681443979 2.PNG

虽然 video.js 虐我千百遍,但是我依然待她如初恋,收藏起来,下次再用吧。那么 Web 端就彻底不能播放 RTSP 了吗?当然不是,Web 端可以播放,并且有很多方案,其中涉及到一些简单的但是收费的,还涉及到一些稍显复杂但是免费的,相信每一个程序员极客骨子里都是白嫖党,本文就不对收费方案进行介绍,给大家介绍几种免费的 Web 播放 RTSP 流的方案,并且最后每一个方案都给大家写了一个完整可运行的示例,大家按需使用。

关于 RTSP 流

比如我们熟知的海康威视以及大华等摄像头、监控设备供应商,他们的设备就是 RTSP 流,如果想要把监控视频接到 Web 端,那么就不可避免要解决这些问题,当然了,很多大厂或者供应商都有自己成熟的方案,但是如果是个人开发者或者小团队他们可能没接触过,遇到此类场景会没有头绪,本文就是基于此来写的,算是自己在开发过程中探索出来的前端可以独立 Cover 完成的。虽然其中会用到后端中转,但是都是很基础现成的 Nodejs 库,大家拿来即用就可。

这里笔者额外插一段垃圾话,网上方案千千万,没有示例早习惯,笔者一贯坚持的理念就是,如果你贴出代码来了,你就必须保证读者能执行,而不是因为环境或者代码不完整而体现自己的逼格,你既然是教学文章,那就要对读者负责。更有甚者给出所谓的方案还故意留问题,让读者付费咨询(我就不提姓名了)。别的我不敢保证,但是如果我提供的代码不能演示,你们在评论区也可以肆无忌惮地骂我,我接受~

解决方案

原理

The post Web 播放 RTSP 推流最佳方案实践 first appeared on Lenix Blog.

ORM哪家强?java,c#,php,python,go 逐一对比, 网友直呼:全面客观

作者 admin
2023年9月24日 09:58

前言

最近一段时间,我使用golang开发了一个新的ORM库。

为了让这个库更好用,我比较研究了各语言的主流ORM库,发现有一些语言的ORM库确实很好用,而有另外一些语言的库那不是一般的难用。

然后我总结了他们呢的一些共性和差异点,于是形成了本文的主要内容。

本文会先说明什么是SQL编写难题,以及探讨一下 code first 和 database first 的优缺点。 然后依据这两个问题的结论去审视目前主流后端语言javac#phppythongo各自的orm库,对比研究下他们的优缺点。最后给出总结和参考文档。

如果你需要做技术选型,或者做技术研究,或者类似于我做框架开发,或者单纯地了解各语言的差异,或者就是想吹个牛,建议保存或收藏。如果本文所涉及到的内容有任何不正确,欢迎批评指正。

温馨提示,本文会有一些戏谑或者调侃成分,并非对某些语言或者语言的使用者有任何歧视意见。 如果对你造成了某些伤害,请多包涵。

renzhen.png

什么是SQL编写难题

如果你是做web开发,那么必然需要保存数据到数据库,这个时候你必须熟悉使用sql语句来读写数据库。

sql本身不难,命令也就那几个,关键字也不算多,但是为什么编写sql会成为难题呢?

比如下面的sql

    select * from

The post ORM哪家强?java,c#,php,python,go 逐一对比, 网友直呼:全面客观 first appeared on Lenix Blog.

调试网关错误-502 Bad Gateway 或504 Gateway Timeout

作者 admin
2023年9月24日 09:47

有时您会遇到网关错误,通常502 Bad Gateway是 或504 Gateway Timeout

这些是 Nginx 在向 PHP 发送请求时返回的错误,但 PHP 返回一些错误,表示它无法处理该请求。通常,这些不是应用程序中发生的错误,而是(通常)在应用程序处理请求之前发生的错误。

什么是网关

网关是位于 Web 服务器(通常是 Nginx)和应用程序之间的东西。对于我们大多数人来说,这就是 PHP-FPM。Nginx 将使用 fastcgi 协议将 Web 请求转换为 PHP-FPM 可以理解的内容。然后 PHP-FPM 运行您的应用程序,使用 PHP 所需的信息设置 PHP(设置 superglobals $_GET$_POST

The post 调试网关错误-502 Bad Gateway 或504 Gateway Timeout first appeared on Lenix Blog.

如何用纯 php 创建 ORM 框架。ORM 创建教程

作者 admin
2023年9月24日 09:44

编写原始 SQL 查询很酷。当您不用数千行代码来管理项目时,这很酷。

当项目增长时,最好自动化构建 sql 查询。

然而,ORM这是非常复杂和沉重的结构,会减慢您的应用程序的速度,它也为您的应用程序带来了一些额外的功能:您可以添加自动安全检查、用户输入的清理和其他内容。

开始吧

我们需要将表中的行映射到 php 代码中的对象。因此,至少我们需要为代码中使用的每个表提供类:

class Post {

   // ... another code

   public function save() { // this methods save obejct to databases table
     // ... code
   }

}

这是引用表的类post。相同的结构将在类

The post 如何用纯 php 创建 ORM 框架。ORM 创建教程 first appeared on Lenix Blog.

吵翻了!到底该选 Rust 还是 Go,成2023年最大技术分歧

作者 admin
2023年9月24日 09:39
 

2023 年,我们有一千个学习 Rust 的理由。

8 月 7 日,Rust 基金会发布了 2022 年度 Rust 调查报告结果,报告显示 Rust 采用率不断提高,超过 90% 的调查受访者表示自己是 Rust 用户;29.7% 的受访者表示,他们在工作中的大部分编码工作都使用 Rust,比上一年显着增加了 51.8%。

毋庸置疑,Rust 以其卓越的内存安全性和并发性能正日益成为开发者关注的焦点。然而,同样令人难以忽视的是 Go,这门曾被评选为年度编程语言的相对比较“老牌”的选手。

Go 语言诞生于 2009 年,一开始就因其独特的并发模型和强大的性能优势而受到了极大关注。值得注意的是,跟 Rust 语言一样,Go 语言的创建者也同样“讨厌”C++,并且 Go 同样也都是云原生的主导语言

而在 Stack Overflow

The post 吵翻了!到底该选 Rust 还是 Go,成2023年最大技术分歧 first appeared on Lenix Blog.

使用 Clear-Site-Data 强制清除客户端的浏览器缓存(cookie,存储,缓存)

作者 admin
2023年9月23日 20:40

Clear-Site-Data

Clear-Site-Data 响应头,表示清除当前请求网站有关的浏览器数据(cookie,存储,缓存)。它让 Web 开发人员对浏览器本地存储的数据有更多控制能力。

Header type Response header
Forbidden header name no

语法

Clear-Site-Data 可以接受一个或多个参数,如果想要清除所有类型的数据,可以使用通配符 ("*")

// 单个参数
Clear-Site-Data: "cache"

// 多个参数 (用逗号分隔)
Clear-Site-Data: "cache", "cookies"

// 通配
Clear-Site-Data: "*"

指令

"cache"
表示服务端希望删除本 URL 原始响应的本地缓存数据(即:浏览器缓存,请参阅 HTTP 缓存

The post 使用 Clear-Site-Data 强制清除客户端的浏览器缓存(cookie,存储,缓存) first appeared on Lenix Blog.

go语言的优点,是否应用使用golang?

作者 admin
2023年9月23日 20:02

我使用 Golang 已经有几年了,有些人问我 Golang 是不是一门好语言。答案总是相同的:“这取决于您想要构建什么”。这篇文章并不是另一篇关于为什么你应该停止使用 PythonJava 而开始使用 Golang 的文章。这是关于我什么时候认为可以(不是必须)使用 Golang 以及在哪里可以让你更有生产力。

我可以证明使用 Golang(也称为 Go)作为编程语言的许多优点。Golang 由 Google 于 2007 年开发,由于其简单性、并发支持和性能能力,越来越受到开发人员的欢迎。在本文中,我将解释为什么您应该考虑在下一个项目中使用 Golang,并将其与 Python 和 Rust 等其他流行语言进行比较。

Go语言的优点

简单易学

Golang 以其简单易用而闻名。它的语法简单明了,并且其标准库有详细的文档记录,使开发人员可以轻松学习和开始编码。此外,与其他语言相比,Golang 的代码库更小,更易于维护和调试。

并发支持

Golang 旨在处理并发编程。它内置的 goroutine、轻量级线程和通道让您可以轻松编写并发程序,从而提高代码的可扩展性和效率。这对于需要同时处理多个请求的 Web 应用程序尤其重要。

高性能能力

Golang 以其高性能而闻名。它的编译性质使其比

The post go语言的优点,是否应用使用golang? first appeared on Lenix Blog.

Turbo 8 正在放弃 TypeScript

作者 admin
2023年9月23日 19:59

从各方面来看,TypeScript 对微软来说都取得了巨大的成功。我见过很多人因使用可由编译器检查的显式类型而欣喜若狂。但我从来都不是粉丝。五分钟后不会,五年后不会。因此,我非常高兴地宣布我们将从Turbo 8 的下一个大版本中删除 TypeScript。

事实上,我实际上更喜欢 JavaScript。我什至可以说这是继 Ruby 之后我第二喜欢的语言。是的,虽然是遥远的第二秒,但仍然是第二秒。但情况并非总是如此。但是,当我们在 JavaScript 中获得了适当的类,以及自 ES6 以来出现的所有其他改进之后,编写代码就变成了一种真正的乐趣。

我仍然不认为 JavaScript 非常适合我们在网络应用程序的服务器端所做的大部分工作,但完全尊重和欣赏其他人的不同感受。对我来说,我们现在拥有如此强大的 JavaScript,这简直是我们的幸运,浏览器无需任何编译器就可以解释它。

TypeScript 对我来说只是阻碍。不仅因为它需要显式的编译步骤,还因为它用类型体操污染了代码,这给我的开发体验增添了很少的乐趣,而且常常带来相当大的悲伤。应该容易的事情变得困难,困难的事情变得“任何”。不,谢谢!

不过,这并不是请求改变任何人或任何事。正如我在编程类型和心态中讨论的那样,通常很少有程序员有兴趣改变他们对打字的看法。大多数程序员发现自己对打字有强烈的兴趣,或者在他们职业生涯的早期,然后用剩下的时间向自己和他人合理化“正确的选择”。

这是 JavaScript 与 TypeScript 二分法的魔力之一,完全归功于 TypeScript 团队意识到完全接管 JavaScript 永远不会发生,因此必须从一开始就考虑到完全的兼容性。Turbo 8 放弃 TypeScript 并不意味着您不能在其中编写客户端代码,或使用任何其他使用它的库。我们可以混合搭配,这真是太棒了。

The post Turbo 8 正在放弃 TypeScript first appeared on Lenix Blog.

PHP转Go,框架选什么?

作者 admin
2023年9月23日 19:55

这是一期会引起广泛讨论的内容,不亚于“PHP 是世界上最好的语言”。

内功心法

不管我们是否基于框架去开发,不管使用什么框架去开发。

6个字的内功心法一定要牢记:高内聚,低耦合

不管是单体项目还是微服务,不管是小组件还是大功能,不管是业务还是领域 DDD,也都遵从这个原则:

(模块、功能、业务、领域)内部高内聚,

(模块、功能、业务、领域)之间低耦合。

PHP 转 Go,优选哪个框架?

答案:GoFrame

为什么?

和 PHP 的 Laravel 简直太像了,用起来太香了,很顺手。

为什么不火?

对新手不友好,有门槛。

GoFrame 特点

优势:

  • 模块化
  • 高性能
  • 企业级

劣势:

  • 有学习门槛
  • 版本兼容性不好
  • 暂不支持微服务

框架选型

谁适合用 GoFrame

  • PHP 转 Go(Laravel 的同学会用起来很爽)

The post PHP转Go,框架选什么? first appeared on Lenix Blog.

❌
❌