|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Такой вопрос - для чего нужна автономная работа с бд? Какой от этого прок на практике? Зачем майкрософты влили в ado.net возможность локально создать множество таблиц наладить между ними связи, ограничения, создать представления и другие примитивы бд? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 17:13 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangosТакой вопрос - для чего нужна автономная работа с бд? Какой от этого прок на практике? Зачем майкрософты влили в ado.net возможность локально создать множество таблиц наладить между ними связи, ограничения, создать представления и другие примитивы бд? это тот редкий случай когда мс сделал что то правильно, но как всегда потом забил на это, так как это сложно развивать ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 17:24 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRos, поясни? почему правильно и как и в какой ситуации это можно применить ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 17:28 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangos, а почему ты думаешь что бд должна быть доступна только не автономно? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 17:32 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRos, ну например потому что база данных может быть удалена от клиента, получается ему придется скачать всю бд в свою бд? а клиентов может быть много и при изменении базы одним клиентом другой не увидит изменений в своей бд, и толку тогда вообще от этого? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 17:43 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangos, каких клиентов? почему обязательно их должно быть много?? почему надо что то куда то качать? доступ к БД может быть как многопользовательский, так и однопользовательский если ты все это говоришь про DataSet, DbContext и т.д., то уточни, что тебе в них не нравится ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 18:10 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangosТакой вопрос - для чего нужна автономная работа с бд? Какой от этого прок на практике? Зачем майкрософты влили в ado.net возможность локально создать множество таблиц наладить между ними связи, ограничения, создать представления и другие примитивы бд?"отсоединённый режим" != "автономная работа". Для автономной работы нужен не DataSet, для этого нужна локальная БД и её репликация с центральной БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 18:21 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRos, Задачка - есть сеть магазинов в городе(1,2,3...) у них есть общий склад из которого они пополняют свои запасы и тд. Для учета запасов на складе есть база данных. Товары в магазах пополняются по заумному алгоритму - кто первый взял со склада того и запасы. У магазина "1" кончились памперсы, менеджер Вася видя что памперсы закончились, проверяет базу данных запасов на складе и видит что там осталось 10 памперсов и решает забрать их все. Затем у магазина "2" тоже кончаются памперсы и менеджер Витя видит что на складе тоже 10 памперсов и забирает их все. Через пол часа на складе разворачивается драка за памперсы. Вопрос к задаче - зачем нужны автономные бд. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 18:28 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей К, ну значит зачм нужен отсоединенный режим? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 18:28 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangosАлексей К, ну значит зачм нужен отсоединенный режим?А как лучше? При запуске программы открыть одно соединение с БД, и пусть все потоки с ним работают? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 18:37 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangosViPRos, Задачка - есть сеть магазинов в городе(1,2,3...) у них есть общий склад из которого они пополняют свои запасы и тд. Для учета запасов на складе есть база данных. Товары в магазах пополняются по заумному алгоритму - кто первый взял со склада того и запасы. У магазина "1" кончились памперсы, менеджер Вася видя что памперсы закончились, проверяет базу данных запасов на складе и видит что там осталось 10 памперсов и решает забрать их все. Затем у магазина "2" тоже кончаются памперсы и менеджер Витя видит что на складе тоже 10 памперсов и забирает их все. Через пол часа на складе разворачивается драка за памперсы. Вопрос к задаче - зачем нужны автономные бд. ну после того как Вася забрал, на складе уже нечего забирать Вите ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 18:43 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей К, ок. тогда мы получаем данные из базы данных в датасет и с ним работаем, скорость выше, нагрузка на удаленную бд нулевая - это получается отсоединенный режим? Тогда витя не увидит изменения базы данных васей ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 18:47 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRos, ага, только у вити отображается что в базе данных все присутсвует у них же отсоединенный режим, и у каждого на компе своя бд в датасете ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 18:48 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangosАлексей К, ок. тогда мы получаем данные из базы данных в датасет и с ним работаем, скорость выше, нагрузка на удаленную бд нулевая - это получается отсоединенный режим? Тогда витя не увидит изменения базы данных васейДанные в DataSet можно обновлять как угодно часто. Отсоединённый режим - это некая программная модель, позволяющая автоматически регулировать нужное количество соединений к БД, в том числе в условиях многопоточности. Перед тем как критиковать, есть смысл ознакомиться с ней более подробно, узнать про connection pool и прочее. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 18:54 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangosViPRos, ага, только у вити отображается что в базе данных все присутсвует у них же отсоединенный режим, и у каждого на компе своя бд в датасете значит плохо отсоединили ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 18:55 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangosViPRos, ага, только у вити отображается что в базе данных все присутсвует у них же отсоединенный режим, и у каждого на компе своя бд в датасетеВыше было отмечено, что DataSet != БД. DataSet - это некая структура данных. Она обычно содержит данные, отображаемые в данный момент на экране. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 18:57 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КfaustmangosТакой вопрос - для чего нужна автономная работа с бд? Какой от этого прок на практике? Зачем майкрософты влили в ado.net возможность локально создать множество таблиц наладить между ними связи, ограничения, создать представления и другие примитивы бд?"отсоединённый режим" != "автономная работа". Для автономной работы нужен не DataSet, для этого нужна локальная БД и её репликация с центральной БД.+1 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 19:11 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosfaustmangosТакой вопрос - для чего нужна автономная работа с бд? Какой от этого прок на практике? Зачем майкрософты влили в ado.net возможность локально создать множество таблиц наладить между ними связи, ограничения, создать представления и другие примитивы бд? это тот редкий случай когда мс сделал что то правильноА в чём правильность-то? ИМХО с объектами в памяти проще и оптимальнее работать, чем с DataSet-ами. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 19:16 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КОтсоединённый режим - это некая программная модель, позволяющая автоматически регулировать нужное количество соединений к БД, в том числе в условиях многопоточности. Перед тем как критиковать, есть смысл ознакомиться с ней более подробно, узнать про connection pool и прочее. во уже что-то толковое ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 19:17 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAViPRosпропущено... это тот редкий случай когда мс сделал что то правильноА в чём правильность-то? ИМХО с объектами в памяти проще и оптимальнее работать, чем с DataSet-ами. а при чем тут простота и непонятная "оптимальность" (что за критерии?) объекты вшитые в код - это очень жестко - если состояние объекта не = код сам ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 19:32 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
как я понял то если именно в базе данных произошли изменения об этом никак не узнать и всеравно придется каждый раз загружать весь dataset и плюс получается только в том, что при изменении данных в dataset он отправит только эти измененные данные ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 19:48 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANAпропущено... А в чём правильность-то? ИМХО с объектами в памяти проще и оптимальнее работать, чем с DataSet-ами. а при чем тут простота и непонятная "оптимальность" (что за критерии?)Ты ключевое слово "память" пропустил. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 21:39 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangosкак я понял то если именно в базе данных произошли изменения об этом никак не узнать и всеравно придется каждый раз загружать весь dataset и плюс получается только в том, что при изменении данных в dataset он отправит только эти измененные данныеПочему весь? DataSet умеет Merge. И узнать всегда можно об изменениях. DataSet тут не при чём. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 21:40 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangosкак я понял то если именно в базе данных произошли изменения об этом никак не узнать и всеравно придется каждый раз загружать весь datasetДа. А что в этом странного? В других системах можно сделать как-то по другому? Тут главное не тянуть много данных на клиента БД, только то, что хотим показать пользователю. В MSSQL можно подписаться на изменения в БД (см SqlDependency), но обычно этим не пользуются, особенно при большом количестве пользователей. faustmangosи плюс получается только в том, что при изменении данных в dataset он отправит только эти измененные данныеДа, это одно из преимуществ DataSet - возможность отслеживания изменений. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 21:53 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КВ MSSQL можно подписаться на изменения в БД (см SqlDependency), но обычно этим не пользуются, особенно при большом количестве пользователей."Необходимо и достаточно" в MSSQL использовать timestamp/rowversion при любом количестве подписчиков. Аналогично в Oracle - ORA_ROWSCN. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 23:17 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
значит я беру в бд источнике налаживаю первичные ключи, внешние ключи и тд пишу всякие триггеры, представления а потом беру датасет заливаю из бд таблички и все по новой расставляю? а что если у меня при изменении записи в источнике бд срабатывает триггер и он чето выполняет над бд? как мне сделать тоже самое в датасете раз уж я отсоединенно работаю? написать тот же триггер в виде функции ползающей по дататейблам? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 23:24 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangos, лучше делать не там и не тут, в середине, а там и тут сгенерировать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 23:37 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRos, спасибо профэссор, ваши ответы всегда бьют в цель моего незнания ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 23:43 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangos, ну че тут знать то? надо и Датасет и БД сгенерировать из концептуальной модели ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 23:46 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangosзначит я беру в бд источнике налаживаю первичные ключи, внешние ключи и тд пишу всякие триггеры, представления а потом беру датасет заливаю из бд таблички и все по новой расставляю? а что если у меня при изменении записи в источнике бд срабатывает триггер и он чето выполняет над бд? как мне сделать тоже самое в датасете раз уж я отсоединенно работаю? написать тот же триггер в виде функции ползающей по дататейблам?Нет. Сказали же, DataSet != БД. В DataSet нужно хранить результаты запросов. А лучше с DataSet вообще не связываться, лучше сразу использовать Entity Framework. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 00:16 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
sphinx_mvАлексей КВ MSSQL можно подписаться на изменения в БД (см SqlDependency), но обычно этим не пользуются, особенно при большом количестве пользователей."Необходимо и достаточно" в MSSQL использовать timestamp/rowversion при любом количестве подписчиков. Аналогично в Oracle - ORA_ROWSCN."тёплое" vs "мягкое" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 00:17 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей К, DataSet же не просто для хранения результатов запросов, а для последующей обработки этих результатов и запись измененных результатов в бд значит выходит, что работать с DataSet можно так: 1) использовать точную копию бд, путем генерации концептуальной модели (с) Профэссор, и как я понимаю надо будет полностью скопировать логику базы данных в программу, а она может быть сложной, и тогда вопрос зачем вообще нужны все эти объекты типа процедур и триггеров в базе данных? 2) использовать часть бд, а если в бд сложная логика то надо будет постараться наладить связи между огрызком бд в проге с бд источником и самый отстой - Вася залил бд в свой датасет удалил оттуда запись но из бд она еще не удалилась, т.к. он еще не обновлял ее данными из своего датасет, в это время Витя на другом проводе заливает бд с еще не удаленной записью в свой датасет и там ее видит, и тут Вася обновляю источник данными из датасета. Т.е. выходит у Вити запись осталась, а Васи меня удалилась? И тут Витя начинает работать с этой записью и изменяет эту запись в датасете, затем через какоето время он обновил источник своими данными. Что будет в базе данных в результате? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 00:55 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangos, ну почитай про пессимизм, оптимизм при работе с данными бд целиком в датасет обычно не надо, надо именно "огрызок", но целостный (подсхема называется), а не "результат запросов" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 00:59 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
короче DataSet нужен для решения проблемы большого количества соединений, но решает он ее "по-свойму", тупым закачиванием все себе на комп, созданием там утопии работы с базы данных - свои отношения свои ключики, быстрый доступ к данным в памяти блаблабла, но стоп, что он решал? большое кол-во соединений? значит у нас 100 клиентов и каждый качнул себе парочку огрызков бд поработал с ним и слил обратно в бд а там что теперь кеся меся или как? либо каждому клиенту обновлять этот датасет каждый раз? тогда возвращаемся к тем же постоянным соединениям единственный плюс который я вижу в datasete так это работа с xml ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 01:15 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangos, ну возьми вместо датасета любой ORM, тот же EF, представь работу с ним. Клиент запрашивает из БД данные, получает, например, несколько десятков объектов (что равноценно нескольким десяткам строк в datatable). Отображает эти объекты в UI. Человек, поработав с ними, обновляет БД. Но до этого другой клиент уже успел обновить эти же данные. Что получаем? Меня всегда поражало, почему такие вопросы возникают в связи с dataset/datatable, но те же самые проблемы при работе с ORM или врукопашную (читаем через datareader, вручную маппим на объекты, потом пишем через datawriter) воспринимаются как само собой разумеющееся. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 01:59 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей Кsphinx_mvпропущено... "Необходимо и достаточно" в MSSQL использовать timestamp/rowversion при любом количестве подписчиков. Аналогично в Oracle - ORA_ROWSCN."тёплое" vs "мягкое"Не теплое и не мягкое, а способ выделения и получения изменений из базы данных без плясок с бубнами. И будет это работать даже с оффлайн клиентами при любом их количестве (в отличие от). А вообще - RTFM : SqlDependency(бла-бла-бла) Примечание SqlDependency предназначен для использования в приложениях ASP.NET или службах промежуточного уровня , когда относительно небольшое количество серверов имеют активные зависимости от базы данных. Этот объект не предназначен для использования в клиентских приложениях , где сотни и тысячи клиентских компьютеров могут поддерживать объекты SqlDependency, связанные с одним сервером базы данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 02:23 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
petalvik, да ты прав, но дело в том, что datareader работает намного быстрее dataset и датасет эффективен если использовать его для того, чтобы он синхронизировал сразу по несколько измененных строк, т.е. надо дождаться пока не наберется какоето количество изменений, но тогда и начинаются проблемы с множественным доступом, а с помощью dbcommand можно апдейтнуть только 1 запись, хоть и придется потратится на соединение зато шанс что ты работаешь впустую и ктото просто потом своим датасетом перепишет твои данные уменьшается ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 02:48 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangosшанс что ты работаешь впустую и ктото просто потом своим датасетом перепишет твои данные уменьшаетсяВо-первых, использовать нужно DataAdapter (как где-то здесь ) и, во-вторых, оптимистическую блокировку ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 04:54 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangospetalvik, да ты прав, но дело в том, что datareader работает намного быстрее dataset и датасет эффективен если использовать его для того, чтобы он синхронизировал сразу по несколько измененных строк, т.е. надо дождаться пока не наберется какоето количество изменений, но тогда и начинаются проблемы с множественным доступом, а с помощью dbcommand можно апдейтнуть только 1 запись, хоть и придется потратится на соединение зато шанс что ты работаешь впустую и ктото просто потом своим датасетом перепишет твои данные уменьшаетсяВы пишете свою первую программу? Может начать с реальных требований, а не фантазий? Используйте DataAdapter, как уже предложили выше. Внутри него как раз таки datareader с dbcommand. Что будет делать Ваш Вася, если у него интернет отвалится на пару часов? Магазин закроет на это время? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 09:29 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangosЗадачка - есть сеть магазинов в городе(1,2,3...) у них есть общий склад из которого они пополняют свои запасы и тд. Один из вариантов решения задачи: общая БД, доступная online всем магазинам в городе (доступ через OData или Web API). Самый простой и надежный способ. Требуется хороший интернет канал, клиенты подключаются через Wi-Fi. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 10:00 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAИспользуйте DataAdapter, как уже предложили выше. Внутри него как раз таки datareader с dbcommand. кэп? skyANAЧто будет делать Ваш Вася, если у него интернет отвалится на пару часов? Магазин закроет на это время? мм, списывать памперсы которых нет уже на складе? Если инет отвалился значит со складом на это время работа закрыта, магазин то тут причем? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 14:03 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangosskyANAИспользуйте DataAdapter, как уже предложили выше. Внутри него как раз таки datareader с dbcommand. кэп? skyANAЧто будет делать Ваш Вася, если у него интернет отвалится на пару часов? Магазин закроет на это время? мм, списывать памперсы которых нет уже на складе? Если инет отвалился значит со складом на это время работа закрыта, магазин то тут причем?То есть данные о продажам памперсов магазин заносит в другую базу? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 14:17 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangos, есть памперсы в магазине, есть памперсы на складе, но нет интернета. Магазин в это время работает, с какими данными, откуда они читаются и куда пишутся? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 14:22 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, да какаша у него пока в башке, ему уже все рассказали ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 14:27 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAИМХО с объектами в памяти проще и оптимальнее работать, чем с DataSet-ами. Не всегда, хорошо когда четко можно классы объектов в модели определить. А бывает что из трех таблиц нужно формировать 20 различных наборов данных и не известно, какой набор данных юзеру завтра еще понадобится. Двадцать классов лепить и еще какие динамические классы придумывать не комильфо. Датасеты с таблицами в таких сучаях удобнее, хотя и тормознутее. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 15:01 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAИМХО с объектами в памяти проще и оптимальнее работать, чем с DataSet-ами. Не всегда, хорошо когда четко можно классы объектов в модели определить. А бывает что из трех таблиц нужно формировать 20 различных наборов данных и не известно, какой набор данных юзеру завтра еще понадобится. Двадцать классов лепить и еще какие динамические классы придумывать не комильфо. Датасеты с таблицами в таких сучаях удобнее, хотя и тормознутее.Шаблон спецификация, Query Object, CQRS, нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 15:11 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAШаблон спецификация, Query Object, CQRS, нет? Ага, но гемора не меньше чем с датасетами, а прозрачность кода просто ппц. Ваще топик баян :( ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 15:15 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAШаблон спецификация, Query Object, CQRS, нет? Ага, но гемора не меньше чем с датасетами, а прозрачность кода просто ппц. Ваще топик баян :(Прозрачность кода? В каком плане? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 15:22 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAВ каком плане? Хрен разгребешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 15:30 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAВ каком плане? Хрен разгребешь.Да ладно, наоборот, см. картинку :) Command and Query Responsibility Segregation (CQRS) на практике ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 16:12 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Абсолютно прозрачно откуда у тебя запрашивается набор данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 16:13 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAEDUARD SAPOTSKIпропущено... Хрен разгребешь.Да ладно, наоборот, см. картинку :) Command and Query Responsibility Segregation (CQRS) на практике Хня какая-то. Ну дал юзер команду на полученние набора данных, команда прошла по синей цепочке. Получил юзер набор данных который сформировался из хрен знает скольких таблиц, прошло это по красной цепочке. А потом юзер меняет данные и изменения нужно сохранить в БД... И чо? Каким хреном синяя цепочка поймет что где менять в БД нужно? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 16:40 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAпропущено... Да ладно, наоборот, см. картинку :) Command and Query Responsibility Segregation (CQRS) на практике Хня какая-то. Ну дал юзер команду на полученние набора данных, команда прошла по синей цепочке. Получил юзер набор данных который сформировался из хрен знает скольких таблиц, прошло это по красной цепочке. А потом юзер меняет данные и изменения нужно сохранить в БД... И чо? Каким хреном синяя цепочка поймет что где менять в БД нужно?Ты не понял даже базовой идеи :) Команды они не для получения данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 16:42 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, дык он и спрашивает, как формировать команду? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 16:43 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRos, дык в статье и картинки есть и эволюция кода расписана :) Может пусть конкретно спросит, что не понятно? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 17:06 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAМожет пусть конкретно спросит, что не понятно? Дык вроде всем понятно что спросил. ViPRosкак формировать команду? Есть у тебя в БД таблицы со столбцами: A(A0, A1, A2) B(B0, B1, B2) C(C0, C1, C2) Ты получил набор данных который отдал юзеру: D(A1, C1, C2, B0) Поменял юзер в наборе параметры C1 и B0 каким хреном создать команду что бы изменения сохранить? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 17:16 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAМожет пусть конкретно спросит, что не понятно? Дык вроде всем понятно что спросил. ViPRosкак формировать команду? Есть у тебя в БД таблицы со столбцами: A(A0, A1, A2) B(B0, B1, B2) C(C0, C1, C2) Ты получил набор данных который отдал юзеру: D(A1, C1, C2, B0) Поменял юзер в наборе параметры C1 и B0 каким хреном создать команду что бы изменения сохранить? С каких это пор "наборы" должны куда-то сохраняться? Сохраняются изменения в таблице, а не в каком-то абстрактном джойне. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 18:35 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУ Сохраняются изменения в таблице , а не в каком-то абстрактном джойне. Молодец. С наступившим. В том и вопрос, как skyANA это сделать предлагает в представленной архитектуре. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 18:39 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAМожет пусть конкретно спросит, что не понятно? Дык вроде всем понятно что спросил. ViPRosкак формировать команду? Есть у тебя в БД таблицы со столбцами: A(A0, A1, A2) B(B0, B1, B2) C(C0, C1, C2) Ты получил набор данных который отдал юзеру: D(A1, C1, C2, B0) Поменял юзер в наборе параметры C1 и B0 каким хреном создать команду что бы изменения сохранить?Пользователь выполнил какое-то действие в каком-то контексте, этому действию и соответсвует команда. В статье же даже простой пример есть: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Ну вот как сформировать данную команду, когда мы получили список пользователей (набор, о котором ты говоришь) и решили удалить одного? Очевидно, что создать экземпляр класса команды. Либо тупо, либо через фабрику. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 18:41 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, это скоко же надо таких команд пилить? вот допустим юзвер удалил (имеет право) ед.изм м2 скоко команд надо вызвать что бы все это разрулить в БД где есть сотни ссылок на этот ед.изм? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 19:01 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
кстати, Бындю - ты? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 19:03 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRos, одну. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 19:04 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosкстати, Бындю - ты?Интересный вопрос. А разве похож? У меня фотка на аватаре, у него в блоге фотка ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 19:05 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 19:08 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, я что фотки смотрю, не девки чай да какую одну покажи!!! как ты херишь одной командой БД по идее, там чтение (запрос) не подразумевает заполнения контекста какого нить ОРМ изменению будут подвергаться результаты запроса а запись (команды) скорее всего через ОРМ (так как кишка тонка самому сделать) и как контекст ОРМ синхронизируется с запросом? и зачем вся ахинея эта? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 19:12 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, ну думал что в профиле реальная фотка :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 19:13 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
не думал ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 19:17 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAViPRos, одну. Уффф... Есть таблицы - клиенты, товары, покупки, единицы измерения... Юзер получил некое представление, естественно через джоины: Клиент Товар Ед. Изм. Кол-во Сумма Иванов Стол шт 2 3000 Иванов Мобила шт 1 5000 Петров Телевизор шт 3 20000 Петров Айфон шт 1 10000 Петров Икра шт 1 12000 Юзер думает - Петров один телик вернул, надо количество изменить и сумму подправить, а икра в кг измеряется а не в штуках. Он это изменил! А каким хреном эти изменения теперь отобразить в БД, если по схеме блок команд ваще абстрагирован от блока запросов??? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 19:18 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosи как контекст ОРМ синхронизируется с запросом? и зачем вся ахинея эта? О! Об этом и речь. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 19:20 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANA, я что фотки смотрю, не девки чай да какую одну покажи!!! как ты херишь одной командой БД по идее, там чтение (запрос) не подразумевает заполнения контекста какого нить ОРМ изменению будут подвергаться результаты запроса а запись (команды) скорее всего через ОРМ (так как кишка тонка самому сделать) и как контекст ОРМ синхронизируется с запросом? и зачем вся ахинея эта?Что-то ты напридумывал. Проще надо быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 19:43 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAViPRos, одну. Уффф... Есть таблицы - клиенты, товары, покупки, единицы измерения... Юзер получил некое представление, естественно через джоины: Клиент Товар Ед. Изм. Кол-во Сумма Иванов Стол шт 2 3000 Иванов Мобила шт 1 5000 Петров Телевизор шт 3 20000 Петров Айфон шт 1 10000 Петров Икра шт 1 12000 Юзер думает - Петров один телик вернул, надо количество изменить и сумму подправить, а икра в кг измеряется а не в штуках. Он это изменил! А каким хреном эти изменения теперь отобразить в БД, если по схеме блок команд ваще абстрагирован от блока запросов???Это некий отчёт? Он собирается из чего, из заказов? Единицы измерения икры к чему относятся, к справочнику товаров? То есть нужно изменить некий заказ, и некий товар. Два доменных объекта. Не думаю, что доменные объекты у тебя прям в отчётах правятся. Следовательно пользователь из отчёта по ссылке переходит в заказ и правит заказ (одна команда). По другой ссылке переходит в справочник товаров и правит икру (вторая команда). Причём эти же самые команды используются, когда ты из других мест системы попадаешь в заказ и его меняешь, или в товар и его меняешь. Я не знаю что за схемы вы у себя в голове рисуете, но попробуйте оставаться в рамках тех, что в статье ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 19:50 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosизменению будут подвергаться результаты запросаИзменению не подвергаются результаты запроса. Ну нарисовано же на картинке в статье. Лень ссылку открыть, судя по тому, что фотку Бындю ты не увидел и мою не смог в новом окне браузера кликом мыши открыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 19:51 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Вы, парни, "Достоевского не читали но осуждаете" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 19:52 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, да че нам читать то? если операции чтения только запросы (их результаты не корректируются по условию), а записи только команды (ничего не возвращают по условию), то как же все таки изменить что нить? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 19:59 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
мой браузер почему то фотку не открывает, я и так и этак на нее ткал :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 20:01 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ну а Бынбю просто фамилия интересная, хотел спросить про происхождение ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 20:01 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAНе думаю, что доменные объекты у тебя прям в отчётах правятся. Да легко. Предлагаешь юзеру по десятку справочников прогуляться что бы несколько значений изменить? Открой ту же 1С и удивись. Но да ладно... skyANAСледовательно пользователь из отчёта по ссылке переходит в заказ и правит заказ ( одна команда ). По другой ссылке переходит в справочник товаров и правит икру ( вторая команда ). А теперь вопрос, чем это отличается от методов в обычном MVC контроллере или GRUD методов в WCF или хранимок и представлений на уровне БД? Тем что пытаемся разнести то что в принципе разнести не возможно? skyANAВы, парни, "Достоевского не читали но осуждаете" Не Достоевский это, а очередная говноархитектура, которую обсуждать смысла нет. Воображения не хватает где эта хрень может быть эфективнее дедовских методов. Не понятно чего ты на нее ваще повелся. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 20:08 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIМСУ Сохраняются изменения в таблице , а не в каком-то абстрактном джойне. Молодец. С наступившим. В том и вопрос, как skyANA это сделать предлагает в представленной архитектуре. Тоже тебя с годом! Так а чем не устраивает архитектура edm (ef, odata, ria, etc)? У тебя есть модель, ты её можешь со всех сторон иметь и накручивать изменения, а потом по единой команде говоришь SaveChanges(). И щастье. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 20:36 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУ, это нормально жаль, что в эдм нет много чего ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 20:39 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУТак а чем не устраивает архитектура edm (ef, odata, ria, etc)? У тебя есть модель, ты её можешь со всех сторон иметь и накручивать изменения, а потом по единой команде говоришь SaveChanges(). И щастье. Не в моде нынче говорят. Мне лично и L2SQL хватает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 20:47 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAНе думаю, что доменные объекты у тебя прям в отчётах правятся. Да легко. Предлагаешь юзеру по десятку справочников прогуляться что бы несколько значений изменить? Открой ту же 1С и удивись. Но да ладно...1С десктоп, где всё в памяти сидит? Или 1C веб? Открой Jira и Fiddler-ом посмотри. Ну а если серъёзно. То что конкретно, какие объекты правит твой юзер через отчёты? Ты под каждую колонку свою хранимку пишешь? EDUARD SAPOTSKIskyANAСледовательно пользователь из отчёта по ссылке переходит в заказ и правит заказ ( одна команда ). По другой ссылке переходит в справочник товаров и правит икру ( вторая команда ). А теперь вопрос, чем это отличается от методов в обычном MVC контроллере или GRUD методов в WCF или хранимок и представлений на уровне БД? Тем что пытаемся разнести то что в принципе разнести не возможно?Вася, да прочитай ты статью и попытайся понять. Там же про эволюцию проекта от твоего уровня до реализации принципа CQRS (которому сто лет в обед) написано русским языком EDUARD SAPOTSKIskyANAВы, парни, "Достоевского не читали но осуждаете" Не Достоевский это, а очередная говноархитектура, которую обсуждать смысла нет. Воображения не хватает где эта хрень может быть эфективнее дедовских методов. Не понятно чего ты на нее ваще повелся.И тут у Эдуарда аргументы закончились. Всё, что не Сервелад и Хранимки, то говноархитектура Вот только Эдуард получает гораздо меньше бабла, чем говноархитекторы вроде Бындю и Бертрана Мейера. Правдо оно и понятно, задачи-то другого уровня решает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 20:50 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAНу а если серъёзно. То что конкретно, какие объекты правит твой юзер через отчёты? Ты под каждую колонку свою хранимку пишешь? Епта, да при чем здесь отчеты? Про ключики в БД ченить слышал и нормализации там всякие? Информация о практически любой бизнес-сущности может храниться в нескольких таблицах, юзеру мы ее отображаем через джоин(или у тебя своя метода? ). При чем здесь хранимка? Я могу сделать представление в БД(вьюшку) и вытянуть его в ОРМ или слепить это представление на уровне самой ОРМ(модели edmx) и спокойно обновлять данные. Можно и хранимку написать, ради бога. Вопрос в том, как ты будешь в показанной архитектуре делать обычный CRUD??? (То что можно юзера удалить из списка это я понял, только не впечатляет). skyANAИ тут у Эдуарда аргументы закончились. Всё, что не Сервелад и Хранимки, то говноархитектура Вот только Эдуард получает гораздо меньше бабла, чем говноархитекторы вроде Бындю и Бертрана Мейера. Правдо оно и понятно, задачи-то другого уровня решает. Аргументы закончились, надо баблом меряться? Любой сын арабского шейха с рождения баблом крутит о котором Бындю и Мейер не мечтали, показатель? Ты бы коменты под этими г-топиками почитал, все задают те же вопросы что и я тебе и ни у Бындю ни у Мейера ответов нет! Что и требовалось доказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 21:15 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKI Не в моде нынче говорят. Какой-то пионерский шум на ровном месте :) EDUARD SAPOTSKIМне лично и L2SQL хватает. Да ну ты чего, сравнил попу с газонокосилкой :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 21:42 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAНу а если серъёзно. То что конкретно, какие объекты правит твой юзер через отчёты? Ты под каждую колонку свою хранимку пишешь? Епта, да при чем здесь отчеты? Про ключики в БД ченить слышал и нормализации там всякие? Информация о практически любой бизнес-сущности может храниться в нескольких таблицах, юзеру мы ее отображаем через джоин(или у тебя своя метода? ). При чем здесь хранимка? Я могу сделать представление в БД(вьюшку) и вытянуть его в ОРМ или слепить это представление на уровне самой ОРМ(модели edmx) и спокойно обновлять данные. Можно и хранимку написать, ради бога. Вопрос в том, как ты будешь в показанной архитектуре делать обычный CRUD??? (То что можно юзера удалить из списка это я понял, только не впечатляет).Ты картинку видел? Буковки MongoDB, Redis, Spinx о чём-нибудь говорят? Какие джоины могут быть в реализации Command, или Query для тех данных, что хранятся в NoSQL хранилище, кэше, или базе поискового движка? :) Но при этом клиенту абсолютно прозрачно, откуда тянутся данные. А в случае с DataSet-ом какая прозрачность, напомни-ка? Но тебе ничего это не говорит ведь, да? У тебя всё вьюшки с ОРМ-ами. А у кого-то система эволюционирует, становится распределённой. У кого-то так и остаётся на уровне хранимок и DataSet-ов. И вот первые понимают Майера с Бындю, а вторые задают вопросы вроде твоих :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 21:48 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУEDUARD SAPOTSKI Не в моде нынче говорят. Какой-то пионерский шум на ровном месте :)Шум из авангарда. В арьергарде не разобрать, о чём он, это я уже понял :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 21:52 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAБуковки MongoDB, Redis, Spinx о чём-нибудь говорят? Какие джоины могут быть в реализации Command, или Query для тех данных, что хранятся в NoSQL хранилище, кэше, или базе поискового движка? :) Но при этом клиенту абсолютно прозрачно, откуда тянутся данные. А в случае с DataSet-ом какая прозрачность, напомни-ка? Но тебе ничего это не говорит ведь, да? У тебя всё вьюшки с ОРМ-ами. А у кого-то система эволюционирует, становится распределённой. У кого-то так и остаётся на уровне хранимок и DataSet-ов. И вот первые понимают Майера с Бындю, а вторые задают вопросы вроде твоих :) Да хватит звездеть о мега-нагруженных системах, как там все сложно... для желторотиков эти сопли оставь. Давай пример составной бизнес-сущности, которую отдаешь юзеру, и покажи как над ней провести CRUD, или ставим крест на этой г-архитектуре и расходимся! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:01 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAШум из авангарда. В арьергарде не разобрать, о чём он, это я уже понял :) Та ну их, этих болтоботов :) Смотрел минут 10, чуть не уснул. Потом полистал и понял, что там тоже ничего хорошего. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:10 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Эдик, ты ж из риавцев, ну хорош зудеть. Сам же знаешь архитектуру, как вкусно можно запилить реальную модель. Ну ладно риа отвалились в одату, еще есть такой же ef. Всё решается так же, как и раньше. Красота ведь. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:12 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAНо при этом клиенту абсолютно прозрачно, откуда тянутся данные. А в случае с DataSet-ом какая прозрачность, напомни-ка?Не вижу принципиальной разницы, модель представлена DataSet-ом или чем-то ещё. На прозрачности не сказывается. :-) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
vs Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:17 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей К, тема баян, за датасеты бьём розгами по ягодицам с последующей пропагандой и перевоспитанием :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:19 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУАлексей К, тема баян, за датасеты бьём розгами по ягодицам с последующей пропагандой и перевоспитанием :) Да . Но я за справедливость. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:21 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:22 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КskyANAНо при этом клиенту абсолютно прозрачно, откуда тянутся данные. А в случае с DataSet-ом какая прозрачность, напомни-ка?Не вижу принципиальной разницы, модель представлена DataSet-ом или чем-то ещё. На прозрачности не сказывается. :-) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
vs Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
А теперь представь, что именно вот эта тваоя MyEntity переехала в MongoDB. Данные взяли и смигрировали. Потому как MyEntity ну гораздо удобнее хранить целым, собранным документом, а не раскиданным по 10 таблицам SQL Server-а. Очень быстро доставать её разом из MongoDB (не тратя время на 10 джоинов) и очень быстро изменять. Вариант с DataSet-ом после такой миграции придётся просто выкинуть. :) Так сказать, вымер в ходе эволюции. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:23 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIМСУ, срач не из-за датасетов, а из-за этой хрени: Да, из картинки не понятно что такое Query и QueryModel, не изображены слои логики и доступа к данным: репозитарии и прочее... Да и хрен с ней. В наше время картинкорисователей больше чем программистов, на каждую глупость обращать внимание - нервов не хватит. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:28 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAБуковки MongoDB, Redis, Spinx о чём-нибудь говорят? Какие джоины могут быть в реализации Command, или Query для тех данных, что хранятся в NoSQL хранилище, кэше, или базе поискового движка? :) Но при этом клиенту абсолютно прозрачно, откуда тянутся данные. А в случае с DataSet-ом какая прозрачность, напомни-ка? Но тебе ничего это не говорит ведь, да? У тебя всё вьюшки с ОРМ-ами. А у кого-то система эволюционирует, становится распределённой. У кого-то так и остаётся на уровне хранимок и DataSet-ов. И вот первые понимают Майера с Бындю, а вторые задают вопросы вроде твоих :) Да хватит звездеть о мега-нагруженных системах, как там все сложно... для желторотиков эти сопли оставь. Давай пример составной бизнес-сущности, которую отдаешь юзеру, и покажи как над ней провести CRUD, или ставим крест на этой г-архитектуре и расходимся!Дак вот именно там всё просто. Потому как архитектура продумана. Это у тебя же возникают вопросы типа: "Я нафигачил 20 отчётиков, как же они в рамках CQRS смогут работать?" :) А твоя бизнес-сущность - это что? Часть DomainModel, или QueryModel? Давай сначала определимся. Пример про заказ и икру, разве не про бизнес-сущности заказ и товар? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:30 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... Не вижу принципиальной разницы, модель представлена DataSet-ом или чем-то ещё. На прозрачности не сказывается. :-) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
vs Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
А теперь представь, что именно вот эта тваоя MyEntity переехала в MongoDB. Данные взяли и смигрировали. Потому как MyEntity ну гораздо удобнее хранить целым, собранным документом, а не раскиданным по 10 таблицам SQL Server-а. Очень быстро доставать её разом из MongoDB (не тратя время на 10 джоинов) и очень быстро изменять. Вариант с DataSet-ом после такой миграции придётся просто выкинуть. :) Так сказать, вымер в ходе эволюции.DataSet нельзя заполнить в репозитарии данными из MongoDB? Вроде как миграция приведёт к необходимости переписывания только репозитария. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:31 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КEDUARD SAPOTSKIМСУ, срач не из-за датасетов, а из-за этой хрени: Да, из картинки не понятно что такое Query и QueryModel, не изображены слои логики и доступа к данным: репозитарии и прочее... Да и хрен с ней. В наше время картинкорисователей больше чем программистов, на каждую глупость обращать внимание - нервов не хватит. :-)Ещё один осуждатель из нечитавших :) Про репозиторий помнится в таком же духе писал. А сейчас ничего, пользуется :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:32 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... А теперь представь, что именно вот эта тваоя MyEntity переехала в MongoDB. Данные взяли и смигрировали. Потому как MyEntity ну гораздо удобнее хранить целым, собранным документом, а не раскиданным по 10 таблицам SQL Server-а. Очень быстро доставать её разом из MongoDB (не тратя время на 10 джоинов) и очень быстро изменять. Вариант с DataSet-ом после такой миграции придётся просто выкинуть. :) Так сказать, вымер в ходе эволюции.DataSet нельзя заполнить в репозитарии данными из MongoDB? Вроде как миграция приведёт к необходимости переписывания только репозитария.Можно конечно, но это будет верх глуппости ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:34 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... Да, из картинки не понятно что такое Query и QueryModel, не изображены слои логики и доступа к данным: репозитарии и прочее... Да и хрен с ней. В наше время картинкорисователей больше чем программистов, на каждую глупость обращать внимание - нервов не хватит. :-)Ещё один осуждатель из нечитавших :) Про репозиторий помнится в таком же духе писал. А сейчас ничего, пользуется :)До сих пор не понимаю, что в себя включает понятие "репозитарий". Раньше было лучше: 1. Data Access Layer (DAL). 2. Business Logic Layer (BLL). Было всё понятно и очевидно, пока не пришли теоретики-инноваторы со своими репозитариями. Но спорить глупо, проще смириться с тем, что есть некий репозитарий, который может в себя включать DAL и/или BLL, по необходимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:37 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... DataSet нельзя заполнить в репозитарии данными из MongoDB? Вроде как миграция приведёт к необходимости переписывания только репозитария.Можно конечно, но это будет верх глуппости Согласен, глупость, но принципиальная возможность есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:38 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей К Да . Но я за справедливость. :-) Справедливости с датасетами не жди, Путин - наше всё EDUARD SAPOTSKIМСУ, срач не из-за датасетов, а из-за этой хрени Обвязка в репозиторий решает 100% задач. Всё остальное высосано из пальца. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:43 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей К, монгоДБ и есть глупость ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:46 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosАлексей К, монгоДБ и есть глупостьНе знаю, не работал с ней. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:49 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosАлексей К, монгоДБ и есть глупость Ну в общем-то, согласен. Выстреливает, разве что, в единичных сценариях типа профилей пользователей фейсбука. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:52 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
во блин, хоть и жаль времени (все ж работаю, хоть и выходные) но предлагаю вот что давайте блин каждый берет свою проверенную технологию и решаем одну задачку на время, качество, сопровождаемость ай? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:55 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAА твоя бизнес-сущность - это что? Часть DomainModel, или QueryModel? Давай сначала определимся. Пример про заказ и икру, разве не про бизнес-сущности заказ и товар? :) Короче слив защитан, эта херь признается непригодным гумном. Бизнес-сущностью является например товар/продукция/сырье. Так же бизнес-сущностью является клиент/поставщик/контрагент... А есть составные бизнес-сущности(комплексные) например некие факты - поставка товара/отгрузка/реализация... У таких фактов присутствует инфа о нескольких других бизнес-сущностях - кто купил(клиент) у кого купил(продавец/поставщик) что купил(товар) когда купил и т.д... Плять, такую хрень приходится объяснять, ужас ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:56 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKI, а составные составных бывают? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 22:59 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosEDUARD SAPOTSKI, а составные составных бывают? :) Бывают, кудаж они денутся :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:00 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosво блин, хоть и жаль времени (все ж работаю, хоть и выходные) но предлагаю вот что давайте блин каждый берет свою проверенную технологию и решаем одну задачку на время, качество, сопровождаемость ай?Если хочется потренироваться, можешь взять задачу и вариант моего решения у меня на сайте . Напиши аналог "планировщика", посмотрим, сравним. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:01 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKI... эта херь признается непригодным гумном.Как-то долго приходило признание, аж целую страницу исписали. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:03 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КViPRosво блин, хоть и жаль времени (все ж работаю, хоть и выходные) но предлагаю вот что давайте блин каждый берет свою проверенную технологию и решаем одну задачку на время, качество, сопровождаемость ай?Если хочется потренироваться, можешь взять задачу и вариант моего решения у меня на сайте . Напиши аналог "планировщика", посмотрим, сравним. а ты не видел ВИП.Производство? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:16 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:17 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Сахават опять со своим конструктором писями меряется, жулик ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:17 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:19 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:19 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosViPRos, http://vipros.ru/index.php?option=com_content&view=article&id=5&Itemid=5 Мы говорим о показательном решении или о реальном проекте, стоимостью XXX млн руб? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:20 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУСахават опять со своим конструктором писями меряется, жулик ну надо ж как то народ в чувство привести ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:20 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КViPRosViPRos, http://vipros.ru/index.php?option=com_content&view=article&id=5&Itemid=5 Мы говорим о показательном решении или о реальном проекте, стоимостью XXX млн руб? да какая разница ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:21 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAА твоя бизнес-сущность - это что? Часть DomainModel, или QueryModel? Давай сначала определимся. Пример про заказ и икру, разве не про бизнес-сущности заказ и товар? :) Короче слив защитан, эта херь признается непригодным гумном. Бизнес-сущностью является например товар/продукция/сырье. Так же бизнес-сущностью является клиент/поставщик/контрагент... А есть составные бизнес-сущности(комплексные) например некие факты - поставка товара/отгрузка/реализация... У таких фактов присутствует инфа о нескольких других бизнес-сущностях - кто купил(клиент) у кого купил(продавец/поставщик) что купил(товар) когда купил и т.д... Плять, такую хрень приходится объяснять, ужас Я тебе задал парочку уточняющих вопросов. Мог бы ответить, что "часть DomainModel", тогда бы можно было конструктивно что-то обсудить. Но ты решил потроллить. Эдуард такой Эдуард :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:22 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosViPRos, http://vipros.ru/index.php?option=com_content&view=article&id=5&Itemid=5 А это по феншую, что скачал презентацию в пдф а она нихрена не открывается? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:23 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosАлексей Кпропущено... Мы говорим о показательном решении или о реальном проекте, стоимостью XXX млн руб? да какая разницаПредлагаешь нам написать это за пару вечеров, чисто для души? авторФункциональная спецификация 1. Функции ведения нормативно-справочной информации 1.1. Ведение структуры организации Ввод, изменение, удаление организационных элементов, их типов, организационной структуры Ввод, изменение, удаление рабочих мест, их типов и характеристик, принадлежности организационным элементам Ввод, изменение, удаление штатных позиций, штатной структуры, заполнения штатной структуры 1.2. Ведение конструкторской и технологической документации, нормативов Ввод, изменение, удаление узловых спецификаций выпускаемых изделий Ввод, изменение, удаление технологических операций Ввод, изменение, удаление трудовых нормативов выполнения технологических операций Ввод, изменение, удаление нормативов расходования материалов, ПКИ, оснастки в технологических операциях 1.3. Ведение справочников ресурсов организации Ввод, изменение, удаление единиц оборудования с ведением технической информации Ввод, изменение, удаление работников предприятия с ведением персональной информации Ввод, изменение, удаление в реестре материалов, покупных комплектующих, инструмента и оснастки Ведение остатков материальных ресурсов (материалы, покупные комплектующие, инструмент и оснастка, детали и сборочные единицы) в разрезе номенклатуры, мест хранения (складов, кладовых, накопителей рабочих мест), партий и/или экземпляров (при уникальной нумерации составных частей) Ведение справочника контрагентов 2. Функции ведения коммерческой информации 2.1. Ведение договоров с заказчиками Ввод, изменение, удаление договора с заказчиком Ведение структуры обязательств поставок и оплат, с установлением и поддержанием логических связей (например, «оплата через 3 месяца после поставки» и т.п.) между обязательствами Визуализация структуры обязательств по договору диаграммой Ганта, с возможностью ввода/изменения договора изменением графических элементов диаграммы 2.2. Ведение договоров с поставщиками Ввод, изменение, удаление договора с поставщиком Ведение структуры обязательств оплаты и поставки в привязке к обязательствам основного договора с заказчиком, с установлением и поддержанием логических связей, визуализацией на диаграмме Ганта, возможностью графического изменения информации по договору Отражение факта исполнения обязательств, сравнение договорных сроков, плановых сроков, фактических сроков исполнения Автоматическая генерация плановых договорных обязательств по договорам с поставщиками товаров и услуг, исходя из планов снабжения и установленных внутренних политик и ограничений 2.3. Ведение производственных заказов Открытие, изменение, закрытие заказов для исполнения договорных обязательств Открытие внутренних заказов, с привязкой к договорным заказам (встраивание в логику связей договорных обязательств внутренних заказов, открытых в интересах договорного заказа) 3. Функции планирования и диспетчеризации производства 3.1. Планирование и диспетчеризация основного производства Ведение сменности на рабочих местах Ведение табеля рабочего времени (фактического присутствия работников) Ведение табеля работы оборудования (фактической готовности оборудования) Расчет производственного расписания с учетом договорных обязательств, загрузки ресурсов, внутренних правил и установленных приоритетов Анализ производственного расписания для выявления узких мест (возможность детализации до уровня отдельной операции и рабочего места при возможности агрегирования до уровня цеха) Автоматическое формирование и выдача распорядительных документов (нарядов различных форм, лимитно-заборных карт и т.п.) по согласованному перечню отчетов Отражение факта исполнения операций Ведение оперативного производственного учета ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:24 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIViPRosViPRos, http://vipros.ru/index.php?option=com_content&view=article&id=5&Itemid=5]http://vipros.ru/index.php?option=com_content&view=article&id=5&Itemid=5] http://vipros.ru/index.php?option=com_content&view=article&id=5&Itemid=5 А это по феншую, что скачал презентацию в пдф а она нихрена не открывается? EDUARD SAPOTSKIViPRosViPRos, http://vipros.ru/index.php?option=com_content&view=article&id=5&Itemid=5]http://vipros.ru/index.php?option=com_content&view=article&id=5&Itemid=5] http://vipros.ru/index.php?option=com_content&view=article&id=5&Itemid=5 А это по феншую, что скачал презентацию в пдф а она нихрена не открывается? А не, с пятого раза чето открылось... сча гляну... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:24 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosАлексей К, монгоДБ и есть глупостьНу да, весь мир же на самом деле работает с монолитными системами типа Випрос :) Мобильную версию прикрутите когда-нибудь, или гордо почите в базе? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:24 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIViPRosViPRos, http://vipros.ru/index.php?option=com_content&view=article&id=5&Itemid=5 А это по феншую, что скачал презентацию в пдф а она нихрена не открывается? как это? все предприятия качали ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:27 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAViPRosАлексей К, монгоДБ и есть глупостьНу да, весь мир же на самом деле работает с монолитными системами типа Випрос :) Мобильную версию прикрутите когда-нибудь, или гордо почите в базе? ну не нужно это в ВПК там нет интернета даже :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:28 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
см как интеграция производится оффлайн ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:31 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRos, ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:32 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Пилять, началось... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:33 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей К, зачем можно твою задачу, токо неинтересно, она уже решена оптимальным образом для кооперации что нить попроще, что бы показать порог вхождения ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:34 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУ, а че пилять не все ж время биндю обсуждать импортозамещение, все к моменту ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:37 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУОбвязка в репозиторий решает 100% задач. Всё остальное высосано из пальца.Дык в статье и про это написано. Репозиторий решает, но просто он разрастается настолько, что тупо mock-и уже хрен напишешь. Да и принцип single responsibility начинает нарушаться с появлением требований возвращать такие-то и сякие-то наборы данных. А когда эти данные надо ещё кэшировать, или нет, индексировать, или нет, то начинаются сложности плюс всё новые и новые зависимости. Хорошо вам, у вас этого нет. А мне в ходе эволюции бизнес-требований приходится сталкиваться с тем, что удаление поля из колонки приводит к тому, что надо рефакторить код в 10 местах, написанных 5-ю различными "неговноархитекторами" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:37 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRos, я чето не понял, а где расчет себестоимости единицы продукции/партии и распределение материалов... ентож самое интересное... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:37 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosчто нить попроще, что бы показать порог вхожденияСлишком простых решений и без того хватает, из них ничего не понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:37 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosМСУ, а че пилять не все ж время биндю обсуждать импортозамещение, все к моменту ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:38 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, вот если бы кода не было, то и не надо было бы ничего рефакторить ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:38 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANAпропущено... Ну да, весь мир же на самом деле работает с монолитными системами типа Випрос :) Мобильную версию прикрутите когда-нибудь, или гордо почите в базе? ну не нужно это в ВПК там нет интернета даже :)Когда в следующий раз полетишь отдыхать в Испанию, то лети на Ан-12 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:38 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIViPRos, я чето не понял, а где расчет себестоимости единицы продукции/партии и распределение материалов... ентож самое интересное... а ты почитай, там все написано и драйверы распределения и как распределения производится и нужно лти воще чего то распределять, там встроено много методов расчета себестоимости хотя я считаю, что себестоимость - фуфло и многие со мной согласны, но думаю этот базар не для этого форума :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:40 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANA, вот если бы кода не было, то и не надо было бы ничего рефакторитьрасскажешь, что будет, если Дмитрий Анатольевич захочет с ётафона через Випрос ВПК рулить ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:41 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAРепозиторий решает, но просто он разрастается настолько, что тупо mock-и уже хрен напишешь. Всё это нытьё на пустом месте, декомпозиция репозиториев решает. EmployeesRepository, CompanyRepository, StateRepository и так далее. skyANAДа и принцип single responsibility начинает нарушаться с появлением требований возвращать такие-то и сякие-то наборы данных. А когда эти данные надо ещё кэшировать, или нет, индексировать, или нет, то начинаются сложности плюс всё новые и новые зависимости. Кеширование и прочие грабли - не задача репозитория. Задача репозитория - выдать данные по параметрам. Всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:41 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУ, как ты это делаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:42 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAViPRosskyANA, вот если бы кода не было, то и не надо было бы ничего рефакторитьрасскажешь, что будет, если Дмитрий Анатольевич захочет с ётафона через Випрос ВПК рулить а хто это? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:43 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУКеширование и прочие грабли - не задача репозитория. Задача репозитория - выдать данные по параметрам. Всё.А чья это задача? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:44 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУskyANAРепозиторий решает, но просто он разрастается настолько, что тупо mock-и уже хрен напишешь. Всё это нытьё на пустом месте, декомпозиция репозиториев решает. EmployeesRepository, CompanyRepository, StateRepository и так далее. skyANAДа и принцип single responsibility начинает нарушаться с появлением требований возвращать такие-то и сякие-то наборы данных. А когда эти данные надо ещё кэшировать, или нет, индексировать, или нет, то начинаются сложности плюс всё новые и новые зависимости. Кеширование и прочие грабли - не задача репозитория. Задача репозитория - выдать данные по параметрам. Всё.Всё верно. Но наступит тот момент, что и Employees, и Company, и State будут использоваться в каком-то одном бизнес-процессе. В каких-нибудь продажах. И надо будет вернуть Employees, что участвуют в продажах. Companies, что участвуют в продажах. States, что участвуют в продажах. А потом добавится ещё биллинг. И надо будет вернуть Employees, что участвуют в биллинге. Companies, что участвуют в биллинге. States, что участвуют в биллинге. И т.д., и т.п. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:48 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAМСУпропущено... Всё это нытьё на пустом месте, декомпозиция репозиториев решает. EmployeesRepository, CompanyRepository, StateRepository и так далее. пропущено... Кеширование и прочие грабли - не задача репозитория. Задача репозитория - выдать данные по параметрам. Всё.Всё верно. Но наступит тот момент, что и Employees, и Company, и State будут использоваться в каком-то одном бизнес-процессе. В каких-нибудь продажах. И надо будет вернуть Employees, что участвуют в продажах. Companies, что участвуют в продажах. States, что участвуют в продажах. А потом добавится ещё биллинг. И надо будет вернуть Employees, что участвуют в биллинге. Companies, что участвуют в биллинге. States, что участвуют в биллинге. И т.д., и т.п. :)Обычная ситуация, проблем не вижу, всегда с этим жили. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:50 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
А кэширование всё-таки задача репозитория. Вернее работа с кэшем. Данные хранятся в распределённом кэше Redis-а. Если их там нет, то берутся из БД. Репозиторий как раз таки и обеспечивает прозрачность доступа к данным :) Но ты наверное о другом каком-то кэше. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:51 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAА кэширование всё-таки задача репозитория. Вернее работа с кэшем. Данные хранятся в распределённом кэше Redis-а. Если их там нет, то берутся из БД. Репозиторий как раз таки и обеспечивает прозрачность доступа к данным :) Но ты наверное о другом каком-то кэше.++ Кэширование можно организовывать на любом уровне, в т.ч. в репозитарии. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:53 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... Всё верно. Но наступит тот момент, что и Employees, и Company, и State будут использоваться в каком-то одном бизнес-процессе. В каких-нибудь продажах. И надо будет вернуть Employees, что участвуют в продажах. Companies, что участвуют в продажах. States, что участвуют в продажах. А потом добавится ещё биллинг. И надо будет вернуть Employees, что участвуют в биллинге. Companies, что участвуют в биллинге. States, что участвуют в биллинге. И т.д., и т.п. :)Обычная ситуация, проблем не вижу, всегда с этим жили. :-)Да проблем-то нет. Пока не слишком дорого вносить изменения и перепроверять после этого :) Пока одно хранилище, тестами ни фига не покрыто, если что-то падает, то падает в большой лог, с которым когда-нибудь разберутся, то всё нормуль. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:53 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
А вообще CQRS и репозиторий со спецификациями и прочими квери обджектами прекрасно уживаются вместе. Надеюсь вы не подумали, что я предлагаю переписать всё на CQRS? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:56 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, ну падать допустим воще последнее дело а тесты все равно нифига не решают ничего вот тут типа тестер хотел пристроиться я ему грю - докажи что это расписание не оптимально ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 23:57 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANA, ну падать допустим воще последнее дело а тесты все равно нифига не решают ничего вот тут типа тестер хотел пристроиться я ему грю - докажи что это расписание не оптимальноНу что они решают? Тупо сразу показывают, что твои изменения поломали. Решаешь потом ты, как разработчик: сам дурак, или тесты кривые :) Сильно экономят время. Ну и скажи нашему ВПК, что тестовые пуски ракет ни фига не решают ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 00:00 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, тестовый пуск и методики тестирование проги - разные вещи ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 00:01 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANA, тестовый пуск и методики тестирование проги - разные вещиГы. То есть модифицировали ракету, произвели тестовый пуск, посмотрели изменение прошлых показателей. А если модифицировали контур проги, то по новому тестируем? Старый функционал даже не проверяем? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 00:05 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, тестовый пуск производится не только при изменениях а прогу надо тестировать послойно только вот как это делать, неясно ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 00:08 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
когда есть явная модель - тестировать просто когда модель зашить в коде - пипец, невозможно такой код тестировать ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 00:10 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
вот я выше привел пример как ты можешь тестировать прогу, которая генерирует расписание? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 00:12 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAА кэширование всё-таки задача репозитория. Вернее работа с кэшем. Данные хранятся в распределённом кэше Redis-а. Если их там нет, то берутся из БД. Не совсем так. Вот тут идея http://ardalis.com/introducing-the-cachedrepository-pattern Тянуть кеширование в боевой репозиторий - это идиотизм чистой воды. Оборачиваются virtual методы боевого репо в новый кеш репо, инжектится и используется. Классика. Ничего другого не нужно. Мир уже открыт до нас. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 00:13 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУskyANAА кэширование всё-таки задача репозитория. Вернее работа с кэшем. Данные хранятся в распределённом кэше Redis-а. Если их там нет, то берутся из БД. Не совсем так. Вот тут идея http://ardalis.com/introducing-the-cachedrepository-pattern Тянуть кеширование в боевой репозиторий - это идиотизм чистой воды. Оборачиваются virtual методы боевого репо в новый кеш репо, инжектится и используется. Классика. Ничего другого не нужно. Мир уже открыт до нас.Открой для себя шаблон декоратор, классик ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 01:02 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANA, тестовый пуск производится не только при изменениях а прогу надо тестировать послойно только вот как это делать, неясноСахават придумал новый вид тестов: Послойные :) А модульные == послойные, или как? А интеграционные тесты значит не нужны? А нагрузочные? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 01:06 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosвот я выше привел пример как ты можешь тестировать прогу, которая генерирует расписание?То есть Випрос не покрывается тестами, следовательно тесты ничего не решают, так? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 01:08 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosкогда есть явная модель - тестировать просто когда модель зашить в коде - пипец, невозможно такой код тестироватьЧто есть модель? Где она есть? Почему другие тестируют себе не напрягаясь, а для тебя невозможно? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 01:12 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANA, ну падать допустим воще последнее дело а тесты все равно нифига не решают ничего вот тут типа тестер хотел пристроиться я ему грю - докажи что это расписание не оптимальноГы. Есть некая функция, что генерирует расписание? И нужно протестировать то, что она делает это оптимально? Ну дак это общая алгебра. Любую функцию на конечном множестве определения можно представить в табличном виде. Unit-тест просто проверяет что если на входе подаётся определнный набор, то и на выходе вполне себе определённый набор оптимальных результатов. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 01:20 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Туд вообще TDD в руки. Пишешь сначала тест, а потом реализуешь алгоритм в коде. И пока тест не пройден, ты точно знаешь, что где-то ошибся. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 01:22 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAТуд вообще TDD в руки. Пишешь сначала тест, а потом реализуешь алгоритм в коде. И пока тест не пройден, ты точно знаешь, что где-то ошибся. угу, ты не думаешь, что тебе не хватить всей памяти всех компов и твоей жизни что бы составить такую таблицу все то у тебя просто, разжевано биндюками :( желаю тебе уволиться (на лучшие деньги и т.д. условия) и заняться реальными прогами ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 02:22 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRos, есть такая функция из 100000 строк кода, с сотнями управляющих параметров да при чем тут расписание вот в ВИПРОС несколько параметров управлющие состоянием кеша, сброса в БД и обновления, постраничный режим и отложенная загрузка и т.д. это уже комбинаторика и не одна падла пока не смогла все эти пути протестировать ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 02:31 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
и это не алгебра, а комбинаторика ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 02:34 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAОткрой для себя шаблон декоратор, классик Он тут не нужен. Вбивать грабли в репо удел неандертальцев, я выше писал об этом. Вынести кеширование в наследника, что может быть проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 09:26 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУskyANAОткрой для себя шаблон декоратор, классик Он тут не нужен. Вбивать грабли в репо удел неандертальцев, я выше писал об этом. Вынести кеширование в наследника, что может быть проще.каким образом декоратор что-то куда-то вбивает? Не пиши глупости. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 09:57 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANAТуд вообще TDD в руки. Пишешь сначала тест, а потом реализуешь алгоритм в коде. И пока тест не пройден, ты точно знаешь, что где-то ошибся. угу, ты не думаешь, что тебе не хватить всей памяти всех компов и твоей жизни что бы составить такую таблицу все то у тебя просто, разжевано биндюками :( желаю тебе уволиться (на лучшие деньги и т.д. условия) и заняться реальными прогамиты же сам понимаешь, что полная таблица не нужна плюс ты многозначительно промолчал про область определения, в твоем стиле Желаешь мне перейти в Яндекс? У них памяти для обучения своих нейронных сетей хватает. Я подумаю :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 10:04 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУskyANAОткрой для себя шаблон декоратор, классик Он тут не нужен. Вбивать грабли в репо удел неандертальцев, я выше писал об этом. Вынести кеширование в наследника, что может быть проще.Потомок репозитария не является репозитарием? Это что-то новое в современной трактовке ООП. Но нуихнах эти виртуальные методы. Тогда уж лучше интерфейс + диконтейнер + аспекты. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 10:05 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... Обычная ситуация, проблем не вижу, всегда с этим жили. :-)Да проблем-то нет. Пока не слишком дорого вносить изменения и перепроверять после этого :)Тут главное не переусердствовать с повторным использованием. Мы при построении отчётов давно ушли от такого глубокого анализа предметной области. Делаем новый отчёт, тогда тупо: новая сущность + новый метод в репозитарии. В недрах логики конечно же есть какие-то повторно используемые основы, но они не торчат наружу и относимся к ним очень настороженно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 10:13 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosViPRos, есть такая функция из 100000 строк кода, с сотнями управляющих параметров да при чем тут расписание вот в ВИПРОС несколько параметров управлющие состоянием кеша, сброса в БД и обновления, постраничный режим и отложенная загрузка и т.д. это уже комбинаторика и не одна падла пока не смогла все эти пути протестироватьнет уж подожди, расскажи почему TDD не применимо к твоему расписанию? начни с того, что ты этим словом называешь? или мы тут все глубоко интересовались твоим Випросом, что с одного слова поняли всю сложность проблемы? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 10:13 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosи это не алгебра, а комбинаторикакэп, то что функцию можно представить в табличном виде - это алгебра :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 10:15 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosесть такая функция из 100000 строк кода, с сотнями управляющих параметровЭта функция точно нужна нашей планете? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 10:17 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAкаким образом декоратор что-то куда-то вбивает? Не пиши глупости. Прямым образом декоратор что-то куда-то вбивает. Изучи шаблон. Алексей КПотомок репозитария не является репозитарием? Это что-то новое в современной трактовке ООП. Речь об основном репозитории. Кеширующие, агрегирующие, танцующие во тьме и прочие репозитории - нужны конкретно для своей специфики. Об этом речь. Основной репозиторий при этом цел и невредим, может использоваться хоть на луне. Алексей КНо нуихнах эти виртуальные методы. Тогда уж лучше интерфейс + диконтейнер + аспекты. Не вижу проблем с виртуальными методами. Интерфейсы и DI никуда не денутся, они как были, так и есть. Аспекты лесом, задача решается проще и понятнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 10:51 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУskyANAкаким образом декоратор что-то куда-то вбивает? Не пиши глупости. Прямым образом декоратор что-то куда-то вбивает. Изучи шаблон.Ничего он никуда не вбивает. Код показать? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 10:55 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAНичего он никуда не вбивает. Код показать? :) Ну вот в таком виде да, съедобно :) http://codearticles.ru/articles/2548 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:04 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУАлексей КПотомок репозитария не является репозитарием? Это что-то новое в современной трактовке ООП. Речь об основном репозитории. Кеширующие, агрегирующие, танцующие во тьме и прочие репозитории - нужны конкретно для своей специфики. Об этом речь. Основной репозиторий при этом цел и невредим, может использоваться хоть на луне.Современная теория репозитариев не делит репозитарии на категории: основные, неосновные или какие-то ещё. Было сказано: "Кэшированию в репозитарии не место". Начались отмазки: "Это неосновной репозитарий и т. п.". Это всё к вопросу о нормальной терминологии. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:04 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУskyANAНичего он никуда не вбивает. Код показать? :) Ну вот в таком виде да, съедобно :) http://codearticles.ru/articles/2548 Ахаха. Открыл-таки для себя шаблон Декоратор и сразу же в рецепты занёс (Дата создания: 06.01.2015 11:03). Молодец! А что тот самокат с виртуальными методами и наследованием не занёс? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:09 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КСовременная теория репозитариев не делит репозитарии на категории: основные, неосновные или какие-то ещё. Кто определяет современную терминологию? :) Алексей КБыло сказано: "Кэшированию в репозитарии не место". Начались отмазки: "Это неосновной репозитарий и т. п.". Сразу ниже во втором посте в качестве уточнения было сказано про боевой репо 17088063 и о том, как сделать рабочий вариант. Но ты прицепился к первому посту и продолжаешь его насиловать. Твоё право Алексей КЭто всё к вопросу о нормальной терминологии. Да нормально тут всё с терминами. Есть репо для работы с данными. Есть другой репо, наследник, для работы с кешем. По сути тот же декоратор, если тебе так легче. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:10 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAАхаха. Открыл-таки для себя шаблон Декоратор и сразу же в рецепты занёс (Дата создания: 06.01.2015 11:03). Молодец! Этот шаблон был предложен вот тут 17088063 skyANAА что тот самокат с виртуальными методами и наследованием не занёс? Он очевиден :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:11 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУАлексей КБыло сказано: "Кэшированию в репозитарии не место". Начались отмазки: "Это неосновной репозитарий и т. п.". Сразу ниже во втором посте в качестве уточнения было сказано про боевой репо 17088063 и о том, как сделать рабочий вариант.Там не рабочий вариант, там так, поделие. Декораторы можно комбинировать и применять к разным репо, а с наследованием не получится :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:13 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Почитал Бындю . Пара фраз просто убила: автор не умеет работать с ОРМУбираем ORM для лучшей оптимизации - сами ORM редко делают оптимальные запросы, а сложный запрос написать на языке понятном ORM (Linq, HQL и т.п.) практически невозможно. автор заблуждаетсяУбираем весь код выборки в хранимые поцедуры - есть мнение, что таким образом SQL-код начинает работать быстрее. автор ни болта не рубит в оптимизации запросовЧто больше всего тормозит SQL-запрос? Скорее всего оператор JOIN, когда приходится объединять много таблиц и записей. Как показала практика, если в JOIN участует по миллиону строк из каждой таблицы, такой запрос работать быстро не будет никогда, даже при самых глубоких оптимизациях. автору не интересен один из наиболее эффективных приёмовЕсть еще способы с репликацией БД и чтением данных из реплик, но я не буду их рассматривать. автор рисует неправильные картины мира Вспомнилось: "Маленькая ложь рождает большое недоверие" (ц) Автор не смог нормально организовать код в репозитариях. Автор решил выделить каждый метод в отдельный класс, мотивируя это каким-то мифическим нарушением SRP. Бог ему судья. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:15 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУskyANAАхаха. Открыл-таки для себя шаблон Декоратор и сразу же в рецепты занёс (Дата создания: 06.01.2015 11:03). Молодец! Этот шаблон был предложен вот тут 17088063 Твои глупые кривляния на кого расчитаны? На тех кто не откроет ссылку, или не поймёт, что нет там никакого Декоратора? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:15 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей К, знаешь почему NoSQL тупо быстрее SQL? Там нет JOIN-ов :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:20 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAТам не рабочий вариант, там так, поделие. Да та же редька, только в профиль. Задачу решает 100%. skyANAДекораторы можно комбинировать и применять к разным репо, а с наследованием не получится :) Зачем мне их комбинировать и применять к разным репо? Моя задача откешировать метод. Не выдумывай проблемы на ровном месте :) skyANAТвои глупые кривляния на кого расчитаны? На тех кто не откроет ссылку, или не поймёт, что нет там никакого Декоратора? Ты упёрся рогом в декоратор и не желаешь смотреть на суть вопроса. Кончай жить паттернами и начни думать своей головой, а не чужой. Ты озвучил сиутацию с кешированием, я тебе дал рецепт, как сделать её на родном контроллере. Потом ты начинаешь кривляться и выдумать какие-то новые проблемы с комбинированием и разными репо. Так скоро и до освоения космоса дойдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:21 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей К, знаешь почему применяют Денормализацию для ускорения выборки? Потому как в денормализованные таблицы не нуждаются в JOIN-ах :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:21 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAАлексей К, знаешь почему NoSQL тупо быстрее SQL? Там нет JOIN-ов :) Очень сомнительное высказывание. Что с чем измеряется? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:22 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУskyANAТам не рабочий вариант, там так, поделие. Да та же редька, только в профиль. Задачу решает 100%. skyANAДекораторы можно комбинировать и применять к разным репо, а с наследованием не получится :) Зачем мне их комбинировать и применять к разным репо? Моя задача откешировать метод. Не выдумывай проблемы на ровном месте :) skyANAТвои глупые кривляния на кого расчитаны? На тех кто не откроет ссылку, или не поймёт, что нет там никакого Декоратора? Ты упёрся рогом в декоратор и не желаешь смотреть на суть вопроса. Кончай жить паттернами и начни думать своей головой, а не чужой. Ты озвучил сиутацию с кешированием, я тебе дал рецепт, как сделать её на родном контроллере. Потом ты начинаешь кривляться и выдумать какие-то новые проблемы с комбинированием и разными репо. Так скоро и до освоения космоса дойдет.Пустомеля ты. Я про то как реализовать кэширование в репозитории не вставляя в него никакие грабли, ещё в прошлом году рассказывал :) Не надо теперь делать вид, что ты предложил мне то, что мне так было нужно, а я не знал как это реализовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:24 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУskyANAАлексей К, знаешь почему NoSQL тупо быстрее SQL? Там нет JOIN-ов :) Очень сомнительное высказывание. Что с чем измеряется?Ну если мне не веришь, можно поискать более авторитетные источники. Хотя бы на Хабре: " NoSQL базы данных: понимаем суть ". ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:26 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAПустомеля ты. Я про то как реализовать кэширование в репозитории не вставляя в него никакие грабли, ещё в прошлом году рассказывал :) У меня кеширование точно так же без грабель, вынесено в отдельный кеширующий слой, которой так же легко доставать через инверсию интерфейса репозитория. Всё работает безшовно. skyANAНе надо теперь делать вид, что ты предложил мне то, что мне так было нужно, а я не знал как это реализовать. Я не делаю никому виды, я ответил на твой начальный вопрос о том, как делается кеширование за один чих. А ты начал надувать щеки. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:28 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КАвтор не смог нормально организовать код в репозитариях. Автор решил выделить каждый метод в отдельный класс, мотивируя это каким-то мифическим нарушением SRP. Бог ему судья.Понимаешь. Когда у тебя модульная архитектура, о переходе к которой пишет автор. То одному модулю нужны одни данные, второму другие, третьему... и т.д. И если поступать так, как Вы с отчётами: фигачить 100500 методов в репозиторий с сущностями, что нужны только в одном из модулей, - то нарушение SRP становится ни фига не мифическим :) И автор рассказывает как эволюционировал их код, после того, как они столкнулись с данной проблемой на практике. Когда и вы на это напоретесь, если напоретесь, то можешь изобрести что-то своё. У тебя же изобретать хорошо получается, целый сайт этому посвящён. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:31 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAМСУпропущено... Очень сомнительное высказывание. Что с чем измеряется?Ну если мне не веришь, можно поискать более авторитетные источники. Хотя бы на Хабре: " NoSQL базы данных: понимаем суть ". Ты архитектуру строишь по хабрам? Молодец, чё. P.S. У NoSQL есть свои плюсы, есть и свои минусы. Но современные реляционные СУБД могут удовлетворить даже самого требовательного знатока. Вон сколько лет мощнейшие биллинги крутятся на ораклах в билайнах, мтсах и мегафонах. И все рады. Просто нужно иметь прямые руки. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:32 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУАлексей КЭто всё к вопросу о нормальной терминологии. Да нормально тут всё с терминами. Есть репо для работы с данными. Есть другой репо, наследник, для работы с кешем. По сути тот же декоратор, если тебе так легче.Нормально, ага. Тынц Ну вот скажи: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Все эти классы можно считать репозитариями, или только какой-то один? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:34 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAАлексей К, знаешь почему NoSQL тупо быстрее SQL? Там нет JOIN-ов :)Это я понял. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:37 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУskyANAПустомеля ты. Я про то как реализовать кэширование в репозитории не вставляя в него никакие грабли, ещё в прошлом году рассказывал :) У меня кеширование точно так же без грабель, вынесено в отдельный кеширующий слой, которой так же легко доставать через инверсию интерфейса репозитория. Всё работает безшовно.Понятно что работает. Но это не лучшее решение. В реальной системе не одну сущность надо кэшировать, не только Album-ы как в твоём примере, а несколько. И что ты будешь делать? Реализовывать N наследников от N репозиториев? А декоратор для кэширования реализуется один и применяется к N репозиториям через инверсию. МСУskyANAНе надо теперь делать вид, что ты предложил мне то, что мне так было нужно, а я не знал как это реализовать. Я не делаю никому виды, я ответил на твой начальный вопрос о том, как делается кеширование за один чих. А ты начал надувать щеки.Я не надувал щёки, я вообще пиво пил. Просто намекнул, что ты запостил сюда ссылку на велосипед. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:37 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУskyANAпропущено... Ну если мне не веришь, можно поискать более авторитетные источники. Хотя бы на Хабре: " NoSQL базы данных: понимаем суть ". Ты архитектуру строишь по хабрам? Молодец, чё. P.S. У NoSQL есть свои плюсы, есть и свои минусы. Но современные реляционные СУБД могут удовлетворить даже самого требовательного знатока. Вон сколько лет мощнейшие биллинги крутятся на ораклах в билайнах, мтсах и мегафонах. И все рады. Просто нужно иметь прямые руки.Дурак ты, чё. Я не строю архитектру по хабрам, я использую его как источник информации о том, чтобы понять что "У NoSQL есть свои плюсы, есть и свои минусы" и какие. Про архитектуру "на ораклах в билайнах, мтсах и мегафонах" мне ничего не известно, они не выступают на конференциях. Зато IBM регулярно устраивает митапы. И всякие Evernote выступают на конференциях. И я не исключаю того, что "в билайнах, мтсах и мегафонах" на ораклах крутится только основное хранилище, а биллинги уже давно построены на каких-нибудь очередях и NoSQL :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:43 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAИ если поступать так, как Вы с отчётами: фигачить 100500 методов в репозиторий с сущностями, что нужны только в одном из модулей, - то нарушение SRP становится ни фига не мифическим :)Нет никаких 100500 методов в классе, если нормально следовать правилам рефакторинга, например по тому же Фаулеру. А вот если фанатично каждый метод выносить в отдельный класс, то можно напороться на слишком маленькую ответственность класса, что тоже плохо - чем больше классов, тем выше затраты на их интеграцию. Нужно искать компромисс количества методов в классе. skyANAИ автор рассказывает как эволюционировал их код, после того, как они столкнулись с данной проблемой на практике. Когда и вы на это напоретесь, если напоретесь, то можешь изобрести что-то своё.Мы тоже сталкивались с такими проблемами на практике. Все проблемы были успешно преодолены применением банального рефакторинга и разработкой принципов группирования методов в классы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:45 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Ну и плюс к прямым рукам, которые имеются (основное хранилище-то на MS SQL у нас, и ни фига не простаивает) нужны ещё не кислые бабки, чтобы построить распределённую систему "на ораклах" с их лицензиями. Вот сколько у вас серверов в кластере? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:45 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КНормально, ага. Тынц Мир паттернами не измеряется, он гораздо шире. Ты хочешь инструкцию на все случаи жизни? Готов разочаровать, такой не существует. Да и где ты увидел нарушения при использовании обычного наследования? Алексей КВсе эти классы можно считать репозитариями, или только какой-то один? Какая-то бессвязная каша. На помойку. skyANAПонятно что работает. Но это не лучшее решение. Ну знаешь ли. Лучшее или не лучшее, это не тебе судить. Оно решает озвученную тобой задачу и легко ложится в концепцию репо. skyANAВ реальной системе не одну сущность надо кэшировать, не только Album-ы как в твоём примере, а несколько. И что ты будешь делать? Реализовывать N наследников от N репозиториев? Да. Точно так же, как в случае с декоратором . И это правильно. skyANAА декоратор для кэширования реализуется один и применяется к N репозиториям через инверсию. Смотря как писать. Можно иметь один толстый кеширующий декоратор, можно его разносить по логической связи, как у меня в рецепте. Я бы лучше разносил, а не гадил в одну навозную кучу. Но в любом случае это не проблема. skyANAЯ не надувал щёки, я вообще пиво пил. Просто намекнул, что ты запостил сюда ссылку на велосипед. :) Ссылка на велосипед - те же яйца, только в профиль. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:46 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAДурак ты, чё. Параноики начали ругаться от бессилия? Забавно. skyANAЯ не строю архитектру по хабрам, я использую его как источник информации о том, чтобы понять что "У NoSQL есть свои плюсы, есть и свои минусы" и какие. Про архитектуру "на ораклах в билайнах, мтсах и мегафонах" мне ничего не известно, они не выступают на конференциях. Зато IBM регулярно устраивает митапы. И всякие Evernote выступают на конференциях. Я тебе говорю о том, что любые задачи решаются (и хорошо решаются!) на обычных реляционных БД с внятными констреинтами и прочими фичами. Большинство неофитов вроде тебя за уши притягивают NoSQL, которая нафик не уперлась. skyANAИ я не исключаю того, что "в билайнах, мтсах и мегафонах" на ораклах крутится только основное хранилище, а биллинги уже давно построены на каких-нибудь очередях и NoSQL :) Там дураков нет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:48 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КskyANAИ если поступать так, как Вы с отчётами: фигачить 100500 методов в репозиторий с сущностями, что нужны только в одном из модулей, - то нарушение SRP становится ни фига не мифическим :)Нет никаких 100500 методов в классе, если нормально следовать правилам рефакторинга, например по тому же Фаулеру. А вот если фанатично каждый метод выносить в отдельный класс, то можно напороться на слишком маленькую ответственность класса, что тоже плохо - чем больше классов, тем выше затраты на их интеграцию. Нужно искать компромисс количества методов в классе. skyANAИ автор рассказывает как эволюционировал их код, после того, как они столкнулись с данной проблемой на практике. Когда и вы на это напоретесь, если напоретесь, то можешь изобрести что-то своё.Мы тоже сталкивались с такими проблемами на практике. Все проблемы были успешно преодолены применением банального рефакторинга и разработкой принципов группирования методов в классы.Пример привести можешь? Я например в своей практике столкнулся с тем, что планировщику по крону нужно было выбирать данные биллинга и рассыылать всякие инвойсы клиентам на оплату, ремайндеры об оплате, о задолженности и т.п. Ну и весь скоп методов, что нужны были планировщику, был вынесен в ScheduleRepository, а не в BillingRepository. Ты о таком решении? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:50 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУАлексей КНормально, ага. Тынц Мир паттернами не измеряется, он гораздо шире. Ты хочешь инструкцию на все случаи жизни? Готов разочаровать, такой не существует.Ну и накой тогда все эти паттерны? МСУДа и где ты увидел нарушения при использовании обычного наследования?Да нет нарушений. Просто если базовый класс является репозитарием, то все его потомки, наверное, тоже репозитарии. МСУАлексей КВсе эти классы можно считать репозитариями, или только какой-то один? Какая-то бессвязная каша. На помойку.Неожиданно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 11:55 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAНу и весь скоп методов, что нужны были планировщику, был вынесен в ScheduleRepository, а не в BillingRepository. Ты о таком решении?Ну такое решение тоже имеет право на жизнь. У всех свои предметные области со своими особенностями. Я не смогу привести пример. Я согласен, в каких-то случаях наверняка есть смысл вынести запрос для отчёта в отдельный репозитарий, но не во всех. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:02 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAАлексей КАвтор не смог нормально организовать код в репозитариях. Автор решил выделить каждый метод в отдельный класс, мотивируя это каким-то мифическим нарушением SRP. Бог ему судья.Понимаешь. Когда у тебя модульная архитектура, о переходе к которой пишет автор. То одному модулю нужны одни данные, второму другие, третьему... и т.д.И это... Автор пишет о том, что одна БД стала в их системе тонким местом, поэтому они решили сделать распределённую систему. По сути, речь идёт о банальной оптимизации по скорости выполнения запросов к БД. Странно, что автор не упоминает возможность применения пэйджинга, как очень эффективного способа повысить производительность системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:08 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУskyANAПонятно что работает. Но это не лучшее решение. Ну знаешь ли. Лучшее или не лучшее, это не тебе судить. Оно решает озвученную тобой задачу и легко ложится в концепцию репо.Не решает. Я хочу не только в HttpRuntime.Cache кэшировать, но и в распределённый кэш Redis-а. Причём хочу комбинировать, то есть какие-то сущности складывать и туда, и туда. Какие-то только в HttpRuntime.Cache, какие-то только в Redis. Пишу два декоратора: Код: c# 1.
и Код: c# 1.
И комбинирую их через инверсию. А используя твой велосипед этого не сделать. Также мне для тех сущностей, что хранятся в MongoDB нужен Код: c# 1.
т.к. в монге нет транзакций и необходимых мне уровней блокировок. И этот декоратор я успешно комбинирую с другими. Тут ещё стоит отметить то, что в твоём примере CachedAlbumRepository наследуется от EfAlbumRepository. Это получается мне для MongoAlbumRepository надо лепить своего наследника с абсолютно таким же функционалом. Как-то не хочется мне этого совсем :) МСУskyANAВ реальной системе не одну сущность надо кэшировать, не только Album-ы как в твоём примере, а несколько. И что ты будешь делать? Реализовывать N наследников от N репозиториев? Да. Точно так же, как в случае с декоратором . И это правильно.Хоть один-то в реальном проекте уже реализовал? Нет ведь. :) МСУskyANAА декоратор для кэширования реализуется один и применяется к N репозиториям через инверсию. Смотря как писать. Можно иметь один толстый кеширующий декоратор, можно его разносить по логической связи, как у меня в рецепте. Я бы лучше разносил, а не гадил в одну навозную кучу. Но в любом случае это не проблема.Ты так ничего и не понял. Ну будет толстого кэшируещего декоратора. Будет комбинация лёгких декораторов. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:09 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУskyANAДурак ты, чё. Параноики начали ругаться от бессилия? Забавно.Да нет, просто надо было что-то ответить на "Молодец, чё". Видишь, забавно получилось :) МСУskyANAЯ не строю архитектру по хабрам, я использую его как источник информации о том, чтобы понять что "У NoSQL есть свои плюсы, есть и свои минусы" и какие. Про архитектуру "на ораклах в билайнах, мтсах и мегафонах" мне ничего не известно, они не выступают на конференциях. Зато IBM регулярно устраивает митапы. И всякие Evernote выступают на конференциях. Я тебе говорю о том, что любые задачи решаются (и хорошо решаются!) на обычных реляционных БД с внятными констреинтами и прочими фичами. Большинство неофитов вроде тебя за уши притягивают NoSQL, которая нафик не уперлась.Давай не будем скатываться в пустую болтовню о неофитах и NoSQL. Почитай статью, потом расскажешь, что там Фаулер притянул за уши. МСУskyANAИ я не исключаю того, что "в билайнах, мтсах и мегафонах" на ораклах крутится только основное хранилище, а биллинги уже давно построены на каких-нибудь очередях и NoSQL :) Там дураков нет :)Вот и я о том же :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:12 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
faustmangos, авторТакой вопрос - для чего нужна автономная работа с бд? Какой от этого прок на практике? по большому счету для самого приложения ( визуализация данных, б.л.) это вообще прозрачно откуда берутся данные оно пишется в классическом стиле техзвенки, его совершенно не должно это заботить, а вот промежуточный слой и определяет откуда брать данные, доступность связи,авто - синхронизация локала и сервиса и т.д.), датасет прерогатива промежуточного слоя, скажем так одна из возможности его построения ( хороша она или нет, все зависит от танцора) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:13 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КskyANAНу и весь скоп методов, что нужны были планировщику, был вынесен в ScheduleRepository, а не в BillingRepository. Ты о таком решении?Ну такое решение тоже имеет право на жизнь. У всех свои предметные области со своими особенностями. Я не смогу привести пример. Я согласен, в каких-то случаях наверняка есть смысл вынести запрос для отчёта в отдельный репозитарий, но не во всех.Погоди, ты же сам написал: "Мы тоже сталкивались с такими проблемами на практике. Все проблемы были успешно преодолены применением банального рефакторинга и разработкой принципов группирования методов в классы". В какие это классы, если не в другие репозитории? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:14 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... Понимаешь. Когда у тебя модульная архитектура, о переходе к которой пишет автор. То одному модулю нужны одни данные, второму другие, третьему... и т.д.И это... Автор пишет о том, что одна БД стала в их системе тонким местом, поэтому они решили сделать распределённую систему. По сути, речь идёт о банальной оптимизации по скорости выполнения запросов к БД. Странно, что автор не упоминает возможность применения пэйджинга, как очень эффективного способа повысить производительность системы.Он же не пишет о том, в чём конкретно был затык. Ты к примеру оптимизировал когда-нибудь EAV? Когда пользователи насоздают 100500 своих атрибутов для сущностей, а потом хотят по ним искать? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:18 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... Ну такое решение тоже имеет право на жизнь. У всех свои предметные области со своими особенностями. Я не смогу привести пример. Я согласен, в каких-то случаях наверняка есть смысл вынести запрос для отчёта в отдельный репозитарий, но не во всех.Погоди, ты же сам написал: "Мы тоже сталкивались с такими проблемами на практике. Все проблемы были успешно преодолены применением банального рефакторинга и разработкой принципов группирования методов в классы". В какие это классы, если не в другие репозитории?Ну да, в другие репозитарии. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:19 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... Погоди, ты же сам написал: "Мы тоже сталкивались с такими проблемами на практике. Все проблемы были успешно преодолены применением банального рефакторинга и разработкой принципов группирования методов в классы". В какие это классы, если не в другие репозитории?Ну да, в другие репозитарии.Ты уж тогда определись Алексей КНу такое решение тоже имеет право на жизнь. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:21 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... И это... Автор пишет о том, что одна БД стала в их системе тонким местом, поэтому они решили сделать распределённую систему. По сути, речь идёт о банальной оптимизации по скорости выполнения запросов к БД. Странно, что автор не упоминает возможность применения пэйджинга, как очень эффективного способа повысить производительность системы.Он же не пишет о том, в чём конкретно был затык.Таки пишет, в самом начале. И приводит это в качестве причины для изменения архитектуры. :-) авторПроблемы с масштабированием Подход описанный выше работает при решении типовых задач. Проблемы начинаются со временем, когда БД вырастает до сотен гигабайт, когда появляется много желающих считать и записать данные в БД. БД перестает справляться с потоком транзакций от всех подсистем, начинаются блокировки и задержки с откликом. Какое самое простое решение проблемы? Вертикальное масштабирование, т.е. докупание железа. Давайте купим сервер помощнее! У вертикального масштабирования, к сожалению, есть потолок роста. После покупки очередного сервера с 2 ТБ SSD-дисков вы начитаете задумываться, может что-то надо менять в архитектуре?Архитектурное желание разделить чтения и записи по разным БД имеет право на жизнь, но реализация мне не понравилась. skyANAТы к примеру оптимизировал когда-нибудь EAV? Когда пользователи насоздают 100500 своих атрибутов для сущностей, а потом хотят по ним искать?Нет, Бог миловал. Пару лет назад мне хватило терпения убедить своих коллег не городить EAV в одном из наших проектов. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:27 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... Ну да, в другие репозитарии.Ты уж тогда определись Алексей КНу такое решение тоже имеет право на жизнь.Мне кажется, что ты меня неправильно понял. Повторюсь, в каких-то случаях можно делать отдельный репозитарий под один, грубо говоря, отчёт, но не всегда. Фанатизм - это плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:29 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
вдогонку: банальное выделение класса по Фаулеру. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:30 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Где-то в степиfaustmangos, авторТакой вопрос - для чего нужна автономная работа с бд? Какой от этого прок на практике? по большому счету для самого приложения ( визуализация данных, б.л.) это вообще прозрачно откуда берутся данные оно пишется в классическом стиле техзвенки, его совершенно не должно это заботить, а вот промежуточный слой и определяет откуда брать данные, доступность связи,авто - синхронизация локала и сервиса и т.д.), датасет прерогатива промежуточного слоя , скажем так одна из возможности его построения ( хороша она или нет, все зависит от танцора)DataSet - это структура данных, используемая в качестве модели. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:33 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КГде-то в степиfaustmangos, пропущено... по большому счету для самого приложения ( визуализация данных, б.л.) это вообще прозрачно откуда берутся данные оно пишется в классическом стиле техзвенки, его совершенно не должно это заботить, а вот промежуточный слой и определяет откуда брать данные, доступность связи,авто - синхронизация локала и сервиса и т.д.), датасет прерогатива промежуточного слоя , скажем так одна из возможности его построения ( хороша она или нет, все зависит от танцора)DataSet - это структура данных, используемая в качестве модели. ну и что? от этого ее место использования не меняется, или Вы ее хотите с маслом на грид намазывать? пожалуйста - в net все возможно.. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:39 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КНу и накой тогда все эти паттерны? Так отделяй зерна от плевел. Алексей КДа нет нарушений. Просто если базовый класс является репозитарием, то все его потомки, наверное, тоже репозитарии. Ну я ж поправился во втором посте :) Речь о том, чтобы был независимый репо. А все остальные обёртки - по требованию. Алексей КНеожиданно. ? :) skyANAНе решает. Я хочу не только в HttpRuntime.Cache кэшировать, но и в распределённый кэш Redis-а. Причём хочу комбинировать, то есть какие-то сущности складывать и туда, и туда. Какие-то только в HttpRuntime.Cache, какие-то только в Redis. Ну пиши свои реализации кеш-репо, не вижу проблем. Сколько надо вариаций кешей, пиши столько оберток. И всё будет работать с базовым репо, а дальше уже по внутренней логике. skyANAЭто получается мне для MongoAlbumRepository надо лепить своего наследника с абсолютно таким же функционалом. Как-то не хочется мне этого совсем :) Ну и пусть будет с таким же функционалом, ты же его не реализуешь. Он сам приходит тебе бесплатно. Какие проблемы? Страхи? :) skyANAХоть один-то в реальном проекте уже реализовал? Нет ведь. :) Давно было, сейчас в кешировании нет надобности. Кеширование - это зло. Редко помогает избежать проблемы с производительностью, сейчас таких проблем нет. skyANAТы так ничего и не понял. Ну будет толстого кэшируещего декоратора. Будет комбинация лёгких декораторов. :) Ты так ничего и не понял. Не будет никаких декораторов, будет кеширующий репо :) skyANAДа нет, просто надо было что-то ответить на "Молодец, чё". Видишь, забавно получилось :) Ты бредишь? :) skyANAДавай не будем скатываться в пустую болтовню о неофитах и NoSQL. Почитай статью, потом расскажешь, что там Фаулер притянул за уши. Мне фиолетовы уши, меня 100% устраивают возможности нормальных СУБД, а не этого отмороженного распиаренного говна. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:39 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Где-то в степиАлексей Кпропущено... DataSet - это структура данных, используемая в качестве модели. ну и что? от этого ее место использования не меняется, или Вы ее хотите с маслом на грид намазывать? пожалуйста - в net все возможно..Ну просто дал более точную оценку происходящему. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:43 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУАлексей КНу и накой тогда все эти паттерны? Так отделяй зерна от плевел.Это работа паттерностроителей. Я за разделение труда. :-) МСУАлексей КДа нет нарушений. Просто если базовый класс является репозитарием, то все его потомки, наверное, тоже репозитарии. Ну я ж поправился во втором посте :) Речь о том, чтобы был независимый репо. А все остальные обёртки - по требованию.Да я понял, я просто пользуясь случаем к словам придираюсь. МСУАлексей КНеожиданно. ? :)Ну я привёл типовой пример. Хочу знать, какой из классов можно считать репозитарием, согласно современной теории репозитариев. Замени кэширование чем-то ещё, если не нравится, суть от этого не изменится. Есть классы: 1. EF DbContext. 2. Слой классов с логикой на базе IQueryable. 3. Слой классов с логикой на базе IEnumerable. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:48 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУskyANAДавай не будем скатываться в пустую болтовню о неофитах и NoSQL. Почитай статью, потом расскажешь, что там Фаулер притянул за уши. Мне фиолетовы уши, меня 100% устраивают возможности нормальных СУБД, а не этого отмороженного распиаренного говна.А ведь можно сериализовать объект в XML/JSON и запихать полученное в BLOB. Или это медленно? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:49 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... Ты уж тогда определись пропущено... Мне кажется, что ты меня неправильно понял. Повторюсь, в каких-то случаях можно делать отдельный репозитарий под один, грубо говоря, отчёт, но не всегда. Фанатизм - это плохо.То есть можно применять CQRS, но без фанатизма :) Кто бы спорил. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:53 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей К, тут ведь должно быть все просто и цинично, вся программа должна быть расписана на независимые модули ( если что то уеббало, то у-о в одном месте), размазывать портфельный тип данных на основное приложение чистое безумие. Ну заехал в команду Тепляков, переписал одно место, и программа прозрачно обновилась, или парень например вырос из датасетов переписал кусок - все работает бывает хуже - отменили портфельные данные все офф, и кинулась команда переписывать все приложение ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:55 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КМСУпропущено... Мне фиолетовы уши, меня 100% устраивают возможности нормальных СУБД, а не этого отмороженного распиаренного говна.А ведь можно сериализовать объект в XML/JSON и запихать полученное в BLOB. Или это медленно?Медленно. Вангую, что как только МСУ попробует EF7 с Redis-ом, так сразу распиаренное говно станет православной конфеткой ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:59 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... Мне кажется, что ты меня неправильно понял. Повторюсь, в каких-то случаях можно делать отдельный репозитарий под один, грубо говоря, отчёт, но не всегда. Фанатизм - это плохо.То есть можно применять CQRS, но без фанатизма :) Кто бы спорил.Да. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:59 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... А ведь можно сериализовать объект в XML/JSON и запихать полученное в BLOB. Или это медленно?Медленно. Вангую, что как только МСУ попробует EF7 с Redis-ом, так сразу распиаренное говно станет православной конфеткой Не исключено. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 12:59 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAViPRosViPRos, есть такая функция из 100000 строк кода, с сотнями управляющих параметров да при чем тут расписание вот в ВИПРОС несколько параметров управлющие состоянием кеша, сброса в БД и обновления, постраничный режим и отложенная загрузка и т.д. это уже комбинаторика и не одна падла пока не смогла все эти пути протестироватьнет уж подожди, расскажи почему TDD не применимо к твоему расписанию? начни с того, что ты этим словом называешь? или мы тут все глубоко интересовались твоим Випросом, что с одного слова поняли всю сложность проблемы? :) Расписание в ВИП.Производство - это есть расписание работ (в одной работе может быть занят(возможно частично) несколько процессоров (заводов, людей, машин, инструмента,..) для выполнения производственных заказов с учетом кооперации, закупок, финансирования и т.д. Построение Расписания NP полная задача. Способа построения оптимального расписания математически доказанного больше 3 процессоров не существует (воще то только на 2). Потому ты просто тупо не сможешь составить оптимальное расписание не вручную, не через твой сраный тестовый метод даже для маленького участка. Такие алгоритмы не тестируют, а доказывают. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:01 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Где-то в степиесли что то уеббало, то у-о в одном местеУтопия. Но в целом согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:02 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КЭто работа паттерностроителей. Я за разделение труда. :-) Я не против, но голову терять тоже не надо, а то превратишься в бындюзомби :) Алексей КДа я понял, я просто пользуясь случаем к словам придираюсь. Вредина! Алексей КНу я привёл типовой пример. Хочу знать, какой из классов можно считать репозитарием, согласно современной теории репозитариев. Замени кэширование чем-то ещё, если не нравится, суть от этого не изменится. Троллишь? Алексей КМСУпропущено... Мне фиолетовы уши, меня 100% устраивают возможности нормальных СУБД, а не этого отмороженного распиаренного говна.А ведь можно сериализовать объект в XML/JSON и запихать полученное в BLOB. Или это медленно? А ведь можно вообще не использовать БД, а всё запоминать в голове. Посчитаем скорость? При каждой активации нейрона его импульс достигает тысячи других нейронов и далее по цепочке. Получается следующий результат 100 миллиардов (количество нейронов) х 200 (секундная работоспособность) х 1000 (количество соединений) = скорость мозга равная 20 квадриллионам операций в секунду. Мало? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:02 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosСпособа построения оптимального расписания математически доказанного больше 3 процессоров не существует (воще то только на 2).Методом перебора можно построить любое расписание. ViPRosТакие алгоритмы не тестируют, а доказывают.Результат можно оценить по агрегированным показателям. Например, сумма чего-нибудь по всему полученному расписанию должна быть минимальна. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:07 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУАлексей КЭто работа паттерностроителей. Я за разделение труда. :-) Я не против, но голову терять тоже не надо, а то превратишься в бындюзомби :)Маловероятно. МСУАлексей КНу я привёл типовой пример. Хочу знать, какой из классов можно считать репозитарием, согласно современной теории репозитариев. Замени кэширование чем-то ещё, если не нравится, суть от этого не изменится. Троллишь? Нет, я вполне серьёзно. Мне действительно не понятно из определения, какие из этих классов можно считать репозитариями. МСУАлексей Кпропущено... А ведь можно сериализовать объект в XML/JSON и запихать полученное в BLOB. Или это медленно? А ведь можно вообще не использовать БД, а всё запоминать в голове. Посчитаем скорость? При каждой активации нейрона его импульс достигает тысячи других нейронов и далее по цепочке. Получается следующий результат 100 миллиардов (количество нейронов) х 200 (секундная работоспособность) х 1000 (количество соединений) = скорость мозга равная 20 квадриллионам операций в секунду. Мало?хз ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:10 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANAпропущено... нет уж подожди, расскажи почему TDD не применимо к твоему расписанию? начни с того, что ты этим словом называешь? или мы тут все глубоко интересовались твоим Випросом, что с одного слова поняли всю сложность проблемы? :) Расписание в ВИП.Производство - это есть расписание работ (в одной работе может быть занят(возможно частично) несколько процессоров (заводов, людей, машин, инструмента,..) для выполнения производственных заказов с учетом кооперации, закупок, финансирования и т.д. Построение Расписания NP полная задача. Способа построения оптимального расписания математически доказанного больше 3 процессоров не существует (воще то только на 2). Потому ты просто тупо не сможешь составить оптимальное расписание не вручную, не через твой сраный тестовый метод даже для маленького участка. Такие алгоритмы не тестируют, а доказывают.Ты не знаешь, что такое TDD, а споришь и психуешь. Тестовый метод не составляет расписание, а проверяет то, что на выходе твоей адской функции в 100000 строк, мы имеем то, что ожидали. Хватит уже дальше своего Випроса ничего не видеть :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:16 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAАлексей К, знаешь почему применяют Денормализацию для ускорения выборки? Потому как в денормализованные таблицы не нуждаются в JOIN-ах :) После таких перлов, понятно что ты никогда кишки ни одного ентерпрайза не видел и тем более в них сам не копался. Денормализация для ускорения выборки это последняя хрень которая взбредет в голову вменяемому разработчику БД. Полностью нормализованная база в принципе не жизнеспособна и отнють не по причине скорости выборки. Как и не жизнеспособна полностью денормализованная БД. Любая реальная база отчасти денормализована и это нормально. Основной профит NoSQL в возможности четкого распределения БД по железу, за счет чего и наблюдается основной прирост перформанса на больших объемах данных, но фишка в том что и РСУБД сегодня на это способны. И никто не запрещает юзать РСУБД так сказать в стиле NoSQL. Пример те же виндовые облака, у них там "типа NoSQL хранилище" а что в основе? Да тот же SQL Server! Если загонишь все данные в одну таблицу, получишь попу на операциях вставки, обновления, удаления и хрен че выйграешь в итоге, а если еще и транзакция прилетит - туши свет. И результаты тех же джоинов сегодня РСУБД прекрасно кэшируют. Короче все это хрень для любителей "ноу-хау" которым сто лет в обед. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:19 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КViPRosСпособа построения оптимального расписания математически доказанного больше 3 процессоров не существует (воще то только на 2).Методом перебора можно построить любое расписание. ViPRosТакие алгоритмы не тестируют, а доказывают.Результат можно оценить по агрегированным показателям. Например, сумма чего-нибудь по всему полученному расписанию должна быть минимальна. 1. нельзя - жизни твоей не хватит 2. нельзя - нет пока методов без потерь важной информации агрегирующих (не все можно агрегировать - 2 человека и есть 2 отдельных человек, как их не назови) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:20 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAViPRosпропущено... Расписание в ВИП.Производство - это есть расписание работ (в одной работе может быть занят(возможно частично) несколько процессоров (заводов, людей, машин, инструмента,..) для выполнения производственных заказов с учетом кооперации, закупок, финансирования и т.д. Построение Расписания NP полная задача. Способа построения оптимального расписания математически доказанного больше 3 процессоров не существует (воще то только на 2). Потому ты просто тупо не сможешь составить оптимальное расписание не вручную, не через твой сраный тестовый метод даже для маленького участка. Такие алгоритмы не тестируют, а доказывают.Ты не знаешь, что такое TDD, а споришь и психуешь. Тестовый метод не составляет расписание, а проверяет то, что на выходе твоей адской функции в 100000 строк, мы имеем то, что ожидали. Хватит уже дальше своего Випроса ничего не видеть :) да ладно я тебе и пытаюсь несколько раз вдолбить, что ты не можешь знать Выход и не с чем тебе сравнивать твой сраный ТДД всю жисть назывался - сдать на контрольном примере ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:22 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAАлексей К, знаешь почему применяют Денормализацию для ускорения выборки? Потому как в денормализованные таблицы не нуждаются в JOIN-ах :) После таких перлов, понятно что ты никогда кишки ни одного ентерпрайза не видел и тем более в них сам не копался. Денормализация для ускорения выборки это последняя хрень которая взбредет в голову вменяемому разработчику БД. Полностью нормализованная база в принципе не жизнеспособна и отнють не по причине скорости выборки. Как и не жизнеспособна полностью денормализованная БД. Любая реальная база отчасти денормализована и это нормально. Основной профит NoSQL в возможности четкого распределения БД по железу, за счет чего и наблюдается основной прирост перформанса на больших объемах данных, но фишка в том что и РСУБД сегодня на это способны. И никто не запрещает юзать РСУБД так сказать в стиле NoSQL. Пример те же виндовые облака, у них там "типа NoSQL хранилище" а что в основе? Да тот же SQL Server! Если загонишь все данные в одну таблицу, получишь попу на операциях вставки, обновления, удаления и хрен че выйграешь в итоге, а если еще и транзакция прилетит - туши свет. И результаты тех же джоинов сегодня РСУБД прекрасно кэшируют. Короче все это хрень для любителей "ноу-хау" которым сто лет в обед.Ахаха. Ынтерпрайза я не видел кишки. Я их писал, кишки АИС ТПС НК "Юкос". ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:24 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
а тут не может быть контрольного примера, потому что если ты умеешь построить контрольный пример, то ты уже перевел NP в P ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:24 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КМСУпропущено... Я не против, но голову терять тоже не надо, а то превратишься в бындюзомби :)Маловероятно. Тем не менее, вероятность зомбануться есть. Вон один уже схватил дозу. Ходит и редисами всех пугает Алексей КМне действительно не понятно из определения, какие из этих классов можно считать репозитариями. Ну вот, классический репо Код: c# 1. 2. 3. 4.
Алексей Кхз инфа 132% :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:24 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANAпропущено... Ты не знаешь, что такое TDD, а споришь и психуешь. Тестовый метод не составляет расписание, а проверяет то, что на выходе твоей адской функции в 100000 строк, мы имеем то, что ожидали. Хватит уже дальше своего Випроса ничего не видеть :) да ладно я тебе и пытаюсь несколько раз вдолбить, что ты не можешь знать Выход и не с чем тебе сравнивать твой сраный ТДД всю жисть назывался - сдать на контрольном примереЕщё раз, выход можно оценивать по агрегированным показателям. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:26 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КViPRosпропущено... да ладно я тебе и пытаюсь несколько раз вдолбить, что ты не можешь знать Выход и не с чем тебе сравнивать твой сраный ТДД всю жисть назывался - сдать на контрольном примереЕщё раз, выход можно оценивать по агрегированным показателям. еще раз - нет таких агрегатов, которые бы аналитически были связаны с параметрами расписания ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:27 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRos, блин, если бы можно было такие агрегаты построить, то в таких агрегатах и работали ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:28 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosАлексей Кпропущено... Методом перебора можно построить любое расписание. пропущено... Результат можно оценить по агрегированным показателям. Например, сумма чего-нибудь по всему полученному расписанию должна быть минимальна. 1. нельзя - жизни твоей не хватитПоэтому применяются всякие оптимизации и допущения, зависящие от предметной области. ViPRos2. нельзя - нет пока методов без потерь важной информации агрегирующих (не все можно агрегировать - 2 человека и есть 2 отдельных человек, как их не назови)Расписание строится не для одного конкретного человека, а для, например, цеха. Критерии при построения расписания могут быть разными, например: равномерно распределить рабочее время по всем сотрудникам - это уж можно определить максимальным отклонением от среднего? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:31 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУАлексей Кпропущено... Маловероятно. Тем не менее, вероятность зомбануться есть. Вон один уже схватил дозу. Ходит и редисами всех пугает Алексей КМне действительно не понятно из определения, какие из этих классов можно считать репозитариями. Ну вот, классический репо Код: c# 1. 2. 3. 4.
Потому что сам не знаешь! В итоге мой список непонятных определений на сегодня: 1. Repository 2. REST ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:33 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КViPRosпропущено... 1. нельзя - жизни твоей не хватитПоэтому применяются всякие оптимизации и допущения, зависящие от предметной области. ViPRos2. нельзя - нет пока методов без потерь важной информации агрегирующих (не все можно агрегировать - 2 человека и есть 2 отдельных человек, как их не назови)Расписание строится не для одного конкретного человека, а для, например, цеха. Критерии при построения расписания могут быть разными, например: равномерно распределить рабочее время по всем сотрудникам - это уж можно определить максимальным отклонением от среднего? это не критерий а фуфло ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:36 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Расписание строится для работ, цеха и т.д. исполнители (процессоры) общепринятый критерий - мин времени, мин затрат ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:38 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
при построении расписании цеха и т.д. иногда конструируются (реструктуризация мощностей), продается или ликвидируются :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:40 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
не читай всякую фигню зачем распределять работы равномерно для каких то сотрудников? что за совковая идея? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:41 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КПотому что сам не знаешь! В итоге мой список непонятных определений на сегодня: 1. Repository 2. REST REST смело выкидывай, еще в прошлом году выяснили что это сферический конь, который был нужен только что бы защитить очередную сферическую диссертацию очередному горе-архитектору. А по первому пункту наброшу... Вот у меня класс, наследуется от DataContext это репозиторий или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:41 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIАлексей КПотому что сам не знаешь! В итоге мой список непонятных определений на сегодня: 1. Repository 2. REST REST смело выкидывай, еще в прошлом году выяснили что это сферический конь, который был нужен только что бы защитить очередную сферическую диссертацию очередному горе-архитектору. А по первому пункту наброшу... Вот у меня класс, наследуется от DataContext это репозиторий или нет? да блин какая разница как эту фигню кто то назвал как то? тут нет никакой математики, нет теорем с доказательством что нужен репо ил нет и т.д. само по себе "унаследование" полное фуфло и неопределенность во всех смыслах ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:44 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
брент 51.77 а бакс 61.04, а должно быть 75 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:46 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
64.04 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:46 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosEDUARD SAPOTSKIпропущено... REST смело выкидывай, еще в прошлом году выяснили что это сферический конь, который был нужен только что бы защитить очередную сферическую диссертацию очередному горе-архитектору. А по первому пункту наброшу... Вот у меня класс, наследуется от DataContext это репозиторий или нет? да блин какая разница как эту фигню кто то назвал как то? тут нет никакой математики, нет теорем с доказательством что нужен репо ил нет и т.д. само по себе "унаследование" полное фуфло и неопределенность во всех смыслах Тсссс! Хотчется услышать мнения спецов по репозиториям ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:47 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosАлексей Кпропущено... Поэтому применяются всякие оптимизации и допущения, зависящие от предметной области. пропущено... Расписание строится не для одного конкретного человека, а для, например, цеха. Критерии при построения расписания могут быть разными, например: равномерно распределить рабочее время по всем сотрудникам - это уж можно определить максимальным отклонением от среднего? это не критерий а фуфлоЭто ты будешь объяснять сотрудникам, которые получают сдельную зарплату, откуда у работников одного цеха такая разница в доходах. ViPRosРасписание строится для работ, цеха и т.д. исполнители (процессоры) общепринятый критерий - мин времени, мин затратНу вот, а говоришь что нет. А оказывается есть. ViPRosпри построении расписании цеха и т.д. иногда конструируются (реструктуризация мощностей), продается или ликвидируются :)Не понял. ViPRosне читай всякую фигню зачем распределять работы равномерно для каких то сотрудников? что за совковая идея?Смотри выше, про сдельную зарплату. Пример из моей жизни: локомотивные бригады в РЖД. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:51 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIАлексей КПотому что сам не знаешь! В итоге мой список непонятных определений на сегодня: 1. Repository 2. REST REST смело выкидывай, еще в прошлом году выяснили что это сферический конь, который был нужен только что бы защитить очередную сферическую диссертацию очередному горе-архитектору.Нет! Я буду постоянно про него напоминать! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:53 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIViPRosпропущено... да блин какая разница как эту фигню кто то назвал как то? тут нет никакой математики, нет теорем с доказательством что нужен репо ил нет и т.д. само по себе "унаследование" полное фуфло и неопределенность во всех смыслах Тсссс! Хотчется услышать мнения спецов по репозиториям Не услышишь! Спецы есть, мнений нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:54 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей К, неправильно у вас бригады сформированы бригад вообще никогда не надо сформировывать многолетний опыт показывает, что лучше использовать пул ресурсов, как можно больших размеров сдельной оплаты не бывает, если ты уже наемник ЗП, Амортизацию, Поддержку в рабочем состоянии ты все равно будешь платить - это постоянные расходы, как бы какой козел обратного не пытался доказать так что не надо выводить 5 чек на работу для одного предназначенной, лучше оплатить простой это все ВИП,Производство доказано :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 13:56 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей К, чего не понял то? есть директива страны, к 17 году выпустить нннн количество так как и пиндосов больше вот при построении расписания выявляется что мощностей не хватает и рекомендуется построить цех, завод, (а если есть процессы построения компоновки и т.д. то запускается расписание на построение цеха завода) или реструктурировать определенные заводы (перевести оборудование в другой завод, закупить оборудование и т.д.) выработка рекомендаций по оснащению мощностями, реструктуризации (и не только) является важнейшим функционалом построителя расписания ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:02 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КПотому что сам не знаешь! В итоге мой список непонятных определений на сегодня: 1. Repository 2. REST 3. OData? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:05 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosАлексей К, неправильно у вас бригады сформированы бригад вообще никогда не надо сформировыватьПсихологи с тобой не согласны. Они рекомендуют иметь по возможности постоянные пары машинист/помощник машиниста. ViPRosмноголетний опыт показывает, что лучше использовать пул ресурсов, как можно больших размеров сдельной оплаты не бывает, если ты уже наемник ЗП, Амортизацию, Поддержку в рабочем состоянии ты все равно будешь платить - это постоянные расходы, как бы какой козел обратного не пытался доказать так что не надо выводить 5 чек на работу для одного предназначенной, лучше оплатить простой это все ВИП,Производство доказано :)Я тебе рассказываю как есть. А как должно быть мне в данном случае не интересно. А за "оплатить простой" сверх допустимого тебя в РЖД так нагнут, мало не покажется. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:07 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУАлексей КПотому что сам не знаешь! В итоге мой список непонятных определений на сегодня: 1. Repository 2. REST 3. OData? Нет, с OData всё понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:07 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей К, это надо РЖД нагнут за психологические эксперименты (помощник - надежность и приобретение компетенций, а не пара гомиков) вот как токо ВИП пойдет по отраслям РЖД и нагнем, а то придумал сцуко - динамическое ценообразование - башку бы отрубить за такую оптимизацию ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:11 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ладно, давайте обратно, а то вам такие вещи не интересны ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:12 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ТС наверное уже на пятой странице или ушел в запой или решил переквалифицироваться ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:14 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КНет, с OData всё понятно. Ну расскажи, коли всё понятно. Внимательно послушаю :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:16 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIТС наверное уже на пятой странице или ушел в запой или решил переквалифицироваться ТС походу решил потроллить общественнось, но не получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:18 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУАлексей КНет, с OData всё понятно. Ну расскажи, коли всё понятно. Внимательно послушаю :) По моему Алексей в свое время дал самое точное определение для OData: Алексей КВышла новая версия Windows: "Мы вернули кнопку 'Пуск' - это огромный шаг для всего человечества". 15 лет назад: "Вот вам СУБД с сетевым доступом к ней и SQL. Теперь клиенты могут делать произвольные запросы к БД". 10 лет назад: "Двухзвенка УГ. Клиенты не должны напрямую ходить в БД, только через сервер приложений.". Сегодня: "Сервер приложений нам мешает делать запросы к БД, но мы нашли способ всех наипать". Надо в MSDN так и написать ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:21 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosАлексей К, это надо РЖД нагнут за психологические эксперименты (помощник - надежность и приобретение компетенций, а не пара гомиков)Это называется психологическая совместимость. При крушениях в том числе проверяют правильность формирования локомотивной бригады, в том числе с учётом рекомендаций психологов. Тут всё серьёзно. ViPRosвот как токо ВИП пойдет по отраслям РЖД и нагнем, а то придумал сцуко - динамическое ценообразование - башку бы отрубить за такую оптимизациюВИП конкурент SAP? Ну ну... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:22 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей К, САП не конкурент ВИП, потому что нет никакого Сапа, а есть прога написанная внедренцами под брендом САП ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:25 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУАлексей КНет, с OData всё понятно. Ну расскажи, коли всё понятно. Внимательно послушаю :)Эдуард выше правильно процитировал, мне добавить нечего. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:26 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosАлексей К, САП не конкурент ВИП, потому что нет никакого Сапа, а есть прога написанная внедренцами под брендом САПНу приди с ЦКИ РЖД , и так прямо им скажи: "Нет никакого SAP, вас наипали. ВИП вас спасёт". Отпиши потом тут, куда тебя послали. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:29 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
*приди в ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:30 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANAпропущено... Ты не знаешь, что такое TDD, а споришь и психуешь. Тестовый метод не составляет расписание, а проверяет то, что на выходе твоей адской функции в 100000 строк, мы имеем то, что ожидали. Хватит уже дальше своего Випроса ничего не видеть :) да ладно я тебе и пытаюсь несколько раз вдолбить, что ты не можешь знать Выход и не с чем тебе сравнивать твой сраный ТДД всю жисть назывался - сдать на контрольном примереБоюсь, что мой сраный ТДД, переживёт твой сраный Випрос, хотя бы потому, что он есть суть "сдать на контрольном примере" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:34 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAViPRosпропущено... да ладно я тебе и пытаюсь несколько раз вдолбить, что ты не можешь знать Выход и не с чем тебе сравнивать твой сраный ТДД всю жисть назывался - сдать на контрольном примереБоюсь, что мой сраный ТДД, переживёт твой сраный Випрос, хотя бы потому, что он есть суть "сдать на контрольном примере" :) да блин не сможешь ты для этого случая сделать контрольный пример и таких случаев - все NP задачи все то тебе кажется что бындю уже в паттерн загнал в паттерн загнано только то что - непрерывно, монотонно, и т.д. нежизненно ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:42 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей К*приди в и туда придем, дай со своими разобраться ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 14:43 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANAпропущено... Боюсь, что мой сраный ТДД, переживёт твой сраный Випрос, хотя бы потому, что он есть суть "сдать на контрольном примере" :) да блин не сможешь ты для этого случая сделать контрольный пример и таких случаев - все NP задачи все то тебе кажется что бындю уже в паттерн загнал в паттерн загнано только то что - непрерывно, монотонно, и т.д. нежизненноЧто ты пытаешься доказать? Чисто алгебраически любую функцию на конечном множестве определений можно представить в табличном виде и в тесте проверить, что если на вход подали определённое значение, то на выходе получился ожидаемый результат из указанной таблицы. Я об этом рассуждал, ибо ты ни фиге же не рассказал, что такое это твоё расписание :) Также чисто алгебраически любую функцию можно представить в виде композиции циклов. Разбей свои 100000 строк на такую композицию, протестируй отдельные куски. Ты можешь конечно кричать, что и так ничего не выйдет. Ок. Не всё покрывается тестами. Но другие алгоритмы, модули, места, слои, и т.п. покрываются. Что не так-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:01 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAЧто не так-то?Всё не так! (ц) ViPRos ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:05 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosАлексей К*приди в и туда придем, дай со своими разобратьсяГлавное, чтобы смогли оттуда выйти. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:07 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КskyANAЧто не так-то?Всё не так! (ц) ViPRos прально я заметил уже однажды что с ним что то не так что то у него ментально от немца или робота сидит :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:11 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAЧисто алгебраически любую функцию на конечном множестве определений можно представить в табличном виде и в тесте проверить, что если на вход подали определённое значение, то на выходе получился ожидаемый результат из указанной таблицы. Я об этом рассуждал, ибо ты ни фиге же не рассказал, что такое это твоё расписание :) Также чисто алгебраически любую функцию можно представить в виде композиции циклов. Разбей свои 100000 строк на такую композицию, протестируй отдельные куски. Ты можешь конечно кричать, что и так ничего не выйдет. Ок. Не всё покрывается тестами. Но другие алгоритмы, модули, места, слои, и т.п. покрываются. Что не так-то? Ясен пень не так. Возьми любой стохастический процесс и все твои выкладки идут лесом. Самый простой пример - параметр функции является результатом вычисления той же функции. Приплыли? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:14 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosчто то у него ментально от немца или робота сидит :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:15 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosАлексей Кпропущено... Всё не так! (ц) ViPRos прально я заметил уже однажды что с ним что то не так что то у него ментально от немца или робота сидит :)Чепецкий Механический Завод у меня в родном городе. Мутировал я. На уровень выше вас стал, кусков мяса ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:16 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAЧисто алгебраически любую функцию на конечном множестве определений можно представить в табличном виде и в тесте проверить, что если на вход подали определённое значение, то на выходе получился ожидаемый результат из указанной таблицы. Я об этом рассуждал, ибо ты ни фиге же не рассказал, что такое это твоё расписание :) Также чисто алгебраически любую функцию можно представить в виде композиции циклов. Разбей свои 100000 строк на такую композицию, протестируй отдельные куски. Ты можешь конечно кричать, что и так ничего не выйдет. Ок. Не всё покрывается тестами. Но другие алгоритмы, модули, места, слои, и т.п. покрываются. Что не так-то? Ясен пень не так. Возьми любой стохастический процесс и все твои выкладки идут лесом. Самый простой пример - параметр функции является результатом вычисления той же функции. Приплыли?И? Саму функцию почему при этом нельзя покрыть тестом? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:18 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, да я не обидеть просто почему то ты думаешь что на все вопросы есть ответы нет - есть ответы только на очень махонький класс задач - я же говорил - непрерывность монотонность и т.д. оооочень сильные ограничения на этот класс зачастую даже невозможно в аналитическом или даже табличном виде задать функцию, которую надо оптимизировать ты просто почитай допустим про динамическое программирование (это самое простое) бельмана ваще почитай матпрограммирование ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:20 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANA, да я не обидеть просто почему то ты думаешь что на все вопросы есть ответы нет - есть ответы только на очень махонький класс задач - я же говорил - непрерывность монотонность и т.д. оооочень сильные ограничения на этот класс зачастую даже невозможно в аналитическом или даже табличном виде задать функцию, которую надо оптимизировать ты просто почитай допустим про динамическое программирование (это самое простое) бельмана ваще почитай матпрограммированиеТы ошибаешься, я так не думаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:21 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAEDUARD SAPOTSKIпропущено... Ясен пень не так. Возьми любой стохастический процесс и все твои выкладки идут лесом. Самый простой пример - параметр функции является результатом вычисления той же функции. Приплыли?И? Саму функцию почему при этом нельзя покрыть тестом? :) я что это даст? допустим все 10000 циклов правильные но это не означает что прога выдает оптимальный результат, он может быть даже недопустимым надо доказать алгоритм, что его работа приводит к оптимуму (за приемлемое время) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:23 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANAпропущено... И? Саму функцию почему при этом нельзя покрыть тестом? :) я что это даст? допустим все 10000 циклов правильные но это не означает что прога выдает оптимальный результат, он может быть даже недопустимым надо доказать алгоритм, что его работа приводит к оптимуму (за приемлемое время)Хотя бы это даст ускорение в разработке. Потому как перепроверять 10000 циклов ручками будет ну гораздо дольше. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:26 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAViPRosпропущено... я что это даст? допустим все 10000 циклов правильные но это не означает что прога выдает оптимальный результат, он может быть даже недопустимым надо доказать алгоритм, что его работа приводит к оптимуму (за приемлемое время)Хотя бы это даст ускорение в разработке. Потому как перепроверять 10000 циклов ручками будет ну гораздо дольше.Ну и запустив 10000 на реальных данных, мы увидим, что и на них все они работают верно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:27 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAСаму функцию почему при этом нельзя покрыть тестом? :) Каким хреном? Если бы все так просто было, погоду на тысячи лет вперед могли бы предсказать с точностью до доли градуса, а реально можем предсказать с высокой точностью на 3 дня! И для этого надо не кластер из десятка серверов а пара датацентров. Не задумывался почему это так? Все функции синусами и гиперболами не ограничиваются. Любая нелинейная функция это уже косяк в тестировании, а бывают и "охерительно нелинейные" функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:28 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAСаму функцию почему при этом нельзя покрыть тестом? :) Каким хреном? Если бы все так просто было, погоду на тысячи лет вперед могли бы предсказать с точностью до доли градуса, а реально можем предсказать с высокой точностью на 3 дня! И для этого надо не кластер из десятка серверов а пара датацентров. Не задумывался почему это так? Все функции синусами и гиперболами не ограничиваются. Любая нелинейная функция это уже косяк в тестировании, а бывают и "охерительно нелинейные" функции.Хорошо. Давай остановимся на взаимно-однозначных функциях. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:29 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Вообще конечно забавно получается. Мы у себя не применяем TDD, потому как погоду нельзя предсказать. Эдуард, ты на коленке хранимки проверяешь. О каких таких стохастических процессах речь? Куда тебя понесло? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:31 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, ну чем спорить возьми 5 станков и 50 работ попробуй построить контрольный пример ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:32 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANA, ну чем спорить возьми 5 станков и 50 работ попробуй построить контрольный примерС чего ты взял, что я тебе не верю? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:33 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANA, ну чем спорить возьми 5 станков и 50 работ попробуй построить контрольный примерАгрегированные показатели результата блеат! В третий раз уже... Ну или как минимум, чтобы ошибку не выдавало, уже хорошо... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:34 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, проверить можно то, что счетно (и то границы счетности может быть великим гемором) или есть более мощный алгоритм, чем тестируемый но в таком случае нечего и тестировать, раз уже есть алгоритм ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:35 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КViPRosskyANA, ну чем спорить возьми 5 станков и 50 работ попробуй построить контрольный примерАгрегированные показатели результата блеат! В третий раз уже... Ну или как минимум, чтобы ошибку не выдавало, уже хорошо... Алексей невозможно агрегировать Агрегация - в строгом смысле имеется ввиду алгоритм синтеза Агрегация предполагает функцию однозначной декомпозиции Если мы можем построить агрегат, значит м ы тем самым редуцируем задачу, сводим ее к другой задаче с меньшей размерностью в дискретике это почти никогда невозможно ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:39 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANA, проверить можно то, что счетно (и то границы счетности может быть великим гемором) или есть более мощный алгоритм, чем тестируемый но в таком случае нечего и тестировать, раз уже есть алгоритмЧёрт, счётно множество бесконечно, а я тебе вообще про конечное ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:40 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAЭдуард, ты на коленке хранимки проверяешь. О каких таких стохастических процессах речь? Куда тебя понесло? :) Тебя в твою завышенную самооценку уже на раз тыкали, так очередной раз тыкнут, ты сразу начинаешь на личности перескакивать! Яркий признак говнистости, извини, но как есть так есть. ЗЫ Свою первую рабочую систему прогнозирования написал на матлабе в 2004-м, тогда уже юзал кучу статистических методов и нейросети. В Зеленограде в те времена дельфи хоть освоили? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:42 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
пойми простую вещ в таких задачах ищется ОТВЕТ (допустим сколько лет надо что бы все станки раша производила сама) и если ты каким то образом уже ЗНАЕШЬ что ТРИ ГОДА, то и не надо никакой задачи решать т.е. в таких задачах, контрольный пример и есть РЕШЕНИЕ ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:42 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKI, завышенная самооценка - хорошая черта, если работаешь над собой, а не только самооцениваешься ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:47 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAЭдуард, ты на коленке хранимки проверяешь. О каких таких стохастических процессах речь? Куда тебя понесло? :) Тебя в твою завышенную самооценку уже на раз тыкали, так очередной раз тыкнут, ты сразу начинаешь на личности перескакивать! Яркий признак говнистости, извини, но как есть так есть. ЗЫ Свою первую рабочую систему прогнозирования написал на матлабе в 2004-м, тогда уже юзал кучу статистических методов и нейросети. В Зеленограде в те времена дельфи хоть освоили? Я тебе указал на то, что тебя не в ту степь понесло. Чётко же обозначил условия. А ты про стохастические процессы начал. Вышел за рамки условий. Очень конструктивно. Особенно учитывая тот факт, что когда тебе что-то не нравится, то ты просишь показать некий реальный бизнес-процесс. :) А в Зеленограде в 2004-м я уже второй год пилил кишки Ынтерпрайза для Юкоса на PL\SQL. Дельфи к тому моменту был уже пройденный этап. Да и матлаб остался в институте. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:48 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosпойми простую вещ в таких задачах ищется ОТВЕТ (допустим сколько лет надо что бы все станки раша производила сама) и если ты каким то образом уже ЗНАЕШЬ что ТРИ ГОДА, то и не надо никакой задачи решать т.е. в таких задачах, контрольный пример и есть РЕШЕНИЕДа ладно? :) Функция, представленная в табличном виде и есть функция, удивительно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:50 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, конечно - это набор допустимых решений ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:52 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAЯ тебе указал на то, что тебя не в ту степь понесло. Как раз и ViPRos и я говорим про одну и ту же степь, перечитай еще раз, я врядли лучше придумаю как объяснить: ViPRosв таких задачах ищется ОТВЕТ (допустим сколько лет надо что бы все станки раша производила сама) и если ты каким то образом уже ЗНАЕШЬ что ТРИ ГОДА, то и не надо никакой задачи решать т.е. в таких задачах, контрольный пример и есть РЕШЕНИЕ ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:52 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Но речь то не об этом. У тебя есть некий алгоритм, например распознования голоса. И тебе его надо проверить. Ты набиваешь конктрольную таблицу. В колонке величин из области определения у тебя звуковые дорожки вида: "маша мыла раму". В колонке величин из области значений соответсвующий текст. Запускаешь тест первый раз, он показывает что твой алгоритм работает правильно в 10% случаев. Допиливаешь, запускаешь тест... 40% Допиливаешь, запускаешь тест... 60% Допиливаешь, запускаешь тест... 100% В продакшн. Тебе не надо каждый раз самому по сто раз произносить контрольные фразы и сверять полученный результат. Потом хомячки начинают пользоваться, плеваться, уточнять результаты, ты собираешь статистику, складываешь на диск и за её счёт расширяешь таблицу значений. И вот на очередной конференции Яндекс презентует свой распознаватель речи в реальном времени выложенный в общий доступ :) Ты можешь хоть усраться, доказывая, что речь на 100% распознать нельзя. Доказывая, что таблицу значений не соберёшь, что памяти не хватит. Яндексу плевать, он рубит бабло с хомячков. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:58 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosskyANA, конечно - это набор допустимых решенийТы не понял, это был стёб :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 15:59 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAЯ тебе указал на то, что тебя не в ту степь понесло. Как раз и ViPRos и я говорим про одну и ту же степь, перечитай еще раз, я врядли лучше придумаю как объяснить: ViPRosв таких задачах ищется ОТВЕТ (допустим сколько лет надо что бы все станки раша производила сама) и если ты каким то образом уже ЗНАЕШЬ что ТРИ ГОДА, то и не надо никакой задачи решать т.е. в таких задачах, контрольный пример и есть РЕШЕНИЕЯ это всё прекрасно понимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 16:00 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, ну с народом это катит, я сильно зол на себя , что пропустил, недооценил момент появления рынка человечков там можно срубить бабло, написав типа - хор пердежа новой гвинеи, или самые распространенные узоры на х а тут надо блин трахаться с ржд и т.д. говноструктурами ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 16:04 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAНо речь то не об этом. У тебя есть некий алгоритм, например распознования голоса. И тебе его надо проверить. Ты набиваешь конктрольную таблицу. В колонке величин из области определения у тебя звуковые дорожки вида: "маша мыла раму". В колонке величин из области значений соответсвующий текст. Запускаешь тест первый раз, он показывает что твой алгоритм работает правильно в 10% случаев. Допиливаешь, запускаешь тест... 40% Допиливаешь, запускаешь тест... 60% Допиливаешь, запускаешь тест... 100% В продакшн. Тебе не надо каждый раз самому по сто раз произносить контрольные фразы и сверять полученный результат. Потом хомячки начинают пользоваться, плеваться, уточнять результаты, ты собираешь статистику, складываешь на диск и за её счёт расширяешь таблицу значений. И вот на очередной конференции Яндекс презентует свой распознаватель речи в реальном времени выложенный в общий доступ :) Ты можешь хоть усраться, доказывая, что речь на 100% распознать нельзя. Доказывая, что таблицу значений не соберёшь, что памяти не хватит. Яндексу плевать, он рубит бабло с хомячков. Уффф... как все запущено.... Ну вот смотри, зашел 2-го декабря на форум некто Eduard Sapotski и сказал: EDUARD SAPOTSKIКуранты пробьют под 55, летом отдыхать поедите под 75 А сегодня смотрим и что видим? 56.24 на 01.01.2015 Не плохо функция отработала? Вопрос в другом, а нужен этот результат сегодня? И можно ли эту функцию использовать сегодня что бы сделать прогноз на завтра? И как в таких задачах поможет тестирование? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 16:15 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAНо речь то не об этом. У тебя есть некий алгоритм, например распознования голоса. И тебе его надо проверить. Ты набиваешь конктрольную таблицу. В колонке величин из области определения у тебя звуковые дорожки вида: "маша мыла раму". В колонке величин из области значений соответсвующий текст. Запускаешь тест первый раз, он показывает что твой алгоритм работает правильно в 10% случаев. Допиливаешь, запускаешь тест... 40% Допиливаешь, запускаешь тест... 60% Допиливаешь, запускаешь тест... 100% В продакшн. Тебе не надо каждый раз самому по сто раз произносить контрольные фразы и сверять полученный результат. Потом хомячки начинают пользоваться, плеваться, уточнять результаты, ты собираешь статистику, складываешь на диск и за её счёт расширяешь таблицу значений. И вот на очередной конференции Яндекс презентует свой распознаватель речи в реальном времени выложенный в общий доступ :) Ты можешь хоть усраться, доказывая, что речь на 100% распознать нельзя. Доказывая, что таблицу значений не соберёшь, что памяти не хватит. Яндексу плевать, он рубит бабло с хомячков. Уффф... как все запущено.... Ну вот смотри, зашел 2-го декабря на форум некто Eduard Sapotski и сказал: EDUARD SAPOTSKIКуранты пробьют под 55, летом отдыхать поедите под 75 А сегодня смотрим и что видим? 56.24 на 01.01.2015 Не плохо функция отработала? Вопрос в другом, а нужен этот результат сегодня? И можно ли эту функцию использовать сегодня что бы сделать прогноз на завтра? И как в таких задачах поможет тестирование?Давай всё-таки будем последовательными. И не перескакивать с одного на другое. А то действительно дискуссия уже запущена :) В моём примере (случае) тестирование помогло, как считаешь? И почему так считаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 16:52 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANA, посмотри это на досуге для общего развития и подумай о тестировании: ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 16:54 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKI, на мои вопросы ответь, потом к твоим перейдём. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 16:55 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAна мои вопросы ответь, потом к твоим перейдём. На какие из них? То что ты описал тестирование при распозновании? Да, все так и работает, делают "функию", методами тестирования на выборках с известными результатами подгоняют результат к приемлемой погрешности, отдают в продакшн. Так же работают и самые примитивные системы прогнозирования. Но есть широчайший круг задач, где такие методы не приемлемы, например когда нельзя с помощью неких коррелляций, аппроксимаций и т.д. заведомо получить определенную погрешность. Посмотри видео, на мой взгляд отличный пример, сам алгоритм игры прост до безобразия, что там тестировать? Его любой школьник с мозгами реализует. А вот исход работы такого алгоритма неизвестен на большой плоскости и ни какие выборки и тестовые массивы не помогут доказать что вся игра прошла "правильно"! Здесь можно только сделать таблицу сопоставлений, но каких она будет размеров и какой тогда смысл в самой функции? Еще рядовой пример - асимметричное шифрование. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 17:14 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
ViPRosАлексей Кпропущено... Агрегированные показатели результата блеат! В третий раз уже... Ну или как минимум, чтобы ошибку не выдавало, уже хорошо... Алексей невозможно агрегировать Агрегация - в строгом смысле имеется ввиду алгоритм синтеза Агрегация предполагает функцию однозначной декомпозиции Если мы можем построить агрегат, значит м ы тем самым редуцируем задачу, сводим ее к другой задаче с меньшей размерностью в дискретике это почти никогда невозможноПро математическую статистику у вас там знают? Посмотри как в ней выборки анализируют. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 17:26 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANA, посмотри это на досуге для общего развития и подумай о тестировании: ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 17:37 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КEDUARD SAPOTSKIskyANA, посмотри это на досуге для общего развития и подумай о тестировании: ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 17:54 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КВ реализации этой задачи есть методы, рассчитывающие рождение и умирание в зависимости от соседей. Это всяко можно протестировать. Зачем? Ну будет там три строчки если рядом соседи такие-то то родиться нужно или помереть и ты это тестировать будешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 17:56 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КНе пойму в чём подвох. :-) Смотри, есть функция, на вход которой ты даешь матрицу, 10^6 x 10^6 в клеточках 0 или 1 и даешь кол-во ходов, например тоже 10^6, на выходе получаешь отработанную матрицу. Как такую функцию будешь тестировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 18:01 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
про 10^6 погорячился, пусть хоть 10^4... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 18:03 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIАлексей КВ реализации этой задачи есть методы, рассчитывающие рождение и умирание в зависимости от соседей. Это всяко можно протестировать. Зачем? Ну будет там три строчки если рядом соседи такие-то то родиться нужно или помереть и ты это тестировать будешь? Некоторые и не такое тестируют. EDUARD SAPOTSKIАлексей КНе пойму в чём подвох. :-) Смотри, есть функция, на вход которой ты даешь матрицу, 10^6 x 10^6 в клеточках 0 или 1 и даешь кол-во ходов, например тоже 10^6, на выходе получаешь отработанную матрицу. Как такую функцию будешь тестировать?Я на вход подам матрицу 10x10, содержащую все типичные случаи. Тестирования на нескольких ходах, думаю, будет достаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 18:06 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANA, посмотри это на досуге для общего развития и подумай о тестировании Брат бындю? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 18:07 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
МСУEDUARD SAPOTSKIskyANA, посмотри это на досуге для общего развития и подумай о тестировании Брат бындю? Хз ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 18:10 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAна мои вопросы ответь, потом к твоим перейдём. На какие из них? То что ты описал тестирование при распозновании? Да, все так и работает, делают "функию", методами тестирования на выборках с известными результатами подгоняют результат к приемлемой погрешности, отдают в продакшн. Так же работают и самые примитивные системы прогнозирования. Но есть широчайший круг задач, где такие методы не приемлемы, например когда нельзя с помощью неких коррелляций, аппроксимаций и т.д. заведомо получить определенную погрешность. Посмотри видео, на мой взгляд отличный пример, сам алгоритм игры прост до безобразия, что там тестировать? Его любой школьник с мозгами реализует. А вот исход работы такого алгоритма неизвестен на большой плоскости и ни какие выборки и тестовые массивы не помогут доказать что вся игра прошла "правильно"! Здесь можно только сделать таблицу сопоставлений, но каких она будет размеров и какой тогда смысл в самой функции? Еще рядовой пример - асимметричное шифрование.Я где-то говорил, что все задачи решаются подходом TDD? Что абсолютно всё можно покрыть тестами? Ты в чём меня пытаешься убедить? :) В примере с распознованием мы имеем дело со взаимно-однозначной функцией. Фраза "маша мыла раму" взаимно-однозначно соответсвует тексту "маша мыла раму". И это, именно это прекрасно вписывается в рамки TDD. Ты же пытаешься мне доказать, что я не прав, потому как есть в природе элемент случайности. Ну глупость же :) Ты заказчику тоже так объясняешь ошибки расчётов своих программ при правильно введённых данных? "Ваш бизнес-процесс попахивает стохастичностью" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 18:15 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Алексей КЯ на вход подам матрицу 10x10, содержащую все типичные случаи. Ага 10х10 это всего 2^100 комбинаций, на листике прикинешь? Суть в том, что в этой задаче и тестировать по сути нечего, тот мизер который можем протестировать нам не интересен, а то что интересно то и является решением, засим тестирование бесполезно, о как ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 18:18 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAЯ где-то говорил, что все задачи решаются подходом TDD? Что абсолютно всё можно покрыть тестами? Ты в чём меня пытаешься убедить? :) В примере с распознованием мы имеем дело со взаимно-однозначной функцией. Фраза "маша мыла раму" взаимно-однозначно соответсвует тексту "маша мыла раму". И это, именно это прекрасно вписывается в рамки TDD. Ты же пытаешься мне доказать, что я не прав, потому как есть в природе элемент случайности. Ну глупость же :) Ты заказчику тоже так объясняешь ошибки расчётов своих программ при правильно введённых данных? "Ваш бизнес-процесс попахивает стохастичностью" :) Ну начинается skyANAЧисто алгебраически любую функцию на конечном множестве определений можно представить в табличном виде и в тесте проверить, что если на вход подали определённое значение, то на выходе получился ожидаемый результат из указанной таблицы. Также чисто алгебраически любую функцию можно представить в виде композиции циклов. Разбей свои 100000 строк на такую композицию, протестируй отдельные куски. Данные утверждения справедливы далеко не для всех классов задач, вот о чем спич ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 18:27 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIДанные утверждения справедливы далеко не для всех классов задач, вот о чем спич Согласен. Но игра жизни плохой пример :) Game of Life: TDD style in Java ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 18:31 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIАлексей КЯ на вход подам матрицу 10x10, содержащую все типичные случаи. Ага 10х10 это всего 2^100 комбинаций, на листике прикинешь?Твоё видео я посмотрел. Теперь ты посмотри моё, для общего развития C++ TDD Kata: Conway's Game of Life ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 18:36 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAЯ где-то говорил, что все задачи решаются подходом TDD? Что абсолютно всё можно покрыть тестами? Ты в чём меня пытаешься убедить? :) В примере с распознованием мы имеем дело со взаимно-однозначной функцией. Фраза "маша мыла раму" взаимно-однозначно соответсвует тексту "маша мыла раму". И это, именно это прекрасно вписывается в рамки TDD. Ты же пытаешься мне доказать, что я не прав, потому как есть в природе элемент случайности. Ну глупость же :) Ты заказчику тоже так объясняешь ошибки расчётов своих программ при правильно введённых данных? "Ваш бизнес-процесс попахивает стохастичностью" :) Ну начинается skyANAЧисто алгебраически любую функцию на конечном множестве определений можно представить в табличном виде и в тесте проверить, что если на вход подали определённое значение, то на выходе получился ожидаемый результат из указанной таблицы. Также чисто алгебраически любую функцию можно представить в виде композиции циклов. Разбей свои 100000 строк на такую композицию, протестируй отдельные куски. Данные утверждения справедливы далеко не для всех классов задач, вот о чем спич Чёрт, не прочитал, что последняя фраза относится к контексту не из первой цитаты. Не согласен! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 18:46 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
Вернее так, если есть элемент случайности и сегодня функция от единицы возвращает пять, а завтра двадцать пять, то это выходит за рамки моего утверждения. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 18:49 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIАлексей КЯ на вход подам матрицу 10x10, содержащую все типичные случаи. Ага 10х10 это всего 2^100 комбинаций, на листике прикинешь? Суть в том, что в этой задаче и тестировать по сути нечего, тот мизер который можем протестировать нам не интересен, а то что интересно то и является решением, засим тестирование бесполезно, о как Не нужно путать тестирование с промышленной эксплуатацией! Задача тестирования - выявлять ошибки в программе. В нашем случае 10х10, вроде как, для этого достаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 19:09 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIСуть в том, что в этой задаче и тестировать по сути нечего, тот мизер который можем протестировать нам не интересенИ это не так. Благодаря тесту мы может разрабатывать и отлаживать фрагмент программы без написания других её частей, например UI. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 19:13 |
|
Применение автономной работы с бд на практике
|
|||
---|---|---|---|
#18+
skyANAВернее так, если есть элемент случайности и сегодня функция от единицы возвращает пять, а завтра двадцать пять, то это выходит за рамки моего утверждения. Ух, молодец! Ладно, всех с Рождеством! Главное понимать, что все что мы сегодня знаем, это по сути такая херня блин... Здрав будите бояре! Ху... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2015, 20:15 |
|
|
start [/forum/topic.php?all=1&fid=17&tid=1349647]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
153ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
244ms |
get tp. blocked users: |
2ms |
others: | 247ms |
total: | 689ms |
0 / 0 |