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

Q & A для профессионалов, преподавателей и студентов, работающих в жизненном цикле разработки систем

7
Вызывает ли исключение из свойства плохую форму?
Я всегда придерживался мнения, что свойства (т. Е. Их операции set / get) должны быть быстрыми / немедленными и безошибочными. Вы никогда не должны пытаться поймать или установить собственность. Но я смотрю на некоторые способы применения безопасности на основе ролей к свойствам некоторых объектов. Например, свойство Employee.Salary. Некоторые из решений, …
15 .net  exceptions 

7
Как избежать необходимости модульного тестирования приватных методов
Я знаю, что вы не должны тестировать закрытые методы, и если вам кажется, что вам нужно, там может быть класс, ожидающий выхода. Но я не хочу иметь классы gazillion только для того, чтобы я мог тестировать их публичные интерфейсы, и я обнаружил, что для многих классов, если я просто тестирую …

3
Масштабирование монолитов против масштабирования микросервисов
Одним из распространенных аргументов в пользу использования микросервисов является лучшая масштабируемость. Но мне интересно, действительно ли этот аргумент верен. Допустим, у нас было приложение, состоящее из 10 микросервисов, 9 из которых имели по два экземпляра (для избыточности), а одно - с 4 экземплярами для обработки нагрузки (масштабируемость). Аргумент про-микросервиса заключается …

2
Как спроектировать контроль доступа на основе ролей?
Я пытаюсь следовать модели контроля доступа к базам ролей, чтобы ограничить возможности пользователей в моей системе. Пока у меня есть следующие объекты: пользователи - люди, которые будут использовать систему. Здесь у меня есть имена пользователей и пароли. Роли - Коллекция ролей, которые могут иметь пользователи. Вещи, такие как ресурсы менеджера, …

5
Использование Func вместо интерфейсов для IoC
Контекст: я использую C # Я разработал класс, и чтобы изолировать его и упростить модульное тестирование, я передаю все его зависимости; он не создает объектов внутри. Однако вместо того, чтобы ссылаться на интерфейсы для получения необходимых данных, я использую ссылки общего назначения, возвращающие требуемые данные / поведение. Когда я внедряю …

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

2
В чем разница между необязательными и Nullable типом
Свифт имеет Optionals. C # имеет Nullableтипы. Насколько я могу судить, оба служат одной и той же цели, кроме значения некоторого типа, они хранят информацию о том, имеет ли переменная значение или не определена (неинициализирована). Вопрос в том, Optionalsчто это просто Nullableтипы с другим именем или есть другие концептуальные различия? …

5
Какой самый эффективный способ обмена кодом между приложениями .NET?
В нашей работе у нас есть несколько различных приложений .net, которые имеют много основных функций. Мы создали эти приложения, используя чистую n-уровневую архитектуру, но мы достигли того момента, когда поняли, что повторно реализовали одни и те же функции несколько раз. Очевидно, что это нарушает СУХОЙ, и мы хотели бы исправить …

3
Чистая архитектура - слишком много вариантов использования
Я собираюсь перейти на Чистую архитектуру и поднять свой уровень Android с MVC на MVP , представляя DI с Dagger 2, Reactivity с RxJava 2 и, конечно, Java 8. В чистой архитектуре MVP существует слой между объектами (в хранилищах данных) и презентаторами, которые должны получить к ним доступ. Этот слой …
15 java  android  use-case  mvp 

1
Какое имя не является частью имени файла? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 3 года назад . Учитывая путь к файлу: /some/path/abc.txt Имя файла - «abc.txt», а расширение - «txt». …

3
Что такое мультитенантное приложение?
Согласно определению, доступному онлайн, « Многопользовательский режим - это архитектура, в которой один экземпляр программного приложения обслуживает нескольких клиентов ». Это означает, что у меня есть веб-сайт ресторана или школы, и я предоставляю доступ к другому ресторану или школе, чтобы использовать мое приложение со своими данными, используя свои учетные данные, …

3
Должен ли я вернуть ответ 204 или 404, если ресурс не найден?
Я занимаюсь разработкой простого сервиса RESTful для турниров и расписаний. Когда турнир создается с помощью запроса POST, содержащего тело JSON, турнир вставляется в элемент BiMap, объявленный в реализации DAO следующим образом: private BiMap<String, Tournament> tournaments = Maps.synchronizedBiMap(HashBiMap.create()); Когда создается турнир, возвращается связанный с ним идентификатор строки, чтобы пользователь мог иметь …
15 java  rest  web-services  http 

5
Что является полезным для мышления при проведении формальной проверки кода
Наша команда недавно начала проводить проверки кода на предмет каждой регистрации. Как руководитель группы, я пытаюсь найти баланс между предоставлением слишком большого количества предложений, раздражением разработчиков и уменьшением результатов работы команды и отказом от кода, который я написал бы по-другому. Есть ли какие-либо доказательства, исследования или рекомендации из хорошо известных …

2
Куда подтолкнуть провальный тест?
Я только что изменил настройки веток в своем репозитории GitHub, так что моя [следующая] ветвь требует прохождения сборки CI через запрос на получение. Затем последовало обсуждение с несколькими членами команды о неудачных тестах. Ради контекста ... Хранилище имеет [мастер] ветвь , которая только PR'd в когда есть релиз, так [мастер] …

4
Имеют ли смысл установщики Windows для внутренних бизнес-приложений?
Я пытаюсь построить общее понимание того, что является общим в этой ситуации, чтобы я мог решить, имеет ли смысл продолжать его дальше. Приветствуются ли установщики в типичной корпоративной среде со следующим? Изменить процесс управления Dev / QA / Производственные среды Назначенные группы развертывания для различных областей (межсетевой экран, база данных, …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.