Чек-лист для .NET программиста: Анализ и Проектирование

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

Продолжить чтение «Чек-лист для .NET программиста: Анализ и Проектирование»

Обзор способов клонирования графа объектов в .NET

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

Продолжить чтение «Обзор способов клонирования графа объектов в .NET»

Чек-лист для .NET программиста: Базы данных SQL и NoSQL

Практически каждое приложение за исключением самых простых нуждается в более надежном хранилище данных, чем оперативная память. В зависимости от специфики разрабатываемого программного обеспечения, программисты выбирают наиболее подходящую СУБД, из которых можно выделить реляционные (MS SQL), документо-ориетированные (MongoDB, CouchDB) и объектно-реляционные (PostgreSQL). Каждый тип СУБД обладает своими сильными и слабыми сторонами. Например, MongoDB отлично масштабируется горизонтально, имеет динамическую схему данных, является кроссплатформенной БД, однако, в отличие от MS SQL, не поддерживает транзакций, триггеров, внешних ключей и является менее развитой с точки зрения безопасности. Как результат некоторые разрабатываемые приложения работают одновременно с несколькими видами баз данных, c целью позаимствовать сильные стороны каждой из них.

Продолжить чтение «Чек-лист для .NET программиста: Базы данных SQL и NoSQL»

Чек-лист для .NET программиста: Алгоритмы и структуры данных

Алгоритмы представляют собой готовые решения проблем, периодически возникающих в процессе разработки программного обеспечения. Фактически программист лишается необходимости изобретать велосипед, а только проанализировать набор существующих алгоритмов и выбрать из них тот, который лучше всего подходит для решения поставленной задачи.

Продолжить чтение «Чек-лист для .NET программиста: Алгоритмы и структуры данных»

Чек-лист для .NET программиста: Модульное тестирование

Модульное или юнит-тестирование (Unit testing) относится к такому виду тестирования, которым занимается непосредственно программист, с целью проверки работоспособности отдельного модуля приложения в изоляции от других. В среде .NET модульные тесты разрабатываются при помощи таких основных инструментов, как NUnit, xUnit и MSTest. Для создания заглушек (Stubs, Mocks) обычно используются фреймворки Moq, Rhino Mocks и Microsoft Moles. Определить уровень покрытия кода модульными тестами (Code Coverage) помогает инструмент NCover.

Продолжить чтение «Чек-лист для .NET программиста: Модульное тестирование»

Чек-лист для .NET программиста: Рефакторинг

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

Продолжить чтение «Чек-лист для .NET программиста: Рефакторинг»

Чек-лист для .NET программиста: С# и .NET

C# является объектно-ориентированным компилируемым языком программирования со строгой типизацией, который позволяет программисту разрабатывать логику приложений, выполняющихся под руководством .NET фреймворка. В настоящее время область применения языка С# достаточно широка, ведь с его помощью можно создавать веб-сайты, веб-сервисы, игры, мобильные и настольные приложения. C# обладает богатым синтаксисом, а такие возможности языка как LINQ, итераторы, лямбда-выражения, методы расширения, фильтры исключений и прочие позволяют писать максимально лаконичный код.

Продолжить чтение «Чек-лист для .NET программиста: С# и .NET»