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

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

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

3
Каков ответ функционального программирования на основанные на типе инварианты?
Я знаю, что концепция инвариантов существует в нескольких парадигмах программирования. Например, инварианты цикла актуальны в ОО, функциональном и процедурном программировании. Однако, один очень полезный вид, найденный в ООП, является инвариантом данных определенного типа. Это то, что я называю «инвариантами на основе типов» в заголовке. Например, Fractionтип может иметь numeratorи denominatorс …

5
Всегда ли имеет смысл «программировать на интерфейс» в Java?
Я видел обсуждение этого вопроса относительно того, как будет реализован класс, реализующий интерфейс. В моем случае я пишу очень маленькую программу на Java, которая использует экземпляр TreeMap, и, по мнению каждого, она должна создаваться следующим образом: Map<X> map = new TreeMap<X>(); В моей программе я вызываю функцию map.pollFirstEntry(), которая не …

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

2
Проектирование классов исключений
Я пишу небольшую библиотеку, и у меня возникли проблемы с проектированием обработки исключений. Я должен сказать, что меня (все еще) смущает эта особенность языка C ++, и я постарался прочитать как можно больше по этому вопросу, чтобы понять, что мне нужно сделать, чтобы правильно работать с классами исключений. Я решил …

3
Лучше написать библиотеку .NET с учетом ограничений COM или отделить библиотеку .NET от Interop?
Я наткнулся на эту интересную статью: как я полюбил COM-совместимость в CodeProject, и это заставило меня задуматься ... Автор утверждает, что они не хотят никаких COM-объектов в своей библиотеке .NET, потому что это лишает красоту их библиотеки .NET. Вместо этого они предпочли бы написать отдельную библиотеку Interop, которая предоставляет свою …

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

4
Является ли Шаблон посетителя действительным в этом сценарии?
Цель моей задачи - спроектировать небольшую систему, которая может выполнять запланированные повторяющиеся задачи. Повторяющаяся задача - это что-то вроде «отправлять электронное письмо администратору каждый час с 8:00 до 17:00 с понедельника по пятницу». У меня есть базовый класс с именем RecurringTask . public abstract class RecurringTask{ // I've already figured …

3
мы прошли полный круг с микросервисами, возвращаясь к очень старым школьным подходам?
С точки зрения архитектуры и дизайна программного обеспечения, как микросервисы «складываются» (каламбур) против промежуточного программного обеспечения? Я пришел из Java, и похоже, что когда вы уходите от простого REST в качестве API и абстрагируетесь от различных слоев и параметров соединения, по крайней мере, в Java, вы почти полностью вернулись к …

3
Является ли использование интерфейсов для типов данных анти-паттерном?
Предположим, у меня есть различные объекты в моей модели (с использованием EF), например, Пользователь, Продукт, Счет-фактура и Заказ. Я пишу пользовательский элемент управления, который может распечатывать сводки объектов сущностей в моем приложении, где сущности принадлежат заранее определенному набору, в этом случае я говорю, что сводки пользователей и продуктов можно суммировать. …

3
количество строк, когда каждый символ должен встречаться даже раз
Я уже давно бьюсь над этой проблемой, и это действительно начинает меня расстраивать. Проблема в: У меня есть набор символов, A, B, C, и D. Я должен сказать, сколько способов строка может быть построена из этих символов, когда длина nи каждый символ должен встречаться даже раз. Например, ответ для n …

5
Почему следует использовать HashMap (в функциях), чтобы определить, какое значение возвращать (для ключа), когда конструкция if else может выполнить работу в более подходящее время?
Когда я недавно работал в большой компании, я заметил, что программисты придерживались этого стиля кодирования: Предположим, у меня есть функция, которая возвращает 12, если вход A, 21, если B, и 45, если C. Так что я могу написать сигнатуру функции как: int foo(String s){ if(s.equals("A")) return 12; else if(s.equals("B")) return …

1
Связь между строкой кэша и страницей памяти
Если я прав, страница в основной памяти - это наименьшая единица измерения для передачи данных между основной памятью и внешним устройством хранения, таким как жесткий диск. Строка кэша основной памяти - это самая маленькая единица для передачи данных между основной памятью и кэшем процессора. Интересно, будет ли размер страницы всегда …
9 memory  caching 

1
Как сообщить автозаполнению WebStorm о WebGLRenderingContext
Я работаю над проектом с участием WebGL и использую WebStorm для разработки. Одна из проблем, связанных с процессом разработки, заключается в том, что WebStorm не может автоматически завершать действия, связанные с WebGL. В частности, если я аннотирую значение как имеющее типWebGLRenderingContext /** @type {!WebGLRenderingContext} */ var gl; WebStorm жалуется, что …
9 webgl 

4
Самый эффективный способ генерировать все потомки всех узлов дерева
Я ищу наиболее эффективный алгоритм, чтобы взять дерево (хранится как список ребер; ИЛИ как список отображений из родительского узла в список дочерних узлов); и создайте для КАЖДОГО узла список всех узлов, произошедших от него (конечный уровень и не конечный уровень). Реализация должна быть с помощью циклов вместо повторения, из-за масштаба; …

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