采用“程序员”笔记的有效方法是什么?

时间:2009-06-19 18:15:12

标签: language-agnostic knowledge-management

我经常多次遇到有人向我询问我工作过的错误或功能的问题。通常通过查看Bugzila以及我的CVS报告,我花了很长时间才回想起它。所以我试图找到一个很好的方法来记录我一直在做的事情,并寻找你的建议。事实上,我通常会记录关于我所做的事情的几乎ZERO注释,尽管我在获取规范或某些技术内容时会写笔记。

我听说有些人为他们正在处理的每个问题或错误创建一个新文档,并附加配置信息,日志输出,我的思考和事情。我认为这对于每周/每月报告是有好处的,并且有助于记住您已经处理过的事情或者您修复过的类似错误。

请建议你如何记笔记?

21 个答案:

答案 0 :(得分:7)

共识似乎是博客或实体笔记本是可行的方式。除此之外,你可以使用维基或像OneNote这样的应用程序。

请参阅此问题:https://stackoverflow.com/questions/78756/what-do-you-use-to-keep-notes-as-a-developer

答案 1 :(得分:6)

Desk + Crayola

答案 2 :(得分:6)

一个良好的源代码控制系统,具有良好的代码注释和良好的签入评论策略,可以创造奇迹。

答案 3 :(得分:4)

  • 有一个博客,即使没人阅读。写一篇文章/ howto / what-I-did,你知道你可能想要记住几个月或几年后的事情。谁知道,其他人也可能觉得它也很有用。
  • 使用Trac或Github为每个项目提供一个不错的wiki。除了提交消息之外,您还可以在Wiki中保留特定于项目的注释和方法。 OBV。这有助于文档和团队的其他成员
  • 对于短期笔记,请随身携带笔记本和铅笔。但如果你像我一样,不久就会失去或错放这些东西
  • 在每个项目中保留一个TODO和CHANGELOG文件。有时很难维护,但是我曾多次保存过我的##
  • 如果真的很重要的话,就像在纪念品中那样纹身在你的手臂上。

我的记忆非常糟糕,并且不希望在2周后记住任何事情(通常我会做,但当时你无法预测你是否会记住某件事)。所以这些是我的改编并且工作得很好。

答案 4 :(得分:3)

人们已经提出了许多如何实际记录笔记的方法,但我认为这种方法是最重要的。

在我的工作中,我们为许多不同的公司开发定制软件,并且在每个付款期结束时,我们会向他们发送一份时间表,他们必须签署这些时间表,以便我们为他们开账单。恰好这个时间表概述了开发人员所做的所有工作,通常结构就是这样。

时钟 - 上午8:00

分析 - 上午10:30
完成分析工作的描述。

编码 - 下午12:30
所有编码工作的描述。

我们的想法是向客户证明,当您对其进行计费时,您不会整天都在StackOverflow上。因此,您可以记录您执行的所有编码,调试等操作。

尽管我是第一个承认这个过程很痛苦的人,但我无法计算我回过头来查看过去时间表的次数,看看我是如何解决我的问题的。再次遇到,或者弄清楚我在一段时间内没有触及过的项目。这很棒。

答案 5 :(得分:2)

博客吧。或者为开发人员注释设置内部Wiki。

答案 6 :(得分:2)

你想要简单,所以你可以很快进入。我使用一个文本文件并将其添加到桌面上,并保留一个标准名称,如NOTES,NOTES2类型的README或TODO格式,每当您添加新条目时都会有日期。

只要它很简单,任何东西都会起作用。如果你开始添加服务器和维基以及所有这些东西,那么你就会过度复杂化你想要的东西。

答案 7 :(得分:2)

我是一个实用的极简主义者。

Notepad ++每天都在我的右侧显示器上打开。我按照我认为合适的方式添加它,但是当我提交更改时,总是将注释放入subversion中。事情变化很快。

我曾经常常使用tiddlywiki,但Notepad ++对我来说效果更好,并且被剥离到我需要的东西 - 一个我可以稍后搜索的地方。我不喜欢物理笔记本的东西是我在一个人中寻找东西时必须成为搜索引擎。

我就是这样做的。

答案 8 :(得分:1)

记笔记的另一种方法是使用思维导图。它需要一点点才能掌握它,但我发现这些在组织我对各种主题的思考方面具有极大的价值,包括编程任务。我甚至修补了一个工具,将我的思维导图直接转换为可粘贴到Jira评论中的嵌套列表:)使代码读取笔记和设计/估计笔记非常容易构建和更改。

一些适用于思维导图的工具:

答案 9 :(得分:1)

安装桌面搜索引擎。 索引文本文件备注,电子邮件和IM日志。

此外,我有时会在错误/功能请求票据中添加注释并附上技术说明 - 明确标明,以免混淆非技术观众。

答案 10 :(得分:1)

我发现TiddlyWiki非常方便。这是一个独立的维基,我用它来记录各种各样的事情 - 从我的个人待办事项到关于特定功能实现的注释。将其与Dropbox结合使用,它会显示在我的所有系统上。

答案 11 :(得分:0)

根据您的环境,您可以在// TODO的行中创建自定义标记: 此外,您应该将源代码管理系统设置为拒绝签名而不发表评论。

随着时间的推移记录某些内容的绝对最佳方式,让您知道自己所做的事情以及下一个知道如何维护它的人,就是对所有更改进行单元测试。切换到单元测试的源的带注释的视图,您有日期和时间。

我也喜欢一个音符,它可以毫不费力地拖放任何格式,您不必担心打开,保存,任何事情,只需让它保持运行并处理细节。

答案 12 :(得分:0)

我自己的系统是:

  • Index cards立即记下我需要记住或引用的内容。 (几乎所有这些都会在当天结束时被抛弃。)
  • OmniOutliner个人笔记
  • OmniFocus待办事项列表
  • 错误跟踪系统评论有关追踪和修复错误的信息
  • Wiki以获取与团队分享的信息
  • 可能对各地程序员普遍感兴趣的内容的博客

通常,事情从OmniOutliner开始,然后根据需要复制并粘贴到其他系统。

我的Macbook的Spotlight搜索很擅长查找内容,所以我不太担心组织。

答案 13 :(得分:0)

我从这个网站找到了TodoList:http://www.abstractspoon.com/ 它易于使用,无需安装,并具有很好的功能。

为了处理更多笔记,我建议WikiPad,它可以让您构建信息。

答案 14 :(得分:0)

  • 错误跟踪器,用于处理与特定问题调查有关的注释。这可以包括测试代码,日志输出,如何缩小范围的更新以及您已排除的内容。我试着假设我将被一辆公共汽车碾过,其他人明天将接管这个漏洞。他们将拥有错误跟踪器注释,我当前工作目录中的任何代码都可以在我的电脑上使用,并且可以假设它不能读取我的笔迹。他们希望最迟在上午10点到达我所在的地方。它应该包括对导致该错误的问题的完整描述,以及它如何被修复,用于历史记录。当有人问“那个错误修正是什么时,你会去做什么?”。如果有人说“我在其他地方看到过类似的问题,我应该检查什么?”
  • 使用错误跟踪器,请求跟踪器,设计文档或任何其他内容,新功能和更改也是如此。
  • 代码中的注释,用于解释实现原因的说明。
  • 文档中的注释,用于说明界面原因(“基本原理”)。

我不喜欢仅为我保留关于我的代码的个人注释,即使是在理论上公开的Wiki或博客上也是如此。除非(1)你有一个非常好的内部搜索设备,并且(2)每个人都在大量写博客,以至于其他人希望有一些值得寻找的东西,否则没有人会在他们需要的时候找到它们。如果注释与代码有关,那么它们应该在代码或其文档中,或者至少在bug跟踪器中(这解释了前面代码的错误,而注释解释了当前版本的正确性)

请注意,“我必须做什么才能安装和运行IDE”,当然,它们会放在wiki或博客中。公开的东西,或者你的同事可以看到和搜索的东西,但是因为你是最有可能想要它的人而特定于你。

如果您正在开发源代码,那么博客可能是更好的选择,因为世界上任何人都可能想知道它,并且可能会在整个网络上搜索信息。但我从未参与过一个重要的开源项目。

答案 15 :(得分:0)

我是Nick Cernis的忠实粉丝Todoodlist

答案 16 :(得分:0)

我使用cat >> ~/TODO,博客或写下笔记本(物理)。

答案 17 :(得分:0)

我一直在使用Moleskine笔记本很长一段时间,每当我转向其他东西时(我使用过OneNote,WikidPad,Tomboy等)我总是回到我的笔记本上

Moleskine有各种尺寸,更不用说至少3种类型的纸张:普通,格子,网格

<强> http://www.moleskines.com/moleskine-softcover-xlarge-squared.html

希望这有帮助

答案 18 :(得分:0)

虽然这不是技术性的,但我已成为Hipster PDA的忠实粉丝。

(简而言之:一堆3x5卡和一个活页夹。它实际上非常有用。)

答案 19 :(得分:0)

我喜欢 jira 它的设计非常好,但不是免费的

<强> http://www.atlassian.com/software/jira

答案 20 :(得分:0)

除了错误跟踪器或计算机化的笔记之外,我总是有一本日志,我将用它来记录每天的某些重要形式。通过这种方式,我可以轻松地回过头来查找特定日期并查看我在那里写下的内容。

Paper + Pen仍然是一个很棒的工具。