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

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

  •  
  •   maxxfire · 2020-07-22 13:58:49 +08:00 · 12398 次点击
    这是一个创建于 1619 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题。
    单机和 App 架构就不说了,没什么深度。
    多机、多服务、多并发这类系统,不会 java 都不好意思称自己是架构师吧?
    Java 何以长成这样的大树
    112 条回复    2020-07-24 16:12:28 +08:00
    1  2  
    hand515
        1
    hand515  
       2020-07-22 14:01:16 +08:00   ❤️ 10
    虽然我也是搞 java 的,但你这样问,我觉得好尴尬
    wshcdr
        2
    wshcdr  
       2020-07-22 14:02:11 +08:00
    绕的开啊
    kop1989
        3
    kop1989  
       2020-07-22 14:03:09 +08:00
    语言是工具,架构师就是用适合的工具来根据需求规划技术抉择。
    所以掌握 java 并非成为架构师的充要条件。
    smallpython
        4
    smallpython  
       2020-07-22 14:03:30 +08:00
    java 性能好, 而且更严谨不容易出错
    songsong
        5
    songsong  
       2020-07-22 14:08:19 +08:00
    java 是刀, 各种编程语言都是刀, 架构师是厨师, 觉得什么时候用什么刀
    dongisking
        6
    dongisking  
       2020-07-22 14:15:11 +08:00   ❤️ 6
    那楼上能不能举几个非 java 打造的架构说说啊,非杠
    opengps
        7
    opengps  
       2020-07-22 14:16:42 +08:00   ❤️ 3
    我用 C#不行吗?好歹线上项目也用了差不多一百台服务器的规模了
    waising
        8
    waising  
       2020-07-22 14:20:20 +08:00
    大数据暂时 java 那套比较好用 ,应用架构 go c# 不都可以吗 反正都是用组件
    wysnylc
        9
    wysnylc  
       2020-07-22 14:21:58 +08:00
    目前能称得上工程化语言的只有 Java 吧,其他的造造小房子挺不错但是难以制造摩天大厦
    wysnylc
        10
    wysnylc  
       2020-07-22 14:22:58 +08:00
    @opengps #7 那必然是个大项目了,说来听听
    LostPrayers
        11
    LostPrayers  
       2020-07-22 14:27:48 +08:00
    你可以用 k8s 那套,应用也全部上 golang,再包括 sql 、mq 、cache 等等中间件,基本上都有非 JAVA 方案
    janxin
        12
    janxin  
       2020-07-22 14:33:40 +08:00   ❤️ 1
    @dongisking 你来举几个用 Java 打造的架构不能用其他语言实现的啊,非杠
    opengps
        13
    opengps  
       2020-07-22 14:34:33 +08:00
    @wysnylc 说大不大说小不小,就是我做的车载 gps 防盗器项目,上百万台车载终端 tcp 长连接回传位置数据等信息,提供 web 集群对外查询。
    至于那一堆“流行”中间件。实际业务则是根据需求可有可无,用了中间件有用了的好处(解耦把各种极端故障难题丢出去),不用中间件直接怼数据库也有直接怼数据库的优缺点(做好了异常处理不中断业务也照样撑起业务)
    BoarBoar
        14
    BoarBoar  
       2020-07-22 14:37:28 +08:00
    @dongisking google 哪个架构用的 java?非杠
    dongisking
        15
    dongisking  
       2020-07-22 14:43:08 +08:00
    @janxin 小弟目前后端打杂,在网上看了关于微服务在 php ( swoft ),和 golang ( gin 、斗鱼的 Jupyter )都没实现的太完整。另一方面从 nginx,mq 一致性,redis,分布式锁、可重入锁等等都没 java 的案例多,我甚至找解决方案先去看看 java 怎么做,然后再找别的语言实现
    wleexi
        16
    wleexi  
       2020-07-22 14:47:17 +08:00
    @wysnylc C 也行?
    janxin
        17
    janxin  
       2020-07-22 14:48:50 +08:00
    @dongisking 这是没有像 Java 一样有打包方案吧... 因为 Java 的使用比例目前在国内都是比前面两个要高,资料多也是很正常的。但是这些跟架构没关系,难道一个架构师没有框架就不会做事了么...这种架构师应该叫调包侠吧...
    wysnylc
        18
    wysnylc  
       2020-07-22 14:49:12 +08:00
    @opengps #13 百万车载也就看着唬人,你这并不涉及到并发问题,负载均衡横向扩展(加机器)可以解决那么最终就都是单机问题
    还以为是哪家的订单或者支付呢
    mogami18
        19
    mogami18  
       2020-07-22 14:50:02 +08:00   ❤️ 1
    @dongisking 新兴的比如,TensorFlow 内核,UBER 的 Horovod,NVIDIA 的 NCCL 。已有的 Redis/memcached,MySQL 等等。即使是 Java 生态圈 HDFS,MapReduce,HBase,也分别脱胎于 Google 用 C++实现的三驾马车 GFS,MapReduce,BigTable 。
    wysnylc
        20
    wysnylc  
       2020-07-22 14:50:40 +08:00
    @wleexi #16 C 是摩天大厦的建筑材料水泥钢筋这种,谁都绕不开
    Java 也可以说是 C 的子集
    gantleman
        21
    gantleman  
       2020-07-22 14:50:41 +08:00
    看到多机,多服务,多并发就想到前面在💩山上拉💩的帖子。
    只在胃里一阵翻腾之后…尤其远远的看见山上的架构师。
    dongisking
        22
    dongisking  
       2020-07-22 14:51:38 +08:00
    @janxin 是啊,这样的打包方案是很多踩坑哥辛辛苦苦总结出来的,在其他语言论坛也有,不过真不够活跃
    mogami18
        23
    mogami18  
       2020-07-22 14:51:48 +08:00   ❤️ 1
    搞软件架构也需要理论的支持,建议楼主多多参考一下经典的顶会论文,比如 OSDI/SOSP/ATC/EuroSys/ASPLOS 的论文等等。编程语言只是工具
    dongisking
        24
    dongisking  
       2020-07-22 14:52:08 +08:00
    @mogami18 好的老哥
    mogami18
        25
    mogami18  
       2020-07-22 14:54:21 +08:00
    @dongisking 我自己就是从事系统架构方向的研究人员,也在业界大厂待过,感觉能把最新的系统 /架构的理论落地应用的,公司里面还是没多少人的,楼主可以抓住一个方向,重点突破一下,之后去大厂混个早 11 晚 7 的靠谱工作问题不大
    wejsve
        26
    wejsve  
       2020-07-22 14:57:57 +08:00
    无力吐槽,微服务的基石 K8S 就是 golang 写的
    wangritian
        27
    wangritian  
       2020-07-22 14:58:34 +08:00
    非 java,云服务,懂一点 k8s,正在学习使用 istio,各种中间件也是走网络协议的
    PopRain
        28
    PopRain  
       2020-07-22 14:58:49 +08:00
    说的软件好像只有互联网企业是开放软件,其它企业都是乡下盖房吗????
    janxin
        29
    janxin  
       2020-07-22 14:58:56 +08:00
    @dongisking 对于其他语言来说,发展是需要时间、人员投入等等很多东西。实际上架构落地是一件十分有成就感的事情,不过如果把它简单的抽象为调包,架构会迟早出问题的,作为架构师的你可能根本不知道瓶颈在哪。不过好在一般人可能遇不到这种瓶颈,这也是很多混子架构师的原因...
    maxxfire
        30
    maxxfire  
    OP
       2020-07-22 15:07:01 +08:00 via iPhone
    @mogami18 #25 敢问有哪些方向值得一去
    gantleman
        31
    gantleman  
       2020-07-22 15:10:41 +08:00
    @mogami18 那些最新的理论值的一读
    mogami18
        32
    mogami18  
       2020-07-22 15:13:02 +08:00
    @maxxfire 目前最火的是分布式机器学习系统方向,工作要求比如能独立的完成,根据业务需求优化开源 TensorFlow 内核的某个组件的实现,并且能帮助算法工程师分析系统性能瓶颈,给出优化方案。对机器学习理论的基础知识(线代,概率,统计)和经典模型(CTR,图像识别)有理解和实战经验,但是不要求过高的数学能力,同时有大规模分布式系统开发维护经验,有分布式系统的理论经验(发表过国际系统方向顶会论文的更好),熟悉 parameter server 原理和实现更佳。
    mogami18
        33
    mogami18  
       2020-07-22 15:15:32 +08:00
    @gantleman 得看哪个方向啊?分布式机器学习系统? RDMA 通信?分布式存储? disaggregated data center ?方向太多了呀。就像人工智能机器学习算法,也分为:纯理论方向,(凸)优化方向,视觉方向,自然语言处理,推荐系统等等。每一个小方向都有很多值得深究的论文
    samwalt
        34
    samwalt  
       2020-07-22 15:17:15 +08:00
    @opengps udp 回传位置数据也可以吧?
    cs419
        35
    cs419  
       2020-07-22 15:17:47 +08:00
    小孩子才做选择题
    roundgis
        36
    roundgis  
       2020-07-22 15:18:14 +08:00
    @opengps 你们用什么技术? Golang? Cpp?
    opengps
        37
    opengps  
       2020-07-22 15:32:40 +08:00
    @samwalt 可以,tcp,udp 都有,更早的位置服务实现方案甚至有过短信(我没用过),有过 http (我也没用过,类似的需求倒是做过)
    @roundgis C#,等到后来对项目深入之后。发现语言什么根本不是重点,业务需要的是能把数据发回到后台服务器即可
    gantleman
        38
    gantleman  
       2020-07-22 15:41:25 +08:00
    @mogami18 软件开发本身是没有门槛的,任何人拿电脑都可以写软件。对于只写理论而没有配套软件的论文我持怀疑态度。简单的说提出可以改变世界赚到大钱的理论,提理论的人为什么不自己写软件去赚钱?这是让我想不明白的逻辑悖论。所以在软件工程里应该不存在无法落地的理论。考虑到软件复制成本几乎为零的特点。很容易就可以得到结论,理论等于软件等于产品等于钱的结论。所以不能做成软件的学术论文就是废纸,没什么深究的意义。能做成软件的学术理论也不会变成论文,而是直接变成钱。学术论文在软件工程里的意义就变成了。这个方向被某人研究过了,写不出软件赚不到钱,走不通只能发个论文水一下。
    mogami18
        39
    mogami18  
       2020-07-22 15:46:32 +08:00
    @gantleman "能做成软件的学术理论也不会变成论文,而是直接变成钱" => 我稍稍反驳一下,还是 TensorFlow,作者是 Jeffrey Dean 等一众 Google 的科学家,发表在 OSDI 2016 上面,不仅有正确的理论,还革新了机器学习训练的系统,同时作者们都享受着独一无二的高薪。Parameter Server 的作者 Eric Xing 开了个公司,挣了很多钱,同时他是 CMU 的教授,发了很多有价值的 paper 。还有李沐,MXNET 作者,AWS 科学家,等等
    但是,确实如老兄所说,绝大多数的论文,即使是顶会的论文,也都是在灌水!!!
    mogami18
        40
    mogami18  
       2020-07-22 15:48:08 +08:00
    @gantleman 我的个人看法是,如果软件规模开始变得很大,掌握一些靠谱的理论,是可以让软件开发变得高效实用和可控的。至于哪些理论靠谱,诚然,还是需要在工作中利用越来越多的经验慢慢总结积累
    Helix225
        41
    Helix225  
       2020-07-22 15:50:14 +08:00
    某些人让我吐了,当初没走 java 路真是太好了,我可不想在职场看到这些同类,以后架构相关,我偏去看 C++和 Go
    xuanbg
        42
    xuanbg  
       2020-07-22 15:55:51 +08:00   ❤️ 1
    架构和语言有什么关系?架构是方法论,语言只是工具。楼主你需要跳出编程的层面去看问题,这样才能找到问题的核心。
    sean250031
        43
    sean250031  
       2020-07-22 16:18:47 +08:00
    虽然说可以避开 java,但是也没有必要"强行"避开吧。。。也考虑考虑招开发人员的问题。。java 一抓一大把好招人啊,不是所有厂都是大厂
    wysnylc
        44
    wysnylc  
       2020-07-22 16:40:17 +08:00
    @Helix225 #41 感谢减少 Java 内卷
    yiyi11
        45
    yiyi11  
       2020-07-22 16:47:27 +08:00 via Android
    别尬吹 /黑,生态之王的事实罢了。
    gantleman
        46
    gantleman  
       2020-07-22 16:54:24 +08:00
    @mogami18 软件工程这个行业是最现实的,两三年做不出东西被公司裁员比比皆是,35 岁没有侥幸财务自由和做不出产品的工程师都会被行业淘汰。没人会记得谁发表过什么和说过什么。
    yiyi11
        47
    yiyi11  
       2020-07-22 17:01:55 +08:00 via Android
    说 xxx 语言做的啥东西好,那只是有人愿意做,做成了时代的幸运儿,先入为主罢了。说 xxx 语言做的啥东西差,那只是没人愿意做,而且有更好的替代品罢了。
    mogami18
        48
    mogami18  
       2020-07-22 17:23:41 +08:00
    @gantleman 中国确实是这样,所以我 25 岁从 TMD 离职(睡前 40w rmb),目前已经移民加拿大温哥华,半夜上网中,不用担心下半辈子了,逃:)
    magiclz233
        49
    magiclz233  
       2020-07-22 17:42:07 +08:00
    不是说绕不开 而是 Java 这方面的生态最成熟,大部分公司以及个人在搞架构时自然而然就想到用 Java 那一套,你想用哪个方向都有轮子 demo,你用其他语言的话,性能比 Java 好的,轮子太少,除非公司有大牛,Java 就像一碗面,你饿了的时候第一时间就相当吃一碗,你不饿的时候,又感觉吃的难受,不如喝个奶茶,吃个其他的舒服
    WngShhng
        50
    WngShhng  
       2020-07-22 17:48:42 +08:00
    很好奇你第一个结论是怎么得出来的
    hoyixi
        51
    hoyixi  
       2020-07-22 18:23:37 +08:00
    架构是钢筋骨架,架构设计好了,具体搭积木的时候,用 Java 还是用 Node 还是用 Go,随你。
    只不过 Java 被普遍使用,生态丰富,很多东西开箱即用。

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

    啊,主 golang 的字节已经这么没有牌面了吗
    useben
        54
    useben  
       2020-07-22 18:40:38 +08:00
    你当云原生的儿子 go 不存在啊
    newtype0092
        55
    newtype0092  
       2020-07-22 18:44:31 +08:00   ❤️ 2
    coolshell 一篇文章里的说的,感觉有一定道理
    “我以为用 Java 适合做架构这事应该是常识了,但是评论中有很多人非常反对这个事。那我解释一下吧:首先,小型的项目用什么语言都行,爱用什么用什么。但是,真正的企业级架构就不一样了,其中并不仅仅只是 RESTful API 或 RPC,还有各种配套设施和控制系统,比如:应用网关,服务发现、配置中心、健康检查、服务监控、服务治理(熔断、限流、幂等、重试、隔离、事务补偿)、Tracing 监控、SOA/ESB 、CQRS 、EDA……这些东西在非 Java 的技术栈体系内,很难看到全貌,Java 强大的生态环境,就是让你把注意力放到更高层次的架构和业务上来的。(千万不要觉得,整几个服务 RPC 一下,加个缓存,加个队列,就能叫架构,那只是系统集成罢了)”
    dexterzzz
        56
    dexterzzz  
       2020-07-22 18:51:30 +08:00 via Android
    sap,dynamic 这些 erp,crm 要什么 java,bi 领域也是
    hallDrawnel
        57
    hallDrawnel  
       2020-07-22 18:53:47 +08:00
    腾讯就不是用 Java 的啊,按你的逻辑腾讯就没有架构了 /滑稽
    dexterzzz
        58
    dexterzzz  
       2020-07-22 18:54:56 +08:00 via Android
    top 3 的 bi,power bi,tableau,qlik 都是 windows 技术,java 的 bi 都不入流
    libook
        59
    libook  
       2020-07-22 18:58:00 +08:00   ❤️ 7
    如果一个架构师说架构只能用 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
        60
    vissssa  
       2020-07-22 18:58:27 +08:00
    @newtype0092 #55 微软百度腾讯点赞
    libook
        61
    libook  
       2020-07-22 19:09:29 +08:00
    补充一下,当前技术是多元化发展的,而且在诸如云原生等概念的推广下,系统的非业务部分逐渐被各种中间件、基础设施来实现,如横向扩展、通信可靠性、服务容灾、削峰填谷、优雅降级、灰度发布等等,让代码更专注与业务逻辑,以提高企业变现能力。
    areless
        62
    areless  
       2020-07-22 19:17:49 +08:00 via Android
    我印象中,十年前印度的软件产业基本只有 java ~所以乃至今日,印度都没有中美这么多有趣的互联网产品。java 只是令印度诞生了一批美国大公司的印度人高层。
    waising
        63
    waising  
       2020-07-22 19:26:59 +08:00
    @vissssa #60 k8s istio 不就是要解放语言限制吗 感觉后面语言真的只是工具了
    roundgis
        64
    roundgis  
       2020-07-22 19:35:38 +08:00
    @opengps 你们用 dotnet core? 还是 dotnet
    opengps
        65
    opengps  
       2020-07-22 20:01:24 +08:00 via Android
    cheng6563
        66
    cheng6563  
       2020-07-22 20:04:59 +08:00 via Android
    Java 喜欢搞大架构,所以搞架构就很适合 Java
    luckyrayyy
        67
    luckyrayyy  
       2020-07-22 20:15:35 +08:00
    评论区真的有意思哈哈哈哈,文人相轻,程序员鄙视链远比我想象的严重
    inktiger
        68
    inktiger  
       2020-07-22 20:36:40 +08:00
    java 是世界上最好的语言(逃)
    roundgis
        69
    roundgis  
       2020-07-22 22:32:48 +08:00
    @opengps 我是蛮好奇的,我印象中用 windows 来做百万级别长链接管理的系统不是太多见
    qoras
        70
    qoras  
       2020-07-23 01:21:22 +08:00
    java 很多东西确实 go 也有, 但成熟度确实是有差距的. 另外就是 java 好招人, go 要难一些, 特别是高级以上
    yuyuko
        71
    yuyuko  
       2020-07-23 01:29:55 +08:00 via iPhone
    @gantleman 落地很难得,你做过大型系统开发就知道了,取舍,测试都能要层皮
    yuyuko
        72
    yuyuko  
       2020-07-23 01:32:32 +08:00 via iPhone
    @gantleman 论文重要的是 idea,系统架构师采集汇总各种 idea 来实现业务的需求,有的系统 2 年也就刚刚可用
    CoderGeek
        73
    CoderGeek  
       2020-07-23 01:44:36 +08:00
    慢慢就绕的开了 需要沉淀 JAVA 的生态和商业价值沉淀了多少年
    holinhot
        74
    holinhot  
       2020-07-23 02:49:30 +08:00
    java 是刀, 各种编程语言都是刀, 架构师是厨师, 觉得什么时候用什么刀
    但是作为厨师你不用用这刀怎么了解啥刀适合干啥,难道都靠道听途说
    xiaomingVTEX
        75
    xiaomingVTEX  
       2020-07-23 06:27:37 +08:00   ❤️ 2
    转: [别让自己“墙”了自己]( https://coolshell.cn/articles/20276.html/comment-page-1)

    > 离开 Java 的世界,基本上离开了做架构的世界(相关解释见文末)
    > 注:我以为用 Java 适合做架构这事应该是常识了,但是评论中有很多人非常反对这个事。那我解释一下吧:首先,小型的项目用什么语言都行,爱用什么用什么。但是,真正的企业级架构就不一样了,其中并不仅仅只是 RESTful API 或 RPC,还有各种配套设施和控制系统,比如:应用网关,服务发现、配置中心、健康检查、服务监控、服务治理(熔断、限流、幂等、重试、隔离、事务补偿)、Tracing 监控、SOA/ESB 、CQRS 、EDA……这些东西在非 Java 的技术栈体系内,很难看到全貌,Java 强大的生态环境,就是让你把注意力放到更高层次的架构和业务上来的。(千万不要觉得,整几个服务 RPC 一下,加个缓存,加个队列,就能叫架构,那只是系统集成罢了)
    jedihy
        76
    jedihy  
       2020-07-23 06:40:13 +08:00
    这叫 java 构架师。构架师本身和语言有什么关系?
    iConnect
        77
    iConnect  
       2020-07-23 06:57:59 +08:00 via Android
    @opengps 你们家的 GPS 车载防盗器,是只提供软件解决方案?还是自己也卖硬件产品的?
    opengps
        78
    opengps  
       2020-07-23 07:23:23 +08:00 via Android
    @iConnect 卖,围绕汽车开展了一堆业务,软硬件整套解决方案都有,也定制开发特殊需求
    iConnect
        79
    iConnect  
       2020-07-23 07:36:32 +08:00 via Android
    @opengps 我在网上一搜好多品牌看花了眼,后来就随便找了个销量大的买了,暂时还没出现问题。主要是也没时间各家都对比一下呀,不知道是不是真有很大差距🐣 你专业的做这个的,挑选车载防盗器主要看哪些方面?
    opengps
        80
    opengps  
       2020-07-23 08:01:41 +08:00 via Android
    @iConnect 微信私聊吧,id 同 v2 的 id
    urnoob
        81
    urnoob  
       2020-07-23 08:17:57 +08:00 via Android
    @wysnylc 没必要贬损其他人的项目。做过类似的也做过订单支付类的。我真没觉得后者更有难度。前者要求的技术深度还更高。
    opengps
        82
    opengps  
       2020-07-23 08:44:53 +08:00
    @wysnylc 刚注意到你的回复。如果你要争论,那么你赢了。

    至于业务算大算小我不在乎,我只在乎业务是否转的好(无论负载多少),我不在乎使用什么语言(但我会综合优缺点进行选择),百万连接我已经说了,说大不大说小不小,你觉得小就往小的方向理解即可,毕竟再大的项目归根揭底还是很简单的 crud 。

    再大的项目都有个共同点:不去挑战单机极限,都在回避单点瓶颈。
    janxin
        83
    janxin  
       2020-07-23 08:56:20 +08:00
    @xiaomingVTEX 适合做和只能 Java 做是两回事情,这文章里面有其中一个观点说的很清楚,不要对自己设限,不要看不上 Java 也不要因为学了 Java 就看不起其他语言做架构。反倒后面作者和后续讨论的人都跑偏到语言之争上,远离了本文的宗旨之一,实在是令人遗憾。
    wupher
        84
    wupher  
       2020-07-23 09:20:54 +08:00
    架构与语言无关

    很多公司并不像那家电商公司一样全都是 Java 的。比如企鹅,比如飞期布克。

    架构是 App 与 App,Service 与 Service 之间的组成方式。
    594duck
        85
    594duck  
       2020-07-23 09:29:30 +08:00
    @opengps C# 和 JAVA 是一个级别的东西。 这要比得用 GO 或者 Python 或者这种天天上微信朋友圈的系统来和 JAVA 以及 C#对杠.
    securityCoding
        86
    securityCoding  
       2020-07-23 09:43:01 +08:00
    大数据 java 比较多 , 你要说 web 的话选择就多了去了,随便一个都能撑起业务的
    tkl
        87
    tkl  
       2020-07-23 09:47:07 +08:00
    插一句 如果要用全文搜索 貌似只有 ES ?
    opengps
        88
    opengps  
       2020-07-23 09:52:47 +08:00
    @594duck 咱不杠,只是中立的说事实(这样依然有人反对那就无所谓了,起码咱没褒贬之意)。
    我想说的其实就一句话:架构跟语言无关。
    我自从写过 socket 开发之后,认识到任何一门语言只要能收发 byte,就能构造出 webserver,同理也能构造出其他 server,只不过语言库的支持程度不一样,比如某些从来没用作 web 宏图的需要语言级别的底层封装
    dongisking
        89
    dongisking  
       2020-07-23 09:54:57 +08:00
    @tkl 不是,只是基于 lucene 来讲 es 做的还不错,通用解决方案已经很成熟
    wysnylc
        90
    wysnylc  
       2020-07-23 10:14:53 +08:00
    @urnoob #80
    @opengps #81 没有争论和贬低的意思,只是他这个业务确实没有并发争抢的点,用户之间除了公共数据都是隔离
    北斗和 gps 为何能支持全世界的人进行定位呢?因为他只"推"不收没有并发,与这个如出一辙
    讲技术也要讲情面的思想我觉得还是留着某些地域好
    tkl
        91
    tkl  
       2020-07-23 10:25:48 +08:00
    @dongisking 比如?
    ldxy
        92
    ldxy  
       2020-07-23 10:36:36 +08:00
    @wysnylc 如果定位系统只在单向传输数据,他怎么知道对方是否定位成功呢?这定位的可靠性怎么保证?
    index90
        93
    index90  
       2020-07-23 11:05:57 +08:00
    因为很多公司对架构师的要求不只是架构师,更是 TL 。
    TL 要做什么?攻克技术难题。
    那大部分公司都用什么技术? Java 。
    wysnylc
        94
    wysnylc  
       2020-07-23 11:09:42 +08:00
    @ldxy #91 单向传输是 GPS 或者北斗,他这个很像但不是完全一致只是做个类比
    这种高并发但是无用户争抢的场景从业务或者架构层面来讲并不难,做好无状态一致性哈希动态负载均衡后剩下的就是无限加机器
    gadsavesme
        95
    gadsavesme  
       2020-07-23 11:32:20 +08:00
    算是滚雪球吧,其实很多语言都能搞一个大型的应用,但是现在 java 的解决方案多啊,除了问题兜底容易啊。所以用的人就多,用的人多了好的方案就更多了,然后就循环了。
    Rwing
        96
    Rwing  
       2020-07-23 11:50:20 +08:00
    国内避不开
    dongisking
        97
    dongisking  
       2020-07-23 11:55:30 +08:00
    @tkl golang 的 RiotSearch (好像是非 lucene ),v 站还有个人搞了 kalaserach
    Mithril
        98
    Mithril  
       2020-07-23 12:01:33 +08:00
    @wysnylc 不是只有互联网才需要架构师,也不是只有电商的场景才叫难。不同行业领域有不一样的需求和困难,电商的高并发一致性难点在其它领域里可能就不存在,其他领域的难点在电商也不一定有。
    架构师主要的作用就是解决自身领域内的难点,设计适合自己场景的架构。
    wysnylc
        99
    wysnylc  
       2020-07-23 12:06:49 +08:00
    @Mithril #97 任何行业都有造摩天大厦的需求,别人已经用这个语言造成功了你再造就会很简单成本更低因为你知道这条路是可以成功的
    你说的解决难点就是一句废话,任何的工作都要解决难点难题
    Java 的魅力不在于他有多优秀,而是前人留下的经验可以帮企业剩下巨大成本
    hatebugs
        100
    hatebugs  
       2020-07-23 12:25:10 +08:00 via Android
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2820 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 14:06 · PVG 22:06 · LAX 06:06 · JFK 09:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.