[.NET] Как я на собеседование готовился №1
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Иногда так случается, что хочется сменить работу. В таком случае, у нас есть несколько вариантов:
- 1) Потребовать прибавки, чтобы получить дополнительную мотивацию работать
- 2) Потребовать отпуск, чтобы отдохнуть от надоевших задач и набраться сил.
- 3) Сменить работу, выложив резюме, в надежде, что Вы получите предложение, которое будет Вас удовлетворять.
Если Вы все таки выбрали 3й вариант, то Вы поступили, как я. И я получил предложение мечты: родной стек(последнее время, я был вынужден сменить любимый C#, на php, так ещё и bitrix framework), финтех и с прибавкой к зарплате. Конечно же, первый делом, я решил подновить знания. Этот текст — это в первую очередь, моя шпаргалка, составленная с текста вакансии на должность Middle .NET Engineer моей мечты.
ORM — Entity Framework / NHibernate
Entity framework и NHibernate — это фреймворки, которые используют технологию ORM(объектно-ориентировочного отображения(маппинга)для сопоставления объектов(классов) с таблицами в БД. То есть ORM, условно, прослойка между кодом и базой данных, которая позволяет созданые в программе объекты складывать/получать в/из бд.
Плюсы EF
- Позволяет создать таблицу кодом или же используя EF Designer и сгенерировать новую базу данных
- Вы можете «автоматизировать» создание объектов, а так же отслеживать изменения этих объектов, чем упростить процес обновления базы данных
- Использование единого синтаксиса(LINQ) для любых коллекций объектов, будь то данные из БД, или просто список; он достаточно быстр, при правильном использовании, а так же в меру лаконичен.
- EF может заменить огромные куски кода, которые Вы бы писали самостоятельно.
- Сокращает время разработки.
- Поддерживает асинхронные операции с базами данных.
Минусы EF
- Использование «нетрадиционного» подхода обработки данных, доступного не с каждой базой данных.
- При любом изменении в схеме БД, EF откажется работать; потребуются изменения в коде.
- SQL-код генерируются в некотролируемом виде, мы должны доверять разработчикам самого EF.
- Слабо подходит для больших доменных моделей.
Плюсы NHibernate
- Большие возможности маппинга.
- Поддержка кэша второго уровня.
- Отличная реализация Unit Of Work.
- Вы можете использовать почти любую базу данных.
- Очень популярный в корпоративной среде.
- Поддерживает различные стратегии генерации идентификаторов из базы данных.
Минусы NHibernate
- Большое время подготовки метаданных.
- Написание сопоставления, может быть очень утомительным, ведь XML — не самый дружелюбный язык.
- Сложен в освоении, так как сложен сам процес поиска документации.
Writing unit tests frameworks
Юнит-тесты позволяют быстро и автоматически протестировать отдельные компоненты приложения независимо от остальной его части. Не всегда юнит-тесты могут покрыть весь код приложения, но тем не менее они позволяют существенно уменьшить количество ошибок уже на этапе разработки.
Популярные фрейморки:
- xUnit.net
- MS Test
- NUnit
Начиная с Visual Studio 2019 специально для тестов были добавлены три типа проектов: xUnit Test Project(.NET Core), MSTest Test Project(.NET Core) и NUnit Test Project(.NET Core)
Я буду рассматривать xUnit
Тесты в xUnit определяются в виде методов, к которым применяются атрибуты Fact, Theory.
Fact- это отдельный тест, у которого нет параметров. Theory — тест, принимающий параметры, может иметь несколько сценариев.
Пример
SPL
[Fact]
public void Should_do_somthing(){...}
[Theory]
[InlineData(20, 180, 80, ”good”)]
[InlineData(20, 180, 50, ”bad”)]
public void Should_measure_weight(int age, int height, decimal weight, string expected){...}
Существует целая парадиграма тестирования, которую xUnit реализует в полной мере: Arrange-Act-Assert.
- Arrange: устанавливает начальные условия для выполнения теста
- Act: выполняет тест (обычно представляет одну строку кода)
- Assert: верифицирует результат теста
Arrange и Act — это обычный код на C#, а Assert — это отдельный класс с набором статических методов для проверки результатов.
Основные методы
SPL
- All(collection, action): метод подтверждает, что все элементы коллекции collection соответствуют действию action
- Contains(expectedSubString, actualString): метод подтверждает, что строка actualString содержит expectedSubString
- DoesNotContain(expectedSubString, actualString): метод подтверждает, что строка actualString не содержит строку expectedSubString
- DoesNotMatch(expectedRegexPattern, actualString): метод подтверждает, что строка actualString не соответствует регулярному выражению expectedRegexPattern
- Matches(expectedRegexPattern, actualString): метод подтверждает, что строка actualString соответствует регулярному выражению expectedRegexPattern
- Equal(expected, result): метод сравнивает результат теста в виде значения result и ожидаемое значение expected и подтверждает их равенство
- NotEqual(expected, result): метод сравнивает результат теста в виде значения result и ожидаемое значение expected и подтверждает их неравенство
- Empty(collection): метод подтверждает, что коллекция collection пустая
- NotEmpty(collection): метод подтверждает, что коллекция collection не пустая
- True(result): метод подтверждает, что результат теста равен true
- False(result): метод подтверждает, что результат теста равен false
- IsType(expected, result): метод подтверждает, что результат теста имеет тип expected
- IsNotType(expected, result): метод подтверждает, что результат теста не представляет тип expected
- IsNull(result): метод подтверждает, что результат теста имеет значение null
- IsNotNull(result): метод подтверждает, что результат теста не равен null
- InRange(result, low, high): метод подтверждает, что результат теста находится в диапазоне между low и high
- NotInRange(result, low, high): метод подтверждает, что результат теста не принадлежит диапазону от low до high
- Same(expected, actual): метод подтверждает, что ссылки expected и actual указывают на один и тот же объект в памяти
- NotSame(expected, actual): метод подтверждает, что ссылки expected и actual указывают на разные объекты в памяти
- Throws(exception, expression): метод подтверждает, что выражение expression генерирует исключение exception
Таким образом, мы прошли 2 из 7 пунктов резюме.
В следующей части:
• DI frameworks
• Application designs understanding (n-Tier, Onion).
Спасибо, что дочитали, таким образом, я понимаю, что не один я готовлюсь к чему-либо ;)
Материалы: раз, два, три
===========
Источник:
habr.com
===========
Похожие новости:
- [.NET, C#] Авторизация из приложения C# на портале BlaBlaCar.ru
- [Google Cloud Platform, Облачные сервисы] Как мы случайно сожгли $72 000 за два часа в Google Cloud Platform и чуть не обанкротились (перевод)
- [Программирование] Как импортировать существующие виртуальные машины VMWare в Terraform (перевод)
- [.NET, C++, Обработка изображений, C#] Сравниваем производительность C# и C++ в задачах обработки изображений
- [PostgreSQL, .NET, API, C#] Development of “YaRyadom” (“I’mNear”) application under the control of Vk Mini Apps. Part 1 .Net Core (перевод)
- [Python, SQL] Немного SQL алхимии
- [Программирование, .NET, Управление персоналом, Карьера в IT-индустрии, Интервью] Заметки про интервью на разработчика
- [Разработка для интернета вещей, Интернет вещей] Анонсируем новую версию Rightech IoT Cloud v2.2. Небольшой обзор
- [Программирование, .NET, C#] Вышел .NET 5. И что?
- [Разработка веб-сайтов, JavaScript] JavaScript исполняется 25 лет: краткая история языка и скидка 50% на WebStorm
Теги для поиска: #_.net, #_unittesting, #_.net, #_orm, #_.net
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 17:45
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Иногда так случается, что хочется сменить работу. В таком случае, у нас есть несколько вариантов:
Если Вы все таки выбрали 3й вариант, то Вы поступили, как я. И я получил предложение мечты: родной стек(последнее время, я был вынужден сменить любимый C#, на php, так ещё и bitrix framework), финтех и с прибавкой к зарплате. Конечно же, первый делом, я решил подновить знания. Этот текст — это в первую очередь, моя шпаргалка, составленная с текста вакансии на должность Middle .NET Engineer моей мечты. ORM — Entity Framework / NHibernate Entity framework и NHibernate — это фреймворки, которые используют технологию ORM(объектно-ориентировочного отображения(маппинга)для сопоставления объектов(классов) с таблицами в БД. То есть ORM, условно, прослойка между кодом и базой данных, которая позволяет созданые в программе объекты складывать/получать в/из бд. Плюсы EF
Минусы EF
Плюсы NHibernate
Минусы NHibernate
Writing unit tests frameworks Юнит-тесты позволяют быстро и автоматически протестировать отдельные компоненты приложения независимо от остальной его части. Не всегда юнит-тесты могут покрыть весь код приложения, но тем не менее они позволяют существенно уменьшить количество ошибок уже на этапе разработки. Популярные фрейморки:
Начиная с Visual Studio 2019 специально для тестов были добавлены три типа проектов: xUnit Test Project(.NET Core), MSTest Test Project(.NET Core) и NUnit Test Project(.NET Core) Я буду рассматривать xUnit Тесты в xUnit определяются в виде методов, к которым применяются атрибуты Fact, Theory. Fact- это отдельный тест, у которого нет параметров. Theory — тест, принимающий параметры, может иметь несколько сценариев. ПримерSPL[Fact]
public void Should_do_somthing(){...} [Theory] [InlineData(20, 180, 80, ”good”)] [InlineData(20, 180, 50, ”bad”)] public void Should_measure_weight(int age, int height, decimal weight, string expected){...} Существует целая парадиграма тестирования, которую xUnit реализует в полной мере: Arrange-Act-Assert.
Arrange и Act — это обычный код на C#, а Assert — это отдельный класс с набором статических методов для проверки результатов. Основные методыSPL
Таким образом, мы прошли 2 из 7 пунктов резюме. В следующей части: • DI frameworks • Application designs understanding (n-Tier, Onion). Спасибо, что дочитали, таким образом, я понимаю, что не один я готовлюсь к чему-либо ;) Материалы: раз, два, три =========== Источник: habr.com =========== Похожие новости:
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 17:45
Часовой пояс: UTC + 5