2012-12-23

Снова о прозрении

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

Интересы причины таких качественных скачков. Самыми яркими этапами у меня были понимание как работает сервлет-контейнер, отличия rich и anemic, тестирование, мавен. Сейчас меня распирает от DI. Сервлет-контейнер не был похож ни на десктопные приложения, которые я писал и понимал как отлаживать, ни на php скрипты. Maven потребовал серьезнейшего мозгового усилия и чтения двух книг, потому что он был абсолютно непохож на известный мне ant. Подходы к доменной модели были понятны, но не было практики, чтобы выяснить границы применимости.



После пятого прочтения
Остальные области были для меня дверьми с табличками, которые я никак не мог открыть. Простые и частные случаи, на которых строится документация и примеры, обычно, слишком примитивны для ответа на вопрос: вот у меня есть система, как мне это использовать? При попытке применить, появляются ньюансы, которые пораждают сразу кучу вопросов и настойчиво требуют изучить матчасть. В случае с тестированием ответить на вопрос, как мне протестировать конкретный класс, было попросту невозможно - поскольку код писался в нетестируемом стиле, то и ответ был никак. Инъектить зависимости невозможно, пока код не станет достаточно decoupled, как, впрочем, и тестировать. Проблемы из разряда стою на асфальте я, в лыжи обутый. Дверь открывается просто, но недостаточно уметь читать по эльфийски.


Наконец нашел ответ на вопрос
Давно завел привычку - если вдруг на ровном месте начали появляться вопросы, то их срочно нужно записывать, ибо грядут бессонные ночи, курение stackoverflow, книг по матчасти и восторг от сложившегося паззла. После перехода на новый уровень, весь предыдущий код окажется полным дерьмом и настойчиво потребует переписать себя.