powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Общие принципы построения приложения в FoxPro
25 сообщений из 424, страница 4 из 17
Общие принципы построения приложения в FoxPro
    #38132184
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM

В этот раз не спорю, при работе с базами данных в Фоксе достаточно проблем.
Да и с отчетами порой тоже, иной раз такие навороты бывают.

Но что мешает именно в приложении решать именно эти конкретные проблемы.
А где их нет, использовать наработанные решения, собранные в Главном модуле.
До вплоть я не "утверждал, может быть где неясно выразился.
Да и в Tastrade, да и в самом VFP9 работа с базами данных достаточно унифицирована.
Поэтому меня и удивил перенос этих вопросов в формы.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38132525
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12Свежий пример, кусок кода из соседней темы:

Код: sql
1.
2.
3.
4.
LParameters tnID
if type("m.tnID") <> 'N' or m.tnID <= 0
    m.tnID = 0
endif


Убейте меня, ну не пойму я - почему лучше в каждой форме нужно героически сочинять эти коды, если эти вопросы можно решить один раз в базовом модуле для всех форм.
Насколько я понимаю, именно в этом и заключается Ваша проблема. Вы действительно считаете, что ответ на вопрос вроде "как передать параметр в форму?" должен начинаться с объяснения того, как создать класс? Ну, то, что Вы называете "базовым модулем всех форм".

Вы вообще понимаете, чем различаются такие вопросы:

- Как "в принципе" можно решить данную проблему?
- Как написать собственный FrameWork?

Обычно в данном форуме задается вопрос вроде: Как, какой командой/приемом, сделать то или иное.

Вы же вместо ответа на этот вопрос начинаете объяснять про построение собственного FrameWork. Причем проблема в том, КАК Вы это объясняете. Само слово FrameWork или аналогичный ему термин (пусть и Ваш собственный) Вы вообще не применяете. Вы строите ответ таким образом, как будто факт построения FrameWork позволит решить частную (конкретную) задачу. Ну, построю я его. А как проблему-то решить? А вот именно про это Вы как раз ничего и не говорите!

- С чего Вы вообще решили, что никто из программистов не имеет собственного FrameWork?
- С чего Вы вообще решили, что никто из программистов не понимает, что повторяющиеся куски кода следует выносить в некую общую библиотеку?
- С чего Вы вообще решили, что для объяснения способа решения той или иной задачи необходимо СНАЧАЛА предложить построить FrameWork?
- С чего Вы вообще решили, что кем-то созданный FrameWork подойдет для решения ЛЮБОЙ задачи?

Построение собственного FrameWork в FoxPro - это дело сугубо частное. Можно сказать, интимное Никто и никогда не возьмет чужой FrameWork для создания собственного приложения. Разве что, отдельные приемы.

Вот Вы активно рекламируете собственный FrameWork. Но даже те куски, которые Вы показываете, вызывают недоумение, поскольку совершенно не понятно, при каких условиях получился именно ТАКОЙ FrameWork. Что же у Вас за задачи-то такие, что нужно писать именно ТАКОЙ код? Это вовсе не значит, что то, что у Вас сделано - плохо. Это всего-лишь означает, что Ваш FrameWork "заточен" под решение определенных задач. Для этих задач, вероятно, он хорош. Но ведь у других людей и задачи совсем другие! Зачем же им "впаривать" заведомо неприемлимые решения?
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38132645
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ

Во-первых, очень приятно, что вы чуток сбавили тон. Если еще на полтона убавите, то вообще отлично будет.

Базовые классы не я придумал. Они находятся в директории FFC, файлы _base.vcx/_base.vct, можете убедиться.
Если мне ни изменяет память, они уже и в Tastrade были.
Открыв эту библиотеку, вы лично можете убедиться, что там действительно имеется базовая форма.
Дочерние от него объекты уже можно специализировать - для работы с таблицами в основном через грид, для справочников, диалогов, модальных форм и т.д.

Термин FramеWork я не применяю оттого, что у вас известныеt затруднения с этим объектом и перешел на ваш термин - Главный модуль.
У кого в заначке какой FrameWork я не знаю. Разве что на своем сайте Urfin пытался, но вышло очень тяжеловесно и непрактично.
Что вы вкладываете в этот термин - непонятно. Набор классов в приложении типа "свой/чужой/интим", даже если они супер - это еще не FrameWork, вы путаете понятия.
Примеров выноса в общую библиотеку я не видел - наоборот, годами новички постоянно тыкаются с базовыми вопросами.

О каких ваших "туманных" задачах и проблемах вы постоянно интригующе толкуете, я не знаю. Что у вас там не решается - тоже.
Как может FrameWork заточен под какие-то задачи - непонятно, у вас только одни общие абстрактные фразы.

Никакой собственный FrameWork я не рекламирую - несколько кусков кода погоды не делают.
Если вы намекаете на _application, то у меня там всего несколько простых процедур, в кармане фиги нет:
OnShutdown - ничего нового,
DoApp - для поочередного запуска вышеуказанных процедур из oSetting при Otkr/Zakr,
Utils - сборник часто вызываемых небольших процедур.
Чем они вас так напугали, что они могут вам "впарить" - непонятно.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38132790
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12ВладимирМ
Во-первых, очень приятно, что вы чуток сбавили тон. Если еще на полтона убавите, то вообще отлично будет.Не обольщайтесь... Он не сбавил - он решил пообщаться на вашем языке и уровне

Остальное ваше словописание - ни о чём. На таком уровне общаться никто не будет, и обсуждать "поднимаемые вами вопросы" - тоже.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38132933
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMsg12ВладимирМ
Во-первых, очень приятно, что вы чуток сбавили тон. Если еще на полтона убавите, то вообще отлично будет.Не обольщайтесь... Он не сбавил - он решил пообщаться на вашем языке и уровне

Остальное ваше словописание - ни о чём. На таком уровне общаться никто не будет, и обсуждать "поднимаемые вами вопросы" - тоже.

А я и не обольщаюсь.
Все эти застарелые догмы восьмилетней давности меня нисколько не удивляют.
И не думаю, что мои несколько постов по делу, которые я успеваю вставлять между ответами на наезды и глупые поучения, что-то изменят.
И этот уровень не мной установлен, он был до меня.
Также как и безрезультатность большинства обсуждений на фокс-форумах.
В фоксе ничего никогда не меняется, это прописная истина.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38132937
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12Во-первых, очень приятно, что вы чуток сбавили тон. Если еще на полтона убавите, то вообще отлично будет.
Тон я и не менял. Это Вы почему-то читаете не то, что написано. Постоянно "перевираете" и как-то странно интерпретируете написанный текст. Я все-таки пытаюсь разговаривать с Вами исходя из предположения, что Вы сюда не просто поболтать заскочили. А все-таки хотите что-то понять/узнать/уточнить.

sg12Базовые классы не я придумал. Они находятся в директории FFC, файлы _base.vcx/_base.vct, можете убедиться.
Если мне ни изменяет память, они уже и в Tastrade были.
Открыв эту библиотеку, вы лично можете убедиться, что там действительно имеется базовая форма.
Опять не понятно о чем Вы вообще говорите. Да, есть библиотека FFC. Да, в этой библиотеки все классы созданы на основе специализированной библиотеки классов с именем _Base. Вероятно, основываясь на имени библиотеки Вы и использовали термин "базовые классы". И что из этого следует?...

Замечу, что в данном случае Вы именно что "придумали" термин. "Придумали" в том смысле, что никому кроме Вас не пришло в голову ассоциировать данный термин с библиотекой FFC.

В FoxPro "базовыми" называются классы, которые не были унаследованы от каких-либо других классов. Т.е. это классы Form, Custom, TextBox и т.п. Базовые классы в Visual FoxPro Обратите внимание, что все классы в библиотеке _Base именно что унаследованы от других классов. Т.е. "базовыми" с точки зрения FoxPro - не являются. Хотя, разумеется, подобную библиотеку можно назвать базовыми классами приложения FFC.

sg12Дочерние от него объекты уже можно специализировать - для работы с таблицами в основном через грид, для справочников, диалогов, модальных форм и т.д.
Да. Это стандарт создания иерархии классов. Очевидно настолько, что непонятно, зачем такую тривиальную мысль вообще озвучивать.

sg12Термин FramеWork я не применяю оттого, что у вас известныеt затруднения с этим объектом
Не понял, о каких затруднениях и с каким объектом Вы говорите. Термин FramеWork - это общеупотребительный термин, описывающий некий набор "заготовок" для разработки собственных приложений

sg12и перешел на ваш термин - Главный модуль.
Я такого термина не употреблял. Если Вы говорите о главном ФАЙЛЕ приложения (о котором была статья), то никто и никогда не использует ОДИН файл как целую библиотеку. Нет, разумеется, ТАК тоже можно. Но я как-то с трудом представляю процесс модификации подобной "простыни".

sg12У кого в заначке какой FrameWork я не знаю. Разве что на своем сайте Urfin пытался, но вышло очень тяжеловесно и непрактично.
Что вы вкладываете в этот термин - непонятно. Набор классов в приложении типа "свой/чужой/интим", даже если они супер - это еще не FrameWork, вы путаете понятия.
Проблема как раз в том, что я то пытаюсь пояснить о чем я говорю, а вот о чем Вы говорите - неизвестно. А FrameWork - это довольно устоявшийся термин. Некий "каркас" того, как Вы создаете все свои приложения. Фреймворк

sg12Примеров выноса в общую библиотеку я не видел - наоборот, годами новички постоянно тыкаются с базовыми вопросами.
Еще раз. Если новичек спрашивает о том, как передать параметр в форму, то ЧТО Вы ему ответите? Какое отношение "общая библиотека" имеет к подобному вопросу?

sg12О каких ваших "туманных" задачах и проблемах вы постоянно интригующе толкуете, я не знаю. Что у вас там не решается - тоже.
Как может FrameWork заточен под какие-то задачи - непонятно, у вас только одни общие абстрактные фразы.
Разве не Вы это написали для кнопок "Добавить, Изменить, Удалить"

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
LPARAMETERS tcCase
DOCASE
CASE tcCase == 'Add'
***
CASE tcCase == 'Delete'
***
CASE tcCase == 'Edit"
***
ENDCASE



А когда я Вас попросил привести практический пример того, когда подобный код действительно понадобился бы для кнопок , Вы скромно промолчали. В своей практике я не встречал задач, когда ТАКОЙ код был бы уместен именно для кнопок . Однако Вы его используете. По крайней мере, он Вам кажется вполне уместным. Значит, Ваша задача как-то принципиально отличается от тех задач, с которыми сталкиваюсь я. Вот я Вас постоянно и спрашиваю, какие же у Вас задачи, чтобы использовать подобный код кнопок?

sg12Никакой собственный FrameWork я не рекламирую - несколько кусков кода погоды не делают.
FrameWork - это прежде всего ИДЕЯ того, как "надо". Как "правильно" с Вашей точки зрения. Вот Вы настойчиво пытаетесь всех убедить, что НАДО делать некий общий метод для кнопок в который передавать параметр Add/Delete/Edit. А подобный подход соответственно заставляет строить и все остальное приложение. С моей точки зрения для кода кнопок ТАК делать не имеет смысла. Соответственно моя структура приложения, мой FrameWork, примет принципиально другой вид.

sg12Если вы намекаете на _application, то у меня там всего несколько простых процедур, в кармане фиги нет:
OnShutdown - ничего нового,
DoApp - для поочередного запуска вышеуказанных процедур из oSetting при Otkr/Zakr,
Utils - сборник часто вызываемых небольших процедур.
Чем они вас так напугали, что они могут вам "впарить" - непонятно.
Про них я вообще ничего не говорю. Я просто в очередной раз пытаюсь понять о чем Вы вообще говорите. Имеет смысл дальше с Вами продолжать разговор или нет. Есть вообще предмет для дискуссии или Вам лишь бы "себя показать"? Вы готовы слушать других или слышите только себя?
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38132940
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12Базовые классы не я придумал. Они находятся в директории FFC, файлы _base.vcx/_base.vct, можете убедиться.
Убедился. Только их придумал микрософт. Им и предъявляй свои претензии.
Все воспринимают эту поделку как пример кода, из которого при желании можно чего-нибудь позаимствовать. Если же ты думаешь что это надо воспринимать как единственно возможный способ разработки, то тебе прямая дорога в 1С. Там все как ты хочешь: объекты-обертки, шаг в сторону он них невозможен, т.к. ничего другого нет. Все просто и однозначно - либо так как решила 1С, либо никак.

sg12Что вы вкладываете в этот термин - непонятно. Набор классов в приложении типа "свой/чужой/интим", даже если они супер - это еще не FrameWork, вы путаете понятия.
...
О каких ваших "туманных" задачах и проблемах вы постоянно интригующе толкуете, я не знаю. Что у вас там не решается - тоже.
Как может FrameWork заточен под какие-то задачи - непонятно, у вас только одни общие абстрактные фразы.
У тебя нет опыта разработки на фоксе. Поэтому тебе непонятно разницы между теорией и практикой.

Вот топик такого же чудо-кодера только перешедшего на Си.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38132979
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM

Вот вы тут же получили подтверждение, как ответ на ваш вполне серьезный вопрос - сразу два поста.
Много ли среди этой писанины вопросов, заслуживающих внимания и решение которых принесет хоть какой-то, но результат.
Придется опять выискивать крупицы.

И если мои ответы у кого хоть немного пошатнут веру в авторитеты и стереотипы, то этого достаточно.
И даже если я всерьез засяду на несколько месяцев, чтобы показать этот "чудо-фреймворк", от этого ничего не изменится.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38132992
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А оно и не нужно - кому-то что-то показывать. Всё равно все останутся при своём мнении.
Я своё уже высказал - я не буду "унифицировать" код, не требующий повторного использования. Поскольку сейчас не занимаюсь постоянным решением однотипных задач в одной предметной области... В случае же, если такое произойдёт - сначала будем думать, а затем уже кодить. Или воспользуемся готовыми или совместными разработками. В любом случае, полная (или стремящаяся к таковому) унификация - это область приложения сил коллективов разработчиков, направленная на продвижение продукта в несколько областей - что, по определению, не может требоваться от программистов, не работающих в крупных проектах или корпорациях...
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38133024
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ,

Услышал я вас.
Хорошо, пусть будет по-вашему - не так и не то, да что-то, да и все, я назвал.
Что от этого изменится.

Если вы за восемь лет не сумели написать даже учебный пример - вы сейчас это сможете сделать?
Вот вы дали ссылку на Википедию, блеснули - вы сами читали эту статью? Теперь вы знаете, что это такое.
Уважаемый ГУРУ, хоть после этого вы сможете написать этот фреймворк?
Где как раз и будет решение - "как передать параметр в форму", я вам распишу этот ваш LPARAMETERS.

Эти "Добавить, Изменить, Удалить" для вас уже как красная тряпка для быка.
Опять я конкретно - выложьте свои решения, и я покажу вам, как их оставить так, как вы хотите. Ни одной вашей буковки не трону, обещаю.
Нашли проблему, детсад какой-то.
О каких своих "секретных" задачах вы все время морочите мне голову?
Посмотрите, в теме сколько конкретных вопросов я вам задал, могу их повторить - когда вы сможете ответить хоть на один из них?
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38133025
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tsg12Базовые классы не я придумал. Они находятся в директории FFC, файлы _base.vcx/_base.vct, можете убедиться.
Убедился. Только их придумал микрософт. Им и предъявляй свои претензии.
Все воспринимают эту поделку как пример кода, из которого при желании можно чего-нибудь позаимствовать. Если же ты думаешь что это надо воспринимать как единственно возможный способ разработки, то тебе прямая дорога в 1С. Там все как ты хочешь: объекты-обертки, шаг в сторону он них невозможен, т.к. ничего другого нет. Все просто и однозначно - либо так как решила 1С, либо никак.

sg12Что вы вкладываете в этот термин - непонятно. Набор классов в приложении типа "свой/чужой/интим", даже если они супер - это еще не FrameWork, вы путаете понятия.
...
О каких ваших "туманных" задачах и проблемах вы постоянно интригующе толкуете, я не знаю. Что у вас там не решается - тоже.
Как может FrameWork заточен под какие-то задачи - непонятно, у вас только одни общие абстрактные фразы.
У тебя нет опыта разработки на фоксе. Поэтому тебе непонятно разницы между теорией и практикой.

Вот топик такого же чудо-кодера только перешедшего на Си.

ДимаТ. Сами как думаете, что я должен ответить на эти ваши глупости.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38133258
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TПеременная loform локальная и при добавке LINKED запущенную форму пользователь вообще не увидит, т.к. она тут же закроется после отработки приведенного мной кода.

Образец как запускать формы я вам нашел - он находится в директории Wizards, appwiz-wzapplication-doform.
По-моему, он идет еще с VFP3 и там попроще, но это вам к Владимиру М.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38133291
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12Образец как запускать формы я вам нашел - он находится в директории Wizards, appwiz-wzapplication-doform.
По-моему, он идет еще с VFP3 и там попроще, но это вам к Владимиру М.
Молодец. Только он мне не нужен. Я без него обхожусь.
Оставь себе эти знания. Если кто из новичков спросит - поделишься.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38133323
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tsg12Образец как запускать формы я вам нашел - он находится в директории Wizards, appwiz-wzapplication-doform.
По-моему, он идет еще с VFP3 и там попроще, но это вам к Владимиру М.
Молодец. Только он мне не нужен. Я без него обхожусь.
Оставь себе эти знания. Если кто из новичков спросит - поделишься.

Показал бы, как обходишься.
Или тоже "засекречено"?
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38134068
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12Показал бы, как обходишься.
Или тоже "засекречено"?
я вроде уже показывал. Повторяю:
Код: sql
1.
DO FORM MyForm ...
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38134127
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tsg12Показал бы, как обходишься.
Или тоже "засекречено"?
я вроде уже показывал. Повторяю:
Код: sql
1.
DO FORM MyForm ...



Такими ГУРУ становятся скромными ... временами.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38134173
GermanGM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
off
sg12, А отчего это фотомордочка у тебя на фотке вКонтактике такая тоскливая? Скорбишь о нелегкой судьбе "неправильных" программистов чтоль?
ты бы хоть ник сменил, придурок :)
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38134189
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЕсть объект ShellLink. Как пользоваться ищи в инете. Я на Сях его пользовал.
http://msdn.microsoft.com/en-us/library/windows/desktop/bb776891(v=vs.85).aspx

Надо же, такую толстую книгу осилили, да еще на английском, да еще на Сях ...
Может блеснете эрудицией на русском, да в Фоксе.
Хотя бы что-нибудь вроде небольшой учебной статьи ... для новичков.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38134204
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12Услышал я вас.
Вы так ничего и не поняли. Тем более не услышали.

Прежде, чем начать создавать НОВОЕ приложение, программист должен получить ответы на множество вопросов. Примерно таких:

- Будут ли в качестве хранилища данных использоваться файлы DBF или "промышленная" СУБД (MS SQL, Oracle, MySQL и т.п.)
- Будет ли приложение работать с модальными или не модальными формами
- Будет ли управление осуществляться через кнопки на форме, ToolBar или системное меню
- Будут ли записи редактироваться в отдельной форме или в форме со списоком
- Будет ли навигация по записям осуществляться через формы со списком или при помощи кнопок Вперед/Назад
- ...


А теперь вопрос непосредственно Вам

Будут ли классы, созданные для приложения СУЩЕСТВЕННО отличаться в зависимости от ответов на эти вопросы? Или классы, в принципе, будут одинаковые, но с некторыми (незначительными) отличиями?

Очень большая просьба ответить только "Да, будут существенные отличия" или "Нет, в целом все одинаково". Никаких комментариев не надо. Просто Да/Нет.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38134242
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМsg12Услышал я вас.
Вы так ничего и не поняли. Тем более не услышали.

Прежде, чем начать создавать НОВОЕ приложение, программист должен получить ответы на множество вопросов. Примерно таких:

- Будут ли в качестве хранилища данных использоваться файлы DBF или "промышленная" СУБД (MS SQL, Oracle, MySQL и т.п.)
- Будет ли приложение работать с модальными или не модальными формами
- Будет ли управление осуществляться через кнопки на форме, ToolBar или системное меню
- Будут ли записи редактироваться в отдельной форме или в форме со списоком
- Будет ли навигация по записям осуществляться через формы со списком или при помощи кнопок Вперед/Назад
- ...


А теперь вопрос непосредственно Вам

Будут ли классы, созданные для приложения СУЩЕСТВЕННО отличаться в зависимости от ответов на эти вопросы? Или классы, в принципе, будут одинаковые, но с некторыми (незначительными) отличиями?

Очень большая просьба ответить только "Да, будут существенные отличия" или "Нет, в целом все одинаково". Никаких комментариев не надо. Просто Да/Нет.

Никаких этих проблем нет.
Вашего "множества вопросов" в вашей интерпретации тоже нет, все они уже находится в framework в уже готовом виде.
В одних и тех же классах, только в разных процедурах.
А из предложения они вызываются, меняется только строка вызова, на выбор.
Без никаких ультиматумов "или-или", они друг другу не противоречат.

Например, так:
goApp.oObj.DoForm('Modal')
goApp.oObj.DoForm('Dialog')
goApp.oObj.DoToolbar()
goApp.oObj.DoMenu()
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38134250
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12,

Извиняюсь, оговорился - "из приложения".
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38134466
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно рассмотреть на более простом примере - чуть выше я упоминал о процедуре DoNavigate.
Она не зависит от того, откуда ее вызвали - из Toolbar, меню, группы кнопок CommandGroup или др.
Вызов везде одинаков, примерно так: goApp.oTable.DoNavigate('Top').
И эти вызовы могут работать из разных мест, они не мешают друг другу.

Эти объекты тоже универсальны (меню можно написать в виде процедуры), не зависят от таблицы, которая при необходимости может передаваться как параметр.
И тоже могут реализованы в Framework.
А в приложении создаются только необходимые дочерние объекты, с которыми и работает приложение.
Хотя те же кнопки ничто не мешает установить на формы из фреймворка при необходимости.
И также ничто не мешает в приложении создавать другие объекты с теми же вызовы.
Точнее будет - подобную команду вызова можно дать откуда угодно.
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38134478
sg12...пропущено...
Никаких этих проблем нет.
Вашего "множества вопросов" в вашей интерпретации тоже нет, все они уже находится в framework в уже готовом виде.
В одних и тех же классах, только в разных процедурах.
А из предложения они вызываются, меняется только строка вызова, на выбор.
Без никаких ультиматумов "или-или", они друг другу не противоречат.


Что-то эти высказывания мне напоминают концепцию сервера приложений в трехзвенной архитектуре... Тот же самый слой абстрагирования представления данных (тонкий клиент) от платформы хранения данных (сервер)...
Плохо это или хорошо - не знаю... Но как "клиент-сервер", так и "трехзвенка" живут и развиваются... И так же идут споры о том, какая из технологий круче....
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38134494
sg12,
Возможно, я был не совсем прав в моем предыдущем сообщении и Ваши "принципы" скорее чем-то напоминают паттерны (шаблоны) проектирования. Например, такой:
Паттерн Mediator (посредник)
Назначение паттерна Mediator

Паттерн Mediator определяет объект, инкапсулирующий взаимодействие множества объектов. Mediator делает систему слабо связанной, избавляя объекты от необходимости ссылаться друг на друга, что позволяет изменять взаимодействие между ними независимо.
Паттерн Mediator вводит посредника для развязывания множества взаимодействующих объектов.
Заменяет взаимодействие "все со всеми" взаимодействием "один со всеми".

Решаемая проблема

Мы хотим спроектировать систему с повторно используемыми компонентами, однако существующие связи между этими компонентами можно охарактеризовать феноменом "спагетти-кода".

Спагетти-код - плохо спроектированная, слабо структурированная, запутанная и трудная для понимания программа. Спагетти-код назван так, потому что ход выполнения программы похож на миску спагетти, то есть извилистый и запутанный.
...
Только использовать паттерны (шаблоны) или нет - каждый решает сам. Они тоже не всесильны и у них есть слабые места... Все это обсуждается в специальной литературе...
...
Рейтинг: 0 / 0
Общие принципы построения приложения в FoxPro
    #38134542
sg12Dima T,

Нет, мы будем делать так и только так.
Эти коды отладим, один раз, и ошибки будут возникать только когда в эти процедуры будут передаваться неверные параметры.
Строка вызова увеличится только на один параметр.
И с макроподстановками разберемся, не надо преувеличивать.
А в тех немногих случаях когда критично, ничто не мешает вам в приложении использовать свои процедуры, и только когда в этом возникнет необходимость.

Что изменится? Главный модуль "похудеет" и станет менее "страшнее" на пять процедур, и это только начало.
А для работы с этими процедурами напишем объект класса CommandGroup с тремя кнопками, который будем навешивать на формы.
Или два класса - по 3 и 2, кому что по вкусу.
Т.е. избавим наши формы от необходимости чуть не в каждой писать индивидуально эти же процедуры, от которых рябит в глазах.
Нашел интересную статейку: О повторном использовании кода
цитата оттуда:
О повторном использовании кода...
Преждевременное обобщение

Каждый уважающий себя разработчик знает цитату Кнута о злобной преждевременной оптимизации, которая может привести к невероятно быстрому коду (правда, обычно не в тех местах, что нужно), прочитать и понять который со временем не сможет и сам автор. Но поскольку сейчас наиболее затратной частью многих систем является не производительность, а эффективность разработки, то вместо преждевременной оптимизации все чаще можно столкнуться с проблемой «преждевременного обобщения» (premature generalization).

По сути, преждевременное обобщение сводится к созданию более сложного решения в надежде на повторное использование или на «гибкость», которая позволит справиться с будущими изменениями. Но, как это обычно бывает, «гибкость» оказывается не такой и гибкой, требования начинают меняться не в ту сторону, в результате трудозатраты не оправдываются и команда получает более сложное решение, хотя могла бы обойтись и более простым. ... В результате, каждый проект обрастает кривыми библиотеками и фреймворками, использовать которые неудобно, а сопровождать – дорого.

Проблема в том, что затраты на дизайн, реализацию и сопровождения публично доступного кода на несколько порядков выше стоимости сопровождения простого кастомного решения. Начинается все с того, что реюзабельный код требует более полной и подробной документации, лучшего качества и покрытия тестами, примеров использования и пользовательской документации. Даже если код предназначен для повторного использования внутри команды, то его качество и простота использования должны быть такими, чтобы программисту было экономически выгодно разобраться в вашем решении, а не городить свой собственный любимый огород. И я уже не говорю о необходимости культуры повторного использования, без которой вся идея «реюза» накроется медным тазом благодаря всеми любимому симптому NIH (Not Invented Here).

... Многие считают, что «обобщенное» решение (с кучей возможностей для расширения) является лучшим способом справиться с будущими изменениями. Возможно это и так, но практика показывает, что с этого пути очень легко скатиться к громоздкому коду, который сложно понять (ведь он может все) и сопровождать. ... программисты (и архитекторы) плохо угадывают, что именно будет изменяться в будущем и какие новые потребности появятся. А раз так, то нет ничего лучше простого решения, которое можно легко адаптировать под изменяющиеся требования путем его модификации.

Все эти сложности не говорят о том, что заниматься повторным использованием глупо. Нет. Аналогично тому, как оптимизация производительности должна осуществляться после профилирования, так и обобщение должно осуществляться вОвремя: не во время разработки самой «фичи», а на более поздних этапах, когда команда понимает, куда будут направлены возможные изменения и, что нужно обобщать, а что – нет.
...
Рейтинг: 0 / 0
25 сообщений из 424, страница 4 из 17
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Общие принципы построения приложения в FoxPro
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]