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

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


1
Фьючерсы / Монады против событий
В рамках приложения, когда влияние производительности может быть проигнорировано (максимум 10-20 событий в секунду), что является более обслуживаемым и гибким для использования в качестве предпочтительного средства связи между модулями - события или фьючерсы / обещания / монады ? Часто говорят, что события (pub / sub, mediator) допускают слабую связь и, …

3
Являются ли комментарии XML необходимой документацией?
Раньше я был поклонником требования XML-комментариев для документации. С тех пор я передумал по двум основным причинам: Как и хороший код, методы должны быть понятны. На практике большинство XML-комментариев представляют собой бесполезный шум, который не дает никакой дополнительной ценности. Много раз мы просто используем GhostDoc для генерации общих комментариев, и …


5
Что хорошего, быстрые алгоритмы обновления? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …

3
Что особенного в 26 июля и почему он так часто используется в примерах для заголовка Expires?
Я заметил, что 26 июля (мой день рождения) действительно часто используется в различных примерах PHP, связанных с предотвращением http-кэширования с использованием Expiresзаголовка, например: /programming/12398714/cache-issue-with-private-networking-stream /programming/2833305/how-to-expire-page-in-php-when-user-logout http://expressionengine.com/archived_forums/viewthread/81945/ Что особенного в этой дате?
10 php  headers 

1
Как мне добавить исправление обратно в ветку функций, используя gitflow?
Я начал использовать gitflow для проекта, и у меня есть выдающаяся ветвь функций, а также недавно созданное исправление. В соответствии с рабочим процессом gitflow исправление применяется как к основной, так и к развивающей ветвям, но ничего не сказано или не сделано в отношении существующих ветвей функций. Тем не менее, я …
10 git  gitflow 


4
Как избежать общих имен для абстрактных классов?
В общем, хорошо избегать таких слов, как «handle» или «process», как части имен рутины и имен классов, если вы не имеете дело с (например) дескрипторами файлов или (например) процессами unix. Однако абстрактные классы часто не знают, что они собираются делать с чем-то, кроме, скажем, обработки. В моей текущей ситуации у …

4
Существуют ли какие-либо концептуальные недостатки при создании веб-приложения на C ++ и MySQL?
Я унаследовал довольно интересный проект, в котором есть хорошая возможность взять существующее программное обеспечение и превратить его в веб-приложение SaaS. Поскольку проект наследуется, база кода / каркас уже определены как C ++ и MySQL. Само приложение компилируется и запускается как EXE на Windows Server. Пользовательский интерфейс веб-и приложение работает как …

1
Использование Bit Torrent для внутреннего управления релизами
В настоящее время мы злоупотребляем нашей системой контроля версий и используем ее ... почти как FTP для хранения больших выпусков (4+ ГБ). Мы стремимся отойти от этой ужасной практики, которая имеет и продолжает перераспределять и использовать все больше и больше ИТ-ресурсов, нанося вред процессам интеграции и выпуска. Решением для этого …

2
Запуск программного обеспечения в качестве службы с использованием неизмененной программы GPL (v2 +) в качестве основной зависимости: должен ли быть выпущен исходный код SaaS?
Я разрабатываю программное обеспечение как сервисный проект, доступ к которому возможен только онлайн. У меня может быть жесткая зависимость от исполняемого файла, на который распространяется GNU GPL (v2 или более поздняя версия). Я понимаю, что мой код, если я когда-либо распространял его, должен распространяться также на условиях GPL. Я почти …

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

5
Как выполнить модульное тестирование функции, которая подвергается рефакторингу к шаблону стратегии?
Если у меня есть функция в моем коде, которая выглядит следующим образом: class Employee{ public string calculateTax(string name, int salary) { switch (name) { case "Chris": doSomething($salary); case "David": doSomethingDifferent($salary); case "Scott": doOtherThing($salary); } } Обычно я реорганизовал бы это, чтобы использовать Ploymorphism, используя фабричный класс и шаблон стратегии: public …


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