OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 22 Ноябрь, 2019 20:18

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 83 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Про общеупотребимые компоненты.
СообщениеДобавлено: Понедельник, 15 Июль, 2013 14:14 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2626
Откуда: Россия, Ярославль
Задумался тут недавно по поводу стандартной библиотеки, почитав комментарии к этому опросу http://habrahabr.ru/post/186518/.
По результатам составил небольшой список того, без чего уже ничего писать не хочется (здесь не перечислены стандартные сервисы ББ, типа Text или Forms):

  • Списки Lists (линейный список, двусвязный список, ассоциативный массив на основе двусвязного списка, и последнее время ещё и линейный список на операциях)
  • Динамические строки StringsXml в обёртке из ypkDynStrings (особой разницы между интерфейсами нет, просто исторически сложилось)
  • ypkBus (форк omcBus), в старом коде ещё и AbfBus.
  • Zlib от Штирлица
    и ещё в каком-то смысле общеупотребимые, но повыше уровнем, асинхронные агенты.
Вот из этого небогатого списка, плюс стандартные подсистемы ББ, у меня последнее время получается почти всё, что я задумал. Может, конечно, задачи однообразные или фантазия бедная :) Поэтому захотелось узнать, а у вас есть подобные общеупотребимые библиотеки? (перечисление приветствуется)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 15 Июль, 2013 15:38 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Примеры будут, как сие использовать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 15 Июль, 2013 19:02 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2430
Кроме стандартных подсистем, регулярно использую только Lib и DiaPlot. Остальные только под конкретный проект: Ctls, Sdl, FreeImage.

Постоянно смотрю в документацию, на память помню мало, поэтому интерактивная справка ББ — самое оно для меня. Списки горожу каждый раз сам, давно присматриваюсь к Lists, но есть какой-то барьер.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 15 Июль, 2013 19:53 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Иван Денисов писал(а):
Кроме стандартных подсистем, регулярно использую только Lib и DiaPlot. Остальные только под конкретный проект: Ctls, Sdl, FreeImage.

Постоянно смотрю в документацию, на память помню мало, поэтому интерактивная справка ББ — самое оно для меня. Списки горожу каждый раз сам, давно присматриваюсь к Lists, но есть какой-то барьер.


Барьер наверно в плане эффективности, а вдруг у меня быстрее работает. :)
Для моей задачи нужны были 7 списков. Сначала делал ручками, копи пастом, не то. Потом решил делать объединениями + хранить указатели на первые вхождение семи структур, для ускорения добавления и поиска в списке. Потом перешёл на С++, и делаю с помощью stl. До этого думал, что свои списки быстрее и лучше.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 15 Июль, 2013 21:03 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2932
Откуда: г. Ярославль
Jordan писал(а):
Примеры будут, как сие использовать?
Что вы имеете в виду?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 15 Июль, 2013 21:28 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Иван Кузьмицкий писал(а):
Jordan писал(а):
Примеры будут, как сие использовать?
Что вы имеете в виду?


Описание списков, массивов(векторов) и т.д Всё, что будет входить в стандартную библиотеку.

Для КП, можно сделать библиотеку exlib, которая содержит подобие stl. Главное дать программисту, только базовые конструкции типа списка, вектора, графа, стэка и т.д, что бы каждый раз не писать всё по новому. Повторное использование.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 15 Июль, 2013 21:33 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2932
Откуда: г. Ярославль
Мне стало ещё менее понятнее :) Под примером обычно понимают кусок прикладного кода, демонстрирующий способы использования библиотечных функций. А то, о чём говорите вы - не примеры, а техническое задание на стандартную библиотеку. Тут до ТЗ ещё далеко, как я понимаю, ведь тред собирает опыт использования.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 15 Июль, 2013 23:04 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9161
Откуда: Россия, Орёл
Какие-то базовые структуры для того, когда нужно хранить-работать с множеством подобъектов, типовым образом, просятся...
Но то, что обычно принято делать, не нравится, вообще... Нужно что-то ещё :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 15 Июль, 2013 23:33 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2626
Откуда: Россия, Ярославль
Что, например?
Я вот устав от постоянного приведения типов элементов списка в клиентском коде придумал такой способ работы со списком viewtopic.php?p=78013#p78013
Конечно, в основании всё равно список, но сам принцип работы с операциями слегка отличается от обычных итераторов. А вот совсем недавно внутрь получившегося интерфейса поместил работу с Mysql, где данные не хранятся в памяти ББ.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 18 Июль, 2013 08:28 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Илья Ермаков писал(а):
Какие-то базовые структуры для того, когда нужно хранить-работать с множеством подобъектов, типовым образом, просятся...
Но то, что обычно принято делать, не нравится, вообще... Нужно что-то ещё :)


Что конкретно?

Вот именно, давно просятся.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 18 Июль, 2013 10:13 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9161
Откуда: Россия, Орёл
Мне хочется какой-то стандартизированной структуры данных, сериализуемой и интероперабельной между разными языками/платформами.
Типа JSON, но он schema-free и ресурсоёмок (хотя уже полегче, чем XML).
И пытаясь решать эту задачу для древовидных форматов (допускающих вложенность), я пришёл к выводу, что оно, если имеет схему, то получается сложным.
Поэтому сейчас смотрю в сторону таблиц...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 18 Июль, 2013 11:00 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2626
Откуда: Россия, Ярославль
вы про JSON Schema или совсем нет?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 18 Июль, 2013 12:22 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2626
Откуда: Россия, Ярославль
Все в отпусках, мало ответов.

Jordan писал(а):
Примеры будут, как сие использовать?
Я сначала посчитал вас троллем, но администрация решила иначе, поэтому отвечу вам, что примеры использования обычно можно найти в составе обсуждаемой подсистемы, обычно это модули с префиксом "Obx", ну или даже "Test". Ещё можно читать документацию, в подкаталоге Docu. Обычно в опубликованных подсистемах такая имеется. Так сложилось, требование такое, вы бы знали об этом, если бы вам это было действительно интересно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Июль, 2013 12:54 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9161
Откуда: Россия, Орёл
Пётр Кушнир писал(а):
вы про JSON Schema или совсем нет?


Мда? Не знал, что есть схема для JSON...
Просто JSON-овские СУБД типа Mongo обычно schema-free...
Как-то в XML/JSON СУБД схемы не приживаются...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Июль, 2013 12:59 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2626
Откуда: Россия, Ярославль
Да, но оно пока ещё не окончательный стандарт.
Я даже думал реализовать, но потом внимание переключилось.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Июль, 2013 17:25 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4526
Откуда: Россия, Орёл
Пётр Кушнир писал(а):
Jordan писал(а):
Примеры будут, как сие использовать?
Я сначала посчитал вас троллем, но администрация решила иначе,...
"Администрация" не решала чего-либо касательно данного вопроса, а лишь указала автору темы: если он что-либо решил, то он же должен и определиться, что делать. Будьте добры изучить "новые" (утверждённые более полугода назад) правила.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Июль, 2013 21:13 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4526
Откуда: Россия, Орёл
Об "обще"употребимых компонентах, на мой взгляд, имеет смысл говорить, помятуя тематическое направление, содержащее задачи одного класса. Да и здесь субъективность может играть большую роль --- из нескольких схожих компонентов А1, А2, ..., Аn, решающих суть одну задачу, один быстрее поймет, применит (и привыкнет) к первому, другой --- к последнему. После же, по свойственной нам лени, более начинает давлеть привычка, нежели здравый смысл. И выходит у одного стандартный (для всех задач класса) --- А1, а у другого --- Аn, хотя бы по сугубой конкретике задачи и выходило наоборот (и компонентность всячески способствует замене).

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

Те же списки --- в одном месте могут быть так длинны, что хранить их придётся во внешней памяти, а в другом будет довольно фиксированной максимальной длины с хранением в статическом блоке памяти (в массиве, указатель = индекс).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Июль, 2013 21:57 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2626
Откуда: Россия, Ярославль
Кстати, подобная идея тоже обсуждалась, формировать не "стандартные компоненты вообще", а например "стандартные компоненты для SQL", "стандартные компоненты для web" и так далее. Проблем несколько, во-первых, списки компонентов будут раздельные, а компоненты хорошо бы привести хотя бы к состоянию отсутствия дублей функциональности в каждом городе необъятной Родины. И вторая проблема это наличие приложений с различными функциями, что приводит к необходимости того, чтобы эти списки компонентов могли между собой сочетаться.


Последний раз редактировалось Пётр Кушнир Пятница, 19 Июль, 2013 22:42, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Июль, 2013 22:30 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Евгений Темиргалеев писал(а):
Экстраполировать же стандартность за пределы тематического направления и вовсе пагубно. Потому как надежда на всемогую всеобще-стандартную библиотеку непосредственно отучает человека от его главной работы --- думать, подходя к задаче со тчащнием о каждой детали. Умные люди уже давно сказали --- грамотная постановка задачи --- половина решения. Но как можно точно понять задачу, опуская детали?...


Честно, и согласен, но в тоже время нет. Задач, много, но много ли задач, которым нужна тонкая настройка? То есть пишу программу, в пары мест нужно, что то своё более заточенное под задачу, а в остальных 80% кода, стандартные решения подходят идеально и естественно лучше всё остальное делать стандартным способом.

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


Именно, где нужно, будет своя реализация, а в остальном общее решение.

Пётр Кушнир писал(а):
Кстати, эта идея тоже обсуждалась, формировать не "стандартные компоненты вообще", а например "стандартные компоненты для SQL", "стандартные компоненты для web" и так далее.


Это интересно, вы не могли бы написать свои соображения по этому поводу?

Пётр Кушнир писал(а):
Я сначала посчитал вас троллем


Уверяю вас, я не троль. Я не зелёный, и не живу в лесу. :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Июль, 2013 22:57 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2932
Откуда: г. Ярославль
Jordan писал(а):
Задач, много, но много ли задач, которым нужна тонкая настройка? То есть пишу программу, в пары мест нужно, что то своё более заточенное под задачу, а в остальных 80% кода, стандартные решения подходят идеально и естественно лучше всё остальное делать стандартным способом
Разрешите подписаться. Чем писать собственные, к примеру, сортировки, лучше взять подходящую готовую из библиотеки и получить работающий прототип системы. Если в дальнейшем прижмёт с оптимизацией, можно потратиться на переписывание. К тому же, стандартные решения (подходящие для 80-90 процентов случаев), как правило, и более безопасны - потому что комьюнити уже успело наступить на все возможные грабли.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 83 ]  На страницу 1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB