1

由于对排版有点着迷,我很好奇:在线和离线呈现代码的最佳方式是什么。我特别感兴趣的是:

  • 什么样的字体和大小最适合在线和离线?对代码使用比例字体是否更好(例如,像 Stroustrup 在“C++ 编程语言”中所做的那样)?衬线、无衬线还是混合的?
  • 应该如何注释代码 - 使用典型的// comment标记,或者可能只是使用不同的字体(并且没有注释标签)?
  • 是否值得画箭头(或类似的东西)来显示不同的代码块如何相互关联?
  • 在几列中并排显示代码是否有效?
  • 有没有人需要诸如行号、更改行等之类的东西?
4

5 回答 5

1

这并不能完全回答大多数问题,但您可能有兴趣阅读Literate Programming。它的要点是你在同一个文档中编写代码和文档,并且它被格式化为 web 或 print 或其他任何东西。当我在这里说文档时,通常不是单行的文档片段,而是描述程序中正在发生的事情的整个段落或页面。

于 2009-07-03T11:12:20.913 回答
1

好吧,让我投票反对比例字体,就像 BS 在 TC++PL 中使用的那样。它真的让我发疯!类似地,Soctt Meyers 在 Effective STL 中添加了一些令人讨厌的突出显示的恐怖。

对我来说,关于编程的经典书籍将永远是 K&R,因为我认为它从来没有为了表达的清晰而进行过改进。所以我建议盲目地复制它。

于 2009-07-03T11:15:05.883 回答
1

在文本中编写虚拟代码时,我喜欢使用扩展字符集。用于代码和数学标记的LaTeX字体运行良好。

一个很好的例子是使用左箭头进行赋值或绑定,而不是=. 我见过的书中最好的代码示例是 Dragon Book 或 TAOCP。我认为由于能够呈现这些字符以及与常见语法的关系而混合了数学词源是很好的。

我认为 LaTeX 中通过 Computer Modern 提供的通常的固定信使类型字体和高级数学标记的混合物非常适合具有数学倾向的读者......而且它看起来非常漂亮。

于 2009-07-03T11:15:30.517 回答
1

我脑子里只有几件事:

  • 将行数限制为最少
  • 仅在需要时使用行号
  • 你当然可以使用不同的字体,但是不同的背景呢?像浅灰色?将您的代码装箱,我认为将两个盒子放在一起没有问题。
  • 取决于成本,但是像大多数 IDE 那样为某些元素着色呢?
  • 编写工作的、真实世界的代码!因此,我建议使用正常的 // 注释样式,而不仅仅是不同的字体。
于 2009-07-03T11:17:15.690 回答
1
  • 我会使用像 Consolas 这样的等宽字体。
  • 由于注释通常显示为不同的颜色(至少在我见过的 IDE 中),我将它们保持原样。
  • “显示块如何相互关联”是什么意思?指示函数、if 语句等在哪里开始和结束?如果是这样,它可能会有所帮助;我真的不知道。
  • 如果您正在比较几块代码以指示一些在一个代码中不起作用但在另一个代码中起作用的细微差别,它可能会起作用,但除此之外,我认为它没有多大用处。
  • 如果您引用“转到上一个代码示例中的 XYZ 行”之类的引用,行号可能会有所帮助。
于 2009-07-03T11:18:36.093 回答