|
|
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
buddenчто такое "процедура"? Она находится внутри "ПО" или снаружи? Та, что пишется на PSQL, по сути запрос, завернутый в обертку на стороне сервера (FB в данном случае). П.С. Не завидую я тем, кто поддерживает кривое архитектурное решение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 15:01 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
Нелояльный, раньше была в основном на сервере БД. Теперь новую в основном пишем на лиспе, а хранимки используем там, где критична скорость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 15:02 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
buddenArm79, вот, SQL. Хорошо. Вы alter table делаете или нет? Конечно же нет :-). SSDT наше все. Я делаю правки в проекте, а накат на сервер - другая история ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 15:06 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
wadman, на вопрос вы, однако, не ответили. Являются ли процедура частью ПО? Само то, что в FB можно написать хранимую процедуру без перезапуска сервера, как вы говорите - это проявление родства между SQL серверами и лиспом. alter table = defclass, alter procedure = defun. Потому я в начале темы и привёл аналогию между defclass и alter table (хотя это скорее будет create or alter table). А можно ли сделать alter procedure в программе на C# или Delphi? Вообще говоря, нет. Если сравнивать FB и лисп, то возможности по отладке, управлению транзакциями, мониторингу, межпроцессному взаимодействию, чтению-записи файлов, хранению контекста, диалогу с пользователем в лиспе несравнимо лучше. Мы же не от хорошей жизни сделали третье звено. Замучались отлаживать хранимки. Возникает в хранимке где-нибудь исключение, а место ошибки не показывает. Ищи потом полдня. Ну и PSQL - язык, конечно, убогий до слёз. Длина идентификатора недостаточная, пространств имён нет, структур нет. Ничего нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 15:13 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
Arm79, ну так вы структуру таблиц меняете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 15:15 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
buddenArm79, ну так вы структуру таблиц меняете? Sql Server Data Tool. В нем актуальное описание таблицы. Я его правлю, как мне угодно. При накате БД актуализируется со своим описанием. С любого промежуточного состояния, включая начальное - пустое. Иными словами я руками на сервер не лезу с Alter Table, а пользуюсь проверенным инструментом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 15:18 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
Arm79, а SSDТ внутри себя разве не alter table вызывает, когда вы правите описание таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 15:21 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
buddenЯвляются ли процедура частью ПО? Это часть БД. Такая часть, которая годами не меняется, ибо простота - залог успеха, долговечности и универсальности. Не нужно менять таблицы, не нужно менять код, не нужно ничего перезапускать: все делается на лету и доступно мгновенно всем клиентам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 15:22 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
buddenНу и PSQL - язык, конечно, убогий до слёз. Длина идентификатора недостаточная, пространств имён нет, структур нет. Ничего нет. Я так понимаю, что это ваше детище и вы отстаиваете свое решение, как единственное верное даже несмотря на простейшие просчеты в архитектуре? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 15:23 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
buddenArm79, а SSDТ внутри себя разве не alter table вызывает, когда вы правите описание таблицы? Уважаемый, к чему вы ведете речь? Что структура БД может меняться? Я с вами не спорю. Так же как и используемые в работе классы и так далее. Ничто в мире не статично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 15:27 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
buddenЗамучались отлаживать хранимки. Возникает в хранимке где-нибудь исключение, а место ошибки не показывает. Ищи потом полдня.И отладчик в IBE не показывает?buddenНу и PSQL - язык, конечно, убогий до слёз. Длина идентификатора недостаточная, пространств имён нет, структур нет. Ничего нет.Такое бывает после знакомства с 1С или подобными системами. Но это другой подход. Для структур есть и соответствующие БД, такие как Cache. Этот "убогий до слёз" превосходно работает с реляционными БД. Мне не доводилось видеть хороших решений при скрещивании этих двух парадигм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 15:47 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
Ну вот, наконец-то началось настоящее рубилово. Извините, мне надо поработать. Чуть попозже отвечу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 17:02 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
Arm79, вы хотите знать куда я веду или для чего я использую лисп? Что структура БД может меняться? Я с вами не спорю. Мне сложно вас понять. Как не спорите, а это что вы раньше писали? Чисто теоретически оно вам и не нужно ничего про неё знать, так как нет задач, требующих изменение БД на бою. Что значит нет задач? Мы уже пришли к тому, что не только я, но и вы сначала меняете базу отладочную и потом накатываете изменения на промышленную. Значит, промышленная БД тоже меняется. И меняется она, я надеюсь, вы признаете, с помощью alter table, хотя ваш инструмент позволяет вам об этом не задумываться. Согласны или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 17:53 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
wadman, я не считаю свою архитектуру единственно правильной, но она одна из правильных. У нас реализована более-менее обычная трёхзвенка, правда, без ORM и на экзотическом языке сервера приложений. Вы же в своём проекте фактически реализовали вторую реляционную структуру поверх уже существующей реляционной структуры СУБД. Я такое тоже делал, когда это было нужно (для ввода опросных листов переменной структуры и для ввода данных экспериментов переменной структуры). Такое решение имеет свои плюсы и минусы и у него есть своя область применения. Кроме того, когда вы говорите, что вам не нужно менять код, из этого можно сделать только вывод о том, что ваше приложение очень простое и в нём нет изменчивой бизнес-логики. Из этого опять же не следует, что таковы все приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 18:07 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
budden, 1) Я в рубилове не участвую. Я исхожу из посылки, что если у вас рабочее решение, то оно хотя бы в силу этого вполне обосновано. У меня нет желания кого-либо критиковать, особенно если учесть тот факт, что для критики нужно знать поставленные цели и архитектуру прикладного решения. Ни того, ни другого я не знаю. 2) Вы вырываете слова из контекста. Имелось ввиду, что я не вижу необходимости в изменениях БД при использовании типовых решений, что характерно для торговых компаний. Как правило, бизнес-процессы у них схожи до идентичности, и потребности покрываются покупными тиражными решениями, что гораздо дешевле, чем нанимать штат разработчиков. 3) Безусловно, я признаю, что промышленная БД может и будет меняться. Но я плохой образец для проведения аналогий. Несмотря на то, что я работаю не программистской конторе, выполняемые мной работы не имеют типовых решений. И я вынужден проектировать и реализовывать уникальные в своем роде решения. Но если есть возможность, я стараюсь по максимуму использовать промышленные наработки. Ибо велосипед остается велосипедом. Если участь, что организация, где я работаю, имеет интересы в огромном количестве областей, то это неудивительно. Тут и штат программистов немаленький. Но даже у нас тенденция на максимальное использование аутсорсеров. Единственное, что я у вас хотел выяснить за все эти страницы осуждения, так это тип задач, для которых вы применяете Lisp. Это специфичный и редкий инструмент. И мне реально непонятно, зачем его использовать, если у вас уже есть Delphi, и его возможностей с лихвой хватает для почти любой прикладной задачи. Говорю, как бывший программист Delphi. Просто скажите, с чем Delphi не справилось, но с помощью Lisp вы оказались на коне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 18:14 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
buddenКроме того, когда вы говорите, что вам не нужно менять код, из этого можно сделать только вывод о том, что ваше приложение очень простое и в нём нет изменчивой бизнес-логики. Оно как раз весьма не простое и перекомпиляция и изменение структуры бд может принести кучу сюрпризов. Я и среагировал на тот пример, когда нужно добавить возраст ограничения к книге. Один из последних примеров: понадобилось написать выгружалку данных в госреестр, а для исключения дублирования добавить признак выгрузки. Для чего был добавлен параметр и выгружалка просто проставляла этот признак. На существующее ПО это никак не повлияло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 18:22 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
Нелояльный, я опробовал на практике достаточно много разных подходовв. Моя прошлая система на MS SQL (таблиц около 100, жила и развивалась лет 8 до прекращения бизнеса) была именно такой: вся бизнес-логика на сервере. Я был противником трёхзвенки и кричал на весь мир "вот как надо программировать, никаких трёхзвенок, sql рулит". Я и сейчас высоко ценю SQL - гениальная вещь. Попытался и в этом проекте подобное применить. Но, во первых, текущая задача покрупнее. Во-вторых, Firebird оказался настолько некомфортным для такого стиля, что терпения не хватило. Представьте себе такой мысленный эксперимент. Есть у вас ваш Firebird, но когда на сервере FB происходит Exception, появляется окошко "just in time debugging", можно запустить IBE и посмотреть место, где исключение возникло, глянуть переменные, вычислить что-то. Согласитесь, вот так надо бы работать в XXI веке. В FB (во всяком случае по состоянию на 2.5) такого нет, в MS SQL 2000, с которым я последним работал, этого не было. Думаю, и сейчас ещё такого там нет. Хотя если кто положит такую инфу в тапок и кинет в меня - начну копить на MS SQL :) Вот ради такого удобства мы и перешли на трёхзвенку и теперь такое удобство у нас это есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 18:28 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
Arm79, ну так и торговля бывает разная. Бывают клиенты со своими требованиями по оформлению документов, бывают хитрые управленческие отчёты, бывает просто очень большой объём данных, при котором производительность 1С не удовлетворяет. Бывают системы премирования менеджеров. Бывают филиалы. Бывает закачка документов из других систем. Бывают системы ранжирования товара. Всё это уникально для каждой организации и никак не покрывается стандартными конфигурациями 1С. И есть меняющееся законодательство, может быть, вы с этим не сталкивались. Если это 1С, то есть какая-то поддержка от вендора, а если это самописная система, то нужно успевать тянуть весь воз уже написанного кода за сменой законов. Мне казалось, это очевидно, поэтому я особо и не отвечал на это :) По Дельфи - да справилось бы и Дельфи. Вопрос в объёме кода и сложности самого приложения. Чем сложнее приложение, тем больше преимущества лиспа за счёт возможности переопределять функцию на лету. Эти преимущества сказываются в уменьшении времени компиляции и в уменьшении времени на воссоздание ситуации, являющейся предметом изучения. Если ваши приложения компилируются за одну-две секунды, то они, видимо, довольно простые. По сравнению с Дельфи - лисп надёжнее, т.к. он по работе с объектами больше похож на Java/C#, в нём сложнее промазать мимо памяти, хотя тоже можно. Намного сложнее добиться утечки памяти, или там Access Violation-ов. Соответственно, меньше возни с деструкторами. Это ведь само по себе, наверное, многих заставило перейти с Дельфи на C#. Настраиваемый отладчик. Например, можно сделать, чтобы в одном треде экспешн вызывал отладчик, а в другом возвращал экспешн пользователю, всё это можно программировать, а не мышью накликивать, как в Delphi. Ну и я не представляю себе какой-нибудь Delphi 2007, неделями висящий на промышленном сервере приложений. Он рухнет довольно быстро или всю память съест. А IDE лиспа у нас реально неделями крутится, т.е. все сорсы приложений и отладчик промышленной базы у нас всегда под рукой, если что. Что ещё? Ну, допустим, хеш-таблицы по любым объектам элементарно строятся. Очень удобна работа с древовидными структурами. Я на Дельфи уже 13-й год потихоньку развиваю библиотеку работы с деревьями, но она до сих пор уступает тому, что в лиспе есть "из коробки". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 18:45 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
wadmanизменение структуры бд может принести кучу сюрпризов А мы умеем с этим справляться, потому что у нас за счёт макросов, которыми мы расширили PSQL, наборы параметров нужных нам хранимых процедур растут вместе со структурой таблицы. Система макросов для PSQL написана на лиспе. Клиентское приложение тоже в большой степени генерируется автоматически из структуры базы - генератор написан на лиспе. Оно заточено так, что редко возникают сообщения типа "field not found" или как там оно - не помню даже его текст, так давно не видел. Бывают и у нас сюрпризы с базой, они неизбежны по природе вещей, но крайне редко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 18:53 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
budden, вы молодцы. По хорошему вам завидую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 18:56 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
mayton, мы, в общем-то, готовы делиться нажитым, нам это выгодно. Хотя тут есть проблемы - не всё можно выложить в open source из-за NDA, многое нужно приводить в божеский вид, многое неудобно и т.п. Я говорю "мы", но 90% работы сделал я один, многое доведено до минимально рабочего состояния - мне же платят за решение прикладных задач, а не за развитие платформы. Если будет какой-то интерес, адрес указан в вакансии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 19:11 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
Да я в Украине, вобщем-то. Просто солидарен со стартапами в области Lisp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 19:21 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
maytonсолидарен со стартапами в области Lisp ++ s/в области/с применением/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 20:05 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
buddenЕсть у вас ваш Firebird, но когда на сервере FB происходит Exception, появляется окошко "just in time debugging", можно запустить IBE и посмотреть место, где исключение возникло, глянуть переменные, вычислить что-то. Согласитесь, вот так надо бы работать в XXI веке. buddenНу и я не представляю себе какой-нибудь Delphi 2007, неделями висящий на промышленном сервере приложений. Увы, я с вами не согласен. С точки зрения разработчика, это очень удобно. Но на промышленном сервере никаких IDE стоять не должно. Ибо нефиг. buddenБывают клиенты со своими требованиями по оформлению документов, бывают хитрые управленческие отчёты Не аргумент. 1С все это позволяет. buddenбывает просто очень большой объём данных, при котором производительность 1С не удовлетворяет Тут согласен. buddenЕсли это 1С, то есть какая-то поддержка от вендора, а если это самописная система, то нужно успевать тянуть весь воз уже написанного кода за сменой законов Не аргумент. Не вижу разницы, при изменении требований закона, тянуть за собой самописку 1С или самописку на Delphi/Lisp. buddenЕсли ваши приложения компилируются за одну-две секунды, то они, видимо, довольно простые Улыбнуло. Я занимаюсь в том числе и онлайн-трейдингом. Он сам по себе и непрост. Занимался почти всеми его аспектами, за исключением технического анализа. Резюмирую: никаких особых задач, требующих именно Lisp, у вас нет. C# с его зачатками псевдофункцинальности в виде LINQ, Expressions вполне справился бы с задекларированным. Спасибо за потраченное на меня время. Было достаточно познавательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 20:22 |
|
||
|
Почему мы используем Common Lisp в автоматизации бизнеса
|
|||
|---|---|---|---|
|
#18+
buddenЯ и сейчас высоко ценю SQL - гениальная вещь. Ну, я бы не стал называть его гениальным, скорее он (как кто-то сказал про Unix, не помню дословно и что-то нагуглить не получается) «просто неплохо делает свою работу». http://airbladesoftware.com/notes/relational-databases-are-not-relational/ http://www.houseabsolute.com/presentations/sql-is-not-relational/slide16.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 20:45 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38474865&tid=1341556]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
439ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 783ms |

| 0 / 0 |
