Сокращенный словарь программиста
Предисловие
Отраслевые эксперты здесь, на Medium и в других местах, любят использовать причудливо звучащие — я имею в виду технические — термины, чтобы преувеличить важность своих статей и заставить вас думать, что то, что они говорят, более верно. Если вы будете следовать определениям этих терминов из учебников, вы, вероятно, купитесь на неправильную идею и проведете большую часть своей карьеры, работая усерднее, а не умнее. Этот сокращенный словарь программиста дает реальные переводы этих терминов, чтобы вы могли получить более точную интерпретацию популярных статей, выступлений и видео.
Определения, данные в этом словаре, могут отличаться от определений в Википедии, но будьте уверены, что они являются авторитетным представлением реального использования терминов… по большей части.
Определения
решение — когда я запускаю его на своем компьютере, он в основном не ломается
тестирование — когда компьютер запускает его на моем компьютере, он в основном не ломается
TDD (Tear-Driven Development или Test-Driven Development) — когда компьютер запускает его на моем компьютере, он ломается, поэтому я знаю, что еще не решил решение.
BDD (разработка, основанная на поведении) — мне не нравилось то, что другие называли TDD, поэтому я придумал название получше.
test-first — мне не нравилось то, что другие называли TDD, поэтому я придумал для них лучшее название
SOLID (снобистский объектно-ориентированный лит и разъяренный разработчик) — я настолько умнее тебя, что ты даже не настоящий разработчик
статическая типизация — я записываю, что это такое, чтобы мне не приходилось запоминать
инкапсуляция — я склеил две вещи вместе, чтобы они были как одна вещь и их нельзя было разобрать
современный - Большинство людей все еще используют его, но не мой дедушка
производительность — когда я запускаю его на своей машине, он не кажется медленным
эффективная работа с памятью — когда я запускаю его на своем компьютере, я не получаю ошибок памяти.
ресурсоемкий — медленный и/или не хватает памяти
планирование — мы садимся и назначаем дату, чтобы вернуться к работе
оценка — я оцениваю объем работы и делаю дикие предположения
шаблон проектирования - это работало для меня раньше
архитектура — это работало для меня до XXL
алгоритм — я заставил его работать эффективнее
структура данных — я упростил использование данных
соглашение об именах — я называю вещи определенным образом, и все остальные тоже должны
руководство по стилю — я думаю, это выглядит красиво, поэтому все должны кодировать одинаково
стандарт кодирования — я кодирую определенным образом, и все остальные должны делать это таким же образом
linter — этот небольшой инструмент и плагин IDE, который напоминает мне о каждой маленькой ошибке, которую я совершаю, потому что это намного проще, чем научиться делать это правильно.
лучшая практика — я так делаю, и я думаю, что каждый должен
idempotent — я могу вызывать его несколько раз, и он не сломался… пока
testable — я могу написать для него тесты
модульный — я разделяю это на несколько файлов и добавляю импорт и экспорт
наследование — я разделил эту штуку на более мелкие части, чтобы собрать их вместе с помощью суперклея
композиция — я разделил эту вещь на более мелкие части, чтобы потом собрать их вместе с помощью липкой ленты
многоразовый — я скопировал/вставил это куда-то, и оно все еще работало, поэтому я дал ему имя
абстракция — я скопировал/вставил это куда-то, и оно все еще работало, поэтому я дал ему причудливое имя и добавил несколько ручек, чтобы оно выглядело круто.
framework — я скопировал/вставил это куда-то, и оно все еще работало, поэтому я сделал для него пакет, добавил ручки и кнопки, написал документацию и выступил с докладом на модном мероприятии.
читабельно — я знаком с тем, как это выглядит, поэтому все должны писать так
масштабируемость — я думаю, что это могло бы работать и для гораздо более крупных задач.
ремонтопригодный — он работает до тех пор, пока его никто не трогает, так что не трогайте его
простой — помещается в одну строку
легко — это способ работы, который, по словам суперзвездного разработчика Джо, был легким, так что спросите его
старший - я еще не на пенсии
более высокий порядок — это стало слишком сложным, поэтому я разделил его примерно пополам.
кеширование — я сохранил результат, поэтому мне не нужно повторять это несколько раз
aync — это когда моя первая строка идет после второй
синхронизация — нормальная
цикл событий — я старший разработчик, потому что я знаю цикл событий
рекурсия — это как цикл, но функциональный
веб-приложение — это веб-страница, но я сделал ее с помощью JavaScript
прогрессивное веб-приложение — это как причудливая закладка со значком в меню «Пуск».
SSR (рендеринг на стороне сервера) — я заставил сервер работать как браузер, поэтому я могу использовать React на сервере, потому что я не знаю PHP, Python, NodeJS, Java, Go, C#…
CDN (сеть доставки контента) — я написал слишком много кода, и его загрузка заняла целую вечность, поэтому я поставил сервер рядом с пользователем.
tooling — в реальных приложениях есть инструменты, а в игрушечных — нет.
scrum — в реальных компаниях это есть, а в игрушечных — нет
компонент — я знаю, что создавать целые страницы плохо для реальных приложений, поэтому я разделил их на более мелкие части.
непрерывная интеграция — я могу запускать тесты в GitLab, чтобы мои товарищи по команде могли одобрить мой MR
непрерывная доставка — я могу развертывать свои приложения из GitLab, поэтому мне не нужно использовать для этого свой компьютер
запрос на слияние — я показываю свои изменения своим товарищам по команде, чтобы я мог сделать перерыв на кофе, пока я жду, пока они посмотрят на это
оптимизация — ставлю 80+ в Lighthouse
минимизация — я не знаю, как заставить это работать с меньшим количеством кода, поэтому я сокращаю все ключевые слова до одной буквы и сворачиваю все пробелы, надеясь, что браузер не задохнется.
ваниль — я думаю, это какая-то инопланетная технология, которая не работает на Земле.
разделение забот - я никогда не беспокоюсь, я просто делаю свою работу и иду домой
принцип единой ответственности — все помещается на один экран
Правило наименьшей мощности — оно не работает без мощности, поэтому я добавляю по крайней мере много мощности
ПОЦЕЛУЙ (будь проще, глупый) — я умный, поэтому мне это не нужно, это только для глупых людей
СУХОЙ (не повторяйся) — это святой принцип, тот самый, который отличает настоящих мужчин от обычных разработчиков, если у тебя повторяющиеся строчки кода, ты тупой и уродливый!
MVP (минимально жизнеспособный продукт) — Продукт
крайний срок — период пикового стресса, не путать с датой завершения проекта.
спринт — я останавливаюсь через две недели, потому что Джо, суперзвездный разработчик, сказал что-то об идеальном прекращении через две недели.
agile — я могу начать программировать до того, как у меня будет план, черт возьми!
class — это плохо, потому что это шаблон, но это хорошо для корпоративных приложений
ООП (объектно-ориентированное программирование) — именно так вы создаете серьезные приложения.
FP (функциональное программирование) — я могу писать целые приложения с помощью всего одной строчки.
мажорный релиз — я внес большие изменения, чем в минорном релизе
минорный релиз — я внес меньшие изменения, чем в мажорном релизе
зависимость — необходимый пакет для создания реальных приложений.
Jira : я не могу выполнять настоящую работу, если не регистрируюсь в Jira… но я все равно ненавижу ее
рефакторинг — мне это не нравится, поэтому я делаю это красивее
доступность — это какой-то закон, который говорит, что вам нужен крупный шрифт, чтобы слепые люди могли лучше видеть ваш сайт, и вам нужно использовать атрибуты ARIA.
отзывчивый — работает на моем iPhone и MacBook Pro
семантическая разметка — я знаю, <header>идет вверху и <footer>внизу
служебный класс — я могу кодировать CSS в своем HTML-файле, потому что мои пользователи не нуждаются в кэшировании, и я хорошо разбираюсь в редактировании с несколькими курсорами, и это единственный случай, когда я могу законно нарушить DRY, хотя это святой принцип.
Приложение
Если вы действительно хотите узнать, что означают эти термины, попробуйте Википедию, MDN и подобные места.
Приложение Б
Если говорить более серьезно, позвольте мне сказать вам кое-что, что на самом деле является правдой. Как разработчик-самоучка, а тем более нуб, я имел определенное боязливое уважение к людям, которые использовали эти термины. За свою карьеру я узнал, что 9,5 из 10 человек, которые их используют, не знают, что на самом деле означают эти термины, а сегодня их используют даже нубы. Так что не относитесь к ним слишком серьезно. Отнеситесь к ним так же серьезно, как к этому словарю. Вы можете программировать, не зная истинного значения более чем пяти терминов на этой странице, и делать свою работу лучше, чем многие люди, которые небрежно разбрасывают их.

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































