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

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

4
Как документировать структуру высокого уровня Java-программы?
Фон: мои сотрудники и я пишем статью для академического журнала. В ходе нашего исследования мы написали программу моделирования на Java. Мы хотим сделать программу симуляции свободно доступной для использования другими. Мы решили разместить код в репозитории GitHub. Чтобы другим было легко пользоваться, мы хотим написать хорошую документацию для нашей программы, …

5
Борьба с техническим долгом как «самым низким разработчиком»?
Допустим, вы работаете в компании и разрабатываете программное обеспечение для них. Вы не представляете себе общую картину или, может быть, небольшую. У вас есть задачи, назначенные вам через систему отслеживания проблем. Вам дают задания, вы заставляете их работать так, как их описывает задача, вы отправляете их обратно. Как добавление 2 …

7
Должны ли статические данные храниться в базе данных или где-то еще?
Сейчас я работаю над некоторыми программами, и я не уверен, какой путь выбрать для этого. У меня есть данные для хранения на мобильном устройстве. Данные никогда не изменятся и имеют иерархическую связь, и будут использоваться для заполнения дисплея. Существует достаточное количество этих данных. У меня есть следующие варианты: Набор перечислений …
20 design 

1
Плюсы и минусы пространств имен против включения / требуют в PHP?
Я недавно начал использовать пространства имен в PHP. Когда я впервые увидел их, я подумал, что их синтаксис уродлив, и я никогда не буду их использовать. Тем не менее, я создал автозагрузчик (spl_autoload_register), который делает его таким, чтобы мне больше никогда не приходилось писать оператор include / require. Мне нравятся …
20 php  namespace 

6
Существуют ли языки сверхвысокого уровня? [закрыто]
Закрыто. Этот вопрос не по теме . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме разработки программного обеспечения в стеке. Закрыто 5 лет назад . Исторически HLL - это что-то вроде C, Fortran или Pascal, а VHLL - это как Ruby или …

6
Постепенная типизация: «Почти каждый язык со статической системой типов также имеет динамическую систему типов»
Это требование по Aleks Бромфилд гласит: Почти каждый язык со статической системой типов также имеет динамическую систему типов. Помимо C, я не могу думать об исключении Это действительная претензия? Я понимаю, что с классами Reflection или Loading во время выполнения Java выглядит примерно так - но можно ли распространить эту …

4
Пустой интерфейс для объединения нескольких интерфейсов
Предположим, у вас есть два интерфейса: interface Readable { public void read(); } interface Writable { public void write(); } В некоторых случаях реализующие объекты могут поддерживать только один из них, но во многих случаях реализации будут поддерживать оба интерфейса. Люди, которые используют интерфейсы, должны сделать что-то вроде: // can't …

4
Когда использовать шаблон хранилища
Недавно я прочитал, что не рекомендуется использовать шаблон хранилища в сочетании с ORM. Насколько я понимаю, это потому, что абстракция, которую они предоставляют для базы данных SQL, слишком неплотна, чтобы сдерживать шаблон. У меня есть пара вопросов по этому поводу: Что вы делаете, если хотите отключить ORM? У вас будет …

4
Когда и как я должен использовать исключения?
Настройка Мне часто бывает трудно определить, когда и как использовать исключения. Давайте рассмотрим простой пример: предположим, я зачищаю веб-страницу, скажем « http://www.abevigoda.com/ », чтобы определить, жива ли еще Абе Вигода. Для этого все, что нам нужно сделать, это загрузить страницу и посмотреть, когда появляется фраза «Abe Vigoda». Мы возвращаем первое …

2
Почему Java не помещает имя файла в аргументы?
В C и C ++ метод main хранит имя файла в первой позиции массива в argv [0]. В Java, однако, имя файла не включено в массив строк args. Есть ли практическая причина для этого? Я понимаю, что это делает перебор аргументов командной строки на основе 0 вместо 1 на основе, …
20 java  c++  c 

7
Как лучше всего защитить от 0 передаваемых в std :: string параметров?
Я только что понял, что-то беспокоит. Каждый раз, когда я писал метод, который принимает a std::stringв качестве параметра, я открывал себя для неопределенного поведения. Например, это ... void myMethod(const std::string& s) { /* Do something with s. */ } ... можно назвать так ... char* s = 0; myMethod(s); ... …
20 c++ 

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

5
Почему коммиты git не содержат название ветки, на которой они были созданы?
При работе с git в команде, использующей ветви функций, мне часто трудно понять структуру ветвей в истории. Пример: Допустим, была ветка Feature / Make-Coffee , и исправление ошибок продолжалось на master параллельно с веткой Feature. История может выглядеть так: * merge feature/make-coffee |\ | * small bugfix | | * …
20 git  branching 

3
Трудности с TDD и рефакторингом (или - Почему это так больно, чем должно быть?)
Я хотел научить себя использовать подход TDD, и у меня был проект, над которым я давно хотел работать. Это был не большой проект, поэтому я подумал, что это будет хорошим кандидатом на TDD. Однако я чувствую, что что-то пошло не так. Позвольте мне привести пример: На высоком уровне мой проект …

5
Ориентируется ли объект архитектуры Entity Component System по определению?
Является ли архитектура Entity System Component ориентированный объект, по определению? Это кажется более процедурным или функциональным для меня. Мое мнение таково, что это не мешает вам реализовать его на языке ОО, но это не будет идиоматичным, если вы будете делать это абсолютно уверенно. Кажется, что ECS отделяет данные (E & …

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