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

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

5
Создают ли перечисления хрупкие интерфейсы?
Рассмотрим пример ниже. Любое изменение в перечислении ColorChoice влияет на все подклассы IWindowColor. Имеют ли перечисления тенденцию вызывать хрупкие интерфейсы? Есть ли что-то лучше, чем enum для большей полиморфной гибкости? enum class ColorChoice { Blue = 0, Red = 1 }; class IWindowColor { public: ColorChoice getColor() const=0; void setColor( …

2
Event Sourcing и REST
Я сталкивался с дизайном Event Sourcing и хотел бы использовать его в приложении, где требуется клиент REST (точнее, RESTful). Однако мне не удается соединить их вместе, поскольку REST очень похож на CRUD, а источник событий основан на задачах. Мне было интересно, как вы можете создавать команды на основе запросов к …

4
Должен ли когда-либо разработчик внешнего интерфейса указывать формат JSON для внутренних разработчиков?
Я беру фронтальную роль в проекте. Должен ли я указать для моих внутренних партнеров по команде точный формат JSON, который их PHP возвращает в мой JavaScript? Например, я должен сказать им, что они должны использовать формат, подобный описанному здесь: Правильный способ структурирования JSON для внешнего интерфейса Или я должен сохранить …

7
Почему создание экземпляров такое, какое оно есть?
Я изучал C # в течение последних шести месяцев или около того и сейчас углубляюсь в Java. Мой вопрос касается создания экземпляров (на любом языке, на самом деле), и это больше: интересно, почему они сделали это таким образом. Возьми этот пример Person Bob = new Person(); Есть ли причина, по …

2
О конкатенации смежных строковых литералов
C и C ++ компилируют смежные строковые литералы как единый строковый литерал. Например это: "Some text..." "and more text" эквивалентно: "Some text...and more text" В других языках семейства C, таких как C # или Java, это синтаксическая ошибка (что совершенно нормально, кстати). Каково обоснование / историческая причина для C и …

1
Откуда пришло понятие «вызова» функции?
Мне всегда было интересно, почему кто-то вызывает функцию, а не, например, выполняет ее. A Поиск Google для function call etymologyи подобные термины витки вверх ничего полезного, Wikipedia не упоминает об этом, онлайн - словари не имеют либо никаких записей вообще или нет раздела этимологию . Откуда пришло понятие «вызова» функции?

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

8
Когда один жестко кодирует реальные значения данных в коде, а не использует БД?
Давний вопрос для меня был: когда я храню данные (фактические значения) в таблице базы данных и когда я храню их прямо в коде? Неизвестный консенсус, как правило, был таким (*): Если это отдельная переменная или простая структура, или массив из нескольких значений, поместите данные прямо в код. [* консенсус обсуждался …

4
Проектирование базы данных - хранить состояние или вычислять состояние каждый раз?
Допустим, у меня есть приложение для реляционной базы данных, объект «пользователь» и объект «сообщение». Теперь я хочу показать количество непрочитанных сообщений этому пользователю. Какой лучший способ архивировать это? Должен ли я ввести поле в пользователя и считать его, если пользователь получает сообщение, и уменьшать счет, если он его читает? Или …

4
Разработчики заблокированы из-за ожидания слияния кода из другой ветки с помощью GitFlow
Наша команда только что переключилась с FogBugz & Kiln / Mercurial на Jira & Stash / Git. Мы используем модель Git Flow для ветвления, добавляя ответвления подзадач от ответвлений объектов (относящихся к подзадачам Jira функций Jira). Мы используем Stash для назначения рецензента при создании запроса на извлечение для слияния обратно …

5
Алгоритм для процента, не зная общее количество
Предположим, есть nлинии для горячей линии. Всякий раз, когда клиент звонит на горячую линию, звонок переадресовывается на одну из nлиний. И я хочу назначить процент звонков для каждой из n строк. Предположим, что есть две линии, и одна линия назначена на 60%, а другая - на 40%, общее количество звонков …

3
Git: ветка или вилка?
У меня есть игровой проект, который будет иметь две версии: Простая версия игры, ядро. Продвинутая версия игры. У меня есть первая версия в моем общедоступном репозитории, и только я буду над ней работать. Что касается 2-й версии, над ней будут работать два моих друга и я. Важнейшей частью является то, …

3
Категоризация задач / ошибок по риску изменений
У проекта, над которым я сейчас работаю, есть проблема: ошибки и задачи часто назначаются людям, которые слишком новы или слишком неопытны, и их работа в конечном итоге приводит к появлению новых ошибок в будущем. Проблема в том, что с некоторыми частями нашего программного обеспечения работать гораздо опаснее, чем с другими, …

4
Функциональное программирование добавляет сложности в коде? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . За весь прошлый год я написал Scala- код (исходящий из Java-фона). Мне очень понравилось, …

6
Что сделало BASIC прибыльным? [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 5 лет назад . В 1970-х годах человек по имени Билл Гейтс разработал переводчик для Бейсика: …

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