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

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

4
Как структурировать команду разработчиков
Я являюсь менеджером команды из 11 разработчиков программного обеспечения, которые следят за веб-сайтами / веб-приложениями моей компании, выполняя до 4 одновременных проектов плюс ежедневную поддержку в любое время. Среди 11 разработчиков есть смесь технических навыков, должностей и опыта, хотя структура команды является плоской, и все 11 разработчиков отчитываются непосредственно передо …
22 management  team 

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

3
Когда класс или модуль должны находиться в отдельной сборке / DLL?
Существуют ли рекомендации для принятия решения, когда класс должен находиться в своей сборке / DLL? Я часто вижу две школы мысли: 1) Каждая «группа» классов принадлежит своей собственной DLL, например, репозитории, сервисы, DTO, инфраструктура и т. Д. 2) Все должно быть в одной DLL, но разделено через пространства имен / …

4
Какое ограничение на количество методов класса?
В различных книгах по дизайну, которые я читаю, иногда большое внимание уделяется количеству методов, которые должен иметь класс (с учетом языка ОО, например, Java или C #). Часто примеры, приведенные в этих книгах, очень аккуратны и просты, но редко они охватывают «серьезный» или сложный случай. Однако диапазон, кажется, между 5 …

4
Лучшие практики для модификации устаревшего кода с помощью автоматических тестов
Я собираюсь взять на себя задачу переопределения уже определенного интерфейса (набора заголовочных файлов C ++) в относительно большой и старой базе кода. Прежде чем сделать это, я хотел бы иметь как можно более полное тестовое покрытие, чтобы я мог выявлять ошибки повторной реализации как можно раньше и легко. Проблема заключается …
22 testing  legacy 

1
Что является правильным способом для разветвления / повторного использования кода из проекта с открытым исходным кодом?
Допустим, я работаю над проектом с открытым исходным кодом и хочу повторно использовать тривиальную служебную функцию из другого проекта с открытым исходным кодом (например, функцию поиска / замены файлов). Законно ли копировать функцию и просто написать небольшое уведомление об авторском праве вверху файла? Стоит ли включать в лицензию их имя …

16
Почему Ява является языком общения во многих учреждениях? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 4 года назад . РЕДАКТИРОВАТЬ: Этот вопрос на первый взгляд, кажется, бьет Java, и я думаю, на данный …

4
Сколько стека используется слишком много?
В последнее время, когда я писал на C или C ++, я объявляю все свои переменные в стеке только потому, что это вариант, в отличие от Java. Однако я слышал, что плохая идея объявлять большие вещи в стеке. Почему именно это так? Я полагаю, что переполнение стека связано, но я …

11
Алгоритмы зависят от компьютерных архитектур?
Я где-то читал (забыл, что это за книга), что алгоритмы не зависят от компьютерной архитектуры. Некоторые даже говорят, что алгоритмы сами по себе являются вычислениями (машины?)? С другой стороны, в книгах по параллельному программированию есть главы, посвященные параллельным алгоритмам. Кажется, параллельные алгоритмы зависят от параллельных архитектур? Я думаю, что скучаю …

3
Наилучшая практика использования обязательности при написании требований
Ранее я отправил электронное письмо с напоминанием нашим разработчикам, что использование слова «Должен» в ваших производных требованиях не должно соответствовать вашим функциональным требованиям. При написании функциональных требований слово «должен» используется для описания функции, которую должно выполнять производное требование. Производный = Система должна быть требованием Функциональная = Система должна выполнить требование …

1
Куда относится рефакторинг в модели именования веток GitFlow?
Недавно я начал работать с моделью GitFlow, реализованной с помощью bitbucket. И есть одна вещь, которая мне не совсем понятна. Мы стараемся регулярно справляться с нашей технической задолженностью, оставляя в памяти, планируя и выполняя задачи рефакторинга. Такие ветви рефакторинга заканчиваются pull-запросами, которые объединяются develop. Мой вопрос: где ветки рефакторинга принадлежат …


2
Можно ли создать «загруженный» интерпретатор независимо от исходного интерпретатора?
Согласно Википедии, термин «самозагрузка» в контексте написания компиляторов означает это : В информатике начальная загрузка - это процесс написания компилятора (или ассемблера) на исходном языке программирования, который он намеревается скомпилировать. Применение этой методики приводит к самостоятельному компилятору. И я могу понять, как это будет работать. Тем не менее, история кажется …

3
Какова цель этой очевидной ссылки на себя в C #?
Я оцениваю CMS с открытым исходным кодом под названием Piranha ( http://piranhacms.org/ ) для использования в одном из моих проектов. Я нашел следующий код интересным и немного запутанным, по крайней мере, для меня. Может ли кто-нибудь помочь мне понять, почему класс наследуется от базы того же типа? public abstract class …
21 c#  architecture  .net  cms 

5
Тестирование списка ... Все в одном тесте или один тест для каждого условия?
Я проверяю, что функция делает то, что ожидалось в списке. Итак, я хочу проверить f(null) -> null f(empty) -> empty f(list with one element) -> list with one element f(list with 2+ elements) -> list with the same number of elements, doing what expected Для этого, каков наилучший подход? Тестирование …
21 unit-testing  tdd 

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