Udostępnij za pośrednictwem


Невероятные приключения в коде

Перевод блога Эрика Липперта

Бесконечный как звезды

Сегодня не будет ничего о компьютерах. Недавно умер Мартин Гарднер (Martin Gardner) – писатель,...

Author: Russian MSDN Date: 08/24/2010

Операторы преобразования не подчиняются дистрибутивному закону

Еще один интересный вопрос со StackOverflow. Давайте рассмотрим следующую неприятную ситуацию:...

Author: Russian MSDN Date: 08/23/2010

Все существующие программы. Часть 9

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

Author: Russian MSDN Date: 08/05/2010

Все существующие программы. Часть 8

  Хорошо, давайте начнем с начала. Предположим, что у нас есть строка, которая содержит...

Author: Russian MSDN Date: 08/04/2010

Все существующие программы. Часть 7

  Все, вроде бы идет нормально. У нас есть каркас рекурсивного решения для перебора всех строк...

Author: Russian MSDN Date: 08/03/2010

Все существующие программы. Часть 6

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

Author: Russian MSDN Date: 08/02/2010

Все существующие программы. Часть 5

В прошлый раз: Мы явно уменьшили задачу размером k, к нескольким задачам размера, меньшего, чем k-1,...

Author: Russian MSDN Date: 08/01/2010

Все существующие программы. Часть 4

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

Author: Russian MSDN Date: 07/31/2010

Все существующие программы. Часть 3

  Предположим, мы хотим написать грамматику для упрощенного объявления классов языка C#....

Author: Russian MSDN Date: 07/30/2010

Все существующие программы. Часть 2

Предположим мы хотим найти CFG для чисел и суммирования. Рассмотрим очень простую грамматику только...

Author: Russian MSDN Date: 07/29/2010

Все существующие программы. Часть 1

  Теперь мы умеем перечислять все двоичные и все произвольные деревья определенного размера, и,...

Author: Russian MSDN Date: 07/28/2010

Все существующие деревья

В прошлый раз мы говорили о том, что количество двоичных деревьев с количеством узлов, равным n...

Author: Russian MSDN Date: 07/27/2010

Все существующие двоичные деревья

Недавно я написал небольшой алгоритм, который выполняет некоторые операции c двоичными деревьями. Я...

Author: Russian MSDN Date: 07/27/2010

Это важно[1]!

  Я только что получил свою копию книги “Essential C# 4.0” (“Сущность языка C# 4.0”), и...

Author: Russian MSDN Date: 07/26/2010

Игнорирование скобок

Еще один забавный вопрос на StackOverflow: существует ли в C# разница между “return something;” и...

Author: Russian MSDN Date: 07/26/2010

Точность и погрешность DateTime

  Структура DateTime представляет дату в виде 64-разрядного значения, которое содержит...

Author: Russian MSDN Date: 07/24/2010

Превращаем баг в фичу

  Меня очень повеселил этот пост о том, что арифметическая ошибка превратилась в особенность...

Author: Russian MSDN Date: 07/23/2010

Некоторые новые возможности C# 4.0

Я надеюсь, вы уже знаете, что мы завершили реализацию C# 4. Была добавлена поддержка взаимодействия...

Author: Russian MSDN Date: 07/22/2010

Базовый класс в середине иерархии

Дополнение: Я переписал этот пост на основе новой информации, которую только что узнал. Вначале мне...

Author: Russian MSDN Date: 07/21/2010

Рыцари, жулики, Protected и Internal

  При  переопределении виртуального метода в C# вы требуете гарантий, что указанный...

Author: Russian MSDN Date: 07/20/2010

Носки, дни рождения и коллизии хэш-функций

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

Author: Anton Belousov - MSFT Date: 07/04/2010

Не давайте классам и пространствам имен одинаковые имена. Часть 4

Часть 4. Делаем проблему еще серьезнее Как я уже сказал ранее, фундаментальная задача пространств...

Author: Anton Belousov - MSFT Date: 07/03/2010

Не давайте классам и пространствам имен одинаковые названия. Часть 3

Часть 3:  Проектирование  неудачных иерархий Причина, по которой люди изобретают иерархии,...

Author: Anton Belousov - MSFT Date: 07/02/2010

Не давайте классам и пространствам имен одинаковые названия. Часть 2

Часть 2: Автоматически сгенерированный код Вы написали namespace Foo {   public sealed class...

Author: Anton Belousov - MSFT Date: 03/11/2010

Не давайте классам и пространствам имен одинаковые названия. Часть 1

В книге “Framework Design Guidelines” в разделе 3.4 сказано «не используйте одинаковые названия для...

Author: Anton Belousov - MSFT Date: 03/09/2010

Перебор с повторным использованием

Недавно один пользователь задал такой вопрос: У меня есть код, который обслуживает очередь рабочих...

Author: Anton Belousov - MSFT Date: 03/04/2010

Привлечение талантов

Сегодня мне потребуются ваши мысли, мнения и советы. В любой крупной организации с течением времени...

Author: Anton Belousov - MSFT Date: 03/01/2010

Поаккуратнее с топором. Часть 2. А как насчет исключений?

Предположим, вы завершаете выполнение рабочего потока, о чем мы говорили в прошлый раз, и поток...

Author: Anton Belousov - MSFT Date: 02/25/2010

Поаккуратнее с топором. Часть 1: Нужно ли мне указывать таймаут?

Не так давно, примерно шесть лет назад, я рассказывал немного о том, как решить, стоит ли продолжать...

Author: Anton Belousov - MSFT Date: 02/22/2010

В чем разница между тернарным и третичным?

Условный оператор (условие ? следствие : альтернатива) часто называют «тернарным оператором»...

Author: Anton Belousov - MSFT Date: 02/18/2010

Лимонный завиток

Недавно я рылся в архиве проектных записей ранних дней работы над языком C#. Видимо у того, кто их...

Author: Anton Belousov - MSFT Date: 02/15/2010

Цепочки вызовов простых операторов присваивания не такие уж и простые

Дополнение: Я прерываю этот эпизод «Невероятных приключений» в коде просьбой моего друга и коллеги...

Author: Anton Belousov - MSFT Date: 02/11/2010

Пишите код, который читается как спецификация

Как я уже упоминал немного ранее, существует несколько ошибок в коде компилятора, который...

Author: Anton Belousov - MSFT Date: 02/08/2010

Сколько проходов?

В огромном объеме кода, написанном на языках C/C++, обычно происходит разделение кода на...

Author: Anton Belousov - MSFT Date: 02/03/2010

Стиль отвечает семантике

Какой стиль лучше? bool abc; if (Foo())   abc = Bar(); else   abc = false; или bool abc =...

Author: Anton Belousov - MSFT Date: 02/01/2010

Вызовы конструкторов в произвольных местах

В C# вы можете вызвать один конструктор из другого, но только перед выполнением тела вызывающего...

Author: Anton Belousov - MSFT Date: 01/28/2010

Почему не выдаются предупреждения на неиспользуемые директивы using?

Как я уже говорил ранее, мы пытаемся использовать предупреждения только тогда, когда можем с...

Author: Anton Belousov - MSFT Date: 01/25/2010

В чем разница между деструктором и методом завершения?

Сегодня будет еще один диалог и еще один эпизод из моей постоянной рубрики «в чем разница?». В чем...

Author: Anton Belousov - MSFT Date: 01/21/2010

Аномалия инициализации

Дополнение: Я выяснил, что эта проблема значительно более загадочна, чем изначально думал исходя из...

Author: Anton Belousov - MSFT Date: 01/18/2010

Почему я не могу получить доступ к защищенному члену из производного класса? Часть 6

Читатель Джес Макгрю (Jesse McGrew) задал отличный дополнительный вопрос к моему сообщению 2005 года...

Author: Anton Belousov - MSFT Date: 01/14/2010

Продолжение выполнения внешнего цикла

Когда у вас есть вложенный цикл, иногда возникает желание перейти к следующей итерации внешнего...

Author: Anton Belousov - MSFT Date: 01/11/2010

Существует ли такое понятие, как чрезмерная точность?

Так, хватит пустой болтовни, возвращаемся к проектированию языков программирования. Предположим, вы...

Author: Anton Belousov - MSFT Date: 01/07/2010

Двоюродный племянник

Всех с новым годом и добро пожаловать в 2010 год, или, как предпочитает мой друг профессор Орбифолд...

Author: Anton Belousov - MSFT Date: 01/04/2010

Это самое прекрасное время года

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

Author: Anton Belousov - MSFT Date: 12/26/2009

Используйте правильные инструменты

Рассмотрим следующую схему: У меня есть клиентское приложение, которое я продаю. При первом запуске...

Author: Anton Belousov - MSFT Date: 12/14/2009

Ограничения не являются частью сигнатуры метода

Что произойдет в этом случае? class Animal { } class Mammal : Animal { } class Giraffe : Mammal {...

Author: Anton Belousov - MSFT Date: 12/10/2009

Преобразования запросов являются синтаксическими

Как вы, вероятно, знаете, в C# существует два варианта написания LINQ-запросов. Лично я предпочитаю...

Author: Anton Belousov - MSFT Date: 12/07/2009

Четкие правила корректности вариантности

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

Author: Anton Belousov - MSFT Date: 12/03/2009

<Previous Next>