V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mmdsun
V2EX  ›  程序员

2022 年,开新项目用什么技术栈比较好?

  •  2
     
  •   mmdsun · 2022-02-10 14:20:53 +08:00 · 10094 次点击
    这是一个创建于 777 天前的主题,其中的信息可能已经有所发展或是发生改变。

    分享一下你常用的编程语言,以及主流的技术栈和框架吧。语言不限。 前端、后台、移动端都可以说说看。

    [后台] Java 微服务

    目前:Spring Cloud Netflix + Spring Session + Spring Security + Mybatis , 数据库:Mysql

    未来:Spring Cloud(?) + Spring Webflux + Spring Security OAuth2 + R2DBC ,数据库:PostgreSQL

    由于 Netflix 很早进入维护模式了,这里想问一下是更换其他 Spring Cloud 组件,还是换 Spring Cloud Alibaba 全家桶?(据说比较坑,而且支持版本很低??)

    Spring 也提供了一份迁移的指南: https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now#spring-cloud-netflix-projects-entering-maintenance-mode

    [前端] 我平时写接口,前端写的少。 估计是 Element + Vue3 + Typescript 这里想问下,有没有什么前端框架和 Spring Webflux 配合比较好的? 比如处理一些 EventSource 、Server-sent Events 比较方便的框架。

    [移动端] Android 做的不是很多,Android 大概会用 Jetpack Compose,Kotlin 语言

    紧跟 Google 架构指南(最近好像又有更新) https://developer.android.google.cn/jetpack/guide

    iOS 之前用 Xamarin 开发过一款软件。现在一直没开发过 iOS ,不太清楚最新的技术栈是什么。

    [ PC 端]

    之前做了一两款 PC 软件用的 Winform ,WPF 框架。也尝试过 WinUi 现在好像 Electron 比较火,不过性能不太好。也没确定以后用什么技术开发 Win 应用。。

    貌似现在微软推荐 WebView2? https://developer.microsoft.com/zh-cn/windows/

    52 条回复    2022-02-11 18:48:29 +08:00
    hatsuyuki
        1
    hatsuyuki  
       2022-02-10 14:29:49 +08:00   ❤️ 1
    PC 端我考虑 JetBrains 的 Compose for Desktop https://www.jetbrains.com/zh-cn/lp/compose-desktop/
    hatsuyuki
        2
    hatsuyuki  
       2022-02-10 14:32:01 +08:00
    wizzer
        3
    wizzer  
       2022-02-10 15:14:04 +08:00
    cosmtrek
        4
    cosmtrek  
       2022-02-10 16:00:26 +08:00
    个人 Web 项目我用 Vue 3 + Typescript + Go + Postgres
    mmdsun
        5
    mmdsun  
    OP
       2022-02-10 16:04:27 +08:00
    @cosmtrek 谢谢。请问现在 go 微服务有没有什么推荐的框架?以前只用过 go-micro 其他的没有尝试过了
    duke807
        6
    duke807  
       2022-02-10 16:13:28 +08:00 via Android   ❤️ 3
    後端 python ( cgi 或 ws );
    web 前端、移動端 android & ios app (首選 pwa 其次 cordova )、pc 端應用程序:全部 h5 搞定(全部只用 vanilla js )
    3dwelcome
        7
    3dwelcome  
       2022-02-10 16:18:18 +08:00   ❤️ 1
    今年我打算用 webasm 写后端微服务,感觉特别适合做热插件。

    前端的话,等有时间上 webgl 试试,边学边用,应该是未来的趋势。
    knightdf
        8
    knightdf  
       2022-02-10 16:20:34 +08:00
    为啥要用微服务?如果是公司的项目你这要做的也太多了, 一个人全包了?
    mmdsun
        9
    mmdsun  
    OP
       2022-02-10 16:21:31 +08:00
    @knightdf 很多不是公司的,摸鱼项目
    xiaoriri666
        10
    xiaoriri666  
       2022-02-10 16:25:42 +08:00   ❤️ 1
    @mmdsun go-zero
    mmdsun
        11
    mmdsun  
    OP
       2022-02-10 16:26:15 +08:00
    @3dwelcome 和你相反之前用过 webasm 写 web 页面,用的 Blazor ,试了试 Ant Design Blazor 。不过都是写的 demo 还没怎么用过。
    littlewing
        12
    littlewing  
       2022-02-10 16:29:38 +08:00
    rust
    tanxnative
        13
    tanxnative  
       2022-02-10 16:41:24 +08:00
    可以看看比较新的技术
    grpc web-->istio gateway--> grpc-->mongodb
    cosmtrek
        14
    cosmtrek  
       2022-02-10 16:58:08 +08:00   ❤️ 1
    @mmdsun 个人项目就不要考虑微服务框架了,很费事。就单体应用打包好镜像运行在 k8s 上
    dcsuibian
        15
    dcsuibian  
       2022-02-10 17:05:51 +08:00   ❤️ 1
    后端,精力有限。

    第一语言 java ,第二语言 js ,自己就能开发 Web 应用了。



    目前在用:Vue2 + Ant Design + Spring Boot + SQL Server/MySQL

    新项目用:React + TypeScript + Spring Boot + PostgreSQL

    (对于小项目完全够用,奥卡姆剃刀)



    看需要的话:Ant Design 、umijs 、Nginx 、Docker 、RabbitMQ 、WebSocket

    设计:Figma
    RainCats
        16
    RainCats  
       2022-02-10 17:11:59 +08:00
    新公司大改造:所有项目整合资源,上了微服务,用的 SpringCloudAlibaba
    xiaoriri666
        17
    xiaoriri666  
       2022-02-10 17:19:20 +08:00
    PHP 永远的神
    wangxn
        18
    wangxn  
       2022-02-10 17:21:27 +08:00
    后端:Go+PostgreSQL
    桌面 /移动端:Flutter
    hccsoul
        19
    hccsoul  
       2022-02-10 17:24:48 +08:00
    单体项目 springboot 感觉够用 ,cloud 没啥必要
    7gugu
        20
    7gugu  
       2022-02-10 17:30:20 +08:00
    HTML+CSS+DIV+JS+PHP 就够用了,用框架就是给自己找麻烦,能解决问题,同事能看懂就行了。
    ql562482472
        21
    ql562482472  
       2022-02-10 17:33:04 +08:00
    springboot+kubernetes 体系即可 springCloud 还是重
    zhennann
        22
    zhennann  
       2022-02-10 17:36:43 +08:00   ❤️ 1
    如果不介意用 JS 语言的话,可以考虑 CabloyJS 全栈开源框架
    1 、前端:Vue2 、Framework7 UI 界面组件库
    2 、后端:Egg2
    3 、其他:Redis 、MySQL

    CabloyJS 包含大量组件和特性,将“开箱即用”和“定制开发”有机结合,这里仅列举几个核心特性:
    1 、首创 pc=mobile+pad 自适应布局,一套代码同时支持 pc 端和移动端运行。移动端是真正的原生体验,不是市面上常见的 media query 那种机制。因此,可以跨多端运行:PC 、Andriod 、IOS 、微信公众号、钉钉应用,等等
    2 、内置 NodeJS 工作流引擎,因此除了可以快速创建 CRUD 、权限系统之外,还可以快速搭建审批工作流
    3 、原生支持分布式架构,从而支持集群部署
    4 、CabloyJS 同样也实现了“依赖反转”的容器编程,不过采用的是“依赖查找”策略

    演示: https://test.cabloy.com/ (可以分别在 pc 端和移动端体验 pc=mobile+pad 自适应布局,可以称得上“耳目一新”的体验)
    文档: https://cabloy.com/ (足够丰富)
    wobuhuicode
        23
    wobuhuicode  
       2022-02-10 17:39:21 +08:00
    最近新写的 APP 用 flutter ,改一下(其实很多)的样式也兼容桌面版本。
    JaguarJack
        24
    JaguarJack  
       2022-02-10 17:40:33 +08:00
    PHP + Vue 做 web 神一样的组合
    shiganwuguo
        25
    shiganwuguo  
       2022-02-10 18:01:39 +08:00 via Android
    没有 dotnet 一把梭的吗
    HarryYu
        26
    HarryYu  
       2022-02-10 18:15:04 +08:00   ❤️ 3
    前端:CRA + TS -> Vercel 托管
    后端:Nest.js + TS + PostgreSQL + Prisma + Redis

    是我目前在用的。偏静态的官网或者展示型的网站,前端首选 Next.js 。但是复杂点的中后台或者 Web 应用,Next.js 有时候就有坑了,可能需要花点精力解决疑难杂症。CRA 非常成熟,什么都可以用。Vercel yyds ,CDN 和集成做的特别好,绑定域名也很方便,省心。

    后端折腾过 GraphQL Apollo 这些,说实话,爽的地方很爽,遇到点复杂嵌套需求外带权限校验直接 GG 。重构干掉之后,Nest.js 的 CRUD 一把梭,开发效率 300%。Prisma 相比其他开源方案类似 Typeorm 来说,有商业公司支持,更加靠谱优良。PostgreSQL 的 JSONB 爽的飞起,兼具 NoSQL 的特性,还是特别方便的。

    然后全部 JS 、TS 一把梭,招人也方便,性能先堆机器吧。
    bfc
        27
    bfc  
       2022-02-10 18:17:23 +08:00
    pwa + starlette ,7 天一个 APP
    xtinput
        28
    xtinput  
       2022-02-10 18:18:22 +08:00
    @hatsuyuki SwiftUI 最低版本是 iOS13 呢
    loshine1992
        29
    loshine1992  
       2022-02-10 18:29:57 +08:00   ❤️ 1
    Android 原生 Kotlin(Coroutines/serialization),Jetpack(Compose/ViewModel/Room/Hilt/Navigation) 一把梭
    跨端项目(含桌面) Flutter 状态管理 Riverpod
    loginbygoogle
        30
    loginbygoogle  
       2022-02-10 19:00:11 +08:00
    后端 Node.js 、客户端 Flutter
    hnbcinfo
        31
    hnbcinfo  
       2022-02-10 19:28:39 +08:00
    6 年.Net 开发狗最近正在尝试:dotnet6+maui+blazor 。目前看,除了小程序,大部分都能搞定。只是 MAUI 控件不够丰富,大部分还是得靠自定义。
    kongkongyzt
        32
    kongkongyzt  
       2022-02-10 19:43:00 +08:00   ❤️ 2
    作为后台开发, 我现在搞自己的项目基本上很少用各种眼花缭乱的框架了, 项目比较简单的话就写几个 serverless 云函数, 连服务器托管运行都省了. 上了一定复杂度的话就用 grpc+go 的组合, docker+k8s 部署. 服务发现 /注册 /日志追踪 /APM 都下沉到 istio 了, 配置中心都是用的 k8s 自带的.

    业务的代码变得简单干净容易维护, 同时扩缩容特别简单, 业务数据的监控也很全面.
    ob
        33
    ob  
       2022-02-10 19:58:50 +08:00
    @hatsuyuki #1 链接打不开?
    pengtdyd
        34
    pengtdyd  
       2022-02-10 20:00:37 +08:00
    技术重要吗,重要的是业务好吧,如果真的要换所谓的高大上的东西,直接换新语言不是更好!
    leafre
        35
    leafre  
       2022-02-10 20:26:40 +08:00
    Spring Cloud Alibaba + Spring Security OAuth2 + Mysql
    Hanggi
        36
    Hanggi  
       2022-02-10 20:42:52 +08:00   ❤️ 2
    2022 选比较火的技术栈:
    前后移动端:(Nest.js / Gin / Actix / FastAPI / kotlin spring boot) + (Next.js / Angular / Material UI) + Flutter
    部署:K8s + Docker+ Istio + OPA + Nats + Redis + Postgresql + MongoDB + EFK + Prometheus/Grafana/Kiali + GRPC + Harbor + MinIO + Bazel 全家桶带走。
    bthulu
        37
    bthulu  
       2022-02-10 20:51:23 +08:00
    如果不介意微软的话, 建议.netcore 一把梭, web 有 cshtml, 安卓有 xamarin, iphone 有 xamarin, mac 有 xamarin, win 桌面有 winform, wpf, xamarin, linux 桌面有 xamarin, web 后台有 asp.netcore, 原生支持依赖注入, grpc, swagger, 前后端即时通信有 SignalR, 从前到后一揽子解决方案, 让你一门语言干掉所有的事
    qfdk
        38
    qfdk  
       2022-02-10 23:30:23 +08:00 via iPhone
    js 一把梭! 前端随意 后端 express. mobile 前端解决了 顺便 desktop 也解决了
    dayeye2006199
        39
    dayeye2006199  
       2022-02-11 08:35:12 +08:00
    工作都是 java ,个人项目也用 java 吗?不会有 ptsd 吗?

    玩点好玩的 -- ruby + hotwire
    elixir + phoenix
    seven123
        40
    seven123  
       2022-02-11 09:33:44 +08:00
    最近在玩的

    后端:Python-Fastapi (个人项目小写起来是真的快爽,大项目不推荐)、Go 、Mysql 、PostgreSQL 、Redis 、Spring Boot 、Spring Cloud Alibaba(只是玩玩,没有在个人项目中实际使用)
    前端:Vue 、React 、Nuxt 、tailwindcss 、Element
    设计:Figma 、Blush 、Sketch
    xunxuntj
        41
    xunxuntj  
       2022-02-11 09:44:37 +08:00
    人生苦短,用 Python
    encro
        42
    encro  
       2022-02-11 10:00:56 +08:00
    rust webAsemmbly
    SmiteChow
        43
    SmiteChow  
       2022-02-11 10:14:02 +08:00
    人生苦短,你懂吧.
    mauve
        44
    mauve  
       2022-02-11 10:37:10 +08:00
    决赛圈选手出现了

    JS(TS) 一把梭 or C#一把梭
    TomVista
        45
    TomVista  
       2022-02-11 10:51:40 +08:00
    react fastify prisma
    jzqsss
        46
    jzqsss  
       2022-02-11 11:07:19 +08:00
    后台 django 怎么样呢
    lovedebug
        47
    lovedebug  
       2022-02-11 11:25:08 +08:00
    前台 React, 后台 typescript + nest.js ,也有 java ,c#, go ,整体不限制语言的微服务架构
    ACEonly
        48
    ACEonly  
       2022-02-11 11:43:01 +08:00
    @wobuhuicode 習慣了 html+css 真覺得 flutter 反人類,至於 dart 和 js 好像,上手很快,還有語法糖
    kran
        49
    kran  
       2022-02-11 12:19:55 +08:00 via Android
    个人项目,java8,guice,javalin,nashorn,arangodb

    springboot 那是个人项目用的吗?哈哈
    Rorysky
        50
    Rorysky  
       2022-02-11 14:02:18 +08:00
    不要作全栈工程师

    不要迷信换新的技术栈可以解决已有的问题
    agagega
        51
    agagega  
       2022-02-11 17:05:12 +08:00
    几个原则:

    - 个人项目、小团队项目和大公司项目的逻辑完全不同。大厂出于 KPI 和实用考虑,可能会推自己的方案来解决小团队或个人项目里完全不存在的问题,个人用麻烦远多于好处。
    - 全栈的是人而不是语言。前端、后端、移动端会有差别是因为他们要解决的问题本来就不一样,在主流语言都越来越像的今天,新学一门语言写业务不该是什么负担。
    - 倾向原生。跨平台框架对某些项目能降低开发成本,但可能也会带来数不清的坑。很多时候用原生方案是更好的选择。
    - 不要盲目鄙视旧技术。Java 、RDBMS 、前后端不分离,这些东西能长期流行是有原因的,如果你没有更好的理由,选择他们不会犯大错。
    - 如果是个人项目或者小团队项目,战略上不妨保守,但战术上大可以激进,新版本、新特性,或者说原生主推的新框架(比如 SwiftUI ),在开新项目时大胆地上。
    wobuhuicode
        52
    wobuhuicode  
       2022-02-11 18:48:29 +08:00 via iPhone
    @ACEonly 项目能赚钱,啥都不是难
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1061 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 19:04 · PVG 03:04 · LAX 12:04 · JFK 15:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.