tag:blogger.com,1999:blog-458002489272917533.post7240196917588300337..comments2024-02-14T14:07:38.890+05:00Comments on Блог Александра Бындю: Domain-Driven Design: Продажа идеиAlexander Byndyuhttp://www.blogger.com/profile/14185486842573956085noreply@blogger.comBlogger30125tag:blogger.com,1999:blog-458002489272917533.post-73967313038604434712014-08-13T09:45:28.465+06:002014-08-13T09:45:28.465+06:00Александр,
> ORM как известно в основном генер...Александр,<br /><br />> ORM как известно в основном генерит sql-код динамически а не работает с хранимыми процедурами<br /><br />ORM и с хранимыми процедурами может работать и результаты SQL кода маппить в объекты.<br /><br />> Вы наверное ничего не слышали о новом типе проекта в Visual Studio 2010<br /><br />Слышали и даже пользуемся :) Всё-равно с мощностью рефакторинга C# кода это не Alexander Byndyuhttp://www.byndyu.ru/noreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-18368111484831291652014-08-12T19:50:59.594+06:002014-08-12T19:50:59.594+06:00Алгебра любого ОРМ априори меньше алгебры нативног...Алгебра любого ОРМ априори меньше алгебры нативного SQL конкретной платформы. Это значит что найдется такая выборка (запрос), осуществить который средствами ОРМ будет невозможно при сравнимой производительности с нативным SQL.<br /><br /><br />Из вышеуказанного вытекает, что строгий отказ от нативного SQL в сторону более высокоуровневого инструмента должен быть обоснован гораздо сильнее, чем, Дмитрий Мартовойnoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-10890045724067713412013-05-13T10:59:23.853+06:002013-05-13T10:59:23.853+06:00"На счет ограничения прав, можно в клиентском..."На счет ограничения прав, можно в клиентском коде указать того же пользователя с ограниченными правами. Если вы будете использовать ORM, то он будет подключаться с такими же ограниченными правами."<br /><br />Написав такое, я думаю что наверное Вы меня не поняли. Потому что именно так у меня все и организовано. Только вот строка подключения генерится автоматически на основании Александрnoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-4589360161671400282013-05-13T00:56:32.816+06:002013-05-13T00:56:32.816+06:00На счет ограничения прав, можно в клиентском коде ...На счет ограничения прав, можно в клиентском коде указать того же пользователя с ограниченными правами. Если вы будете использовать ORM, то он будет подключаться с такими же ограниченными правами.<br /><br />На счет сервисов советую для начала полистать:<br /><br />http://www.soapatterns.org/<br /><br />и прочитать http://www.manning.com/rotem/Alexander Byndyuhttp://www.facebook.com/alexander.byndyunoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-77543770695234213202013-05-13T00:50:19.683+06:002013-05-13T00:50:19.683+06:00"Если сильно нужно строку подключения указыва..."Если сильно нужно строку подключения указывать прямо в клиентском коде, то можно сделать шифрованную секцию в файле конфигурации."<br /><br />Но эта шифрованная секция как то расшифровывается приложением? Так же ведь?! А раз так, то и мы можем расшифровать ее (как я уже говорил ILSpy, Reflector рулят).<br /><br />"Опять же, вот у вас есть клиентское приложение и БД, в которой Александрnoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-8666049673692176392013-05-12T20:27:05.508+06:002013-05-12T20:27:05.508+06:00Плохого в этом ничего, но возникают несколько проб...Плохого в этом ничего, но возникают несколько проблем:<br /><br />1. SQL-код сложно рефакторить. Нет инструментов, которые хотя бы приближаются к работе с C# кодом в VS+R#<br /><br />2. Сложно тестировать, фактически невозможно писать модульные тесты<br /><br />3. Дублирование логики в SQL и C# коде, если писать бизнес-логику и там и там.<br /><br />Если эти проблемы снять, то будет не важно, гдеAlexander Byndyuhttp://www.facebook.com/alexander.byndyunoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-1339065927753946232013-01-16T17:15:56.863+06:002013-01-16T17:15:56.863+06:00http://code.google.com/p/ndddsample/ или http://...http://code.google.com/p/ndddsample/ или http://dddsamplenet.codeplex.com/ на C# или http://dddsample.sourceforge.net/download.html на Java -- примеры из книги Эванса.Артёмnoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-49244275346461694812012-08-01T10:34:16.469+06:002012-08-01T10:34:16.469+06:00Да тут проблема то в другом. То что поддержкой зан...Да тут проблема то в другом. То что поддержкой занимаюсь я. и все поддержка идет с черепашей скоростью. Artem Kovalevnoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-15857578884094529472012-07-29T12:39:15.956+06:002012-07-29T12:39:15.956+06:00Есть программы, которые никогда не будут написаны ...Есть программы, которые никогда не будут написаны хорошо. Это просто их судьба.Evgenynoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-70229379267525991972012-07-26T23:32:31.728+06:002012-07-26T23:32:31.728+06:00Интересные истории), учту на заметку способы. Спа...Интересные истории), учту на заметку способы. Спасибо за книжку. как раз закончил книгу <br />Refactoring: Improving the Design of Existing Code, думаю будет достойное продолжение основам рефакторингаArtem Kovalevnoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-44008300825991290462012-07-26T23:18:07.632+06:002012-07-26T23:18:07.632+06:00 Кроме книжки у меня было два опыта работы с legac... Кроме книжки у меня было два опыта работы с legacy code.<br /><br />В первом случаей у меня была программа обработки радиосигналов, её писали несколько человек которые потом поспешно уволились =). Писали 2-3 года, мне следовало внести некоторые изменения, которые бы сделали программу более гибкой. В программе было около 10-15 тыс. строчек. сишного кода.<br /><br />Я использовал следующий подход.Денис Крешихинhttp://www.facebook.com/profile.php?id=100001771361909noreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-68816471943368862152012-07-26T22:43:03.674+06:002012-07-26T22:43:03.674+06:00Есть классическая книга на этот счёт, очень совету...Есть классическая книга на этот счёт, очень советую Michael Feathers' Working Effectively with Legacy CodeДенис Крешихинhttp://www.facebook.com/profile.php?id=100001771361909noreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-76958789574174007892012-07-26T22:37:15.356+06:002012-07-26T22:37:15.356+06:00Не подскажете, если не сложно, опыта у меня нет ку...Не подскажете, если не сложно, опыта у меня нет куда копать не нашел. <br />Есть в нашей компании программа работают люди на нем уже лет 6-7. "Сопровождаю" его я , и это ад. Так как , Бизнес-Логика разрознена по всей программе, она есть в хранимых процедурах, в GUI приложение(самое больше количество) , в отдельных классах(кто то видимо пытался вынести). Ко всему этому добавляется Artem Kovalevnoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-13074871168534277662012-07-26T22:36:48.612+06:002012-07-26T22:36:48.612+06:00Не подскажете, если не сложно, опыта у меня нет ку...Не подскажете, если не сложно, опыта у меня нет куда копать не нашел. <br /><br />Есть в нашей компании программа работают люди на нем уже лет 6-7. "Сопровождаю" его я , и это ад. Так как , Бизнес-Логика разрознена по всей программе, она есть в хранимых процедурах, в GUI приложение(самое больше количество) , в отдельных классах(кто то видимо пытался вынести). Ко всему этому добавляется Artem Kovalevnoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-20526824981476986662012-04-03T13:44:21.299+06:002012-04-03T13:44:21.299+06:00>А то, "смешались в кучу кони, люди" ...>А то, "смешались в кучу кони, люди" то тут TDD и DDD мало помогут так как подразумевают не просто использование паттернов а необходимо "правильное" использование патернов о чем многие часто забывают<br /><br />Забавная кстати мысль.<br />Я часто слышу предупреждения о неправильном использовании паттернов. Даже в книжках по проектированию это иногда пишут, особенно в старыхpinocchio964noreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-75518401617048172632012-03-22T14:41:56.021+06:002012-03-22T14:41:56.021+06:00Зачем исправления, если программисты в этой компан...Зачем исправления, если программисты в этой компании НА САМОМ ДЕЛЕ меньше, чем за месяц вынесли всю бизнес-логику из БД, написали на нее модульные тесты, сделали эмулятор железок и протестировали систему на быстродействие. Это факт, и это произошло меньше чем за месяц.Alexander Byndyunoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-90659322628493700762012-03-22T14:39:37.562+06:002012-03-22T14:39:37.562+06:00Тем не менее, тем не менее. А читатели блога всё р...Тем не менее, тем не менее. А читатели блога всё равно читают "меньше чем за месяц". Будут ли исправления?Павел Колодинnoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-77880599538761299802012-03-13T09:22:48.139+06:002012-03-13T09:22:48.139+06:00Да, к сожалению, каждый понимает их по-своему непр...Да, к сожалению, каждый понимает их по-своему неправильно :) Ну и от кривых рук не спасет хорошая ORM и кэш.<br /><br />> Незная оригинальных условий эксплуатации и развертывания данного приложения а также требований говорить о DDD или ORM как панацея я бы не стал<br /><br />Это совсем не панацея, а один из способ проектирования приложения со своими плюсами и минусами. Явным плюсом является тоAlexander Byndyunoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-21679014327726978912012-03-13T01:34:00.088+06:002012-03-13T01:34:00.088+06:00Да проблема тестирования ХП есть но это техническа...Да проблема тестирования ХП есть но это техническая проблема. А вот замена ХП и обработки целосности со стороны базы и перекладывание на плечи ORM и кеша влечет за собой полную замену архитетуры приложения и перевода на совершенно новый уровень.<br /><br />Я как раз делал обратное для решения проблем с производительностью и маштабированостью. Особенно "красиво" выглядел ORM на Azure Andriy Khoruzhenkonoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-92006376341163441762012-03-13T00:50:34.537+06:002012-03-13T00:50:34.537+06:00Я обязательно уточню у компании SkillTrek будем ли...Я обязательно уточню у компании SkillTrek будем ли мы выкладывать исходный код или нет. Если будет, то он 100% появится в этом блоге :)Alexander Byndyunoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-86472457097444293352012-03-13T00:49:00.739+06:002012-03-13T00:49:00.739+06:00Тем не менее процесс разработки на самом деле стал...Тем не менее процесс разработки на самом деле стал быстрее и стабильнее. Понятно, что переписывали готовую систему и уже были хорошие знания предметной области, это всё дало фору. Тем не менее, правильный подход к проектированию сыграл значительную роль.Alexander Byndyunoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-62583918902056012902012-03-13T00:48:56.624+06:002012-03-13T00:48:56.624+06:00К сожалению, в этом тренинге я принять участие не ...К сожалению, в этом тренинге я принять участие не смогу. Если у вас будет возможность поделиться исходным кодом, будет замечательно.Akim Khalilovnoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-28114256577702271272012-03-13T00:47:16.921+06:002012-03-13T00:47:16.921+06:00Да, хорошая идея, на которую у меня конечно не был...Да, хорошая идея, на которую у меня конечно не было времени, пока я не согласился участвовать в SkillTrek. Там мы как раз 4 месяца будем заниматься созданием такого приложения. На счет того будут выложены исходники или нет, пока сказать не могу.Alexander Byndyunoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-13655910952872234902012-03-13T00:45:25.947+06:002012-03-13T00:45:25.947+06:00> А как же потеря производительности при пакетн...> А как же потеря производительности при пакетной обработке?<br /><br />Потеря производительности зависит от требований к производительности. Ваше приложение должно быть ну очень сильно нагружено, чтобы вам не хватило обычной ORM и кэша.<br />> Такого вроде не может быть :-)<br />По факту такое есть. Когда хранимые процедуры занимают по 50-100 строк, то обычно есть человек, без которого в Alexander Byndyunoreply@blogger.comtag:blogger.com,1999:blog-458002489272917533.post-85516300035686460212012-03-13T00:37:51.506+06:002012-03-13T00:37:51.506+06:00Все верно. Но, на мой взгляд, не правильное позици...Все верно. Но, на мой взгляд, не правильное позиционирование, что DDD ускорило процесс разработки, все таки первую версию системы делали несколько лет не только из-за технологии процесса программирования, а еще из-за неопределенного ТЗ и новой предметной области. А программисты "меньше чем за месяц" переписали только алгоритмы работы, а не всю системы целиком (алгоритмы, интерфейсы, Shleyartemnoreply@blogger.com