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

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

2
Чем шаблон публикации-подписки отличается от gotos?
Насколько я понимаю, заявления Гото, как правило, осуждаются . Но шаблон « публикация-подписка» концептуально похож на то, что, когда часть кода публикует сообщение, он выполняет одностороннюю передачу управления. Программист может не знать, какие части программы подписываются на это сообщение. Я видел нечто подобное во многих программах на JavaScript, в которых …

5
Булевый класс Java - почему бы не перечисление?
Мне кажется, что булев класс является идеальным кандидатом для реализации в качестве перечисления. Глядя на исходный код, большая часть класса - это статические методы, которые можно перемещать без изменений в перечисление, остальные становятся намного проще, чем перечисление. Сравните оригинал (комментарии и статические методы удалены): public final class Boolean implements java.io.Serializable, …
11 java  api  source-code 

3
Отправка электронной почты без использования почтового сервера
JavaMail отправляет электронные письма, используя почтовый сервер, как правило, через интерфейс SMTP поставщика электронной почты. Нужно ли использовать почтовый сервер для отправки электронной почты? У меня есть веб-сайт, который будет отправлять электронные письма, и, если возможно, я хотел бы отправлять электронные письма непосредственно с кода веб-сайта без использования сервера электронной …
11 java  email 

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

2
Почему Apple разрешает использовать статические фреймворки только на iOS?
Очевидно, что у Apple есть возможность создавать динамически загружаемые библиотеки (известные как фреймворки) для iOS, поскольку они поставляются с XCode (например, UIKit). Разработчики приложений могут только создавать статические библиотеки или, в лучшем случае, обманывать Xcode, думая, что он загружает фреймворк, когда фактически загружает статическую библиотеку, это называется созданием фальшивых фреймворков, …

5
В функциональном программировании, как можно достичь модульности через математические законы?
Я прочитал в этом вопросе, что функциональные программисты склонны использовать математические доказательства, чтобы гарантировать, что их программа работает правильно. Это звучит намного проще и быстрее, чем модульное тестирование, но, исходя из опыта OOP / Unit Testing, я никогда не видел, чтобы это было сделано. Можете ли вы объяснить это мне …

2
Эффективное смешивание методов синхронизации и асинхронности в одном методе?
Хорошо, это звучит странно, но код очень прост и хорошо объясняет ситуацию. public virtual async Task RemoveFromRoleAsync(AzureTableUser user, string role) { AssertNotDisposed(); var roles = await GetRolesForUser(user); roles.Roles = RemoveRoles(roles.Roles, role); await Run(TableOperation.Replace(roles)); } (Я знаю, что говорю вроде в абстрактном ниже, но выше это фактический метод из того, что …

3
Канбан: Как выбрать размер рабочего элемента
Начиная с Канбана, я не уверен в том, насколько детальными должны быть мои рабочие задания. В то время как вы найдете много конкретных рекомендаций о том, как выбрать WIP, большинство прочитанных мною учебников по Kanban'у остаются весьма расплывчатыми относительно размера рабочего элемента (= карта на доске). Для планирования и оценки …
11 kanban 

6
Работа со статическим конструктором в Java
Я не получил полного понимания статических конструкторов в Java. Если это разрешено, почему это разрешено? В каких сценариях вы бы это использовали? Какой цели это будет служить? Может кто-нибудь дать мне простой пример, пожалуйста?
11 java 

2
Является ли TDD жизнеспособным в совместных проектах с открытым исходным кодом
Допустим, я хотел начать проект с открытым исходным кодом, который, как я надеюсь / ожидаю, заставит многих людей присылать исправления и еще много чего. Целесообразно ли применять строгий подход TDD? Могу ли / должен ли я / доверять соавторам писать тесты качества всякий раз, когда они отправляют патч? Одна вещь, …

10
Тестирование против не повторяйся (СУХОЙ)
Почему повторение при написании тестов так сильно поощряется? Кажется, что тесты в основном выражают то же самое, что и код, и, следовательно, являются дубликатом (в концепции, а не реализацией) кода. Не будет ли конечная цель DRY включать в себя устранение всего тестового кода?
11 testing  dry 

3
Глобальные постоянные значения по всему сайту MVC
Мой MVC (.NET) имеет некоторые постоянные значения по всему сайту, такие как номер телефона, физический адрес, адрес электронной почты и т. Д. Я хотел бы сохранить это значение один раз, поэтому будущие обновления будут проще, когда они изменят свои данные. Чтобы сделать мой вопрос проще, я сосредоточился только на номере …
11 mvc 

1
Как мне подойти к серьезному проекту F # без знания C #?
Итак, по сути, проект, который я хочу осуществить, - это редактор SVG. Я бы предпочел использовать WPF, потому что тогда я могу использовать XAML для своего макета приложения (этот дизайнер такой изящный). К сожалению, я использую .NET Framework всего несколько месяцев и до сих пор незнаком с большинством имен классов. …
11 wpf  f# 

3
Как смоделировать метод с жестко закодированным объектом?
Я работаю над приложением, которое имеет несколько слоев. Уровень доступа к данным для извлечения и сохранения данных из источника данных, бизнес-логика для управления данными, пользовательский интерфейс для отображения данных на экране. Я также занимаюсь модульным тестированием уровня бизнес-логики. Единственное требование - проверить поток логики бизнес-уровня. Поэтому я использую инфраструктуру Moq …

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

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