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

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

2
Как справиться с этим, когда незавершенный коммит внезапно оказывается зависимым от другого, которого еще нет?
У меня нет опыта работы с Git, но я изо всех сил стараюсь привыкнуть к нему, и пока что я использую его только для проектов, над которыми я работаю один. Когда я пишу код, есть какой-то нисходящий подход естественным образом (поскольку я не знаю будущего), и возникает повторяющаяся тема: Я …
13 git 

5
Сломанные старые / устаревшие юнит-тесты
Я работаю в большой компании и отвечаю за большое Java-приложение с тысячами тестов Junit. С тех пор, как я перешел на эту роль, было 200-300 сломанных тестов (вероятно, сломанных в течение многих лет). Тесты старые и хрупкие, и они представляют собой кучу спагетти-зависимостей, которые обычно заканчиваются живыми данными песочницы. Моя …

1
Могут ли доменные модели в базе данных быть устойчивым решением?
Я только начинал на новой работе в качестве разработчика базы данных для компании среднего размера, основанной на технологии Microsoft. Ранее я заметил, насколько практики отличаются от того, чему меня учили в школе в отношении лучших практик, шаблонов проектирования, тестирования и управления проектами. Больше всего меня беспокоит то, как наш основной …

3
По каким причинам вы бы использовали отдельное расширение класса для каждого делегата в Swift?
Я работал над учебником Рэя Вендерлиха и заметил, что автор использует расширения класса для хранения обратных вызовов делегата, а не для обработки их в самом классе, то есть: делегировать обратные вызовы внутри расширения класса: extension LogsViewController : UIPopoverPresentationControllerDelegate { func adaptivePresentationStyleForPresentationController(controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle { ... } } …

4
Как протестировать код, который зависит от сложных API (например, Amazon S3)?
Я борюсь с тестированием метода, который загружает документы в Amazon S3, но я думаю, что этот вопрос относится к любой нетривиальной зависимости API / external. У меня есть только три возможных решения, но ни одно из них не выглядит удовлетворительным: Запустите код, фактически загрузите документ, проверьте с помощью API AWS, …
13 testing  mocking 

4
Должен ли я развертывать только 32-разрядные или 32- и 64-разрядные версии для Windows?
У меня есть кроссплатформенное приложение, написанное на скомпилированном языке. Для Linux принято иметь доступ к сборкам amd64 и i386, чтобы пользователь мог выбрать версию, подходящую для его текущей среды. В Mac принято делать Universal Binary, чтобы он мог поддерживать несколько версий компьютеров Apple. Или просто предоставьте 64-битную версию, так как …

3
Как привлечь внимание программиста в определенных условиях?
Давайте начнем с примера. Допустим, у меня есть метод, exportкоторый сильно зависит от схемы БД. И под «сильно зависит» я имею в виду, что я знаю, что добавление нового столбца в определенную таблицу часто (очень часто) приводит к изменению соответствующего exportметода (обычно вы также должны добавить новое поле к данным …

3
Как безопасно выполнить рефакторинг на языке с динамической областью действия?
Для тех из вас, кому посчастливилось не работать на языке с динамической областью действия, позвольте мне немного освежить в этом информацию. Представьте себе псевдо-язык, названный "RUBELLA", который ведет себя так: function foo() { print(x); // not defined locally => uses whatever value `x` has in the calling context y = …

3
Несколько токенов доступа Oauth2
У меня есть API, который использует oAuth2, и мои собственные мобильные приложения, которые используют этот API в качестве своего бэкэнда. Поскольку пользователи могут входить в систему одновременно с нескольких устройств (например, iPhone, iPad, планшета Android или телефона Android), мне нужен API, чтобы различать каждое соединение. Я хотел бы сделать это …
13 spring  oauth2 

2
Является ли создание нового Списка для изменения коллекции в каждом цикле недостатком дизайна?
Недавно я столкнулся с этой распространенной недопустимой операцией Collection was modifiedв C #, и, хотя я полностью ее понимаю, кажется, что это такая распространенная проблема (Google, около 300 тыс. Результатов!). Но это также кажется логичным и простым, чтобы изменить список, пока вы просматриваете его. List<Book> myBooks = new List<Book>(); public …
13 c# 

4
Не нарушают ли макеты принцип Open / Closed?
Некоторое время назад я прочитал в ответе о переполнении стека, которое не могу найти, предложение, объясняющее, что вы должны тестировать публичные API, и автор сказал, что вы должны тестировать интерфейсы. Автор также объяснил, что если реализация метода изменилась, вам не нужно изменять тестовый пример, поскольку это нарушит контракт, обеспечивающий работоспособность …

3
Можно ли одновременно иметь карри и вариадную функцию?
Я думаю о том, чтобы сделать функции каррирования и вариации доступными в динамически типизированном функциональном языке программирования, но мне интересно, возможно ли это или нет. Вот несколько псевдокодов: sum = if @args.empty then 0 else @args.head + sum @args.tail который якобы суммирует все свои аргументы. Затем, если sumсам трактуется число, …

2
Реальна ли сложность NPath более шестнадцати октиллионов? Или я сломал инструмент?
Я только что измерил большой кусок кода PHP (1153 строки), используя PHPMD ( http://phpmd.org/ ), и он говорит мне, что код NPath имеет сложность 16244818757303403077832757824. Это выглядит как сумасшедшая цифра для меня, предполагая, что, возможно, PHPMD каким-то образом сломался. Возможно ли, чтобы кусок кода, написанный людьми, имел такую ​​высокую сложность …
13 php  code-quality 

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

3
Можно ли подразумевать GPL для производной работы?
Есть три программных проекта: A, B и C. А публикуется для всех и лицензируется по лицензии GPL. B расширяет A, также публикуется, но не имеет информации о лицензии или по ошибке лицензируется в соответствии с LGPL. По сути это нарушает лицензию A, не будучи GPL. Исходный код B по-прежнему доступен. …

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