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

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

6
Тяни просит место для подготовки юниоров
У нас есть концепция, что весь код в запросе Pull в master должен быть готов к работе. Это имеет смысл и является справедливым утверждением, на мой взгляд. Идея здесь заключается в том, что, как только вы создадите PR, вы заявляете, что вы бы ввели это в мастер, но хотели бы, …

4
Лучшая практика, чтобы пометить метод, который вызывается с помощью отражения?
Наше программное обеспечение имеет несколько классов, которые должны быть динамически найдены с помощью отражения. Все классы имеют конструктор с определенной сигнатурой, посредством которой код отражения создает объекты. Однако, когда кто-то проверяет, есть ли ссылка на метод (например, через Visual Studio Code Lens), ссылка через отражение не учитывается. Люди могут пропустить …

2
Оценка того, стоит ли сначала писать модульный тест или интеграционные тесты в проектах blue-sky / prototype
Что-то, что я недавно заметил, это когда я делаю следующие типы проектов: Когда начинается проект Работа над MVP / прототип Добавление функций, которые не определены полностью Работа над меньшим проектом Для справки, сейчас я работаю над проектом Python, который в настоящее время имеет ~ 1 тыс. Строк кода, включая некоторые …

3
Является ли метод тестирования для тестирования функции путем тестирования функции, которая вызывает ее, модульным тестом?
Если мы тестируем функцию B, тестируя функцию C, которая вызывает эту функцию B, т. Е. Пишем тестовую программу для тестирования функции C, которая вызывает эту функцию B, метод теста все еще называется модульным тестом или что-то еще? Когда предпочтительнее проводить косвенное тестирование функции, которая вызывает целевую функцию, и когда предпочтительнее …

2
Как правильно управлять зависимостями для проекта C / C ++?
У меня есть проект, который использует 3-4 различных библиотек C / C ++ с открытым исходным кодом. Я построил эти библиотеки для нескольких платформ и зарегистрировал в своем проекте включаемые файлы и статические библиотеки для разных платформ. Однако я борюсь с парой проблем. Все эти проекты связаны с управлением зависимостями. …

1
Создание хорошей постановки проблемы
<предыстория> Я взял книгу под названием Code Complete в подержанном книжном магазине на днях, потому что услышал, что это отличная книга, и начал читать. Примерно через 10 страниц я понял, что был немного глуп по поводу недавнего проекта, над которым я работал. Немного пояснения, которое я должен добавить в этот …

2
Уровень приложений, вызывающий функции базы данных. Плохая архитектура?
Сценарий: Стек: Java, Spring, Hibernate. Модель: клиент-серверное приложение. Шаблон: Модель-Вид-Контроллер (MVC). Классы Service Layer имеют три поведения: Некоторые сервисы имеют бизнес-правило внутри методов и делегируют постоянство приложению. Подобно: EntityManager.save (юридическое лицо); Некоторые сервисы просто вызывают функцию базы данных (передавая параметры) CallableStatement cls = con.prepareCall ("{call databaseFunction (args)}"); Некоторые сервисы имеют …

3
В Java 8 лучше стилистически использовать выражения ссылок на методы или методы, возвращающие реализацию функционального интерфейса?
В Java 8 добавлена ​​концепция функциональных интерфейсов , а также множество новых методов, предназначенных для использования функциональных интерфейсов. Экземпляры этих интерфейсов могут быть кратко созданы с использованием выражений ссылки на метод (например SomeClass::someMethod) и лямбда-выражений (например (x, y) -> x + y). У нас с коллегой разные мнения о том, …

2
В MVVM должны ли ViewModel или View отвечать за создание новых представлений?
В моем приложении WPF я хочу создать новый вид. Где я должен это сделать - во ViewModel или Model ? Приложение представляет собой (очень простой на данный момент) инструмент в форме окна с одной кнопкой «Отправить». В случае, если выбран один из флажков, должно появиться новое окно с использованием той …
11 c#  design  wpf  mvvm 

1
Соглашение об именах для тестовых пакетов
На самом деле мы называем наши тестовые пакеты так же, как их тестовые аналоги. Таким образом, мы в конечном итоге с этой структурой: src/main/java com.hello.world helloWorld.java src/test/java com.hello.world helloWorldTest.java Я всегда чувствовал, что это не очень умно, так как вы не можете различить «тест» и «тестировать», только если указаны с …
11 naming  packages 

4
Генерация ключей сортировки при изменении порядка элементов
У нас есть ряд предметов, которые конечный пользователь сможет организовать в желаемом порядке. Набор элементов неупорядочен, но каждый элемент содержит ключ сортировки, который можно изменить. Мы ищем алгоритм, который позволил бы генерировать новый ключ сортировки для элемента, который добавляется или перемещается в качестве первого элемента, последнего элемента или между любыми …
11 algorithms 

2
Почему ifstream.eof () не возвращает TRUE после чтения последней строки файла?
Когда новичок начинает читать ifstreams, его / ее инстинкт должен прочитать файл, используя цикл, который обычно выглядит следующим образом: while (!ifstream.eof() { ... } Однако, когда я использовал этот код, я заметил, что он не остановился, пока не прочитал последнюю строку файла дважды. Программисты C ++ отмечают, что на самом …
11 c++ 

5
Как лечить валидацию ссылок между агрегатами?
Я немного борюсь со ссылками между агрегатами. Давайте предположим, что агрегат Carимеет ссылку на агрегат Driver. Эта ссылка будет смоделирована с помощью Car.driverId. Теперь моя проблема в том, как далеко я должен пройти, чтобы проверить создание Carагрегата в CarFactory. Должен ли я доверять, что переданное DriverIdотносится к существующему Driver или …

2
Лучшие практики для контроля версий в Unity?
Я немного запутался, как использовать контроль версий в Unity, особенно с такими объектами, как сцены или префабы, которые не являются просто кодом. У нас недавно была проблема, когда мы с коллегой работали над разными частями одной сцены. что привело к конфликтам, разветвлению и слиянию в изобилии. В конце концов моя …

4
Оптимальный способ использования нулевых условных операторов в булевых выражениях
Вы пишете логическое выражение, которое может выглядеть так: team.Category == "A Team" && team?.Manager?.IsVietnamVet public class Manager { public bool IsVietnamVet { get; set; } } public class Team { public string Category { get; set; } public Manager Manager { get; set; } } ... и вы получите ошибку: …
11 c# 

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