А вот вопрос про SCM
От: Gaperton http://gaperton.livejournal.com
Дата: 15.12.10 12:51
Оценка:
Допустим, мы пишем приложение, в центре которого стоит РСУБД. То есть, вся бизнес-логика завернута в хранимые процедуры, и "сервер приложений" отсутствует.

Вопрос. Применяет ли кто для хранимых процедур и прочего фарша, живущего на сервере БД, системы контроля версий и автоматические тесты?

Для тех, у кого "да" — второй вопрос. Как вам это удается? Каким именно образом это сделано, и как организован процесс внесения изменений?

16.12.10 00:11: Перенесено модератором из 'Управление проектами' — kochetkov.vladimir
Re: А вот вопрос про SCM
От: vmpire Россия  
Дата: 15.12.10 13:17
Оценка: +1
Здравствуйте, Gaperton, Вы писали:

G>Для тех, у кого "да" — второй вопрос. Как вам это удается? Каким именно образом это сделано, и как организован процесс внесения изменений?

А какие проблемы положить текстовые файлы в систему контроля версий и написать простенький скрипт, который вливает всё это в базу?
Re: А вот вопрос про SCM
От: LF  
Дата: 15.12.10 13:18
Оценка:
Контроль версий — да, тесты — нет.
Вся БД храниться в SQL Server Database Project
Re: А вот вопрос про SCM
От: avpavlov  
Дата: 15.12.10 13:21
Оценка: 4 (1)
G>Допустим, мы пишем приложение, в центре которого стоит РСУБД. То есть, вся бизнес-логика завернута в хранимые процедуры, и "сервер приложений" отсутствует.

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

Естественно, никаких правок структуры на каком либо сервер (ни на продакшн, ни на УАТ, ни на тестовом) — всё через инкрементальные скрипты, которые являются частью релиза.

Соответственно, нормально ложится в SCM, метки/бранчи, нормальный поиск, рефакторинг и прочее.

В случае отсутствия сервера приложений как такового можно было бы иметь шелл-скрипт, который всем этим барахлом занимается при установке новой версии.
Re: А вот вопрос про SCM
От: avpavlov  
Дата: 15.12.10 13:26
Оценка:
G>Вопрос. Применяет ли кто для хранимых процедур и прочего фарша, живущего на сервере БД, системы контроля версий и автоматические тесты?

Именно к процедурам — нет, хотя вот сейчас написал и задумался — а собственно почему нет?

Вообще у нас интеграционными тестами хорошее покрытие, так что процедуры тестируются как часть приложения, так что наверное поэтому никто не парился до сих пор.
Re[2]: А вот вопрос про SCM
От: Gaperton http://gaperton.livejournal.com
Дата: 15.12.10 13:59
Оценка:
Здравствуйте, vmpire, Вы писали:

G>>Для тех, у кого "да" — второй вопрос. Как вам это удается? Каким именно образом это сделано, и как организован процесс внесения изменений?

V>А какие проблемы положить текстовые файлы в систему контроля версий и написать простенький скрипт, который вливает всё это в базу?

Есть там определенные проблемы с тупыми подходами. Если кратко — они не работают. А описывать их длинно смысла нет. Люди с соответствующим опытом их и так знают, а мнение остальных мне не особо интересно.
Re[2]: А вот вопрос про SCM
От: Gaperton http://gaperton.livejournal.com
Дата: 15.12.10 14:34
Оценка:
Здравствуйте, avpavlov, Вы писали:

A>Соответственно, нормально ложится в SCM, метки/бранчи, нормальный поиск, рефакторинг и прочее.


Ясен пень, в этой ситуации все нормально ложится в SCM. Тока в вопросе описана совсем не эта ситуация.

A>В случае отсутствия сервера приложений как такового можно было бы иметь шелл-скрипт, который всем этим барахлом занимается при установке новой версии.


А вот это идея! Так парням и передам . "Напишите", скажу, "какой-нибудь скрипт, чтоб он всем этим вашим барахлом занимался".

Надо было вопрос не здесь задавать, а в форуме по базам данных.
Re[3]: А вот вопрос про SCM
От: avpavlov  
Дата: 15.12.10 14:36
Оценка:
G>А вот это идея! Так парням и передам . "Напишите", скажу, "какой-нибудь скрипт, чтоб он всем этим вашим барахлом занимался".

G>Надо было вопрос не здесь задавать, а в форуме по базам данных.


А я бы тебе там тоже самое бы ответил, потому что твой вопрос судя по всему рассчитан на телепатов, которых тут на всех форумах примерно 0.
Re: А вот вопрос про SCM
От: Sinix  
Дата: 15.12.10 14:59
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Допустим, мы пишем приложение, в центре которого стоит РСУБД. То есть, вся бизнес-логика завернута в хранимые процедуры, и "сервер приложений" отсутствует.

Именно так.

G>Вопрос. Применяет ли кто для хранимых процедур и прочего фарша, живущего на сервере БД, системы контроля версий и автоматические тесты?

Да. Используется Sql Server + Visual Studio Database Project. Местами неудобно, но для всего остального ничего подобного и близко нет (для DB2 неспешно доделывают интеграцию).

G>Для тех, у кого "да" — второй вопрос. Как вам это удается? Каким именно образом это сделано, и как организован процесс внесения изменений?


Оно шамо Если интересует, могу поискать темы с обсуждением, но там вопросов общего характера не было. Подходы очень зависят от используемых инструментов.

Единственное, отдельных тестов практически нет — код сначала вылизывается в SSMS, затем переносится в проект и деплоится на тестовый сервак. Редкие ошибки отлавливаются функциональным тестированием.
Re[4]: А вот вопрос про SCM
От: Gaperton http://gaperton.livejournal.com
Дата: 15.12.10 15:14
Оценка:
Здравствуйте, avpavlov, Вы писали:

G>>А вот это идея! Так парням и передам . "Напишите", скажу, "какой-нибудь скрипт, чтоб он всем этим вашим барахлом занимался".


G>>Надо было вопрос не здесь задавать, а в форуме по базам данных.


A>А я бы тебе там тоже самое бы ответил, потому что твой вопрос судя по всему рассчитан на телепатов, которых тут на всех форумах примерно 0.


И я бы тебе там то же самое ответил, потому что твой ответ вообще непонятно на кого рассчитан.

Вопрос рассчитан на людей, у кого вся бизнес-логика (то есть, значительный объем приложения, почти вся его суть) завернута в хранимые процедуры, и у кого есть реальный опыт постановки безобразия под source control и увеса его тестами.

Это разве непонятно из вопроса? Вполне понятно.
Это твоя ситуация? Нет, не твоя.
Ты с описываемой ситуацией и проблемой сталкивался? Нет, не сталкивался.
Как ты решал проблему, с которой не сталкивался, описать можешь? Естественно, нет.
А процесс внесения изменений пошагово описать? Тут и говорить не о чем.

То, что ты решил писать ответ, когда по основным пунктам у тебя "нет, нет, не был, не привлекался" — это моя проблема? Нет, не моя. И "телепатия" тут не причем.

Но если тебе интересно, о чем разговор — вот статьи с сайта RedGate.

http://downloads.red-gate.com/HelpPDF/ContinuousIntegrationForDatabasesUsingRedGateSQLTools.pdf

This article examines the challenge of integrating databases with the development cycle,
and describes how a combination of Red Gate tools and tools like MSBuild, NAnt, and
Powershell can be used to automate the process.


http://www.red-gate.com/products/sql-development/sql-developer-bundle/learn-more/development-models

http://www.red-gate.com/products/sql-development/sql-source-control/learn-more/assets/SQLSourceControlSourceControllingDatabases.pdf
Re[2]: А вот вопрос про SCM
От: Gaperton http://gaperton.livejournal.com
Дата: 15.12.10 15:18
Оценка:
Здравствуйте, Sinix, Вы писали:

G>>Вопрос. Применяет ли кто для хранимых процедур и прочего фарша, живущего на сервере БД, системы контроля версий и автоматические тесты?

S>Да. Используется Sql Server + Visual Studio Database Project. Местами неудобно, но для всего остального ничего подобного и близко нет (для DB2 неспешно доделывают интеграцию).

И как оно? Работает? RedGate-товские тулы пробовали (http://www.red-gate.com/products/sql-development/sql-source-control/), есть возможность их сравнить с Database Project?

G>>Для тех, у кого "да" — второй вопрос. Как вам это удается? Каким именно образом это сделано, и как организован процесс внесения изменений?


S>Оно шамо Если интересует, могу поискать темы с обсуждением, но там вопросов общего характера не было. Подходы очень зависят от используемых инструментов.


Да, было бы здорово.

S>Единственное, отдельных тестов практически нет — код сначала вылизывается в SSMS, затем переносится в проект и деплоится на тестовый сервак. Редкие ошибки отлавливаются функциональным тестированием.


Можно подробнее — в SSMS каким образом тестируется код? У вас по одному экземпляру SQL-сервера на разработчика, или общий? На тестовом сервере — тестирование ручное, или есть автотесты?
Re: А вот вопрос про SCM
От: Pavel Dvorkin Россия  
Дата: 15.12.10 15:27
Оценка:
Здравствуйте, Gaperton, Вы писали:

Скоро аббревиатур не хвати. Я-то думал, вопрос по Service Control Manager
With best regards
Pavel Dvorkin
Re[5]: А вот вопрос про SCM
От: avpavlov  
Дата: 15.12.10 15:55
Оценка:
G>То, что ты решил писать ответ, когда по основным пунктам у тебя "нет, нет, не был, не привлекался" — это моя проблема? Нет, не моя. И "телепатия" тут не причем.

Описанный подход как минимум универсален, легко используется на любой ОС и с любой СУБД.

У тебя всё начиналось как "в центре которого стоит РСУБД.", но закончилось продуктом для MS SQL Server, причём ещё и под конкретную среду заточенным (SQL Server Management Studio). Можно подумать за пределами МС СКЛ сервера жизни нет.
Re[3]: А вот вопрос про SCM
От: Sinix  
Дата: 15.12.10 16:13
Оценка: 38 (2)
Здравствуйте, Gaperton, Вы писали:

G>И как оно? Работает? RedGate-товские тулы пробовали (http://www.red-gate.com/products/sql-development/sql-source-control/), есть возможность их сравнить с Database Project?

Смотрел, но крайне поверхностно. VSDB — более тяжёлая и мощная штука (но и сложнее в изучении, да). Если опуститься до аналогий — то это как тортойз + msbuild против проекта в студии.

Бонусы:
1. У каждого разработчика локальная копия проекта. Без необходимости ставить SqlServer.
2. Валидация схемы — можно собрать проект и найти ошибки без того, чтобы валить тестовый сервер.
3. Интеллисенс.
4. Умная синхронизация схемы проекта с любым сервером/другим проектом.
5. Аккуратный деплой с автоматическоё генерацией скриптов для обновления.
6. Жёсткая (даже чрезмерно) структура проекта, предусматривающая почти все типы объектов Sql Server'а
7. Поддержка настроек развёртывания, настроек сервера/базы/разрешений.
8. Юнит-тесты + генераторы данных/синжронизация данных. Так и не распробовал.


S>>Оно шамо Если интересует, могу поискать темы с обсуждением, но там вопросов общего характера не было. Подходы очень зависят от используемых инструментов.

G>Да, было бы здорово.
Чуть-чуть было тут
Автор: Poul_Ko
Дата: 06.09.10
и тут
Автор: Быдлокодер
Дата: 12.10.10
.

G>Можно подробнее — в SSMS каким образом тестируется код?

Практически никак, обычный REPL: прототип — довёл до рабочего состояния — вылизал. Сейчас код пишу я один, рука набита и ошибок мало. Архитектура аккуратная, помойки нет, кода на выброс очень мало. В теории можно тратить половину времени на написание тестов и на их обновление, но пока не окупается.

G>У вас по одному экземпляру SQL-сервера на разработчика, или общий? На тестовом сервере — тестирование ручное, или есть автотесты?

Один тестовый сервер, один боевой. По-хорошему надо бы завести ещё один инстанс непосредственно для издевательств, но лень пока побеждает. В клиентских проектах есть тесты + обязательное функциональное тестирование при добавлении/правке фич. Софт локальный, клиенты автообновляются — цена ошибки куда ниже, чем у коробочного софта.
Re[2]: А вот вопрос про SCM
От: Gaperton http://gaperton.livejournal.com
Дата: 15.12.10 16:14
Оценка: :))
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Скоро аббревиатур не хвати. Я-то думал, вопрос по Service Control Manager


А нефига занимать уже давно занятые аббревеатуры . Например — Software Configuration Management.

In software engineering, software configuration management (SCM) is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines.
SCM concerns itself with answering the question "Somebody did something, how can one reproduce it?" Often the problem involves not reproducing "it" identically, but with controlled, incremental changes. Answering the question thus becomes a matter of comparing different results and of analysing their differences. Traditional configuration management typically focused on controlled creation of relatively simple products. Now, implementers of SCM face the challenge of dealing with relatively minor increments under their own control, in the context of the complex system being developed

Re[4]: А вот вопрос про SCM
От: Gaperton http://gaperton.livejournal.com
Дата: 15.12.10 16:17
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Бонусы:

S>1. У каждого разработчика локальная копия проекта. Без необходимости ставить SqlServer.
S>2. Валидация схемы — можно собрать проект и найти ошибки без того, чтобы валить тестовый сервер.
S>3. Интеллисенс.
S>4. Умная синхронизация схемы проекта с любым сервером/другим проектом.
S>5. Аккуратный деплой с автоматическоё генерацией скриптов для обновления.
S>6. Жёсткая (даже чрезмерно) структура проекта, предусматривающая почти все типы объектов Sql Server'а
S>7. Поддержка настроек развёртывания, настроек сервера/базы/разрешений.
S>8. Юнит-тесты + генераторы данных/синжронизация данных. Так и не распробовал.

Спасибо. Буду смотреть.
Re[3]: А вот вопрос про SCM
От: Pavel Dvorkin Россия  
Дата: 15.12.10 17:00
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Скоро аббревиатур не хвати. Я-то думал, вопрос по Service Control Manager


G>А нефига занимать уже давно занятые аббревеатуры . Например — Software Configuration Management.


А вы его, часом, не позаимствовали сами у Supply Chain Management ?
With best regards
Pavel Dvorkin
Re[4]: А вот вопрос про SCM
От: Gaperton http://gaperton.livejournal.com
Дата: 15.12.10 18:05
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>>>Скоро аббревиатур не хвати. Я-то думал, вопрос по Service Control Manager


G>>А нефига занимать уже давно занятые аббревеатуры . Например — Software Configuration Management.


PD>А вы его, часом, не позаимствовали сами у Supply Chain Management ?


Хм. Ну, это не я позаимствовал. Пусть эти парни сами между собой разбираются, я так считаю.
Re[6]: А вот вопрос про SCM
От: Gaperton http://gaperton.livejournal.com
Дата: 15.12.10 18:25
Оценка:
Здравствуйте, avpavlov, Вы писали:

G>>То, что ты решил писать ответ, когда по основным пунктам у тебя "нет, нет, не был, не привлекался" — это моя проблема? Нет, не моя. И "телепатия" тут не причем.


A>Описанный подход как минимум универсален, легко используется на любой ОС и с любой СУБД.


Описанный тобой "подход" не имеет к проблеме никакого отношения.

A>У тебя всё начиналось как "в центре которого стоит РСУБД.", но закончилось продуктом для MS SQL Server...


Я эти статьи дал тебе для того, чтоб ты хотя бы понял проблему, о которой идет речь, а не реагировал на кючевые слова вроде "MS SQL Server". Вижу — не получилось. Но я не настаиваю.
Re[4]: А вот вопрос про SCM
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 15.12.10 21:09
Оценка: :)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>>>Скоро аббревиатур не хвати. Я-то думал, вопрос по Service Control Manager

G>>А нефига занимать уже давно занятые аббревеатуры . Например — Software Configuration Management.
PD>А вы его, часом, не позаимствовали сами у Supply Chain Management ?

Ничего не знаю, Service Continuity Management (процесс ITIL, один из) рулит. А Security Checks and Monitoring, вообще наше все
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.