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

问个问题,如果创业公司的架构师和技术 leader,是因为关系比较熟,被拉进来的,但是根本没有该方面的经验,这样的公司一般结局是怎样的

  •  
  •   li24361 · 2015-11-29 10:27:42 +08:00 · 9882 次点击
    这是一个创建于 3312 天前的主题,其中的信息可能已经有所发展或是发生改变。

    举例子,原来架构全是 java ,但是因为人员动荡,来了新的 cto 和架构,都是老板的很熟的关系,但是原来是做.net 和 python 的,不了解消息队列,缓存,高并发,就是说 title 和经验不匹配,那么这种公司,一般倒掉,还是换人,有相同经验的 v 友可以分享下。

    第 1 条附言  ·  2015-11-29 11:57:28 +08:00
    很多人理解错了,又开始开语言炮,可能伤害了 Pythoner ,知乎和豆瓣也很强的
    104 条回复    2015-12-06 21:25:09 +08:00
    1  2  
    nooper
        1
    nooper  
       2015-11-29 10:43:37 +08:00
    必须换人啊,除非有非常深厚的技术功底才能搞定。
    XianZaiZhuCe
        2
    XianZaiZhuCe  
       2015-11-29 10:44:59 +08:00 via Android
    以 web 网站为例 架构师具体是干啥的…
    beddo
        3
    beddo  
       2015-11-29 10:48:00 +08:00
    建议和老板沟通。
    9hills
        4
    9hills  
       2015-11-29 10:48:57 +08:00 via iPhone
    为什么做.net 和 python 的就不理解 消息队列,缓存和高并发?

    这些和语言有一毛钱关系?
    xxp27
        5
    xxp27  
       2015-11-29 10:53:00 +08:00
    @9hills 所以说用 java 的同学常常活在自己的世界里
    chalio
        6
    chalio  
       2015-11-29 10:56:36 +08:00
    和语言关系不大吧,都是架构师了,还是看技术
    vietor
        7
    vietor  
       2015-11-29 10:59:02 +08:00 via Android
    看经验,语言也就一个星期
    odirus
        8
    odirus  
       2015-11-29 10:59:27 +08:00
    呃呃呃。。。不得哦, Python 也可以高并发,也有很好的队列,也能嵌入大规模的缓存
    powergx
        9
    powergx  
       2015-11-29 10:59:33 +08:00 via iPhone
    java 不用 redis memcache 缓存数据? 高并发不用 HA proxy/nginx 反代? java 只是门语言
    janxin
        10
    janxin  
       2015-11-29 11:03:42 +08:00
    大家吐槽重点都错了吧,啊哈哈,关键是经验不够而已,和语言没关系。
    lz 是老板换人吧干脆,不是老板的话,简而言之关我屁事和关你屁事....
    k9982874
        11
    k9982874  
       2015-11-29 11:07:31 +08:00 via iPhone
    不一定倒掉或换人吧,如果技术功底深厚有相关经验学习起来也很快。技术原理是相通的,不要纠结实现的语言。
    hcymk2
        12
    hcymk2  
       2015-11-29 11:16:57 +08:00
    原来架构全是 java 难道推到重来?
    salmon5
        13
    salmon5  
       2015-11-29 11:27:46 +08:00
    @powergx 高并发 单纯的靠 LVS/HAproxy/nginx 能够解决,那这个架构太简单了。运维都能搞定的东西。
    ipconfiger
        14
    ipconfiger  
       2015-11-29 11:32:18 +08:00
    @salmon5 大部分网站的高并发莫说 LVS/HAproxy/nginx 了,好多单纯靠 CDN 就够了
    scys
        15
    scys  
       2015-11-29 11:39:14 +08:00
    创业公司说什么架构-_- ...
    老板不请个 CTO 是信得过的人,难道让你上?
    ---
    如果是打工的,那又有什么关系,公司并不是靠 CTO 一个人去撑起来的
    下面有几个牛逼的技术,就够了
    heww
        16
    heww  
       2015-11-29 11:39:56 +08:00 via iPhone
    结局我猜一般不好吧!楼主可以找下家了。
    bzzhou
        17
    bzzhou  
       2015-11-29 11:41:15 +08:00
    Java 、.NET 、 Python 这些和消息队列、缓存、高并发这些有什么直接联系么?
    wleexi
        18
    wleexi  
       2015-11-29 11:41:52 +08:00
    远离这种公司 , 管他最后怎么样
    PP
        19
    PP  
       2015-11-29 11:46:59 +08:00 via iPad
    看老总的根底和销售拿项目的能力,吃得住就能活下去,吃不住就拖到死。货好,会卖,二者至少得占其一。
    li24361
        20
    li24361  
    OP
       2015-11-29 11:51:39 +08:00 via iPhone
    @9hills
    @bzzhou 你说有什么关系,出问题能搞定,你连语言都不熟就直接用轮子?
    Heavytiger
        21
    Heavytiger  
       2015-11-29 11:59:56 +08:00
    很多公司是这样的, leader 都不是不懂技术的。我还遇到一家公司, 2 个 leader 都不会写代码,设计啥都不会。都在 leading 。这公司最近资金链断了,还好我走的早,拿了一个月工资。
    Hyperion
        22
    Hyperion  
       2015-11-29 12:05:17 +08:00
    -_- LZ 你是想表达这个意思吧?

    但是原来是做.net 和 python 的,*而且*不了解消息队列,缓存,高并发,就是说 title 和经验不匹配”
    Hyperion
        23
    Hyperion  
       2015-11-29 12:06:12 +08:00
    APPEND 内容又是一段容易引起误会的话…
    uleh
        24
    uleh  
       2015-11-29 12:49:10 +08:00 via iPhone
    消息队列、缓存、高并发和语言有关系么……
    li24361
        25
    li24361  
    OP
       2015-11-29 13:14:58 +08:00 via iPhone
    @Hyperion 是的,终于遇到一个语文高手了
    jiongxiaobu
        26
    jiongxiaobu  
       2015-11-29 14:01:17 +08:00 via Android   ❤️ 1
    我同学做毕业设计,做一个创业公司的项目, Web 方面。然后说导师门下的一个博士生是构架师。然后那构架师不知道 https ,服务器推荐用 windows ,说前端可以直接连接数据库,感觉他是十年前穿越来现代的。
    cdxem713
        27
    cdxem713  
       2015-11-29 14:33:43 +08:00 via iPhone
    @PP
    PP 说得很中肯,技术牛不能代表一切,创业公司经常动荡,如果我是老板,也更愿意用自己身边的人,忠诚度高,公司不行了,这些人也不会随时离我而去。
    很多创业项目技术上其实没什么难度,现在可能反而更看重销售和人脉了,技术有几个懂行的人,带着做几个月也就能把团队练出来了
    cdxem713
        28
    cdxem713  
       2015-11-29 14:34:36 +08:00 via iPhone
    不过主要还是看项目,事无绝对
    salmon5
        29
    salmon5  
       2015-11-29 15:25:39 +08:00
    @ipconfiger 业务系统怎么靠 CDN 实现高并发,又不能请 CDN 公司写业务逻辑。单纯的网站静态页很简单的。
    li24361
        30
    li24361  
    OP
       2015-11-29 15:33:43 +08:00   ❤️ 1
    @cdxem713 互联网金融,用户量比较大,业务要求很高,不是普通的那种小创业公司,原来是买的一个成熟产品,所以没出问题,现在不能满足业务需求,要重新搞
    li24361
        31
    li24361  
    OP
       2015-11-29 15:35:19 +08:00
    @salmon5 上面有很多人可能理解的就是网站同时能承受多少人浏览,所以认为很简单,但其实我说的是类似于电商的那种,实在是很难想象用 python 来搞
    hick
        32
    hick  
       2015-11-29 15:40:07 +08:00
    楼主在这个创业公司是什么角色? 就凭不了解消息队列和高并发, 你就判断"title 和经验不匹配"了? 创业公司大部分压根用不着, 或者说不需要这些玩意儿...

    楼主想法太过幼稚, 好像有统计数据说生命力超过 2 年的创业公司不到 10%, 没人能统计这类型公司一般会怎么样, 简单举例有些公司技术根本不重要, 没有架构师 /CTO 也能过去.
    hantsy
        33
    hantsy  
       2015-11-29 16:09:22 +08:00   ❤️ 1
    @hick 在中国大部分创业都是忽悠人的幌子,创业公司可能只是老板忽悠投资人的一个台阶。。。他们玩的可能是资本运作,看起来像创业而已。

    我本人经历过两个创业项目,基本上都是被忽悠进去,要求快速的出一个产品(当然只是界面像个样子),而一般公司运营下去的,要考虑的东西很多,技术平台的未来扩展性,性能上支持某些点的高并发性(金融产品经常有一些抢购活动等),高容错处理,自动化运维支持( CI , CD ,日志分析)等。这些他们根本不会考虑,赶快出了一个东西出来去套钱才是目的,从来不会花心思去 [打磨] 一个产品。

    我可能再也不会做创业项目了。
    salmon5
        34
    salmon5  
       2015-11-29 16:16:10 +08:00
    楼主的郁闷我能理解。

    @hick 恰恰是创业公司,有些需求不简单的,领导对技术都是二愣子,造飞机放火箭的需求创业公司很多,架构师不给力,下面的人就跟着吃苦吧。技术上汤浑水,加班熬夜扯犊子。
    salmon5
        35
    salmon5  
       2015-11-29 16:18:27 +08:00
    对于“外行”的领导,创业公司今天要做百度一样的网站,下周做个淘宝一样的网站,员工就那几号人,有苦难言。

    另外评论里面有几个是架构师的?
    hick
        36
    hick  
       2015-11-29 16:26:07 +08:00
    @hantsy 感觉说大部分可能有点过了, 大部分人还是想做出一番事业来的, 只是每个人对这个社会的了解和判断不一样, 可能老板在自我陶醉的时候, 下边人不同的看法. 大家在不同层次观察问题, 本身可能没有高低贵贱之分, 只是看法不一样

    要求创业型项目讲究太多的高容错, 自动化是有些过分的, 不管从当前浮躁的创业氛围考虑, 还是从用户的的角度考虑, 快速出产品本身没有错. 无论国内外, 时间就是金钱, 需要不断的快速出产品来试错. 每个人对"花心思打磨一个产品"的判断可能都不一样的, 如果搞不定工资, 又会有几个员工愿意跟老板花心思打磨产品哈?

    回到楼主这里来, 每个人也都会有各自的优势和劣势, 楼主的分析粗糙简略, 只列别人的短处, 不列出别人的长处. 不管创业还是什么项目, 最需要发挥团队精神, 整合每个人的长处, 老盯着别人的短处看, 片面的判断就想得出一个结论和推测, 这种人只会是团队里的搅屎棍.
    mengzhuo
        37
    mengzhuo  
       2015-11-29 17:12:05 +08:00 via iPhone
    楼主太 naive 了
    CTO 不一定所有细节都知道的, 但是需要大方向的眼界、沉稳大气上档次 镇得住投资人或者股东就行
    下面带头干活的技术经理 leader 知道就好了
    ps 楼主你说的消息队列 缓存 都不是所谓的技术难点…
    mzer0
        38
    mzer0  
       2015-11-29 20:24:35 +08:00   ❤️ 5
    你们一般用哪家 CDN? 什么价格? 买得多有折扣吗? 求推荐.

    一定程度上, 我支持楼主 @li24361 和 @salmon5 的观点.

    很多人误解了消息队列 /缓存 /高并发. 缓存并不等价于 memcache, 高并发也不等价于 HAProxy/LVS. 事实上, Java 程序员 的选择要比 Python 程序员 多, 因此 Java 总体上来说比 Python 更复杂.

    1) Java 的同步 /异步锁是需要自行控制的, 这也意味着 Java 有更大的优化空间.
    2) Java 在处理实时消息时有阻塞 /非阻塞的选择, 非阻塞有异步 /消息队列的选择, 优化空间很大.
    3) Java 的高并发是需要自行控制线程调用的, 控制线程有很多种模型, 优化空间很大.

    因此, Java 可以拥有很好的网络性能.

    诚然, 现在网络服务器的瓶颈在于磁盘 IO, 但并不能说网络性能 /CPU 就不用考虑了. Java 可能无法大幅度提高性能, 但我必须指出:

    1) Java 完全可以在很短的时间内编写出 Memcache/HAProxy 的替代品, 并且, 在其特定的应用场景上, 性能超越 Memcache/HAProxy.
    2) 消息队列 /缓存 /高并发是 Java 的难点, 非常非常难, 我相信以上回答问题的人中, 几乎不可能有人能背出同步锁的实现方法, 因此不懂得同步锁的差异会对性能有怎样的影响.
    3) 积少成多, 非常小的性能差异, 累积起来便可变成巨大的障碍.

    但是, 非常遗憾, 几乎所有 Python 程序员都无法背出消息队列的基本模型, 缓存的基本模型, 同步锁的基本模型......我并不是贬低 Python 程序员, 我只是说明, 这就是为什么 Python 程序员无法理解 Java 程序员.

    但是, 如果一名 C#的程序员背诵不出上述的基本模型, 那我肯定不能认同他. 因为上述模型是 C#的常识.

    * 我并不是说 Java 比 Python 好, 相反, 我本人并不使用 Java.
    * 但是, 任何说"消息队列 /缓存 /高并发"不难的人, 你们绝对是在扯淡, 在你眼里, 高并发就是 HAProxy? 缓存就是 Memcache? 完完全全是扯淡.
    * HAProxy 和 Memcache 的性能真的不怎样, 很容易被超越. 为什么? 因为他们都是为"通用场景"设计的, 在特定场景里, 很轻松就能超越.
    * 楼上绝大多数仁兄, 都是不计算线程调度的时间, 以及网络操作的时间的......

    以上几个人背过多线程的基本模型??? 给你一台 20 核的服务器, 要求以最快的速度解决一千万个请求, 你会怎么做? 将请求以 HAProxy 分发, 并使用分布式计算来解决??? 扯淡!!!

    如果自己不懂, 就老老实实坦诚自己不懂, 光是同步锁这一个内容, 就能写一本书, 微软年年都在研究同步锁, 每次出新的 Windows 都会使用新的同步锁模型, 你们懂不懂同步锁能造成多大的性能差异? 新浪开发的 FastSocket 你们知道吗???

    楼上绝大多数人都不懂得如何发挥一台服务器的全部性能, 如何让服务器的 cpu 真正跑到 100%的占用率, 所以你们觉得瓶颈在于 IO, 实际上:

    如果同步锁 /线程协调做得不好, IO 速率会非常非常非常非常低!!!

    因为 IO 是占用 CPU 的!!!

    所以很多人说瓶颈在于 IO, 其实很有可能瓶颈是你没有一个合适的编程模型, 导致 CPU 不断被占用, IO 需要使用 CPU 的时候抢占不到!!!

    如果你写的程序不断去占 CPU 周期, 而且占得特别多, IO 受影响会非常厉害!!!

    Python 做了通用的模型, 来简化程序员的工作, 使程序员不用考虑这些事情.
    但 Java 程序员是需要考虑的.
    foxhunt
        39
    foxhunt  
       2015-11-29 21:40:52 +08:00
    创业公司,在最短时间内把握好核心需求,做出能创造价值的产品是正道
    先把产品做出来,有收入能活下去了再说
    其他更多的都是空话
    wizardforcel
        40
    wizardforcel  
       2015-11-29 22:35:54 +08:00 via Android
    @bzzhou java 不上手 web 还真不了解消息队列和缓存 前者是 mdb 的组件 后者需要上 mc

    并发可能会了解 但是需要一些底层的功力 以及常见并发模型的认识
    Mirana
        41
    Mirana  
       2015-11-29 22:38:57 +08:00
    @mzer0 说了这么多 你并不能证明所有的 Pythoner 都不懂你说的东西,也不能证明所有的 javaer 都懂你说的东西
    HentaiMew
        42
    HentaiMew  
       2015-11-29 22:54:51 +08:00
    我没有这方面的经验,但是我的看法是:
    1. Python 和.NET 的对“消息队列,缓存”以及高并发等概念和技术半点都不懂的话,说实话,他们还仅仅停留在 Coding 阶段,不懂最基本的应用系统架构方面的东西,换做其他语言都是如此。对于(当前)工作而言,层次太浅。
    2.Java 程序员不懂上述内容的多得是,不一定比 Python 和.NET 程序员少。懂的基本都是中、高级软件工程师,初级程序员只会写 CRUD 的多得是。
    3.几乎任何“消息队列”和“缓存”产品都是异构性质的,和语言无关。并不是找几个会 Java 的就一定会用, Python 和.NET 程序员学习一定时间也能用,只是需要一个实践的过程。
    4.“高并发”是一个概念,或者说是一个大型架构系统基本原则之一,“高并发”的能力是无上限的,不考虑硬件的情况下完全取决于架构的优良性。但不是一门技术或者一门语言就能解决的,一个优秀的架构师是很必要的。
    5.创业公司,呵呵。越复杂的架构,死得越快。适合的就是最好的,任何系统的架构是演变过来的,不是一次性就完美的。
    boyhailong
        43
    boyhailong  
       2015-11-29 23:57:36 +08:00 via iPhone
    语言和架构有关系吗 醉
    zjb861107
        44
    zjb861107  
       2015-11-30 01:52:44 +08:00
    键盘侠不得不来插一嘴,你站的高度不够,看待问题的角度跟老大不同。
    一个产品、一个公司的成功,在不同阶段侧重点是不一样的,技术从来都不是决定一个公司生死的最重要因素
    JamesRuan
        45
    JamesRuan  
       2015-11-30 02:46:10 +08:00
    @mzer0 看到这样大段大段地用“!”就来气。

    “让服务器的 cpu 真正跑到 100%的占用率”本身就是一个错误的方向。

    架构上第一重要的是业务绝对安全,第二是开发成本和维护成本,第三是运营成本,第四是扩展性。性能什么的优先级非常地低。

    真的重要了,也是因为性能不好导致运营成本大于改进性能的维护成本了。

    一个弄 Java 的不一定比弄 C#, python 的更会考虑上述这些。
    JamesRuan
        46
    JamesRuan  
       2015-11-30 02:47:02 +08:00
    @zjb861107 没错,商业运营比技术重要多得多。
    binux
        47
    binux  
       2015-11-30 03:32:23 +08:00
    @mzer0
    > 给你一台 20 核的服务器, 要求以最快的速度解决一千万个请求, 你会怎么做?

    我会把这个需求拍回去,一千万个什么请求是什么想清楚再来?
    vavava
        48
    vavava  
       2015-11-30 03:46:08 +08:00
    如果这个 cto 真的技术经验不足而大刀阔斧才危险
    最怕的是那种管理特别扁平的

    一个正在走下坡路的大公司的项目只能用指定的某云
    有各种大延迟高丢包和莫名的错误数据
    这也是有经验的管理层做出的决定

    真希望做决定的人能平庸一些些
    mzer0
        49
    mzer0  
       2015-11-30 08:31:10 +08:00 via iPhone
    @JamesRuan 对于 Java 程序员而言,任何一台机器, cpu 占用率跑不到 100%都是一种耻辱。

    Java 那种手动控制线程调度的语言,与 php 、 python 那类自动控制线程调度的语言,有着极大的差异。手动控制线程调度的情形下,只要设计模型是正确的,在线程安全的同时,必然拥有良好的峰值性能。对 Java 而言,安全性与性能是统一的,两者中有一者不足,都说明另一半是有隐患的。

    想必你也不懂什么叫消息队列 /缓存 /高并发。难道设计正确的线程调度模型, cpu 占有率会跑不到 100%?难道常年 cpu 占有率上不去的 Java 程序,你敢说它的模型没错?
    unique
        50
    unique  
       2015-11-30 08:35:34 +08:00
    老板的抉择对他而言是正确的,底下的人最看重的是个人能力,这只有在你们工作中体现了,光在这里说也没有什么用
    mzer0
        51
    mzer0  
       2015-11-30 08:35:55 +08:00 via iPhone
    对绝大多数 php 、 python 等自控制线程调度的语言来说,常年低 cpu 占用是正常的,这不能说明程序不安全。

    但性能表现不如预期的 Java 程序, 100%是有 bug 的。

    手动控制线程调度非常复杂,没有做过的人是不明白的。整天说安全性,不安全的 Java 程序能泡到 100%占有不崩溃?

    你知道安全性有几种吗。线程安全,数据安全,异常安全,灾毁安全?动不动说安全,难道你的“安全”仅仅定义为没有手抖写错变量名?太低级了好不好!
    mzer0
        52
    mzer0  
       2015-11-30 08:37:10 +08:00 via iPhone
    @binux 解决不了一千万个并发请求的人,根本不会懂什么叫大并发。你用过四路 cpu 的机器吗?怎么发挥性能?
    binux
        53
    binux  
       2015-11-30 08:40:08 +08:00
    @mzer0 什么性能?
    mzer0
        54
    mzer0  
       2015-11-30 08:43:22 +08:00 via iPhone
    @binux cpu 峰值持续时间、 cpu 上升沿、线程调度次数、同步量被锁定次数。
    mzer0
        55
    mzer0  
       2015-11-30 08:45:47 +08:00 via iPhone
    一个写得好的线程调度算法,永远不可能同时满足高并发场景和低并发情景,高并发算法在低并发情形下必然是低效的,因此实时流量监测就非常重要。甚至某些基于数学定理的策略(非完全锁死)只在特定 cpu 运行情况下才能达到高成功率(论文指出可以超过 98%)。
    mzer0
        56
    mzer0  
       2015-11-30 08:51:36 +08:00 via iPhone
    实时测定流量以后,线程池必须对流量有相应的正反馈,有很多研究者都发了论文来探索最优正反馈曲线,以及相应的比例系数。

    整体弄 php 、 python 的哪懂这些?对 c++而言,分配内存都需要正反馈算法,算法的比例系数在不同 cpu 架构 /核数上还不一样,都是需要查论文的。

    单单论 Java 高并发,能写 n 本书,选择正确的反馈模型就能写一本书, php/python 在多核多 cpu 的表现非常非常差,研究者认为核数超过 10 以后,脚本语言普遍都不能发挥计算机性能,这和脚本语言底层模型有直接关系,脚本语言底层模型是不检测计算压力的,因此选用的是中低压力下的最优模型。
    binux
        57
    binux  
       2015-11-30 08:55:12 +08:00
    @mzer0 设计一个无锁无线程的不就完了?

    > 给你一台 20 核的服务器, 要求以最快的速度解决一千万个请求, 你会怎么做?

    我会把这个需求拍回去,一千万个什么请求是什么想清楚再来!
    gulullu
        58
    gulullu  
       2015-11-30 08:56:24 +08:00
    这个,难道你是 ST 的?
    mzer0
        59
    mzer0  
       2015-11-30 08:56:44 +08:00 via iPhone
    任何说高并发容易的人,你们一个月领多少钱?想过为什么吗?

    高并发很容易?扯淡。

    高并发的 Java 是需要重新设计 GC 策略的,你会实现 GC 吗?最优单次内存分配和 cpu 核数是什么关系知道吗?

    如果你编程的时候都不用考虑这些,那你说高并发“很简单”,我只能心里默念:你真无知。

    事实上 Java 最难的地方之一就是多线程,非常难,年年有人写论文来讨论。

    我们之中有多少自以为是的人?以为自己两行代码能写出很多东西,就说 xxx 很容易, yyu 也很容易?你们的业务开那么多机器来跑分布式,真的不是因为性能太差吗? IO 表现那么差,真的不是因为反复锁死线程导致的?
    mzer0
        60
    mzer0  
       2015-11-30 08:58:14 +08:00 via iPhone
    @binux 我只能说你幼稚。或者说傻逼。你是学生吧?工作了?无锁无线程?无脑儿。
    binux
        61
    binux  
       2015-11-30 09:01:18 +08:00
    @mzer0 呵呵,你又没要求一千万个请求是干嘛的,不就占满 100%CPU 嘛,你管我写什么。
    没有场景夸夸而谈,你是所谓的「架空师」吧。
    mzer0
        62
    mzer0  
       2015-11-30 09:04:32 +08:00 via iPhone   ❤️ 1
    任何试图说高并发很简单的人,我问你们。

    单次线程锁死,平均占用几个 cpu 时间?单次 IO 呢?单次异步 IO 呢?基本常识都没有,谈什么高并发。

    单次线程锁死的时间都背不出,搞笑。

    最优线程数呢? 6 核的 cpu ,最优线程数是几?背不出?搞笑。

    大哥,不要因为自己学的少,就觉得别人做的事情很简单,好不好?说实话, c/c++/c#/java...这些语言的多线程模型都非常类似,这些语言里哪一门你学好了? go 语言学过吗? coroutine 知道吗?会实现 coroutine 吗?

    不再回答任何问题,不要试图攻击我而显得自己“不那么没有文化”,懂的人自然懂,不懂的人我当你们是傻逼——技术都不在一个层面上,聊什么聊?

    我认为,技术不在一个层面上就别聊了,我说的你听不懂,白费劲。
    mzer0
        63
    mzer0  
       2015-11-30 09:13:30 +08:00 via iPhone
    最后奉劝一句。不懂就直接说不懂,不然很搞笑。


    @binux 不要掩饰自己是个傻逼了。玩文字游戏没有意思。如何让 6 核的计算机,永远保持 cpu 的 100%占用率?我相信你连这个都做不到。为什么?不理解操作系统的时间片模型的人,或许能做到瞬间 cpu 占用率 100%,但做不到一直。
    binux
        64
    binux  
       2015-11-30 09:19:04 +08:00
    @mzer0 seq 4 | xargs -n 1 -P4 python -c "while True: 1+1"
    wy315700
        65
    wy315700  
       2015-11-30 09:20:57 +08:00 via iPad
    @mzer0 忍不住歪个楼,没必要理一些抬杠的人,你刚刚说的那些有好一点的教材或者论文推荐吗,想学习一下
    mzer0
        66
    mzer0  
       2015-11-30 09:21:15 +08:00 via iPhone
    @binux 你回去试试看,能不能“永远” 100%占用。

    这个问题在《编程之美》里就说过, python 这样的语言有 GC 时间,是永远不可能 100%占用的。
    mzer0
        67
    mzer0  
       2015-11-30 09:23:36 +08:00 via iPhone
    @wy315700 呃...不知道!我的话是因为自己设计过线程锁,所以很多年前在 csdn 上和别人有过讨论。
    wupher
        68
    wupher  
       2015-11-30 09:23:41 +08:00
    编程语言相对架构师来说并不是特别重要。关于计算的理解,对于水平扩展、 HTTP 、瓶颈查找,瓶颈处理这些,相对而言要重要的多了。

    另外,坦白的说,也看创业的阶段。如果已经 A 轮到 B 了,嗯,并发很重要。如果仅是初创阶段,这时,相对于性能与容量,更着急的把产品做出来,而且寻找产品方向。真正量上来了,弄到钱了,再谈容量与性能的事。 Twitter 之前还是 Ruby 写的, Taobao 最开始的时候,还是 PHP 。
    Phariel
        69
    Phariel  
       2015-11-30 09:25:29 +08:00 via Android   ❤️ 1
    语言之争脱离了宇宙最好语言还能吵的这么精彩 😂
    binux
        70
    binux  
       2015-11-30 09:26:15 +08:00
    @mzer0 什么叫永远 100%占用?
    如果有第 7 个进程抢到了 CPU 时间,啊,不,就说 ssh ,它都得断掉。你写一个「永远」 100% 的?

    你撤那么多 「单次线程锁死,平均占用几个 cpu 时间?单次 IO 呢?单次异步 IO 呢」,搞不清楚他们有多少,单词占用时间有个 JB 用?
    binux
        71
    binux  
       2015-11-30 09:27:23 +08:00
    不扯了,睡觉去了。
    bengol
        72
    bengol  
       2015-11-30 09:29:21 +08:00 via Android
    占满 100cpu 了后 ssh 怎么办
    bk201
        73
    bk201  
       2015-11-30 09:30:43 +08:00
    @mzer0 抬杠的都被我 block 过。发现混 ACG 的特别喜欢抬杠吹逼,还是太年轻
    azhao
        74
    azhao  
       2015-11-30 09:38:40 +08:00
    如果不了解消息队列 /缓存 /高并发,那显然和 Python/.net 没有一毛钱关系,就是水平比较差而以
    nodephp
        75
    nodephp  
       2015-11-30 09:50:49 +08:00
    好玩 ,我来插一脚 php 是最好的语言 没有之一
    yuyang041060120
        76
    yuyang041060120  
       2015-11-30 09:56:29 +08:00
    按照某些评论的意思就是:我知道炒菜的步骤我就能烧出美味,我知道造飞机的原理我就能造出飞机。
    wy315700
        77
    wy315700  
       2015-11-30 09:57:09 +08:00
    @mzer0 能否留个联系方法聊一聊, gtalk wy315700#gmail.com
    我们现在也是遇到一些严重的并发问题,,,想请教一下
    smartdie
        78
    smartdie  
       2015-11-30 09:58:32 +08:00
    技术细节可以不懂,但是大局观和架构要有深入理解, CTO 二混子太多,创业公司远离。
    neoblackcap
        79
    neoblackcap  
       2015-11-30 10:05:01 +08:00
    @mzer0 一千万的请求,多少时间内一千万的请求?如果是 1 分钟, 1 个小时, 1 天都是不一样的。过早的优化是万恶的源泉。

    不是说这些知识需不需要懂,关键是到底有多少家公司能达到 1 小时 1 千万的请求数。我都不说分钟了。又不是每家公司都能达到这样的程度,达到这样程度的公司自然就能解决,你说 4 路的服务器,我们的老板只批 1CPU , 1G 的配置,你说这个怎么解决?这个也要上多线程?这样的条件下面简单粗暴就行了,反正一天也就那么多请求。有这个时间去提高单机性能,我还不如搞下自动化部署,自动化运维好了。
    nodephp
        80
    nodephp  
       2015-11-30 10:06:47 +08:00
    创业公司 上来就谈 千万级 弱弱的问问 你的产品能做到不
    zongwan
        81
    zongwan  
       2015-11-30 10:08:25 +08:00
    变成语言之间的战争了

    你们都不懂买本书就能学会 java 了(仅针对帖子 1)
    看完后 java 程序员就可能懂上面说的 CPU 100,多并发....

    发几个帖子 普及下大众对 java 的认识
    网页设计师买本书就能学会 Java ? - 小组 - 伯乐在线
    http://group.jobbole.com/11208/#comm-16750
    紧咬 9 行代码,索赔超 10 亿美元 - 博客 - 伯乐在线
    http://blog.jobbole.com/95154/
    作为一名 Java 程序员,我为什么不在生产项目中转向 Go
    http://www.infoq.com/cn/articles/why-not-go
    我为什么反对用 Node (作者是 TB 的 java 开发)
    http://www.infoq.com/cn/articles/why-oppose-Node

    举目所见,java 程序员勇于推翻一切非 java 语言,因为 apache 很多项目选择了 java
    但也有不少选择了兼容多种语言
    比如 apache thrift (中间键)支持 go/python/...甚至支持 Actionscript 3

    java 很强大,不过就算不用 java .双 11 背后还是有很多其他技术选择...
    wy315700
        82
    wy315700  
       2015-11-30 10:18:12 +08:00
    @mzer0 或者其他方式可以吗,
    mornlight
        83
    mornlight  
       2015-11-30 10:24:01 +08:00
    @mzer0 不考虑你说的内容好坏,我还是想建议你尽量不要只是因为技术观点上的争议而随便喷人。在 V2 你这么说 binux 不是很好。
    beneo
        84
    beneo  
       2015-11-30 11:02:58 +08:00
    长远看自己的核心利益不减的条件下,拥抱变化
    0987363
        85
    0987363  
       2015-11-30 11:10:13 +08:00
    我们公司还招了个运维来做架构师呢。。用过 openstack 跟 docker ,然后就鼓吹这 2 个, 然而却不知道 openvz
    Linxing
        86
    Linxing  
       2015-11-30 11:39:57 +08:00
    持续关注该帖子
    tchekai704
        87
    tchekai704  
       2015-11-30 13:30:48 +08:00 via Android
    @mzer0 我觉得我层次差你太远,我写过的 java 程序,在做相同业务的时候,只能占满 8 个 core ,再增加线程已经无用。
    JamesRuan
        88
    JamesRuan  
       2015-11-30 17:21:25 +08:00
    @mzer0

    "想必你也不懂什么叫消息队列 /缓存 /高并发"——我劝你少评价别人,戾气太重,学鸠摩智没有好下场的。


    PHP 、 Python 之类的,有 GIL ,当然有并发瓶颈,我一个不弄 python 、 php 也不弄 java 的都知道,翻译都没翻译过来,怎么去并发执行的道理,一个弄 python 的会不懂这个吗?

    你弄过个线程锁,理解过其中的复杂性,就了不起了,以为所有人都不懂了?会个 go 了不起了,知道 goroutine (学术名字应该叫做 CSP )怎么实现就出来卖弄了,也不看看人家 erlang (你眼中的脚本语言)单机单线程时代就做到多少并发了?——没错,这里面非常复杂,但自己去对付就是巨大的成本, CTO 傻到看不到成本就去追求性能,这样的公司才药丸。

    弄 python 的线程锁方面可能没你懂,但人家去做 CTO ,一定比你这个只看并发性能的更成功。
    JamesRuan
        89
    JamesRuan  
       2015-11-30 17:27:05 +08:00
    @wy315700 并发问题绝大多数出现在 IO 相关层。当然,如果是由代码上非线程安全而引起的,就是制造不合格,和设计无关了。
    fishioon
        90
    fishioon  
       2015-11-30 17:44:21 +08:00
    膜拜 @mzer0 ,我现在的公司在搭建一个类似知乎 /微博 /雪球这样的网站,请问怎样的架构设计比较好?做到高并发需要注意哪些东西?有哪些建议?
    firefox12
        91
    firefox12  
       2015-11-30 17:45:15 +08:00 via iPhone
    呵呵, java 把自己看得很高啊。可惜和 java 程序员关系不大 都是 jvm 做的。
    不用喷 你们永远做不到 c 的性能,先天就限制了。把精力花在这种问题上好无意义。那天 redis ha nginx mysql 这种都是 java 写了 那才是 java 真正的统一了世界,现在看还很远。


    1000 万请求 什么样的环境,多少连接,什么样的 IO 类型什么样的服务,什么样的目标。什么都没有 就来说所谓的高性能,这简直太可笑了。只能说明高性能你还不大了解。
    JamesRuan
        92
    JamesRuan  
       2015-11-30 20:11:55 +08:00
    @fishioon 理解你们的业务,很多时候设计再好的架构不如一个 DBA 。
    binux
        93
    binux  
       2015-11-30 20:33:28 +08:00
    早上睡起来顿悟, 难道 mzer0 说的是开发一个类似 HAProxy 的东西? 但是谁用 python 去干这个呢?

    我反对 mzer0 脱离业务夸夸其谈, 我对页面建树都是 10ms 起步的, 跑一轮 DBSCAN 也是百 ms 量级, feature extraction 来个 1 秒很正常. 全程无锁无 IO, 完完全全 CPU 消耗, CPU 100% 占用不是很简单吗. 你那几个 CPU 时间, 都不够塞牙缝.

    还是一开始那句话: 我会把这个需求拍回去,一千万个什么请求是什么想清楚再来!
    onceyoung
        94
    onceyoung  
       2015-11-30 20:46:39 +08:00 via Android
    楼主难道是我们公司的
    feilaoda
        95
    feilaoda  
       2015-11-30 22:06:13 +08:00 via Android
    不出意外,这辈子可能都不会遇到所谓的千万并发的需求了。
    salmon5
        96
    salmon5  
       2015-11-30 23:51:44 +08:00   ❤️ 1
    看到一个 b 开头的 2B ,老老实实呆学校都你的书吧。
    msg7086
        97
    msg7086  
       2015-12-01 07:04:00 +08:00   ❤️ 1
    @mzer0 不关心具体业务就谈性能毫无意义。
    更何况争的是服务器这种便宜货。
    一个 Senior 级别程序员一个月给公司带来的开销至少 1 万刀,假设来 5 个 Senior 花 2 个月能构建起一个超高效率的系统,然后维护他,我还不如这每月 5 万刀拿去买服务器,每个月都可以买个几台回来用了。

    有句话不太中听,可是是真理: Premature optimization is the root of all evil.

    另外,世界上规模最大的系统之一谷歌,完全不屑于用超高性能的服务器。人家几百万台低配照样跑得好好的。与其去背诵默写四路 E7 的最优化线程数,还不如多研究研究架构和平台,多做做设计,做个拿一堆 E3 就能跑起来的系统。

    @li24361 回到主题。

    CTO 这个职位其实比较偏向于行政,架构师倒是比较偏技术。技术骨干应该是 VP Engineering 才对吧。
    不知道具体水平如何,不过真的有能力的人,就算没有经验,也可以很快积累经验。是否懂某些技术和是否能胜任职位并不是密切相关的,关键要看他们能否带领团队发展。

    建议先不要急着下结论,稍微观察一段时间再做定夺。

    话说回来, V2EX 上喷子也越来越多了,是不是该换个地方讨论技术了。
    天天看喷子难受,好好的帖子就被搅和成这样。
    xiamingchong
        98
    xiamingchong  
       2015-12-01 09:14:50 +08:00
    呵呵,我搞 php 的,三天学会了 java ,写 storm
    hxgdzyuyi
        99
    hxgdzyuyi  
       2015-12-01 09:39:14 +08:00
    目前合作过的 Java 程序员。。。没啥满意的。 感觉是不是我见的世面不够多。没有见到过好的 Java 程序员。
    rale
        100
    rale  
       2015-12-01 10:54:06 +08:00
    看了下评论,楼主应该是不善于表达的人,所以导致了很多误解。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2875 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 14:31 · PVG 22:31 · LAX 06:31 · JFK 09:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.