23 февраля 2014

Maven: Собираем артефакты по разному

Я начал работать с maven в  2007 и тогда он был в принципе большим новшеством для отрасли (в России я имею ввиду).

С тех пор можно сказать мы неразлучны.
С помощью maven я  собираю все не только тестовый код, но и утилитные проекты.

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

А когда разработка закончена и перетекает в фазу саппорта существующего решения - хочется как раз обратного - деплоить все одним куском и не думать про то скопировал ты нужные либы или нет.

В общем желания на разных этапах жизненного цикла строго противоположные, а натянуть на эти жедания один pom.xml трудновато.

Но годы опыта и эксперименты решили и эту проблему.

Дамы и господа, извольте любить и жаловать.

Что это такое ? Это универсальный pom.xml который позволяет работать с обеими стратегиями упаковки конечного артефакта.

В этом файле есть два профиля сборки - thin-package и one-package.
Давайте по порядку.

thin-package пакует код в отдельный jar-файл,а все зависимости складывает в папочку lib/.
Если вы приписали новый и достаточно изолированный кусочек фукнционала к вашему проекту, то можно собрать его под профилем thin-package (mvn -P thin-package) , а вот деплоить уже только основной jar и появившиеся новые библиотеки.



one-package пакует код в один общий артефакт (mvn -P one-package), сбрасывая все зависимости в одну кучу.
Слияние в один большой и монолитный артефакт происходит с помощью maven-assembly-plugin.
Делать это также можно и с помощью maven-shade-plugin, выбирайте сами. 

Удачных и разносторонних сборок Вам!

10 февраля 2014

Напочитать: Напосмотреть

Потихонечку разбираю завалы скопившегося видео на посмотреть.
Вам вывешиваю - только то что понравилось самому.

1. Илья Балахнин о том куда работает маркетинг и как оно на самом деле. Просто приятное выступление



2. Пока мы тут сидим в интернетах будущее наступает.
http://habrahabr.ru/company/nordavind/blog/211052


3. Google отрелизил :

  1. 16 версию Guava
  2. опубликовал code style guideline - если лень придумывать свое, то берите это, весьма демократично.
  3. начал выкладывать в Open Source часть своих внутренних разработок - в частности проект Auto который позволяет писать value object
4. Замечательное выступление Альберто Савоя в паре с Джеймсом Уиттакером на открытии GTAC 2011 - подходы к тестированию в современных (осторожно, слово "стартапы" упоминается многократно) условиях  должны меняться.


5. Прекрасная иллюстрация того почему системы вознаграждений в компании должны быть прозрачными. По наводке ITBoost


Ну и чтобы вы про буковки тоже не забывали.

  This will finally prompt politicians to introduce much stricter regulation of software in critical systems and the major cost for these systems will be achieving certification rather than software development. This will also create huge economic opportunities as continuing to run old and insecure systems will simply not be acceptable.

Дедушка Фаулер растолковывает о том что такое Given-When-Then и зачем оно надо.
Лучшего объяснения я пока не видел.

05 февраля 2014

Краудфаундинг: Книга от издательства Дмитрия Лазарева

Многие из вас наверное сталкивались с такой ситуацией, что заинтересовавшая вас книга есть только на английском.
Для кого-то это проблема, для кого-то - нет. Лично для меня  - это неприятность.

Я и на английском могу прочесть, но тяжелее воспринимается - английский язык очень информационно-емкий.

Поэтому хочется чтобы книга была на русском.
Видимо (я на это надеюсь:)) очень хороший человек Дмитрий Лазарев решил как-то исправлять эту ситуацию.

И хочет издать книжку на краудфаундинговой основе.
Детали ниже.