четверг, 19 января 2017 г.

Ретроспектива 2016

Ёлки выброшены (нет, моя – в гараже!), и трудовые выходные перешли в не менее трудовые будни нового года, а значит пришло время подвести итоги года прошедшего. Пусть и с опозданием.

Как известно, 2016-й был непростым годом (четный год таковым быть не может) и по блогу это заметно. За прошлый год можно было заметить следующие тренды: я начал заниматься ErrorProne.NET (правда потом забил), в начале года я допилил Code Contracts и с тех пор только принимал пул рекветы (все еще не знаю, что делать с поддержкой VS 2017), начал блог на английском, ну и написал полтора-два десятка статей на разные темы.

Теперь об этом и другом, более подробно (с)J

Dissecting the Code

В конце года я таки решил начать блогать на английском. Занятие, скажу я вам, интересное, но трудоемкое. В результате появился блог ‘Dissecting the Code’ с парой статей: “Dissecting the ActionBlock: a short story about nasty deadlock” и “Understanding different GC modes with Concurrency Visualizer”. Последняя была принята весьма хорошо и даже появилась в рубрике “The Week in .NET” самого дот-нетного блогаJ

Правда мне пока не ясно, переводить их или нет. С одной стороны – это дополнительный контент, а с другой – дополнительная работа. Вопрос к читателям: стоит ли англоязычные посты переводить и публиковать их здесь?

ErrorProne.NET

Довольно давно хотелось собрать в одном месте несколько анализаторов, способных отлавливать типичные ошибки в C# коде, типа неправильной обработки исключений, невалидной форматной строки и т.п. Таким образом родился проект ErrorProne.Net.

Я не сильно активно над ним сейчас работаю, но продолжаю собирать интересные кейсы с невалидным кодом, которые можно было бы отлавливать во время статического анализа.

В качестве затравки, хотелось бы иметь атрибут ReadOnce, аналогичный модификатору readonly, но для свойств. Который бы позволял создавать объект с помощью инициализатора объекта, но ругался бы при попытке изменить такое свойство в дальнейшем.

Если есть интересные идеи по выявлению типовых багов – пишите, добавлю.

TDD и прочие философствования

Эпическая битва с обсуждением о живости TDD (Is TDD Dead) прошла больше 2-х лет назад, но в тырнетах все еще не утихают всяческие срачики по этому поводу. Старина Боб вкидывает на постоянной основе (см. TDD Doesn’t Work) и даже с дикой активностью строчет посты, доказывая всему миру, что строгая типизация нинада, когда есть тесты (см. The Dark Path и Types and Tests и более ранняя Giving Up on TDD). Волна гнева коснулась и меня, когда меня записали в хейтеры TDD и назвали неблагодарным блоггером, не отвечающим на письма/комментарии (см. Разработка через тестировании (TDD). Работает или нет?. Свою позицию я потом разъяснил и из черного списка неблагодарных TDD-ненависников был вычеркнут, кажется).

В результате чего появились следующие посты:

.NET

В этом году было не много постов про .NET, но парочка стоит вашего внимания, если вдруг пропустили.

В результате нескольких твитов, в тырнетах разгорелась горячая дискуссия по поводу эффективного кода и способов его достижения. В результате, по инету стали ходить забавные советы, типа LINQ – это ай-ай-ай, лямбды – зло, а структуры – это наше все. Я не стал проходить мимо и решил выразить свое мнение в виде вот этого поста: О сомнительных советах об эффективности.

Плюс еще посты:

Философия программирования

Часть постов была навеяна вопросами читателей, другая часть – вопросами на стековерфлоу, ну а третья часть – делами житейскими:

З.Ы. Да, и в конце года организаторы DotNext-а взяли у меня интервью, которое было опубликовано на Хабре – Голос Сиэтла: разговариваем с Сергеем Тепляковым.

11 комментариев:

  1. Привет,
    я бы сказал, что было бы неплохо отмечать наличие статьи из англоязычного блога и здесь. Переводить не обязательно.

    ОтветитьУдалить
  2. Отвечая на вопрос - думаю, что для людей переводы очень нужны. Среди разработчиков не обладающих большим опытом, больше тех, кто не владеет английским. Собственно чем меньше опыта у разработчика, тем меньше шансов на то, что он владеет английским. И в тоже время, как раз таким разработчикам твои статьи нужнее всего.

    ОтветитьУдалить
  3. Леонид, я не знаю, насколько хорош перевод, поскольку я не знал о публикации этого поста:).

    ОтветитьУдалить