在纸上打印代码是否常见?[关闭]


36

我喜欢将代码行保持在80个字符以内,因为:

  • 我不必进行任何水平滚动;
  • 我知道如果超出此限制,该行可能太复杂了;和
  • 它可以很好地打印在纸上。

关于后者,我只遇到了几个实际打印出代码以供查看的人(我就是其中之一)。那么打印代码有多普遍?


1
我认为问题是为什么您要在纸上打印出代码?
Anon。

14
我不能说出打印代码有多普遍,但是除非打印机是长期以来遗留下来的遗物,否则每行可以打印80个以上的字符。80个字符用于提高可读性,从历史上看,因为许多终端只有80列宽,而不是因为打印机。

12
@Mark实际上,在将编码写在宽度为80个字符的打孔卡上时,会有80个字符来自。前6个用于控制代码和行号。这就是为什么FORTRAN代码必须从第7列开始的原因
。– ChrisF

3
@Aaron-这对程序员来说可能不错”
ChrisF

5
@Aaron-程序员”旨在解决围绕我们专业的更主观(但仍具有建设性)的问题。
ChrisF

Answers:


50

我仍然偶尔会打印出代码-但前提是这是一个特别棘手的问题。

它通常表明代码太复杂并且需要重构,因此,首先要进行涂写可以帮助发现并解决问题,然后帮助确定应该在哪里拆分代码。

SOLIDDRY原理的理想世界中,您应该能够在单个屏幕上看到整个方法。但是,我们无法在理想的世界中工作...


4
+1表示“ [需要查看打印的代码]通常表示代码太复杂,需要重构...”
条例草案

它也可以很好地理解比赛条件。打印堆栈轨迹并进行比较,做笔记等...
rperetti 2011年

4
@rperetti:打印诸如堆栈跟踪之类的内容与打印代码有很大不同。但是,不要将它们并排比较-查找一个窗口(玻璃类型,而不是Microsoft类型。)将两个打印输出放在玻璃上彼此重叠,差异会突出。(显然,只有在白天。)
罗兰Pechtel

5
只是将它们与差异工具进行比较会更容易吗?
珍妮·平达

14

你打赌 但是请记住,横向打印允许使用132个字符。

替代文字

在Uni,我经常在绿色条状纸上打印代码,这真是令人惊讶,当您在纸上查看代码时,您会感觉到代码的深度和复杂程度。至少从今天开始,我们(至少到今天)仍然在阅读页面以及每页可以显示多少内容上留下了心理印象。它给计算机代码带来了很好的复杂性隐喻。

替代文字


13

有时,您可能需要仔细查看一些代码(通常对您来说是新的),而在这些代码上您基本上需要同时看到很多内容。这样一来,您可以一次查看整个内容,而打印输出将非常宝贵。

结合使用荧光笔和红色和绿色的笔,它确实有助于获得概览。您放在纸上的笔记随后会以某种形式添加到代码中。

注意,使用现代彩色打印机,您也可以在纸上获得语法着色。这确实是一个很大的帮助,强烈建议您这样做。

(我还打印了阅读规范-即在页边空白处放置笔记。)


8
+1当有人把我弄得一团糟以进行重构时,我通常会打印出来,然后在一个阳光明媚的地方度过一段美好的时光。
Sharpie

通常,如果整个模块都不能放在一个显示屏上,则可能需要大量的返工。自从20年前50线VGA模式可用以来,这一点尤其如此。我之前已经说过这一点,我会再说一遍:在这个疯狂的球拍中使用将近40年,我已经确切地看到一(1)个模块的长度需要超过60行(一页纸) 。(我看过很多比这更长的模块,而且它们“都还有很多不足之处。”(礼貌用语。)
John R. Strohm

@John,为什么需要超过60行?

@ user1249:这是Matuszek-Reynolds-McGehearty-Cohen“ STARTRK”(《星际迷航》)游戏中的光子鱼雷程序。它是用FORTRAN IV编写的。它必须解析该命令,模拟一到三个光子鱼雷的飞行(如果发生失火,可能会中止),并产生扰动,设置一个堆栈,以在鱼雷被发射或被发射时对新星进行八向连通邻近一颗正在变星的恒星,并杀死邻近所述恒星的所有克林贡人。FORTRAN IV没有进行递归,并且没有任何方法可以使它变得更糟。
John R. Strohm 2015年

12

有时我打印它以在火车上阅读并做笔记。卡住时,我喜欢将其散布在安静的会议室的桌子上。不确定是否真的有帮助,但是这是一个不错的改变。

另一个:发现一些旧代码,这些代码是多嵌套的If / Then语句,无法在屏幕上显示。他们应该解雇写这封信的前程序员,但是那样我就失业了;)


4
+1可改变场景。有时,仅在不同的上下文中看到某些内容会使您以不同的方式思考它。
乔恩·霍普金斯

3
+1您可以在大型会议桌上并排放置比在计算机屏幕上更多的页面。而且您不会因Twitter或电子邮件而分心
Alex Jasmin

1
如果您因Twitter或电子邮件而分心-您做错了。电子邮件以及Twitter或其他各种Messenger是异步的。您无需尽快回复。
mhr 2013年

8

我只打印出代码以便对代码进行同行审查。在我看来,脱机进行审核要比在计算机上进行所有令人不安(尽管有时还很有帮助)的IDE作业效率更高。

如果您有一台(或两台或更多)相当宽的显示器,则可以轻松地打开两个以全屏模式垂直分割的源文件,而不必遵守任何过于严格的线宽规定。

在某些情况下,我不需要查看整个行的内容(即,这些行打印出调试消息之类的内容),因此,如果该行在右侧被斩断,则没有关系。

但是要回答您的问题:在我看来,在纸上打印出代码不再常见。


8

好吧,我现在很少在纸上打印代码,但是过去一直都在做。

这些天的通常原因是坐在一个安静的地方,向初中生解释代码,或者长方法真的很麻烦,并且需要一些笔和纸的工作。屏幕并不总是足够的,特别是当您需要注释并在各处突出显示时。

我几乎总是将字符数限制在80个字符之内,因为我倾向于在紧急情况下通过SSH快速修正错误,并且不喜欢使用大型终端。同样,水平滚动是魔鬼。


5
+1“水平滚动是魔鬼”。上周我只是告诉某人同样的事情。
morganpdx

8

当我十几岁的时候上高中时(现在21岁),我家里没有互联网连接。因此,我经常打印出代码示例和各种API文档,以带回家。

旁注:令人惊讶的是,只要您已经拥有所需的信息,就可以在没有Internet连接的情况下完成更多的工作。


6

我从未打印过源代码。我从来没有这样做。我在计算机屏幕之外看到的唯一源代码是书本。

我将打印机用于其他用途。

替代文字


1
现在我感觉很老了:D
高峰

作为一个出生于此软件的人,看起来很有趣。
Naltroc

5

当两个监视器都装满时,我会打印出代码,并且需要不断引用某些内容。书桌上的一张纸是穷人的额外显示器。


然后将其放在3号监视器上!
罗伦·佩希特尔

4

那么打印代码有多普遍?

多年前,在DOS编程时代,80个字符正好填满了打印页面。那时我们有了矩阵打印机,因此限制可能在硬件方面。这也是控制台屏幕上的限制。

如今,人们几乎根本不打印代码,唯一的例外是很少的代码片段被打印为求职面试的测试示例。

如今,人们大多使用大型显示器,Full HD等显示器。我通常会拉伸到150-200个字符,而不会考虑任何打印副作用。

在团队讨论的时候,通常有人会拿起笔记本电脑并将其连接到投影仪。同样,没有人打印代码。

我上次打印代码大约是8年前的大学文凭了,我敢肯定没有人读过-我的意思是代码:-)。从此不再需要。


自从我在网页上打印代码以来,这已经成为了千载难逢的事情。不过,我不同意您的行长,即使您能获得足够的收益,也很难遵循。我很少去过去的约100个字符,我喜欢它保持约80
罗兰Pechtel

@Loren Pechtel:我喜欢方法和变量的长描述性名称。我只有80个字符宽,我会努力保持它的紧凑和正确格式。当然,这只是我的情况。

您是在crt控制台上进行DOS编程的吗?我们有打孔卡。80个字符的限制是打孔卡的结果。能够一次学习3或4页以上的代码非常方便。我想这就是为什么我仍然更喜欢打印输出的原因。在相关功能之间导航更容易。
2011年

我也喜欢长名-这就是为什么我有时最终会写100个字符的原因。
2011年

4

在1975年至1982年之间,印刷代码已过时,除非有特殊原因:

  • 在通勤期间读取它的代码
  • 纳入新项目规范的旧代码将替换它
  • 处理公然的错误;用一叠纸砸同事比监视器更安全

1
重击被低估了。
基思·莱恩,

3

我们的知识产权律师需要“硬拷贝”进行版权申请。

我不知道他们是否真的将其打印在纸上。我向他们发送了PDF,可以打印或将其包含在版权文件中。


3

不再。在IDE之前的日子里,我一直都这样做,那时候是连续进给的点矩阵是常态。您可以将这些打印输出散布出来,并轻松翻阅它们。现代单张纸激光/喷墨打印机倒退了一大步。将它们装订在一起也不会流动,并且不装订会导致散乱的纸张混合在一起。具有自动突出显示和方法导航器的现代IDE还可以消除通过检查打印输出而捕获的所有错误类别。


2

有时我会打印代码,因为我是在较小的(15英寸)单显示器上。有时我需要组合两个程序,并且很难在它们之间来回切换。尽管在必要时我不经常这样做。 。


双显示器!;)
Pemdas 2011年

我希望@Pemdas,哈哈。
2011年

我使用的是15"在家里,由于缺乏桌面空间。
Orbling

2

我偶尔会在纸上打印我的代码,并且只有在我想进行一些认真的脱机调试或熟悉其他人的代码时才这样做-因此出于礼貌,可能值得这样做。

另外,与代码相比,我可能更倾向于在纸上打印出数据库模式。

我认为水平滚动问题是一个更大的麻烦,并且是保持小于120个字符左右的原因。


实际上,对于水平滚动问题,80字符仍然是一个很好的标记。开发人员通常有两个源窗格,即使以我的1680分辨率,当我并排放置两个窗格时,在只能滚动之前,我只能得到107个字符。另外,我更喜欢代码不能完全达到正确的边缘。
Craige

1
@Craige kinda取决于您的字体大小和DPI,以及屏幕两边(如果您在IDE中)有多少垃圾。由于这个原因,在通过SSH进行编码时,我已经开始使用XTerm而不是标准的Gnome终端-并不是我不能只更改字体。
彼得·特纳

@Petur Turner-是的,但是我的Eclipse设置为在需要编码时可以将浪费的空间最小化。我的编辑者左右两边几乎没有浪费的空间。字体大小也是很标准的。要点-80字符是一个很好的目标长度,可以在各种情况下使源可读。
Craige

2

我只打印出科学文章随附的代码。因为此代码经常提供算法的实现(我想说是一个复杂的算法),并且您需要几个小时来处理它。
我怀疑我是否会打印出包含SQL语句或某些GUI编程的代码。



2

几乎从不

我曾经很难回忆起曾经打印过代码或看到代码已打印过的时间。老实说,我不记得一次(除非使用伪代码)。

我并不是说没有合法的理由来打印代码。


2

我发现如果可以打印出较大的模块并快速查看各个部分,则更容易找出它们。我可能会对多台显示器执行类似的操作,但是如果要查看的代码中有2-3个以上的地方,将其全部散布在一个地方比保持滚动和跟踪书签要快得多。我还喜欢用更改标记打印输出,而不是在编辑器中进行更改,因为我可以并排看到旧代码和新代码。当然,我可以在编辑器中注释掉旧代码,但是如果要替换的行数多了,则最终会在监视器上滚动旧代码,因此效果再好不过了。

也就是说,我几乎再也不会打印代码了。在折页纸上很棒,整个清单都是连续的,并且您在页边空白处有足够的空间来放置便笺,但是将所有内容打印在单个信纸大小的页面上几乎就像将其保留在屏幕上一样糟糕。尤其是当您的编辑人员坚持将页眉和页脚放在1英寸的空白处时。幸运的是,现代IDE提供了许多工具,可减少打印内容的需要。


1

我不会为自己打印任何东西,只有在无法摆脱时才为他人打印。我也讨厌收到打印输出。他们把我的桌子弄得乱七八糟,然后我要对他们负责(保存?归档?切碎?将其用作废料?)

请注意,我在一个从事大型机编码已有数十年,并在他旁边堆满一英尺代码输出的人附近工作。

我猜想做什么对你有用。只是不要把您的打印输出留在我的办公桌前,谢谢。


1

上述答案略有不同。

我是一名学生,我发现自己可以打印各种课程作业的代码,而不是为我必须编写代码的每个单元打印代码。

在我任职的第一年,大多数单位除了需要进行电子上传或将副本刻录到CD之外,还需要纸质副本(是的,是5 Mb zip文件的CD ...)[讲师的选择]

我目前正在第二年,到目前为止,我们只有一份电子上传文件,以及一份Hardcopy + CD上交文件。

考虑到我们拥有允许以电子方式提交课程作业的Moodle,这就是为什么我们不总是上传代码的原因超出了我-我们必须付费才能在大学打印机上打印出来,而且任何一台PC上都没有一个CD刻录机我所知道的。当然,讲师不喜欢Moodle-但这完全是另一个问题。

顺便说一句,我是英国的大学生,而不是一个陌生的小家伙。当我上次查看时,根据《泰晤士报》 /《卫报》,我排在Uni的前十名。


这让我想起了我在uni所做的一个项目,该项目需要书面报告。它必须在10页以内,并且代码必须作为附录附加,因为讲师喜欢在阅读报告时查看代码。幸运的是,附录并未计入总页数。因此,讲师收到了90页的PDF文件。不知道他是否真的打印过该文件。^^
gablin 2011年

1

新工具为我提供了更好的支持,并使我可以快速浏览,并且它们提供了许多类型的摘要和视图。因此,我的打印频率不如以前。但是依序读取打印输出仍然更加容易。我个人打印的主要原因是心理上的:它阻止了我继续搜索,而当打印机打印时,我开始思考!同样,不应低估站立和步行到打印机的有益作用:)


0

我打印代码,以便可以进行并排比较(我的显示器不是宽屏的)。在家里,我有一个宽屏,因此我可以舒适地并排查看两个文档。


0

早在美国法律不允许出口强密码的时代,总部位于美国的开源开发人员曾经在美国境外打印代码并将其通过蜗牛邮寄,然后由志愿者进行扫描。但是我不确定这是否能回答您的问题;)



0

在我的上一份工作中,我将打印出代码以进行代码审查。围坐进行代码审查时能够突出显示/标记一些代码是很好的,因此您可以为审查期间提出的任何问题提供很好的参考。

另外,当我不得不重构(最后是重新编写)一段特别粗糙和扭曲的代码时,我实际上打印出了源代码,将打印输出贴在墙上,然后使用字符串来说明如何逻辑被编织在一起。


0

这些天,从来没有。如果需要参考一些特别困难的代码,我将获得多台显示器的支持。现代的硬盘驱动器不会眨眼间存储着几千行的代码。打印代码恕我直言是浪费的,通常是无用的,但这就是我。

就是说,当我刚开始学习开发/编程时,我没想到打印20页代码就没什么了,所以我想可能有一段时间,但我发现这些日子并没有太多用处。


0

我一直在打印我的代码,但这只是因为我是一名学生,需要这样做才能将其交给老师。

但是,因为我可以访问多个监视器(就像任何优秀的开发人员一样),所以在很多情况下我不需要打印出源代码以供参考。我曾经打印出我用来填充数据库的脚本之一,以便一眼就能看到该架构,但是我似乎并没有使用太多。


0

我过去经常打印代码,但是现在由于我的办公桌上有多台显示器,现在要做的更少了-我经常会在我的右显示器上保留一部分清单,用作我的参考(有些情况下,侧面),而我当前的工作就摆在我面前。

如果我确实打印了ode,那么几乎总是我想学习的人或其他地方(图书馆)的代码,并且需要来回翻页。

由于倾向于使用长行,因此我几乎总是以横向模式打印代码。


0

在过去的十年左右的时间里,我只记得打印出代码,因此我可以在上面使用荧光笔在计划如何折射代码之前标记具有共同点的部分。

但是,我确实有时会错过能够在宽阔的连续纸上打印的能力,因为将代码放在地板上可能会提供很好的概览,主要是与彩色荧光笔和便签纸一起使用。A4打印的传呼机并不比合理的显示器提供的更好。

显示器变得越来越好,而打印机的代码变得更糟,而以前则是如此。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.