Код
#статьи

«Это вообще не смешно! Это больно!» Ловите новую десятку айтишных шуток

Продолжаем переводить с программерского языка на человеческий.

Полина Суворова для Skillbox

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

Кто такие программисты

Про них всякое говорят:

Что такое программист? Это автомат для превращения кофе в код.

(Источник / перевод Skillbox Media)

Программисту нужен кофе — программист идёт за кофе. Коллаж: Екатерина Степанова / Skillbox Media

Некоторые до сих пор думают, что программисты и вообще все айтишники — это такие лохматые существа с вечно красными глазами, в стоптанных тапках и вытянутых свитерах. Мол, они мало спят (потому что всё время работают) и непрерывно поглощают кофе. На входе кофе, внутри — магия, на выходе — готовый код.

Хотя в опросе пятилетней давности, который провёл сайт developermedia.com, лишь 16,4% из примерно тысячи разработчиков ответили, что не пьют кофе, но времена меняются. Программисты забывают о корнях и теперь вместо кофе частенько выбирают чай, а то и вовсе цикорий 🥤

Правда, о некоторых традициях отрасли забывать всё же не стоит — например, о таком вот принципе:

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

(Источник / перевод Skillbox Media)

Разработчик, который написал фрагмент программы, не всегда занимается его сопровождением (сам правит ошибки и добавляет новые возможности). Программисты не крепостные, они меняют проекты и места работы, а вот код за ними остаётся.

Есть такое понятие, как legacy code. Это код, перешедший по наследству от разработчиков, связь с которыми уже не поддерживается.

А ещё так называют устаревший код, который сохраняют для совместимости с предыдущими версиями продукта: например, написанный на старой версии языка или для старой операционной системы.

Если этот код кривой и запутанный, а сроки на доработку горят, то несчастный наследник как минимум проклянёт своего предшественника. И не раз. А уж если он (чисто случайно) склонный к насилию психопат… 😱

В общем, лучше всегда писать отличный код, но это сложно, а потому:

Хороший программист всегда посмотрит в обе стороны, прежде чем перейти дорогу с односторонним движением.

(Отсюда / перевод Skillbox Media)

Правильно делает: психопату же законы дорожного движения не писаны 😀

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

  • не дают вводить отрицательные денежные суммы;
  • скрывают или делают неактивными кнопки, которые не должны быть нажаты раньше времени;
  • добавляют проверку и форматирование в поля для ввода телефонов и email-адресов.

Но всегда находятся пользователи, которые делают что-то настолько странное, что ни программистам, ни тестировщикам и в голову не могло прийти.

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

Поэтому говорят:

Документация как секс: средненькая всяко лучше, чем никакой, а уж если хорошая — совсем здорово.

(Источник / перевод Skillbox Media)

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

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

Что программисты делают

Программист идёт искать баги в коде. Коллаж: Екатерина Степанова / Skillbox Media

Если судить по доле шуток про баги, то может показаться, что программисты большую часть времени не пишут код, а ищут в нём ошибки. Если вы тоже программист, то уже знаете секрет: так и есть! И в этом нет ничего плохого. Не зря же говорят:

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

(Отсюда / перевод Skillbox Media)

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

Конечно, это просто шутки: программисты вовсе не пишут глупости, которые потом долго исправляют, чтобы почувствовать себя умнее. Ладно, оговоримся, не пишут глупости намеренно. Shit Bugs, конечно, happen. И с ними приходится разбираться. Говорят, что:

Найти ошибки в коде бывает непросто. И ещё сложнее — если вы уверены, что их там нет.

(Источник / перевод Skillbox Media)

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

Так что один говорит: «У меня всё работает», и другой вторит: «И у меня всё работает!» В совсем запущенных случаях никто не хочет искать ошибки, в итоге же в программе работает примерно ничего.

Наверное, лучше быть к себе критичнее, чтобы не вышло как в истории с приложением Horizon. В этой программе была какая-то древняя ошибка в алгоритме расчётов. Из-за неё в почтовой компании Post Office Ltd., которая пользовалась этой программой, на протяжении 20 лет возникали недостачи денег.

Недостачи руководители вешали на рядовых служащих. В итоге — сотни пострадавших сотрудников: одни потеряли жильё и попали в тюрьму, а некоторые даже покончили с собой.

И всё, возможно, потому, что кто-то не хотел искать ошибку в программе.

А если поразмыслить над этой фразой во время чайной церемонии, можно увидеть аналогию с афоризмом «Самое трудное — это поймать кошку в тёмной комнате, особенно когда её там нет», который часто приписывают Конфуцию. По крайней мере, его вспоминал герой известного в СССР фильма «Место встречи изменить нельзя».

Однако ещё труднее — найти эту самую кошку в трактате Конфуция, особенно если её там нет.

И что в итоге получается

Не соврём ни на йоту — всё отражено в народном эпосе:

Почему не хватает времени, чтобы сразу всё сделать правильно, но всегда найдётся время, чтобы сделать больше неправильного?

(Отсюда / перевод Skillbox Media)

Эта фраза — самая что ни на есть грустная реальность, хоть и попалась нам в подборке шуток.

В настоящих проектах время на разработку ограничено: заказчикам нужно работающее приложение к определённому сроку, и мало кого волнует:

  • насколько стройная у этого приложения архитектура;
  • насколько оптимальны в нём алгоритмы;
  • как мощны его лапищ… ой, простите, кажется, это из другого сборника шуток 🐕
  • и что думают о применяемых подходах те крутые ребята на ютуб-канале о разработке.

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

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

Быстрее всего работает код, который отсутствует.

(Источник / перевод Skillbox Media)

Вы же не будете спорить, что процессор скорее справится с инструкцией, которую не надо выполнять, а браузер — со страницей, которую вовсе не надо рисовать? 😎

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

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

Нет кода — нет багов.

(Отсюда / перевод Skillbox Media)

С одной стороны, это о том, что ошибки есть в любом коде. С другой — если вы удалите фрагмент программы, то можете быть уверены, что исправили в нём все ошибки.

И вот он, идеальный рецепт: хотите кода без ошибок — просто не пишите его 😄

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

— Сколько программистов нужно, чтобы поменять лампочку?

— Размечтались, у вас же проблема с железом!

(Источник / перевод Skillbox Media)

Шутку оценят все, кто хоть раз слышал в свой адрес: «Ты ж программист!» За этой фразой может, к примеру, последовать просьба починить утюг, заменить экран смартфона или даже отремонтировать сливной бачок. В лучшем случае — переустановить Windows. Об этом мы рассказывали здесь.

«Логика» такая:

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

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

Так что применяйте ваших программистов по назначению — ведь теперь вы знаете в них толк 👼

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована