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

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

5
Малые функции против сохранения зависимой функциональности в той же функции
У меня есть класс, который устанавливает массив узлов и соединяет их друг с другом в виде графа. Это лучше всего: Сохраняйте функциональность для инициализации и соединения узлов в одной функции Имейте функции инициализации и подключения в двух разных функциях (и имейте зависимый порядок, в котором функции должны быть вызваны - …

3
Совместное использование объектов DTO между микросервисами
TL; DR. Можно ли делиться библиотекой POJO между службами? Как правило, нам нравится строго ограничивать обмен между службами, если это возможно. Были некоторые споры о том, должна ли служба, предоставляющая данные, предоставлять клиентскую библиотеку для использования клиентами. Клиент-библиотека обычно необязательна для использования клиентом службы и может использовать API, как им …

4
size_t или int для размеров, индекса и т. д.
В C ++ size_t(или, вернее, T::size_type«обычно» size_t; т. Е. unsignedТип) используется как возвращаемое значение для size()аргумента и operator[]т. Д. (См std::vector. И т. Д.) С другой стороны, языки .NET используют int(и, необязательно long) для той же цели; фактически CLS-совместимые языки не обязаны поддерживать неподписанные типы . Учитывая, что .NET новее, …
15 c#  c++  array 

6
Автономные микросервисы, очереди событий и обнаружение сервисов
В последнее время я много читал о микро-услугах, и вот некоторые из выводов, которые я сделал до сих пор (пожалуйста, исправьте меня, если я ошибаюсь в любой момент). Архитектура микросервисов хорошо сочетается с дизайном, управляемым доменом. Обычно одна MS представляет один ограниченный контекст. Если микро-сервис A требует функциональности, которая находится …

7
Недостатки использования обнуляемого внешнего ключа вместо создания таблицы пересечений
Скажем, у меня есть следующая диаграмма ER: Теперь, если бы я представлял отношение с помощью внешнего ключа Schoolin Student, у меня могли бы быть NULLзначения (потому что a Student не обязательно должен принадлежать a School), например: Таким образом, правильный способ (основываясь на том, что я прочитал) - создать таблицу пересечений …

1
Как появился std :: vector <bool>?
Сегодня практически все разработчики C ++ соглашаются с тем, что это std::vector&lt;bool&gt;было ошибкой, поскольку это обманчиво не контейнер, и его варианты использования в значительной степени совпадают с таковыми в std::bitsetлюбом случае. Как это было признано в стандарте? Это было спорным в то время? Каковы были основные аргументы в поддержку?
15 c++  history  stl 

3
Как работать с более быстрыми компьютерами в видеоигре реального времени клиент / сервер
Я создаю свою первую онлайн-игру с использованием socket.io, и мне бы хотелось, чтобы она была многопользовательской игрой в реальном времени, такой как agar.io или diep.io. Но я столкнулся с проблемой выяснения того, как заставить все компьютеры работать с одинаковой скоростью. У меня есть три идеи для моделей, но ни одна …

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

3
Почему создатель Ruby решил использовать концепцию символов?
tl; dr: Будет ли определение символов, не зависящее от языка, и причина их использования на других языках? Итак, почему создатель Ruby использовал концепцию symbolsв языке? Я спрашиваю об этом с точки зрения неруби программиста. Я выучил много других языков и ни на одном из них не нашел необходимости указывать, имел …


6
Как следовать рекомендациям по ограничению в 80 символов при написании исходного кода?
Итак, как вы знаете, есть лучшая практика высказывания Ограничить строку исходного кода в 80 символов. Вот 2 ссылки: Почему 80 символов являются «стандартным» пределом для ширины кода? Ограничение в 80 символов по-прежнему актуально во времена широкоэкранных мониторов? И я уверен, что вы сможете получить больше, если будете искать эту лучшую …

3
Стратегия ветвления Git для долго не выпускавшегося кода
В нашей команде, помимо отдельных единиц работы (Рассказы), у нас есть долгосрочные темы работы (Эпики). Несколько историй составляют эпос. Традиционно у нас были ветки функций для каждой истории, и мы объединяли их сразу с мастером, когда они проходили тестирование. Тем не менее, мы хотели бы начать сдерживать выпуск законченных историй …

7
Следует ли избегать <= и> = при использовании целых чисел, например, в цикле For? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 3 года назад . Я объяснил своим студентам, что тестирование на равных не является надежным для переменных …
15 loops 

8
Должен ли я регистрировать ошибки при создании исключений?
Я строил приложение в течение нескольких месяцев, и я понял, что возникла закономерность: logger.error(ERROR_MSG); throw new Exception(ERROR_MSG); Или при ловле: try { // ...block that can throw something } catch (Exception e) { logger.error(ERROR_MSG, e); throw new MyException(ERROR_MSG, e); } Поэтому всякий раз, когда я выбрасывал или ловил исключение, я …

2
Нужно ли наследовать от std :: exception?
При разработке моей первой «серьезной» библиотеки C ++ я спрашиваю себя: Это хороший стиль, чтобы извлечь свои исключения, std::exceptionи это потомки ?! Даже после прочтения Проектирование классов исключений Что такое «хорошее количество» исключений для моей библиотеки? Я все еще не уверен. Потому что, помимо обычной (но, возможно, не очень) практики, …
15 c++  exceptions 

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