V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ga6840
V2EX  ›  程序员

来说说自己业余项目的技术栈

  •  3
     
  •   ga6840 · 2020-11-11 11:57:24 +08:00 · 13001 次点击
    这是一个创建于 1506 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先说一下我的:

    OS: Debian
    数据库:Postgresql
    鉴权:JWT
    前端:Vue3 + PrimeVue + Webpack
    后端:nodejs + C + php
    Gateway: OpenResty
    容器编排: Docker Swarm
    CI: Github Actions (目前只是自动构建容器并推送)
    编排自动化 /自举 /Dashboard:自己写的(叫做 Calabash )
    监控:Prometheus + Grafana + node-exporter
    存储同步:rsync
    TLS 以及自动更新证书: Let's encrypt + acme.sh
    第 1 条附言  ·  2020-11-11 16:13:39 +08:00
    更新一下,说说我的理由

    OS: Debian (个人比较熟悉,也比较稳定)

    数据库:Postgresql (我的场景用 DB 不过,硬要挑的话还是挑一个比较简单强大的。不选择 MariaDB 仅仅觉得纯 C 写的学术派引擎看上去更厉害)

    鉴权:JWT (不用维护 session,只用保存一个全局 token 减少后端负担,增加鲁棒性)

    前端:Vue3 + PrimeVue + Webpack (上了 vue3 的车主要是想尽可能减少 bundle size, 也考虑过 svelte 但是感觉不太习惯 rollup,希望观察一下他的生态发展)

    后端:nodejs + C + php (项目本身有历史 c, PHP 代码,nodejs 的话和前端代码可以更统一、依赖少)
    Gateway: OpenResty (为了实现动态的服务发现,通过 docker service label 实现)

    容器编排: Docker Swarm (小而没,就是有点担心背后的公司不太靠谱,社区不活跃。但是本人也实在没发现更简单好用、不用 lockin K8S 的编排系统。看了一下 nomad,感觉文档还是比较少,而且配置文件格式有点奇怪)

    CI: Github Actions (和 Github 结合的很好,通过 PAT 和 secret 很容易管理配置)

    编排自动化 /自举 /Dashboard:(因为追求最大程度的自动化,而且想自己掌握统筹容器的调用细节)

    监控:Prometheus + Grafana + node-exporter (比较通用而且简单,只是 Grafana 的 UI 有一些 bug )

    存储同步:rsync (我的场景还主要是处理文件,不喜欢 object 存储因为看起来不直观。rsync 简单足够应付我的场景,即使你用 minio 这类的,扩容也很难。但是 rsync + 服务发现用几行脚本就能做一个穷人够用的存储同步。 )

    TLS 以及自动更新证书: Let's encrypt + acme.sh (比较省心,除了 TLS 自举以外,工具都提供完整了,没什么需要自己额外做的)
    113 条回复    2022-07-18 22:54:28 +08:00
    1  2  
    caoyouming
        101
    caoyouming  
       2020-11-12 19:31:31 +08:00
    docker 还是可以搞的,毕竟项目中如果要用到数据库之类的,docker pull 一个 redis 超级方便
    iwh718
        102
    iwh718  
       2020-11-12 19:53:16 +08:00 via iPhone
    javascript:react redux rn 小程序
    swift:swiftui ios
    php:laravel
    其他:docker
    iwh718
        103
    iwh718  
       2020-11-12 19:53:53 +08:00 via iPhone
    @lidashuang php 来啦😃
    towry
        104
    towry  
       2020-11-13 09:29:39 +08:00
    rust+typescript+python
    treblex
        105
    treblex  
       2020-11-13 13:33:33 +08:00
    os:服务端 debian 或者 ubuntu
    数据库:现在还是在程序 orm,暂时不打算深入( mysql sqllite
    前端:react vue
    后端:golang python
    客户端:fllutter dart,最近其实还学了一点点 swiftui

    这知识都学杂啦,也没啥拿的出手的业余项目
    自从学了 golang 之后有点万法归一的感觉,对于没用过的新语言也敢就着文档直接上手试了,不会之前那么抗拒
    cloudhuang
        106
    cloudhuang  
       2020-11-13 16:04:27 +08:00
    @ga6840 我现在用的就是 traefik,但是比较简单。nginx 的话,可以使用 consul-template 的方式,不知道你说的 openresty 是不是就是采用这种方式?
    ga6840
        107
    ga6840  
    OP
       2020-11-13 20:51:47 +08:00 via Android
    @cloudhuang OpenResty 的话更动态,会牺牲一些性能,这个和 traefik 差不多,但是独立性和可定制性好很多。但 nginx 生态圈最大的问题是母公司有点挤牙膏。。
    cloudhuang
        108
    cloudhuang  
       2020-11-14 11:21:56 +08:00
    @ga6840 可以发一下这方面的链接吗?谢谢。
    ga6840
        109
    ga6840  
    OP
       2020-11-15 00:35:36 +08:00
    @cloudhuang 没有收藏一些看过的。如果你想了解还是通过官方文档,OpenResty 的文档不是很详细,但是 Core module 在 github 链接里的 README 可以看一下。
    kaesi0
        110
    kaesi0  
       2022-07-18 10:00:01 +08:00
    @XIVN1987 老哥,看到你的技术栈是 Python + PyQt ,想请教下问题。我平时折腾自己的小项目,需要结合别人的 sdk (比如阿里云 一些接口提供的 sdk 啊之类)做一些业务 mvp ,产品形态上可能会有 web ,也可能是本地应用程序,但是业务量不大,主要以验证思考 或者原型为主,请问这方面 Python + PyQt 能满足么,特别是在 web 方便,另外你用 Python + PyQt 做客户端程序的一一些学习路径和学习资料可以参考下吗
    XIVN1987
        111
    XIVN1987  
       2022-07-18 22:34:33 +08:00
    @kaesi0
    我没做过 web 形式的,,都是最传统的 Qt Widget 形式的,,而且都是非常简单的 APP (大都只有一个 python 文件)
    基本思路都是:
    1 、先用 Qt Designer 拖拽出界面,保存成 xxx.ui 文件
    2 、然后新建一个 Python 文件,其中新建一个类,,在类的__init__方法中调用 uic.loadUi('xxx.ui', self) 显示出界面
    3 、然后在类中添加形如 on_btnXxx_clicked() 的方法定义,响应按键点击事件
    4 、至于每个 Widget 有哪些可用的方法、以及方法的用法,,直接查看 Qt 的官方文档即可

    最后,,我编写的一些小 APP ,,可用浏览下,,提供一点儿参考: https://github.com/XIVN1987
    kaesi0
        112
    kaesi0  
       2022-07-18 22:44:12 +08:00
    @XIVN1987 非常感谢,请问一下学习路径陡么,以及有没有比较好的教材或者课程。另外 打包出来的 app 体积如何 ,以及跨平台能力如何 呢
    XIVN1987
        113
    XIVN1987  
       2022-07-18 22:54:28 +08:00
    @kaesi0
    我本职工作是做单片机程序的,,做 Python 上位机只是个辅助,,偶尔做下,,程序很简单、也没有时间节点,,慢慢做就行,,都是做的时候遇到问题网上搜索解决方法,,没有专门看什么书。。更没有上什么课

    打包确实有点儿大,,我那些很小的程序打包出来都有 30 多 M (要是 tkinter 界面不那么丑就好了,,我那些小 APP 完全可以用 tkinter 做,,做完打包估计能 10M 以内)

    我那些小 APP 确实打包出来给一些客户用,,不过他们基本都是 Windows 用户,,没听说有不能正常运行的
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1039 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:37 · PVG 06:37 · LAX 14:37 · JFK 17:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.