Ресурсы для изучения Scala Jun 09, 2019

Лет 8 назад, когда я был еще студентом, по совету одного из своих знакомых я обратил внимание на язык программирования Scala. В то время релиз Java 8 еще не состоялся, и Oracle ругали за стагнацию. Groovy из-за своей динамической природы и подходов нравился далеко не всем, и Scala стал некой надеждой для JVM сообщества. И, конечно же, маркетинг вокруг поддержки императивного и функционального подходов в одном языке программирования помогал эту надежду поддерживать.

Однако, как выяснилось позже, порог вхождения в Scala оказался выше, чем многие предполагали, и доступные обучающие материалы не работали должным образом, а иногда и окончательно отталкивали потенциальных пользователей, в том числе начинающих разработчиков. Насколько я помню, единственной книгой на русском языке на тот момент была «Scala для нетерпеливых» за авторством Кея Хорстманна.

Ее я и приобрел в спешном порядке… и в таком же порядке забросил после прочтения первых пары глав. Как не странно, этому поспособствовал Ruby и его мантра о счастливом разработчике. И вот после нескольких лет разработки на Ruby и других языках я снова решил вернуться к изучению Scala. Произошло это благодаря интересу к функциональному программированию, распределенным системам и Big Data.

Ресурсов для изучения в наши дни значительно больше, сообщество вокруг языка продолжает развиваться несмотря на все его проблемы и внутренние споры, и Scala 3 уже маячит на горизонте. Да и я, необходимо заметить, стал больше читать на английском.

Потратив некоторое количество времени, я составил для себя следующий список материалов, по которому планирую пробежаться в ближайшие месяцы.

...
Slack в распределенной команде Jun 08, 2018

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

Slack для нас – основной инструмент коммуникации. Он позволяет команде общаться в течение дня используя правильные каналы для организации диалогов. В Slack мы синхронизируем рабочий процесс, договариваемся о созвонах, или просто общаемся на отвлеченные темы. При этом, мы условились, что Slack не является:

  • объектом постоянного мониторинга (каждый час, днем и ночью)
  • местом для принятия важных решений
  • местом для хранения важных ссылок, документации и обратной связи сотрудников

Как и любой чат, Slack нельзя назвать асинхронным, что усложняет наше виденье распределенной команды. Основные причины этому – частые прерывания и многозадачность. Довольно быстро можно заметить, что, работая удаленно и используя чат по назначению, коллеги ожидают от вас почти немедленного ответа. При этом люди не учитывают и не знают заняты ли вы сейчас, общаетесь ли вы с другим членом команды, или же сделали небольшой перерыв. Подобное общение может вызывать стресс и мало отличаться от офисной трясины митингов, и снова возникает ощущение, что планируемая работа не завершена к концу дня.

Однако, при правильном подходе, которому придерживается вся команда и руководство, Slack тоже может быть асинхронным. Ниже я привожу несколько практик, которые направлены на создание такого процесса.

...