OberonCore
https://forum.oberoncore.ru/

Про общеупотребимые компоненты.
https://forum.oberoncore.ru/viewtopic.php?f=47&t=4403
Страница 4 из 5

Автор:  Иван Денисов [ Понедельник, 22 Июль, 2013 19:58 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Евгений Темиргалеев писал(а):
Вам же если так не нравится, копируйте в какую-нибудь подсистему с большой буквы, и всё будет хорошо...

Да скопирую в Omc... а вот с i21sys сложнее, у всех новых модулей идут ссылки с реализацией через него. Таким образом для Красноярской сборки придется делать свой Component Store. Даже имя присмотрел — compbox.com пока свободен :)

Автор:  Евгений Темиргалеев [ Понедельник, 22 Июль, 2013 21:13 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Иван Денисов писал(а):
Евгений Темиргалеев писал(а):
Неужели Вы никогда не нарушали соглашений?...
Евгений, рад что вы признали себя нарушителем :) признать вину — пол-пути к исправлению. Разумные соглашения стараюсь на нарушать, особенно те которые разрушают красоту и гармонию Системы.
Насчёт красоты и гармонии --- то что снаружи красиво, изнутри может оказаться и неприглядно... А поскольку разбор этого вопроса проводил довольно подробно и результаты изложил письменно (см. п. 1), то Вашу точку зрения и аргументированную критику моей, был бы рад видеть в библиотеке OberonCore в виде подобной заметки...

Автор:  Иван Кузьмицкий [ Понедельник, 22 Июль, 2013 21:24 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Пётр Кушнир писал(а):
Это обычный вывод, компоненты как объект дистрибуции теряют свой смысл.
Дистрибуция переводится как "распространение". Компонентное ПО иначе как в виде компонентов построено быть не может, тем более на Обероне. Стало быть, компоненты как объект дистрибуции никогда в принципе не могут потерять свой смысл. Поэтому данный вывод ложный.

Автор:  Пётр Кушнир [ Понедельник, 22 Июль, 2013 21:29 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Но в твоём примере мы имеем ПО как объект дистрибуции, а не компонент.
Дистрибуция компонентов выглядит вот так http://oberoncore.ru/bbcc/subs/start

Автор:  Пётр Кушнир [ Вторник, 23 Июль, 2013 19:24 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Набросал пару коллекций в Lists (ассоциативный массив (пока один-к-одному) на операциях и аналог SET для произвольных объектов), засёк время. В среднем выходит по 4 часа, чтобы написать модуль простой коллекции с нуля, без всяких оптимизаций, решением "в лоб". Плюс примеры, чтобы убедиться в первичной работоспособности.

Одно облегчение было, использовал компонент ListsLinear, динамический массив (а в реализации - массив массивов, с блочным выделением ячеек), то есть, необходимости писать самое трудное не было.

Автор:  Jordan [ Вторник, 23 Июль, 2013 21:21 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Реализацию можно взять из glib, не путать с glibc. Содержит, списки, хэши, деревья и т.д

Скачать
http://ftp.acc.umu.se/pub/gnome/sources/glib/2.37/

Документация на русском.
http://www.opennet.ru/search.shtml?excl ... words=glib

Всё же легче, переделать готовую реализацию.

Автор:  Пётр Кушнир [ Вторник, 23 Июль, 2013 21:30 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

У вас 4 часа. Запускать таймер?
Компонент должен быть рассчитан на работу в ББ со сборкой мусора и прочими плюшками.

Автор:  Jordan [ Вторник, 23 Июль, 2013 21:55 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Я не для соревнования написал. Я лишь подумал, что кому то в данной теме, будет полезны исходники glib. Так как в них многое реализовано.

Автор:  Jordan [ Вторник, 23 Июль, 2013 21:57 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Если уж совсем проще, сделать биндинг к glib + звернуть по вашему способу(приводить в реал тайме).

Автор:  Пётр Кушнир [ Вторник, 23 Июль, 2013 22:03 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Многое реализовано в примерах к книге Вирта viewtopic.php?f=90&t=3373

Автор:  Иван Денисов [ Понедельник, 02 Сентябрь, 2013 17:36 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Вот решил в очередной задаче не писать с нуля Lists, в воспользоваться наработками Петра.

Компилирую... ListsObxOp
Rnd:=ypkMathRandom,
неужели в примере нельзя обойтись стандартным генератором случайных чисел?
И дальше DynStrings...

Ваши наработки было бы удобнее использовать в проектах, если было бы меньше взаимных зависимостей на разные не базовые компоненты.

Дальше некоторые размышления
Компонентный подход предполагает значительные количества дублирования кода.
То есть, существует некий баланс между повторным использованием и независимостью компонентов, у вас явный перекос в сторону интеграции всех разработанных подсистем...
Цитата:
качество дизайна определяется управлением связями, что, в частности, подразумевает под собой ослабление связей

Wiki Хрупкий базовый класс

Автор:  Пётр Кушнир [ Понедельник, 02 Сентябрь, 2013 17:44 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

А что, есть стандартный генератор?

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

Автор:  Пётр Кушнир [ Понедельник, 02 Сентябрь, 2013 17:56 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Ну и смысла дублировать везде строки, которые лежат рядом в репозитории тоже не вижу.

Автор:  Иван Денисов [ Понедельник, 02 Сентябрь, 2013 17:58 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Пётр Кушнир писал(а):
А что, есть стандартный генератор?
ObxRandom всегда идет в комплекте. Для большинства задач его хватает сполна.

Автор:  Иван Денисов [ Понедельник, 02 Сентябрь, 2013 18:01 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Пётр Кушнир писал(а):
Ну и смысла дублировать везде строки, которые лежат рядом в репозитории тоже не вижу.
Ну я же ставлю только Lists. Мне не нужен весь ypk.

И весь репозиторий я уже пытался как-то скачать, очень хотел попробовать ваш генератор релизов, у нас была уже переписка про то, что он несобираемый так как там часть закрытых модулей :) так и мучаюсь своим непатриотичным питоновским скриптом для сборки релизов приложений :(

Автор:  Иван Денисов [ Понедельник, 02 Сентябрь, 2013 18:06 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Иван Денисов писал(а):
Пётр Кушнир писал(а):
А что, есть стандартный генератор?
ObxRandom всегда идет в комплекте. Для большинства задач его хватает сполна.
Самоцитирование )) И тот содержит всего две процедуры, которые тоже копирую в код модулей, когда проект готов. Зачем таскать целую папку ради одного модуля.

Автор:  Пётр Кушнир [ Понедельник, 02 Сентябрь, 2013 18:19 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Я не готов импортировать Obx, уж извините. Всё равно что для переменной счётчика в цикле использовать Integers.
Иван Денисов писал(а):
И весь репозиторий я уже пытался как-то скачать, очень хотел попробовать ваш генератор релизов, у нас была уже переписка про то, что он несобираемый так как там часть закрытых модулей так и мучаюсь своим непатриотичным питоновским скриптом для сборки релизов приложений
Иван, я стараюсь поддерживать актуальность копии подсистемы ypk в составе репозитория bbcc из соображений вежливости. Но я не могу всё время проверять её консистентность в рамках репозитория, возможно она слишком динамичная, не могу же я обсуждать с сообществом каждую правку, у меня просто не хватит времени на код. Самую последнюю версию можно найти в репозитории bb.open, я работаю в рамках этого репозитория. По техническим вопросам я готов отвечать в конкретных темах.

Автор:  Пётр Кушнир [ Понедельник, 02 Сентябрь, 2013 18:29 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Я почему и поднимаю раз за разом эту тему, надо уже что-то придумать, будут в ББ общеупотребимые подсистемы помимо стандартных из архива сборки или не будут?
Пусть у них будет репозиторий, предельно строгие требования, куча ассертов внутри и строгий модератор. Всё же лучше, чем раз за разом копировать процедуры рандомизации или набившие оскомину преобразователи utf8 bytes <=> CHAR.
Последние я уже скопировал в StringsUtf и дал себе обещание никогда больше не копировать, [эмоции]а иначе ад и холокост. Какой там DRY, жуть же творится.[/эмоции]

Автор:  Пётр Кушнир [ Понедельник, 02 Сентябрь, 2013 18:42 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

В текущем состоянии сообщества, думаю, некому обсуждать реальное ТЗ на стандартную подсистему, а раз всем нормально и так, то наверное, правильно будет считать вопросы про невозможность компиляции моветоном. Все ж погромисты, должны понимать.

Автор:  Иван Кузьмицкий [ Понедельник, 02 Сентябрь, 2013 19:15 ]
Заголовок сообщения:  Re: Про общеупотребимые компоненты.

Иван Денисов писал(а):
очень хотел попробовать ваш генератор релизов, у нас была уже переписка про то, что он несобираемый так как там часть закрытых модулей :) так и мучаюсь своим непатриотичным питоновским скриптом для сборки релизов приложений :(
Вот вам и здравствуйте, а что там закрытого-то? Так и пылятся компоненты зазря!

Страница 4 из 5 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/