Оставаться в потоке

(… или «Почему я стал одержим однофайловым программированием, и вы тоже должны это сделать»)
Большая ложь, которую нам твердят в школе и в начале карьеры, состоит в том, что быть «хорошим» в программировании означает решать все более и более сложные задачи более элегантным способом. Правда гораздо более обыденна: умение программировать означает эффективное решение большого набора в основном тривиальных задач, быстро и чисто. Однако правда заключается в том, насколько ценным для этого является «состояние потока». Возможность оставаться погруженным в работу позволяет быстро переключаться между доменами, отслеживать поток состояний от пользователя к бизнес-логике, хранилищу данных и обратно.
Многие «хорошие» методы программирования добавляют сложности:
- Отдельные модели, представления и контроллеры.
- Храните все свои тесты в параллельных файлах и папках.
- Не встраивайте CSS — держите его в иерархии отдельных файлов CSS, ссылаясь на класс и идентификатор.
- Даже не ПИШИТЕ CSS — используйте препроцессор и сгенерируйте его из какого-нибудь промежуточного языка.
- Используйте вложенные пространства имен пакетов и модулей, каждое со своими стандартными соглашениями для именования thin_gs.
Во многом так же, как шкалы опроса строятся в зависимости от способности среднего человека различать (обычно 5-7 вариантов, никогда не более 9), фреймворки, которые полагаются на меньшее количество файлов, меньшего количества типов и организованы в максимально плоской иерархии, насколько это возможно. новым разработчикам проще освоиться, и ВСЕМ легче оставаться в состоянии потока при работе.
«Хорошие» программисты любят порочить PHP и javascript за то, что они «плохие» языки; тем не менее, оба они отличаются поддержкой простых шаблонов «Single-file». Javascript делает это через JSX; PHP просто позволяет каждому php-скрипту также содержать произвольный HTML. Я решил воссоздать радость однофайловой разработки, но для Python. Мы надеемся, что это устранит очевидные пробелы между сообществами специалистов по данным Python «Notebook», сообществами разработчиков программного обеспечения «Boot Camp» и передовыми линиями разработки веб-приложений.
В следующих нескольких сообщениях в блоге я расскажу о многих «плохих» методах, которые я использовал для упрощения и рационализации своего опыта разработки. Более того, я объявлю о различных библиотеках с открытым исходным кодом, которые я обнаружил, расширил или разработал по ходу дела.