IntelliJ IDEA — замечательная IDE. Я использую ее для программирования на Scala и Erlang на протяжении, наверное, последних пяти месяцев и теперь просто не представляю, как без нее жить. Однако довольно скоро я обнаружил, что при программировании на Scala в какой-то момент IntelliJ IDEA начинает тупить и выйти из этого состояния ей помогает только перезапуск. В итоге мне ежедневно приходилось один-два раза перезапускать IDE. Не то, чтобы с этим нельзя было жить, но как-то печально, согласитесь. К счастью, решить эту проблему оказалось несложно.

Данная статья кратко представляет вдумчивому читателю планы по проектированию и разработке прототипа Системы поддержки принятия решений при диагностике и лечении судорожного синдрома (СППР ДЛСС). Мы рассмотрим постановку задачи, предназначение Системы, её задачи и очень кратко тот набор методов, которые будут использоваться в работе Системы.

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

IntelliJ IDEA позиционируется, как IDE для программирования на множестве различных языков, не только Java. В частности, есть совершенно замечательный плагин для Erlang, которым я с огромным удовольствием пользуюсь уже около месяца. Еще я слышал, что есть плагин для Haskell, но пока что его не пробовал. Так вот, если с Erlang, к примеру, все довольно просто — открываешь проект и фигачишь, то со Scala есть пара нюансов, о которых мне и хотелось бы поведать.

Как ранее уже сообщалось, я начал активно изучать возможности IntelliJ IDEA. В частности, я стараюсь запомнить наиболее востребованные хоткеи, чтобы выполнять большую часть работы, не отрывая руки от клавиатуры, как это происходит при программировании в Vim. По моим наблюдениям, это реально экономит кучу времени. Я сделал для себя шпаргалку по хоткеям IDEA, которую вы найдете под катом. Полагаю, она также пригодится кому-то из посетителей данного блога.

Время от времени я заглядываю на Toster.ru и иногда даже отвечаю там на вопросы. Чаще всего люди спрашивают две вещи — как стать программистом и как правильно спроектировать схему базы данных. Мне лично кажется очень странным, что так много людей задают последний вопрос. Мне почему-то всегда казалось, что это такая простая вещь, которую умеют вообще все. Но, раз так много людей интересуются, здесь я постараюсь дать достаточно развернутый и в то же время краткий ответ.

Чем больше метрик вы пишите, тем лучше. Метрики помогают найти в программе места, нуждающиеся в оптимизации. По метрикам вы можете понять, что именно послужило причиной сбоя в ночь с субботы на воскресенье. Если в очередном билде имеется баг, который не удалось найти в тестовом окружении, вы сразу же узнаете об этом во время выкатки. Одним из наиболее распространенных решений для сбора метрик является Graphite.

Если вкратце, микросервисная архитектура (Micro Service Architecture, MSA), это когда ваше приложение представляет собой много-много небольших (буквально несколько сотен строк кода) сервисов, взаимодействующих между собой путем обмена сообщениями. Это могут быть сообщения Erlang‘а, Cloud Haskell‘я, Akka, или же REST API, Protobuf, Thrift, MessagePack и так далее. Давайте же попытаемся понять, в каких задачах может быть целесообразно использовать такой подход, чем он хорош, и, конечно же, чем он плох.

В продолжение заметки Я тупой и криворукий джуниор. Еще одна черта моего характера, которой я горжусь, это лень. Казалось бы, всем известно, что лень — это плохо. Как вообще можно ею гордиться? Не волнуйтесь, господа, сейчас я вам все объясню!

На днях кое-кто спросил меня, дескать, зачем вообще нужен этот REST. Зачем, например, заморачиваться с методом DELETE или там заголовком Accept? Не проще ли использовать метод GET и передавать все в параметрах, например, delete=true или format=json? Вбил в браузере, и работает! А вот этот ваш DELETE так просто через браузер не пошлешь. На что был дан примерно следующий ответ.