Объясните дураку

Nov 18, 2014 18:30

У программистов много действительно сложных проблем: закон Мура остановился, распределенные системы разваливаются, память утекает, веб-интерфейсы не дотягивают до нативных, а тут еще и мобильные версии просят.

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

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

Я слушаю подкасты и аудиокниги на разных устройствах - OS X, iPhone, Windows Phone. Везде одна и та же проблема: нет-нет да и потеряет позицию, докуда я дослушал. Я не понимаю: берем какой-то идентификатор файла (да хоть имя до него), раз в 15 секунд пишем на диск одно единственное число: прогресс для этого файла. Все, никакой логики больше не надо, любые улучшения этого процесса только хуже сделают. Даже чистить при удалении не надо, пусть эти цифры копятся бесконечно. Очень сложный алгоритм, да? В плеере на 9000% процентов больше разного другого кода, но почему-то кусок, который тривиальнейший, делается тремя строками и больше всего раздражает, почему-то именно его все умудряются запороть.

Я давно переживаю, что если в программах столько косяков, которые видно невооруженным взглядом, то сколько же их там, где ничего не видно. Скажем, если UI это 10% кода, то в бэкенде в 9 раз больше багов, которые никакой QA при протыкивании никогда не отловит, потому что исполняющуюся программу нельзя потрогать, осязать, вообще нельзя непосредственно ощутить. Вот это вот повсеместное «как же оно вообще работало?», оно от того, что раньше в это место не было возможности посмотреть.

Вывод в том, что надо как-то более осязаемыми делать программирование и программы. Метрики это в принципе хорошо. Логи со всеми входящими и исходящими запросами тоже неплохо. Flame graphs, call stacks, heap histogramms - это все делает невидимые, заметаемые под ковер вещи очевидными невооруженному взгляду. Достаточно распечатать список SQL запросов, которые выполняются при построении веб-страницы, и сразу хочется взяться то ли за бутылку, то ли за нож. Можно долго делать и гордиться сложной системой, но если посмотреть, распечатать, что же она делает ради простейших вещей, через какие огороды петляет, как правило весь ореол «мощности» рушится. Почти никакие программы не выдерживают простейшей проверки на здравый смысл, простого взгляда на то, что в них происходит. Если, конечно, такой взгляд можно построить. От этого можно спастись разве что сразу проектируя под здравый смысл, с постоянным осязанием, разглядыванием не только того, что мы делали, но и того, что у нас получилось.

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

я что-то пропустил, девелопмент, инструментарий, культура, печально это все, формула успеха

Previous post Next post
Up