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

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

4
Почему многие языки динамического программирования с утиными типами используют подход на основе классов вместо ООП на основе прототипов?
Поскольку довольно много динамических языков программирования имеют функцию утилитной типизации , и они также могут открывать и изменять методы класса или экземпляра в любое время (например, Ruby и Python ), тогда… Вопрос 1) Зачем нужен класс на динамическом языке? Почему язык спроектирован таким образом, чтобы использовать класс как своего рода …

2
Лучшие практики для сериализации DDD агрегатов
Согласно DDD логика домена не должна быть загрязнена техническими проблемами, такими как сериализация, объектно-реляционное отображение и т. Д. Так как же сериализовать или отобразить состояние агрегатов, не раскрывая его публично через геттеры и сеттеры? Я видел множество примеров, например, для реализации репозитория, но практически все они полагались на общедоступные методы …

3
Должен ли сервисный уровень перехватывать все исключения dao и переносить их в исключения сервиса?
У меня есть три слоя Spring веб-приложение: дао, сервис и контроллеры. Контроллер никогда не вызывает напрямую dao, он делает это через уровень сервиса. Прямо сейчас, в большинстве случаев, если есть исключение dao (время выполнения), которое не обрабатывается, оно будет перехвачено JSP, показывающим сообщение об ошибке конечному пользователю. Должен ли сервисный …

7
Могу ли я временно использовать библиотеки GPL для создания прототипов и сделать будущий код закрытым исходным кодом?
Я работаю над прототипом для программной системы, которая (по крайней мере, на старте) будет с закрытым исходным кодом. Чтобы сэкономить время, я подумываю использовать (то есть статически связывать) библиотеку, лицензированную по GPLv3 , чтобы я мог быстро протестировать свой дизайн. Если бы я распространял программное обеспечение на этом этапе, мне …

6
В TDD я должен сначала написать Test или Interface?
Я изучаю TDD, используя c #, насколько я знаю, тест должен управлять разработкой , то есть сначала написать провальный тест, а затем написать минимальный код для прохождения теста, а затем выполнить рефакторинг. Но также сказано, что « Программа для интерфейса, а не для реализации », поэтому сначала напишите интерфейс . …
23 c#  unit-testing  tdd 

2
Унифицированные классы тестирования, которые имеют функциональность
При модульном тестировании выполняются функции класса, которые имеют частные функции, требующие оперативной функциональности. Как можно было бы проверить это? Например: public class Foo { public int methodA() { int val = goOnlineToGetVal(); return val; } private int goOnlineToGetVal() { CloudService c = new CloudService(); int oval = c.getValueFromService(); return oval; …

7
Разрешается ли случайный рефакторинг кода в Scrum
Задний план Моя команда использует схватки В настоящее время у меня нет задачи Больше нет отложенных задач в отставании Сегодня День Труда для моего клиента. Сегодня у меня не было много дел, и я хотел бы начать рефакторинг некоторого кода, который я продолжаю видеть в проекте, над которым я работаю, …

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

6
Многопоточность: я делаю это неправильно?
Я работаю над приложением, которое играет музыку. Во время воспроизведения часто вещи должны происходить в отдельных потоках, потому что они должны происходить одновременно. Например, ноты аккорда должны быть услышаны вместе, поэтому каждой из них назначается собственный поток для воспроизведения. (Изменить, чтобы уточнить: вызов note.play()останавливает поток, пока не закончится воспроизведение ноты, …

2
Шаблон проектирования для проверки данных
Какой будет лучший шаблон проектирования для этой проблемы: У меня есть Объект А. Объект А может быть зарегистрирован или удален из базы данных в зависимости от запроса пользователя. Проверка данных выполняется перед регистрацией или удалением объекта. Существует ряд правил, которые необходимо проверить перед регистрацией объекта, и другой набор правил для …

4
Необязательные зависимости в npm?
У меня есть похожий вопрос к этому , но не совсем то же самое. Я хотел бы, чтобы пользователь моего приложения установил его с любыми зависимостями, необходимыми для его использования. Так, например, если они хотят сохранить в MongoDB, будут установлены только библиотеки, связанные с Mongo, но если они хотят сохранить …

4
Насколько плохо вызывать println () чаще, чем объединять строки и вызывать их один раз?
Этот вопрос перенесен из Exchange Stack Exchange, так как на него можно ответить в Software Stack Exchange. Мигрировал 5 лет назад . Я знаю, что вывод на консоль является дорогостоящей операцией. В интересах читабельности кода иногда полезно вызывать функцию для вывода текста дважды, а не иметь длинную строку текста в …
23 java  c++  performance  c  io 

4
Data Oriented Design - нецелесообразно с более чем 1-2 структурными «членами»?
Обычный пример Data Oriented Design со структурой Ball: struct Ball { float Radius; float XYZ[3]; }; а затем они делают некоторый алгоритм, который повторяет std::vector<Ball>вектор. Затем они дают вам то же самое, но реализованное в Data Oriented Design: struct Balls { std::vector<float> Radiuses; std::vector<XYZ[3]> XYZs; }; Это хорошо, и все, …

4
Является ли эта простая зашифрованная связь XOR абсолютно безопасной?
Скажем, у Алисы и Питера есть флешка на 4 ГБ. Они встречают и сохраняют на обеих палочках два файла с именами alice_to_peter.key(2 ГБ) и peter_to_alice.key(2 ГБ), которые содержат случайно сгенерированные биты. Они никогда не встречаются снова, но общаются в электронном виде. Алиса также поддерживает переменную с именем, alice_pointerа Питер поддерживает …

2
Сайты для внутреннего использования: Есть ли убедительные аргументы против SQLite?
Многие веб-фреймворки, такие как Flask или Django, используют SQLite в качестве базы данных по умолчанию. SQLite является привлекательным, потому что он включен в Python, и административные издержки довольно низки. Однако большинство публичных производственных сайтов с высоким трафиком используют более тяжелую базу данных: mySQL, Oracle или postgresql. Вопросы : Предполагать: Трафик …

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