• 请不要在回答技术问题时复制粘贴 AI 生成的内容
iDontEatCookie
V2EX  ›  程序员

刷过一千道算法题,但是看不懂 Vue 源码。

  •  
  •   iDontEatCookie · Apr 27, 2020 · 11910 views
    This topic created in 2382 days ago, the information mentioned may be changed or developed.

    干了快三年的前端,一直都是自学,做些无聊的 to B 项目。

    喜欢刷算法题,水平不是特别高,但也刷了快千道题了。

    以前经常听别人说算法才是关键,算法好的人上手工程也快,设计模式我也学过,结果工作这么久连个源码都看不懂。应届生学弟都看完 React 源码了,我看了好几次 Vue 也看不懂,看了各种讲源码的文章也迷迷糊糊,感觉自己好废物。到底怎么样才能提高阅读源码的能力。

    61 replies  •  2020-04-28 12:47:05 +08:00
    heiheidewo
    heiheidewo
    Apr 27, 2020
    1
    算法题是怎么刷的?有参考别人的解题报告吗?
    murmur
    murmur
    Apr 27, 2020
    2
    b 站有个 vue 代码讲解的视频(版权问题,你看的随时可能被删,如果好建议购买正版,作者已经开始讲 vue3 了),我是跟着讲解看的,这东西自己找入口太累,跟着别人的视频思路清晰直切重点
    dxc190749
    dxc190749
    Apr 27, 2020 via iPhone
    3
    划水划太多了吧,学会独立思考呀
    Curtion
    Curtion
    Apr 27, 2020❤️3
    4
    和算法没什么大关系吧应该,这种库比较完善,既然比较完善就有很多细节操作,这些细枝末节虽然必不可少,但是在看源码时却是累赘,所以要忽略这些东西,建议先看轻量级实现,例如: https://github.com/DMQ/mvvm,然后再去看 Vue 源码,而且要有目标,否则就会在源码中东跳西跳中迷失自己,要看初始化过程就只看这个,要看依赖收集就只看这个,一旦跑题就点到为止。我最近也在看,加油!
    mmnsghgn
    mmnsghgn
    Apr 27, 2020 via iPhone
    5
    佩服看完 React 源码的应届生学弟。
    chenjunyue520
    chenjunyue520
    Apr 27, 2020
    6
    刷算法题和 看源码有什么直接关系么。 你带着问题看源码,会比较有收获,如果是无目的的看,应该都是会很难看下去的吧。比如,卧槽,这个咋实现的。。然后直奔代码。
    iDontEatCookie
    iDontEatCookie
    OP
    Apr 27, 2020
    7
    @heiheidewo #1 一般想了一小时想不出,或者自己的解法速度比较慢会看别人的代码。
    iDontEatCookie
    iDontEatCookie
    OP
    Apr 27, 2020
    8
    @murmur #2 谢谢 我搜了一下有好多 感觉大部分质量都不太好的样子 能给个 Av 号吗
    ericls
    ericls
    Apr 27, 2020 via iPhone❤️2
    9
    面试过很多这种

    其实就是脱离了实践 学算法学成奥数的。

    忘记算法这回事先 不要因为会算法就把一切问题往算法上套。

    我觉得算法就像工程里的力学 它很重要 但是很片面 造一个房子你还要考虑审美 跟环境的结合 跟周围建筑的结合 用户的习惯 甚至还要考虑风水。
    fool079
    fool079
    Apr 27, 2020
    10
    看完 react 源码的应届学弟是什么神仙。。
    iDontEatCookie
    iDontEatCookie
    OP
    Apr 27, 2020
    11
    @dxc190749 #3 确实划了很久 独立思考只什么呢?

    @zhengjian #5 我也佩服 他进了一线大厂
    iDontEatCookie
    iDontEatCookie
    OP
    Apr 27, 2020
    12
    @Curtion #4 谢谢你 我研究一下。
    iDontEatCookie
    iDontEatCookie
    OP
    Apr 27, 2020
    13
    @chenjunyue520 #6 主要总有人说你算法那么厉害 看源码很容易 我不知道怎么解释 因为我真的努力去看了 确实不会。大神学弟也是这么和我说的,要有目的的去看。但我还是在源码中迷失了自己= =
    jmc891205
    jmc891205
    Apr 27, 2020
    14
    为了看懂 Vue 源码而去学算法?
    那你可能方向搞错了。。。
    geniusmyn
    geniusmyn
    Apr 27, 2020
    15
    @murmur 链接?
    wangxiaoaer
    wangxiaoaer
    Apr 27, 2020 via Android
    16
    正常,估计我的项目代码你也看不懂。
    nianyu
    nianyu
    Apr 27, 2020
    17
    因为你被骗了,现在的风气就是鼓吹算法。骗你刷算法刷多了你就什么都会了。
    VDimos
    VDimos
    Apr 27, 2020 via Android
    18
    看完 react 源码的应届生是什么神仙
    maichael
    maichael
    Apr 27, 2020❤️2
    19
    看源码本身不是有多难,难的是在找切入点上。
    crackhopper
    crackhopper
    Apr 27, 2020
    20
    工欲善其事必先利其器。你把调试的工具搞清楚明白,掌握一些基础原理:编译、设计模式。然后顺着 debug 工具的流程看,接着站在全局梳理,最后每个子模块梳理。就搞定了。
    murmur
    murmur
    Apr 27, 2020❤️1
    21
    av100634051
    crackhopper
    crackhopper
    Apr 27, 2020
    22
    本质上看不明白就是基础功不够。当然顺着 debug 工具的堆栈硬看也行,大概也能掌握个 50%左右的源码吧。
    nicebird
    nicebird
    Apr 27, 2020
    23
    多看多想,完事
    yeze322
    yeze322
    Apr 27, 2020❤️2
    24
    工程问题和算法问题是两回事,算法重细节,源码重设计
    revalue
    revalue
    Apr 27, 2020
    25
    大学生大把时间,找一个培训班视频看,各种源码解读。怎么也得看懂了吧
    ericls
    ericls
    Apr 27, 2020 via iPhone
    26
    @VDimos 可能是遇到 react 的 bug 想解决 一不小心看完了
    zhw2590582
    zhw2590582
    Apr 27, 2020
    27
    vue 源码我看过好几遍也没看下去,看懂了的部分过几天又忘了
    strugglexiang
    strugglexiang
    Apr 27, 2020 via Android
    28
    @murmur 在哪里
    wobuhuicode
    wobuhuicode
    Apr 27, 2020
    29
    算法是面试的关键。看懂 vue 库应该是业务的积累。用到用过的去看,带着想法去看才知道这东西是干嘛的。
    murmur
    murmur
    Apr 27, 2020
    30
    @strugglexiang
    @geniusmyn
    @iDontEatCookie

    https://www.bilibili.com/video/av100634051/
    地址栏里的 gitpage 打进去好像可以找到正版的购买地址,我记得是 400 快
    murmur
    murmur
    Apr 27, 2020
    31
    tmac33
    tmac33
    Apr 27, 2020
    32
    我感觉你应该是被庞大的项目绕晕的。个人判断你应该缺少的是实际业务经验,跟算法无关。综上,多研究研究设计模式吧。
    Huelse
    Huelse
    Apr 27, 2020
    33
    算法是具体设计,软件是规模工程
    wangyzj
    wangyzj
    Apr 27, 2020
    34
    刷算法题和看懂 vue 代码没啥关系
    Chenamy2017
    Chenamy2017
    Apr 27, 2020
    35
    如果不是学生,那么为了用而学,会比你漫无目的的刷算法题要好。
    hutng
    hutng
    Apr 27, 2020 via Android
    36
    哈哈哈
    我还没学会 vue 怎么用
    更不要说看源码了😂
    renmu
    renmu
    Apr 27, 2020 via Android
    37
    建议可以去看看《深入浅出 vue.js 》这本书讲得简单易懂了
    ikaros1997
    ikaros1997
    Apr 27, 2020❤️1
    38
    你知道数据劫持怎么实现的吗,不要说什么 defineProperty/proxy,要具体的,keep-alive 又是怎么实现的,生命周期又是怎么实现的,等等这些。你想知道了,带着这些问题去看,做笔记,看懂源码做了什么再谈设计,不然源码那么多,为了看源码而看源码没有什么意义的。。
    gouflv
    gouflv
    Apr 27, 2020 via iPhone
    39
    算法不是万能的
    iDontEatCookie
    iDontEatCookie
    OP
    Apr 27, 2020
    40
    @crackhopper #20 谢谢指教~


    @renmu #37 好的 买!


    @ikaros1997 #38 刚看了明白点数据劫持和响应式,就 Watcher 和 computed 那里。感觉函数跳来跳去的理不清记不住。谢谢大佬指教。
    betulac
    betulac
    Apr 27, 2020
    41
    面试算法占比多少就有多少用处啊

    想起兄弟去阿里面试,算法题直接说忘了还是给过了
    dremy
    dremy
    Apr 27, 2020 via iPhone
    42
    会算法但不会语言基础,会走很多弯路的

    相比算法技能,我觉得语言基础应当更先掌握

    推荐看《 JavaScript 高级程序设计》,看过之后就会恍然大悟了
    DelayNoMay
    DelayNoMay
    Apr 27, 2020
    43
    vue 每个关键词的含义,你不知道就是不知道,难道你还能通过算法推断出 vue 关键词的含义??
    beidounanxizi
    beidounanxizi
    Apr 27, 2020
    44
    vue 都学不会 ? 你的算法题 是 目光所至=刷过 🐶
    m0mo
    m0mo
    Apr 27, 2020
    45
    看主干啊,抓你想要看的东西,适当忽略一些代码块
    q8164305
    q8164305
    Apr 27, 2020 via Android
    46
    算法有用,但不是全部,代码设计,工程化也很重要
    hoyixi
    hoyixi
    Apr 27, 2020
    47
    高中刷过 N 套试卷,考不上大学的多了去了
    wutiantong
    wutiantong
    Apr 27, 2020
    48
    如果你想看懂一个框架的源代码,一个通用的最优方案是:自己尝试做一个类似的框架,不指望能做出来,但实践过后再去看就能懂。
    SpiderXiantang
    SpiderXiantang
    Apr 27, 2020
    49
    看完源码。。。。 你逗我吧
    jtwor
    jtwor
    Apr 27, 2020
    50
    1000 道。。。有点猛
    Wanex
    Wanex
    Apr 27, 2020
    51
    你说应届学弟看完 React 源码,我怎么感觉是吹的,说大致懂点我觉得还是很合理的。当然,不是说完全不可能,毕竟世界这么大,牛人还是很多的。
    Navee
    Navee
    Apr 27, 2020
    52
    框架的实现和设计模式关系更大一些,和算法关系不大
    Stevearzh
    Stevearzh
    Apr 27, 2020
    53
    为啥要看源码
    jrtzxh020
    jrtzxh020
    Apr 27, 2020 via iPhone
    54
    <<vue 深入浅出>>这本书就讲源码的,可以一看,挺不错的
    kaedea
    kaedea
    Apr 27, 2020 via Android
    55
    1000 道... 能不能分享你觉得最妙的 2 道?
    g0thic
    g0thic
    Apr 28, 2020
    56
    js 基础差了点吧
    GiantHard
    GiantHard
    Apr 28, 2020
    57
    我觉得你可以去看看 Vue Issue 区里面一些超过一年以上都没有修复的问题,然后再带着这些问题去看源码,最后在试着去解决这些问题,顺便你还可以提交个 PR 修复一下。
    vcode
    vcode
    Apr 28, 2020
    58
    蜜汁操作
    iDontEatCookie
    iDontEatCookie
    OP
    Apr 28, 2020
    59
    @kaedea #55 POJ 3648 有一说一 我觉得题面很妙
    @GiantHard #57 谢谢 思路可以 但我感觉自己水平不够。
    @jrtzxh020 #54 谢谢 上面也有人推荐了这本书 我买一本
    @dremy #42 真没必要这么嘲讽我 刚学 js 就看过了 你不知道的 JavaScript 看了三遍 犀牛书也读过了 我是菜 但也不至于没有基础就硬上吧
    aguesuka
    aguesuka
    Apr 28, 2020 via Android
    60
    术业有专攻,就算是算法题,leetcode 的算法刷得再多,去做《计算方法》的算法题一样懵逼
    zzzzzzggggggg
    zzzzzzggggggg
    Apr 28, 2020
    61
    算法题跟 vue 源码,这俩完全不是同一个东西啊;
    而且这个跟你 JavaScript 基础知识差也没关系,首先你需要用 vue 写过项目,踩过一些坑。此时你应该对 vue 的响应式原理有一些体会,对虚拟 dom 有一些听说,也对它的生命周期方法有个粗浅的了解。
    然后你开始看源码了,看源码前首先要知道你的目的是什么,比如你是为了搞清楚响应式原理还是为了搞清楚 diff,这样子才能有的放矢,抓住重点;而且你可能还需一些前置知识,比如看虚拟 dom,你需要知道它解决了什么问题,重绘回流你得懂。看响应式原理,观察者模式得懂,es6 的语法得懂。看生成模板那块,得需要懂点编译的知识
    所以总结一下:算法题跟读项目源码没关系;不是你弱;需要用的比较熟练;需要前置知识;需要抓住重点
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5181 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 123ms · UTC 02:53 · PVG 10:53 · LAX 18:53 · JFK 21:53
    ♥ Do have faith in what you're doing.