Sunday, February 3, 2013

Итоги 2012 года

Итоги 2012 года

1. Сделать Секретный Мегапроект. По состоянию на сегодня фактически изучить полученный прототип, допилить, решить что делать дальше.
Ну тут как всегда. Всё круто, всё в процессе.

2. Изучить веб (именно HTML, CSS, JavaScript, JQuery, Backbone, KnockoutJS и т.д.)
С вебом было очень много экспериментов. В результате проникся сильной любовью к Twitter Bootstrap и Angular JS. Многочисленные читатели моего блога вероятно знают о моей сильнейшей ненависти к вебу. Вот эти самые Bootstrap и Angular дали мне понять как это вообще должно делаться, чтобы не было так печальное. Bootstrap замечателен не тем, что можно построить интересный UI практически нахаляву, а тем, что за ним скрывается вполне явная структура со вполне явными правилами. Он позволил мне лучше понять как вообще писать HTML и CSS. Angular JS в свою очередь это самая сильная иллюстрация того, что на JS можно написать читабельный код. Наибольшее впечатление произвёл их подход с dependency injection: "или делаешь DI, или вообще работать не будет". По состоянию на сегодня - могу сделать одностраничный вебсайт и при этом он не развалится в кратчайшие сроки. Если кто-то из читающих хочет изучить front-end разработку для веб, но при этом либо страшно, либо есть негативный опыт, очень советую попробовать связку Bootstrap + Angular JS.

3. Продолжать изучать .NET: ASP.NET MVC, Entity Framework (ну и хлам вроде Ninject, AutoMapper, и т.д)
Более-менее умею ASP .NET MVC. Умею Entity Framework через "design-first". Очень хочу поэкспериментировать с code first. Повезло с проектом на работе - изучил WCF и LINQ2SQL. По состоянию на сегодня могу сделать веб-сервис/веб-сайт, красиво оформить в плане билд/деплоймент скриптов на MSBuild, с явными конфигурациями и маппингом на конфигурации Teamcity. Продолжнаю безумно любить Teamcity.

4. Продолжать изучать Java: GWT, Android, NHibernate, Spring, AspectJ ну и нечто, что эксперты называют словами "это тебе не C++". Ну и ещё всякие ModelMapper, Log4j, Maven, ANTLR и т.д.
Продолжаю безумно любить Java. Убогость языка с запасом компенсируют хитрые средства вроде AspectJ, а окончательно добивет Maven. Есть большой прогресс со Spring. А именно - с spring mvc, spring data jpa, spring data neo4j, spring integration.

5. Довести до ума компилятор
Начал делать очередную версию на Java. Остановился из-за сложности кода. Несмотря на субъективную вменяемость, дизай получился сложным. В этом году попробую ещё раз.

6. Полюбить JUnit/NUnit, постоянно его использовать.
Тут на меня наконец-то сошло озарение. С помощью JUnit/NUnit можно решать вот такие задачи:
а. Есть какая-то библиотека. Если раньше я делал набор хеллоу ворлд программок, сейчас я просто делаю проект, в котором ничего кроме тестов нет. Тесты показывают какой сценарий использования приводит к каким результатам.
б. Есть задача написать какую-то логику, за которую я не могу ручаться, просто потому что сложно. Покрытие тестами помогает получить минимальные гарантии.
в. Есть какой-то сервис, нужно убедиться, что какие-то основные сценарии работают.

7. Научиться использовать Git
К сожалению, так и остался на уровне pull/commit/push. Честно говоря, не так сильно напрягает. Всё ещё думаю, что обязан разобраться с branches, tags, sub modules.

8. Выучить очередную порцию слов вроде MVC, MVP, MVVM
С этим как-то не срослось. Я отлично понимаю о чём тут идёт речь, какие проблемы есть, могут быть, и как их стоит (не стоит) решать, но вот эта магическая разница между MVC и MVP всё ещё мне неподвластна.

9. Вспомнить Django/Python, изучить Ruby/Rails, сравнить
Замечательно вспомнил Django в некотором тренировочном проекте. Честно говоря, в последнее время любовь к этому всему всё слабее. В моём нынешнем понимании, "трендовое хипстерское веб-приложение" - это как минимум шаблонизация на стороне клиента, поэтому, не смотря на всю их прелесть, шаблоны Django имеют не так много смысла. С другой стороны я всё сильнее люблю строгую статическую типизацию, что понижает мой рейтинг Python. Стоит, наверное, потратить пару недель на обзор RoR, но скорее всего дальше обзора не пойдёт.

10. Изучить какие-нибудь NoSql кроме neo4j/spring-data-neo4j. Их там несколько основных, наверное - все?
Я так подумал - рановато. Это всё, конечно, очень интересно, но с другой стороны я глубоко не эксперт в SQL, поэтому не смогу сделать адекватных оценок. Забил. Планирую изучить SQL.

11. Похудеть до стабильных < 75 кг
Тут, как всегда, не получилось.

Были так же некоторые другие интересные моменты.

1. Много думал и экспериментировал с дизайном всяких сервисов, структурированием логики и всяким таким прочим. Более-менее стал понимать как применять ООП на практике. Были робкие попытки разобраться с разницей между Anemic и Rich domain models, но как-то так же робко и закончились.

2. Побывал наконец-то в Америке. Ел гамбургеры.

No comments:

Post a Comment