Программная инженерия

9
На каком этапе Agile (SCRUM) мы должны начать создавать тесты автоматизации?

Немного предыстории меня - я работаю тестером в течение почти 2 лет в Agile-среде с использованием SCRUM (спринты 1-2 недели). Поэтому я хочу представить автоматизированное тестирование в моей работе с использованием Selenium WebDriver (с Java). У меня вопрос во время, когда я должен проверить...

9
Должен ли я использовать слой между службой и хранилищем для чистой архитектуры - Spring

Я работаю в архитектуре, она собирается предложить API отдыха для веб-клиента и мобильных приложений. Я использую Spring (Spring MVC, Spring данных JPA, ... и т. Д.). Модель предметной области закодирована со спецификацией JPA. Я пытаюсь применить некоторые концепции чистой архитектуры (...

9
Можно ли сделать длинный код, представляющий вычисление, более легким для чтения?

Длинные методы обычно считаются плохими, однако в моем коде есть несколько трудных для понимания длинных методов (более 50 строк). У меня проблемы с упрощением чтения этих методов, потому что один оператор внутри уже содержит более 50 строк, и этот трудный для чтения единственный оператор состоит в...

9
Защита ввода пользователем регулярных выражений от атак

Мне известно об отказе в обслуживании регулярных выражений (ReDoS). Есть ли какой-нибудь разумный способ позволить пользователям создавать собственные регулярные выражения, гарантируя при этом, что они не отправляют экспоненциально медленный...

9
Как поведенческая разработка улучшает ясность, когда естественные языки неоднозначны?

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

9
Запись в начале файла того, что вы знаете только в конце

Справочная информация: я пишу код микроконтроллера C для записи файла EBML. EBML похож на двоичный XML с вложенными элементами, но вместо начального и конечного тегов есть начальный идентификатор, длина, а затем данные. Я записываю это во внешнюю флэш-память в приложении с низким...

9
DDD подход к базовым операциям CRUD в сложном доменно-ориентированном приложении

Моя компания переписывает наше веб-приложение с нуля. Это крупное приложение уровня предприятия со сложной областью в финансовой индустрии. Мы используем ORM (Entity Framework) для сохранения. По сути, половина наших приложений сосредоточена на сборе необработанных данных от пользователя, их...

9
Если юнит-тесты охватывают только «функциональное» программное обеспечение

Мы используем StructureMap в новом проекте по разработке программного обеспечения. Один из членов команды реализовал модульный тест, который в основном проверяет конфигурацию контейнера StructureMap . Это делается следующим образом; Подсчитывает количество экземпляров сборок, настроенных для...

9
Шаблон C # для чистой обработки «свободных функций», избегая статических классов «вспомогательного пакета» в стиле Helper

Недавно я рассматривал несколько статических классов «вспомогательных пакетов» в стиле Хелпера, плавающих вокруг больших кодовых баз C #, с которыми я работаю, в основном, как следующий очень сжатый фрагмент: // Helpers.cs public static class Helpers { public static void DoSomething() {} public...

9
Шаблоны не являются строительными блоками - поэтому я не должен создавать приложение на основе шаблонов MVC / MVP?

Я читал эту страницу о шаблонах проектирования и о том, как вы должны обращаться с ними при написании кода. Насколько я понимаю, в заголовке ссылки говорится: Шаблоны не являются строительными блоками. Если я правильно понимаю, это значит не использовать шаблон проектирования, пока это не имеет...

9
Я делаю свои занятия слишком гранулированными? Как следует применять принцип единой ответственности?

Я пишу много кода, который включает в себя три основных шага. Получить данные откуда-то. Преобразуйте эти данные. Положите эти данные куда-нибудь. Я обычно заканчиваю тем, что использую три типа классов - вдохновленные их соответствующими шаблонами дизайна. Фабрики - построить объект из какого-то...

9
Обход правил у волшебников и воинов

В этой серии постов в блоге Эрик Липперт описывает проблему объектно-ориентированного проектирования на примере мастеров и воинов, где: abstract class Weapon { } sealed class Staff : Weapon { } sealed class Sword : Weapon { } abstract class Player { public Weapon Weapon { get; set; } } sealed class...

9
Какие данные должны храниться как `Заявка`?

В ASP.Net Core я считаю Claimsавторизацию очень не конкретным методом. Мы можем добавить что угодно как ClaimTypeи ClaimValueпару; groups, firstname, фамилия, brithdate, canAccessThisURI, isEditor и т. д. Однако этот подход (хранение всего, что может быть сохранено как утверждения) создаст огромную...

9
Хорошая идея - иметь возможность использовать язык генератора, такой как «yield»?

PHP, C #, Python и, вероятно, некоторые другие языки имеют yieldключевое слово, которое используется для создания функций генератора. В PHP: http://php.net/manual/en/language.generators.syntax.php В Python: https://www.pythoncentral.io/python-generators-and-yield-keyword/ В C #:...

9
Ручное написание модульных тестов Proof By Example?

Мы знаем, что пишем JUnit тестов демонстрирует один конкретный путь через ваш код. Один из моих партнеров прокомментировал: Написание модульных тестов вручную - это Proof By Example . Он пришел из истории Haskell, который имеет такие инструменты, как Quickcheck и способность рассуждать о поведении...

9
Как применить некоторые концепции DDD к реальному коду? Конкретные вопросы внутри

Я изучал DDD, и в настоящее время я пытаюсь найти способ применить концепции в реальном коде. У меня около 10 лет опыта работы с N-ярусом, поэтому очень вероятно, что я борюсь за то, что моя ментальная модель слишком связана с этим дизайном. Я создал веб-приложение Asp.NET и начинаю с простого...

9
Правильный дизайн, чтобы избежать использования dynamic_cast?

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

9
окружающий контекст против внедрения конструктора

У меня много базовых классов, которым требуется ISessionContext базы данных, ILogManager для журнала и IService, используемый для связи с другими сервисами. Я хочу использовать внедрение зависимостей для этого класса, используемого всеми основными классами. У меня есть две возможные реализации....

9
Как бы я разработал метод TryParse, который предоставляет подробную информацию в случае ошибки синтаксического анализа?

При анализе пользовательского ввода обычно рекомендуется не генерировать и перехватывать исключения, а использовать методы проверки. В .NET BCL это будет разница между, например, int.Parse(создает исключение для недопустимых данных) и int.TryParse(возвращает falseнедопустимые данные). Я создаю свой...

9
Следуйте по пути, который я знаю, затем попытайтесь внедрить правильные методы кодирования или начните с хороших методов кодирования и попытайтесь придумать мой путь до конца?

Прежде всего, я хочу сказать, что я привык заниматься процедурным программированием как своим хобби - я пытаюсь выучить ООП на нескольких языках и понять теорию , но не практику. У меня есть pet-проект, который я хотел построить, в частности, на PHP с базой данных (не важно, какой именно). Моей...