Энциклопедия руководств по созданию "веллосипедов"

Тема в разделе "WASM.HEAP", создана пользователем Rockphorr, 20 июн 2011.

  1. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    Вообщем часто энтузиазисты пытаются создать что-то свое с нуля - раздел проджектс у нас просто кишит подобными проетами. БОльшая часть из них так и глохнет на стадии а давайте .... Меня посетила мысль что неплохо было бы сделать энциклопедию таких велосипедов которая бы содержала описание базового функционала и технологий в нем использующихся


    ... Вся эта хрень к тому, что я надумал прикрутить сохранение конфигурации к своему командеру и пришел к выводу, что совокупность параметров конфигурации нужно хранить как примитивную БД ... нужно описание БД-велосипеда
     
  2. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Всмысле тебе надо сделать доки для работы, или ты хочешь написать статью "Как не надо делать"?
     
  3. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    я надумал прикрутить сохранение конфигурации к своему командеру и пришел к выводу, что совокупность параметров конфигурации нужно хранить как примитивную БД ... нужно описание БД-велосипеда

    можно сказать что да, нужны доки чтобы сделать свой велосипед
     
  4. weiden

    weiden pupkin

    Публикаций:
    0
    Регистрация:
    28 окт 2008
    Сообщения:
    17
  5. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Нахрена бд? У вас мульён параметров которые нужно шерстить в риалтайм?
     
  6. assume

    assume New Member

    Публикаций:
    0
    Регистрация:
    17 июн 2011
    Сообщения:
    19
    Не нужно. К примеру Mozilla Firefox юзает sqlite в качестве локальной базы. Впрочем как и масса других прог.
    Просто и доступно. У меня даже валяется исходник на ASM для работы с ней.
     
  7. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Зачем приложению хранить свои две с половиной настройки в бд? Никто конечно не запретит, просто смысл. Прочитать в мапу, серилизовать. Чего ещё надо?
     
  8. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    БД не нужна. Достаточно взять XML. Для особых эстетов можно потом на шарпе визуальный конфигуратор проги накатать за пару часов.
     
  9. gazlan

    gazlan Member

    Публикаций:
    0
    Регистрация:
    22 май 2005
    Сообщения:
    414
    http://www.garret.ru/databases.html

    Хотя, если не нужны транзакции и проч., а только быстрый индексный доступ, то лучше всего взять какое-нибудь дерево (B+Tree, например).

    SQLite, сколько помню, хранит все в виде текста, что может потребовать двойной конверсии при чтении/записи.

    Под Linux просто немеряно подобных вещей (смотрите в сторону QDBM - Quick Database Manager и клонов).

    Довольно давно, для собственных нужд, я использовал Jan Jannink B++Tree (http://infolab.stanford.edu/~jan/). Сейчас, если поискать, можно найти и другие готовые реализации.

    В отличие от BTree, в B+Tree доступ к ключам возможен как к сортированному списку, что может быть удобно/важно для некоторых приложений.
     
  10. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    Реестр - база данных
    ini-файл - очень примитивная, конечно, но база данных

    а за использование sql, пусть даже и lite, для хранения настроек (!!! сколько их там? 5, 10, 100 записей? как часто их запрашивать? по 40 раз в секунду или 1 раз в начале работы и по 1 разу при изменении?) надо по рукам бить, линейкой. Или крышкой ноута пальцы прищемлять )))
     
  11. assume

    assume New Member

    Публикаций:
    0
    Регистрация:
    17 июн 2011
    Сообщения:
    19
    А парсинг дерева XML ?
     
  12. gazlan

    gazlan Member

    Публикаций:
    0
    Регистрация:
    22 май 2005
    Сообщения:
    414
    Есть куча готовых библиотек, разной степени глючности, но, IMHO, порочна сама идея.
    Если нужно компактно + быстрый доступ - храним бинарно, организовывая в хэш, дерево или иную структуру с гарантированным временем отклика.
    Если важно readability - храним в текстовых конфигах a la *nix, пишем свой DSL для парсинга (http://en.wikipedia.org/wiki/Domain-specific_language).

    XML - лучший способ сделать все через ж... - медленно, громоздко, нечитаемо.
     
  13. assume

    assume New Member

    Публикаций:
    0
    Регистрация:
    17 июн 2011
    Сообщения:
    19
    А чем тогда использование SQLite отличается от использования библеотеки парсинга XML ?

    И то и то ресурсоемко и по сути "из пушки по воробьям" для хранения 10-20 параметров явно избыточно ....
     
  14. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    gazlan

    спасибо - покопаю на досуге
     
  15. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Лично мне нравится подход mc. Конфиг - каталог, в котором лежат несколько конфигурационных файлов - history, bindings, hotlist и т.д. Формат этих конфигов очень прост и заточен под конкретные нужды. Удобно размешать такой конфиг как в каталоге с программой так и в каталоге юзера. Не стоит искать сложностей. DLS не нужен.
     
  16. gazlan

    gazlan Member

    Публикаций:
    0
    Регистрация:
    22 май 2005
    Сообщения:
    414
    Конечно.

    Но речь, также шла и о "примитивной БД". IMHO, как раз такой случай.
     
  17. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    http://ru.wikipedia.org/wiki/MetaKit
    http://equi4.com/metakit/
    небольшой (меньше склайт), быстрый и достаточно мощный (например, поддерживает рекурсию полей таблицы, множественные операции над отображениями таблиц, объединение выборок из разных таблиц в одно отображение итд. и все это операторами. например: Vr = T1 & T2;) бд движок предназначенный для встраивания.
    написан на ++. имеет небольшой набор интерфейсных примитивов. определено довольно много операций над базами и отображениями таблиц.