| Начало » Использование СУБД » Firebird, HQbird, InterBase » Внешние зависимости (как провязать клиента и базу на этапе разработки) Переход к форуму:
	| 
		
			| Внешние зависимости [сообщение #5049] | Wed, 15 May 2024 14:53  |  
			| 
				
				
					|  shalamyansky Сообщений: 150
 Зарегистрирован: August 2022
 | Senior Member |  |  |  
	| Firebird поддерживает концепцию зависимостей своих внутренних объектов, и это прекрасно. За любое движение, нарушающее согласованность метаданных, бьют по рукам. Это иногда приводит к необходимости дополнительных телодвижений, но то и правильно. 
 Также зависимости между частями проекта поддерживают среды разработки и компиляторы, на которых разрабатывают клиенты для СУБД. Просто так модуль из песни не выкинешь, мамка (среда) и папка (компилятор) заругают.
 
 А вот связи между разрабатываемым клиентом и базой остаются на совести (на плечах, в руках, в памяти) программиста. Если совести или памяти мало-мало, возможны неприятности, обнаруживаемые только во время исполнения, и то не сразу и не всегда. Запросы к базе, прописанные в проекте клиента, должны точно соответствовать структуре базы, и никакая автоматика за этим не следит, все глазами и руками.
 
 Что хотелось бы? Чтобы был такой робот, который взял бы структуру базы с одной стороны, вытащил бы из клиента все возможные обращения к базе с другой, сравнил и погрозил бы пальцем - ай-ай-ай, вот тут, тут и тут ерунда. Нет такой   таблицы/представления/процедуры /поля.
 
 Вопросов 2:
 
 1. А вы как поддерживаете связи? Просто тестированием или еще как?
 
 2. Может, есть такие инструменты, а я и не знаю? Интересует в первую очередь Delphi и Java. В принципе, можно и самому подумать-придумать-сделать, но это думать и делать надо.
 
 [Обновления: Wed, 15 May 2024 14:58] Известить модератора |  
	|  |  |  
	| 
		
			| Re: Внешние зависимости [сообщение #5050 является ответом на сообщение #5049] | Wed, 15 May 2024 15:01   |  
			| 
				
				
					|  МП Сообщений: 889
 Зарегистрирован: August 2022
 Географическое положение: бурятский тун...
 | Senior Member |  |  |  
	| тут бы было интересно заслушать Женю Болтика. у него, если не ошибаюсь, все запросы лежат в базе, а не влинкованы в прогу в виде ресурсов.
 также сделано, если не ошибаюсь, в системе "Гедымин".
 но у них там и ресурсы формы лежат в базе, а не линкуются как *.dfm
 тем самым всегда имеет место быть непротиворечивое сопряжение фронтэнда с бэкэндом.
 
 [Обновления: Wed, 15 May 2024 15:01] Известить модератора |  
	|  |  |  
	|  |  
	|  |  
	|  |  
	| 
		
			| Re: Внешние зависимости [сообщение #5056 является ответом на сообщение #5055] | Thu, 16 May 2024 15:30   |  
			| 
				
				
					|  shalamyansky Сообщений: 150
 Зарегистрирован: August 2022
 | Senior Member |  |  |  
	| sim_84 писал(а) Wed, 15 May 2024 17:51 всяческие ORM с подходом code-firstДа, в случае ORM указанная проблема мало актуальна. Не буду поднимать волну холивара про и контра ORM, у всего есть свои плюсы и минусы, скажу только, что сам придерживаюсь концепции database-first и ищу решение именно для таких проектов. 
 В самом узком и наиболее частом применении задача выглядит так. Есть база, к которой определены несколько десятков процедур. Эти процедуры вызываются несколькими клиентами с разных платформ и разным функционалом. В порядке рефакторинга структуры базы возникает подозрение, что некоторые из них давно уже никому не нужны. Могу я их безопасно удалить? Вот и вопрос.
 
 Это описана зависимость в обратную сторону, от базы к клиенту. Нужны и прямые зависимости: вызываю с клиента процедуру, а есть такая в базе? Это второй вопрос.
 
 pastor писал(а) Thu, 16 May 2024 10:14
 Да, препарирование как метод валидации. Тоже думаю в эту сторону. По крайней мере прямую зависимость можно проверить.можно препарировать при сборе дистра
 
 
 |  
	|  |  |  
	|  |  
	|  |  
	|  |  
	| 
		
			| Re: Внешние зависимости [сообщение #5061 является ответом на сообщение #5057] | Thu, 16 May 2024 15:55   |  
			| 
				
				
					|  pastor Сообщений: 100
 Зарегистрирован: June 2022
 Географическое положение: Калуга
 | Senior Member |  |  |  
	| МП писал(а) Thu, 16 May 2024 15:36 31 декабря с годовым отчетом.если юзеры прибегут с криками "шеф, всё пропало!", значит удалять не надо.
 
 
 и 23 числа каждого месяца на отчислениях персоналу
 
 PS через два месяца после закрытия сезона со сверкой с Яндексом или Расчетными решениями
 [Обновления: Thu, 16 May 2024 15:57] Известить модератора |  
	|  |  |  
	|  |  
	|  |  
	|  |  
	|  |  
	| 
		
			| Re: Внешние зависимости [сообщение #5081 является ответом на сообщение #5065] | Sun, 19 May 2024 16:10   |  
			| 
				
				
					|  Саня, привет! Сообщений: 3
 Зарегистрирован: May 2024
 | Junior Member |  |  |  
	| shalamyansky писал(а) Thu, 16 May 2024 17:16 Понял, что ниша открыта, и готовых инструментов на горизонте не видно. Уже хорошо (что понял).Вот оно вам надо. Схема базы меняется редко. Поменял -  погонял тесты, отдал заказчику, пофиксил возникшие претензии и живи себе дальше. А изначально строить приложения вокруг колченогой идеи - да ну нафиг.
 Спасибо всем за обсуждение!
 Ну, завернешь ты запросы в процедуры. А что делать с запросами, формируемыми динамически, как ты их при компиляции проверишь? Отказаться от них?
 |  
	|  |  |  
	|  |  
	| 
		
			| Re: Внешние зависимости [сообщение #5084 является ответом на сообщение #5082] | Mon, 20 May 2024 11:30  |  
			| 
				
				
					|  МП Сообщений: 889
 Зарегистрирован: August 2022
 Географическое положение: бурятский тун...
 | Senior Member |  |  |  
	| основных вариантов может быть овер-дофига. так что без полноценных unit-тестов никуда.
 
 зы: оно конечно всё зависит от сферического коня и уровня упругости вакуума.
 |  
	|  |  | 
 
 
 Текущее время: Fri Oct 31 11:03:15 GMT+3 2025 
 Общее время, затраченное на создание страницы: 0.01633 секунд |