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

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

4
Шаблон проектирования C # для рабочих с разными входными параметрами
Я не уверен, какой шаблон проектирования может помочь мне решить эту проблему. У меня есть класс Coordinator, который определяет, какой класс Worker должен использоваться - без необходимости знать обо всех различных типах Workers - он просто вызывает WorkerFactory и действует на общий интерфейс IWorker. Затем он устанавливает соответствующий Worker и …

6
Какой лучший способ избежать слишком большого количества if / else-if из следующего фрагмента кода?
Я пытаюсь написать сервлет, который выполняет задачу на основе значения "action", переданного в качестве входных данных. Вот образец которого public class SampleClass extends HttpServlet { public static void action1() throws Exception{ //Do some actions } public static void action2() throws Exception{ //Do some actions } //And goes on till action9 …

2
Вставка JSON-документа с ключом `.` в MongoDB
Во-первых, это скорее вопрос дизайна, чем вопрос программирования. Я создаю приложение, в котором я должен получить существующие данные JSON и вставить их в MongoDB. Я обнаружил, что некоторые из документов JSON имеют точку .в ключе. Я прочитал в документации MongoDB, что точки .не разрешены как ключи в MongoDB, так как …
14 json  mongodb 

1
Эффективность словарей C #
Словари C # - это простой способ узнать, существует ли что-то и т. Д. У меня есть вопрос, как они работают. Допустим, вместо словаря я использую ArrayList. Вместо использования ContainsKey(или эквивалентного метода на другом языке) я перебираю ArrayList, чтобы проверить, существует ли там что-то (или выполняет двоичный поиск, если данные …

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

5
Можно ли пойти против названий all-caps для перечислений, чтобы упростить их представление String?
Несколько раз я видел, как люди используют заглавные или даже строчные имена для перечисления констант, например: enum Color { red, yellow, green; } Это делает работу с их строковой формой простой и легкой, например, если вы хотите throw new IllegalStateException("Light should not be " + color + "."). Это кажется …
14 java  conventions  enum 

5
Как вы работаете с версиями в многостороннем проекте?
Я знаю, что это широкий вопрос, поэтому я постараюсь быть максимально конкретным. Этот вопрос скорее «организационный», чем технический. У нас есть многосторонний проект со следующими основными компонентами: Сервер, на котором размещена основная бизнес-логика (модели данных) Бэк-офис для клиентов, который использует основную бизнес-логику API приложения (REST), который также использует основную бизнес-логику …

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

4
Используйте состав и наследование для DTO
У нас есть веб-API ASP.NET, который предоставляет REST API для нашего одностраничного приложения. Мы используем DTO / POCO для передачи данных через этот API. Проблема в том, что эти DTO со временем становятся больше, поэтому мы хотим реорганизовать DTO. Я ищу "лучшие практики", как проектировать DTO: В настоящее время у …
13 rest  api-design  web-api  dto  poco 

5
Чистый интерфейсный JavaScript с веб-API и MVC-представления с помощью AJAX
Это была скорее дискуссия о том, что думают люди сегодня о том, как разделить веб-приложение. Я привык к созданию приложения MVC со всеми его представлениями и контроллерами. Обычно я создавал бы полное представление и передавал его обратно в браузер по запросу на полную страницу, если только не было определенных областей, …

5
Почему выходные данные компилятора называются объектным кодом?
Из эссе « Языки программирования», объясненного Полом Грэмом, опубликованным в Hackers & Painters : Язык высокого уровня, которым вы снабжаете компилятор, также известен как исходный код , а генерируемый им перевод машинного языка называется объектным кодом . Из статьи Википедии об объектном коде : Объектный код или иногда объектный модуль …

2
Правда ли, что «настоящие программисты могут писать ассемблерный код на любом языке»?
Настоящие программисты могут писать ассемблерный код на любом языке. (Ларри Уолл). Насколько я могу судить, мистер Ларри Уолл пытается сказать, что для настоящего программиста любой язык может иметь ту же функциональность, что и ASM. Но я серьезно не понимаю. Как вы можете написать ассемблерный код на языках высокого уровня, таких …

8
Как должно выглядеть резюме программиста-самоучки? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 6 лет назад . Некоторое время назад я задал вопрос о том, когда вы будете готовы искать …
13 resume 

3
Является ли использование макросов C / C ++ в качестве ярлыка для условной компиляции хорошей практикой?
Допустим, я хочу, чтобы в моем коде было несколько типов выходных сообщений. Один из них DEBUG, который печатается, только когда код скомпилирован в режиме отладки. Обычно я должен был написать что-то вроде #ifdef DEBUG std::cout << "Debug message" << std::endl; #endif что довольно громоздко и раздражает во многих местах. Является …
13 c++  c  macros 

7
Сохранение высокочастотных событий в базе данных с ограничением соединения
У нас есть ситуация, когда мне приходится иметь дело с огромным потоком событий, поступающих на наш сервер, в среднем около 1000 событий в секунду (пик может составлять ~ 2000). Проблема Наша система размещена на Heroku и использует относительно дорогую базу данных Heroku Postgres , которая позволяет подключать до 500 БД. …

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