При выполнении многопоточного программирования C/C++ создайте серию макросов, которые утверждают, что функция вызывается на потоке, Вы думаете то, что это было обращенным. Тогда используйте их подробно.
Использование GetCurrentThreadId () в Windows или pthread_self () на Posix, когда поток будет инициализирован, затем сохраните в globals. Утверждение выдерживает сравнение с хранимой суммой.
сохранил меня большая болезненная отладка, особенно когда кто-то еще осуществляет рефакторинг существующий многопоточный код.
В настоящее время я храню свои сценарии изменения sql в папке и называю их порядковым номером сценария, именем таблицы, описанием изменения
1-User-create-table.sql
2- User-added-columns.sql
...
n
Выполнив эти сценарии, я перемещаю их в новую папку с именем «release 2009-09-01», а затем продолжаю следующий номер
Да, вы должны поместить их в систему контроля версий. Соглашение об именах не так важно, как согласование с ним. Один из способов - добавить искусственный (создать один) номер версии приложения в имя файла каждого скрипта. Вероятно, мы могли бы дать вам лучшие примеры именования, если вы дадите больше деталей. Но определенно вы хотите, чтобы они были в системе контроля версий.
Важным компонентом, который я бы посоветовал адресовать, является упорядочение - файлы должны включать (возможно, в начале) какую-то сортируемую метку даты и времени. Таким образом, вы можете точно протестировать и отладить порядок , в котором выполняются сценарии.
Начните изучать, как использовать ветки с вашим исходным элементом управления. Что может быть очень ценным при совместной работе.
Некоторые стратегии ветвления могут быть следующими:
Вам также следует попробуйте GDCM out.
GDCM - это реализация стандарта DICOM с открытым исходным кодом. Он предлагает некоторую совместимость с файлами ACR-NEMA 1.0 и 2.0 (необработанные файлы). Он написан на переносимом C ++ и предлагает оболочку для следующих целевых языков (с использованием swig):
It пытается поддерживать все возможные кодировки изображений DICOM, а именно:
SQLScripts.Bat:
SET BASEDIR=%%1
SET SERVER=%%2
SET DATABASE=%%3
CALL RUNISQLW CreateUserPresets %BASEDIR% %SERVER% %DATABASE%
CALL RUNISQLW CreateFundWorkflows %BASEDIR% %SERVER% %DATABASE%
CALL RUNISQLW spFundWorkflowAddFromTemplate %BASEDIR% %SERVER% %DATABASE%
CALL RUNISQLW spFundWorkflowListForGrid %BASEDIR% %SERVER% %DATABASE%
CALL RUNISQLW spWorkflowTasksListForGrid %BASEDIR% %SERVER% %DATABASE%
CALL RUNISQLW fGetToleranceDate %BASEDIR% %SERVER% %DATABASE%
CALL RUNISQLW fGetNotifyDate %BASEDIR% %SERVER% %DATABASE%
CALL RUNISQLW spWorkflowTasksManager %BASEDIR% %SERVER% %DATABASE%
CALL RUNISQLW spWorkflowTasksAnalyst %BASEDIR% %SERVER% %DATABASE%
CALL RUNISQLW spWorkflowTasksNotify %BASEDIR% %SERVER% %DATABASE%
CALL RUNISQLW AddGateFrequency %BASEDIR% %SERVER% %DATABASE%
pause
RUNISQLW:
@REM First Parameter: Name of SQL file, without the .SQL extension.
@REM Second Parameter: Base Directory to run the file in.
@REM Third Parameter: Name of the server to run the file on.
@REM Fourth Parameter: Name of the Database on the server.
osql -S %3 -d %4 -E -i %2\%1.sql -o %2\Output\%1.txt
Затем мы вызываем пакетный файл SqlScripts из файла deployment.bat для каждой конфигурации environemt, Dev, Staging или Production. Это сохраняет согласованность между конфигурациями.
Если вы используете VS Team Edition, вы можете использовать выпуск базы данных для создания проекта базы данных для версии сервера sql, который вы используете.
Затем создайте проект из базы данных, так что вы получаете все функции, представления, таблицы в проект.
Затем, когда вы вносите изменения, вносите их в проект, чтобы они легко могли быть в svn (каждый файл там), а затем вы можете просто синхронизировать свои база данных sql server.
Другой способ - использовать такой инструмент, как http://www.red-gate.com/products/SQL_Compare/index.htm
Он генерирует сценарий изменения для одного развертывания. Хорошо, что вам больше не нужно рассчитывать на дисциплину разработчиков.
Кроме того, мне все еще нравится иметь БД в SVN. Я использую SQLScript для см. бесплатную утилиту для создания сценариев объектов БД в ms sql .
РЕДАКТИРОВАТЬ
Теперь я использую Redgate SQL Version . С ее помощью довольно легко внести изменения в SVN Единственная проблема в том, что мне нужно запускать и использовать Приложение, а не автоматизированный процесс.