搞软件架构,是不是绕不开 Java ?

2020-07-22 13:58:49 +08:00
 maxxfire
如题。
单机和 App 架构就不说了,没什么深度。
多机、多服务、多并发这类系统,不会 java 都不好意思称自己是架构师吧?
Java 何以长成这样的大树
12388 次点击
所在节点    程序员
112 条回复
Helix225
2020-07-22 15:50:14 +08:00
某些人让我吐了,当初没走 java 路真是太好了,我可不想在职场看到这些同类,以后架构相关,我偏去看 C++和 Go
xuanbg
2020-07-22 15:55:51 +08:00
架构和语言有什么关系?架构是方法论,语言只是工具。楼主你需要跳出编程的层面去看问题,这样才能找到问题的核心。
sean250031
2020-07-22 16:18:47 +08:00
虽然说可以避开 java,但是也没有必要"强行"避开吧。。。也考虑考虑招开发人员的问题。。java 一抓一大把好招人啊,不是所有厂都是大厂
wysnylc
2020-07-22 16:40:17 +08:00
@Helix225 #41 感谢减少 Java 内卷
yiyi11
2020-07-22 16:47:27 +08:00
别尬吹 /黑,生态之王的事实罢了。
gantleman
2020-07-22 16:54:24 +08:00
@mogami18 软件工程这个行业是最现实的,两三年做不出东西被公司裁员比比皆是,35 岁没有侥幸财务自由和做不出产品的工程师都会被行业淘汰。没人会记得谁发表过什么和说过什么。
yiyi11
2020-07-22 17:01:55 +08:00
说 xxx 语言做的啥东西好,那只是有人愿意做,做成了时代的幸运儿,先入为主罢了。说 xxx 语言做的啥东西差,那只是没人愿意做,而且有更好的替代品罢了。
mogami18
2020-07-22 17:23:41 +08:00
@gantleman 中国确实是这样,所以我 25 岁从 TMD 离职(睡前 40w rmb),目前已经移民加拿大温哥华,半夜上网中,不用担心下半辈子了,逃:)
magiclz233
2020-07-22 17:42:07 +08:00
不是说绕不开 而是 Java 这方面的生态最成熟,大部分公司以及个人在搞架构时自然而然就想到用 Java 那一套,你想用哪个方向都有轮子 demo,你用其他语言的话,性能比 Java 好的,轮子太少,除非公司有大牛,Java 就像一碗面,你饿了的时候第一时间就相当吃一碗,你不饿的时候,又感觉吃的难受,不如喝个奶茶,吃个其他的舒服
WngShhng
2020-07-22 17:48:42 +08:00
很好奇你第一个结论是怎么得出来的
hoyixi
2020-07-22 18:23:37 +08:00
架构是钢筋骨架,架构设计好了,具体搭积木的时候,用 Java 还是用 Node 还是用 Go,随你。
只不过 Java 被普遍使用,生态丰富,很多东西开箱即用。

现在开源大行其道,很多公司说白了就是在拼拼凑凑,稳定现成可用的越多,成本越低,自然普及。
newmlp
2020-07-22 18:27:41 +08:00
软件架构不止有 web 应用
azh7138m
2020-07-22 18:37:01 +08:00
@dongisking
> 那楼上能不能举几个非 java 打造的架构说说啊,非杠

啊,主 golang 的字节已经这么没有牌面了吗
useben
2020-07-22 18:40:38 +08:00
你当云原生的儿子 go 不存在啊
newtype0092
2020-07-22 18:44:31 +08:00
coolshell 一篇文章里的说的,感觉有一定道理
“我以为用 Java 适合做架构这事应该是常识了,但是评论中有很多人非常反对这个事。那我解释一下吧:首先,小型的项目用什么语言都行,爱用什么用什么。但是,真正的企业级架构就不一样了,其中并不仅仅只是 RESTful API 或 RPC,还有各种配套设施和控制系统,比如:应用网关,服务发现、配置中心、健康检查、服务监控、服务治理(熔断、限流、幂等、重试、隔离、事务补偿)、Tracing 监控、SOA/ESB 、CQRS 、EDA……这些东西在非 Java 的技术栈体系内,很难看到全貌,Java 强大的生态环境,就是让你把注意力放到更高层次的架构和业务上来的。(千万不要觉得,整几个服务 RPC 一下,加个缓存,加个队列,就能叫架构,那只是系统集成罢了)”
dexterzzz
2020-07-22 18:51:30 +08:00
sap,dynamic 这些 erp,crm 要什么 java,bi 领域也是
hallDrawnel
2020-07-22 18:53:47 +08:00
腾讯就不是用 Java 的啊,按你的逻辑腾讯就没有架构了 /滑稽
dexterzzz
2020-07-22 18:54:56 +08:00
top 3 的 bi,power bi,tableau,qlik 都是 windows 技术,java 的 bi 都不入流
libook
2020-07-22 18:58:00 +08:00
如果一个架构师说架构只能用 Java 做,那基本上说明这个人还没有成为真正的架构师。

架构师的工作中有一项叫做技术选型,需要架构师具备广泛的知识储备,以及可靠的技术雷达,当遇到一项需求的时候,能够合理分析,选择适合需求的技术来实现。

所以当今只要是上了一定规模的系统,都是由多种技术栈组合而成的,举个例子:某企业业务逻辑部分用 Java,高性能组件用 C++,微服务是 Go,API 网关是 Node.js ,大数据分析是 Scala 和 Python 。物尽其用。

技术都是工具,虽然每个工具的功能都比较丰富,但是工具总是有其擅长的领域,所以得从实际需求出发,合理选择技术。

除了需求本身的特性以外,架构师还要考虑现有的技术包袱、人员的能力、管理成本以及未来的规划,比如如果团队里综合最熟练的只有 Java,而且用 Java 也不会带来高成本或高风险问题,那也是可以考虑整体全用 Java 的。

架构其实就是解决问题的思路,比如说 MVC,并不是特指的只能用 Java 来实现的架构,而是一种通过将系统抽象成 Model 、View 、Controller 三层来实现一种动态的程序设计,使后续对程序的修改和扩展简化。需要说明的是,MVC 是 1978 年提出的,而 Java 是 1995 年发行的。

所以可以说 Java 以其悠长的历史、广大的社区、丰富的案例储备,能让人了解到和学习各种架构。但是也并不是说离了 Java 就没法谈架构了,你看,前端工程师近几年也在架构上玩得 66 的(阿里云已经实现前端微服务架构了,用于解决云控制台大量模块和技术栈混合的问题)。
vissssa
2020-07-22 18:58:27 +08:00
@newtype0092 #55 微软百度腾讯点赞

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/692187

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX