Чи часто друкувати код на папері? [зачинено]


36

Мені подобається тримати коди під 80 символами, оскільки:

  • Мені не потрібно робити горизонтальну прокрутку;
  • Я знаю, що лінія, ймовірно, занадто складна, якщо вона перевищує цю межу; і
  • це добре друкується на папері.

Щодо останнього, я зустрічав лише небагатьох, хто насправді роздруковує код для перегляду (я один із них). Отже, наскільки часто це друк коду?


1
Я думаю, питання полягає в тому, чому ви друкуєте код на папері?
Анон.

14
Я не можу говорити про те, наскільки часто це друк коду, але якщо принтер не є реліквією з давно забутого часу , він може виводити більше 80 символів на рядок. 80 символів використовуються для сприяння читабельності та історично тому, що багато терміналів були шириною лише 80 стовпців, а не через принтери.

12
@Mark Насправді 80 символів походить від того, коли код був написаний на перфокартах, шириною яких було 80 символів. А перші 6 були для контрольних кодів та номерів рядків. Тому код FORTRAN повинен починатись із стовпця 7.
ChrisF

3
@Aaron - це, мабуть, добре для програмістів
ChrisF

5
@Aaron - програмісти призначені для більш суб'єктивних (але все-таки конструктивних) питань, які оточують нашу професію.
ChrisF

Відповіді:


50

Я все ще дуже періодично роздруковую код - але тільки якщо це особлива вузлова проблема.

Зазвичай це вказує на те, що код є занадто складним і потребує рефакторингу, тому, в першу чергу, наявність чого-небудь накреслити допомагає знайти та виправити проблему, а потім допомагає розробити, де код слід розділити.

В ідеальному світі принципів ТОЛОГО і СУХОГО ви повинні мати можливість бачити весь метод на одному екрані. Однак ми не працюємо в ідеальному світі ...


4
+1 для "[потрібно переглянути друкований код], як правило, означає, що код занадто складний і потребує рефакторингу ..."
Білл

Він також добре працював, щоб зрозуміти умови перегонів. Роздрукуйте сліди стека та порівняйте їх поруч, робіть примітки тощо ...
rperetti

4
@rperetti: Друк таких речей, як сліди стека, дуже відрізняється, ніж код друку. Однак не порівнюйте їх поруч - знайдіть вікно (тип скла, а не тип Microsoft.) Покладіть два роздруківки один на одного на скло, і розбіжності виділяються. (Очевидно, лише при денному світлі.)
Лорен Печтел

5
Не було б простіше просто порівняти їх із різним інструментом?
Жанна Піндар

14

Будьте впевнені. Але пам’ятайте, що друк ландшафтом дозволив 132 символи.

alt текст

В Uni я регулярно друкував свій код на папері з зеленим штрихом, дивно, наскільки добре ви розумієте, наскільки глибокий і перекручений ваш код, коли ви дивитесь на нього на папері. Ми (принаймні станом на сьогодні) все ще подумки відбиваємося від наших днів у початковій школі на читанні сторінок і наскільки кожна сторінка може представляти. Це ставить хорошу метафору складності в комп'ютерний код.

alt текст


13

інколи вам може знадобитися уважно ознайомитися з яким-небудь кодом (як правило, новим для вас), де вам, по суті, потрібно побачити багато чого одночасно. Тоді роздруківка може бути безцінною для вас, щоб ви могли за один раз переглянути всю справу.

У поєднанні з маркером та червоною та зеленою ручкою це справді допомагає отримати огляд. Нотатки, які ви відклали на папері, потім пізніше додаються до коду в якійсь формі.

Зауважте, що на сучасних кольорових принтерах ви також можете отримати синтаксичне забарвлення і на папері. Це дійсно чудова допомога і дуже рекомендується.

(Я також роздруковую технічні характеристики для читання - тобто для розміщення приміток у полі.)


8
+1 Коли хтось передає мені безлад на рефактор, я зазвичай роздруковую його та йду провести якісний час у приємному сонячному місці.
Шарпі

Як правило, якщо весь модуль не поміститься на одному екрані дисплея, він, ймовірно, потребує великої переробки. Це особливо актуально з тих пір, як з'явився 50-лінійний VGA режим, не зовсім 20 років тому. Я вже говорив про це раніше, і я ще раз це скажу: близько 40 років у цій шаленій ракетці я побачив рівно ОДИН (1) модуль, який повинен бути довше приблизно 60 рядків (одна друкована сторінка) . (Я бачив багато модулів, довших за це, і всі вони "залишили багато чого бажаного". (Ввічлива фраза.)
Джон Р. Стром

@John, чому це потрібно було довше 60 рядків?

@ user1249: Це був режим фотонової торпеди з гри Matuszek-Reynolds-McGehearty-Cohen "STARTRK" ("Зоряний шлях"). Це було написано у FORTRAN IV. Він повинен був розібрати команду, імітувати політ однієї чи трьох фотонних торпед (можливо, перервавшись, якщо сталася помилка), із збуреннями, І створив стек, щоб здійснити 8-ти напрямний зв’язок зірок, що йдуть на нову, коли торпедують або будують що примикає до зірки, яка йде на нову, і вбиває будь-яких клінгонів, що прилягають до зазначених зірок. FORTRAN IV не робив рекурсії, і просто не було ніякого способу визначити це, що не погіршило його.
Джон Р. Стром

12

Іноді я друкую це, щоб читати у поїзді і робити примітки. Коли я застрягаю, мені подобається розкласти його за столом у тихому конференц-залі. Не впевнений, чи справді це допомагає, але це приємна зміна темпу.

Ще один: знайшли старий код, який був багатовкладеним оператором If / then, який не помістився б на екрані. Вони повинні були звільнити колишнього програміста, який це написав, але тоді я був би без роботи;)


4
+1 для зміни сцени. Іноді просто бачити щось в іншому контексті змушує думати про це інакше.
Джон Хопкінс

3
+1 Ви можете розмістити більше сторінок поруч на великому конференц-столі, ніж на екрані комп'ютера. І ви не відволікаєтесь на Twitter або електронну пошту
Алекс Жасмін

1
Якщо ви відволікаєтесь на Twitter або електронну пошту - ви робите це неправильно. Електронна пошта, а також твіттер або різні інші місячники є асинхронними. Не потрібно відповідати якнайшвидше.
1313

8

Я роздруковую код лише для того, щоб зробити експертну перевірку коду. Зробити огляд в автономному режимі, на мою думку, є більш ефективним, ніж робити це на комп’ютері з усіма тривожними (але іноді корисними) матеріалами IDE.

Якщо у вас є один (або два або більше) досить широких моніторів, ви можете легко відкривати два вихідних файли, вертикально розділених у повноекранному режимі, і не потрібно дотримуватися занадто обмежувальних правил ширини ліній.

І в деяких випадках мені не потрібно бачити весь вміст рядка (тобто рядки, що роздруковують повідомлення про налагодження чи подібні), і тому не має значення, чи рядок порушено праворуч.

Але щоб відповісти на ваше запитання: на мою думку, друкувати код на папері вже не так часто.


8

Ну я друкую код на папері нечасто, але раніше це робив весь час.

Звичайні причини цього дня - сісти десь тихо і пояснити код молодшому, або якщо довгий метод справді помилився і потребує певної роботи з ручкою та папером. Екранів не завжди вистачає, особливо, коли ви хочете помітити ноти та виділити всюди.

Я майже завжди дотримуюся граничної кількості 80 символів, оскільки я схильний швидко вносити зміни до помилок через SSH в надзвичайних ситуаціях і не люблю мати широкі термінали. Також горизонтальна прокрутка - це чорт.


5
+1 "горизонтальна прокрутка - чорт". Я щойно казав комусь ту саму точну річ минулого тижня.
morganpdx

8

Коли я в підлітковому віці відвідував середню школу (зараз 21 рік), у мене вдома не було підключення до Інтернету. Тому я часто друкував зразки коду та різну документацію API, щоб взяти з собою.

Побічна примітка: дивовижно, скільки більше роботи можна зробити без підключення до Інтернету, за умови, що у вас є вже потрібна інформація.


6

Я ніколи не друкував свій вихідний код. Мені ніколи цього не доводилося робити. Єдиний вихідний код, який я бачив поза екраном комп'ютера, був у книгах.

Я використовував свої принтери для чогось іншого.

alt текст


1
Тепер я відчуваю себе старим: D
wildpeaks

Як людині, яка народилася після цього програмного забезпечення, було цікаво шукати.
Налтрок

5

Я роздруковую код, коли обоє моніторів заповнені, і мені потрібно постійно щось посилати. Аркуш паперу на столі - це поганий додатковий монітор.


Тоді поставте його на монітор №3!
Лорен Печтел

4

Отже, наскільки часто це друк коду?

Це було звичайно багато років тому в часи програмування DOS, 80 символів точно заповнювали друковану сторінку. Тоді у нас були матричні принтери, тому обмеження, ймовірно, було на апаратній стороні. Це також було обмеженням на екрані консолі.

В даний час люди навряд чи друкують код, єдиним винятком є ​​невеликі фрагменти коду, надруковані як тестові приклади для співбесіди.

Сьогодні люди в основному працюють із великими моніторами, Full HD та іншими. Зазвичай я розтягуюся на 150-200 символів, не замислюючись про будь-які побічні ефекти друку.

Коли настав час обговорити в команді, зазвичай хтось хапає ноутбук і підключає його до проектора. Знову ж таки, ніхто не друкує код.

Востаннє я надрукував код близько 8 років тому за свій університетський диплом, який я впевнений, що його ніхто не читав - код я маю на увазі :-). Ніколи не довелося з тих пір.


Минуло еони, коли я надрукував інший код, ніж на веб-сторінці. Я не погоджуюся з вашою довжиною лінії - навіть якщо ви можете отримати стільки, що важко простежити. Я рідко
минаю

@Loren Pechtel: Річ - мені подобаються довгі описові назви методів та змінних. Маючи всього 80 символів, я б намагався зберегти його компактним та належним чином відформатованим. Звичайно, це лише мій випадок.

Ви програмували DOS на консолі crt? У нас були перфокарти. Межа в 80 символів була результатом перфокарт. Можливість вивчити код на 3 або 4 сторінках одночасно дуже зручно. Я думаю, саме тому я все ще віддаю перевагу роздруківкам. Простіше орієнтуватися серед пов'язаних функцій.
Хупернікетес

Мені також подобаються довгі імена - тому я іноді закінчую переходом до 100 символів.
Лорен Печтел

4

Друкований код застарів десь між 1975 і 1982 роками, за винятком особливих причин:

  • код, щоб прочитати його під час маршруту
  • старий код, який входить у специфікацію нового проекту, який повинен його замінити
  • боротися з кричущими помилками; безпечніше заграти колегу зі стосом паперу, ніж монітор

1
Пульсування недооцінене.
Кіт Лейн

3

Наші юристи з інтелектуальної власності вимагають "копію" для подання авторських прав.

Я не знаю, чи насправді це друкують на папері. Я надсилаю їм PDF, який вони можуть надрукувати або включити до подання авторських прав.


3

Більше не. Раніше я робив це весь час у дні, що передували IDE, тоді, коли дот-матриця з безперервним подачею була нормою. Ви можете розкласти ці роздруківки і досить легко прогортати їх. Сучасні лазерні / струменеві принтери з листовим принтером - це величезний крок назад. Зшивання їх разом також не протікає, і не зшивання призводить до розсипчастих листів, які змішуються. Сучасні IDE з автоматичним підсвічуванням та навігаторами методів також усувають цілі класи помилок, які потрапили під час вивчення роздруківки.


2

Я іноді друкую свій код, оскільки я перебуваю на невеликому (15-дюймовому) моніторі. Іноді мені потрібно поєднувати дві програми, і дуже важко перемикатися між ними вперед-назад. Хоча я це не роблю часто, хоча тільки в разі необхідності .


Подвійні монітори! ;)
Пемдас

@Pemdas Я бажаю, lol
sange

Я використовую 15 "вдома через брак місця для письмового столу.
Замовлення

2

Я роздруковую свій код на папері дуже періодично і лише тоді, коли хочу зробити серйозну налагодження в режимі офлайн або ознайомитись з чужим кодом - тому це, можливо, варто робити просто з ввічливості.

Крім того, я, мабуть, був би більш придатний для друку схеми бази даних на папері, ніж коду.

Я думаю, що проблема горизонтальної прокрутки - це більший роздратування і причина тримати до <120 символів або близько того.


Насправді, 80 знаків все ще є хорошим маркером для проблеми горизонтальної прокрутки. У розробників часто є дві області джерела, і навіть за моєї роздільної здатності 1680 я можу отримати лише 107 знаків, перш ніж мені доведеться прокручувати, коли у мене дві панелі поряд. Крім того, я вважаю за краще, якщо код не іде повністю до правильної межі.
Craige

1
@Craige наче залежить від розміру шрифту та DPI, але також і від кількості сміття з обох боків екрана (якщо ви перебуваєте в IDE). Я почав використовувати XTerm замість стандартного терміналу Gnome при кодуванні через SSH з цієї причини - не те, що я не міг просто змінити шрифт.
Пітер Тернер

@Petur Turner - це правда, але мій Eclipse налаштований таким чином, що мінімізує витрачений простір, коли мені потрібно дійти до кодування. Зліва і справа моїх редакторів майже немає місця. Розмір шрифту також досить стандартний. Точка - 80 знаків - хороша цільова довжина, щоб зробити джерело читабельним в самих різних умовах.
Крейдж

2

Я лише роздруковую код, який поєднується з науковою статтею. Оскільки цей код часто забезпечує реалізацію алгоритму (складного, який я б сказав), і вам потрібно пару годин для його обробки.
Я сумніваюся, що я роздрукував би код, який містить оператори SQL або деякі програми GUI.


2

Я інколи друкую код, щоб спробувати зрозуміти тернисті багатосторінкові проблеми.


+1 Мені хочеться, щоб у нас все ще був крапковий матричний принтер з ніколи не закінчується ременем паперу.
Пітер Тернер

з чергуванням зелених та засмаглих ліній? Але так повільно !!!
Крістофер Махан

2

Майже ніколи

Мені здалося, що важко запам'ятати час, коли я друкував код, або бачив код надрукованим. І, чесно можу сказати, я не згадую жодного разу (забороняючи псевдокод).

Я не припускаю, що немає законних причин для друку коду.


2

Мені легше розібратися у великих модулях, якщо я можу їх роздрукувати та швидко переглянути різні розділи. Я, мабуть, міг би зробити щось подібне з декількома моніторами, але якщо у мене в коді є більше 2-3 місць для перегляду, то швидше, щоб все це було розкинуто в одному місці, ніж продовжувати прокручування та відстеження закладок. Мені також подобається відзначати роздруківки змінами, а не робити їх у редакторі, бо я бачу старий код і новий код поруч. Звичайно, я міг би прокоментувати старий код у редакторі, але якщо ви замінюєте більше декількох рядків, то ви закінчите прокручувати старий код з монітора, тож вам не краще.

Однак, я майже ніколи не друкую код. Це було чудово на фан-папері, де весь список був безперервним, і у вас було багато місця для приміток на полях, але друкувати все на окремих сторінках розміром букви майже так само погано, як просто зберігати його на екрані. Особливо, коли ваш редактор наполягає на тому, щоб розміщувати колонтитули та колонтитули в 1-дюймовому полі. На щастя, сучасні IDE пропонують безліч інструментів, що зменшують потребу друкувати речі.


1

Я нічого не друкую для себе, а друкую лише для інших, коли не можу вийти з нього. Я також ненавиджу отримання роздруківків. Вони захаращують мій стіл, і тоді я відповідаю за них (збережіть? Файл? Подрібніть його? Використовуйте його як брухт?)

Зауважте, я працюю поруч з тим, хто вже кілька десятиліть робив кодування мейнфреймів, а поруч має високу кучу роздруківків коду.

Я думаю, що робиш те, що працює для тебе. Просто не залишайте свої роздруківки на моєму столі, дякую.


1

Трохи інша відповідь на вищезазначені.

Я студент, і мені здається, що я роздруковує код для різних підручних курсів, але не для кожної одиниці, де мені потрібно написати код.

На моєму першому курсі більшість підрозділів вимагали друковану копію на додаток до електронного завантаження або копії, записаної на компакт-диск (так, компакт-диск для 5-мегабітного zip-файлу ...) [вибір лектора]

Зараз я перебуваю на другому курсі, і поки що у нас було лише одне електронне завантаження та одне обладнання Hardcopy + CD.

Зважаючи на те, що у нас є Moodle, який дозволяє надсилати курсову роботу в електронному вигляді, тому ми не завжди завантажуємо код за межі мене - ми повинні платити, щоб надрукувати речі на принтерах університету, і на жодному з ПК немає жодної записуючої компакт-диски що я знаю. Звичайно, викладачі не люблять Moodle - але це зовсім інше питання.

До речі, я студент університету Великобританії, а не маленький, невідомий. Моя була в топ-10 Uni, за версією The Times / Guardian, коли я востаннє дивився.


Це нагадує мені проект, який я робив в університеті, де вимагався письмовий звіт. Він мав бути в межах 10 сторінок, а код мав бути доданий як додаток, оскільки лектор любив дивитися на код під час читання доповіді. На щастя, додаток не враховував загальну кількість сторінок. Тож лектору вручили PDF-файл на 90 сторінок. Не знаю, чи він насправді надрукував документ. ^^
габлін

1

Нові інструменти підтримують мене краще і дозволяють мені швидко переміщуватися, і вони надають багато типів резюме та переглядів. Тому я не друкую так часто, як раніше. Але послідовне читання роздруківки все ж простіше. Моя особиста головна причина друку - психологічна: це заважає мені продовжувати пошук, і поки принтер друкує, я починаю думати! Також не варто недооцінювати сприятливий ефект стояння та ходьби до принтера :)


0

Я друкую код, щоб я міг порівнювати їх (мої монітори на роботі не широкоекранні). Вдома у мене широкий екран, тому я можу комфортно переглядати два документи поруч.


0

Ще в ті часи, коли закони США не дозволяли експортувати сильну криптографію, розробники з відкритим кодом, що базуються в США, використовували для друку коду та надсилали їм пошту за межі США, де їх сканували волонтери. Але я не впевнений, чи відповідає це на ваше запитання;)


0

Я друкую волосистий код при нагоді, щоб спробувати це зрозуміти. Я також надрукував розбирання при налагодженні чогось "дивного".


0

На своєму останньому робочому місці я роздрукував би код для огляду коду. Приємно бути в змозі виділити / позначити трохи коду, коли сидите, роблячи огляд коду, щоб у вас є хороша довідка щодо будь-яких проблем, які виникли під час огляду.

Крім того, коли мені довелося рефакторировать (в кінцевому підсумку - переписати) особливо скручений і перекручений біт коду, я фактично роздрукував вихідний код, наклеїв роздруківки на стіну, а потім використав біти рядка, щоб показати, як логіка сплетена разом.


0

У ці дні ніколи. У мене є підтримка декількох моніторів, якщо мені потрібно посилатися на якийсь особливо складний код. Сучасні жорсткі диски не збираються блимати на мене, зберігаючи код довжиною навіть кілька тисяч рядків. Друк коду IMHO марно і марно, але це лише я.

Це було сказано, коли я вперше вчився розробляти / програмувати, я нічого не думав надрукувати 20 сторінок коду, тому, гадаю, може бути час і місце для цього, але я просто знаходжу в ці дні для цього не так багато користі.


0

Я постійно роздруковую свій код, але тільки тому, що я студент, якому потрібно це зробити, щоб передати його інструктору.

Однак, оскільки у мене є доступ до декількох моніторів ( як і будь-який хороший розробник ), у мене не було багатьох ситуацій, коли мені потрібно роздрукувати вихідний код для довідки. Одного разу я роздрукував один із сценаріїв, за допомогою яких я заповнював базу даних, щоб я міг побачити схему з першого погляду, але, здається, не дуже її використовую.


0

Я часто друкував код досить часто, але роби так менше, коли у мене на столі кілька моніторів - я часто зберігаю одну частину списку, яку я використовую як посилання на моєму правому моніторі (що дещо вимкнено сторона), і моя поточна робота переді мною.

Якщо я роздруковую оду, я майже завжди хочу вивчити код у когось або десь із іншого (бібліотека), і мені потрібно гортати сторінки вперед і назад.

Я майже завжди роздруковую код у альбомному режимі через тенденцію до використання довгих рядків.


0

Протягом останніх 10 років я згадую лише надрукування коду, тому я можу використовувати на ньому ручки для виділення, щоб позначити розділи, які мають щось спільне, перш ніж планувати рефрактор коду.

Однак я інколи не вистачаю можливості друкувати на широкому безперервному папері, оскільки викладення коду на підлозі може дати хороший огляд, в основному разом із кольоровими ручками з підсвічуванням та повідомленнями. Друковані пейджери формату A4 не є кращим, ніж те, що дає розумний монітор.

Монітори стали набагато кращими та більшими, тоді як принтери гірші за код, ніж раніше.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.