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

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

3
необязательные указатели и неконстантные ссылки в C ++
В разделе « Другие функции C ++», «Аргументы ссылок » Руководства по стилю Google C ++ , я читал, что неконстантные ссылки не должны использоваться. Все параметры, передаваемые по ссылке, должны быть помечены как const. Ясно, что рассмотрение вызовов функций, использующих ссылки в качестве аргументов, абсолютно запутанно для программистов на …

2
Как пишутся абстрактные интерфейсы базы данных для поддержки нескольких типов баз данных?
Как начать разработку абстрактного класса в более крупном приложении, которое может взаимодействовать с несколькими типами баз данных, такими как MySQL, SQLLite, MSSQL и т. Д.? Как называется этот шаблон проектирования и где он начинается? Допустим, вам нужно написать класс, который имеет следующие методы public class Database { public DatabaseType databaseType; …
12 c#  database 

3
Понимание структуры потока
Я на самом деле изучаю структуру потока, и есть кое-что, что я не могу понять относительно магазинов . Что именно они? Я прочитал много статей, и кажется, что это касается области. Означает ли это, что это «абстрактная» часть, относящаяся к вызовам API или серверным вызовам? Это не очень понятно для …

2
Поддерживают ли классы в библиотеке JRE наблюдаемые и / или асинхронные чтения из внешних / не JRE сборок?
Как я могу реализовать свою кроссплатформенную библиотеку (например, на JRE), чтобы работать в поточно-ориентированном режиме с объектными ссылками, чтобы нативные внешние интерфейсы на других платформах могли наблюдать объект и использовать преимущества шаблонов Observable? Немного предыстории - концепция связывания данных используется в большинстве интерфейсных сред. В C # и Java это …

2
Почему для атрибутов модульного тестирования обычно требуются общедоступные методы?
Недавно я заметил, что добавление [TestInitialize] к защищенному методу в сборке .NET не было принято, но если я сделал метод общедоступным, он был вызван модулем модульного теста (в данном случае Resharper). Я заметил это несколько раз в прошлом с методами испытаний. Технически говоря, такой же простой способ размышлять о частном …

3
Считается ли интерфейс «пустым», если он наследуется от других интерфейсов?
Насколько я могу судить, пустые интерфейсы, как правило, считают плохой практикой, особенно когда такие вещи, как атрибуты, поддерживаются языком. Однако считается ли интерфейс «пустым», если он наследуется от других интерфейсов? interface I1 { ... } interface I2 { ... } //unrelated to I1 interface I3 : I1, I2 { // …

3
Происхождение «метод должен возвращать значение или иметь побочные эффекты, но не оба»
Однажды я прочитал, что метод должен иметь возвращаемое значение (и быть ссылочно прозрачным) или иметь побочные эффекты, но не оба. Я не могу найти никаких ссылок на это правило, но хочу узнать больше об этом. Каково происхождение этого совета? Из какого человека или сообщества это возникло? Дополнительный кредит: Какая заявленная …

2
Что использует Smalltalk в «становятся:»?
become:Сообщение в Smalltalk вызывает один объект изменения в другой, влияя на все ссылки на него. Что использует эта языковая функция? Это используется в реальном коде? Это просто любопытство? Считается ли это хорошей / плохой практикой?

2
Как обрабатывать изменения дизайна для устаревания auto_ptr в C ++ 11?
Мы тестируем библиотеку под C ++ 11 (т.е. -std=c++11). Библиотека использует auto_ptrи этот шаблон: Foo* GetFoo() { autoptr<Foo> ptr(new Foo); // Initialize Foo ptr->Initialize(...); // Now configure remaining attributes ptr->SomeSetting(...); return ptr.release(); } C ++ 11 устарел auto_ptr, поэтому мы хотим от него отойти. Тем не менее, код поддерживает как …
12 design  c++  c++11 

2
UnsupportedOperationException в интерфейсах платформы Java-коллекций
Просматривая Java Collections Framework, я заметил, что довольно много интерфейсов имеют комментарий (optional operation). Эти методы позволяют реализовать классы, UnsupportedOperationExceptionесли они просто не хотят реализовывать этот метод. Примером этого является addAllметод в Set Interface. Теперь, как указано в этой серии вопросов, интерфейсы являются определяющим контрактом для того, что может ожидать …

1
Организация каталогов репозитория CMake (C ++), содержащего несколько проектов
Я хотел бы получить несколько советов по организации набора связанных, но независимых проектов C ++, хранящихся в одном репозитории (git). В проектах используется CMake. Для упрощенного примера мы представляем 2 проекта A и B, A в зависимости от B. Большинство людей, разрабатывающих A, получат B через систему упаковки. Таким образом, …

3
Служат ли двоичные деревья конкретной цели для хранения иерархических данных? Каково их каноническое использование?
Я понимаю структуру бинарных деревьев и как их пройти. Тем не менее, я изо всех сил пытаюсь понять их фактическое использование, цели в программах и программировании. Когда я думаю о «реальных» примерах иерархических данных, они почти наверняка имеют более двух детей. Например, в родословной у матери часто может быть более …

2
Упаковочная структура коллекций Java (java.util) - почему Iterable находится в java.lang?
Согласно приведенной ниже диаграмме, за исключением интерфейса Iterable, все остальные конструкции (интерфейс / класс / абстрактный класс) находятся в одном пакетеjava.util Почему Iterableсидит в java.langпакете? Примечание: намерение состоит в том, чтобы понять аспект упаковки Java-программирования.

3
Конкурс модульного тестирования
Мои работодатели проводят ежемесячные соревнования по дневному тестированию. Целый день посвящен написанию юнит-тестов - очевидно, что мы проводим больше тестов в течение месяца, но это целый день - и «победитель» конкурса получает приз. Однако мы находим, что трудно определить, кто победитель. Мы назначали очки для каждого теста. Так что, если …

3
Автоматизация сборки против автоматизации развертывания против непрерывной интеграции
Я хочу стать более эффективным и эффективно использовать инструменты ops. Имея это в виду, я хотел узнать больше о непрерывной интеграции, но, похоже, есть много разных вещей, касающихся этого. Я на самом деле работаю с костюмами Jetbrains в своей работе (IntelliJ, WebStorm ...), поэтому я хотел продолжать использовать их, и …

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