среда, 30 октября 2013 г.

Интервью с Джоном Скитом

Материал взят из журнала DotNetCurry посвященному технологиям основанным на платформе .NET.

Ссылка на журнал: http://www.dotnetcurry.com/magazine/dnc-magazine-issue2.aspx

Во втором номере этого журнала, мы рады видеть Джона Скита в нашем "виртуальном" кресле. Джон Скит - настоящий помощник сообщества (взгляните на его значки на StackOverflow), ведущий C# специалист и автор множества книг. Джон является MS MVP начиная с 2003 года. В настоящее время он работает в компании Google.



Дамы и господа, без лишних слов, представляем вашему вниманию Программного Инженера и Джентльмена - Джона Скита.

DNC: Привет Джон, мы очень рады, что ты нашел время в своём графике для этого интервью. Для начала мы все хотим знать больше о Джоне Ските, расскажи нам как все началось? Как Джон начал работать с компьютерами?

JS: Мой первый компьютер - общий для всей семьи был Sinclair ZX Spectrum 48 K, который мы купили  когда мне было 8. Со временем я покупал и другие модели Spectrum-а, но затем постепенно перешел на PC. Долгое время я проводил большинство своего времени за компьютером, просто играя в игры, но программирование так же всегда присутствовало.

воскресенье, 27 октября 2013 г.

Интервью с легендой C# Эриком Липпертом

Потрясающее интервью с замечательным человеком и программистом.

Материал взят из журнала DotNetCurry посвященному технологиям основанным на платформе .NET. 


Дорогие читатели, мы очень рады видеть Эрика Липперта в этом номере журнала DNC. Эрик не нуждается в представлении людям знакомым с C#, но для остальных Эрик известен своей работой в команде разработчиков компилятора языка С#. Он посвятил значительную часть своей карьеры компании Microsoft, работая на различных должностях. До того как придти в Microsoft, Эрик работал в компании Watcom. Наши "старички" помнят Watcom как компанию, которая создала очень хорошие компиляторы для языков C++ и Fortran. В настоящее время Эрик работает в компании Coverity, помогая создавать продукты статического анализа кода.

четверг, 24 октября 2013 г.

Какие структуры данных используются в .NET

Я собрал некоторую информацию о временной сложности и о базовых структурах данных лежащих в основе простых коллекций и словарей в .NET. Было сложно найти эту информацию как в официальных источниках, таких как MSDN так и на не официальных источниках, так как информация отличалась, поэтому я использовал Reflector и фактически использовал реализацию классов для подтверждения информации.

Простые коллекции

Тип
Структура данных
Пояснение
List<T>
Массив
Обычный список использующий динамический массив
SortedSet<T>
Красно-черное дерево
Список использующий красно-черное дерево

Временная сложность

Тип
Получить i - элемент
Поиск
Добавление в конец
Вставка
Удаление
List<T>
O(1)
O(n)
O(1)*
O(n)
O(n)
SortedSet<T>
Не доступно
O(log n)
O(log n)
O(log n)
O(log n)

* Сложность метода List.Add является линейной O(n) когда добавление элемента требует увеличение размера массива лежащего в основе списка.