Evrone

Объясни «нормальным языком» — сможет ли филолог понять программиста?

Почему монолитная архитектура — это борщ, а фреймворк — это сарай? Мы попросили технарей Evrone объяснить простыми словами популярные IT-термины, а филологов попросили эти метафоры оценить. Осторожно, внутри текст, который может выбить из рабочего настроения.

Мы в Evrone решили позабавиться и размять мозги, поэтому придумали пятничную рубрику «Объясни гуманитарию». Задача была простой — найти понятное и забавное объяснение какому-то профессиональному термину через сравнение с чем-то очевидным. Как если бы программист объяснял что-то филологу...

Почему забавное? Так задача становится интереснее, рождаются внутренние мемы. В Evrone работают и не-технические специалисты, они не всегда понимают IT-юмор. А тут могли быть задействованы вообще все. В общем, ещё один плюсик в копилку корпоративной культуры.

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

Объектно-ориентированное и функциональное программирование

В ООП вы сначала объявляете ингредиенты и их свойства: «Я беру картофель — 1 кг, масло — 50 г, молоко — 300 мл». Потом создаёте рецепт — взять картофель, почистить, отварить и т.д. Когда блюдо почти готово, вы объявляете: «Это картофельное пюре, и оно готово».

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

Контейнеризация, Docker и Kubernetes

Docker — это такие комнатки, в которых можно творить всякую дребедень.

***

Docker — это грядка, на которой растут ваши цветы. Kubernetes — садовник, который за ними ухаживает.

***

Если смотреть на принцип «всё, что происходит в Вегасе, остается в Вегасе», то Docker-контейнер — это ваша комната в отеле, а Kubernetes — управляющий отелем.

Гипервизор

Это надзиратель в тюрьме.

***

Это администратор в отеле. А виртуальные машины — его постояльцы.

Блокчейн

Допустим, вы хотите надёжно сохранить какую-то информацию, чтобы никто не смог её подменить. Записываете на бумажке и кладёте в прозрачный сундук, закрываете на замок. Ключ есть только у вас. Любой может прочитать, что написано на бумажке, но без ключа никто не может туда что-то дописать.

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

Теперь любой может прочитать, что написано на вашей бумажке, и что написано на Васиной бумажке. Плюс каждый может подтвердить, что ваш сундук соответствует описанию на бумажке Васи, значит подмены не было.

Свой сундук Вася кладёт в сундук Пети. Тот тоже записывает что-то на бумажке и добавляет описание Васиного сундука. Ключ от сундука Пети есть только у Пети. И так далее.

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

Монолитная и микросервисная архитектура

Микросервисная архитектура — это как будто все части тела существуют независимо друг от друга и могут изменяться. Нужно дотянуться до пульта? Удлиняется только правая рука. В монолите бы равномерно удлинилось всё тело.

***

Монолит — самозанятый или ИПшник. Все функции выполняет сам. А микросервисы — это уже основной специалист + бухгалтер, продавец и другие службы в поддержку.

***

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

Legacy и технический долг

Технический долг — это забить на оплату ипотеки. Легаси — купить квартиру «с историей». К-к-комбо: купить квартиру «с историей» в ипотеку и перестать платить.

***

Технический долг — это добавлять в бефстроганов муку и делать это, не переставая. С каждым разом становится всё труднее перемешивать, а есть и подавно. В итоге получается… пирог? Но заказывали-то бефстроганов.

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

***

Технический долг — это когда вы начали писать книгу, но особо не знаете русский язык. Грамматические ошибки оставляете на потом, часть сюжета написана в стиле sci-fi, часть в стилистике западных вестернов. А одна глава вообще на хинди. Сюжет с открытым финалом, за всю историю сменилось 8 главных персонажей, куча сюжетных линий обрываются словами «И они поженились» или «И вдруг он умер». Вам, с одной стороны, хочется закончить книгу, а с другой — делать это всё сложнее.

***

Легаси — это как жизненный опыт. Можно принять ошибки и жить дальше, стараясь изменить свою жизнь к лучшему. А можно сжечь все мосты и попробовать начать новую жизнь. К сожалению, нельзя прожить жизнь без ошибок. Как и избежать легаси в проекте.

***

Легаси — это ВАЗ 2106 90-го года выпуска. Вы на ней ездите, но часть ресурсов неизбежно уходит на обслуживание. Можно купить новую машину, но это обойдётся слишком дорого. И вы постоянно находитесь перед выбором: чинить очередную почти-фатальную поломку или купить уже зимнюю резину.

А технический долг — это не купленная зимняя резина. В январе.

Фреймворки

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

***

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

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

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

Но просто так к соседу не прийти. Берёте бутылочку. Пришли, познакомились. Сосед за столом рассказал, как пользоваться строгальным аппаратом. Хорошо посидели.

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

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

Fullstack-разработчик

Это человек-оркестр.

***

И швец, и жнец, и на дуде игрец

DevOps

DevOps — это перевозка огромной модели космического корабля из Лего, которую вы делали вместе с друзьями. Только вы звоните старшему брату, а не заказываете услуги транспортной компании.

***

DevOps-специалист — это военком, который выдал приписное и ждёт, чтобы ничего не сломалось и вы благополучно отправились в нужную часть, не сломавшись до начала путешествия (на медкомиссии, например).

***

DevOps-специалист — это кот Леопольд, который говорит: «Ребята, давайте жить дружно». Он стоически выдерживает нападки «мышей» (требования разработчиков, менеджеров и т.д.) и делает так, чтобы все действительно жили дружно (т.е. то, что сделали разработчики, попадало в рабочую среду, хорошо работало, бизнес был доволен).

Репозиторий

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

Нативная и кроссплатформенная разработка

Нативная разработка — это Нива (она же ВАЗ-2121). Машина собрана таким образом, что перенести эти разработки (полностью или хотя бы частично) и сделать другую машину не получится. Как ни собирай — будет Нива.

И тут на рынок врывается, например, Рено. У них куча разных машин, но по большому счету конвейер собирает их на базе одной платформы. А на выходе — и Аркана, и Логан, и Сандеро.

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

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

***

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

***

Я бы сравнил со сковородами. Можно купить универсальную. Но тогда никакого стейка с полосочками. А можно купить гриль-сковороду, но она и дороже, и яишенку на ней уже не пожаришь.

***

Банан — кроссплатформенное средство питания, их можно есть везде. А вот свинина или говядина — можно сказать нативные, уже не подходят для некоторых стран.

Библиотеки

Представьте, что кто-то написал отдельную главу в своей книге, вы можете её вставить в свою книжку, и ничего за это не будет. Эти главы и есть библиотеки. Есть отдельные индивиды, которые совершают прорыв в своем деле и придумывают какие-то принципиально новые главы для чужих книг! Кстати, вам надо ещё уметь использовать главу так, как задумал автор.

***

Библиотеки — это панели, из которых строится типовое жилье. Нужно окно — берёте панель с окном, нужна глухая стена — берёте стену. Главное — подобрать подходящую. Просто иногда их приходится подпиливать на месте...

Умение говорить простыми словами— нужное умение. И уже потому, что доступно написанный текст расширяет читательскую аудиторию. Однако всё не так просто! Существуют термины, которые трудно заменить понятными всем синонимами. Ещё одна сложность — само объяснение. Объясняя простыми словами, важно не упустить сути. Также важно не погрязнуть в образности, в слишком условных аналогиях, метафорах. Главной точкой отсчёта здесь является адресат текста. Прежде, чем приступать к толкованию термина, подумайте о том, кто это будет читать.

Марьяна Яковлевна Розенфельд

Я поняла всё. Особенно хорошо там, где несколько вариантов. Они дополняют друг друга и убеждают в точности понимания. Метафоры точные и забавные.
Это как перевод с технического на образный язык. Подтверждается мысль о том, что метафора, особенно развернутая, способна точно и детально передать суть любого явления. Можно было бы сделать словарь для тех, кто обучается сложному в чужой области.
Любопытно, что в основном здесь 3 типа метафор: пищевые, «машинные» и книжные. И чаще всего — пищевые.

Жанна Владимировна Грачёва

P.S.: Отдельные перлы

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

Контейнеризация нужна, чтобы обеспечивать работой сисадминов и называть их более модным словом Девопс.

***

Контейнеризация нужна, чтобы зарабатывать 300К\сек.

***

Fullstack — это когда за две работы деньги платят один раз.

***

Микросервисы — это штука для детей богатых родителей.

***

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

***

Как объяснить Highload филологу? Ну, это как час пик на кассе в МакДональдс. Только постоянный.

***

Highload — это как пробки. Если количество машин в Москве увеличится в 10 раз, то 10 МКАДов не поможет быстрее двигаться форд-фокусам. Нужны сверхскоростные вакуумные гиперлуп-поезда и электрифицированные скутеры для локального транспорта.

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

Мнение редакции может не совпадать с авторским (и, кстати, кое-где не совпадает, но что поделать, мир не идеален). Evrone предупреждает, что материал может нанести непоправимую пользу вашему организму.

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

0
27 комментариев
Написать комментарий...
Павел Vidasp

Объектно-ориентированное и функциональное программирование. Тут пример про сравнение подходов композиции и декомпозиции. Или восходящие и нисходящее программирование. Но не ООП и ФП =/

Ответить
Развернуть ветку
Artem Petrenkov

Определение ООП, к тому же, подменено определением императивного подхода, а это и процедурное программирование.

Ответить
Развернуть ветку
Evrone
Автор

А с чем тогда сравнить ООП и ФП? Как объяснить простым языком?

Ответить
Развернуть ветку
Artem Petrenkov

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

Ответить
Развернуть ветку
Павел Vidasp

ООП это про объекты и их взаимоотношение! Это значит. Берем девушку 1 штука. И отправляем ей сообщение сварить борщ! Вот это ООП. В зависимости от диспетчеризации (тут надо понимать к какой девушке вы обращаетесь..) будет выполнен какой-то результат.

Ответить
Развернуть ветку
Artem Petrenkov

Не, берём человека, умеющего готовить (реализующего интерфейс Повар). Это может быть шеф-повар ресторана, мама, жена, батя (но он жарит борщ), даём ему сообщение «сварить борщ». Возможно ему придётся передать ингредиенты, а может быть он их возьмёт сам из объекта Холодильник.

Ответить
Развернуть ветку
Dmitry Myachin

Но реализовать интерфейс Повар может и функция на Go. Является ли Go языком с ООП?

Ответить
Развернуть ветку
Artem Petrenkov

Go — не полноценный объектно-ориентированный язык, поскольку в нём нет наследования. Но писать в ООП-стиле на нём вполне можно.

Ответить
Развернуть ветку
Dmitry Myachin

Ну ты же понимаешь, что я просто докопался до формулировки :)

И так, просто для развития темы. Го является ООП языком в терминах Алана Кея — папы ООП, собственно. Который, кстати, считает C++ плохим примером ООП: "I made up the term 'object-oriented', and I can tell you I didn't have C++ in mind". Но другое дело, что идеи Алана и современное представление могут не очень совпадать.

Ответить
Развернуть ветку
Max Yankov

Сообщения это исходный, smalltalk-подобный ООП, который сейчас везде практически забыт.

Ответить
Развернуть ветку
Bucky Bucks

Везде забыт это где интересно? Практически все ОС на этом и работают. Даже самые инновационные как Fuchsia

Ответить
Развернуть ветку
Павел Vidasp

Микросервисы — это штука для детей богатых родителей
Не в бровь, а в глаз =)

Ответить
Развернуть ветку
Yury S

Это не для филологов, кажется, а для дебилов. 

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

Хотя если смысл в том, чтобы подгорело и у тех и у других, то да, вполне уместно   

Ответить
Развернуть ветку
Вадим Чиняев

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

Ответить
Развернуть ветку
Artem Petrenkov

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

Ответить
Развернуть ветку
Жанна Грачева

Классная идея!  

Ответить
Развернуть ветку
Bucky Bucks

Лучшее объяснение для гуманитария - вам это все равно не понять. (Гуманитарии обычно на это отвечают - «понятно»)

Ответить
Развернуть ветку
Evrone
Автор

Мы уточнили у гуманитариев — им немного обидно. Самую малость)

Ответить
Развернуть ветку
Topre

Так или иначе приходится часто останавливаться во время разговора, и спрашивать "А ты знаешь что это вообще?". Но как правило мои объяснения не настолько отстраненные как в статье, они каждый раз адаптируются к человеку, в зависимости от его уровня знаний, интересов. 
Скорее даже так - я делю процесс на мелкие итерации - а уже эти "кусочки" рассказываю в виде примеров. Потому что объяснить принцип работы и устройство, допустим, ДВС нельзя через "это как лошадь, где бензин - это яблоки, педаль газа - кнут, а тормоз - "тпруу!".

Ответить
Развернуть ветку
Evrone
Автор

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

Кстати, с лошадью у вас получилось весьма неплохо) Представляете очереди на яблочные заправки?)

Ответить
Развернуть ветку
Topre

"Вам какие? Антоновка или гренни смит?"

P.s. А потом едешь и думаешь - вроде влезает 10кг, а скормили 12.

Ответить
Развернуть ветку
Dmitry Myachin
Легаси — это ВАЗ 2106 90-го года выпуска. Вы на ней ездите, но часть ресурсов неизбежно уходит на обслуживание.

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

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

Трогать легаси чаще не нужно, чем нужно.

Ответить
Развернуть ветку
Evrone
Автор

Ну, с другой стороны, мы видели фантастические и вылизанные «шестёрки». С такими хромированными колпаками...

Тут согласны с вами — негативный оттенок лишний. Но он есть. Возможно это всё мемы и холивары. Или общая тенденция «бросать всё с парохода современности» как только появляется новая модная технология.

Ответить
Развернуть ветку
Dmitriy
Микросервисная архитектура — это как будто все части тела существуют независимо друг от друга и могут изменяться. Нужно дотянуться до пульта? Удлиняется только правая рука. В монолите бы равномерно удлинилось всё тело.

позабавило )) довольно точное описание масштабирования

Ответить
Развернуть ветку
Dmitry Myachin

В описании фреймворка стыдливо избегают того, что ОЧЕНЬ часто этот фреймворк тащат ради какой-то мелочи, что раздувает проект и добавляет уязвимостей. И со временем это всё превращается в легаси (в уже плохом смысле слова) и мы получаем монструозное тормозное говно, напичканное уязвимостями. И любая попытка его обновить ломает все зависимости и делает его вообще неработоспособным.

Ответить
Развернуть ветку
Dmitry Myachin

А слава КПСС^W^WDevOps — это вообще не человек

Ответить
Развернуть ветку
Tikki 2 акк.

Название хорошее, а главное актуальное!

Ответить
Развернуть ветку
Читать все 27 комментариев
null