02 апреля 2015

Напочитать : Выпуск внезапной весны

1. Весьма странная смесь, но тем не менее - кому-то может оказаться полезной. Jodd.
2. Удивляетесь что вышла новая версия либы в maven central а вы не в курсе?  Я тоже. Но мечты стали реальностью - artifact listener.
3. Сравнительная таблица Dropwizard vs. Spring или что вам большу подходит для микросервисов. Dropwizard конечно же :).
4. Отличный и короткий гид по заголовкам кэширования  в HTTP. Люблю такие,
5. RoboVM - это чтобы на Java под iOS. Правда платно, и наверное даже стремно.
6. Про стратегии герметизации, mock-анья и за-stub-ливания для тестирования Android приложений от гугла.
7. Maven теперь может не только XML. Хипстеры, хуле.
8. Старинное от Влада Балина
Создать свою структуру и пришлепать ее сбоку может любой дурак. Квалифицированный инженер-программист (с упором на первом слове, не путать с "программером") умеет проводить анализ "чужой" подсистемы, восстановит мысль и идею автора, сможет мысль автора развить, продолжить ее, и эффективно решить свою задачу в рамках чужого подхода к проблеме. Все это - работая с кодом. Это отличительная компетенция архитектора, высший уровень инженерного мастерства. И это имеет весьма отдаленное отношение к "рефакторингу". 
Толу на самом деле было все равно, есть документация или нет. В совершенстве владея reverse engineering, он в уме потрясающе легко умел переходить от кода к архитектуре, и наоборот. В результате, проектируя, он всегда детально представлял, в какой код превратятся его мысли, и поэтому был способен быстро прокручивать в голове огромное количество вариантов, отбрасывая "плохие". В его понимании, архитектор, не умеющий читать чужой код с "листа", и не пишущий своего - подобен инвалиду, пытающемуся бегать на костылях. Он довольно быстро закончит очень плохим архитектором - вопрос нескольких лет.
Второй важный аспект этой философии - понимание того, что код пишется в первую очередь для человека, и только во вторую - для компьютера. Это приводит нас к идеям, близким по духу к literate programming, за которое ратует Кнут. Как может человек, который не в состоянии внятно выразить свою мысль на неформальном, знакомом ему с детства естественном языке, выразить эту же мысль понятным образом на существенно более формальном языке программирования? Но это уже другая история.
9. Куча статеек про то как правильно пользоваться JUnit, но я обратил внимание только на пару и те про Rule-ы - первая и вторая. И еще вот тут хоршее-архитектурное про JUnit.
10. Одна из десятков тысяч статей про няшки в Guava - UnsignedInts, CHarMatcher, MurmurHash, InternetDomainName,ClassPath utils.
11. Google заопенсорсил свой внутренний билдтул bazel.io. Найдите 10 отличий от buck в исполнении Facebook, который пилит бывший инженер Google :D Пожалуй разрожусь-ка я статейкой про Not Invented Here синдром.