вторник, 4 января 2011 г.

Ретроспектива 2010 года

У каждого блоггера не зависимо от тематики, на которую он пишет, есть своя цель, ради которой он тратит свое свободное время и изливает свое сознание на страницы своего живого журнала. Для одного это может быть способом самореализации (ЧСВ оно такое ЧСВ ;) ), для второго – желание поделиться своим опытом и знаниями с другими, для третьего – систематизация уже имеющихся знаний, для четвертого – способ изучить тему поглужбе и только потом о ней рассказать другим, для пятого – повысить свою стоимость на рынке труда. Для меня каждая из этих целей играет определенную роль, но самое главное, я рассматриваю свои посты, как фотоснимки собственного сознания, на которые можно посмотреть с течением времени и увидеть себя, свой опыт и свое мышление в прошлом; понять, как я думал, чем интересовался, какие решал задачи; это такой себе способ пообщаться с самим собой в прошлом; видеопленка с собственным сознанием и профессиональным опытом. Кроме того, перечитывание своих собственных заметок позволяет значительно быстрее снова погрузиться в ту или иную тему, которая, как ни крути, в современных реалиях начинает с невероятной быстротой выветриваться из головы; не зря ведь старая китайская пословица гласит, что даже выцветшие чернила лучше хорошей памяти.

Подведение итогов прошедшего года также является хорошим способом систематизации новых знаний, полученных за это время. Не зря ведь, ретроспектива является неотъемлемой частью многих современных методик разработки, важно не просто пережить некоторые события, нужно еще и сделать из всего этого какие-то выводы. Вот и я решил подвести итоги года прошедшего, за который накопилось определенное количество материала, который не стыдно показать своим друзьям/коллегам девелоперам.

1. “Классические книги по программированию”
Однажды у Гради Буча спросили: «Кем вы себя считаете, теоретиком или практиком?», на что тот ответил: «Я считаю себя специалистом, который умеет применять теорию на практике». Я в этом вопросе согласен с Гради Бучем и считаю, что довольно часто можно избежать набивания собственных шишек, и воспользоваться вместо этого уже накопленным опытом. У этого опыта много лиц: есть блоги, журналы, форумы, книги. Разным людям подходят разные способы получения новых знаний, я же, если это возможно, предпочитаю именно хорошую книгу, которую можно взять в руки, запастись закладками, карандашом и терпением, и погрузиться в чтение. Если ваше мнение в этом вопросе совпадает с моим, то единственное, что вам еще понадобится – это выбрать достойного кандидата, чему, собственно, это статья и призвана помочь.

2. “Замыкания в языке программирования C#”
Бывает, что сам того не замечая, слова сами стекают с пальцев и получается простой и интересный слог, который легко и приятно читать. Как мне кажется, эта статья одна из таких; в ней рассматривается не самая простая тема, замыканий в языке C#, при этом о ней я получил, как мне кажется, наибольшее количество позитивных отзывов (да и на rsdn.ru она получила не мало плюшек).

3. “Проектирование по контракту”
Это одна крупная статья, разбитая в блоге на несколько постов, в которой рассказывается о «Проектировании по контракту» - механизму формализации отношений между программными компонентами путем четкого описания предусловий, постусловий и инвариантов. Как мне кажется, сама идея проектирования по контракту весьма удачная, ведь мы, даже сами того не зная зачастую предполагаем некоторые взаимоотношения между классами, однако задание этих отношений в виде четких правил зачастую помогает улучшить понимание кода как человеком, так и компьютером. И эти принципы становятся особенно актуальными после появления поддержки проектирования по контракту на платформе .net в виде библиотеки Code Contracts.

4. “Итераторы в языке C#”
В данной статье (которая разбита на три отдельные части: часть 1, часть 2 и часть 3), рассматривается внутреннее устройство итераторов в языке C#. Хотя эта тема может показаться весьма простой, в ней есть ряд нюансов, которые гораздо проще понять один раз, нежели запоминать десятки нюансов, которые могут встретиться вам в повседневной деятельности.

5. “Строгие перечисления на С++”
Эта статья была написана совместно с Димой Вьюковым и также как и все предыдущие статьи была опубликована в одном из журналов RSDN Magazine. Программистам, избалованным платформой .Net уже давно кажется естественным возможность задания нижележащего типа для перечисления, его строгая типизация, а также возможность получить текстовое представление значения перечисления. Однако в С++ все эти прелести недоступны, но мы можем компенсировать этот недостаток самостоятельно. В статье рассматривается несколько способов решения некоторых проблем, присущим встроенным перечислениям, разной степени функциональности и сложности. В целом, как мне кажется, весьма интересная тема.

6. Перевод статей Джозефа Албахари “Работа с потоками в C#”
В этом году… т.е. уже в прошлом году, вышло новое издание книги Джозефа Албахари (Joseph Albahari)  “C# 4.0 in Nutshell: The Definitive Reference”, в которой помимо всего прочего обновился раздел о многопоточности. С любезного разрешения автора я занялся переводом этой части, результатом чего стало несколько постов: “Работа с потоками. Часть 3”, “Работа с потоками. Часть 4”, “Работа с потоками. Часть 5.1” и “Часть 5.2”.

7. Асинхронное программирование
Нет смысла рассматривать следующие четыре поста в отдельности, поскольку они все покрывают одну тему асинхронного программирования. Итак, встречайте: «Асинхронные операции и AsyncEnumerator», «Реактивные расширения и асинхронные операции», «Знакомство с асинхронными операциями в C# 5.0», ну и «Microsoft Moles». В этих постах рассматриваются различные асинхронные операции в разных проявлениях, начиная от классической модели программирования типа BeginXXX/EndXXX, «изобретением» класса AsyncEnumerator (о котором неоднократно писал Джеффри Рихтер), «реактивными расширениями» a.k.a. Reactive Extensions, нововведениями, которые появятся в C# 5.0, а также тестированием всего этого дела с помощью инструмента Microsoft Moles.

Ну, пожалуй, хватит, а то букав что-то слишком уж много получается. В целом, я рад, что есть о чем вспомнить за год ушедший и я надеюсь, что и в этом году будет достаточно много интересного стаффа о программировании.

И еще раз, всех с наступившим Новым Годом и наступающим Рождеством!

2 комментария:

  1. Один из самых интересных блогов .net-стека. Читаю с удовольствием. Спасибо за труды, Сергей. :)

    ОтветитьУдалить
  2. "Рад стараться, господин полковник" (с). А если серьезно, спасибо за спасибо:)

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