Ожидание vs реальность: какие взгляды я поменял за 10 лет в разработке

Ожидание vs реальность: какие взгляды я поменял за 10 лет в разработке
Старший инженер-программист в Amazon Крис Киль (Chris Kiehl), автор книги по дата-ориентированному программированию на Java поделился заметкой о том, как изменились его взгляды за 10 лет пребывания в индустрии разработки ПО.
А мы решили проверить, насколько мнения разных разработчиков по очевидным и не очень вопросам совпадают или, наоборот, разнятся. Приглашаем обсудить в комментариях.
О чём поменял своё мнение
Вот что я верю сейчас, но о чём раньше бы поспорил:
-
Простота — не данность. Она требует постоянной работы.
-
Нечем гордиться, если вы оперируете и мыслите сложными конструкциями.
-
Типизация в языках программирования нужна в командах с разным уровнем опыта.
-
Java — великий язык, потому что скучный.
-
Среды REPL (интерактивные среды исполнения) бесполезны в проектировании, но как инструмент для исследований они хороши.
-
Львиную долю программирования нужно выполнять задолго до написания первой строчки кода.
-
Frontend-разработка — это кафкианский кошмар, который я больше не выношу.
-
Привлекательность — это не метрика.
-
Эффективное управление бесценно. За свою карьеру я многое повидал и пережил прежде, чем сам узнал, что такое хороший менеджмент.
-
DynamoDB — хорошая база данных, только если ваша рабочая нагрузка не выходит за рамки её возможностей.
-
Объекты хороши исключительно для тех целей, для которых они предназначены. Слепая преданность функциональному подходу — глупость.
О чём сформировал мнение
-
Разработка — это про коммуникацию.
-
Никогда не используйте полные монады в Java.
-
Планировщик запросов — это злая госпожа.
-
Если что-то кажется мне простым — это точно что-то, чего я до конца не понимаю.
-
Молодым разработчикам нужно давать пространство для ошибок и экспериментов.
-
Нужно активно инвестировать в развитие своих софт-скиллов. Это быстро окупается.
-
В разработке приложений мало места для абстракций. Просто пишите нужный код.
-
А вот разработка библиотек, наоборот, основана на абстракциях. Потратьте время на поиски алгебраических структур.
-
ORM — это дьявол во всех языках и реализациях. Используйте SQL.
-
Главная беда функционального программирования — это функциональные программисты.
-
В долгосрочной перспективе вы глубоко пожалеете о выборе бессерверных функций.
-
Типы — это просто утверждения о мире, в котором работает ваш код.
-
Распределённые блокировки по-прежнему и по какой-то непонятной причине остаются очень сложными.
-
Навыки формального моделирования и анализа — это база.
-
Изоляция — важнейшее свойство хорошего набора интеграционных тестов.
-
Худшее, что можно выбрать для разработки приложений общего назначения — это DynamoDB.
-
Большинству плевать на ремесло программиста. Берегите тех, кому не всё равно. С остальным смиритесь.
-
Будущее за языками с постепенной зависимой типизацией.
-
Вы буквально не можете добавлять к тестовому коду слишком много комментариев (готов поспорить с тем, кто сможет).
О чём мнение не поменялось
-
Те, кто заморачивается над стилем кода, правилами линтинга и прочими мелочами — извращенцы. Занимайтесь более важными вещами.
-
Покрытие кода никак не связано с качеством кода. А зачастую и вовсе обратно пропорционально ему.
-
Монолиты остаются довольно няшными.
-
Крайне сложно превзойти десятилетия исследований и доработок реляционных баз данных.
-
Использование микросервисов нужно обосновывать, а то их всё чаще воспринимают как решение по умолчанию.
-
Большинство проектов не нужно масштабировать. Иллюзия этой необходимости только вредит.
-
Если завтра исчезнут 93%, а может быть, даже 95,2% проджектов — ничего не изменится, а то и повысится эффективность работы.
А вы согласны с автором или в каких-то моментах готовы поспорить, потому что ваш опыт говорит о другом? Менялось ли ваше отношение к разработке в процессе работы? Расскажите.
👉 @seniorFront