Реорганизация кода C ++ для управления памятью и внешними зависимостями - PullRequest
1 голос
/ 18 января 2011

У меня довольно большое программное обеспечение, которое я разрабатывал в течение последних 10 месяцев.Это коммерческое приложение, поэтому с самого начала (и из-за непрограммных требований) разработка была более сфокусирована на предоставлении новых функций, чем на создании надежной системы.

Теперь мы находимся на определенном этапе, когда хотим добавить в приложение следующие функции:

  • Собственная система управления памятью, включая обнаружение утечек памяти.
  • Чтобы сделать замену стандартных библиотек как можно более простой (скажем, кто-то, кто собирается использовать наш код и хочет использовать свою собственную строковую реализацию вместо std :: string)
  • Подготовьте несколько выпусков.В основном, это версия «Отладка», в которой включены такие вещи, как обнаружение утечек памяти, утверждения и другие «безопасные» методы, и версия «Выпуск», без всех этих потребляющих процедур.

Дело в том, чтоЯ могу найти там руководства для выполнения каждой из этих задач, но я боюсь, что после каждого из них в отдельности я получу немного запутанный код.Другими словами, мне нужна структура организации кода / заголовков (иначе хороший дизайн), которая позволяет мне выполнять эти задачи (и, возможно, другие в будущем).

Так чтовопрос , знаете ли вы какие-либо справочные или онлайн-книги / руководства, где я могу найти руководство по организации кода для реализации всех этих функций?Любые предложения?

Большое спасибо заранее.

С наилучшими пожеланиями.

РЕДАКТИРОВАТЬ:

На самом делемы разрабатываем и приложение, и библиотеку ... но часть, которую мы собираемся изменить в этом случае, - это библиотека, так что, Фред Нурк, вы правы, это библиотека .

О IDE, мы используем Microsoft Visual Studio.Платформа, которую мы разрабатываем для Windows, но библиотека предназначена для межплатформенной работы (она связана с программированием игр, поэтому библиотека будет работать, например, на консолях и мобильных устройствах).

Ответы [ 2 ]

4 голосов
/ 18 января 2011

Похоже, вы планируете провести серьезный рефакторинг, и в этом случае вам, вероятно, следует прочитать: Рефакторинг: улучшение дизайна существующего кода , автор Martin Fowler.

0 голосов
/ 18 января 2011

Разумно использовать std :: string и принудительно применять его, но вы не должны предполагать, что другие будут использовать ту же реализацию STL, что и вы сами.интерфейсы.

Что касается книг на эту тему, Мартин Фаулер , вероятно, самый известный "гуру" в этом отделе:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...