Книги по проектированию взаимодействий с БД

Serab

Раньше ничего подобного не писал. Чего бы такого почитать?
Вообще, .NET, но можно и другое что-нибудь, основы уловить, потом специфику какую-нибудь может сам придумаю.
Интересуют первые же решения: как отделить представление от данных и т.д.

kokoc88

Вообще, .NET, но можно и другое что-нибудь, основы уловить, потом специфику какую-нибудь может сам придумаю.
Лучше забить на всё, что написано Microsoft-ом или про технологии Microsoft-а, и почитать про паттерны для Java. Из-за дебильной политики EEE все нормальные, годные паттерны в книгах для Microsoft-а описаны с каким-то своим, отличным от других языков и технологий видением: начиная с диких идей про Visitor и заканчивая требованиями плодить кучу документации для Agile (видимо, в Microsoft жопу нечем подтирать).
Интересуют первые же решения: как отделить представление от данных и т.д.
Я не понимаю вопроса: при чём тут БД?

Serab

Я не понимаю вопроса: при чём тут БД?
интересуют примеры примененных подходов именно при проектировании приложений БД.

kokoc88

интересуют примеры примененных подходов именно при проектировании приложений БД.
Извини, я окончательно запутался. :) Отделение представления от данных в моём понимании - задача более общая, не обязательно связанная с БД. Тебя интересует её решение или, допустим, как лучше всего организовать работу с ADO.NET?

Serab

конечно более общая. Попытайся понять мои намерения целиком, это же видно из названия треда, например. Я планирую написать довольно большое приложение, будет работа с БД. Раньше ничего крупнее датагрида во все окно не писал, и то дело было еще в школе.
Технические вопросы типа что такое реляционная БД, как написать запрос и т.д. ясны, интересны книги/источники, где рассматриваются вопросы проектирования, какие-нибудь идеи, именно по отношению к интерфейсам к БД.
Тебя интересует её решение или, допустим, как лучше всего организовать работу с ADO.NET?
общего решения не представляю себе, второй вопрос, конечно, поставлен как-то странно, но скорее он меня интересует, чем нет, конечно.

6yrop

Очень полезно пораньше узнать в какую трясину ты влезаешь, описано тут:
en http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Compute...
ru http://citforum.ru/database/articles/vietnam/

6yrop

Тебя интересует её решение или, допустим, как лучше всего организовать работу с ADO.NET?

общего решения не представляю себе, второй вопрос, конечно, поставлен как-то странно, но скорее он меня интересует, чем нет, конечно.
совет правильный, ADO.NET надо знать на зубок

6yrop

совет правильный, ADO.NET надо знать на зубок
если, конечно, хочешь всё понимать. Некоторые пишут приложения без понимания.

kokoc88

Попытайся понять мои намерения целиком, это же видно из названия треда, например.
Да у нас тут часто возникает такая проблема: пишешь что-то очевидное для тебя, а другие этого понять не могут, например.
интересны книги/источники, где рассматриваются вопросы проектирования, какие-нибудь идеи, именно по отношению к интерфейсам к БД
Два хороших источника в этом случае - это J2EE Patterns и GoF. Из паттернов достаточно ознакомиться со связкой DAO/DTO.
общего решения не представляю себе
Допустим, отделение данных от представления - это паттерны MVC и MVP. Отделение данных от бизнес логики - это DAO и DTO. Работа с ADO.NET - паттерны Thread Pool, Command и DAO. Думаю, что книжку читать не обязательно; если нужно, могу расписать архитектуру более детально, с примерами из практики.

6yrop

почитать про паттерны для Java.
в разрезе БД это не самый лучший совет. У джава и джавистов детская болезнь под название излишняя объектно ориентированность. В разрезе БД это часто ведет к проблемам там, где их нет или они значительно меньше.

kokoc88

У джава и джавистов детская болезнь под название излишняя объектно ориентированность.
Это у Microsoft-а детская болезнь под названием MainClass.

Serab

Допустим, отделение данных от представления - это паттерны MVC и MVP. Отделение данных от бизнес логики - это DAO и DTO. Работа с ADO.NET - паттерны Thread Pool, Command и DAO. Думаю, что книжку читать не обязательно; если нужно, могу расписать архитектуру более детально, с примерами из практики.
вот, это отделение от бизнес логики как раз и интересно. С MVC и MVP я знаком, в некоторых местах пишу их, естественно, чаще урезанные версии. НО, было бы интересно сразу посмотреть как их применяют именно к проектированию БД, т.е. примеры, примеры, примеры, но именно в формате книги, т.е. где бы обсуждались сложности, плюсы/минусы применения к БД. Про DAO и DTO вроде не слышал. Где про это лучше всего почитать? Последнее более менее ясно, значит да, выяснили, у меня вопрос в проектировании бизнес-логики :grin:

okis

Допустим, отделение данных от представления - это паттерны MVC и MVP. Отделение данных от бизнес логики - это DAO и DTO. Работа с ADO.NET - паттерны Thread Pool, Command и DAO. Думаю, что книжку читать не обязательно; если нужно, могу расписать архитектуру более детально, с примерами из практики.
Вот он существенный недостаток недопроприетарных технологий — чтобы решить одну задачу — взаимодействие с БД, нужно изучить кучу паттернов, технологий, подходов, чтобы сделать это правильно.

Serab

тут нету правильно курсивом, просто если придумывать свои архитектурные велосипеды, есть занс зарыться через полгода программирования в одно ебало :( И мне кажется, допроприетарные технологии тут мало помогут :( Или как?

kokoc88

НО, было бы интересно сразу посмотреть как их применяют именно к проектированию БД, т.е. примеры, примеры, примеры, но именно в формате книги, т.е. где бы обсуждались сложности, плюсы/минусы применения к БД.
Увы, качественных книг с практическими примерами очень мало. Во всяком случае, я не видел ни одной действительно стоящей вещи про ADO.NET; да и вообще хорошая книга по разработке программного обеспечения - это редкость, ты и сам это должен понимать.
Про DAO и DTO вроде не слышал. Где про это лучше всего почитать?
Про идею можешь почитать на сайте J2EE: DTO, DAO; но учти, что на самом деле картина намного проще, чем описывается там, потому что J2EE всё-таки достаточно убогая вещь.

kokoc88

Вот он существенный недостаток недопроприетарных технологий — чтобы решить одну задачу — взаимодействие с БД, нужно изучить кучу паттернов, технологий, подходов, чтобы сделать это правильно.
Ты считаешь, что лучше плотно перемешать бизнес модель и доступ к данным? Чтобы уже через месяц нельзя было: отодрать SQL запросы от бизнес логики, перейти на другую БД, написать тесты для DAO или моделей данных, и так далее?

okis

Суть в том, что используя данные технологии, если я захочу сделать велосипед, то у меня получится только самолёт, никак не меньше. Для самолётов, конечно, они хорошо подходят, но не всегда нужно строить самолёты.

FRider

:lol: А какая альтернатива "проприетарных"? Дадут ЕДИНСТВЕННО ПРАВИЛЬНЫЙ инструмент, которым ты решишь все проблемы? Ну так этот инструмент тебя заебет на первом же шаге, отличным от написанного в книжке.
Все эти технологии надо изучать, чтобы знать различные подходы, и уметь скомбинировать так, как лучше будет для задачи. Зная различные подходы - ты просто расширяешь свое сознание.

Serab

Я собираюсь строить самолет :smirk:

okis

ORM упрощает эту задачу, но не всегда в нужную сторону. Например, оптимизировать производительность если нет прямых запросов, уже труднее.

kokoc88

Суть в том, что используя данные технологии, если я захочу сделать велосипед, то у меня получится только самолёт, никак не меньше.
Какие именно технологии? DAO и DTO? Это настолько простые и удобные паттерны, что их используют даже в высоконагруженных проектах. При их использовании у тебя скорее получатся тапочки вместо велосипеда. :grin: :grin: :grin:

kokoc88

ORM упрощает эту задачу, но не всегда в нужную сторону. Например, оптимизировать производительность если нет прямых запросов, уже труднее.
Что касается ORM, то его стоит использовать разве что для простого data binding. Полноценная система, кроме оптимизации, приносит ещё много проблем. Сюда же можно включить: дедлоки, трудности при обновлении схемы БД, потенциальные проблемы с потреблением памяти, проблемы с ленивой загрузкой данных. А в качестве data binding ты получаешь те же DTO, вид сбоку.

6yrop

DAO и DTO?
Что касается ORM, то его стоит использовать разве что для простого data binding.
ты про самое интересное не говоришь. Как обновляются данные в БД в сложных случаях: когда какое нибудь бизнес понятие-объект (например, документ) представляет собой непростой граф C#-объектов (с вложенные друг в друга коллекции и т.д.)

kokoc88

Как обновляются данные в БД в сложных случаях: когда какое нибудь бизнес понятие-объект (например, документ) представляет собой непростой граф C#-объектов (с вложенные друг в друга коллекции и т.д.)
Как они обновляются? Например, быстро и без дедлоков.

6yrop

Например, быстро и без дедлоков.
Это всё что ты можешь сказать на эту тему? Возникает предположение, что ты с таким структурами не работал.

kokoc88

Это всё что ты можешь сказать на эту тему? Возникает предположение, что ты с таким структурами не работал.
Нет, это далеко не всё что я могу сказать на эту тему. И если честно, то мне как-то похуй, что у тебя там возникает.

Serab

Ребята, давайте жить дружно!

zorin29

или хотя бы ругаться не во всех тредах, а в одном :)

Serab

хм, а я тот не читаю, там тоже они? :grin:

zorin29

Да, и вообще development - арена "ипического" противостояния. Такая себе "странная история доктора -а и мистера -а" :)

kokoc88

Да, и вообще development - арена "ипического" противостояния.
Где же ещё в 2011 году можно найти противников автоматического тестирования, которые пытаются утверждать, что оно не только бесполезно, но и вообще вредит. Эти разработчики, может быть, целый день писали код с использованием автоматических тестов и за это время, безусловно, смогли до конца оценить этот подход. И неважно, что во всём мире известные люди пишут статьи, блоги и книги про тестирование - они просто тупые, а вот на forumlocal - умные, совершенные программисты.

val63

оно не только бесполезно, но и вообще вредит
По-моему, идиоту ясно, что иногда юнит-тесты полезны, а иногда наоборот. А у вас у обоих крайние упертые точки зрения :-)

kokoc88

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

val63

нужно подкреплять свою точку зрения цитатами людей, авторитет которых признают в мире разработки программного обеспечения.
Если бы этот раздел назывался Religion, то возможно.
Но он увы Development, и тут всем нужны примеры кода, а мнения у всех авторитетных дядек разные.

kokoc88

Но он увы Development, и тут всем нужны примеры кода, а мнения у всех авторитетных дядек разные.
Если бы ты почитал авторитетных дяденек, то заметил бы примеры кода.

val63

Если бы ты почитал авторитетных дяденек, то заметил бы примеры кода.

Вот и скопипасть их, снизойди до нас презренных, проведи ликбез :-) Иначе зачем форум? :confused:

kokoc88

Вот и скопипасть их, снизойди до нас презренных, проведи ликбез :-)
Поверь, если я начну копипастить Фаулера, то это выльется в то, что 95% писателей в этом разделе начнут его троллить; при чём для троллинга они вряд ли выберут действительно сомнительные моменты. На то их и 95%.
Когда у человека нет авторитетов, кроме себя самого, убедить его в чём-то не представляется возможным. Однако очень забавляет, что люди с умным видом говорят о вкусе сахара, хотя пробовали только перец.

Maurog

копипастить Фаулера
эту фамилию уже можно троллить :shocked:
далеко не всем по вкусу его идеи и тонны воды в книгах

kokoc88

далеко не всем по вкусу его идеи и тонны воды в книгах
Я с этим не спорю, у Фаулера есть многие вещи, с которыми либо тяжело, либо невозможно согласиться.
Если тебя или ещё кого-то не устраивает Фаулер, то я могу точно так же сослаться на Брюса Эккеля. В книге "Философия программирования на Java" есть глава, посвящённая автоматическому тестированию. Выжимка оттуда аналогична выжимке из книги про Рефакторинг: тесты позволяют быстрее разрабатывать программное обеспечение, повышают его надёжность, облегчают рефакторинг и доработку.
Брюс Эккель тоже не устраивает? Тогда обратимся к Кенту Беку, но тут всё ещё жёстче: пропагандируется разработка тестов до написания кода. И, заметь, утверждается что в итоге проект будет сделан быстрее и кода будет меньше, чем при разработке вообще без тестирования.
Я ещё раз повторю: если человек не признаёт авторитетов кроме себя, то любое общение, любой спор с ним превращается в балаган. А в случае автоматизированного тестирования, которое иногда окупает себя только после нескольких месяцев активной разработки, ситуация ухудшается ещё и полным непониманием с практической стороны.

val63

Да, но Макконелл нам завещал, что юнит-тестами ловится гораздо меньше ошибок, чем простым просмотром кода. И еще у них есть ощутимые минусы:
они замедляют процесс написания кода,
они требуют излишней оопизации кода
они подходят далеко не для всех жизненных ситуаций
они по объему больше самого кода
ну и юнит-тесты всё равно не отменяют необходимости интеграционных и системных тестов и ручного дебага.
Плюсы довольно очевидны, но далеко не всегда перевешивают. В каждом конкретном случае необходимость юнит-тестов должна быть обоснована, обоснование "дядя Вася в книжке пишет" плохое. Софт бывает разный, и очень часто дядявасина ситуация не совпадает с твоей конкретной.

ava3443

всё написанное можно переформулировать без потери содержания двумя фразами:
1) писать тесты зачастую нелегко, и это нужно уметь;
2) тесты не являются серебряной пулей
не?

6yrop

1) писать тесты зачастую нелегко, и это нужно уметь;
На самом деле, самое важное это уметь различать ситуации, когда тесты окупают себя, а когда нет.

val63

не
Не, ну а как я буду демагогию разводить, если так коротко писать?:-)

kokoc88

Да, но Макконелл нам завещал, что юнит-тестами ловится гораздо меньше ошибок, чем простым просмотром кода.
Мне кажется, ты путаешь понятия QA и ошибки в коде.
они замедляют процесс написания кода
Это твоё личное мнение, и при том ошибочное. Кроме чтения/цитирования книжек, я вот уже четвёртый год постоянно практикую разработку с использованием тестов. Моя производительность при использовании тестов вырастает в 2-3 раза. Своим подчинённым я говорю: "начните писать тесты, и вы автоматически станете на уровень выше, как разработчики". И до сих пор не было ребят, ни студентов без опыта работы, ни достаточно профессиональных программистов, которые последовав этому совету не убедились бы в его справедливости.
они требуют излишней оопизации кода
Можно определение "излишней оопизации"? А то мне как-то даже возразить нечего на эту непонятную фразу.
они по объему больше самого кода
А вот сторонники TDD уверены, что кода в итоге получается меньше. И лично я склонен с этим согласиться.
ну и юнит-тесты всё равно не отменяют необходимости интеграционных и системных тестов и ручного дебага.

Это явно не является "ощутимым минусом" юнит тестов. И, кстати, функциональные тесты тоже автоматизируются.
В каждом конкретном случае необходимость юнит-тестов должна быть обоснована, обоснование "дядя Вася в книжке пишет" плохое.
Плохое обоснование - это как раз обоснование одного человека или группы лиц, не подтверждённое книжками. Как правило это означает, что эта группа лиц учится только на своих ошибках и не имеет достаточно глубоких профессиональных знаний.
Софт бывает разный, и очень часто дядявасина ситуация не совпадает с твоей конкретной.

Безусловно, свой студенческий проект на коленке можно склепать и без тестирования. Мало того, может получиться даже очень хороший программный продукт, который может даже стать коммерчески успешным и приносить деньги. Автоматическое тестирование - это универсальный механизм, который позволяет улучшать итоговое качество любого программного продукта, независимо от ситуации.

kokoc88

писать тесты зачастую нелегко, и это нужно уметь;
На самом деле, я пытаюсь донести мысль, что всё с точностью до наоборот: писать с тестами проще и быстрее, хотя доказать это мелкой задачкой ни у кого не получится. Код становится более понятным разработчику, отпадает необходимость постоянной интерпретации в голове, можно протестировать различные граничные случаи.
В частности, автоматические тесты окупают себя:
1. Если в проекте более одного разработчика.
2. Если проект длится более месяца.
3. Если в проекте есть сложная бизнес логика или много математических формул (в этом случае автоматические тесты окупаются вообще моментально).
4. Если практикуется рефакторинг.
5. Если разрабатывается проект, работающий в режиме 24/365; или требующий высокой надёжности по любым другим причинам.

val63

всё с точностью до наоборот
Процитирую тебя:
Это твоё личное мнение, и при том ошибочное.
Вообще судя по категоричности в высказываниях ты кровавый паладин TDD и не хочешь принимать наличие другой точки зрения.
Сам-то подумай, почему TDD не захватило мир? Миллионы мух ошибаются?
Можно определение "излишней оопизации"?

Ну например тесты предполагают использование стратегий чуть менее чем в 100% случаев. А иногда оч хочется сделать какой-нить статический класс и забыть про него.
свой студенческий проект на коленке можно склепать и без тестирования

Можно и не студенческий. Никто еще не умер от отсутствия тестов, хотя полное их отсутствие - это такая же крайность, как и TDD. Не все проекты поддерживаются годами. Не все проекты изменяются. Не во всех проектах изменение одного куска кода приводит к краху в другом куске. Не во всех проектах нужно хорошее покрытие тестами. Это очевидно.
Плохое обоснование - это как раз обоснование одного человека или группы лиц, не подтверждённое книжками

Ну ты точно то ли богослов, то ли в президиуме ВАК заседаешь. В книжках (а тем более в статьях и блогах) можно написать что угодно, и поэтому там встречается ересь. Очень часто их пишут кровавые фанатики. При этом хорошие авторы пишут, что ничто не является панацеей. Ты эти слова, видимо, пропускаешь :-)

kokoc88

Вообще судя по категоричности в высказываниях ты кровавый паладин TDD и не хочешь принимать наличие другой точки зрения.
Сам-то подумай, почему TDD не захватило мир? Миллионы мух ошибаются?
Я не сторонник TDD. Похоже, что ты стал спорить со мной на тему, в которой не разобрался, и которую совсем не знаешь. Или не прочитал и половину моих аргументов в этой и других темах.
Ну например тесты предполагают использование стратегий чуть менее чем в 100% случаев. А иногда оч хочется сделать какой-нить статический класс и забыть про него.
Чего? Каких стратегий?
Ну ты точно то ли богослов, то ли в президиуме ВАК заседаешь. В книжках (а тем более в статьях и блогах) можно написать что угодно, и поэтому там встречается ересь. Очень часто их пишут кровавые фанатики.

В книжках что угодно написать нельзя. Это понимает любой человек, который сделал две курсовые и защитил диплом. Чтобы не выставлять себя шутом гороховым, хорошие авторы перед написанием книги читают другие книги и статьи, после чего ссылаются на них.
При этом хорошие авторы пишут, что ничто не является панацеей. Ты эти слова, видимо, пропускаешь

Ты, видимо, вообще не читаешь, что я пишу. Ты случайно не бот Шурика?

val63

Чего? Каких стратегий?
Хочешь ты написать класс доступа к внешнему сервису. В простом случае забиваешь и пишешь статический класс, но для теста скорее всего понадобится написать затычку. См. тред рядом.
В книжках что угодно написать нельзя. Это понимает любой человек, который сделал две курсовые и защитил диплом.

Мне тьфу-тьфу это все удалось, однако я читал довольно много книжек, в которых ссылок либо нет вообще, либо очень мало. С книжками дело обстоит лучше, с непечатными интернет-статьями и блогами - хуже. Наличие кучи пруфлинков, кстати, не является стопроцентным показателем качества, вопреки ожиданиям.
Чтобы не показаться тебе совсем упоротым, скажу, что я более чем наполовину согласен с твоими пятью пунктами постом выше.
Ты случайно не бот Шурика?

Ты знал

kokoc88

Хочешь ты написать класс доступа к внешнему сервису. В простом случае забиваешь и пишешь статический класс, но для теста скорее всего понадобится написать затычку. См. тред рядом.
Это не называется стратегией. В некоторых случаях это может быть IoC или Dependency Injection. Затычку придётся писать только на Си++, в Java или C# есть подделки. Никакого "излишнего ООП" я тут не вижу.
Мне тьфу-тьфу это все удалось, однако я читал довольно много книжек, в которых ссылок либо нет вообще, либо очень мало. С книжками дело обстоит лучше, с непечатными интернет-статьями и блогами - хуже. Наличие кучи пруфлинков, кстати, не является стопроцентным показателем качества, вопреки ожиданиям.

Все книжки, на которые я до сих пор ссылался, являются достаточно качественными. Если Бека ещё и можно обвинить в слишком жёстком подходе, то уж про Эккеля что-то плохое сказать сложно - его книжки являются действительно стоящими внимания всех разработчиков.

val63

Затычку придётся писать только на Си++, в Java или C# есть подделки.
Но для этого же тебе все равно придется убить статический класс и сделать общение через инстанс, нет?

kokoc88

Но для этого же тебе все равно придется убить статический класс и сделать общение через инстанс, нет?
Я вообще стараюсь по возможности убивать статические классы. И ни я, ни мои коллеги не видят в этом "излишнего ООП".
Надо понимать, что юнит тесты только в очень жёсткой форме требуют отдельного тестирования каждой функции каждого класса. Автоматический тест может покрывать 100% кода по control flow и при этом тестировать сразу несколько классов и их взаимодействия. Хотя в случае жёстких юнит тестов выделять интерфейс из каждого класса тоже не требуется.

kokoc88

Ребята, давайте жить дружно!
Только ящерицу не посылай. :grin: :grin: :grin:

val63

Ну я к тому, что чтобы юзать тесты, код должен быть изначально на это рассчитан (вот например статических классов в нем не должно быть). А строить код с рассчетом на тесты несколько дольше, чем писать просто так.

kokoc88

А строить код с рассчетом на тесты несколько дольше, чем писать просто так.
Это обманчивое впечатление: тестируемый код как правильно имеет более хорошую архитектуру, в следствие чего его легче дорабатывать, расширять и рефакторить.

6yrop

Думаю, что книжку читать не обязательно; если нужно, могу расписать архитектуру более детально, с примерами из практики.
Да, интересно. Опиши, как вы кверите базу, если требуются непростые SELECT динамические запросы. Как это выглядит из C#-а?

kokoc88

Опиши, как вы кверите базу, если требуются непростые SELECT динамические запросы.
Что такое "непростые SELECT динамические запросы"? Мне кажется, что мы таких зверей не используем.

6yrop

Что такое "непростые SELECT динамические запросы"?
что-то похожее описано вот здесь Dynamic Search Conditions in T-SQL
http://www.sommarskog.se/dyn-search-2005.html

Serab

:ooo:

ava3443

Сам-то подумай, почему TDD не захватило мир?
Не знаю, насколько распространён совсем прям настоящий test-driven development, как в XP.
Но чётко прослеживается взаимосвязь (и в open source, и проприетарных - в том числе в упомянутых тут "оперднях" :) ):
1) в проектах, где есть автотесты, код значительно качественнее, чем там, где их нету.
2) все большие/сложные проекты пользуются автотестами в том или ином виде

ava3443

динамические запросы
можешь привести примеры, в каких общих задачах они требуются, кроме ad hoc reports?
я могу назвать одну задачу, но это будет неинтересно т.к. очень узкая/специализированная (есть у нас механизм, заменяющий partitioning в оракле, и без динамических запросов его трудно делать, да и не нужно)

kokoc88

что-то похожее описано вот здесь Dynamic Search Conditions in T-SQL
Это ты про SQL запрос в 90 строк? У нас таких нет, не было и не будет.

Dasar

Это ты про SQL запрос в 90 строк? У нас таких нет, не было и не будет.
т.е. у вас нет даже поиска (пользовательского, желательно расширенного)? странно...

Dasar

можешь привести примеры, в каких общих задачах они требуются, кроме ad hoc reports?
любые многовариантные запросы: в частности, поиск, особенно расширенный.
как частный случай поиска - фильтрация и сортировка записей, опять же особенно расширенные.
т.е. как только пользователям предоставляется хоть какая-то свобода, так сразу появляются километровые динамические запросы
зы
и с ходу я вижу мало областей, когда пользователям не нужен свободный доступ к данным

kokoc88

т.е. у вас нет даже поиска (пользовательского, желательно расширенного)? странно...
Есть, но запросов в 90 строк мы не используем. Кроме этого мы ещё не используем хранимые процедуры и транзакции.

ava3443

всё что ты описал и называется обычно "ad hoc reports" по-моему
довольно специфичная часть системы, ортогональная к остальной архитектуре

6yrop

Это ты про SQL запрос в 90 строк? У нас таких нет, не было и не будет.

Есть, но запросов в 90 строк мы не используем. Кроме этого мы ещё не используем хранимые процедуры и транзакции.

Не уж то не нашел авторитетов, которые это рекомендуют?

kokoc88

Не уж то не нашел авторитетов, которые это рекомендуют?
Которые рекомендуют что, простите?

6yrop

всё что ты описал и называется обычно "ad hoc reports" по-моему
довольно специфичная часть системы, ортогональная к остальной архитектуре
специфична? ну, если угодно, называй ее специфичной. Пусть ортогональна. Что с того? Она от этого менее ценна для заказчика?

apl13

Не уж то
:mog:

ava3443

специфична? ну, если угодно, называй ее специфичной. Пусть ортогональна. Что с того?
в теме "книги по проектированию взаимодействий с БД" она либо просто оффтопик, либо на крайняк узкая область, с которой нет смысла начинать

6yrop

она
извини, не понял "она" тут кто/что?

6yrop

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

kokoc88

это тогда когда вы работали над проектом полгода, и вас в один день всех уволили, всю контору?
Тебе не приходила мысль, что без юнит тестов может успели бы написать проект?
А супер качеством можно было бы заняться позже, когда проект уже показал бы себя?
Шуреск, ты выставляешь себя шутом в каждой теме в девелопменте. Твои наезды, где ты пытаешься задеть самолюбие человека, достойны только школьника. Ты не умеешь аргументировать в споре. Ты выпендриваешься и считаешь себя крутым девелопером, хотя на самом деле ты просто обычный кодер. Ты даже не умеешь писать по-русски, что уж говорить о том, как ты пишешь на C#.

6yrop

Шуреск, ты выставляешь себя шутом в каждой теме в девелопменте. Твои наезды, где ты пытаешься задеть самолюбие человека, достойны только школьника. Ты не умеешь аргументировать в споре. Ты выпендриваешься и считаешь себя крутым девелопером, хотя на самом деле ты просто обычный кодер. Ты даже не умеешь писать по-русски, что уж говорить о том, как ты пишешь на C#.
т.е. мысль такая не приходила, а зря, надо извлекать уроки не только из книжек.

val63

Твои наезды, где ты пытаешься задеть самолюбие человека
Ты выпендриваешься и считаешь себя крутым девелопером

Между прочим ты делаешь всё то же самое, что и Shurick.

kokoc88

Между прочим ты делаешь всё то же самое, что и Shurick.
Возможно. Но я всё равно пытаюсь аргументировать свои мысли. Я же не просто назвал тебя студентом без опыта работы, а потратил некоторое время, чтобы хоть что-то тебе растолковать.

kokoc88

т.е. мысль такая не приходила, а зря, надо извлекать уроки не только из книжек.
Нет, не приходила, потому что стартапы проёбывают не разработчики. Ты, конечно же, не знаешь этого, потому что участвовал только в разработке стандартных программных продуктов низкого качества.

6yrop

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

6yrop

стандартных программных продуктов
ты часто употребляешь слова, которые не понимаешь?

6yrop

Нет, не приходила, потому что стартапы проёбывают не разработчики.
хорошо не за что не отвечать :).

6yrop

Ты даже не умеешь писать по-русски, что уж говорить о том, как ты пишешь на C#.
я так и думал, что ты гуманитарий :)

kokoc88

использовать все возможности СУБД при необходимости, а не вводить на сто-то строгие запреты.
Я разрабатываю высоконагруженный проект. Если бы ты изучал мнения других людей, ты бы знал, что база данных и так будет узким местом. И знал бы рекомендации по правильному её использованию в этом случае.
Ты сейчас будешь выглядеть как консультант из Microsoft-а, насчитавший нам 80 операций в секунду на 2500 IOPS.

kokoc88

ты часто употребляешь слова, которые не понимаешь?
Ты не понимаешь слова "стандартный программный продукт сомнительного качества"? Я тебе объясню. Судя по твоим весьма недальновидным сообщениям, ты за всю свою практику делал только программы, которые можно кратко охарактеризовать примерно следующим образом: кондовый тормозной бэкофис и сервер, который пыхтит от пяти одновременных пользователей.

kokoc88

я так и думал, что ты гуманитарий
Лучше быть качественным гуманитарием, чем непрофессиональным программистом, не знающим своего родного языка.

6yrop

Я разрабатываю высоконагруженный проект.
До высоконагруженного life-а они доходят? Можешь привести пример? Обычно высоконагруженные проекты широко известны.

6yrop

бэкофис
не, не угадал

kokoc88

Может привести пример.

Очередная попытка потроллить после прочтения Job-а, где я сказал, что связан NDA по текущему проекту?
Обычно высоконагруженные проекты широко известны.
Я участвовал вот в этих:
http://fotki.yandex.ru
http://video.yandex.ru

kokoc88

не, не угадал
Я и не гадал, я сделал общее описание твоей кодерской практики. Можешь считать это метафорой. Хотя ты вряд ли знаешь, что это означает...

6yrop

Я участвовал вот в этих:
http://fotki.yandex.ru
http://video.yandex.ru
это на чем написано?

kokoc88

это на чем написано?
Это написано на Java, C++, XML/XSLT/JavaScript, Python, Haskell.

6yrop

Это написано на Java, C++, XML/XSLT/JavaScript, Python, Haskell.
т.е. скил по работе с C#-кодом это не демонстрирует. Только вот не надо говорить, что скилы универсальны, это не так, языки разные.

FRider

ага, шарп - это великий и особенный язык. Там все по-другому.
ЗЫ простите, не удержался

kokoc88

т.е. скил по работе с C#-кодом это не демонстрирует.
Нет, это демонстрирует скил по работе с базами данных в высоконагруженных проектах. Которого у тебя нет ни на практике, ни в теории.

6yrop

ага, шарп - это великий и особенный язык. Там все по-другому.
еще один, который может оперировать только терминами "великий", "гений" и т.д.
ЗЫ простите, не удержался

зато проявился, кто мне ставит минусы

6yrop

Нет, это демонстрирует скил по работе с базами данных в высоконагруженных проектах.
В списке не было SQL-я, без него с базой работаете?
Которого у тебя нет ни на практике, ни в теории

Голословное утверждение, высосанное из пальца.

6yrop

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

kokoc88

В списке не было SQL-я, без него с базой работаете?
В списке много чего не было, с базой работают с использованием SQL, но на нём не "написан" проект.
Голословное утверждение, высосанное из пальца.
Голословное? Я сказал, что мы работаем с базой без запросов на 90 строк, без транзакций и хранимых процедур. Ты на это наехал. Я ответил тебе, что проект высоконагруженный. Человеку, у которого есть хотя бы теоретический опыт, всё сразу должно было стать понятно. Но ты продолжаешь задавать мне какие-то левые вопросы.

kokoc88

в тех проектах видно, что база не очень сложная и бизнес логики не так много и она, скорее всего, хорошо выверена бизнес аналитиками.
Такой вывод мог сделать только полный профан.

6yrop

Ты на это наехал.
читать научись, блин

kokoc88

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

6yrop

Такой вывод мог сделать только полный профан.
а такой вывод мог сделать только тот, кто не работал с более-менее сложными базами при ограниченных ресурсах

kokoc88

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

6yrop

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

kokoc88

что не получилось выполнить ентерпрайз проекты с твоим стилем разработки и теперь в их адрес употребляешь уничижительные эпитеты?
Слава богу, в разработке энтерпрайза я никогда не участвовал. Зато теперь мне стало понятно, почему ты такой упоротый бот без чувства юмора. Оказывается, тебя надо жалеть и всячески тебе потакать, чтобы не вызывать у тебя приступов гнева, меланхолии и глубокой депрессии.

6yrop

Слава богу, в разработке энтерпрайза я никогда не участвовал.
т.е. ведешь спор о том в чем не разбираешься, как обычно :)

kokoc88

т.е. ведешь спор о том в чем не разбираешься, как обычно
А ты разбираешься в энтерпрайзе, да?

6yrop

А ты разбираешься в энтерпрайзе, да?
достаточно того, что ты вообще не работал с этим.

kokoc88

достаточно того, что ты вообще не работал с этим.
С чем я не работал?

6yrop

Слава богу, в разработке энтерпрайза я никогда не участвовал.

FRider

проблемы ентерпрайз-разрабоки связаны не с какой либо спецфичностью девелопмента, а с организацией самой работы в корпоративной среде. Т.е. майку не важен опыт разработки "для ентерпрайз", важно понимание принципов работы корпораций.

6yrop

проблемы ентерпрайз-разрабоки связаны не с какой либо спецфичностью девелопмента, а с организацией самой работы в корпоративной среде.
по-моему там есть и те и другие, и, да, есть ситуации, когда вторые сильно перекрывают первые, и девелоперскими решениями там ничего не сделаешь. Но есть ситуации, когда успех/неудача проекта в руках девелоперов.

kokoc88

Но есть ситуации, когда успех/неудача проекта в руках девелоперов.
Ути-пути, ты наш герой!

6yrop

Ути-пути, ты наш герой!
Да, это так. А у тебя посредственный уровень владения языком C#.

kokoc88

Да, это так.

А у тебя посредственный уровень владения языком C#.

kokoc88

Да, это так. А у тебя посредственный уровень владения языком C#.
Господа, я уже запутался. Он так оригинально троллит или у него действительно столько нереализованных детских комплексов? А то мне уже страшно троллить его в ответ: чего доброго до него дойдёт смысл моих жёстких приколов, и Memorial пополнится ещё одним постом...

val63

жёстких приколов
Нет уж продолжай, всем весело

6yrop

чего доброго до него дойдёт смысл моих жёстких приколов
а без приколов можешь объяснить смысл твоих приколов?

kokoc88

а без приколов можешь объяснить смысл твоих приколов?
Ты думаешь, он до тебя дойдёт?

6yrop

Ты думаешь, он до тебя дойдёт?
откуда я это могу знать?

kokoc88

откуда я это могу знать?
Ну... ты же знаешь энтерпрайз.

6yrop

Ну... ты же знаешь энтерпрайз.
да, а еще я гений.

kokoc88

да, а еще я гений.
Ты - великий разработчик,
Знаменитый Кодьдодыр,
Всяких сервисов начальник,
И сишарпа командир.
Если топнешь ты ногою,
Позовёшь своих солдат,
В форум-с-локалом толпою,
Быдлокодеры влетят
И залают, и завоют,
И ногами застучат,
И нам всем головомойку,
Неумелым, зададут!
Прямо сразу
Прямо сразу
В энтерпрайзный код на шарпе,
С головою окунут!
Оставить комментарий
Имя или ник:
Комментарий: