Метка «.net» - 9

The Good, the Bad and the Ugly code
Хороший код или плохой? Лично для меня хороший код обладает следующими качествами:

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

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

Почему именно эти критерии? Сразу оговорюсь, речь сейчас идет о разработке ПО для бизнеса (enterprise application). Критерии оценки кода для систем реального времени, самолетов, систем жизнеобеспечения и МКС отличаются.
Читать полностью »

Что делать, если вы немножко SharePoint, и как с этим жить?
Так сложилось, что моя работа последние 6 лет связана с Microsoft SharePoint Server. В этой статье я не хочу выяснять хорошо это или нет, но я бы хотел помочь тем, кто уже выбрал этот путь или только присматривается к нему. Учитывая, что SharePoint почти не преподают в вузах, самостоятельно начать работать с данной технологией довольно трудно. Чаще картина следующая: компания берёт программиста .Net и начинает его прокачивать.

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

Читать полностью »

Всем привет!
У нас хорошая новость! Уже в продаже книга «Внедрение зависимостей в .NET».

Книга «Внедрение зависимостей в .NET» уже в продаже!

Аннотация:

Внедрение зависимостей позволяет уменьшить сильное связывание между программными компонентами. Вместо жесткого кодирования зависимостей (например, драйвера какой-либо базы данных), внедряется список сервисов, в которых может нуждаться компонент. После этого сервисы подключаются третьей стороной. Такой подход обеспечивает лучшее управление будущими изменениями и решение проблем в разрабатываемом программном обеспечении. Данная книга рассказывает о внедрении зависимостей и является практическим руководством по их применению в приложениях .NET. Издание содержит основные шаблоны внедрения зависимостей, написанные на «чистом» C#. Кроме того, рассмотрены способы интеграции внедрений зависимостей со стандартными технологиями Microsoft, такими как ASP.NET MVC, а также примеры применения фреймворков StructureMap, Castle Windsor и Unity.
Читать полностью »

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

Кажется, это определение мы слышали тысячу раз… Помимо знания терминов и паттернов интересно знать, как они применяются в реальных проектах.

В статье я рассмотрю несколько наиболее популярных паттернов используемых в .NET. Некоторые из них глубоко интегрированы в инфраструктуру .NET, в то время как другие просто применяются при проектировании базовых классов в BCL.

Паттернам проектирования посвящен не один десяток книг, но одна книга стоит особняком и это знаменитая книга «Банды четырех». Поэтому для большего понимания ситуации я буду приводить небольшое описание из этой книги.
Читать полностью »

в 10:15, , рубрики: .net, tdd, метки: , ,

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

Сразу оговорюсь, что примеры приводятся применительно к языку C# и платформе .NET. Соответственно, в других языках/платформах подходы и реализации могут отличаться.

Итак…
Читать полностью »

Как в сравнительно короткие сроки написать компилятор какого-либо языка программирования. Для этого следует воспользоваться средствами разработки, автоматизирующие процесс. Я хотел бы рассказать о том, как я писал компилятор языка программирования MiniJava под платформу .NET Framework.

Весь процесс написания компилятора в целом отображён на следующем изображении. На вход подаётся файл с исходным кодом на языке программирования MiniJava. Выходом является PE-файл для выполнения средой CLR.

Компилятор языка программирования MiniJava

Далее я хотел бы сконцентрироваться на практической части описания.
Читать полностью »

У меня с коллегами нередко возникают разговоры о быстродействии того или иного участка кода. Часто они перерастают в спор о том, какое же решение работает более быстро. И в этой ситуации чаще лучше набросать простенький бенчмарк, чем вести долгие философские разговоры о производительности. К сожалению, очень многие не умеют бенчмаркать правильно, в результате чего их тесты могут показать в корне неверные результаты. Поэтому мне хотелось бы обсудить наиболее важные вещи, которые нужно учитывать при составлении грамотного бенчмарка на C#.

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

Я не нашел простого пути, как с помощью Visual Studio и ReSharperа ввести синоним в уже написанном классе. В связи с чем я решил реализовать свое дополнение к ReSharper которое позволило бы решить эту проблему. В этой статье я бы хотел рассказать о подводных камнях, с которыми пришлось столкнуться, реализуя, на первый взгляд, такой простой рефакторинг. (исходный код и реализация в конце статьи)
Читать полностью »

Решение транспортной задачи при помощи генетического алгоритма как часть SOA

Приветствую уважаемое читатели!

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

Формулировка задачи

Википедия формулирует задачу следующим образом — задача об оптимальном плане перевозок однородного продукта из однородных пунктов наличия в однородные пункты потребления на однородных транспортных средствах (предопределённом количестве) со статичными данными и линеарном подходе.

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

Читать полностью »

Предыстория

Новая версия проекта была успешно завершена, протестирована, и уже устанавливалась клиентам. Ничего не предвещало беды, все шло по плану и можно было немного расслабиться.
Неожиданно, от всех клиентов стали поступать жалобы на ошибки, которые посыпались при попытке использовать новую версию программы. Это было очень странно, т.к. все было проверено и должно было работать как часы, но этого не произошло.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js