LINUX.ORG.RU
ФорумTalks

IT-мифы

 , ,


0

1

Чтобы разбавить однообразные толксы, давайте здесь пообсуждаем всякие известные вам мифы, бытующие в IT и около-IT сферах.

Вот, например. Многие люди отчего-то уверены, что в строке кода должно быть, в идеале, не больше 80 символов, потому что их большее количество, якобы, осложняет чтение. Особо умные приводят цифру 66 и ссылаются на Брингхерста.

При этом на самом деле удобство чтения здесь абсолютно не при чем. Типографские правила предназначены для книг, а там, в отличие от кода, каждая строка доходит до правого края страницы (индентов тоже нет). А в коде это совсем не так, плюс часто попадаются пустые строки.

Реальная же причина установки ограничения на 80 (иногда 100-120, зависит от языка) - удобство для диффов и мерджей, чтобы на экране вмещалось 2-3 столбца.

Пишите что сами знаете.

Deleted

Последнее исправление: myLogin (всего исправлений: 4)
Ответ на: комментарий от Deleted

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

Если у тебя функция влезает на экран то все норм. Видишь ли, в том то и дело что все оно взаимосвязано.

В силу того, что ты отделил это от пункта 3, то подразмевается, что экран такой узкий, что больше 80 символов там не умещается?

Да. У меня в редакторе помещается около 160 символов. Если разбить его по вертикали на два то получается как раз около 80.

При этом ты не догнал, что изначально речь шла о мифе, когда люди говорят: «Ого, в книгах не больше 70 символов в строке, иначе читать неудобно, глаз вечно соскальзывает на новую строку, поэтому и в коде тоже надо не больше 70».

Обычно стандарт 80, и в книгах аргументов гораздо больше чем приведенный тобой один.

То есть шла речь об удобочитаемости совершенно другого рода

Да, я об этом знаю. Просто мне оно кажется менее важным чем остальные.

Интереса ради, приведи длинные строки (длинней 100, 120) которые по твоему оправдывают свою длину. Всякие строковые константы вроде URL в коде не в счет.
На практике я вижу превышение разумного лимита строки практически только по причине неразумного именования.

urxvt ★★★★★
()
Ответ на: комментарий от urxvt

Да. У меня в редакторе помещается около 160 символов. Если разбить его по вертикали на два то получается как раз около 80.

Тогда это пункт 3, а не 4. Я тебя спросил про устройства, на которых помещается вообще только 80, в одну колонку.

Обычно стандарт 80, и в книгах аргументов гораздо больше чем приведенный тобой один.

Чо? В типографике стандарт 80? Ты кому это рассказываешь? Чихольду, Брингхерсту расскажи. В технической литературе иногда используют широкие строки, даже больше 100, но это из-за наличия иллюстраций и многоуровневых списков. Цифра 80 - это чисто программерская традиция для кода, имеющая конкретные исторические причины со времен перфокарт, ничего более.

Интереса ради, приведи длинные строки (длинней 100, 120) которые по твоему оправдывают свою длину. Всякие строковые константы вроде URL в коде не в счет.

Ну вот, к примеру, из AHK-скрипта:

if winActive("ahk_class CabinetWClass") or winActive("ahk_class ExploreWClass") or winActive("ahk_class #32770")
    openAgentRansackHere()

Перед ней 2 индента. Есть способы разбить ее на несколько коротких, но они довольно кривые и не является хоть сколько-нибудь распространенной практикой.

(Насчет всяких профи не знаю, но нафиг надо становится профи в таких языках).

Другой пример: CSS. Всякие SASS/LESS и переменные были не всегда. Plain CSS среднестатичного модного сайта на Вордпрессе, купленного на Theme Forest - это 5-9 тысяч строк, весьма коротких. Под конец дня, при активном подкручивании под себя, начинает подташнивать, от нагрузки на вестибулярный аппарат.

Поэтому до появления вышеуказанных SASS/LESS и прочих новомодных CSS-штук, была порой принята такая практика: как только активная стадия разработки CSS-стилей закончена, и проект можно переводить из стадии активной разработки в стадию поддержки, все CSS правила переписываются как однострочники.

Deleted
()
Последнее исправление: myLogin (всего исправлений: 3)
Ответ на: комментарий от Deleted

Звучит примерно также, как «русская математика».

Просто ты не любишь всё русское.

ashot ★★★★
()
Ответ на: комментарий от Deleted

Отступы в один пробел. Или вообще без отступов. Так более тру.

Ты ещё и пистонистов не любишь.

ashot ★★★★
()
Ответ на: комментарий от Deleted

Жесть, а ещё лучше вообще без знаков новой строки, шарашить всё в одну.

Deleted
()
Ответ на: комментарий от urxvt

Кстати да, еще один аргумент: стимулирует следить за уровнем вложенности.

Ну и как мне это поможет, если мне надо написать функцию прохода по 3х-мерному массиву и делать с элементами различные преобразования в зависимости от условий?

Deleted
()
Ответ на: комментарий от Deleted

Тогда это пункт 3, а не 4. Я тебя спросил про устройства, на которых помещается вообще только 80, в одну колонку.

Я же тебе объясняю, то что на экран влазит 100500 символов по ширине еще мало что значит. Напр, будь я верстаком или писал на жс то я бы хотел иметь возможность видеть рядом еще окно веб-обозревателя. В ИДЕ есть панели разные, и т. д.

Чо? В типографике стандарт 80?

При чем тут типография? И имел ввиду что в книгах по программированию про это пишут.

Цифра 80 - это чисто программерская традиция для кода, имеющая конкретные исторические причины со времен перфокарт, ничего более.

Понятно что это было обусловлено режимом работы мониторов того времени. Его можно поднять немного, но не более того. Как делают умные люди, так в Гугле для жабы предел 100 символов.

if winActive(«ahk_class CabinetWClass») or winActive(«ahk_class ExploreWClass») or winActive(«ahk_class #32770»)

openAgentRansackHere()
Ну такое... можно и 20 правил туда натолкать.

Поэтому до появления вышеуказанных SASS/LESS и прочих новомодных CSS-штук, была широко принята такая практика: как только активная стадия разработки CSS-стилей закончена, и проект можно переводить из стадии активной разработки в стадию поддержки, все CSS правила переписываются как однострочники.

Странные вы, фронтенд гайз. :) Менять стиль форматирования в зависимости от темпа разработки. Правда, я так подозреваю, что это практикуется только в какой-то шарашке, где тебе не повезло работать.

urxvt ★★★★★
()
Ответ на: комментарий от Deleted

Ну и как мне это поможет, если мне надо написать функцию прохода по 3х-мерному массиву и делать с элементами различные преобразования в зависимости от условий?

Я не говорю что это работает идеально во всех случаях (ничто везде не работает). Но тут тоже у тебя есть выбор — вынести проход части измерений в отдельную функцию.

urxvt ★★★★★
()
Ответ на: комментарий от urxvt

Я вообще не программист и не админ. Десять лет назад сваял два сайта на Вордпрессе. Так было сделано (не знаю как сейчас) на сайте kremlin.ru, в том числе. Дело не в уровне фирмы, которая ведет разработку, а в ограничениях языка, каким он был на то время.

Deleted
()
Ответ на: комментарий от Deleted

Ааа. Ну тогда тебе придется поверить на слово, что длинна имеет значение.

ограничениях языка, каким он был на то время.

Это не ограничение CSS, а неумение им пользоваться.

urxvt ★★★★★
()
Последнее исправление: urxvt (всего исправлений: 1)
Ответ на: комментарий от InterVi

потом сразу будешь мильоны баксов зарабатывать

Это не миф. Просто не уточняется для кого ты их будешь зарабатывать. :)

AfterWork
()
Ответ на: комментарий от tiinn

и т.д.

Любой админ обязательно квалифицированный программист.

Вирусы пишут разработчики антивирусов.

Компьютер не ошибается.

Уверенный пользователь ПК это почти готовый админ.

Техподдержка сразу знает что сучилось с компом/программой пользователя, чаще всего еще до того как пользователь позвонит в техподдержку и то что нужно время на выяснение проблемы это всегда отмазка.

и т.д.

AfterWork
()

Пишите что сами знаете.

Квалифицированный программист может не знать математику.

PEKABOYARIN
()

опцоны, тут женщинам надо намекнуть...

The Food and Drug Administration is cracking down on companies “deceptively” marketing unproven “v******al rejuvenation” devices and treatments that have been reported to cause serious burns, scars, and chronic pain, the agency announced on Monday, July 30.



Тему не создавал, один фиг потрут. Но информация (arstechnica) интересная и познавательная. Короче, не нужно пхать туда новомодные девайсы, без медицинского подтверждения.

Deleted
()
Ответ на: комментарий от quickquest

Ограничение на 80 символов пришло от перфокарт: наиболее распространённым был «формат IBM», введённый в 1928 г. — 12 строк и 80 колонок ©.

Ширина двух лошадиных задниц.txt

DNA_Seq ★★☆☆☆
()

удобство для диффов и мерджей, чтобы на экране вмещалось 2-3 столбца.

Это же и есть «не осложнять». Особый вид, но чтения же.

DonkeyHot ★★★★★
()
Ответ на: комментарий от Legioner

Широкоформатные мониторы не дадут сделать нормальный вид при таком растягивании.

Quasar ★★★★★
()

Чтобы разбавить однообразные толксы, давайте здесь пообсуждаем всякие известные вам мифы, бытующие в IT и около-IT сферах.

Если в бочку с толксами добавить ложку варенья, толксы перестанут быть толксами (на самом деле нет)

af5 ★★★★★
()
Ответ на: комментарий от Deleted

Убивать.

А в действительности: я пытаюсь загнать своих товарищей по команде в 80 (максимум 100), ибо при merge (который мне всё же приходится делать), 2 столбца по 120 тупо не влезают. И осознанно сравнивать два столбца кода становится сложнее.

Deleted
()
Ответ на: комментарий от Deleted
if winActive("ahk_class CabinetWClass") or
   winActive("ahk_class ExploreWClass") or
   winActive("ahk_class #32770")
  openAgentRansackHere()

Ты про такой способ?

Deleted
()

Джава тормозит

foror ★★★★★
()

иногда 100-120, зависит от языка - удобство для диффов и мерджей

Нет, это всё из-за IDE, когда у тебя UI в три колонки на 1080p, чтобы текст программы влазил и остальные 2 столбца были разумной ширины как раз и нужно 100-120 максимум.

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от Legioner

пользуюсь шириной в 140

Не надо так.

Приходилось работать над проектом, у которого лимит был 150, хотя зачастую до 200 доходило. Это атас.

RazrFalcon ★★★★★
()

Использую 100. Но стараюсь 80. Две вертикальные черты в редакторе.

Лично мне так удобнее читать. Пусть лучше длинные функции, чем широкие.

RazrFalcon ★★★★★
()
Ответ на: комментарий от Legioner

кроме её правильного названия macOS

Оно не правильное, а новое.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Для меня атас это переносы строк посреди стейтмента или расписывание тривиальщины на несколько строк там, где оно прекрасно смотрелось бы в одной строке. А уж всякие mkdir это не атас, это трындец.

Legioner ★★★★★
()
Ответ на: комментарий от Deleted

Это ещё хуже. «Лучше» так:

isNeededClass =    winActive("ahk_class CabinetWClass") 
                or winActive("ahk_class ExploreWClass") 
                or winActive("ahk_class #32770")

if isNeededClass:
  openAgentRansackHere()
RazrFalcon ★★★★★
()
Ответ на: комментарий от Legioner

переносы строк посреди стейтмента

Пример?

Я придерживаюсь правила: одна строка - одно действие. С редкими исключениями.

То есть:

let list: Vec<WarehouseItem> = table::warehouse
    .offset(100)
    .limit(200)
    .load(connection)?;

а не:

let list: Vec<WarehouseItem> = table::warehouse.offset(100).limit(200).load(connection)?;

всякие mkdir

Это что такое? coreutils?

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

О, я тоже выношу последнее время большие проверки в отдельные переменные.

Deleted
()
Ответ на: комментарий от RazrFalcon

То есть

В данном случае да, но это просто новомодный дизайн API через chaining. Раньше он бы писался как

let statement = table::warehouse()
statement.offset(100)
statement.limit(200)
let list = statement.load(connection)

Я про всякие

if (uniqueItemCount == uniqueNumberCount ||
  uniqueItemCount == uniqueStringCount ||
  uniqueItemCount == uniqueObjectCount) {
}
вместо
if (uniqueItemCount == uniqueNumberCount || uniqueItemCount == uniqueStringCount || uniqueItemCount == uniqueObjectCount) {
}

Это что такое? coreutils?

Это неуместные сокращения идентификаторов. create_directory, например, куда удобней чем mkdir. set_current_directory вместо chdir и тд. Это просто примеры, тут понятно, что эти названия уже въелись десятилетями, но когда вместо update_person_last_name пишут updprslname, хочется убивать, а не радоваться тому, что оно вместится в 80 столбцов.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

Я про всякие

Оба варианта убогие. См. выше.

Это неуместные сокращения идентификаторов.

Ну тут соглашусь. Наследие unix/сишки ещё живо. Тем не менее, мне удаётся писать с шириной в 80 и без сокращений.

RazrFalcon ★★★★★
()
Ответ на: комментарий от Legioner

а я вот считаю, что текст должен занимать всю ширину экрана. и не шрифтом для слабоумных или слабовидящих, а нормальным мелким текстом. чтобы ничего не тыкать и видеть весь текст сразу. а за узкую вёрстку крупным шрифтом и за страницы, на которых 90% места занимает пустота, надо убивать беспощадно.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)

IT-мифы

IT поддержка. самый большой миф. причём чем дороже продукт, тем это более миф.

vtVitus ★★★★★
()
Ответ на: комментарий от Iron_Bug

а я вот считаю, что текст должен занимать всю ширину экрана

Глазами приходится бегать, устаешь больше. Это объективно. Плюс, широкий текст воспринимается хуже. Это субъективно.

otto ★★★
()
Ответ на: комментарий от otto

глазами бегать проще, чем тыркать какой-нибудь PgDn постоянно. или, ещё хуже, листать и подгружать страницы. и текст надо видеть максимально, чтобы хотя бы поиском по нему лазить.

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

ещё огромное зло - бесконечный скроллинг. за это вообще надо в железную деву заталкивать или на дыбу вздёргивать.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Deleted

У любой серьезной фирмы есть style guide. У несерьезных тоже должен быть — как минимум, чтобы не было срачей на тему где ставить скобки, пробелы, и т.д.

Deleted
()
Ответ на: комментарий от Deleted

Нет, так оно работать не будет. Если добавить точки в конце первой и второй строк — тоже не заработает.

Кстати вот еще пример. Скажем, у тебя есть скрипт для автоматизации. В шапке скрипта — раздел с настройками. Настроек не очень много — 6. Но 3 из них, относятся к одной смысловой группе, а 3 — к другой.

В таких случаях их гораздо удобнее записать так:

varA := "foo", varB := "bar", varC := "baz"
varX := "aaa", varY := "bbb", varZ := "ccc"

чем столбиком (шесть строк и еще одна пустая между ними).

Deleted
()
Последнее исправление: myLogin (всего исправлений: 1)
Ответ на: комментарий от af5

Варенья не вышло. Унылый срач. Я ведь не хотел не протяжении двух страниц обсуждать длинные строки, это в планы не входило.

Deleted
()

русские - хорошие программисты

TooPar
()
Ответ на: комментарий от Deleted

Ок, там фикс был очень простой, это я ступил (or должны были быть на новых строках), но вот еще:

File_Exp := SubStr(A_ScriptDir,1,InStr(A_ScriptDir,"\",,0,R-1)) SubStr(File,R+2)
DllCall("ReadProcessMemory", Ptr, hProc, Ptr, pRB, Ptr, &btn, UInt, szBtn, UInt, 0)

Да, разложить это покороче можно, но не всегда хочется.

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

А исходный поинт стартового поста был о том, что люди, ничего не понимающие в типографике, пытаются обосновать с помощью классических книжных подходов те вещи, к которым они не применимы.

Deleted
()
Последнее исправление: myLogin (всего исправлений: 1)
Ответ на: комментарий от vtVitus

У меня была смешная история. Завел халявный аккаунт в Мегаплане. Потом через месяц на мобилу звонит их менеджер и пытается спросить, действительно ли меня зовут «Иванов Иван Иванович», «Ведь вы понимаете, многие вводят такие данные как аналог английского John Doe, как ненастоящие». Пришлось перейти на оскорбленный тон и разыграть драму, лол. Потом я оттуда свалил на Basecamp Classic, чему был очень рад.

Deleted
()
Последнее исправление: myLogin (всего исправлений: 2)
Ответ на: комментарий от otto

На эту тему много научных работ написано.

В одной из них, которая мне показалась довольно адекватной, выводы были такие:

  • скорость чтения выше на длинных строках (120 не предел)
  • но чтобы можно было не просто прочесть, а понять что-то сложное, ширина должна быть вменяемой (60-70-80-90).
  • при этом если перед глазами помещается мало текста — понять его сложно, пусть даже длина строки вменяемая. Смотри пример статьи на medium, который я приводил выше.

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

Deleted
()
Последнее исправление: myLogin (всего исправлений: 5)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.