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

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

8
Как я могу препятствовать совместному использованию внутренних ключей API внутри компании?
Мы работаем над новым сервисом - этот сервис потенциально будет вызываться непосредственно из приложений на пользовательских устройствах. Эти приложения будут разрабатываться и поддерживаться несколькими группами разработчиков по всей организации, все в зависимости от данных, которые мы предоставляем. Мы стремимся определить, какие приложения отправляют какие запросы, чтобы мы могли определить шаблоны …

5
Как описать архитектурный сдвиг, который намеренно нарушает стандарты REST?
Я предлагаю внести изменения в очень плохо спроектированный программный проект, который страдает от множества проблем. На высоком уровне проект использует Angular на внешнем интерфейсе и использует различные API REST; что все замечательно (я не вижу необходимости менять нашу технологию или инструменты). Проблема заключается в том, что база кода непропорционально больше …

2
Должны ли файлы UTF-8 CSV содержать спецификацию (метку порядка байтов)?
Наше программное обеспечение для бизнеса позволяет пользователю сохранять определенные данные в формате CSV . Поскольку в дикой природе используется много разных форматов (все они называются «CSV»), мы пытаемся решить, как должен выглядеть «формат по умолчанию». Что касается разделителей строк / полей и экранирования, существует стандарт, который мы можем использовать: RFC …

3
При проектировании системы лучше всего ориентироваться на дизайн, который вы будете использовать?
При разработке системы или приложения, которые вы планируете использовать с определенной платформой, лучше всего проектировать систему без учета инфраструктуры, или лучше проектировать систему с мышлением «хорошо, что для среды было бы легче с этим".

7
Всегда ли плохо использовать «новый» в конструкторе?
Я читал, что использование «нового» в конструкторе (для любых других объектов, кроме простых значений) является плохой практикой, так как делает невозможным модульное тестирование (так как тогда эти коллаборационисты тоже должны быть созданы и не могут быть смоделированы). Поскольку я не очень опытен в модульном тестировании, я пытаюсь собрать некоторые правила, …

8
Не нарушает ли добавление типа возврата в метод обновления «Принцип единой ответственности»?
У меня есть метод, который обновляет данные сотрудников в базе данных. EmployeeКласс неизменен, так что «обновление» средства объекта на самом деле для создания экземпляра нового объекта. Я хочу, чтобы Updateметод возвращал новый экземпляр Employeeс обновленными данными, но теперь я могу сказать, что ответственность за метод заключается в обновлении данных сотрудника …

7
В порядке ли создание объектов с нулевыми параметрами в модульных тестах?
Я начал писать тестовые модули для моего текущего проекта. У меня действительно нет опыта с этим все же. Сначала я хочу полностью «получить его», поэтому в настоящее время я не использую ни свою платформу IoC, ни библиотеку-макет. Мне было интересно, если что-то не так с предоставлением нулевых аргументов конструкторам объектов …

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

6
Выпуск программного обеспечения с открытым исходным кодом слишком рано [закрыто]
Какова моральная ответственность за выпуск программного обеспечения с открытым исходным кодом слишком рано? Например, близкий к завершенному продукт, который не был полностью протестирован. Каковы ожидания программиста? Подождите, пока он не будет полностью протестирован, или выпустите его с открытым исходным кодом, а затем продолжите дальнейшую разработку, тестирование и усовершенствования? Опасение заключается …

3
Что такое «методы класса» и «методы экземпляра» в Python?
В чате была дискуссия, касающаяся вопроса (сам вопрос не имеет отношения к этому), который показал, что я, возможно, вообще не знаю Python. На мой взгляд, хотя терминология отличается в разных языках, мы можем классифицировать функции следующим образом: [бесплатные] функции статические методы / статические функции-члены нестатические методы / нестатические функции-члены По-видимому, …

11
Является ли цикл while по своей сути рекурсией?
Я задавался вопросом, является ли цикл while по своей сути рекурсией? Я думаю, это потому, что цикл while можно рассматривать как функцию, которая вызывает себя в конце. Если это не рекурсия, то в чем разница?
37 recursion  loops 

6
Почему тестирование языка не поддерживается на уровне синтаксиса?
Вы можете найти бесконечный список блогов, статей и сайтов, рекламирующих преимущества модульного тестирования вашего исходного кода. Почти гарантировано, что разработчики, которые программировали компиляторы для Java, C ++, C # и других типизированных языков, использовали модульное тестирование для проверки своей работы. Так почему же, несмотря на свою популярность, тестирование отсутствует в …

9
Как справиться с различными стилями разработки (сверху вниз и снизу вверх) в команде?
Скажем, вы только что начали работать в очень маленькой команде над {в настоящее время относительно небольшим, но, надеюсь, еще большим, проектом}. Обратите внимание, что это реальный проект, предназначенный для использования другими разработчиками в реальном мире, а не какой-то академический проект, который должен быть отменен в конце семестра. Тем не менее, …

9
При написании объектно-ориентированного кода я должен всегда следовать шаблону проектирования?
Есть ли мыслимый шаблон проектирования для какой-либо объектно-ориентированной программы? Я спрашиваю об этом, потому что недавно я увидел реализацию Doorкласса с Lock. Это было частью теста, и в ответ было сказано, что код соответствует шаблону Null Object: class Lock { public: virtual void close() = 0; virtual void open() = …

11
Убедитесь, что у каждого класса есть только одна ответственность, почему?
Согласно документации Microsoft, статье SOLID Wikipedia SOLID или большинству ИТ-архитекторов мы должны гарантировать, что каждый класс несет только одну ответственность. Я хотел бы знать почему, потому что, если все, кажется, согласны с этим правилом, никто не соглашается с причинами этого правила. Некоторые ссылаются на лучшее обслуживание, другие говорят, что оно …

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