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