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

CodeWa - 读懂每一行代码!

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

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

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

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