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

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

4
Эффективно ли «хирургическая бригада» Фреда Брукса справляется с автобусным фактором?
Моя команда из 4 опытных разработчиков работает над большим модульным приложением Windows (около 200 KLoC). Я сосредоточился на основной кодовой базе с самого начала проекта (3 года назад) и постепенно перешел на полузамкнутую должность разработчика, хотя я не являюсь менеджером команды. Наша текущая итерация представляет собой высокоприоритетное обновление пользовательского интерфейса, …

5
TDD: макетирование тесно связанных объектов
Иногда объекты просто должны быть тесно связаны. Например, CsvFileкласс, вероятно, должен будет тесно работать с CsvRecordклассом (или ICsvRecordинтерфейсом). Однако из того, что я узнал в прошлом, одним из основных принципов разработки, основанной на тестировании, является «Никогда не тестируйте более одного класса за раз». Это означает, что вы должны использовать ICsvRecordмакеты …
10 tdd  coupling  mocking 


3
Поток OAuth2 - проверяет ли сервер с сервером аутентификации?
Я много читал об OAuth2, пытаясь разобраться в этом, но я все еще что-то путаю. Я понимаю, что клиент авторизуется у поставщика OAuth (например, Google) и позволяет серверу ресурсов иметь доступ к данным профиля пользователя. Затем клиент может отправить токен доступа на сервер ресурсов и получить его обратно. Но то, …
10 security  oauth2 

1
Можно ли редактировать встроенный модуль Python?
В настоящее время я изучаю Python, и я сейчас в книге об использовании библиотеки Math. Я заглянул на сайт Python и заметил, что библиотеки немного не хватает, и я пишу еще несколько полезных функций. Например, я пошел дальше и написал функцию для получения коэффициентов и возврата корней уравнения. По сути, …

8
Спешите на сторону клиента в веб-разработке
В последние несколько месяцев я узнал большой восторг от сценариев на стороне клиента в веб-разработке. Но в то время как серверные технологии являются зрелыми, стабильными и хорошо приняты бэкэнд-разработчиками, клиентские технологии являются незрелыми (то есть по сравнению с крупной серверной средой) и не нравятся многим давно разработанным разработчикам. Тем не …

5
Как бороться с философией повторного использования кода?
Я постоянно думаю о повторном использовании кода при запуске нового проекта. В какой степени я должен сделать мой код многоразовым? Должен ли я ограничить его областью применения или сделать его многоразовым за пределами проекта? Иногда мне кажется, что повторное использование кода может помешать простому дизайну. Пожалуйста, поделитесь собственным пониманием и …

5
Методы тестирования очень большого приложения
У меня есть приложение PHP, которое очень большое. Обычно над ней работают 2-3 разработчика, и мы подошли к тому моменту, когда вносим изменения и создаем ошибки (кашляю!). Скажем, программное обеспечение не сложное, просто много чего происходит (35 контроллеров, примерно одинаковых моделей и т. Д.). Даже будучи осторожным, легко изменить это …

1
Концептуально, что это значит, когда говорится, что каждый поток получает свой собственный стек?
Я читал Java Concurrency in Practice от Brian Goetz, и в разделе Confinement Stack упоминается, что каждый поток получает свой собственный стек, и поэтому локальные переменные внутренне ограничены исполняющим потоком; они существуют в стеке исполняющих потоков, который недоступен другим потокам. Что он имеет в виду, что каждый поток имеет свой …

4
Как я могу заставить анонимного пользователя отправлять сообщения об ошибках в частном проекте GitHub?
У нашей компании есть частный репозиторий GitHub для проекта, над которым я работаю. После полного лета работы, похоже, мы запустим эту неделю (вот так!). Тем не менее, я хочу включить в программу ссылку «Отправить ошибку», которая ведет к форме где-то, где пользователь может заполнить форму, которая становится проблемой для нас …

2
Достаточно ли HTTPS, чтобы избежать повторных атак?
Я раскрываю несколько методов REST на сервере для мобильного приложения. Я хотел бы избежать того, чтобы пользователи могли анализировать, как создаются методы HTTP (из мобильного приложения), а затем снова отправлять их на сервер. Пример : Мобильное приложение отправляет запрос Пользователь использует прокси и может проверить, что происходит в сети Пользователь …
10 api  https 

3
Как на практике управлять файлами лицензий при комбинировании лицензионного кода GPL и BSD?
Я пишу код, который использует одну библиотеку с лицензией GPL (не LGPL) и одну с лицензией BSD с 3 пунктами . Поскольку я ссылаюсь на библиотеку, лицензированную по GPL, мой код должен быть и GPL. Как мне на практике иметь дело с оригинальным LICENSE.txt из BSD-библиотеки? (A) Могу ли я …

2
Как я могу создавать пользовательские истории как разработчик?
Я пишу систему, в которой и владелец системы, и я являемся разработчиками, и в настоящее время мы являемся единственным источником «запросов» или требований к системе, которые я хотел бы описать в пользовательских историях, связанных с функциями {1}. Моя первоочередная задача сейчас состоит в том, чтобы захватить управляемое отставание. Как мне …

2
JavaFX - правильный способ использования свойств с объектами домена
JavaFX предоставляет множество новых объектов Property, например, javafx.beans.property.DoublePropertyкоторые позволяют вам определять поля, которые можно автоматически наблюдать и синхронизировать. Во многих примерах JFX класс модели MVC имеет ряд этих полей свойств, которые затем могут автоматически привязываться к представлению. Тем не менее, это, кажется, побуждает нас помещать свойства JFX в наши объекты …

8
Как исчисление и линейная алгебра могут быть полезны системному программисту? [закрыто]
Закрыто. Этот вопрос не по теме . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме разработки программного обеспечения стека Exchange. Закрыто 4 года назад . Я нашел сайт, на котором написано, что исчисление и линейная алгебра необходимы для системного программирования. Системное …

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