Итоги 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. Побывал наконец-то в Америке. Ел гамбургеры.
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