Top.Mail.Ru

C#

ChatGPT: экономия времени разработки или навязанный тренд

Сейчас модно хвататься тем, как увеличиваешь свою эффективность при помощи ChatGPT. Хотя многих, напротив, пугает перспектива развития искусственного интеллекта как технологии, которая может отнять работу. С целью выяснить, кто же в данной ситуации прав, оптимисты или «всепропальщики», решил попробовать ChatGPTв деле и провести с ним некоторые эксперименты. Я нагуглил задачку для собеседований и сначала попробовал… read more »

Задача коммивояжера

Наверное только ленивый не слышал о задаче коммивояжера. Но в чем ее суть и почему об этой задаче так часто говорят в теории алгоритмов? А суть в том, что нужно обойти все пункты по кратчайшему маршруту, при этом, не заходя ни в один из пунктов дважды.  Казалось бы, что особенного в этой задаче? Давайте предположим,… read more »

C#. Паттерны проектирование. Стратегия. Часть 2.

Начало здесь: C#. Паттерны проектирования. Стратегия. Часть 1. — Библиотека разработчика Programming Store (programstore.ru) На прошлом уроке мы с вами начали разбирать паттерн «Стратегия». Напомню краткое содержание: В некой организации был разработан симулятор «Утиное озеро». Программист по имени Джо получает задание расширить функционал симулятора, заставив виртуальных уток летать. Он решил, что все это «как два… read more »

Применение Mock объектов для модульного тестирования (Mock testing) с примером на C#

В этой статье речь пойдет о применении Mock-объектов для модульного тестирования (Mock testing). Суть заключается в том, что для эмуляции еще не реализованных объектов мы применяем вместо Fake-объектов так называемые Mock-объекты. Самая важная идея хорошего ООП – это избавление от зависимостей. Классы должны зависеть только от абстракций, но не от конкретной реализации.  Но как все… read more »

Алгоритмы обхода графов на Python и C#

Если вы во время учебы в институте пренебрегали теорией графов, то зря. Ибо граф – это замечательная абстракция, к которой можно свести много различных задач и решить их через алгоритмы на графах. К графам сводятся не только задачи транспортной логистики. В виде графа можно представить, например, компьютерную сеть, сеть социальных контактов, да и вообще различные… read more »

C#. Паттерны проектирования. Стратегия. Часть 1.

В данной серии уроков мы реализуем на C# паттерны проектирования, взятые из книги «Эрик Фриман, Элизабет Робсон. Паттерны проектирования». Начнем с паттерна «Стратегия». Но сначала (прежде чем я дам вам конкретные примеры кода) небольшое изложение главы этой книги, где описан данный паттерн. Итак, в некой организации был разработан симулятор «Утиное озеро» — прикольная такая программа,… read more »

С# и концепция ООП. Продолжение-2

На прошлом уроке мы разобрали основные архитектурные идеи игры, а также разработали несколько классов. Сегодня начнем писать интерфейсную часть. Итак, идем в проект «MafiaGame» и находим там форму: Для начала назовем форму нормально, а не Form1. Для этого щелкаем по ней правой кнопкой мыши и во всплывшем меню выберем «Переименовать»: Для чего мы переименовываем? Дело… read more »

Синтаксический сахар C#

Синтаксический сахар – довольно полезный инструмент для программиста, несмотря на столь пренебрежительно-гламурное название. Для начала, что вообще такое «синтаксический сахар»? Стандартная википедия дает такое определение: «Синтаксический сахар – синтаксические возможности, применение которых не влияет на поведение программы, но делает использование языка более удобным для человека». Вообще, насчет применения синтаксического сахара существует множество противоположных мнений. Кто-то… read more »

С# и концепция ООП. Продолжение

На прошлом уроке   я рассказал основы концепции ОПП и мы начали писать игру «Мафия» на C#.  Продолжаем. Напомню краткое содержание: мы познакомились с различными парадигмами программирования (императивное, декларативное, функциональное ОПП и др.).  Было раскрыто преимущество ООП. Мы решили что-нибудь запрограммировать на C#, например, компьютерную игру, в качестве игры выбрали «Мафию». Но еще решили писать ее… read more »

C# и концепция программирования ООП

В этой статье я расскажу о том, почему концепция ООП лучше других парадигм программирования и дам основные сведения из объектно-ориентрованного языка C#. Сначала о том, какие вообще существуют парадигмы программирования. Императивное программирование. Это классический метод создания программ, выполняемых на машине Тьюринга. Машиной Тьюринга, по факту, является любой современный компьютер, за исключением, разве что квантовых компьютеров,… read more »

Sidebar