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

CodeWa - 读懂每一行代码!

  •  
  •   iammutex · Jan 6, 2014 · 25673 views
    This topic created in 4591 days ago, the information mentioned may be changed or developed.
    CodeWa( http://codewa.com )是我2013年的个人任务之一,很幸运能够在2013年年底之前完成,目前自己试跑了一段时间,也算是最简可用版本出炉。

    CodeWa的口号是:“读懂每一行代码!”,这个口号其实来自一个比较无奈的现实。这个现实就是,我们身为程序员,用代码混饭吃,但是很多人每天都只在机械地coding,能够主动去读优秀代码的人其实非常之少。就我身边的朋友来说,每天和各种开源软件打着交道,但是对WebServer的运作、HTTP协议的实现、数据库缓存的内部实现等等完全没有概念,而了解这些最方便有效系统的方法,莫过于读源码。

    为什么大家不去读源码?而答案也很简单,水平有限,门槛过高,难于坚持。实际上归结到一个字上,就是“难”。那如果我们能够做一些事,让读源码的难度降低下来,是不是会有更多人愿意去读优秀的源码,提高自己的水平呢?我想这个答案是肯定的。

    于是有了CodeWa,在CodeWa,每个人都可以对每一行代码添加自己的批注,每一个人也可以看到其他人添加的批注,当你看不懂一段代码时,其他人的批注没准就能够帮你理解。经过时间的沉淀,可能对每一行代码,我们都能积累很多不同角度的优秀批注,帮助新加入的朋友更容易的进行学习。

    CodeWa现在还很简陋,但是让他运作起来的核心功能已经有了,现在,就等你加入了。

    http://codewa.com
    Supplement 1  ·  Jan 15, 2014
    更新一下近期工作:
    firefox无法滚动的问题解决
    firefox行号对内容错位问题解决
    添加修改昵称功能,避免暴露邮箱地址的隐私
    添加helloworld沙盘演练项目,方便大家试用CodeWa
    及一系列内部改造

    同时完成了个人的Nginx源码阅读计划的一小部分,对Nginx内存池管理部分源码进行了较完整的批注。见:http://v2ex.com/t/97180
    158 replies    2015-04-30 18:09:39 +08:00
    1  2  
    pirex
        101
    pirex  
       Jan 7, 2014
    希望能够增加自己上传代码。
    为何不考虑开源
    iEverX
        102
    iEverX  
       Jan 7, 2014
    好顶赞
    可以定期增加呼声最大的项目
    venglide
        103
    venglide  
       Jan 7, 2014
    做得不错,如果和sourcegraph结合起来就非常方便了
    a591826944
        104
    a591826944  
       Jan 7, 2014
    喜欢。。。期待补补课,加入一下
    MarsWang
        105
    MarsWang  
       Jan 7, 2014
    挺好的。
    lovesky
        106
    lovesky  
       Jan 7, 2014
    想法不错,但是我用起来觉得好别扭,提个建议,最好可以支持用户定制界面和树状文件切换。
    ql9075
        107
    ql9075  
       Jan 7, 2014
    楼主,有木有可以让用户自己增加源码项目的功能。。
    xiaozi
        108
    xiaozi  
       Jan 7, 2014
    为何只能对一行编写注释
    iammutex
        109
    iammutex  
    OP
       Jan 7, 2014
    @ql9075
    @pirex
    后续可能会考虑自己上传代码的,目前限制只能系统上传也是为了一点点尝试
    iammutex
        110
    iammutex  
    OP
       Jan 7, 2014
    @lovesky 多谢建议,我们考虑一下这个需求的普适程度
    iammutex
        111
    iammutex  
    OP
       Jan 7, 2014
    @xiaozi 请见我在27楼的回复
    acking
        112
    acking  
       Jan 7, 2014
    这样的话到时候会出现很多无用的注释么
    iammutex
        113
    iammutex  
    OP
       Jan 7, 2014
    @acking
    会,所以后续会加点赞或者顶踩功能,让最优秀的批注放到最前面。无用的,垃圾的都会被折叠。现在还没有做的原因,是因为目前内容还很不够,不存在这个问题。
    最终的图景可能是,对每一个问题点,可能都有几条优秀的批注,从不同的角度对知识做讲解,让大家可以从多种角度来理解。
    mikale
        114
    mikale  
       Jan 7, 2014
    没交叉引用,读代码根本不适合
    coetzee
        115
    coetzee  
       Jan 7, 2014
    这个想法很好,给一个小建议:暗色主题是不是更有诱惑力?
    lenville
        116
    lenville  
       Jan 7, 2014
    Cool !
    iammutex
        117
    iammutex  
    OP
       Jan 7, 2014
    @mikale 有交叉引用的,双击或者选中函数名或者其它定义名,左侧会出现定义的链接,点击即可。具体可以看首页的图片说明。
    huangz
        118
    huangz  
       Jan 7, 2014
    祝贺 CodeWa 正式上线!!
    hhkbp2
        119
    hhkbp2  
       Jan 7, 2014
    读代码的话,个人还是习惯一个好点的IDE,或者编辑器,可以查定义,查所有引用,查使用次数,查继承结构等
    CodeWa这个想法很好,对于看不懂的部分代码,可以学习一下别人的批注,起补充作用
    hulk
        120
    hulk  
       Jan 7, 2014
    点赞
    iammutex
        121
    iammutex  
    OP
       Jan 7, 2014
    @hhkbp2
    是的,CodeWa从来就不是想做一个阅读体验最好的代码阅读器,只是想帮助读不懂的人去理解代码。
    现实中有太多好用的IDE了,但是现状却是,很多人还是没有能力使用它们去读源码。
    alexapollo
        122
    alexapollo  
       Jan 7, 2014   ❤️ 1
    不错!非常喜欢这个作品,是否开源,是否可以加入开发?
    hhrmatata
        123
    hhrmatata  
       Jan 7, 2014 via Android
    @iammutex
    @hhkbp2
    所以我说开放一个api,大家给编辑器写插件,这样使用编辑器阅读时也能查看注释,甚至添加注释
    iammutex
        124
    iammutex  
    OP
       Jan 7, 2014 via iPhone
    @alexapollo 在产品形态确定之前,暂时还不考虑开源。
    其实CodeWa的开发并不难,所以,相对于加入开发,参与贡献优秀的代码批注是不是也同样有意义呢,期待各位的代码贡献,让CodeWa更精彩。
    iammutex
        125
    iammutex  
    OP
       Jan 7, 2014 via iPhone
    @huangz 感谢huangz兄的内测,后续Redis部分的源码还要多靠你了
    alexapollo
        126
    alexapollo  
       Jan 7, 2014
    @iammutex 更喜欢做个好作品啊。。。可惜了,如果有开源想法,务必告诉一声
    lightening
        127
    lightening  
       Jan 7, 2014
    本地的 hacking night 上,大家一起讨论一些经典代码。上次研究了个 pwd (GNU, FreeBSD, Solaris 各个版本), 就差不多研究了一晚上……
    如果大家一起读 WebServer 的源代码,估计要一年了。
    hoterran
        128
    hoterran  
       Jan 8, 2014
    cool, 哈哈
    hoterran
        129
    hoterran  
       Jan 8, 2014
    看起来还有很多工作可以做。
    比如显示函数的调用,变量的申明,java 代码, 能显 基类,接口等等。
    Liutos
        130
    Liutos  
       Jan 8, 2014
    看标题以为是静态分析工具,原来是类似于阅读代码记笔记的功能=v=

    这东西很好,老实说我觉得这个思路也很棒,自己阅读源代码太辛苦,如果可以和其他人分享阅读心得多半会有更好的作用。以前我也想要类似的功能,后来选择在GitHub上开个repo,然后用issues功能来记笔记,可惜的是没坚持下来。

    期待成品。
    christianwong
        131
    christianwong  
       Jan 8, 2014
    这个非常不错, 大赞!
    iammutex
        132
    iammutex  
    OP
       Jan 8, 2014
    @hoterran 感谢阮兄,后面的路还很长
    doublleft
        133
    doublleft  
       Jan 9, 2014
    哇 , 好赞!
    williamx
        134
    williamx  
       Jan 9, 2014
    想法超赞!
    y1
        135
    y1  
       Jan 9, 2014
    大赞,建议支持 github 导入,可以 github checkout 不同的 head 然后大家一起分析不同的代码。当然最好还要有显示自己的批注的功能。
    huangz
        136
    huangz  
       Jan 9, 2014
    @iammutex 注释新版 Redis 代码的工作我在 Git 上已经做了一大部分了,将来完成的时候也许可以想个办法导入到 CodeWa 上面?
    Golevka
        137
    Golevka  
       Jan 9, 2014
    @Liutos 大家都无处不在呀
    iammutex
        138
    iammutex  
    OP
       Jan 9, 2014 via iPhone
    @huangz 就交给我吧:-)
    huangz
        139
    huangz  
       Jan 9, 2014
    @iammutex 好的,期待!
    Liutos
        140
    Liutos  
       Jan 11, 2014
    @Golevka 哈哈,握爪握爪
    porcorossomiao
        141
    porcorossomiao  
       Jan 13, 2014
    不错,关注
    kernel1983
        142
    kernel1983  
       Jan 13, 2014
    为什么没有 linux 0.01 版本的代码?

    这个创意真不赖
    v3exer
        143
    v3exer  
       Jan 13, 2014
    非常棒的想法,希望可以开源,想在自己的小团队内搭建这样一个环境,这样,大家可以共享对code的理解
    iammutex
        144
    iammutex  
    OP
       Jan 13, 2014
    @kernel1983
    谢谢建议!
    目前代码只放了一个演练用的helloworld,一个版本的nginx和一个版本的redis源码。后续会逐步放更多的源码,甚至考虑开放用户上传源码的功能。
    这个会根据大家的使用情况和反馈做调整。
    iammutex
        145
    iammutex  
    OP
       Jan 13, 2014
    @v3exer
    独乐乐不如众乐乐,欢迎来CodeWa和大家一起讨论学习提高。
    如果是团队内部做codereview,我觉得用reviewboard就挺好。
    tolbkni
        146
    tolbkni  
       Jan 13, 2014
    @iammutex 我这里代码和行号没有完美对齐
    iammutex
        147
    iammutex  
    OP
       Jan 13, 2014
    @tolbkni 麻烦提供一下操作系统及浏览器类型版本吧。目前chrome应该是支持最完善的。
    androidBrant
        148
    androidBrant  
       Jan 14, 2014
    源码少了点,期待更多源码,移动开发,js node
    franky_xhl
        149
    franky_xhl  
       Jan 16, 2014
    @lightening 酷!下次回国来H4推广下这种方法
    rrfeng
        150
    rrfeng  
       Jan 16, 2014
    赞。
    simonxia
        151
    simonxia  
       Jan 16, 2014
    点赞,很好的交流方式
    allengaller
        152
    allengaller  
       Jan 17, 2014
    上不去
    RangerWolf
        153
    RangerWolf  
       Jan 17, 2014
    个人觉得很不错的
    我觉得lz 可以考虑做成企业版,对于一个软件公司来说,可能会有用~
    dlutcat
        154
    dlutcat  
       Jan 22, 2014
    这是个good idea!
    Tankpt
        155
    Tankpt  
       Feb 17, 2014
    楼主强烈建议你把underscore.js的代码放上去=-=
    leafonsword
        156
    leafonsword  
       Jun 15, 2014
    能上传自定义代码就好了
    inevermore
        157
    inevermore  
       Apr 30, 2015
    期待
    1. 代码高亮
    2. 就算不支持自己上传代码,起码提供个建议页面,添加github知名项目
    inevermore
        158
    inevermore  
       Apr 30, 2015
    还有个建议是 开启个编辑模式,显示所有的注解,这样思路更加顺畅。 另外,可以鼠标指向某一行时自己显示注解。
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2586 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 98ms · UTC 15:31 · PVG 23:31 · LAX 08:31 · JFK 11:31
    ♥ Do have faith in what you're doing.