Чи обмеження 80 символів все ще актуальне під час широкоекранних моніторів? [зачинено]


56

на широкоекранному моніторі можна легко бачити більше 80 символів одночасно, без смуг прокрутки. навіть Лінус Торвальдс бачить обмеження 80 символів застарілим .

Отже, чи все ще обмеження 80 символів є актуальним у часи широкоекранних моніторів?


1
Існує дуже вагомий привід тримати рядки короткими, наприклад, Eclipse. Це дозволяє друкувати свої програми на звичайному принтері з читабельним шрифтом без загортання рядків.

У якому контексті? Якщо ви запитуєте у конкретному контексті програмування, я би голосував за повторне відкриття.
Ніколь


Оббивка слів Visual Studio порушена, тому більшість користувачів її вимкнено. Натомість вони вручають чергові перерви вручну. Це виглядає жахливо для всіх, хто має різну ширину екрана. visualstudio.uservoice.com/forums/121579-visual-studio/…
Полковник Паніка

Відповіді:


28

Існує кілька причин, як і раніше дотримуватися обмеження до 80 символів (або обмеження до 74 символів ще краще; воно дозволяє коду залишатися менше 80 стовпців, навіть якщо додані маркери розрізнень та цитування електронної пошти, якщо ви перевіряєте код на списки розсилки).

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

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

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

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

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


3
Домовились. Однак довгі ідентифікатори іноді заохочуються (кодуючи вказівки, такі як "використовувати значущі імена" або "уникайте криптованих скорочень"), або необхідні (наприклад, std::vector<...>::const_iterator), хоча в останньому випадку речі зазвичай можуть бути полегшені typedefs.
musiphil

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

1
@musiphil Так, саме тому я включив останній абзац. Я зіткнувся з рядками в C ++, де я просто не міг помістити ім'я класу, ім'я методу та тип повернення на один рядок 80 стовпців при оголошенні методу. Замість того, щоб робити якісь справді дивні розбиття рядків, краще просто порушити правило 80 стовпців (або 100 стовпців) для цього одного рядка.
Брайан Кемпбелл

46

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

80 символів можуть бути застарілими, але є певна заслуга в тому, щоб зберігати речі в межах розуму.


1
+1, я часто відкриваю декілька вихідних файлів поруч у Vim чи інших редакторах. Маючи досить невеликий шрифт та досить вузький правий запас, я дуже швидко можу отримати хороший огляд проекту та навіть відкрити багато документації.
greyfade

4
80 символів все ще актуальні, оскільки багато людей за замовчуванням мають свої термінали та редактори настільки широкі; таким чином, якщо ви обмежитеся 80, ви будете доброзичливі до цих людей, на відміну від того, щоб вимагати від них переставляти всі вікна або мати справу з обгортанням ліній або горизонтальною прокруткою.
Брайан Кемпбелл

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

1
Можливо, 80 є прихильним до VMS. Пробачте, міркуючи про мою нову епоху, але ми повинні продовжити ліміт, де це можливо, і тримати її там, де це потрібно ..
Росс,

29

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

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

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

Я особисто ненавиджу такі речі:

ret = my_function(parameter1, \
                  parameter2, \
                  parameter3, parameter4);

Замість просто:

ret = my_function(parameter1, parameter2, parameter3, parameter4);

5
Безумовно, якщо рядок 3 у першому прикладі не надто довгий, рядок 2 може бути об'єднаний у рядок 1, завдяки чому він виглядає набагато легше для читання. (Яка мова вимагає уникнути нових рядків у круглих дужках?)

1
Ах, це лише якийсь псевдокод, який я написав. Але я думаю, що Ц цього вимагає.
Сезар Канаса

4
Лише в багаторядкових макроозначеннях, які є (або повинні бути) рідкісними. Це суттєво впливає на вибір максимальної довжини рядка (підтримка таких накипів не є цікавою), тому мені цікаво, чому ви це показуєте. Здається, солом’яна людина ?

2
Якщо я зіткнувся з проблемою розриву рядка у виклику функції, я ставлю кожен параметр у свою лінію, з відступом на один рівень.
starblue

20

Для кодування?

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


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

6

Так, існують причини обмеження довжини рядка коду:

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

Сказавши це, 80 - це занадто мало. Але все-таки деяке обмеження - це, мабуть, хороша ідея як принцип дизайну.

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


5

Це довільно, але є необов’язкове обмеження на те, що легко читати. Я вважаю, що надширокі стовпці тексту дуже важко сканувати та читати, незалежно від того, чи вони є кодовими чи прозовими. Крім того, як багато інших відповідей вказали, це не так, як цей код буде єдиним на екрані. Чудово мати два або більше вікон коду одночасно, і вони вмістяться на одному широкоекранному моніторі.


3

Мабуть, не має значення вибрати граничну кількість символів до 80; що змінилося б, якщо, наприклад, межа становить 85?

Це правда, що монітори, які використовуються сьогодні, мають більш високу роздільну здатність, але в текстовому редакторі / IDE не весь простір забирається з перегляду тексту; у редакторі, який я використовую, показано зліва збоку список файлів, що входять до проекту.

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


5
80 символів було жорстким обмеженням кількості стовпців на перфокарті!
ChrisF

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

2

Це дійсно залежить від середовища розвитку.

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

У моїй компанії на 25 осіб, однак, я кажу, що це накрутити. Всі ми використовуємо подвійні сучасні монітори з максимальною роздільною здатністю - 120-140 або близько того - це неофіційна настанова.


2

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

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

Я не купую аргумент, що більшість людей встановлюють свої термінали шириною до 80 символів. Ні, що принтерам доводиться обертати лінії довше 80 символів. Це не важка межа, як це було раніше (далекого) минулого. Ви можете легко встановити термінал і ширину принтера на 100 символів.


1

Ні, це вже не актуально:

  • Більшість шрифтів, які використовуються в додатках та в Інтернеті, так чи інакше не мають фіксованої ширини. Іншими словами, 80 символів! = 80 символів.
  • Як ви вже говорили, ширина екрана змінилася - 80 символів не є розумною межею.

80 символів справді були орієнтиром для шрифтів фіксованої ширини в консольному середовищі.

Звичайно, якщо ви все ще використовуєте шрифт фіксованої ширини в консольному середовищі ... тоді впевнено, що 80 символів чутливі :)


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

1
Хм ... у такому випадку ... все одно ні, але з інших причин :)
Дамовіса

1
80 символів було жорстким обмеженням кількості стовпців на перфокарті!
ChrisF

0

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

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