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

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

6
Почему подклассы слишком плохи (и, следовательно, почему мы должны использовать прототипы, чтобы покончить с этим)?
Я читал о шаблонах проектирования и читал, что шаблон проектирования прототипа избавляет от чрезмерного создания подклассов. Почему подклассы плохо? Какое преимущество даст использование прототипа по сравнению с подклассами?

3
Является ли CSS изменение размера изображений плохой идеей?
Всегда рассматривалось, что использование атрибутов width / height на изображениях, которые не являются тем, чем является оригинальное изображение, является плохой идеей. Это может означать изображения в пикселях или размеры загрузки больше, чем нужно. Но это все еще проблема? Я бы не советовал увеличивать размер фотографий, но сокращение не должно быть …

7
Хеширование пароля и поддержка вашего пользователя
Недавно мы перешли на более качественную стратегию хранения паролей, в которую вошли все хорошие вещи: Пароли сохраняются после прохождения через bCrypt Пользователю отправляется ссылка на активацию при создании аккаунта для подтверждения владения адресом Забыли пароль без секретного вопроса, ссылка отправляется на их электронную почту. Срок действия ссылки истекает через 24 …

9
Следует ли ожидать, что разработчики скомпилируют внутреннюю библиотеку перед самой программой?
Недавно один из старших разработчиков, с которым я работаю, заявил, что требует, чтобы разработчики получили последнюю версию и скомпилировали в рамках своего проекта основную внутреннюю библиотеку. Это противоречит встречному аргументу о том, что проектные команды должны работать над стабильной версией, которую они получают из внутреннего репозитория Maven, в которой разработчик …

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

3
Когда уместна перегрузка метода?
Предположим, я работаю над существующей, достаточно большой системой. У меня есть объект myObjectкласса MyClass(для примера, предположим, я работаю в Java). myObjectэто композиция, содержащая Collection, скажем, а Listи другие объекты, которые (я думаю) не имеют значения. Он содержит методы делегата, которые просто служат для вызова методов, из которых Listон состоит, для …

4
Почему общедоступные веб-приложения не используют INI-файлы для конфигурации
Почти каждая общедоступная CMS использует файл конфигурации .php для настроек базы данных и так далее. Например, WordPress автоматически создает файл конфигурации .php при его установке. Почему они просто не используют файл .ini? PHP уже имеет parse_ini_file (), и я уверен, что другие языки имеют аналогичные функции.
10 php  cms  configuration 

12
Должен ли QA найти воспроизводимые сценарии?
Иногда моя команда QA сообщает об ошибках, но ни я, ни они не имеют представления о том, как их воспроизвести. Это приводит к очень долгим и разочаровывающим сеансам отладки, которые иногда даже не дают результатов. Мое программное обеспечение сильно связано с проприетарным оборудованием, поэтому ошибки могут возникать сразу со многих …
10 testing  bug  qa  reporting 

4
Как внедрить стандарты и усовершенствования процессов в организацию без них?
Передо мной была поставлена ​​задача улучшить процесс разработки программного обеспечения путем внедрения улучшений процесса, из которых мы, скорее всего, будем использовать CMMI для разработки версии 1.3 в качестве руководства и применять лучшие практики полностью или частично. Как лучше всего внедрить стандарты и усовершенствования процессов, чтобы минимизировать степень отталкивания и сопротивления …

2
Почему статистика коммитов разработчиков вредна?
Я давно верил (и слышал от других), что отслеживание статистики коммитов, например, сколько коммитов делает каждый разработчик в день, вредно для процесса разработки. Причина кажется очевидной - разработчики будут фиксировать с меньшими приращениями, максимизируя количество коммитов в день, но усложняя деление пополам (возможно, все их промежуточные патчи не оставят хорошо …

4
Лучше ли вызвать внешнее приложение командной строки или усвоить логику этого приложения?
У меня есть «конвейерный» процесс, который по сути просто связывает воедино кучу существующих инструментов для автоматизации рабочего процесса. Для одного из шагов существует существующий инструмент командной строки, который уже делает суть того, что должен сделать этот шаг. Внешний инструмент CLI основан на Java, как и мой конвейер, поэтому можно было …

5
Определение правильного количества документации
Где я сейчас работаю, общий подход - по возможности избегайте документации Только документ, если это понадобится другой команде просто для пояснения, я не имею в виду документацию по коду - это мы имеем в виду, я имею в виду всю документацию, окружающую процесс проектирования - если это схемы UML или …

9
Зачем переменным нужен тип?
Итак, мы пишем: Customer c = new Customer(); Почему дизайн не такой, что мы пишем: c = new Customer(); c.CreditLimit = 1000; Компилятор может определить c пунктов для Клиента и позволить членам Клиента вызываться на c? Я знаю, что мы можем написать: IPerson c = new Customer(); IPerson e = …

3
Контроль источников: роли и обязанности - лучшие практики
Я ищу "Best Practices", касающиеся ролей и обязанностей, в частности, кто отвечает за слияния из ветвей разработки в магистраль (или основной). В основном я ищу боеприпасы, чтобы помочь моему делу. Позвольте мне описать то, с чем я сталкиваюсь. Я ведущий разработчик (владелец) конкретного приложения. Наша компания недавно перешла из VSS …

2
Как я могу запретить программистам захватывать данные, введенные пользователями?
Я разрабатываю веб-приложение с упором на безопасность. Какие меры могут быть приняты, чтобы не дать тем, кто работает с приложением (программистам, администраторам баз данных, персоналу по обеспечению качества), захватывать введенные пользователем значения, которые должны быть надежно защищены, такие как пароли, номера социального страхования и т. Д.?
10 security 

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