Re[17]: Оформление работы с БД в корпоративных приложениях -
От: Aviator  
Дата: 24.09.07 10:54
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, Aviator, Вы писали:


A>>>Ну и о чём тогда говорить, если ты не понимаешь что такое БД и зачем она нужна?

A>>Я Вас и не заставляю ничего говорить Пишите дальше хранимки, пока ещё есть кого заставить их поддерживать.

A>Пишите дальше SELECT *. Хорошим примером такого способа хранения данных являетс 1С. Вроде бы и в БД всё, но толку от этого никакого. 2процессорный, многоядерный, 4Гб, супер-пупер сервер едва держит 10 клиентских соединений. Вы кажется в эту категорию спешите записаться.

Давно уже применяю ORM чего желал бы и Вашим специалистам.
Re[9]: Оформление работы с БД в корпоративных приложениях -
От: kuj  
Дата: 24.09.07 10:55
Оценка: :)
Здравствуйте, AndrewJD, Вы писали:

A>>Интересно, а как у вас организован процесс тестирования? Сидим тыкаем кнопари на формах и ждём что случится?

AJD>Как обычно, ежедневные автоматические тесты.
Можно пример?

A>>И вообще, TDD наверно враги прогресса придумали?

AJD>TDD — серебрянная пуля?
Посеребренная.
... << RSDN@Home 1.2.0 alpha rev. 746>>
Re[10]: Оформление работы с БД в корпоративных приложениях -
От: adontz Грузия http://adontz.wordpress.com/
Дата: 24.09.07 10:55
Оценка: -1 :)
Здравствуйте, kuj, Вы писали:

A>>Ну давай мерятся пиписьками. На вот

A>>http://en.wikipedia.org/wiki/Object-relational_mapping
A>>Что я сказал не так?
kuj>Прочитайте хотя бы http://www.hibernate.org/15.html
kuj>ORM это гораздо больше, чем "всего лишь мапинг и сопутствующие операции".

Это не ORM гораздо больше, это конкретно Hiberbate гораздо больше. Ты что-то кроме Hibernate видел или как?

A>>БД справляется ещё лучше. Нельзя на ORM сваливать всё то, что лень было запрограммировать в БД, так как в результате ты получишь неповоротливую систему.

kuj>Ликбез: транзакции выполняются на сервере. Только на сервере. Поэтому нет никакого "лучше" / "хуже".

Мысль что Hibernate и БД могут работать на разных серверах в голову не приходила?

A>>Ага, то есть предлагаешь отлаживаться на production сервере? Зашибись.


A>>А если вдруг выяснится что сама структура хранения неверная и надо не индексами манипулировать, а менять всё нафиг?

kuj>И? Чем Вам тут ХП помогут?

ORM тут тоже не помогают. А ХП как раз могут помочь, так как они чёрный ящик и с высокой вероятностью DAL претерпит не очень большие изменения.

kuj>Их сложно писать не "так" в силу синтаксиса и убогости T-SQL.


Ещё один миф. SQL декларативный язык, это уже обеспечивает хорошую читаемость.

kuj>Вот именно. Ваш проект на ХП имеет минимум "защиты от дурака". У нас активно применяется TDD, что фактически не возможно было бы, если бы проект был с использованием ХП.


TDD проверяет корректность работы, а не эффективность.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[11]: Оформление работы с БД в корпоративных приложениях -
От: Aviator  
Дата: 24.09.07 10:55
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, Aviator, Вы писали:


A>>просто писать юнит тесты на каком нить c# с заглушками намного проще чем организовывать автоматическое тестирование кода совместно с субд ...


A>Если сравнивать тестирование одной и той же задачи, то абсолютно всё равно.

Вы это серьёзно сказали? Вы вообще представляете процесс тестирования на уровне юнит тестов?
Re[11]: Оформление работы с БД в корпоративных приложениях -
От: kuj  
Дата: 24.09.07 10:56
Оценка:
Здравствуйте, adontz, Вы писали:


A>>просто писать юнит тесты на каком нить c# с заглушками намного проще чем организовывать автоматическое тестирование кода совместно с субд ...


A>Если сравнивать тестирование одной и той же задачи, то абсолютно всё равно.


Вы хоть понимаете о чем говорите??
... << RSDN@Home 1.2.0 alpha rev. 746>>
Re[9]: Оформление работы с БД в корпоративных приложениях -
От: Sinclair Россия https://github.com/evilguest/
Дата: 24.09.07 10:57
Оценка: 1 (1) +1
Здравствуйте, adontz, Вы писали:
A>То что ты сказал не лишено смысла, но к SQL не имеет решительно никакого отношения. Если мостры SQL непредвиденно уходят, это не прослема SQL или ХП. И если они уходят ни оставив ни капли комментариев, документции и т.п. сколько-нибудь полезной тем, кто пришёл им на замену, то это тоже к SQL имеет слабое отношение.
Зато к SQL имеет 100% отношение тот факт, что нет надежного способа определить, сломало ли добавление новой колонки в таблицу какую-то из хранимок или нет. Напомню, что для современных языков высокого уровня есть средства рефакторинга, а для SQL — нету. Так и живут десятилетиями опечатки в именах колонок.
В этом смысле ORM намного лучше. А Linq вообще рвет всех как тазик тузика.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[15]: Оформление работы с БД в корпоративных приложениях -
От: Aviator  
Дата: 24.09.07 10:59
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, Aviator, Вы писали:


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

A>>Ага а не приходило в голову, что это не самый гибкий подход к построению распределённого приложения?

A>Как раз это самый гибкий, рабить BL и DAL на разные tier, сделать BL максимально stateless (по крайней мере не кешируещим) и получить щасте. BL для кластеризации начитает хватать обычного NLB, DAL кластеризуется средствами БД. Получаем двухуровневую систему кластеров. В каждый уровень можно досбавлять кластеры по мере необходимости. Весьма гибко.

Это Вам часом не какой-нить распространитель MS SQL сказал?
Re[10]: Оформление работы с БД в корпоративных приложениях -
От: adontz Грузия http://adontz.wordpress.com/
Дата: 24.09.07 10:59
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Зато к SQL имеет 100% отношение тот факт, что нет надежного способа определить, сломало ли добавление новой колонки в таблицу какую-то из хранимок или нет. Напомню, что для современных языков высокого уровня есть средства рефакторинга, а для SQL — нету. Так и живут десятилетиями опечатки в именах колонок.


Ты о чём? ХП с опечатками не компилируются
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[12]: Оформление работы с БД в корпоративных приложениях -
От: adontz Грузия http://adontz.wordpress.com/
Дата: 24.09.07 11:00
Оценка:
Здравствуйте, Aviator, Вы писали:

A>>>Что процедурное программирование не менее удобно чем объектное?

A>>Зависит от контекста. Иногда объекты ни к селу, ни к городу. В реляционной БД я места ООП не вижу.
A>Реляционная БД — это всего лишь хранилище данных, Вы путаете задачу хранения и обработки. Споры вызывает то, что Вы хотите на хранилище возложить ещё и функции обработки. Разработчика бизнес логики в большинстве случев вообще не интересует какая там субд и как она сохраняет, он оперирует доменными объектами.

Вот-вот! Вот этого-то ты и не понимаешь! Народ пишет мегамощные оптимизаторы, реализует сложнешие алгоритмы, а ты телевозир используешь как тумбочку. БД — это НЕ только хранилище данных, но и обработчик низкого уровня.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[13]: Оформление работы с БД в корпоративных приложениях -
От: Aviator  
Дата: 24.09.07 11:05
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, Aviator, Вы писали:


A>>>>Что процедурное программирование не менее удобно чем объектное?

A>>>Зависит от контекста. Иногда объекты ни к селу, ни к городу. В реляционной БД я места ООП не вижу.
A>>Реляционная БД — это всего лишь хранилище данных, Вы путаете задачу хранения и обработки. Споры вызывает то, что Вы хотите на хранилище возложить ещё и функции обработки. Разработчика бизнес логики в большинстве случев вообще не интересует какая там субд и как она сохраняет, он оперирует доменными объектами.

A>Вот-вот! Вот этого-то ты и не понимаешь! Народ пишет мегамощные оптимизаторы, реализует сложнешие алгоритмы, а ты телевозир используешь как тумбочку. БД — это НЕ только хранилище данных, но и обработчик низкого уровня.

Если бы Вы такое произнесли в году там 97, это было бы сильное высказывание, а вот в 2007ом стараются максимально абстрагироваться от конкретики СУБД . ORM стновится де факто стандартом разработки корпоративных приложений, linq уже близок к релизному варианту, веб страницы активно пишут на компилируемых яъзыках, скрипты постепенно отмирают...
Re[11]: Оформление работы с БД в корпоративных приложениях -
От: kuj  
Дата: 24.09.07 11:13
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, kuj, Вы писали:


A>>>Ну давай мерятся пиписьками. На вот

A>>>http://en.wikipedia.org/wiki/Object-relational_mapping
A>>>Что я сказал не так?
kuj>>Прочитайте хотя бы http://www.hibernate.org/15.html
kuj>>ORM это гораздо больше, чем "всего лишь мапинг и сопутствующие операции".

A>Это не ORM гораздо больше, это конкретно Hiberbate гораздо больше.

Hibernate это не ORM?
A>Ты что-то кроме Hibernate видел или как?
Видел. И даже работал. Был проект на LLBLGen Pro на предыдущем месте работы. Все современные ORM имеют примерно одинаковую функциональность. Hibernate в силу ряда причин самая популярная. Вот и все.

A>>>БД справляется ещё лучше. Нельзя на ORM сваливать всё то, что лень было запрограммировать в БД, так как в результате ты получишь неповоротливую систему.

kuj>>Ликбез: транзакции выполняются на сервере. Только на сервере. Поэтому нет никакого "лучше" / "хуже".

A>Мысль что Hibernate и БД могут работать на разных серверах в голову не приходила?


Ээээээээ? Вы ДЕЙСТВИТЕЛЬНО на столько не разбираетесь в предмете спора? Смешно.

A>>>Ага, то есть предлагаешь отлаживаться на production сервере? Зашибись.


A>>>А если вдруг выяснится что сама структура хранения неверная и надо не индексами манипулировать, а менять всё нафиг?

kuj>>И? Чем Вам тут ХП помогут?

A>ORM тут тоже не помогают. А ХП как раз могут помочь, так как они чёрный ящик и с высокой вероятностью DAL претерпит не очень большие изменения.


Вы потратите в десять раз больше времени на то, чтоб поправить, отладить и протестировать процедуры.

kuj>>Их сложно писать не "так" в силу синтаксиса и убогости T-SQL.


A>Ещё один миф. SQL декларативный язык, это уже обеспечивает хорошую читаемость.


Вы разницу между T-SQL и SQL вообще понимаете?

kuj>>Вот именно. Ваш проект на ХП имеет минимум "защиты от дурака". У нас активно применяется TDD, что фактически не возможно было бы, если бы проект был с использованием ХП.


A>TDD проверяет корректность работы, а не эффективность.


Для проверки "эффективности" есть профайлеры. К тому же, TDD ничего не проверяет. TDD это методика программирования по принципу "сначала пишем тест, потом пишем код".
... << RSDN@Home 1.2.0 alpha rev. 746>>
Re[14]: Оформление работы с БД в корпоративных приложениях -
От: adontz Грузия http://adontz.wordpress.com/
Дата: 24.09.07 11:16
Оценка:
Здравствуйте, Aviator, Вы писали:

A>>Вот-вот! Вот этого-то ты и не понимаешь! Народ пишет мегамощные оптимизаторы, реализует сложнешие алгоритмы, а ты телевозир используешь как тумбочку. БД — это НЕ только хранилище данных, но и обработчик низкого уровня.

A>Если бы Вы такое произнесли в году там 97, это было бы сильное высказывание, а вот в 2007ом стараются максимально абстрагироваться от конкретики СУБД . ORM стновится де факто стандартом разработки корпоративных приложений, linq уже близок к релизному варианту, веб страницы активно пишут на компилируемых яъзыках, скрипты постепенно отмирают...

Я так понимаю для тебя SQL и PHP языки одного типа. Печально.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[12]: Оформление работы с БД в корпоративных приложениях -
От: adontz Грузия http://adontz.wordpress.com/
Дата: 24.09.07 11:21
Оценка: :)
Здравствуйте, kuj, Вы писали:

kuj>>>Ликбез: транзакции выполняются на сервере. Только на сервере. Поэтому нет никакого "лучше" / "хуже".

A>>Мысль что Hibernate и БД могут работать на разных серверах в голову не приходила?
kuj>Ээээээээ? Вы ДЕЙСТВИТЕЛЬНО на столько не разбираетесь в предмете спора? Смешно.

Видишь ли, Hibernate как правило наботает в tier бизнесс-логики. У этого подхода есть преимущества в администрировании. Так что чего т так удивился я не особо понял.

A>>ORM тут тоже не помогают. А ХП как раз могут помочь, так как они чёрный ящик и с высокой вероятностью DAL претерпит не очень большие изменения.

kuj>Вы потратите в десять раз больше времени на то, чтоб поправить, отладить и протестировать процедуры.

Миф.

kuj>>>Их сложно писать не "так" в силу синтаксиса и убогости T-SQL.

A>>Ещё один миф. SQL декларативный язык, это уже обеспечивает хорошую читаемость.
kuj>Вы разницу между T-SQL и SQL вообще понимаете?

SELECT * FROM table это декларативное предложение. SQL — декларативный язык. Ты в курсе что такое декларативный язык? Нет? Тогда, иди почитай.

A>>TDD проверяет корректность работы, а не эффективность.

kuj>Для проверки "эффективности" есть профайлеры. К тому же, TDD ничего не проверяет. TDD это методика программирования по принципу "сначала пишем тест, потом пишем код".

ОК, "TDD позволяет проверить..." В любом случае вероятность уронить производительность системы гораздо выше, когда к БД обращаются как попало.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[11]: Оформление работы с БД в корпоративных приложениях -
От: kuj  
Дата: 24.09.07 11:25
Оценка: -1 :)
Здравствуйте, adontz, Вы писали:


S>>Зато к SQL имеет 100% отношение тот факт, что нет надежного способа определить, сломало ли добавление новой колонки в таблицу какую-то из хранимок или нет. Напомню, что для современных языков высокого уровня есть средства рефакторинга, а для SQL — нету. Так и живут десятилетиями опечатки в именах колонок.


A>Ты о чём? ХП с опечатками не компилируются


Человек говорит Вам о рефакторинге и об опечатках в колонках. Когда у вас сотни процедур с таким вот именем колонки жестко прописанным в каждой процедуре...
В случае с OR/M, поменяв имя колонки в базе, мне достаточно поменять его всего-лишь раз в файле мэпинга, а Вам придется перелопачивать все сотни процедур да еще и без стредств рефакторинга.
... << RSDN@Home 1.2.0 alpha rev. 746>>
Re[13]: Оформление работы с БД в корпоративных приложениях -
От: Aviator  
Дата: 24.09.07 11:26
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, kuj, Вы писали:


kuj>>>>Ликбез: транзакции выполняются на сервере. Только на сервере. Поэтому нет никакого "лучше" / "хуже".

A>>>Мысль что Hibernate и БД могут работать на разных серверах в голову не приходила?
kuj>>Ээээээээ? Вы ДЕЙСТВИТЕЛЬНО на столько не разбираетесь в предмете спора? Смешно.

A>Видишь ли, Hibernate как правило наботает в tier бизнесс-логики. У этого подхода есть преимущества в администрировании. Так что чего т так удивился я не особо понял.

Сам то понял что написал?

A>>>ORM тут тоже не помогают. А ХП как раз могут помочь, так как они чёрный ящик и с высокой вероятностью DAL претерпит не очень большие изменения.

kuj>>Вы потратите в десять раз больше времени на то, чтоб поправить, отладить и протестировать процедуры.
A>Миф.
Я понял, что вы не тестируете, поэтому у вас всё быстро

kuj>>>>Их сложно писать не "так" в силу синтаксиса и убогости T-SQL.

A>>>Ещё один миф. SQL декларативный язык, это уже обеспечивает хорошую читаемость.
kuj>>Вы разницу между T-SQL и SQL вообще понимаете?
A>SELECT * FROM table это декларативное предложение. SQL — декларативный язык. Ты в курсе что такое декларативный язык? Нет? Тогда, иди почитай.
Это sql, мы говорим о T-SQL и хранимках. типичный код хранимки не декларативный и представляет из себя жёское процедурное программирование


A>>>TDD проверяет корректность работы, а не эффективность.

kuj>>Для проверки "эффективности" есть профайлеры. К тому же, TDD ничего не проверяет. TDD это методика программирования по принципу "сначала пишем тест, потом пишем код".

A>ОК, "TDD позволяет проверить..." В любом случае вероятность уронить производительность системы гораздо выше, когда к БД обращаются как попало.


Что понимается по как попало объясните пожалуйста, а то я начинаю терять нить изложения.
Re[12]: Оформление работы с БД в корпоративных приложениях -
От: Aviator  
Дата: 24.09.07 11:28
Оценка: -1
Здравствуйте, kuj, Вы писали:

kuj>Здравствуйте, adontz, Вы писали:



S>>>Зато к SQL имеет 100% отношение тот факт, что нет надежного способа определить, сломало ли добавление новой колонки в таблицу какую-то из хранимок или нет. Напомню, что для современных языков высокого уровня есть средства рефакторинга, а для SQL — нету. Так и живут десятилетиями опечатки в именах колонок.


A>>Ты о чём? ХП с опечатками не компилируются


kuj>Человек говорит Вам о рефакторинге и об опечатках в колонках. Когда у вас сотни процедур с таким вот именем колонки жестко прописанным в каждой процедуре...

kuj>В случае с OR/M, поменяв имя колонки в базе, мне достаточно поменять его всего-лишь раз в файле мэпинга, а Вам придется перелопачивать все сотни процедур да еще и без стредств рефакторинга.
Подозреваю, что человек не знает что такое рефакторинг так что Ваш довод для него пустой звук .
Re[13]: Оформление работы с БД в корпоративных приложениях -
От: kuj  
Дата: 24.09.07 11:29
Оценка:
Здравствуйте, adontz, Вы писали:



kuj>>>>Ликбез: транзакции выполняются на сервере. Только на сервере. Поэтому нет никакого "лучше" / "хуже".

A>>>Мысль что Hibernate и БД могут работать на разных серверах в голову не приходила?
kuj>>Ээээээээ? Вы ДЕЙСТВИТЕЛЬНО на столько не разбираетесь в предмете спора? Смешно.

A>Видишь ли, Hibernate как правило наботает в tier бизнесс-логики.

Где-где? Бизнес-логика никакого. Абсолютно никакого отношения к Hibernate не имеет.

A>У этого подхода есть преимущества в администрировании. Так что чего т так удивился я не особо понял.

"Hibernate и БД могут работать на разных серверах"


A>>>ORM тут тоже не помогают. А ХП как раз могут помочь, так как они чёрный ящик и с высокой вероятностью DAL претерпит не очень большие изменения.

kuj>>Вы потратите в десять раз больше времени на то, чтоб поправить, отладить и протестировать процедуры.
A>Миф.
С такой категоричностью не поспоришь... Ну что ж, Вы поймете со временем и с опытом...

kuj>>>>Их сложно писать не "так" в силу синтаксиса и убогости T-SQL.

A>>>Ещё один миф. SQL декларативный язык, это уже обеспечивает хорошую читаемость.
kuj>>Вы разницу между T-SQL и SQL вообще понимаете?

A>SELECT * FROM table это декларативное предложение. SQL — декларативный язык. Ты в курсе что такое декларативный язык? Нет? Тогда, иди почитай.

Я в курсе что такое декларативный язык. Только при чем тут SQL, когда речь о T-SQL. Вы ДЕЙСТВИТЕЛЬНО не понимаете? Нда.......


A>>>TDD проверяет корректность работы, а не эффективность.

kuj>>Для проверки "эффективности" есть профайлеры. К тому же, TDD ничего не проверяет. TDD это методика программирования по принципу "сначала пишем тест, потом пишем код".

A>ОК, "TDD позволяет проверить..." В любом случае вероятность уронить производительность системы гораздо выше, когда к БД обращаются как попало.


Нда.....
... << RSDN@Home 1.2.0 alpha rev. 746>>
Re[11]: Оформление работы с БД в корпоративных приложениях -
От: Sinclair Россия https://github.com/evilguest/
Дата: 24.09.07 11:32
Оценка:
Здравствуйте, adontz, Вы писали:
A>Ты о чём? ХП с опечатками не компилируются
Я о полях с именем типа ProdactID.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[13]: Оформление работы с БД в корпоративных приложениях -
От: kuj  
Дата: 24.09.07 11:46
Оценка: -3 :))
Здравствуйте, adontz, Вы писали:

A>SQL — декларативный язык.


Кстати говоря, SQL это ни разу не декларативный язык. SQL это информационно-логический язык и по-сути он не является языком программирования. SQL это структурированный язык запросов.
Декларативный язык это, например, Prolog.

К слову, .NET языки имеют куда больше декларативных элементов. В случае того же ActiveRecord мэпинг выполняется декларативно в виде атрибутов:

namespace BlogSample
{
    using System;
    using Castle.ActiveRecord;

    [ActiveRecord]
    public class User : ActiveRecordBase<User>
    {
        private int id;
        private string username;
        private string password;
        
        public User() 
        {
        }
        
        public User(string username, string password)
        {
            this.username = username;
            this.password = password;
        }

        [PrimaryKey]
        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        [Property]
        public string Username
        {
            get { return username; }
            set { username = value; }
        }

        [Property]
        public string Password
        {
            get { return password; }
            set { password = value; }
        }
    }
}
... << RSDN@Home 1.2.0 alpha rev. 746>>
Re[17]: Оформление работы с БД в корпоративных приложениях -
От: kuj  
Дата: 24.09.07 11:55
Оценка:
Здравствуйте, adontz, Вы писали:


A>>>Ну и о чём тогда говорить, если ты не понимаешь что такое БД и зачем она нужна?

A>>Я Вас и не заставляю ничего говорить Пишите дальше хранимки, пока ещё есть кого заставить их поддерживать.

A>Пишите дальше SELECT *.

Наоборот тут речь о том, чтоб генерацией SQL-запросов занимался Hibernate (или т.п.), который прекрасно с этой задачей справляется, и в запросах, генерируемых Hibernate, Вы не увидете "*".

A> Хорошим примером такого способа хранения данных являетс 1С. Вроде бы и в БД всё, но толку от этого никакого. 2процессорный, многоядерный, 4Гб, супер-пупер сервер едва держит 10 клиентских соединений. Вы кажется в эту категорию спешите записаться.


Очень удачно Вы привели 1С, как пример "неудачной системы".

Называется: ежики плакали, кололись, но продолжали жрать кактус.
... << RSDN@Home 1.2.0 alpha rev. 746>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.