Меньше – значит больше

А у вас бывало такое: решаешь задачу о каких-нибудь друзьях вк онлайн. Решил. Потом думаешь «блин, чёт не хочется вводить пароль, давай сделаю авторизацию по токену». Потом решаешь добавить открытие веб-браузера с окном авторизации, чтобы токен не вводить. Потом понимаешь, что раз всё равно вытаскиваешь инфу о друзьях, то не построить социальных граф – грех. Дальше подрубаешь свой аккаунт Фейсбука. Матчишь учётные записи. Потом приходит очередь анализа пользовательского контента. «О, можно посчитать настроение Васи по его постам!». Пип инсталл, импорт, готово.

В итоге получается огромный монстр: несколько файлов, около тысячи строк кода, средненькая структура, кучка неявных багов, несколько ненужных зависимостей. А надо было всего-то вывести друзей вк онлайн!

Может показаться, что всё нормально: хочу учиться программировать – учусь программировать. Разве не нужно, мол, практиковаться и использовать новые средства? Чтобы потом спокойно их использовать?

Всё не так. Ты мог заметить, что в работе программиста есть куча всякого, кроме умения программировать. Решать конкретную задачу вместо постройки звездолета, как-то связанного с задачей – один из ниндзя-навыков.

Работает это так: поставил задачу, выполнил, поставил другую, выполнил её, повторять несколько десятков лет. Нужен скрипт для проверки друзей онлайн? Вот, готово, смотрите (бам! отправил на проверку). Ставишь следующую задачу: провести аналитику данных друзей. Делаешь, готово. Можно похвастаться друзьям-гикам, например.

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

А ещё есть другая тема: баги. В статье об этом написано, что в среднем на тысячу строк кода приходится 15-50 багов. Больше кода – больше багов. Меньше кода – меньше багов. Меньше багов – лучше. Получается, что меньше кода – лучше.

Меньше значит больше