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

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

7
Рефакторинг и открытый / закрытый принцип
Недавно я читал веб-сайт о разработке чистого кода (здесь я не размещаю ссылку, потому что она не на английском языке). Одним из принципов, рекламируемых этим сайтом, является принцип Open Closed : каждый программный компонент должен быть открыт для расширения и закрыт для модификации. Например, когда мы реализовали и протестировали класс, …

9
Скопируйте и вставьте тестовый код: насколько это плохо?
Моя текущая работа - в основном написание тестового кода GUI для различных приложений, над которыми мы работаем. Однако я нахожу, что я склонен копировать и вставлять много кода в тестах. Причина этого в том, что тестируемые области имеют тенденцию быть достаточно похожими, чтобы требовать повторения, но не настолько похожими, чтобы …

2
Можно ли скомпилировать библиотеку C ++ 11 (lib, dll и т. Д.) В более старых компиляторах C ++?
Могут ли старые компиляторы C ++ (например, VS2008 и gcc3.4) связываться с внешними библиотеками, написанными на C ++ 11? Я думаю, что файлы .lib C ++ 11 на данном этапе являются просто байтовым кодом, и он не должен беспокоить старые компиляторы, как он был сгенерирован, если он каким-то образом разрешаем …
12 c++  c++11 


8
Как заставить разработчиков делать обзоры кода своевременно
Компания, в которой я работаю, требует, чтобы весь код был проверен другими разработчиками до его принятия. Члены моей команды часто бывают разочарованы, потому что другие разработчики слишком заняты написанием кода, чтобы делать обзор, особенно если он очень длинный. Как вы стимулируете других разработчиков делать своевременные обзоры кода? (Мы используем git-svn, …

2
CQRS + Event Sourcing: (верно ли это) Команды обычно передаются точка-точка, в то время как события домена передаются через pub / sub?
Я в основном пытаюсь обернуть голову вокруг концепции CQRS и связанных понятий. Хотя CQRS не обязательно включает в себя Messaging и Event Sourcing, кажется, что это хорошая комбинация (как видно из множества примеров / блогов, объединяющих эти концепции) Учитывая вариант использования для изменения состояния чего-либо (скажем, для обновления Вопроса о …

2
Эффективная реализация Trie для строк Unicode
Я искал эффективную реализацию String Trie. В основном я нашел такой код: Ссылочная реализация в Java (за википедию) Мне не нравятся эти реализации в основном по двум причинам: Они поддерживают только 256 символов ASCII. Мне нужно охватить такие вещи, как кириллица. Они крайне неэффективны в памяти. Каждый узел содержит массив …
12 unicode  trie 

1
Использование шаблона посетителя с большой иерархией объектов
контекст Я использовал с иерархией объектов (дерево выражений) «псевдо» шаблон посетителя (псевдо, так как в нем не используется двойная диспетчеризация): public interface MyInterface { void Accept(SomeClass operationClass); } public class MyImpl : MyInterface { public void Accept(SomeClass operationClass) { operationClass.DoSomething(); operationClass.DoSomethingElse(); // ... and so on ... } } Этот …

5
Как выполнить модульное тестирование файла JSP?
Я занимаюсь разработкой приложения Java 6 EE и тестирую свой jsp-код с помощью другого с тестовой версией вызовов функций и кода, использованных в оригинальной версии, но она кажется свободной и непрактичной. Есть ли хороший способ выполнить такое тестирование?

2
Документирование языка программирования: Справочное руководство
Мы смотрим на обновленную документацию по всей нашей продуктовой линейке. Часть этого включает справочные руководства для языка программирования, используемого как часть системы. При написании справочного руководства для языка программирования, каков наилучший способ структурировать его для максимального удобства использования для новичков в языке? Какие ключевые аспекты для каждого ключевого слова задокументированы? …

4
Как взаимодействует C ++ с сетью (например, в Google)?
Google хорошо известен своим смешным количеством C ++, которое они кодировали годами. Поправьте меня, если я ошибаюсь, но большая часть основной поисковой системы Google написана на C ++, не так ли? Как взять программу, написанную на C ++, и связать ее с веб-сайтом? Примечание. Я не обращаю внимания на то, …

3
Должен ли основной метод состоять только из создания объекта и вызова метода?
Мой друг сказал мне, что лучшая практика - mainметод, содержащий классы, должен называться Mainи содержать только mainметод. Также mainметод должен только анализировать входные данные, создавать другие объекты и вызывать другие методы. MainКласс и mainметод не должен делать ничего другого. По сути, он говорит, что класс, содержащий mainметод, должен выглядеть так: …

3
Должен ли я вкладывать функции в языки, которые позволяют мне это делать, или мне лучше этого избегать?
В JavaScript, PL / SQL и некоторых других языках функции могут быть вложенными, т.е. объявляться в другой функции. Это можно использовать, чтобы разбить большую функцию на более мелкие части, но оставить эти части в контексте большей функции. function doTooMuch() { function doSomething () { ... } function doSomethingElse() { ... …

4
Бизнес-объекты на уровне доступа к данным
Так что я создавал уровень доступа к данным через TDD и подошел к некоторой проблеме. Я бы предпочел не идти по неверному пути, поэтому я решил попросить вас, ребята, посмотреть, соответствуют ли мои мысли чистой архитектуре. Методы в моем уровне доступа к данным (DAL для краткости) довольно просты. Они соответствуют …

7
Наша версия Agile не работает. Подсказки?
Я работаю в небольшой команде из 4 разработчиков. Мы внедряем версию Agile, которая, кажется, постоянно предоставляет нам одни и те же трудности, неделя за неделей, и я ищу предложения, которые могут помочь нам улучшить наш процесс. Фон: Обычно мы выполняем двухнедельные спринты, и на каждом спринте мы склонны недооценивать нашу …
12 agile 

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