Ёлки выброшены (нет, моя – в гараже!), и трудовые выходные перешли в не менее трудовые будни нового года, а значит пришло время подвести итоги года прошедшего. Пусть и с опозданием.
Как известно, 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 – это ай-ай-ай, лямбды – зло, а структуры – это наше все. Я не стал проходить мимо и решил выразить свое мнение в виде вот этого поста: О сомнительных советах об эффективности.
Плюс еще посты:
Философия программирования
Часть постов была навеяна вопросами читателей, другая часть – вопросами на стековерфлоу, ну а третья часть – делами житейскими:
- Принцип YAGNI (будьте проще и к вам потянутся)
- Что не так с оператором switch? (все с ним впорядке)
- Должен ли менеджер кодить? (it depends!)
- Инкапсуляция и сокрытие информации (почему-то эти вещи все время путают)
- О шаринге знаний и компетенция с коллегами (полезное дело, и для вас, и для окружающих)
- Herro Pattern (не геройствуйте за клавиатурой!)
- О рецензировании кода (как нужно делать ЭТО правильно, чтобы потом никому не было больно и обидно)
- Памятка ынтырпрайз кодера (помните, как говнячить правильно, с девопсами и красивыми дамами)
З.Ы. Да, и в конце года организаторы DotNext-а взяли у меня интервью, которое было опубликовано на Хабре – Голос Сиэтла: разговариваем с Сергеем Тепляковым.
Привет,
ОтветитьУдалитья бы сказал, что было бы неплохо отмечать наличие статьи из англоязычного блога и здесь. Переводить не обязательно.
Ок. Спасибо.
УдалитьЭто вариант.
Плюсую. Это первая мысль, которая пришла в голову :)
Удалить+
Удалить+
УдалитьУказания статьи достаточно. Переводить, конечно, хорошо, но время не резиновое.
Удалить+
УдалитьОтвечая на вопрос - думаю, что для людей переводы очень нужны. Среди разработчиков не обладающих большим опытом, больше тех, кто не владеет английским. Собственно чем меньше опыта у разработчика, тем меньше шансов на то, что он владеет английским. И в тоже время, как раз таким разработчикам твои статьи нужнее всего.
ОтветитьУдалитьПереводить! :)
ОтветитьУдалитьПереводить!
ОтветитьУдалитьЛеонид, я не знаю, насколько хорош перевод, поскольку я не знал о публикации этого поста:).
ОтветитьУдалить