关于源码和算法 大家怎么看? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zc1249274251
V2EX    程序员

关于源码和算法 大家怎么看?

  •  
  •   zc1249274251 2020-04-10 11:03:31 +08:00 5570 次点击
    这是一个创建于 2022 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近面试比较频繁,做 Java 这块 感觉基本绝大部分都是 Spring 全家桶了,加上 Redis 、MQ 、Mysql 等等,但很多时候在二面、三面时候开始会问算法、还有一些 Spring 源码、Mq 源码等等一些东西,有点没明白,真的有必要这么死扣源码吗?还有感觉工作中接触算法比较少了,这个也有必要吗?

    38 条回复    2020-04-10 23:11:09 +08:00
    littlewing
        1
    littlewing  
       2020-04-10 11:24:07 +08:00 via iPhone
    并不是要死抠源码,而是你要知道你用的东西的原理,不能是只会用
    maemual
        2
    maemual  
       2020-04-10 11:28:01 +08:00
    说白了就是看你有没有上进心,有没有探索原理的欲望。
    crackhopper
        3
    crackhopper  
       2020-04-10 12:51:52 +08:00
    工作中确实用的比较少。但从公司角度考虑,如果公司 hc 有限、应聘者很多,怎么区分应聘者?所以源码、算法这些主要是用来区分人的,并不代表工作用到。一般到这种级别区分人,就意味着岗位的竞争可能比较激烈。
    nnqijiu
        4
    nnqijiu  
       2020-04-10 13:04:56 +08:00
    面试造航母,工作拧螺丝。说白了就是筛选人的
    shawndev
        5
    shawndev  
       2020-04-10 13:12:08 +08:00
    根据我的总结,每一个刁钻的产品经理背后,都有一个需要偶尔需要挖掘源码的开发。如果一次都没有,很可能因为你不是这个产品的核心开发。
    hantsy
        6
    hantsy  
       2020-04-10 13:25:40 +08:00   1
    基本上是 Spring 全家桶?太以偏概全了。Java 的世界不要太丰富,盯着一个 Spring 不要枯燥了。
    TwoDogSon
        7
    TwoDogSon  
       2020-04-10 13:38:51 +08:00
    最近也在备战 啃源码 啃着啃着发现这玩意 有点像从英文文章里面学词组 语法的感觉 人家这块为啥这么用 以后我遇到类似的是不是也可以用这种方式来实现(主流框架 源码什么的作者比我 nb 多了)换个思路想 都想接手的代码不是烂摊子 那么是不是有看过源码主流框架的人 写出烂摊子的概率更小一些呢 最近啃着啃着还挺有趣的 安利一个 draw.io 然后搭配 googlg drive 存储 祝大佬早日早到如意的工作~
    stiangao
        8
    stiangao  
       2020-04-10 13:49:20 +08:00
    杠杆原理大家都知道,四两拨千斤,但是如果你不知道呢,撸起袖子就开干,so~
    mazai
        9
    mazai  
       2020-04-10 14:17:32 +08:00
    都说面试造航母,工作拧螺丝,正儿八经的让你上去造航母你也得造的出来吧?
    Jooooooooo
        10
    Jooooooooo  
       2020-04-10 14:21:15 +08:00
    你换到面试官角度就懂了
    fkdog
        11
    fkdog  
       2020-04-10 14:23:40 +08:00
    @crackhopper 非大公司专业面试的话,大部分面试官也是随便问问,或者网上找的面试题。
    大部分面试官的水平其实也不咋的,和面试者 5 5 开。
    fkdog
        12
    fkdog  
       2020-04-10 14:25:45 +08:00
    @TwoDogSon 研究开源框架源码对你的业务编码能力并没有多大的帮忙。
    业务代码写的乱往是逻辑混乱、业务理解不到位、应付之类的原因。
    Orenoid
        13
    Orenoid  
       2020-04-10 14:35:25 +08:00
    Spring 这种生态大而全的可能不怎么需要动源码吧,但中小型框架和库就不好说了。
    Java 我写得不多不太清楚具体状况,写 Python 的时候确实改过一些框架 /库的代码,要么继承,要么直接重写的都有。。
    blackccc
        14
    blackccc  
       2020-04-10 14:48:17 +08:00
    竞争太激烈了,一般的问题大家都会,也只能这样了
    wuketidai
        15
    wuketidai  
       2020-04-10 14:49:14 +08:00
    你 debug 的时候可能有一些是用的框架里面报的问题,如果你不了解,你怎么定位修复?
    你自己造轮子的时候,别人框架已经解决过类似东西了,你通过源码了解到相关设计与实现细节,可以拿来借鉴也可以拿来改进
    sampeng
        16
    sampeng  
       2020-04-10 15:15:51 +08:00
    如果你没看过 spring boot 源码。。来来来来,我们刚提出的一个问题,你看怎么解? spring boot 的项目启动太慢,需要优化。。你都没看过源码,不知道 spring boot 的结构和启动顺序。给你这个线上的问题,你告诉我你不知道?那我要你干嘛?
    vitoliu
        17
    vitoliu  
       2020-04-10 15:17:59 +08:00
    在岗位竞争不激烈或者急招人的情况下可以一点算法不问。但是一定要问源码。
    一是源码看的多的人怎么也能学个一招半式,代码质量相对更高。相信对框架源码感兴趣的人,就算需求急着上线也不会写一些恶心的逻辑在里面。
    二是解决问题的能力和耐力,这点不用多说吧,框架源码参差不齐,且一般调用链很深,能坚持看下去的人相对来说更好管理,平时能少操点心不比招个大爷进来好多了。
    tc132
        18
    tc132  
       2020-04-10 15:23:50 +08:00
    @vitoliu 赞同啊
    不学别人优秀的代码,业务代码很容易写成屎了
    qdzzyb
        19
    qdzzyb  
       2020-04-10 15:27:46 +08:00   2
    也挺奇怪的 没人问 mysql 的源码
    yRebelHero
        20
    yRebelHero  
       2020-04-10 15:32:20 +08:00
    其实想知道 spring 源码怎么看,感觉无从下手。
    murmur
        21
    murmur  
       2020-04-10 15:33:54 +08:00
    因为面试的人太多了,所以加点有难度的筛一批人
    nicebird
        22
    nicebird  
       2020-04-10 15:42:21 +08:00
    书到用时方恨少。工作中 90%都是无技术含量的,但是是要有 1%要用上了,没积累的话就是一个无头苍蝇。
    ConradG
        23
    ConradG  
       2020-04-10 15:49:21 +08:00
    我觉得问算法还好,只要不要求现场撸红黑树这种的,这玩意儿是正经基本功。
    源码倒是除非是针对性很强的岗位,否则两边很难聊到一块儿。
    chihiro2014
        24
    chihiro2014  
       2020-04-10 15:56:13 +08:00
    其实现在的 Java 程序员,大部分都是离开 Spring 就不咋会写代码了。。。。。。。个人意见,不喜勿喷
    Orenoid
        25
    Orenoid  
       2020-04-10 16:04:16 +08:00
    另外同意楼上关于 debug 的观点,有时候发送异常后,框架可能并不会帮你包装好用人话告诉你出什么错了,而是直接抛出一个非常底层的错误,万一这个错误又不是那么常见,你不看源码的话可能会无从下手。
    zc1249274251
        26
    zc1249274251  
    OP
       2020-04-10 16:12:09 +08:00
    @Orenoid 其实 也不是说不推荐看源码 但是回过头来看 Spring 源码十几年的沉淀 没有很好的一个技术积累 真的无从下手 之前看的时候感觉就是这样
    hantsy
        27
    hantsy  
       2020-04-10 17:17:07 +08:00
    @yRebelHero 看 Spring 的源代码容易,关键是 spring-context, spring-beans, spring-core, 其次是 spring-aop 等等, 都是其次。这些源代码,导入 IDE,不是傻子都看得懂,有什么意义。
    hantsy
        28
    hantsy  
       2020-04-10 17:21:33 +08:00
    @sampeng 如果你在乎 Spring Boot 的启动速度,Spring Boot 带来的傻瓜式的 AutoConfiguration,也让你的项目引入很多不必要的配置。你完全可以不用 Spring Boot,用原始 Spring 自由度更大。
    purensong
        29
    purensong  
       2020-04-10 17:23:32 +08:00
    面试过别人就能体会要区分出 10 个人,你应该问哪些问题,你都问 spring IOC AOP,他们都对答如流,你不问一些消息队列,微服务怎么 能做出选择。 我觉得倒不是面试造火箭,而是看面试者有没有学习能力,有学习能力的一定会多问为什么,而且会深挖技术内核,而不是浮于表面。
    KeyboardManAnAn
        30
    KeyboardManAnAn  
       2020-04-10 18:14:44 +08:00
    工作越久,越觉得这些基础知识真的有用,否则就永远都只是在浮光掠影的表面磨叽
    zc1249274251
        31
    zc1249274251  
    OP
       2020-04-10 18:16:29 +08:00
    @KeyboardManAnAn 深有同感 大学时候学的数据结构、计算机组成啥的真是有用
    zc1249274251
        32
    zc1249274251  
    OP
       2020-04-10 18:17:21 +08:00
    @TwoDogSon 老哥 求教 你这看源码咋看的 直接导 Ide?
    TwoDogSon
        33
    TwoDogSon  
       2020-04-10 20:10:19 +08:00
    @zc1249274251 我看到 Android 源码哈 有一部分可以 ide 看 还有的可以有那种源码在线的网站吧 跳转没有 ide 体验好 但也可以接受
    sampeng
        34
    sampeng  
       2020-04-10 20:46:13 +08:00 via iPhone
    @hantsy 我回复得是楼主得不看源码怎么解决…不是这个问题怎么解决…
    wangyzj
        35
    wangyzj  
       2020-04-10 20:58:23 +08:00
    @nnqijiu 面试造火箭,上班拧螺丝
    liuzhiyong
        36
    liuzhiyong  
       2020-04-10 22:44:50 +08:00
    我觉得会用就行,工具的源码不需要了解,因为你根本不会去改它(反正我没有这么牛)。算法了解一下即可,业务代码对这个要求很有限(有可能有用,大部分时候用不上)。
    james122333
        37
    james122333  
       2020-04-10 23:08:01 +08:00 via Android
    最近越来越讨厌 java 对象观念就是个双面刃
    因为对象造成的不相容让人一点都不觉得直观
    灵活性大打折扣 说是有多动态我是不相信
    beidounanxizi
        38
    beidounanxizi  
       2020-04-10 23:11:09 +08:00
    spring boot 有啥么 不就是内嵌 tomcat 自动化配置
    呵呵哒 有什么好的昂
    go toml 解析 多好 真是不晓得 spring boot 有啥好的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3164 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 11:13 PVG 19:13 LAX 04:13 JFK 07:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86