|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
>мод >Ничего этого "Нормальный АС" делать не должен ... Это скорее терминал-сервер. С уважением, Владимир. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2007, 20:33 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
ВМоисеевЭто скорее терминал-сервер. Он же АС. Пример - Oracle AS, его клиенты - просто терминалы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2007, 09:44 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
sopromat webusДля обработки хранимых процедур пишется огоромное количество монотонного кода, разница в нем только кол-во параметров и название процедур.Имхо, это причина Ваших ощущений. В красиво спроектированной системе кол-во повторяющегося кода стремится к нулю. Программист-ЛюбительЕсть хорошая книжка на эту тему "Архитектура корпоративных программных приложений" Мартин Фаулер. Если представить что сейчас 50-ые годы и этот стон вопиющего в пустыне раздался не по поводу разработки "корпоративных" приложений, а по поводу вообще програмирования базовой логики типа циклов, переходов типа If, Switch а также блоков повтоярющегося кода, а все программируют блин в машиных кодах и на перфокартах, и тоже вот такой вот дядька спец своего времени по перфокартам говорит: оооо... есть хорошая книжка Марка Фалермана, называется: "Новейшие методы выкладывания перфокарт стопками". Чесс слово тоже самое.... Я понимаю были времена машинных кодов, потом появился С, который являет собой тооненькую прослойку над машинными кодами, а затем революционный С++. Эти средства решили технологические проблемы того времени, когда программы писались годами коллективами специалистов и это было очень дорого удовольствие. Но с тех пор (с 70-ых годов) ведь ничего НОВОГО создано не было. Java, Pascal, C# - суть упрощения языка С++, но принципиально нового ничего внесено не было. Между тем, если разобраться язык С++(C#, pascal, Java, and a lot of frameworks), как инструмент программирования позволяет более ЛЕГКО, НЕПРОТИВОРЕЧИВО и удобно писать программы, облегчая ТОЛЬКО уровень описания процедур алгоритмов низкого уровня (базовая процедурная логика (переходы, циклы, вычисления). Классы языка - еще один способ инкапсуляции ПРОЦЕДУР. Даже свойства - это процедуры (функции если угодно). Однако до сих пор НИЧЕГО не создано для атоматизации следующего уровня, ради которого эти функции и прочая машинная логика объединяются - приложения как логически целостное, непротиворечивое и ЦЕЛЕСООБРАЗНОЕ творенип предназначеное для решения определенного круга задач. Вот когда бужет такое средство, то и соответсвующие ощущения пропадут. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2007, 13:08 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
Качественно разрабатывать можно быстро и медленно. Располагая вечностью, можно разрабатывать практически на любом средстве - начиная от машинных кодов – и, притом, очень качественно, исключая повторы, создавая стройную и красивую систему и т.п.. Практически для любого примера «ужасного кода» на любом языке можно привести контр аргументы в виде упоминания о «best practice» или начать говорить о разумном проектировании и неких принципах, которых должен придерживаться разработчик. Главным виновником, как правило, оказывается «человеческий фактор». По сути, решением проблемы качественной разработка приложений является призыв: «Хочешь качественной разработки – разрабатывай качественно. Никто тебе не мешает». Однако, в любом труде хочется (приходится) иметь инструмент, который часть работы сделает за тебя или позволит серьезно уменьшить твои усилия. В некотором приближении разработкой приложений можно считать ввод информации в систему о правилах обработки информации. Разработка программ – это процесс передачи оператором данных в систему о том, как, грубо говоря, должны оборачиваться в ней байты и биты в зависимости от возможных будущих воздействий на неё других людей или физических процессов. Рассматривая процесс программирования в таком «ракурсе», можно вынести основные принципы сокращения усилий программиста: информация, вводимая в систему программистом (во время процесса программирования) должна быть необходимой и достаточной для её функционирования. Иными словами она не должна как минимум повторяться. А во-вторых, не должно происходить её потерь. «Подразумевая» некий автоматизируемый «бизнес-процесс», программист вносит данные в систему («делает программу») на всех её уровнях: 1) Когда проектирует структуру БД 2) Когда проектирует интерфейс 3) Когда создает бизнес логику 4) Когда делает запросы для отчетов и сами формы отчетов При этом, все эти слои объединяются только разумом (осознанным или неосознанным представлением), волей и ответственностью программиста, а также за счет «обратной связи» получаемой от пользователя или тестировщика в случае нелогичного поведения системы. И так - из совершенно независимо функционирующих программных сущностей создается согласованно действующая система. Как известно любому современному программисту, процесс этот долог, нуден и кропотлив. Между тем, каждый из названных слоев повторяет, дублирует и частично перекрывает данные-основания любого другого слоя. В случае создания взаимных противоречий в функционировании слоев мы имеем случай потери информации вследствие её неопределенности, бесполезности и даже вредоносности. Так, например: при проектировании БД уже создается знание о системе, которое может быть использовано при проектировании интерфейса и бизнес логики. Бизнес логика оказывает влияние на, опять же, интерфейс и на систему отчетности и наоборот. И так далее. Все современные Фреймворки, языки программирования категории ООП, а также языки запросов напоминают слепых кротов способных ощупать семантическое пространство приложения на расстоянии коротеньких лапок своих операторов. А лапки эти очень коротки. И только «сильная, уверенная и очень трудолюбивая рука» команды проектировщиков, постановщиков, тестировщиков и программистов способна провести этих «уродцев» сквозь сложноустроенное пространство семантики законченного приложения. Принципиальным решением указанных проблем было бы создание инструмента разработчика, логически согласованно автоматизирующего создание отдельных компонентов системы, на основании общих метаданных, описываемых в терминах автоматизируемой предметной области. Выше я сказал том, что знания, закладываемые в систему, взаимно перекрываются или оказывают взаимное влияние. Это взаимное влияние является системой семантических связей. Для задач различного класса структура и содержание семантических связей отличаются. Мы можем спроектировать инструмент с неким предзаданным семантическим пространством, но он будет способен решать только узкий круг задач и только одним известным шаблонным способом. Мы можем спроектировать инструмент с изменяемым (программируемым) семантическим пространством или, иначе говоря, с изменяемой моделью приложения. Такой инструмент, хотя и ограниченный предлагаемой «моделью моделей» обладал бы уже некой универсальностью и возможностью творить, а не кроить однообразные программки по шаблону. Техническая реализация Если кто-то согласен или кто-то понял сказанное…. Какие мысли есть по технической реализации?? Извиняюсь за многа букаф. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2007, 11:12 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
AlexsalogВсе современные Фреймворки, языки программирования категории ООП, а также языки запросов напоминают слепых кротов способных ощупать семантическое пространство приложения на расстоянии коротеньких лапок своих операторов. А лапки эти очень коротки. И только «сильная, уверенная и очень трудолюбивая рука» команды проектировщиков, постановщиков, тестировщиков и программистов способна провести этих «уродцев» сквозь сложноустроенное пространство семантики законченного приложения. мощно задвинуто. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2007, 12:58 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
мод Пример - Oracle AS, его клиенты - просто терминалы. сколько нового узнаешь, поразительно. Но немного не верно, клиенты ORACLE AS - мобильные телефоны. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2007, 13:02 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
..... Опыта мало, возраста мало; желаний, энтузиазма и амбиций дохе.. много короче... сильно ногами не бейте если что не так... просто мысли вслух... Alexsalog Между тем, каждый из названных слоев повторяет, дублирует и частично перекрывает данные-основания любого другого слоя. Не совсем понял, если не затруднит то в реальных/простых примерах по возможности.. AlexsalogБизнес логика оказывает влияние на, опять же, интерфейс и на систему отчетности и наоборот. И так далее. От этого и никуда не денешься, какое то самообучение способам/методам/принципам воздействия интерфейса и на систему отчетности т.п. будет иметь место. Alexsalog ... но он будет способен решать только узкий круг задач и только одним известным шаблонным способом. Будут работать признанные большинством сообщества методы решения конкретных задач... Типовые примеры многим известны. Как возможное следствие -open source/GPL модули определенного рода/типа. AlexsalogМы можем спроектировать инструмент с изменяемым (программируемым) семантическим пространством или, иначе говоря, с изменяемой моделью приложения. Такой инструмент, хотя и ограниченный предлагаемой «моделью моделей» обладал бы уже некой универсальностью и возможностью творить, а не кроить однообразные программки по шаблону. Какие мысли есть по технической реализации?? Согласен, но программа никогда не сможет сделать того в чем до конца не разобрался разработчик. P.S. я, можно сказать, новичок и на форуме и в разработке КИС, но меня пугает низкая интесивность осбсуждения такой горячей темы как эта. Неужели так мало людей интересуеются грамотным построением КИС? :( ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2007, 22:16 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
Уверен, что интересует многих. Вот что делаем мы для снижения энтропии проекта. Растущая команда в настоящий момент составом >10, но <15 человек разной квалификации. Каждый, кто что-то написал/исправил публикует свои заметки в специальном общедоступном месте. Т.о быстрее можно локализовать свежевозникающие проблемы и избегать дублирования кода. Выполнение некоторых вещей проверяется другими коллегами (известный принцип взаимного контроля). Помогает. На достигнутом не останавливаемся, постоянно думаем об улучшении процесса разработки. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2007, 09:21 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
CalmКаждый, кто что-то написал/исправил публикует свои заметки в специальном общедоступном месте. Т.о быстрее можно локализовать свежевозникающие проблемы и избегать дублирования кода. Calm , если кто-то что-то исправил, то это уже не нужно больше исправлять.В этом ведь и смысл отсутствия дублирования кода, хорошо организованной модульной структуры. Код, отвечающий за определенный функционал размещен в строго определенном месте. Внесение изменений в него сразу же отражается везде, где этот код используется. Публиковать заметки нужно только для истории. Или Вы о чем-то другом? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2007, 23:44 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
Е.В.С...... Опыта мало, возраста мало; желаний, энтузиазма и амбиций дохе.. много короче... сильно ногами не бейте если что не так... просто мысли вслух... Alexsalog Между тем, каждый из названных слоев повторяет, дублирует и частично перекрывает данные-основания любого другого слоя. Не совсем понял, если не затруднит то в реальных/простых примерах по возможности.. Например вам нужно сделать ввод документов типа счетов. Вы представляете себе что это такое. Вы знаете, что у документа есть шапка и есть спецификация. в шапке такие то поля приотм некоторые являются ссылками на справочники. В спецификации нечто подобное. Это назовем : данные-основания. Теперь, вы делаете интерфейс. Как вы его делаете? Вы непременно будете учитывать в проектировании интерфейса подобноо отношение частей документа. Это окажет влияние на дизайн документа. Далее вы проректируете базу данных. Опять же вы учитываете названные выше ОДНИ И ТЕ ЖЕ исходные данные, но только в применении к таблицам. Далее вы пишете запросы, и опять в секции where вы заново указываете уже набившие оскомину отношения между данными но только в интепретации к SQL языку. А есть еще справочники - и для них цикл разработки целиком повторяется. Все тоже самое повторенное несколько раз на разных уровнях и в разной форме. Это и создает ощущение нудности и постоянный страх ошибки. Потому что например при написани SQL запроса ничего не стоит связать шапку документа с Id контрагента по полю предназначеному для связывания со спецификацией. И получить полную чушь. И СУБД это проглотит и не поперхнется. Это я и назваю "слепотой" инструментов данных современному разработчику. Им (инструментам) своершенно плевать на законченность и логичность конечного приложния. Они на все согласны и им все равно что делать. Такая вот метафора. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2007, 09:27 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
iscrafm Но немного не верно, клиенты ORACLE AS - мобильные телефоны. В т.ч. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2007, 10:05 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
авторВнесение изменений в него сразу же отражается везде, где этот код используется. Во истину так. авторИли Вы о чем-то другом? Не всегда член команды на 100% уверен, что знает ВСЕ места, где юзается код, который он правит. Как говорится, одно лечим, другое калечим. Мы внедряем чужую систему с огромным количеством чужого кода, в которое добавлено некоторое количество своего кода. Иногда внесение изменений в свой код приводит к неожиданным последствиями. В этом случае важно быстро разобраться в чем проблема. А это легче понять, если знать кто и что делал в последние дни. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2007, 13:31 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
Calm я понял Вашу ситуацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2007, 13:36 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
CalmНе всегда член команды на 100% уверен, что знает ВСЕ места, где юзается код, который он правит. Как говорится, одно лечим, другое калечим. Если для внесения исправлений в модуль X нужно знать, где и как этот модуль используется - значит, "что-то не в порядке" с общей архитектурой и принципами кодирования системы. CalmВ этом случае важно быстро разобраться в чем проблема. А это легче понять, если знать кто и что делал в последние дни. Это да. Правда, как мне кажется, для этого вполне хватит посмотреть в репозиторий VCS - информация будет более быстрой и более точной. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2007, 13:47 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
Alexsalog Да вообщем-то многие делают так, чтобы 1. меньше писать, а больше настраивать 2. побольше работы по настройкам свалить на пользователей. 3. чтобы как можно больше делалось автоматически, без привлечение программистов и пользователей. И подходов много. Понятно, что не имеется в наличии единого "правильного" решения. НО все - BPMS, системы докуменооборота, отчетные системы, системы на базе онтологий и т.п. все нацелены на это. Только в чем вопрос ? Делает ли кто-то сам - делают, думаю многие. Лучше вопрос конкретизировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2007, 13:53 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
CalmУверен, что интересует многих. Мне эта область программирования наиболее интересна. Хотя, думаю, единого алгоритма нет и не должно быть. Просто имхо надо создавать такой код, который можно будет потом подвергнуть изменениям, т.е. рефакторингу. Согласно одной книжке: если система хорошо спроектирована, то значит ее можно подвергнуть рефакторингу... Изначально написать самый оптимальный с минимумом повторений код нереально, если только будет полное ТЗ до мелочей(адакий томик на пару сотен страниц) и оно не будет меняться! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2007, 14:47 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
1.Для быстрой разработки клиент сервеного приложения с большим количествои форм и табличек полагаю нужно использовать отличные от C#.NET инструменты, например J2EE, Oracle Forms, Delphi 2.Во избежание переписывания однофункционального кода разными программистами: а.качественное проектирование б.контроль написанного кода коллегой или руководителем групппы. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2007, 21:30 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
DVE1.Для быстрой разработки клиент сервеного приложения с большим количествои форм и табличек полагаю нужно использовать отличные от C#.NET инструменты, например J2EE, Oracle Forms, Delphi 2.Во избежание переписывания однофункционального кода разными программистами: а.качественное проектирование б.контроль написанного кода коллегой или руководителем групппы. Вот тут спор на соседней ветке про то что лучше C# или С++, так вот, мне этот спор (в современных условиях в переносе на современный технологический уровень) напоминает спор жителей двух африканских племен - что вот грошки глиняные делать чисто руками или деревянный скребок использовать? Ко мне давеча подошел наш маркетолог и говорит нужно блокировать возможность продаж через чистему при условии что товар обладает свойтсвом А, клиент свойством Б, а сектор продаж относится к сектору С. Сел рядом и начал смотреть - ну интересно ему как там и что я делать буду. Я начал "шерстить" сохраненные процедуры, справочники и таблицы. Он и спрашивает - а что не т такого места в системе в котором эти условия нужно прописать логическими формулами и все будет работать. Я говорю - нет, нужно произвести изменениия не менее чем в трех процедурах и еще одной программе которая печатает отчет. Потому что понятие продажи включает в себя: 1) Предложение клиенту 2) Прием о обработка заявки 3) Отгрузка 4) Распечатка документов Он офигел (маркетолог). Как я уже писал в предыдущих постах одно и тоже "знание" о процесее применяется в различных частях систмы при её проектировании и воплощении в кодах, в различных её уровнях и на разлдичных этапах её рабочего цикла. Нужен инструмент (язык программирования) позволяющий создавать сущности , которые могут одновременно участвовать в отношениях со многими другими сущностями, которые в свою очередь.. и так далее. Даже функциональные языки в этом смысле говорят только "а" но не говорят "б". Они (эти языки) уходят императивных многословий, сокращая код и увеличивая выразительноть программ путем задания логический условий (отношений) в контексте (в среде) некого испольнителя способного "понимать" эти условия и действовать сообразно им. Но эти "исполнители" даже в функциональных программа, как бы это сказать - МОНОГАМНЫ и холтя сокращают программы избегая императивнях команд, тем не менее не решают проблемы многосвязаннсти (и вслед за ней логической целостности и централицазии внесения изменений) семантичсекого пространства задачи. Пример многосвязанного понятия - ПРОДАЖИ. Очень комплексное и емкое понятие. Однако есть системы (например документооборота) в которых такие емкие обхъекты "живут". Но как правило разновидности объектов заданы жестко и зашиты в кодах более низкого уровня. Объекты нельзя скрещивать и видоизменять выводя новые "сорта". Поэтому данные системы остаются безвестными и применимы только в очень специальных областях применения. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2007, 06:42 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
AlexsalogКо мне давеча подошел наш маркетолог и говорит нужно блокировать возможность продаж через чистему при условии что товар обладает свойтсвом А, клиент свойством Б, а сектор продаж относится к сектору С. Сел рядом и начал смотреть - ну интересно ему как там и что я делать буду. Я начал "шерстить" сохраненные процедуры, справочники и таблицы. Он и спрашивает - а что не т такого места в системе в котором эти условия нужно прописать логическими формулами и все будет работать. Приведенная Вами задача хорошо ложится на BPMS. Но в моем видении BPMS пока не хватает онтологичности. То, что вы дальше пишете , в чистом виде онтологический подход. Но реализация таких систем - это процесс , т.е. он идет. (сами по себе системы проектирования онтологий - они есть и их много и давно, а вот системы реализующие деятельность на базе таких описаний - это реже. Бесспорно, они тоже есть, но их не всеобъемлюще. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2007, 10:16 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
AlexsalogОн и спрашивает - а что не т такого места в системе в котором эти условия нужно прописать логическими формулами и все будет работать. Я говорю - нет, нужно произвести изменениия не менее чем в трех процедурах и еще одной программе которая печатает отчет. Он офигел (маркетолог). я бы, честно говоря, тоже офигел. Все таки какая сложная наука - проектирование систем. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2007, 20:19 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
Mainframe_старый Приведенная Вами задача хорошо ложится на BPMS. каким образом? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2007, 20:20 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
Mainframe_старый AlexsalogКо мне давеча подошел наш маркетолог и говорит нужно блокировать возможность продаж через чистему при условии что товар обладает свойтсвом А, клиент свойством Б, а сектор продаж относится к сектору С. Сел рядом и начал смотреть - ну интересно ему как там и что я делать буду. Я начал "шерстить" сохраненные процедуры, справочники и таблицы. Он и спрашивает - а что не т такого места в системе в котором эти условия нужно прописать логическими формулами и все будет работать. Приведенная Вами задача хорошо ложится на BPMS. Но в моем видении BPMS пока не хватает онтологичности. То, что вы дальше пишете , в чистом виде онтологический подход. Но реализация таких систем - это процесс , т.е. он идет. (сами по себе системы проектирования онтологий - они есть и их много и давно, а вот системы реализующие деятельность на базе таких описаний - это реже. Бесспорно, они тоже есть, но их не всеобъемлюще. Я находил в инете только касательно баз знаний. Говоря обращзно на базе онтологий реализуются пассивные ХРАНИЛИЩА. Если можно - есть ли пример системы на баще онтологий с "активной жизненой позицией"? Которая что то делает и обрабатывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2007, 06:56 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
Alexsalog Я находил в инете только касательно баз знаний. Говоря обращзно на базе онтологий реализуются пассивные ХРАНИЛИЩА. Если можно - есть ли пример системы на баще онтологий с "активной жизненой позицией"? Которая что то делает и обрабатывает. Правильно. Но это день сегодняшний. Хотя и тут не совсем корректно. У IBM есть исследовательская лаборатория в Германии, они там занимаются онтологическим системами, как активными, я где-то в этом форуме давала ссылку на их статью. Мы делаем такую систему для своих задач. Т.е. на описании онтологий выполняются различные процедуры, в том числе для автоматизации некоторых процессов. Ну и естесвенно и для хранилища, и для очтетов. Еще, например, у нас система управления контентом сайта сейчас сделана на такой системе, сейчас делаем документооборот. Внедрили пару подсистем документооборта (хотя там плюс еще управление процессами вставлено), делаем дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2007, 07:28 |
|
Качественная разработка приложений
|
|||
---|---|---|---|
#18+
iscrafm Mainframe_старый Приведенная Вами задача хорошо ложится на BPMS. каким образом? :) Ну там же бизнес-правило, если стоиомсть ниже того-то, если у клиент свойство равно тому-то и еще какое-то условие, то ...то просто в орекестровке процесс продажи станет доступен пользователям с одной ролью, а иначе - с другой. В общем-то нормально вписывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2007, 07:32 |
|
|
start [/forum/topic.php?fid=33&msg=34916333&tid=1548911]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
128ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 238ms |
0 / 0 |