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

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

2
Какой длины типичный современный микропроцессорный конвейер?
Я кое-что узнал о конвейерной обработке, но это были 4-х и 5-ти ступенчатые процессы, и я думаю, что типичная современная конвейерная технология намного длиннее и сложнее на практике. Как долго типичные конвейеры и насколько мы можем ожидать их увеличения, и где находится точка достижения минимального возврата прироста производительности для более …

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

5
Особенности «всей команды» C ++?
В C ++ такие функции, как исключения, влияют на всю вашу программу: вы можете либо отключить их во всей программе , либо вам нужно иметь дело с ними во всем коде. Как говорится в известной статье о C ++ Report : Неудобно, что сложная часть исключений при кодировании - это …

3
Почему движки с правилами не написаны на прологе? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 6 лет назад . Из того, что я видел в Прологе, кажется, что он идеально подходит для создания …

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

4
Концептуально, как создать движок правил / ограничений (не графики / физики) для игры
Я хочу сделать простую игру, похожую на книги «Выбери свое приключение». Игроку предоставляется повествовательный текст, и он получает возможность выбрать свое действие из списка возможностей. Это, в свою очередь, приводит к новому повествовательному тексту до бесконечности. Единственный улов в том, что в зависимости от некоторых предыдущих решений, список возможностей может …

1
Недостатки функциональной промежуточной формы
Я пишу оптимизатор для языка, похожего на JavaScript, и мне нужно выбрать промежуточное представление кода. Очевидный / типичный выбор в эти дни - статическое одиночное назначение (SSA). Однако в современной реализации компилятора на C также обсуждается функциональная промежуточная форма, что в основном означает использование чисто функционального для промежуточного представления (чисто …

6
Слабая связь в объектно-ориентированном дизайне
Я пытаюсь изучить GRASP, и я нашел это объяснение ( здесь на странице 3 ) о низком соединении, и я был очень удивлен, когда обнаружил следующее: Рассмотрим метод addTrackдля Albumкласса, два возможных метода: addTrack( Track t ) и addTrack( int no, String title, double duration ) Какой метод уменьшает сцепление? …

1
Рассуждаете подождать до третьего раза в правиле трех?
Я только что наткнулся на статью « Правило трех » в википедии Правило трех - это практическое правило рефакторинга кода, позволяющее решить, когда реплицируемый фрагмент кода должен быть заменен новой процедурой. В нем говорится, что код может быть скопирован один раз, но когда один и тот же код используется три …

6
Задержка задач «размера прикуса» параллельно с невыполненной «основной» функцией?
После более чем двух лет работы в структуре отдела разработки «одинокий волк» мы внедряем Agile SCRUM. Отлично. Мне нравится Agile; будучи разработчиком, вы будете сосредоточены, заняты и продуктивны, без того, чтобы множество заинтересованных сторон толкали проект за проектом в горло, ожидая, что все это будет сделано вчера. Однако есть один …

10
Зачем нам нужны «функции обратного вызова»?
Я читаю книгу programming in Lua. Он сказал, что Закрытия предоставляют ценный инструмент во многих контекстах. Как мы уже видели, они полезны в качестве аргументов для функций высшего порядка, таких как sort. Замыкания полезны для функций, которые также создают другие функции, как, например, наш пример newCounter; Этот механизм позволяет программам …

7
Генерация случайного математического выражения
У меня в голове возникает эта идея генерировать и оценивать случайные математические выражения. Итак, я решил попробовать и разработать алгоритм, прежде чем кодировать его для тестирования. Пример: Вот несколько примеров выражений, которые я хочу генерировать случайным образом: 4 + 2 [easy] 3 * 6 - 7 + 2 [medium] 6 …
16 algorithms 

6
HTTP-сеанс или база данных
Я немного смущен тем, каким должен быть мой подход: я работаю над дизайном корзины покупок, и мне нужно хранить корзину покупок либо в сеансе, либо в базе данных, но я не уверен, какой подход будет наилучшим. Вот пример использования Пользователь не залогинен и не добавляет продукт в корзину (Анонимный пользователь) …

1
Как я могу протестировать мой веб-сервис REST?
Я новичок в модульном тестировании, у меня есть один веб-метод REST, который просто вызывает DB и заполняет DTO. Псевдокод public object GetCustomer(int id) { CustomerDTO objCust = //get from DB return objCust; } Я сомневаюсь, как написать тесты для этих методов и типы тестов (интеграция / модуль), которые будут включены. …

3
BackgroundWorker против Async / Await
Я новичок в разработке на C # и хочу создать более отзывчивый интерфейс. В моем предварительном исследовании я видел два метода для достижения этой цели: Многопоточность в сочетании с классом BackgroundWorker. Более новые модификаторы Async / Await. Новое значит лучше? В чем разница между двумя методами? Если я хочу создать …

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