独立周刊2024/05/27
July 8, 2024
❌ Unsupported block (table_of_contents)
产品思路
unleash
Unleash 是一个开源的Feature Flag(功能开关)和实验平台,用于管理和控制软件应用中的功能发布。可以根据自定义的规则进行安全测试和发布新功能,目前 Unleash 提供了一些主流语言的集成框架,可以适用于不同模块的项目。
类似的产品有Launchdarkly、Flagsmith等。
本地编译方法
官方提供了docker的安装方式,这里主要介绍下本地安装的方案。
后端
- yarn install 本地安装公共依赖
- prepare:backend
- yarn:copy-templates:将mustache模板copy到build目录
- yarn:build:backend:编译后端代码 /src 到dist目录
- yarn local:package:将后端编译结果以及readme、doc等copy到build结果目录 build
前端
- yarn build:frontend:编译前端react项目 frontend
- 将前端编译结果 frontend/build copy到build目录 build/frontend/
安装
/docker 目录中已经有server启动脚本,执行安装后启动即可(yarn install)。
在package.json中有依赖前面的前后端编译结果
Loading...
本地开发
- 本地启动postgres,并创建一个名为unleash的DB。
- 修改 src/server-dev.ts 中的DB相关配置。
- yarn dev:backend 启动后端
- yarn dev:frontend 启动前段
新技能
- 最好的公众号撰写平台: https://doocs.github.io/md/。写完直接通过copy按钮复制,然后粘贴到微信公众平台即可。
- go-SaaS源码阅读:代码质量一般,封装过度,读起来比较绕。有些设计模式使用还可以。
- Functions implementing interfaces in go
Loading...
为何要用函数实现interface?因为方便。。。一些业务逻辑场景根本没有数据存储的需求,比如上面的http handler,仅仅需要一个函数就可以解决。引入一个struct会有一定的额外成本。直接使用函数来实现方案上更加简单。
另外也可以使用其他类型来实现interface,比如:
Loading...
所以重点是不要局限于其他语言的class继承机制,一定要实现一个struct来实现interface。go中没有此类限制。
See all postsSee all posts