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

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

6
Как документировать бизнес-правила
Мне интересно, что было бы формальным и наиболее распространенным методом документирования бизнес-правил? Также, как вы документируете спецификации пользовательского интерфейса для артефактов разработки (например, Документирование полей формы и как кнопки ведут себя на форме, информационный текст и т. Д.)

3
Где должна лежать бизнес-логика в микросервисной архитектуре?
Все еще пытаюсь обернуть голову вокруг микросервисной архитектуры, так как я привык к монолитному подходу Предположим, мы пытаемся создать чрезвычайно упрощенную систему бронирования Uber. Чтобы упростить, скажем , у нас есть 3 услуги и API шлюза для клиента: Booking, Drivers, Notificationи мы имеем следующий рабочий процесс: При создании нового бронирования: …

5
Подводные камни доменного дизайна с Entity Framework
Многие учебники по DDD, которые я изучал, в основном охватывают теорию. Все они имеют примеры элементарного кода (Pluralsight и аналогичные). В Интернете также предпринимаются попытки нескольких людей создать учебники по DDD с EF. Если вы начнете их изучать ненадолго - вы быстро заметите, что они сильно отличаются друг от друга. …

2
Является ли изоляция модели домена / персистентности такой неловкой?
Я углубляюсь в концепции доменно-управляемого проектирования (DDD) и обнаружил некоторые странные принципы, особенно в отношении изоляции домена и модели персистентности. Вот мое основное понимание: Служба на прикладном уровне (предоставляющая набор функций) запрашивает объекты домена из репозитория, в котором она нуждается для выполнения своей функции. Конкретная реализация этого хранилища извлекает данные …

2
Зачем использовать `const foo = () => {}` вместо `function foo () {}`
Например, в этом видео Redux инструктор всегда использует такой синтаксис, как const counter = (state=0, action) => { ... function body here } где я бы просто использовал «традиционный» function counter(state=0, action) { ... function body here } Что на самом деле короче и, ИМО, понятнее. Проще отсканировать достаточно ровный …

2
печенье против сессии против JWT
Я читаю на аутентификацию / авторизацию в веб-приложениях. Кто-нибудь может подтвердить / исправить мои нынешние знания? Cookie-файлы: в ранней версии текстовый файл с уникальным клиентом идентифицировал всю остальную информацию, необходимую для клиента (например, роли) Сессия: в файл отправляется только уникальный идентификатор клиента (также называемый cookie), все остальное хранится на сервере …

4
MVC и RESTful API сервис
MVC довольно прост. Есть Модель, Контроллер и Вид. Когда мы создаем веб-сайт, все это объединяется, когда клиент отправляет запрос ключевого слова REST на сервер -> сервер сопоставляет запрошенный URL с действием контроллера -> который затем вызывает модель (ы) для сбора / обработки данных, получает результат -> и возвращает результат обратно …

1
Могу ли я включить части кода, лицензированного по MIT, в свой проект с закрытым исходным кодом?
Это может быть простой ответ да / нет, но я предлагаю подробные объяснения. сценарий Меня попросили расширить систему с закрытым исходным кодом на моей работе, которая официально не распространяется ни под какой лицензией. Я думал, что однажды узнал, что по умолчанию все права защищены, но я не могу сейчас найти …

3
Что возвращает балансировщик нагрузки?
Когда пользователь нажимает на балансировщик нагрузки, а балансировщик нагрузки определяет, какой веб-сервер следует пересылать, что происходит дальше? Направляет ли балансировщик нагрузки запрос и все его данные на веб-сервер, получает ответ веб-сервера и возвращает его обратно пользователю? Или это больше похоже на перенаправление, когда балансировщик нагрузки буквально просто возвращает IP-адрес выбранного …

3
Почему Haskell и Scheme используют односвязные списки?
Двусвязный список имеет минимальные накладные расходы (просто еще один указатель на ячейку) и позволяет добавлять к обоим концам, переходить назад и вперед и, как правило, получать массу удовольствия.

3
Будет ли разрушение большого списка переполнять мой стек?
Рассмотрим следующую реализацию односвязного списка: struct node { std::unique_ptr<node> next; ComplicatedDestructorClass data; } Теперь предположим, что я перестал использовать некоторый std::unique_ptr<node> headэкземпляр, который затем выходит из области видимости, вызывая вызов его деструктора. Будет ли это удар по моему стеку для достаточно больших списков? Справедливо ли предположить, что компилятор будет выполнять …

3
Когда использовать REST для обработки запросов против использования AJAX для обработки запросов [закрыто]
Закрыто . Этот вопрос нуждается в деталях или ясности . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Добавьте детали и проясните проблему, отредактировав этот пост . Закрыто 6 лет назад . На моей веб-странице, если я хочу отображать динамические выпадающие списки (например, названия городов в зависимости …
12 rest  ajax 

4
Какова наилучшая практика для сохранения часовых поясов в базе данных?
Мы хотим начать сбор часовых поясов для каждого из наших адресов в базе данных. Как лучше хранить часовые пояса? Как бы вы пошли о приобретении часовых поясов для существующих адресных записей? Я использую сервер Microsoft SQL, .net mvc, C #. Любые предложения будут ценны.

4
Какой лучший способ вызвать метод, который доступен только одному классу, который реализует интерфейс, но не другой?
В основном мне нужно выполнять разные действия при определенных условиях. Существующий код написан таким образом Базовый интерфейс // DoSomething.java interface DoSomething { void letDoIt(String info); } Реализация первого рабочего класса class DoItThisWay implements DoSomething { ... } Реализация второго рабочего класса class DoItThatWay implements DoSomething { ... } Основной класс …

7
В объектно-ориентированных языках, когда объекты должны выполнять операции над собой и когда должны выполняться операции над объектами?
Предположим, есть Pageкласс, который представляет собой набор инструкций для средства визуализации страниц. И предположим, есть Rendererкласс, который знает, как отобразить страницу на экране. Структурировать код можно двумя разными способами: /* * 1) Page Uses Renderer internally, * or receives it explicitly */ $page->renderMe(); $page->renderMe($renderer); /* * 2) Page is passed …

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