V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Abbeyok
V2EX  ›  分享创造

当掌握到一定程度的 Python 后,读源码是否更容易提高技能?

  •  
  •   Abbeyok · 2019-08-15 18:39:21 +08:00 · 2970 次点击
    这是一个创建于 1919 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看了一通flask_caching的源码,学习到很多东西,远比不断的搜索效率更高,也终于理解了如何自定义 make_cache_key

    分享一番: https://www.abbeyok.com/archives/396

    12 条回复    2019-08-16 22:35:41 +08:00
    bumz
        1
    bumz  
       2019-08-15 19:06:17 +08:00 via iPhone
    多读源码是必要的
    但是比读源码更能提高能力的是在事先不知道的前提之下,重新犯一遍别人犯过的错

    换句话说就是独立实践
    bumz
        2
    bumz  
       2019-08-15 19:07:57 +08:00 via iPhone
    比如不看前人代码,自己独立写一个 WSGI web 应用框架
    Abbeyok
        3
    Abbeyok  
    OP
       2019-08-15 19:08:53 +08:00 via Android
    @bumz emmm 那得首先了解原理
    Abbeyok
        4
    Abbeyok  
    OP
       2019-08-15 19:12:38 +08:00 via Android
    @bumz 问个问题,像 flask-caching 这种比较简单的源码可以读懂,但是像 flask 的源码,组织结构比较复杂,该如何读起?
    cigarzh
        5
    cigarzh  
       2019-08-15 20:17:07 +08:00 via iPhone
    几种不同的境界:

    读懂源码非常吃力

    读懂源码非常轻松

    读完能指出源码哪里写的漂亮,哪里写的垃圾,并能给出几种更好的实现

    往上还有更恐怖的层次,我就不谈了
    ragnaroks
        6
    ragnaroks  
       2019-08-15 21:12:22 +08:00   ❤️ 1
    如果源码的水平在你之上,那肯定更显而易见的提升.
    也如 1 楼所说,遇到问题并解决问题才是最有效的.

    我个人也认为理想的学习情况就是独立完成一个应用,然后遇到问题,然后解决问题.
    我个人最开始学 C 是看书看视频的,从第二个语言 C#开始就是读下文档直接开撸.

    最怕的就是遇到一个问题,谷歌一下只有一个结果,点进去发现问题和你描述完全一致,然后提问时间 N 年前,0 回复.
    ragnaroks
        7
    ragnaroks  
       2019-08-15 21:13:23 +08:00
    最近在做 WFP 驱动开发,有些问题连微软自己都搞不清楚,真的要死,头都大了
    visitant
        8
    visitant  
       2019-08-16 01:03:44 +08:00
    如果能做到遇到问题,解决问题,再看源代码会比较好吧
    xiaket
        9
    xiaket  
       2019-08-16 06:40:18 +08:00
    @Abbeyok HTTP 入口开始读, 看路由是怎么转发的, HTTP 请求是怎么交给业务逻辑处理的, HTTP 响应是如何被构造出来的. 这一串了解完之后就没大问题了. 如果还有兴趣, 再去看各个框架特异性的东西, 比如 Djngo 去看看 ORM 等等
    Abbeyok
        10
    Abbeyok  
    OP
       2019-08-16 07:43:55 +08:00 via Android
    @xiaket 多谢
    nguoidiqua
        11
    nguoidiqua  
       2019-08-16 08:48:11 +08:00
    其实读书读文档也好读源码也好,最有效办法就是带着问题去读。比如你在某个地方有疑问,你去看源码找原因。或者你对某个功能实现很感兴趣,你想要借鉴一下。

    这样去读,基本上读到就能做到,水平也就提高了。
    troywinter
        12
    troywinter  
       2019-08-16 22:35:41 +08:00
    不自己写的话,过几天你就又忘了,还是要多用多写。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   771 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:03 · PVG 06:03 · LAX 14:03 · JFK 17:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.