寻找 TODOs:向开源项目贡献的一些建议

openkk 13年前
     <div id="OSChina_News_26465" class="NewsContent TextContent NewsType2">     <p><img style="display:block;margin-left:auto;margin-right:auto;" alt="寻找 TODOs:向开源项目贡献的一些建议" src="https://simg.open-open.com/show/1be85215e1e8a7daf37e100c6e5abcf8.jpg" width="400" height="363" /></p>     <p>常常有人跟我讲他们想参与贡献开源项目,但是不懂如何入手。我这里有一些建议:<br /> <span style="font-family:courier new,courier;color:#0000ff;">git clone repository_url_of_some_open_source_project target_directory</span><br /> <span style="font-family:courier new,courier;color:#0000ff;">grep -RIn TODO target_directory/*</span><br /> <br /> 找 到你感兴趣的项目,用 SVN/Git/Mercurial 等工具把代码拉下来,然后用grep命令找出源代码中的 TODO 标记的地方。“-RIn”参数告诉grep做递归查询(-R),跳过二进制文件(-I)并且把行号返回在结果中(-n),就这么简单!在返回的结果中,挑 选你感兴趣又力所能及的就可以动手了。<br /> <br /> TODO 和 Bug 不一样。Bug一般是由用户提交的,外部可见的一些问题。而TODO一般是开发者自己标记的,代码中可以改进的地方,由于时间关系没有来得及做。 TODOs 常常被遗忘,因为没有一个正式的系统来跟踪这些TODO的后续情况。下面的表格列出了 GitHub 上最受关注的15个项目的 TODO 情况:<br /> </p>     <table border="1">      <thead>       <tr>        <th>Project name</th>        <th>Number of TODOs</th>       </tr>      </thead>      <tbody>       <tr>        <td>bootstrap</td>        <td>7</td>       </tr>       <tr>        <td>nodejs</td>        <td>904 (many of these are v8 TODOs)</td>       </tr>       <tr>        <td>rails</td>        <td>77</td>       </tr>       <tr>        <td>jquery</td>        <td>7</td>       </tr>       <tr>        <td>html5-boilerplate</td>        <td>2</td>       </tr>       <tr>        <td>homebrew</td>        <td>22</td>       </tr>       <tr>        <td>spoon-knife</td>        <td><br /> </td>       </tr>       <tr>        <td>impress.js</td>        <td><br /> </td>       </tr>       <tr>        <td>backbone</td>        <td>4</td>       </tr>       <tr>        <td>diaspora</td>        <td>16</td>       </tr>       <tr>        <td>three20</td>        <td>25</td>       </tr>       <tr>        <td>devise</td>        <td>2</td>       </tr>       <tr>        <td>jquery-mobile</td>        <td>60</td>       </tr>       <tr>        <td>three.js</td>        <td>43</td>       </tr>       <tr>        <td>express</td>        <td>3</td>       </tr>      </tbody>     </table>     <p><br /> <br /> 当然,有些项目可能没有 TODOs,但是通常来讲去解决开源项目中的 TODO 问题是一个不错的想法。</p>     <p> </p>     <p><a href="/misc/goto?guid=4958331890843488223" target="_blank">原文链接</a>,OSChina 原创编译</p>    </div>