Начало » Использование СУБД » 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-тестов никуда. 
 
зы: оно конечно всё зависит от сферического коня и уровня упругости вакуума.
		
		
		
 |  
	| 
		
	 | 
 
 
 |   
Переход к форуму:
 
 Текущее время: Tue Nov 04 13:13:17 GMT+3 2025 
 Общее время, затраченное на создание страницы: 0.01009 секунд 
 |