|
Разбиение кода на не связные куски
|
|||
---|---|---|---|
#18+
Разбирал я тут как-то чужой код, купленная складская система без исходников и без API, вся логика в формах. Причем логика это генерация SQL-запросов и отправка их на сервер, т.е. на сервере хранимок нет. А надо было сделать скоповую обработку заданий и хоть ты тресни, остается только экспериментальным путем писать в разные таблицы, в надежде, что это система воспримет как надо. И вот жеж вроде везде пишут, что логика должна быть отделена от интерфейса и слои и модули и т.д. и т.п. Но программисты просто хрен положили на всё это, продолжают формоклепанием заниматься. В чем проблема то? Я никак не пойму, чего программистам не хватает? Мозгов? Не знают как разложить логику по разным слоям и разным кускам? Как развязать разные куски кода? Вот я недавно наколбасил некую платформу для создания сценариев бизнес-логики. За основу взял шаблон Command. Получил набор (репозиторий) команд для разных случаев жизни. Как пример, отправить письмо, сформировать отчет xml, загнать данные в таблицу, прочитать xls файл в DataTable и т.д. и т.п. Создание новой команды занятие простое. Создаем новый класс, наследник одного из базовых, перекрываем пару методов, регистрируем в репозитории и всё, можно использовать. В итоге можно создавать сценарии, выполняющие что угодно. Причем каждая команда вполне самостоятельна, для ее выполнения не нужно тащить весь проект. Вызов любой команды дело совершенно простое, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
В данном случае командой является сценарий, который состоит из набора других команд и имеет такой же интерфейс как и любая другая команда. // Описание сценария выглядит так Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
Теперь я эти команды могу собирать в совершенно любой конфигурации. И последовательно и иерархически и циклически. И даже сделал такие команды как IF, TRY(CATCH), FOREACH, SWITCH. Причем большинство (подавляющее) тех, кому я это показываю, не понимают что это и зачем. Зачем выдумывать, если можно на форму бросить кнопку и в обработчике написать код. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2012, 15:53 |
|
Разбиение кода на не связные куски
|
|||
---|---|---|---|
#18+
Old Nick, это назвают сервисно-ориентированной архитектурой. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2012, 16:14 |
|
Разбиение кода на не связные куски
|
|||
---|---|---|---|
#18+
Old Nick Разбирал я тут как-то чужой код , купленная складская система без исходников и без API, вся логика в формах. как можно код разбирать если его нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2012, 16:22 |
|
Разбиение кода на не связные куски
|
|||
---|---|---|---|
#18+
писать программу в хмл это на любителя ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2012, 09:21 |
|
Разбиение кода на не связные куски
|
|||
---|---|---|---|
#18+
Old NickПричем большинство (подавляющее) тех, кому я это показываю, не понимают что это и зачем.На любом нормальном языке программирования ваш код, оформленный в виде xml занял бы три-четыре строки и был бы на порядок читабельнее и понятнее. Вас проклянут те, кто вынужден будет сопровождать вашу поделку. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2012, 11:19 |
|
Разбиение кода на не связные куски
|
|||
---|---|---|---|
#18+
Old NickВ чем проблема то? Я никак не пойму, чего программистам не хватает? Мозгов? Не знают как разложить логику по разным слоям и разным кускам? Как развязать разные куски кода?Мозгов или опыта, а может просто инфантильность, работают как привыкли. Лидера нету, который поставит разработку. Old NickВот я недавно наколбасил некую платформу для создания сценариев бизнес-логики. ... Теперь я эти команды могу собирать в совершенно любой конфигурации. И последовательно и иерархически и циклически. И даже сделал такие команды как IF, TRY(CATCH), FOREACH, SWITCH.А это, более традиционные способы, типа серверная логика в ХП, чем не подошли? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2012, 12:56 |
|
Разбиение кода на не связные куски
|
|||
---|---|---|---|
#18+
TC, а вы это к чему вообще? Пишете про мягкое, в пример приводите тёплое. Хотите похоливарить о низком уровне разработки? Или похвастаться скриптовым языком из XMLя? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2012, 13:37 |
|
Разбиение кода на не связные куски
|
|||
---|---|---|---|
#18+
Bogdanov Andrey, Я и сам проклял бы, да вот незадача, это задание руководства сделать так :-) Как попросили, так и сделал ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2012, 17:02 |
|
Разбиение кода на не связные куски
|
|||
---|---|---|---|
#18+
Old NickЯ и сам проклял бы, да вот незадача, это задание руководства сделать так :-) Как попросили, так и сделалТогда тем более непонятен смысл вашего поста. Если вы сами считаете сделанное вами решение неудачным, вынужденной уступкой требованиям руководства, то неужели вы думаете, что решение найдет активную поддержку у сообщества? Или вы ищете того, кто бы это покритиковал? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 09:17 |
|
Разбиение кода на не связные куски
|
|||
---|---|---|---|
#18+
Bogdanov Andrey, Вообще-то речь не о том, что программирование в xml, а о том, что можно код разбивать на самостоятельные куски, полностью независимые друг от друга. Такое редко увидишь даже в промышленных системах. А у меня вместо программирования на xml можно превратить команды в компоненты и прямо в студии собирать сценарии, что гораздо удобнее в разработке. Эти возможности как раз и вытекают из того, что логика разбита на отдельные независимые кусочки. То есть есть команды существуют сами по себе, и их можно собирать в целостную логику и с помощью xml и в виде компонент. Люди, пишите грамотно ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 09:25 |
|
Разбиение кода на не связные куски
|
|||
---|---|---|---|
#18+
Bogdanov AndreyOld NickЯ и сам проклял бы, да вот незадача, это задание руководства сделать так :-) Как попросили, так и сделалТогда тем более непонятен смысл вашего поста. Если вы сами считаете сделанное вами решение неудачным, вынужденной уступкой требованиям руководства, то неужели вы думаете, что решение найдет активную поддержку у сообщества? Или вы ищете того, кто бы это покритиковал?Вот именно, непонятен посыл. Old NickBogdanov Andrey, Вообще-то речь не о том, что программирование в xml, а о том, что можно код разбивать на самостоятельные куски, полностью независимые друг от друга. Такое редко увидишь даже в промышленных системах.Безусловно, такое разделение намного хуже писания кода запросов напрямую в формах, это можно не сомневаться. Old NickА у меня вместо программирования на xml можно превратить команды в компоненты и прямо в студии собирать сценарии, что гораздо удобнее в разработкеДык это ваша идея или всё таки руководства??? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 11:48 |
|
Разбиение кода на не связные куски
|
|||
---|---|---|---|
#18+
Old Nick Код: xml 1. 2.
Причем большинство (подавляющее) тех, кому я это показываю, не понимают что это и зачем. xml command name="TryCatch" - это сурово. Откройте для себя какой-нибудь скриптовый язык вроде Perl и наслаждайтесь алгоритмической чистотой и отсутствием кнопок и обработчиков. А по поводу независимости кусков... То от языка это как-бы и не зависит. В одном крайнем случае, если эти Ваши "команды" работают с базой независимо друг от друга и ReadOnly (например, формируют отчеты) - то они будут логически независимы, даже если впихнуть их в один файл-модуль. А если они что-то пишут, друг на друга в чем-то надеются, и взаимно зависят - то даже в виде россыпи XML-файлов они будут представлять собой чудную логическую лапшу, не хуже BASIC-кода с кучей GOTO; и "компоновать" из них что-то - все равно что пазлы складывать: у каждого файла - свое единственное место, а иначе не заработает. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 12:57 |
|
Разбиение кода на не связные куски
|
|||
---|---|---|---|
#18+
Old NickВообще-то речь не о том, что программирование в xml, а о том, что можно код разбивать на самостоятельные куски, полностью независимые друг от друга. Такое редко увидишь даже в промышленных системах. интересно, а какие промышленные анализировали? С SAP надеюсь начинали? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 13:28 |
|
Разбиение кода на не связные куски
|
|||
---|---|---|---|
#18+
Cane Cat Fisherони будут представлять собой чудную логическую лапшу, не хуже BASIC-кода с кучей GOTO; Хуже. В смысле, лучше. В смысле лапшистее. П.С. До сих пор мне казалось, что похожие внешне решения пишут мальчики лет двадцати на своей первой работе, после года работы по специальности и обретения желания "забабахать чё-то крутое". ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 13:45 |
|
Разбиение кода на не связные куски
|
|||
---|---|---|---|
#18+
Cane Cat FisherА если они что-то пишут, друг на друга в чем-то надеются, и взаимно зависят - то даже в виде россыпи XML-файлов они будут представлять собой чудную логическую лапшу, не хуже BASIC-кода с кучей GOTO; и "компоновать" из них что-то - все равно что пазлы складывать: у каждого файла - свое единственное место, а иначе не заработает. 1. не зависят. 2. не надеются. 3. не одно единственное место, заработает. поищите в интернет информацию о том, как выглядят SOA системы. Информации много, сможете более подробно узнать опровержения на все свои неправильные "домыслы". ТС действительно сделал какой-то вариант SOA, пусть и в таком виде. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 15:21 |
|
|
start [/forum/topic.php?fid=33&msg=38090589&tid=1547753]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 365ms |
total: | 528ms |
0 / 0 |