化雪

软件工程师、影像工作者

【草稿】开始使用 Laravel 8 开始提供的 Jetstream 与 Inertia

Laravel 8 开始提供了易用的 Jetstream 拓展包,用以替代原本的 laravel/ui 组件,提供内置的登录、注册、邮件验证、双重身份验证、会话管理(Session)、API,以及团队支持。Jetstream 引入 Fortify 作为底层验证框架,基于 Cookie 的权限认证框架 Sanctum。

构建 Laravel Jetstream 应用需要在基于 Blade 的 Livewire 框架,基于 Vue 的 Inertia 框架其中二选一,作为具有 Vue 开发经验的我选择了 Inertia:

laravel new blog --jet --teams --stack inertia

仍然具有缺陷的是,即使选择 Inertia 作为框架,内置的登录、注册、验证邮件仍然使用 Blade 模板,但提供了基于全新 Tailwind CSS 框架的样式,Dashboard 以及我们自定义的组件才使用 Inertia。

阅读文章的剩余部分

使用 Laravel Mix 布局更合理的 Vue 前后端分离项目结构
本文以 ThinkPHP、Vue 为例,理应(未经验证)适用于 React、Angular 或其他前端项目,Java、Python 或其他后端项目。

目前网络上流传了一些糟糕的 Vue 前后端分离实践,前端与后端各自独立成一个项目,作为全栈开发的工作流程来说非常不合适。

这是因为 Vue Cli 提供的项目结构不易于嵌入其他框架内:

  • 与现代 PHP 框架重叠的 public 目录
  • Watch / Hot Reload 需要使用 vue serve 访问而不是通过 Web 服务器
  • outputDir 强制清空 dist 构建目录

    • 设为 dist 目录,需要二次拷贝到 public 目录
    • 设为 public 目录会将 ThinkPHP 的 index.php 等文件清除,--no-clean 参数不适合长期使用
  • filenameHashing 不会生成 manifest 文件(需要通过 Webpack 配置)

阅读文章的剩余部分

选择适合个人开发者的 Kubernetes 廉价集群方案

最近钻研了一段 Kubernetes,对它的直观感受就是上手成本昂贵,选择复杂多样。现成的 Kubernetes 集群价格十分昂贵,选择 Docker Desktop 和 MicroK8s 等本机部署方案难以感受到 Kubernetes 所能带来的集群健壮性,而部署 Kubernetes 集群对节点配置又有所要求。

即使是自称适用于 IoT 设备的 Lightweight Kubernetes 发行版 k3s,在 512 MB 内存的服务器上也处于完全不可用的状态。这意味着无法像运行 Web 服务器一样,用很低的配置就可以部署一个 Kubernetes 应用。对于个人开发者而言,拥有一个 Production Ready 的 Kubernetes 集群,托管方案实在成本过高。如果没有 SLA 要求,完全可以通过购置低价服务器,部署一个简易集群来压缩成本。

阅读文章的剩余部分

我在 2020

游戏:

  • 天外世界 / Xbox / 通关
  • 冰汽时代 / Xbox / 通关
  • 星球大战 战场前线 2 / Xbox / 通关
  • 战地 5 / Xbox / 通关
  • 战地 1 / Xbox / 通关
  • 泰坦陨落 2 / Xbox / 通关
  • 战地 4 / Xbox / 通关
  • 最终幻想 15 / Xbox / 通关

设备:

  • 水星 D191G / 拼多多
  • 联想 Z5 Pro GT / 拼多多
  • 斐讯 N1/ 拼多多
  • 神舟 TX7-CT5DS / 拼多多
  • 永诺 35mm F2N / 京东
  • iPhone 11 / 拼多多
  • 海康威视 C2000 Pro / 拼多多
  • Kindle Paperwhite 4 / 天猫

电影:

  • 哈利波特 / 爱奇艺
  • 哈利波特 2 / 爱奇艺
  • 哈利波特 3 / 爱奇艺
  • 哈利波特 4 / 爱奇艺
  • 哈利波特 5 / 爱奇艺
  • 哈利波特 6 / 爱奇艺
  • 哈利波特 7 / 爱奇艺
  • 调音师 / BD25
  • 1917 / 4K Blu-Ray

开发:

  • 不便透露的 Flask 应用
  • 不便透露的 Laravel 应用
  • Caddy Certmagic S3 兼容存储驱动

图书:

  • 业余无线电通信 / 实体书
  • SRE:Google 运维解密 / Kindle
  • Go 语言趣学指南 / 实体书
  • 基于 Kubernetes 的 DevOps 实践:容器加速软件交付 / 实体书
使用 Drone CI 部署私有 DevOps 环境

Drone CI 是一款开源持续集成工具,相较 Jenkins 提供了简易的部署方法和轻量级的功能,结合 Git 服务器可以在性能较低的单机环境下部署私有 DevOps 环境,支持公有云自动缩放(Amazon EC2,Google Cloud,Digital Ocean 等),对于小型团队或个人来说是一种不错的选择。

Drone CI 的官方文档中指出,基于网络复杂性的考虑,在单机运行 Drone CI 与 Gitea 是不受支持的,而实际上 Gitea、Drone CI、Drone Runner 是可以部署在同一台机器上。

阅读文章的剩余部分