Wednesday, January 1, 2014

Итоги 2013 года

1. По традиции, сделать Секретный Мегапроект.
Тот, который обсуждался последние несколько лет, сделать так и не получилось :-) Зато получилось сделать другой. Запущен. Работает. Половина постоянного пользователя.

2. Собрать некий "джентльменский набор" платформ/технологий/практик для деланья собственных проектов. Речь идёт про веб-приложения. Я хочу делать интересные штуки и видеть как они живут.
Более менее получилось:
Java - на ней можно программировать.
Eclipse - ну просто мне нравится как он в убунте выглядит.
Maven - очень легко подключать миллионы библиотек и плагинов, отличная интеграция с Eclipse.
Jetty - веб-сервер для запусков локально и на Heroku.
Spring - "фреймворк". Spring MVC и Rythm - передней части. Spring Data JDBC + QueryDsl - data access.
JUnit - чтобы писать тесты.


3. Продолжать изучать Java. Изучать Spring и кучу других библиотек/фреймворков. Основная цель - изучить платформу до такого состояния, чтобы 80% задач не вызывали вопросов. Особенно интересуют Apache CXF, spring data jpa, spring security и spring integration.
Это было. Если кто-то зайдёт на гитхаб, сразу подумают, что я Java девелопер.

4. Продолжать изучать .NET. Изучить асинхронные фичи (стыдно, но даже не пробовал - только презентацию видел).
Кстати, так и не попробовал :-)

5. Изучить SQL. Получить общее понимание языка и окружающей его инфраструктуры (например - транзакции, уровни их изоляции).
Было несколько экспериментов, ничего особенного. Больше экспериментов было с точки зрения программирования - всякие LINQ2SQL, Entity Framework, Dapper, Spring Data JPA, Spring Data JDBC, QueryDsl и прочие.

6. Очень хочется заиметь опыт построения какой-то распределённой масштабирующейся системы с очередями и всяким таким прочим. Явно увидеть наличие смысла у распределённости и увидеть, что масштабирование работает.
Такого не получилось.


7. Продолжить изучать web. Научиться делать более-менее сносный "программистский" дизайн руками, сразу в виде кода. Продолжать изучать Angular JS. Научиться реализовывать long polling на .NET и Java. Научиться делать активный UI (приложение не обязано ждать, пока пользователь нажмёт кнопку, чтобы что-то произошло. Например - чат). Изучить способы интеграции с Facebook, Twitter, Google+. Научиться показывать кнопочки типа "100500 человек любят ваш сайт". Изучить google analytics и способы её применения для веб-приложений (не для "тупо" сайтов).
Вебом - занимался.

8. Разобраться с легальным аспектом получения денег с пользователей.
Как-то не дошло пока :-)

9. Сделать интеграцию как минимум с одной платёжной системой. Запустить как минимум 1 проект с платной подпиской, каким мы чудовищным он не был.
Не дошло.

10. Продолжать битьё головой об стену на тему написания компилятора.
Это всегда с радостью. Как обычно - десятки экспериментов. Последний кажется более менее.

11. Похудеть до стабильных < 75 кг.
Это есть. Последние несколько месяцев вес держится между 65 и 70. Праздник.

12. Научиться ездить manual как минимум на 10 метров.
С велосипедом как-то не получилось.

13. Разобраться с git - изучить branches, merging, tags, sub modules.
Без особого восторга - не сказать, что сильно продвинулся за этот год.

14. Пощупать ruby on rails. Просто чтобы знать что это и насколько оно отличается от Django.
Пощупал. Это ещё страшнее, чем Django.

15. Научиться оформлять тесты на NUnit/JUnit таким образом, чтобы с одной стороны их можно было отлаживать, а с другой, избегать длины больше 30 строк.
Не сказать, чтобы прямо какой-то прогресс. Просто пишу тесты.

16. Научиться писать кодогенерирующие плагины для Maven.
Были робкие попытки попробовать использовать APT. Ни к чему интересном не привело.

17. Научиться использовать AspectJ для реализации cross-cutting concerns.
Не дошло.