Создатель Linux высказался за увеличение длины строк кода

Создатель Linux высказался за увеличение длины строк кода

05.06.2020      16668

Линус Торвальдс заявил, что пора пересмотреть правила хорошего тона в плане написания кода. Золотым стандартом для кода ядра Linux считаются 80-символьные строки. Но Торвальдс предлагает увеличить значение до 100 символов.

Времена меняются

В старых терминалах, которые использовались для написания и отладки кода ядра Linux, часто были установлены ограничения 80х25: 80 символов в строке, 25 строк в окне. Современные терминалы вмещают гораздо больше символов, да и разрешение мониторов постоянно растет. 

Все это сподвигло Торвальдса внести изменения в скрипт проверки новых патчей ядра. Он перестал отклонять код со строками длиннее 80 символов.

Торвальдс подчеркнул: оптимальная длина строки сейчас – 100 символов. Но она может быть и больше, если в этом действительно есть необходимость. Разработчик также добавил, что широкие мониторы специально предназначены для просмотра большого количества файлов одновременно.

О пользе длинных строк

Торвальдс подчеркнул: если продолжать переносить строки, стремясь к соблюдению  «золотого» 80-символьного стандарта, будет очень тяжело работать с кодом и с командами Linux. И вообще: длинные строки кода – не всегда зло. Гораздо хуже частые разрывы таких строк – именно они ежедневно вызывают проблемы. К примеру, если в Linux вы используете команду grep для поиска внутри файлов, то результат ее работы может сбить вас с толку. Очень сложно будет разобраться в обрывках строк кода, которые появляются из-за многочисленных переносов. 

У самого создателя Linux терминалы настроены на показ 100 символов в строке и 50 строк в окне. Параметры основного терминала – 142х76. На мониторе помещается шесть терминалов в три колонки и остается место еще для одного терминала, который на 20% уже остальных. Это обеспечивает возможность комфортной работы с большими массивами кода. 

Торвальдс также рассказал, что обычно использует широкие вкладки при редактировании кода. Так проще делать отступы и понимать структуру кода, видеть цельные функции и блоки. В узких же вкладках сложно считать пробелы и переходить с уровня на уровень. 

Разработчик подчеркнул: люди с ограниченными ресурсами не должны делать всю систему неудобной. И это касается не только размеров окна терминала: так, не стоит жаловаться, что ядро компилируется 10 часов, если вы разрабатываете его на Raspberry PI с 4 ГБ оперативной памяти.

Имена имеют значение

В своем письме Торвальдс коснулся и других вопросов разработки, в частности, имен переменных. По его словам, если вы используете какую-нибудь переменную i в качестве анонимного счетчика внутри цикла, это нормально. Но не стоит ставить краткость во главу угла, выбирая имена для всех переменных.

Торвальдс считает, что называть переменные именами в пределах 10-15 символов совершенно нормально. Нужно, чтобы имя было понятным. Использовать бесконечные сокращения и заставлять коллег догадываться, что вы имели в виду – сомнительный путь.



Источник: https://infostart.ru/journal/news/tekhnologii/sozdatel-linux-vyskazalsya-za-uvelichenie-dliny-strok-koda_1247138/
Автор:
Обозреватель


Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Bassgood 1310 05.06.20 17:02 Сейчас в теме
Торвальдс считает, что называть переменные именами в пределах 10-15 символов совершенно нормально. Нужно, чтобы имя было понятным.

Интересно а как Торвальдс отнесся бы к вот такому имени объекта "DataCompositionResultSpreadsheetDocumentOutputProcessor"? ;)
Drivingblind; portwein; TreeDogNight; maksa2005; wowik; rusmil; +6 Ответить
2. PerlAmutor 129 05.06.20 18:31 Сейчас в теме
(1) Его продукт - его правила. У 1С свои стандарты, свои правила - https://its.1c.ru/db/v8std/content/456/hdoc

120 символов в строку - норма. Линусу совсем немного осталось до принятия неизбежного.

Кстати давно заметил, что разработчики Java тоже обожают длиннющие названия классов.
5. CheBurator 3077 05.06.20 23:27 Сейчас в теме
(2)
Кстати давно заметил, что разработчики Java тоже обожают длиннющие названия классов.

потому что они нихрена не поймут в своих простынях.
должно быть как в 1С - открыл экран, глянул мельком по одним наименованиям переменных функцйи-процедур уже понятно что и зачем...
а не исследовать тонны двухсимвольных переменных
Hatson; portwein; TreeDogNight; +3 Ответить
13. awk 737 07.06.20 08:34 Сейчас в теме
(5)Что-то мне кажется, что на яве вы не пишете. По вашему посту вы скорее пишете на клюшках или плюсах.
17. Darklight 28 08.06.20 13:21 Сейчас в теме
(2) Да 120 символов в строке - это хорошая норма. Особенно если использовать ультраширокоформатные мониторы - даже на боковую панель места останется. И даже 120 символов - не предел (если это необходимо, а не просто приступ глупости и самомнения) - строки такие возникают не часто (в основном из-за длинных типов) - и в этих случаях очень спасает продвинутая мышка с отдельной боковой прокруткой!
Главное, чтобы главная суть кода была слева, а не справа, а вот, типы - это как раз всторостепенная информация и их правильно размещать справа (а описание определений и логики - слева) , или вообще применять выведение типов и не указывать вовсе. Вот тут Си подобные языки имеют недостаток - у них типы обязаны размещаться слева - и когда они длинные - код активно сезжает вправо даже без учета серий отступов - но это уже недостатки дизайна языка!

А насчёт длинных имён - тут не стоит увлекаться - если длинное имя типа (вернее полный путь к типу, со всеми вложенными пространствами имён и типами-классами-владельцами) это просто неизбежность (и есть способы сокращения обрезания к длинным путям), то длинные имена переменных - это не меньшее зло, чем короткие. Но на практике с длинными переменным сталкиваешься очень редко (с очень длинными - вообще не сталкивался); и если придерживаться правила не включать составные части типа в имя переменной - то длинные имена и не возникают.

А в остальных случаях длинные имена переменных - это скорее просто проблема дизайна типов и функций - слишком универсальные комплексные типы порождают сложные имена для своих переменных, призванные пояснить эту универсальность. Сюда же можно отнести и аналогичную проблему функций, содержащих эти переменные - слишком комплексные функции, обрабатывают слишком разнородную информацию - от того и нужно поддерживать содержательные имена для этой информации. Более короткие функции - уже сами по себе (в т.ч. в своём имени и полном пути расположения) сосредоточены на узкой типизации функциональности - и им не нужны длинные имена переменным - т.к. внутри и так ясно что происходит и что обрабатывается!
4. starik-2005 2774 05.06.20 21:44 Сейчас в теме
(1) имя переменной и имя класса - вещи немного разные. Писать что-то типа:
myDataCompositionResultSpreadsheetDocumentOutputProcessor = new DataCompositionResultSpreadsheetDocumentOutputProcessor()
ИМХО не очень.
Bassgood; terrorion; +2 Ответить
6. CheBurator 3077 05.06.20 23:28 Сейчас в теме
(4)
myDataCompositionResultSpreadsheetDocumentOutputProcessor = new DataCompositionResultSpreadsheetDocumentOutputProcessor()


myDCRSDOP = new DCRSDOP() - намного лучше!
14. awk 737 07.06.20 08:38 Сейчас в теме
(6)
Код
processor = new DataCompositionResultSpreadsheetDocumentOutputProcessor()
Показать полностью

Ваш код, не в IDE, набор букв.
user774630; starik-2005; +2 Ответить
18. Darklight 28 08.06.20 14:10 Сейчас в теме
(6)ПроцессорВывода = ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент();
Что Вы тут паритесь, обычной такой короткой записи вполне достаточно - судя из контекста. Не надо называть переменную именем типа - это само по себе - дурной тон.
В контексте существования имени этой переменной такого короткого имени вполне достаточно (учитывая что рядом могут другие процессоры... в переменных).

А вот имя типа тут действительно - слишком длинное - оно могло бы быть допустиммым во внутреннем (скрытом) алгоритме - но не во внешнем API
Тут архитектурно просто сама логика вывода результата компоновки должна была быть иной
Должен был быть один процессор вывода типа "ПроцессорВывода" в пространстве имён "СистемаКомпоновкиДанных.ПроцессорыОбработкиДанных", причём он вполне себе может быть статическми - тут нет смысла создавать экземпляр объекта данного типа)

Использовать (СистемаКомпоновкиДанных, СистемаКомпоновкиДанных.ПроцессорыОбработкиДанных)
{

       //Предшествующий код получения результата компоновки

       ПроцессорВывода.Вывести(РезультатКомпоновки, ТабличныйДокументРезультат);

}



Причём "ПроцессорВывода" тут общий класс (причём ещё воpможно примеряющий классы-расширения(хелперы) для расширения своего внешнего API), а вот функция "Вывести" возможно имеет перегрузки (ну или ветвление внутри) - где нужная логика реализации вывода определяется исходно переданными типами объектов- аргументов).
Вот когда нужная логика выбрана - вот тогда уже создаётся конкретный экземпляр процессора вывода - осуществляет вывод - и там имя типа такого процессора уже может иметь произвольную длину - это всё равно будет скрыто для внешнего программиста. А для внутреннего и по контексту этой реализации всё будет понятно.

Просто 1С ещё не доросла до уровня программирования конца XX века :-(

А можно было бы ещё короче в ещё более сишном виде

ТабличныйДокументРезультат << РезультатКомпоновки;


здесь выбором нужного процессора будет управлять класс объекта "РезультатКомпоновки", зачем этим заниматься программисту - вообще не ясно - а если нужно можно и так

ТабличныйДокументРезультат << ПроцессораВыводаВТабличныйДокумент(РезультатКомпоновки); 


Ту идёт приведение типа "СистемаКомпоновкиДанных.РезультатКомпоновки" в тип "СистемаКомпоновкиДанных.ПроцессорыОбработкиДанных.ПроцессорВывода", приводящий просто к созданию экземпляра процессора вывода и его инициализацией результатом компоновки; и последующее направление вывода в поток табличного документа - приёмника - путём вызова соотвествующего перегруженного оператора напраления в поток из пространства "СистемаКомпоновкиДанных.ПроцессорыОбработкиДанных"


И замечу, ни в одном примере я не создавал переменную процессора вывода - но если нужно было работать с экземпляром объекта - я бы сделал так

Использовать (Новый СистемаКомпоновкиДанных.ПроцессорыОбработкиДанных.ПроцессорВыводаВТабличныйДокумент())
{
      УстановитьИсточник(РезультатКомпоновки);


     //Какой-то ещё код

      Вывести(ТабличныйДокументРезультат );

}
Показать


И у меня опять нет длинных имён переменных - и всё понятно над чем идёт работат даже с длинным именем типа

И это возможно почти во всех современных императивных языках программирования.....



З.Ы.
Ну а вообще - длинные имена некоторых типов в 1С это следствие отсутствия иерархии пространств имён - вообще можно сказать не пространств имён - тем более нет их встроенной библиотеки - всё в одной куче - в 1С 7 - это было ещё приемлемо - но в 1С 8 даже встроенная библиотека выросла уже до очень крупных размеров (не говоря уже о том, что творится в таких конфигурациях как ERP - где тоже было бы неплохо более детально разбить код и типы по отдельным иерархическим подгруппам). И вот всё это содержимое необходимо размещать в едином пространстве имён - чтобы имена не пресекались и оставались понятными - вот они и растут в длину...
3. nvv1970 05.06.20 20:25 Сейчас в теме
7. DitriX 2049 06.06.20 00:05 Сейчас в теме
все зависит от окружения, если у вас все разрабы сидят за ноутами, то да 100-120 норм, у нас все сидят за большими мониторами и мы ставим лимит в 150, и все отлично, главное чтобы удобно было работать всем участникам процесса. ИМХО
8. milanse 36 06.06.20 01:14 Сейчас в теме
(7) у нас тоже все сидели за мониторами, а теперь раз , и бук 15' вместо 27 монитора и кухонный стол вместо удобного офисного стола и кресла )
11. ipoloskov 158 06.06.20 12:52 Сейчас в теме
(8) я офисный монитор притащил домой
12. milanse 36 06.06.20 12:56 Сейчас в теме
(11) полноценного рабочего места нет, некуда ставить.
9. PerlAmutor 129 06.06.20 06:27 Сейчас в теме
А вообще заголовок провокационный получился на главной странице =)
Прикрепленные файлы:
Somebody1; Bassgood; user774630; DoctorRoza; ab_initio; Serega-artem; maksa2005; starik-2005; awk; TreeDogNight; ipoloskov; Senator_I; +12 Ответить
10. Senator_I 13 06.06.20 11:41 Сейчас в теме
(9) Тоже угорнул, дескать, некоторая недосказанность осталась. )))
15. portwein 08.06.20 07:12 Сейчас в теме
(13)
Что-то мне кажется, что на яве вы не пишете

Получается что и создатели Spring-а на Java не пишут - там если имя класса меньше 20 символов, то "можно условно считать это браком")
16. awk 737 08.06.20 08:21 Сейчас в теме
(15)
Получается что и создатели Spring-а на Java не пишут - там если имя класса меньше 20 символов, то "можно условно считать это браком")


Сами придумали и сами опровергли. Я такого не писал. Это называется - софизм.
Оставьте свое сообщение

См. также

Госдума планирует отложить срок обязательного перехода на машиночитаемые доверенности

Новость Госдума Законодательство ИТ-новость

Госдума в первом чтении одобрила законопроект, который продлевает переходный период для машиночитаемых доверенностей. Еще полгода организации смогут не применять МЧД при использовании электронных подписей.

вчера в 17:00    625    VKuser24342747    0       

GitHub опубликовал статистику по языкам и проектам за 2022 год

Новость ИТ-новость Языки программирования Разработка

В статистическом отчете репозитория названы самые популярные языки программирования среди пользователей платформы, а также данные об активности аудитории сервиса.

01.12.2022    1362    VKuser24342747    11       

Инспекторы смогут проводить дистанционные проверки через смартфон

Новость ИТ-новость Мобильные приложения

Минэкономразвития представило мобильное приложение, которое позволит осуществлять надзорные мероприятия бизнеса без посещения офиса. Программа работает через Госуслуги.

28.11.2022    1246    VKuser24342747    0       

«Яндекс» представил бесплатный сервис для быстрого поиска в облаке

Новость ИТ-новость Облачные технологии

Сервис Managed Service for OpenSearch от платформы Yandex Cloud предназначен для оптимизации поисковых систем и проверки стабильности и безопасности работы приложений. Услуга доступа в режиме Public Preview.

24.11.2022    1566    VKuser24342747    1       

В декабре начнут действовать новые правила регистрации доменов .RU и .РФ

Новость ИТ-новость Роскомнадзор

С 12 декабря Роскомнадзор получит право прекращать делегирование домена, если он оформлен нелегально, или на сайте содержится запрещенная в России информация.

23.11.2022    1283    VKuser24342747    1       

Stack Overflow запустил проект для оффлайн-доступа к форуму

Новость ИТ-новость Разработка

Проект под названием Overflow Offline позволяет скачать актуальную версию архива вопросов и ответов по разработке ПО. По объему данных база форума уступает только «Википедии».

02.11.2022    1230    VKuser24342747    1       

Минцифры запустило магазин российского ПО из реестра ИТ-решений

Новость Импортозамещение ИТ-новость

Маркетплейс «Руссофт» стал доступен для всех пользователей. С его помощью можно подобрать программы от отечественных разработчиков для решения корпоративных задач бизнеса.

21.10.2022    1679    VKuser24342747    4       

В ноябре начнется создание российского государственного аналога GitHub

Новость ИТ-новость

Правительство озвучило дату запуска эксперимента по разработке отечественного репозитория ПО. Исходники программ, в том числе разработанных для госорганов, будут публиковаться в нем под открытой лицензией.

19.10.2022    2426    VKuser24342747    14       

OpenAI опубликовала код системы распознавания речи Whisper

Новость Искусственный интеллект ИТ-новость

OpenAI открыла исходный код эталонной реализации на базе фреймворка PyTorch и набор уже обученных моделей для использования под лицензией MIT. Нейросеть используется для перевода речи в текст.

28.09.2022    2771    VKuser24342747    0       

Вторая версия среды разработки для плат Arduino вышла из бета-теста

Новость ИТ-новость Микроэлектроника

Arduino IDE 2.0 получила стабильную версию, в которой появилась поддержка автодополнения кода и темная тема. Разработка заняла несколько лет. Программа распространяется бесплатно.

23.09.2022    2717    VKuser24342747    0       

Основатель движения свободного ПО выпустил руководство по языку C

Новость Linux ИТ-новость Языки программирования

Ричард Мэттью Столлман, основатель Фонда свободного программного обеспечения, представил руководство по языку C и расширениям GNU. Пособие доступно всем желающим и предназначено как для опытных, так и начинающих программистов.

19.09.2022    2300    VKuser24342747    0       

«Ростелеком» предложил создать национальную экосистему на базе «Авроры»

Новость Импортозамещение ИТ-новость Мобильные приложения

Провайдер считает, что государственная мобильная экосистема поможет обеспечить технологическую независимость и экономический подъем страны. А ОС «Аврора» наиболее перспективная разработка для достижения этих целей.

15.09.2022    2190    VKuser24342747    5       

Яндекс выложил в открытый доступ инструмент для разработки мобильных приложений

Новость ИТ-новость Мобильные приложения Яндекс

Фреймворк DivKit от Яндекса стал доступен как open source решение. Инструмент позволяет менять интерфейс приложений без скачивания обновлений и значительно ускоряет мобильную разработку.

02.09.2022    1901    VKuser24342747    0       

Группа компаний «Астра» представила собственную мобильную ОС

Новость Linux ИТ-новость Мобильные приложения

Доработанная ОС Astra Linux Special Edition может быть запущена на большом числе мобильных устройств, в том числе на планшетах и смартфонах с процессорами на архитектурах ARM, «Эльбрус» и x86-64.

25.08.2022    1567    VKuser24342747    1       

В России разработаны меры для решения проблемы нехватки ИТ-специалистов

Новость ИТ-новость

Вице-премьер Дмитрий Чернышенко сообщил, что сейчас экономике страны не хватает 1 млн ИТ-специалистов. Способы преодоления дефицита закреплены в программе нацпроекта «Цифровая экономика»

05.08.2022    1702    VKuser24342747    11       

Яндекс открыл доступ к фреймворку для создания приложений с микросервисной архитектурой

Новость GitHub ИТ-новость Яндекс

Инструмент Userver опубликован как бесплатное open source решение. Яндекс уже несколько лет эффективно его использует в своих приложениях Go, «Еда», «Лавка», «Доставка» и другие. Фреймворк находится в стадии бета – переезда на открытую разработку.

02.08.2022    2550    VKuser24342747    19       

Бизнес сможет использовать повышающий коэффициент для расходов на покупку ПО

Новость ИТ-новость

Принят закон, который позволяет компаниям учитывать расходы на отечественные программы и радиоэлектронное оборудование с коэффициентом 1,5. Решения должны быть включены в соответствующие реестры и относиться к ИИ.

26.07.2022    2316    VKuser24342747    0       

Минэкономразвития тестирует миграцию с Windows 10 на Astra Linux

Новость ИТ-новость

Министерство проводит эксперимент, в ходе которого сотрудники используют российскую ОС Astra Linux вместо Windows 10. По словам главы департамента, эксперимент проходит успешно.

11.07.2022    1863    VKuser24342747    0       

Вышла версия открытого текстового редактора Vim 9.0

Новость ИТ-новость

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

07.07.2022    2037    VKuser24342747    0       

 «Яндекс» открыл доступ к SmartCaptcha и нейросети по генерации текстов 

Новость ИТ-новость Яндекс

Компания открыла доступ к алгоритму SmartCaptcha, который защищает сайт от спама и DDoS-атак, а также к проекту YaLM 100B, способному писать тексты на английском и русском языках. 

29.06.2022    2356    VKuser24342747    0       

«Яндекс» предложил разработчикам пройти диагностику технических навыков

Новость Кадровые агентства, подбор персонала ИТ-новость Яндекс

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

27.06.2022    2222    VKuser24342747    1       

GitHub открыл доступ всем разработчикам к ИИ-помощнику Copilot по подписке

Новость GitHub Искусственный интеллект ИТ-новость

Github Copilot стал общедоступным, но для его использования пользователю репозитория нужно приобрести подписку. Хотя некоторые разработчики могут пользоваться инструментом бесплатно.

24.06.2022    3941    VKuser24342747    1       

В России планируют учредить Федерацию спортивного программирования

Новость ИТ-новость

Минцифры и Минспорта подписали меморандум, в котором закреплено сотрудничество ведомств по развитию в стране спортивного программирования и проведение первого официального чемпионата.

21.06.2022    2795    VKuser24342747    6       

Microsoft окончательно прекратила поддержку Internet Explorer

Новость Интернет ИТ-новость

Microsoft прекратила выпуск обновлений для своего браузера Internet Explorer, а с августа начнет удалять приложение из актуальных версий Windows. Эксперты полагают, что из-за этого пострадает много бизнес-пользователей.

17.06.2022    3297    VKuser24342747    4       

В России начал работу отечественный сервис мониторинга сбоев

Новость Импортозамещение Интернет ИТ-новость

Российская компания BrandAnalytics запустила платформу «Детектор сбоев», предназначенную для отслеживания работоспособности сайтов и сервисов, в том числе русскоязычных.

16.06.2022    2144    VKuser24342747    0