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

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

8
C ++ другу или не другу
В этом семестре в колледже у меня есть объектно-ориентированное программирование с курсом c ++, и мы изучали функции друзей. Мне инстинктивно не нравится их способность обходить безопасность, которую обеспечивают Encapsulation и скрытие данных, я прочитал несколько статей в Интернете, и некоторые люди думали, что это было хорошей идеей с некоторыми …

4
Почему большинство языков предоставляют реализацию min-heap вместо реализации max-heap?
Я только что заметил что-то, и мне интересно, есть ли причина для этого. За исключением C ++ (std :: priority_queue - это максимальная куча), я не знаю другого языка, который предлагает максимальную кучу. Модуль Python heapq реализует двоичную минимальную кучу поверх списка. Библиотека Java содержит класс PriorityQueue, который реализует очередь …

8
Вы читаете ошибки компиляции C или C ++ после первой?
Я никогда не понимал, почему компиляторы C и C ++ пытаются восстановиться после ошибок и продолжают анализ. Почти всегда первая ошибка генерирует поток фиктивных ошибок, которые исчезнут, как только будет исправлена ​​первая. После нескольких лет опыта я просто перестал искать любую ошибку, кроме первой в каждом файле. Я перезапускаю компилятор, …

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

6
Как мы могли бы переписать лицензию «No Evil», чтобы сделать ее «бесплатной»?
Я не нашел юристов SE сайт, поэтому я подумал, что лучше размещать здесь. /* * ...subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * The Software shall be used …

4
Есть ли реальное использование указателей в C #? [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 5 лет назад . Какова ситуация при кодировании в C #, где использование указателей является хорошим …
19 c#  pointers 

6
Каковы преимущества использования побитовых операций? [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 5 лет назад . Прочитав последнюю рассылку CodeProject, я наткнулся на эту статью о побитовых операциях …

5
Какие существуют альтернативы сквозным задачам, кроме аспектно-ориентированного программирования? [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 5 лет назад . Аспектно-ориентированное программирование обещает решить сквозные проблемы, но я еще не полностью продан. …

3
Стоит ли включать тесты в образ Docker?
Когда дело доходит до тестов, я могу придумать два варианта: Поместите и тест и приложение в одном изображении. Включите только код приложения в изображение. Создайте специальный тестовый контейнер, который создается после основного изображения и добавляет к нему несколько слоев (тестовый код, зависимости и т. Д.). С первым вариантом я могу …

2
Классы против модулей в Python
В Python есть много модулей (таких как re), которые выполняют определенный набор действий. Вы можете вызывать функции этого модуля и получать результаты, и у модуля в целом есть идея (в данном случае работа с регулярными выражениями). Классы, кажется, делают почти то же самое, но они также, кажется, используют свойства немного …
19 class  modules 

2
Каковы различные значения слова «приспособление»?
У меня есть некоторые трудности с пониманием понятия «крепеж». Я знаю, что такое набор тестов, тестовый набор, тестовый прогон, но что такое «приспособление»? Параметризованный тест? Мне кажется, что значение или семантика термина «фикстура» может незначительно отличаться в зависимости от языка программирования или тестирования инфраструктуры? Я думаю, что Phpunit крепеж « …

7
Что такое идиоматика?
Я понимаю, что «идиома» - это обычная операция или шаблон, который на определенном языке не упрощается синтаксисом основного языка, например, целочисленным шагом: i = i + 1; В C ++ эта идиома упрощается оператором: ++i; Однако, когда кто-то использует термин «идиоматический», я не уверен, как это понимать. Что делает кусок …
19 c++  idioms 

5
Как правильно синхронизировать данные между микросервисами?
Я относительно новичок в микросервисной архитектуре. У нас есть веб-приложение умеренного размера, и я взвешиваю все за и против того, чтобы разбить его на микросервисы вместо монолитной системы, которую мы сейчас продвигаем. Насколько я понимаю, рассмотрит microservices Aи Bкаждый из которых полагается на подмножестве данных, а другие имеют. Если сообщение …

3
Микросервисы без дублирования данных
Мне трудно избежать дублирования данных или общей базы данных даже для самого простого дизайна микросервисов, что заставляет меня думать, что я что-то упускаю. Вот основной пример проблемы, с которой я сталкиваюсь. Предполагая, что кто-то использует веб-приложение для управления запасами, ему понадобятся две службы; один для инвентаря, управляющего товарами и количеством …

6
Try / Catch / Log / Rethrow - это Anti Pattern?
Я вижу несколько постов, где важность обработки исключений в центральном местоположении или на границе процесса подчеркивалась как хорошая практика, а не мусор каждого блока кода вокруг try / catch. Я твердо верю, что большинство из нас понимают важность этого, однако я вижу, что люди по-прежнему используют анти-паттерн catch-log-rethrow главным образом …

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