Хабрахабр

[Перевод] Не в момент выполнения, а в момент проектирования

image

Давным-давно мудрый старый разработчик дал мне совет, который до недавнего времени я не очень ценил.

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

(Хорошо, это был я.) Я решил, что вместо хардкода массива всех букв будет проще написать цикл for, который проходит от 65 до 90, а затем генерировал буквы по полученному коду символа. Итак, появился молодой преуспевающий программист.

В варианте JavaScript это будет выглядеть примерно так:

for (let i = 65; i <= 90; i++) { letters.push(String.fromCharCode(i))
}

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

EDISON Software - web-development
Статья переведена при поддержке компании EDISON Software, которая разрабатывает систему диагностики хранилища документов Vivaldi, а также инвестирует в стартапы.

«Как вы можете ожидать того, что я буду печатать каждую букву, как какой-то ребенок. Я был в ужасе. У меня есть алгоритмы и структуры данных, и математический сопроцессор, ради всего святого!» Я профессиональный разработчик программного обеспечения!

«Просто используйте этот функционал во время разработки, чтобы сгенерировать массив, а затем скопируйте и вставьте его в рабочий код». «Хорошо», сказал он.

А затем он сказал это:

«Избегайте во время выполнения программ то, что вы можете делать во время разработки»

Теперь давайте будем честными. Мой маленький цикл for не собирался замедлять приложение. И современные машины будут так быстро разбираться в этом коде, что никто даже не заметит. Но, как правило, это мудрый совет.

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

п., столкнутся с серьезной проблемой со стороны таких генераторов статических сайтов, как Gatsby, Hugo или Jekyll, в сочетании с плавным процессом сборки, headless CMS, дешевыми CDN и быстрым непрерывным процессом интеграции. Вот почему я думаю, что в ближайшие годы такие известные игроки, как WordPress, Drupal и т.

И результаты весьма впечатляющие. Этот паттерн был назван JAMstack, что означает «JavaScript, API и стек разметки».

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

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

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

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

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

  • Я поделился своими собственными советами и извлеченными уроками в недавнем интервью на подкасте Developer On Fire, которое вы можете прослушать здесь.
  • Вы можете познакомится с JAMstack на Jamstack.org
  • В блоге Netlify также есть хороший обзор генераторов статических сайтов.
  • А вот статья о конкретном стеке, который я недавно рассмотрел и рекомендовал, который использует комбинацию Gatsby, Contentful, Netlify и Algolia в качестве альтернативы традиционной CMS для сайта документации.
Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть