Статьи

6 вещей, которые вы должны запомнить после GeeCON 2015

1200 разработчиков, 75 докладчиков, 80 выступлений и 6 важных вещей, которые нужно запомнить

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

1. Микросервисы теперь очень интересны

В переговорах этого года не было более популярной темы, чем микросервисы. И, конечно, мы могли слышать, что «Микросервисы — это путь», «Микросервисы помогут вам построить масштабируемые системы», «Микросервисы помогут вам в этом, Микросервисы помогут вам в этом».

Люди влюблены в этот, не очень новый, но в настоящее время очень горячий подход. Как разработчик, работающий в среде микросервисов в течение почти года, я вижу много недостатков, потенциальных проблем и проблем при применении этого подхода. Особенно, когда идея вводится без тщательного планирования и проверки, готова ли компания (инфраструктура, кодовая база и особенно люди) к таким фундаментальным изменениям. Вот почему я довольно скептически отношусь к этому, часто бессмысленному, движению «давайте построим все, используя микросервисы».

2. Архитектура микросервисов, безусловно, будет чрезмерно и / или неправильно использована в ближайшем будущем

Через 2-3 года я ожидаю некоторых выступлений во время конференций с такими названиями, как «Переход с микросервисов на более монолитную архитектуру», «Микросервисы — что пошло не так» или «Извлечение вашего проекта из ада микросервисов». Люди склонны применять то, что слышали во время конференций, без учета собственного контекста. По моему мнению, большинство наших проектов, вероятно, никогда не дойдут до того момента, когда вам придется принять решение о разделении системы на несколько микросервисов. Monolith — это простой подход, которого будет достаточно для небольших и средних команд и проектов / продуктов.

Но худшее решение, которое могут принять люди, — это начать новый проект с использованием микросервисов, особенно когда ваша команда является новичком в этом подходе, домен является новым, а ограниченные контексты очень неопределенно определены. Это очень быстрый способ привести к провалу проекта. К сожалению, разработчики склонны забывать, что большинство их проектов довольно стандартны, и стандартные проблемы лучше всего решать стандартными подходами.

3. PostgreSQL может иметь все функции, которые вам нужны при рассмотрении MongoDB

Некоторое время назад многие люди склонны злоупотреблять MongoDB, потому что он обещал решить все наши проблемы с сохранением данных и масштабированием серверов БД. Конечно, во многих случаях это не заканчивалось слишком хорошо. Кроме того, MongoDB недавно получил плохую прессу (примеры:  Stale Reads в MongoDB  или  Позвони мне, может быть ). Но похоже, что потенциальное решение пришло с совершенно другого направления.

В одном из последних выпусков PostgreSQL (v. 9.4) появилась поддержка JSON Binary (подробнее  здесь ), поэтому действительно стоит проверить, действительно ли вам нужно что-то из MongoDB, которое не предусмотрено в проверенных, хорошо известных традиционных СУБД, таких как PostgreSQL ,

4. Это все о людях

Здесь, в Польше, проходит много ИТ-мероприятий, но GeeCON выделяется тем, что действительно заботится о том, чтобы пообщаться, завести новых друзей и познакомиться со старыми. Мне всегда нравились эти обсуждения на темы IT и не-IT за стаканом холодного пива. И этот год ничем не отличался. Общение с другими разработчиками помогает решить, какую технологию стоит попробовать, а какую следует избегать любой ценой. Это также помогает фильтровать «маркетинговую ерунду» при выборе нового места работы. Некоторые компании позиционируют себя как прекрасное место, но довольно часто общение с некоторыми нынешними или бывшими сотрудниками может существенно изменить ваше мнение. Особенно после нескольких бутылок пива, когда люди более разговорчивы и честны 🙂

5. Удаленная работа почти здесь

Вы можете назвать меня предвзятым, но несколько лет назад только  SoftwareMill  предлагал постоянную удаленную работу для разработчиков Java. Теперь есть некоторые другие варианты, все еще не слишком много, все еще не на 100% удаленные, все еще не в компании, которая была создана и работает с удаленностью, как SoftwareMill, но изменения видны. Как сказал Скотт Беркун во время своего заключительного выступления: «все, что вы делаете перед экраном, может быть удаленно куполообразным», и мир будет медленно двигаться в этом направлении.

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

6. Ты не можешь знать все

Три или четыре года назад, если вы знали Java Persistence API, одну интерфейсную среду (например, Spring MVC, Apache Wicket и т. Д.) И внедрение зависимостей (Spring или CDI), вы могли бы считать себя довольно хорошим разработчиком.

В настоящее время все намного сложнее: наблюдается огромный рост популярности JavaScript (не говоря уже о CoffeeScript или TypeScript), AngularJS и всей экосистемы JS с постоянно растущим числом инструментов сборки, библиотек, каркасов или микро-каркасов. У нас есть DevOps (Ansible, Puppet и т. Д.), Мониторинг и агрегация логов (logstash, ElasticSearch, Kibana), множество языков JVM в одном проекте (чаще всего Java + тестирование с помощью Spock и Groovy), растущая экосистема Scala, реактивные приложения, функциональное программирование и так далее, и так далее…

Мы живем в трудные времена для любого разработчика, который хочет быть в курсе всего этого, что происходит в области ИТ и программирования. Вот почему очень важно осознанно выбирать только несколько областей, которым нужно регулярно следовать, и тратить большую часть своего времени там. Другие вещи могут подождать, пока это не понадобится,  ленивый вал  был изобретен не без причины 🙂

lazy val mySkillsInAreaX = learnSkillsInAreaX()

Ваше свободное время ограничено (если вы не безжизненный человек без семьи, друзей или даже домашнего животного), поэтому вы должны тратить его с осторожностью и с каким-то долгосрочным планом.