Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

框架、技术关注列表 #43

Open
timzaak opened this issue Mar 14, 2019 · 32 comments
Open

框架、技术关注列表 #43

timzaak opened this issue Mar 14, 2019 · 32 comments

Comments

@timzaak
Copy link
Owner

timzaak commented Mar 14, 2019

新技术涌现太快。我这里会记录自己感觉以后能用的到的框架,技术。

@timzaak
Copy link
Owner Author

timzaak commented Mar 14, 2019

Actix 用 rust 编写的 actor system。
目前官方文档缺失,各种 WIP。
从 techBenchmark 来看,性能强悍。
和 scala 的 akka 相比,感觉 Actix 还处在单机上,actix-remote 已经被 archived,不知道为啥; akka 则已经有完善的 cluster 和 stream。
rust 的另一个 actor 实现:riker,从 api 上感觉就是 akka 复制品。已不活跃。估计没多少人会使用 rust 版本的 akka。
Actix 目前使用场景上,是做各个服务的客户端高性能异步通信基础+web框架。

所以关注而不用。

@timzaak
Copy link
Owner Author

timzaak commented Mar 14, 2019

Colossus 基于 akka + NIO 的 stateless web 框架。功能上相当于 akka http。 但由于抽象层少,内部来回发送消息少,所以性能也高。
简略看来,该有的微服务功能都有, websocket 也有。
有些心动想要替换掉 playframework。

所以关注并找机会尝试。

Update: 已经好久没更新版本了。 开发分支倒是有更新,提的 issue 很少。感觉会是一个坑。该项目基本已不再维护。

Playframework 目前也要有 Dead 的趋势,还是用些 Java 底层+ Scala 语法糖的框架比较持久。 Scalatra 就是你了!

@timzaak
Copy link
Owner Author

timzaak commented Mar 14, 2019

Typescript javascript 超集。
interface, numeration,static type 都是我想要的语言特性。
但是,我前端的核心框架是Vue, 一切都想围绕着它进行,而 Vuex 如果配上 Typescript,需要用 annotation 才会比较舒畅。目前讨厌 annotation。

所以,等 Vue3.0 吧,等 Vuex 能比较舒畅用 Typescript 写,或者有 Vuex 的替代者,再说。
另外,目前写的前端代码复杂度,真心不高。所以 Typescript 能给我的收益其实有限。

2022/03:
目前跳到 React,后续也是React,所以必用。

@timzaak
Copy link
Owner Author

timzaak commented Mar 20, 2019

lerna javascript项目管理工具,主要是有对大型项目进行细拆或者有 monorepo 需求时,可以用到。自己尝试用了一下,极度好用。另外由于项目包管理做的不太好,我自己以前在多个前端项目封装的小工具,都丢失掉了。有了这个 + git submodule 就完美啦! (git submodule 用来处理 链接 src 下的 应用)

pixari/component-library-monorepo 是一个很好的 Vue 体系下的入门参考项目。

所以到处使用。

目前开了个试验性项目 timzaak/vue-lerna-starter 用来实践 lerna 代码复用

2019/04/27 实践的结果是 基本符合预期。lerna 目标是框架级别的代码治理,很多功能都是为版本号、发包而准备的,对我而言,有价值的是

  1. .editorconfig 等可以一次性设置,N多项目复用
  2. 代码复用
  3. 代码仓库可以较为随意的组织

@timzaak
Copy link
Owner Author

timzaak commented Mar 21, 2019

redisql 基于 redis 支持 sql,还包含事务等,但想持久化的话需要付费。用 Rust 写的。目前对我来说,有很多场景是需要多维度缓存的。本想着用 mapdb,但是嵌入式,还用了 kotlin, 需要引入一堆 java 包。所以放弃掉 mapdb。 in-memory db 目前成熟的有 cassadra/ignite/aerospike/voltdb,但这些都太重。

在翻阅了一下源码之后,发现是将 sqlite 嵌入进 redis。 这就尴尬了。我如果要用 sqlite,为啥要混合着 redis 呢?直接用 in-memory 模式下的 sqlite 不是更好,还有一堆配置可供调优。

所以观察并尝试。
所以,放掉它。继续找轻量级的 in-memory db。

自己在探究了好多遍之后,轻量级的 in-memory db 应该是个伪命题。

还不如直接用 pg、mysql 实在。

@timzaak
Copy link
Owner Author

timzaak commented Mar 23, 2019

Apache Calcite, SQL解析工具, 目前各种流行的基于 jvm 数据处理引擎,都拿它来做SQL解析。以后所有关于数据处理的,如果要是以 sql 语句与客户端进行交互,那么 apache calcite 绝对为首选组件。先前老大有用它 + grpc 作为后端数据源交互方式,目前还未想到会有什么问题。

所以关注并有机会时,使用。

@timzaak
Copy link
Owner Author

timzaak commented Mar 27, 2019

camunda/flowable 业务流程管理(BPM)和工作流系统 。
这两者,目前没有细细的调研。
想了半天,除了未来要做 OA 系统,也不知道还有什么其它场景下要用它。
这两个项目感觉都挺牛掰的。留待用的时候再继续调研。
所以,仅作为兴趣备档。

正好有个审批流的模块,最后自己实现了。 至于bpm 的 xml => 代码, 阿里云出品了一个, scala 3的话,可以自己直接写个生成器就好了。

@timzaak
Copy link
Owner Author

timzaak commented Apr 12, 2019

minIO s3接口兼容的开源对象存储项目。

  1. 开发十分活跃。
  2. 有流行语言的sdk。
  3. 直接面向 docker 化部署。
  4. 文档十分详细。

虽说现代云对象存储已经十分流行,但在多云的上面,架上这一层,摆脱多云依赖,还是很有吸引力的。不过,还是需要针对不同云的接口开发一些。

如果以后有私有对象存储或架设多云对象存储需求,可以考虑使用 minIO。

minIO 最终向成本靠拢,而冷热转换一说, AWS 的 S3 做的好

@timzaak
Copy link
Owner Author

timzaak commented Apr 25, 2019

keycloak 优秀的 SSO 服务。
openldap 等都支持,作为企业内部账号管理工具,太棒了,先前搞过 CAS 和 openldap, 存在老旧,startup 太难的问题。
keycloak 还支持 postgres 作为数据存储, 整个 docker hub 的说明,简洁明了。 So Good!能快速搭建。

GitLab Keycloak 配置
GitLab wordpress Keycloak 配置

docker run --name keycloak -e DB_VENDOR=postgres -e JDBC_PARAMS='connectTimeout=30' -e DB_ADDR=self.noti.link -e DB_DATABASE=testkeycloak -e DB_USER=testabc -e DB_PASSWORD=testabc -p 8080:8080 jboss/keycloak

以后的企业内部账号管理,就是它了。

办公室网络 #82

@timzaak
Copy link
Owner Author

timzaak commented Apr 25, 2019

CoreDNS,Go 写的插件化的 dns 服务。k8s 内置 dns。用来做公司内部 dns 是一个不错的选择。

updns 可以拿来自建demo用。

@timzaak
Copy link
Owner Author

timzaak commented May 1, 2019

jumpserver 开源堡垒机。已经开始商业化,看功能OK。但具体没有尝试。估计超过三个运维了再去细看。

备档

用 Boundary 替换

@timzaak
Copy link
Owner Author

timzaak commented May 2, 2019

GoCD 自动化CI/CD工具。自己对这种工具的选择标准如下:

  1. 免费,或者便宜
  2. 多项目同时构建
  3. 多 git 代码可在一个执行单元中拉取(我的代码构建方式不标准所致)
  4. 开源,方便自己改
  5. 稳定,有插件
  6. 简单
  7. 支持 keycloak 等第三方用户登陆认证
  8. 良好文档

按照上面的标准,其实 jenkins 也是达标的,但用起来,总感觉麻烦,UI巨丑。
GoCD 其实两年前,我就关注了,但社区反馈很烂,文档也缺乏。现在看起来,该有的都有了,符合我的期望,具体稳定性等还是需要测试一下。

缺点:

  1. 没有 keycloak 插件。

概念介绍

测试考察

~~直接看 rancher pipeline 吧。#46 ~~
闭源 Jenkins, 开源 Github Actions

@timzaak
Copy link
Owner Author

timzaak commented Sep 13, 2019

OpenFaaS, 基于K8S的 FaaS 服务框架,感觉不到使用点。确定不了价值,先备档
Knative 目前而言,发展的比 OpenFaaS 好更多,更需要关注 Knative。另外 WASM 的 kubelet 也值得关注。

@timzaak
Copy link
Owner Author

timzaak commented Oct 1, 2019

bytedeco/javacv . java 视频处理 wrapper,主流的视频处理框架都有了。后续工作有可能用到,等做测试的时候,再继续补充。

该框架最核心的点是 JAVACPP比JNI 性能上要好。

@timzaak
Copy link
Owner Author

timzaak commented Oct 29, 2019

polynote 比我自己的 scala-remote-image 的解决方案简直好的不要太多。

由于刚出来,问题比较多,最简单说来,就是快捷键支持问题,后面估计会有人处理。

期望能在 Idea 中编辑,然后无缝上传上去。

notebook 出了插件,添加 scala kernel(基于 mill),即可支持Scala

@timzaak
Copy link
Owner Author

timzaak commented Dec 1, 2019

monkeyWie/proxyee mitm攻击代理 Java 版本,python 版本的 mitmproxy 不太好和 Java/Scala 混合在一起。

@timzaak
Copy link
Owner Author

timzaak commented Oct 30, 2020

关注了一下在 命令行里绘制UI, termion cursive 之类的。总有一个感觉,对于研发之类, ssh + remote host, 就能小小的实现远程办公一说,如果后面是是 fuchsia OS, 那么就是天然的多租户啦! vscode 支持 remote host, 估计后期 idea 也会加入该阵营 (Idea 新开了Fleet)。那么远程编写代码,就不是空话,而是一定可以做的啦!

Eclipse 基金会 搞了 theia 。 后续有可能会用的到。 目前有一堆 编辑器项目了,真用到了要现找。

@timzaak
Copy link
Owner Author

timzaak commented Jan 13, 2021

RedisGraph, 主要是想看看这个项目是如何解决在内存中存储与查找 Edge 和 Node。
它用 libcypher-parser 来解决 cypher 的语法树生成。
图算法存储相关的则是基于 GraphBLAS 库。目前 GraphBLAS 已经更新到 5.6.0 版本,支持 GPU 计算。
简单看下来,RedisGraph 更适合用来做图计算,更像是套了一层 redis 交互协议。
目前不支持分布式,后续估计也难。内存硬盘空间置换也是个大问题。所以,对我来说 Neo4j 还不可替换。

可参考 RedisGraph 内存图数据库原理 了解矩阵在图算法中的基本应用。

@timzaak
Copy link
Owner Author

timzaak commented Feb 7, 2021

tauri 应该是奔着替换 Electron 去的,但目前尚处于早期,很多开发Pattern,作者只是分析了优缺点,具体如何自己实践,还是要花费很大一番功夫的。以前做 Electron 开发的时候,尤其涉及相互调用,状态机同步,特别特的麻烦,不好调试,还容易出Bug。

tauri 本身还是基于 chromium 来做研发,不过在windows 下是用 webdriver2。 它的轻量级是合理的利用系统自带的 web容器,但安装包还是需要带上web容器,所以和 electron 打出的包一样大。

update: Electron 还是很好用的,最近的项目用了它。 tauri 还不敢上,再等等有无大厂进驻。

@timzaak
Copy link
Owner Author

timzaak commented Feb 24, 2021

MeiliSearch 是真牛皮。不过专注的在快速搜索上,所以数据集最好百G以下。对于输入框检索,95%的场景完全够用。而且简易部署,容易维护。除了分词目前只支持 jieba 以外,没啥大的毛病。

@timzaak
Copy link
Owner Author

timzaak commented Mar 14, 2021

scala circe json 序列化框架, 支持 decode sealed trait, 比 json4s 应该能更省代码,以后会从 json4s 切换到 circe。 但 scala3 貌似支持不太好,现在实际用的是 zio-json

目前优先选择 circe,scala 3 支持上来了。zio-json 相比于还需要写模板代码。

@timzaak
Copy link
Owner Author

timzaak commented Apr 7, 2022

rust sonic 倒排序索引服务, 低成本的全文索引。基于RocksDB, 更像是针对私有化部署的服务。

@timzaak
Copy link
Owner Author

timzaak commented Nov 28, 2022

Harvester 用来做服务器虚拟化,基于 K8S, 搭配 Rancher 很棒。
目前唯一不确定的是他的存储引擎实际效果如何, raid 5 和 longhorn 到底是啥关系?

@timzaak
Copy link
Owner Author

timzaak commented Feb 8, 2023

MobX 和 Redux相比, Redux 状态管理是全局化的,Mobx 可以更细粒度的管理。
在代码结构约束明确的情况下, Mobx可以获得更好的定制化。
两者哪个都可以。但若是考虑到组件的更精细化拆分,还是 MobX 更好一些。
zustand 出来了。

@timzaak
Copy link
Owner Author

timzaak commented Apr 14, 2023

Docusaurus 和 VitePress, 一个基于 React,一个基于 Vue3。看团队技术栈选择。都是做静态网站/Docs的好工具。目前看 VitePress 比较适合简单的, Docusaurus 功能集比较丰富,适合麻烦的,例如 version、blog 等

@timzaak
Copy link
Owner Author

timzaak commented Apr 25, 2023

RMQTT Rust MQTT 协议的实现。 EMQX Erlang MQTT 协议实现,已经商用,配套设施齐全。
国内有 JetLink、百度MQTT 等开源,已经构建成物联网平台。 RMQTT 还是只提供 mqtt 服务,没有物联网平台的概念。

@timzaak
Copy link
Owner Author

timzaak commented May 17, 2023

目前服务器追求 IO 极致性能的方向:

  1. 绕过 kernel IO:DPDK(网络)/ SPDK(存储)
  2. CPU 核并发: SIMD指令集

@timzaak
Copy link
Owner Author

timzaak commented Nov 29, 2023

Redash 报表可视化,相较于 Superset, 功能更集中于查询展示,方便轻量级快速出报表。但实际使用体验是不如 Grafana。

Redash、Grafana 都没有指标管理的概念。若是要扔给产品经理、运营去处理,还是需要 Superset

@timzaak
Copy link
Owner Author

timzaak commented Mar 15, 2024

pingora 代理基础库。写代理服务的时候可以调用它。
目前 k8s gateway 实现,envoy gateway 是目前看到能进入到生产阶段的。

@timzaak
Copy link
Owner Author

timzaak commented Apr 7, 2024

Rhai, Rust 脚本化。 性能OK,轻量级。相比于deno,会更适合以Rust为主,脚本化辅助的项目。

@timzaak
Copy link
Owner Author

timzaak commented May 7, 2024

https://ui.shadcn.com, 做工具类黑白主题的 React Web UI组件,也有 Sevlte、 Vue 版本。

@timzaak
Copy link
Owner Author

timzaak commented May 14, 2024

KDE/Krita 开源的手绘工具,制作绘图工具,需要多研究研究它的代码。以前研究过,但全忘了。
KDE 基于 Qt 开发,拥有各个类型的软件,编辑器、视频编辑器、邮箱等。https://apps.kde.org/zh-cn

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant