由于对排版有点着迷,我很好奇:在线和离线呈现代码的最佳方式是什么。我特别感兴趣的是:
- 什么样的字体和大小最适合在线和离线?对代码使用比例字体是否更好(例如,像 Stroustrup 在“C++ 编程语言”中所做的那样)?衬线、无衬线还是混合的?
- 应该如何注释代码 - 使用典型的
// comment
标记,或者可能只是使用不同的字体(并且没有注释标签)? - 是否值得画箭头(或类似的东西)来显示不同的代码块如何相互关联?
- 在几列中并排显示代码是否有效?
- 有没有人需要诸如行号、更改行等之类的东西?
由于对排版有点着迷,我很好奇:在线和离线呈现代码的最佳方式是什么。我特别感兴趣的是:
// comment
标记,或者可能只是使用不同的字体(并且没有注释标签)?这并不能完全回答大多数问题,但您可能有兴趣阅读Literate Programming。它的要点是你在同一个文档中编写代码和文档,并且它被格式化为 web 或 print 或其他任何东西。当我在这里说文档时,通常不是单行的文档片段,而是描述程序中正在发生的事情的整个段落或页面。
好吧,让我投票反对比例字体,就像 BS 在 TC++PL 中使用的那样。它真的让我发疯!类似地,Soctt Meyers 在 Effective STL 中添加了一些令人讨厌的突出显示的恐怖。
对我来说,关于编程的经典书籍将永远是 K&R,因为我认为它从来没有为了表达的清晰而进行过改进。所以我建议盲目地复制它。
在文本中编写虚拟代码时,我喜欢使用扩展字符集。用于代码和数学标记的LaTeX字体运行良好。
一个很好的例子是使用左箭头进行赋值或绑定,而不是=
. 我见过的书中最好的代码示例是 Dragon Book 或 TAOCP。我认为由于能够呈现这些字符以及与常见语法的关系而混合了数学词源是很好的。
我认为 LaTeX 中通过 Computer Modern 提供的通常的固定信使类型字体和高级数学标记的混合物非常适合具有数学倾向的读者......而且它看起来非常漂亮。
我脑子里只有几件事: