Что лично меня больше всего бесит в процессе написания кода - это тулинг и настройки окружения.
Нельзя просто взять и начать нормально работать. Сначала надо прочитать мануалы по настройке. И... обломаться, потому что с момента написания мануала сменилось 2 мажорные версии.
Почитать все релевантные ишью на гитхабе, пролистать stack overflow, откатиться к версиям, которые использовали на момент написания мануала.
Зафиксировать версии, чтоб случайно что-то не обновилось...
Через некоторое время все начнет тормозить. И опять по кругу - ишью на гитхабе, мануалы на medium, stack overflow...
Но если ты решил что-то поменять...
- "Обнови npm! Вышла новая мажорная версия! У тебя 6.14, а вышла 7.5". ЭЭЭ... А где были 7.1-7.4? Ну ок... Слетают все сохраненные токены к приватным репам. Как ты их настраивал - хз. Лезешь в доки, разбираешься.
- "request перестали поддерживать, замени на другое". Ладно, что там у фронтов? axios? Что может пойти не так? Это же просто http клиент... 3 часа ищешь как установить лимит на request timeout. Знаете как? НИКАК! Ну т.е. в интернете есть пяток (!) рецептов, но ни один не работает...
- Пора поменять flow на ts. Да, знаю, это другое, но все-таки... Нужен аналог
$PropertyType Type, 'prop'
Похоже, что это
Pick Type, 'prop'
... Чет не так работает.... А потому что это вам не это! Аналог -
Type['prop']
Сцукоооооо....
- Так, что там с ts в качестве тестранера используют... Ага, убираем ava, берем jest... Хз, что там в джесте происходит, но тесты, которые отрабатывают за 20 секунд при запуске через ava, на jest я выключил через 5 минут, потому что мне надоело. ПЯТЬ МИНУТ!!! Если запускать тесты по одному - работает, но занимает в 3-4 раза больше времени...
Думаете так только в js? Ха! Java, python, haskell, c, c++ - я всякое пробовал. Везде ад. Где-то лучше, где-то хуже, но везде. На go плюс-минус ничего, но только если вы смогли настроить GOPATH и не забили на этом этапе :) Ну и если все нужные вам пакеты доступны на гитхабе и подходят под ту версию рантайма, которую вы используете...
"А давайте изобретем сборщик на java и будем им билдить плюсы!" Ну, бл, давайте... Помогло? Нет конечно! Но теперь у нас есть +1 сборщик, с которым нужно разбираться (bazel).
Я не понимаю, почему до сих пор нет отдельных вакансий на писателей конфигов для линтеров и вебпаков, нет публичных реп от известных компаний с настройками IDE (с зафиксированными версиями пакетов и тестами на это) и вот этого всего. Мало того, что человек, на которого компания тратит в лучшем случае 500k в месяц (да-да, налоги, офис, больничные...), большую часть времени не думает, а работает как наборщица текста (купите tabnine), ему еще приходится и этой хренью заниматься.
Все это убивает время и увеличивает энтропию. От этого выгорают зумеры! (хотя зумеры от всего выгорают...)
Однажды Резерфорд зашел поздно вечером в свою лабораторию и увидел там, несмотря на неурочный час, одного из своих подававших надежды сотрудников.
«Что вы делаете здесь так поздно?» — удивился ученый.
«Работаю», — ответил подававший надежды.
«Что же вы, в таком случае, делали днем?»
«Разумеется, работал».
«А утром? Неужели и утром вы тоже работали?»
«И утром тоже».
«Позвольте, — неподдельно изумился Резерфорд, — а когда же вы думаете?» — и перестал возлагать на этого сотрудника особые надежды.