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

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

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

3
Как обрабатывать ошибки после проверки в команде (DDD + CQRS)
Например, когда вы отправляете форму регистрации, вы должны подтвердить Domain Model( WriteModelв CQRS), что она находится в действительном состоянии (например, синтаксис адреса электронной почты, возраст и т. Д.). Затем вы создаете Commandи отправляете его Command Bus. Я понимаю, что Команды не должны ничего возвращать. Итак, как вы справляетесь с ошибкой …

2
TCP или UDP для многопользовательской игры?
Это вопрос, который я вижу много. Большинство людей говорят, что UDP всегда лучше для игр в реальном времени, чем TCP. Насколько я понимаю, TCP пытается пересылать пакеты снова и снова, пока другая сторона не получит их, тогда как UDP не заботится. Большинство вещей, которые я прочитал, заключается в том, что …

4
Совпадение шаблонов с типами идиоматическое или плохой дизайн?
Кажется, что код F # часто сопоставляется с типами. Конечно match opt with | Some val -> Something(val) | None -> Different() кажется обычным. Но с точки зрения ООП это выглядит очень похоже на поток управления, основанный на проверке типа во время выполнения, которая обычно вызывает недовольство. Чтобы объяснить это, …

3
Что на самом деле является модулем в разработке программного обеспечения? [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 5 лет назад . По словам Стивена Шаха, «Классическая и объектно-ориентированная программная инженерия», глава 6: модуль …
18 software  modules 

1
Как PHP внутренне представляет строки?
UTF8? UTF16? Строки в PHP также отслеживают используемую кодировку? Давайте посмотрим на этот скрипт для примера. Скажи, что я бегу: $original = "शक्नोम्यत्तुम्"; Что на самом деле происходит? Очевидно, я думаю $original, не будет содержать только 7 символов. Эти глифы должны быть представлены несколькими байтами. Тогда я делаю: $converted = …
18 php  strings 

6
Можно ли использовать C ++ с .NET Framework?
Я прочитал много комментариев о программировании GUI, как на C #, так и на C ++. И я заметил, что платформа Microsoft .NET является мощной для программирования GUI. Так можно ли использовать C ++ и .NET Framework? Я думаю, что это будет отличная комбинация, поскольку C ++ является мощным языком, …
18 c++  .net 

4
Написание лексера на C ++
Каковы хорошие ресурсы о том, как написать лексер на C ++ (книги, учебные пособия, документы), каковы некоторые хорошие методы и практики? Я посмотрел в Интернете, и все говорят, чтобы использовать генератор лексера, как лекс. Я не хочу этого делать, я хочу написать лексер от руки.
18 c++  compiler  lexer 

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

9
Как сохранить статусы записи (такие как ожидающий, завершенный, черновой, отмененный ...)
Довольно много приложений требуют, чтобы записи в их таблицах имели статус, такой как «завершено», «черновик», «отменено». Каков наилучший способ хранения этих статусов? Чтобы проиллюстрировать то, к чему я клоню, приведу очень короткий пример. У меня есть простое приложение для блога, и у каждого сообщения есть статус: опубликовано, черновик или ожидает …

3
Как обрабатывать ограничения внешнего ключа при переходе от монолита к микросервисам?
Моя команда мигрирует из монолитного приложения ASP.NET в .NET Core и Kubernetes. Изменения в коде, кажется, происходят так же хорошо, как и следовало ожидать, но где моя команда сталкивается с большим количеством разногласий вокруг базы данных. В настоящее время у нас есть довольно большая база данных SQL Server, в которой …

1
Какая польза от DTO вместо Entity?
Я работаю над приложением RCP, я новичок в этом приложении. Spring bean-компоненты используются для написания бизнес-логики для сохранения / извлечения сущностей. Но вместо того, чтобы отправлять объекты напрямую клиенту, мы конвертируем их в DTO и заполняем клиента. Сохраняя, мы снова конвертируем DTO в сущность и сохраняем. В чем выгода этих …
18 java  spring  entity  map  dto 

3
Код проверки доставки. Почему бы тебе?
Я хотел бы отправить тестовый код вместе с продуктом. В частности, предоставьте опцию, чтобы любой, у кого есть копия нашей программы, мог нажать кнопку «самопроверка» или пройти --self-test в командной строке и выполнить полный набор модулей | интеграционные тесты. В основном я хочу сделать это, чтобы помочь отладить проблемы, обнаруженные …

3
Конкурс «Надежность против правильности» [закрыт]
Закрыто . Этот вопрос нуждается в деталях или ясности . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Добавьте детали и проясните проблему, отредактировав этот пост . Закрыто 2 года назад . Читая «Код завершен 2» в параграфе « Качество требований», я нашел это: Определены ли приемлемые компромиссы …

6
Цикл Foreach с циклом break / return против цикла while с явным инвариантом и постусловием
Это наиболее популярный способ (мне кажется) проверки, находится ли значение в массиве: for (int x : array) { if (x == value) return true; } return false; Однако в книге, которую я читал много лет назад, вероятно, Виртом или Дейкстрой, было сказано, что этот стиль лучше (по сравнению с циклом …

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