Автор оригинала: FreeCodeCamp Community Member.
Младший разработчик: Хорошо, теперь я научусь программировать в JavaScript! Где я должен начать?
«Старший» разработчик: Это очень легко, вам даже не нужно писать много кода! Просто перейдите в НПМ, установите Zebra и Koala Открытый источник Модули, и вы закончите!
Младший разработчик: Прохладный!
NPM: Привет маленький кузнечик Как я могу помочь?
Младший разработчик: Дайте мне модули зебры и коала.
NPM: Конечно, вот они есть.
Младший разработчик: Все связали. Теперь моя работа сделана!
* Однажды позже *
Младший разработчик: Теперь мне нужно добавить эту функцию. Где я должен начать?
«Старший» разработчик: Это очень легко, вам даже не нужно писать много кода! Просто отправляйтесь в репозиторий Zebra Github и попросите их реализовать!
Младший разработчик: Привет Zebra, мне нужно добавить эту новую функцию, вы бы вы мне поможете?
Зебра: Конечно, создайте запрос на тягу.
Младший разработчик: Вот.
* 2 дня спустя *
Зебра: Ваш запрос на тягу не хорош, вам нужно исправить несколько вещей.
Младший разработчик: Вот.
* 2 дня спустя *
Зебра: Теперь ваш запрос на тягу хорош, я объединился.
Младший разработчик: Спасибо. Теперь моя работа сделана!
* 3 часа спустя *
Младший разработчик: Теперь мне нужно исправить эту ошибку. Где я должен начать?
«Старший» разработчик: Это очень легко, вам даже не нужно писать много кода! Просто отправляйтесь в репозиторий GitHub Koala и сообщите об этом!
Младший разработчик: Привет коала, в вашем модуле есть ошибка.
* 2 дня спустя *
Младший разработчик: Привет коала, ты там?
* 1 неделя спустя *
Младший разработчик: Кто-нибудь поддерживает этот модуль?
* 1 неделя спустя *
Младший разработчик: Я буду вил и исправить это. Сделанный.
*6 месяцев спустя*
Младший разработчик: Теперь мне нужно добавить эту другую функцию. Давайте посмотрим, какой модуль мне нужно сначала изменить:
Младший разработчик: Err … Я думаю, что-то пошло действительно не так … JavaScript так сложно и сложно! Что мне теперь делать?
Реальный разработчик: Проблема не в JavaScript.
Внешняя зависимость имеет тенденцию быть слишком универсальным, и поэтому имеет много сложности для учета краевых случаев, которые вы, вероятно, не имеете.
Как принцип, вам нужно уменьшить вашу зависимость от внешнего кода как можно больше. Современные зависимости по времени несут стоимость изменения, если вы полагаетесь на них для Основная цель вашего проекта.
Оцените их критически.
Можно написать свой собственный код для вещей, которые общий модуль уже может сделать для вас, не надо изобретение колеса, Пока вы правильно разработаете. Который включает (но не ограничен) Нет побочных эффектов , Низкая связь , Высокая сплоченность , Правильный интерфейс , Достаточно допускания , Нет инструментов тестирования дерьма , код, который можно удалить , Нет «чрезмерной техники» , Нет копирования/вставки , Строгий , Маленький и Без ложных положительных испытаний Отказ
Если вы не разработаете это правильно, вы попадете в одном беспорядке, или даже хуже.
Если вы сантехник и утечки трубы, это ваша обязанность исправить это. Не кто-то еще.
Это все о применении программных принципов и Техника Отказ Это о том, как узнать, как программировать.
Не вините скальпель.
Младший разработчик: Хорошо, теперь я научусь программировать. Вы можете помочь мне?
Реальный разработчик: Да.
* 7 лет спустя *
Новый младший разработчик: Хорошо, теперь я научусь программировать на этом популярном языке! Где я должен начать?
Бывший младший разработчик: Я могу научить вас, но это не легкий.
Я прошел через это.
Садитесь.
Давайте поговорим.
Спасибо за прочтение. Если у вас есть некоторые отзывы, обратитесь к мне на Twitter , Facebook или Github Отказ
Хотите поболтать лично? Вы можете найти меня в Sydney Software Crathers Meetup Отказ