LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

Ну тогда описание архитектуры:

1. Backend: http://www.couchbase.com/download . Интерфейс к ней в процессе написания.

2. Front-end: https://github.com/Kalimehtar/gtk-cffi (уже всё рабоает, но реализованы не все виджеты).

3. Middle-tier: сервер приложений с бизнес логикой а-ля 1С. В зависимости от *feature* объекты либо по запросу все загружаются в память навсегда, либо в виде weak-ref, либо при каждом чтении берутся из couchbase (у него есть своё кэширование).

Синтаксис

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

стандартный CL также поддерживается (кроме имен функций предметной области)

(defmethod обработка-проведения ((obj поступление))
  (let ((reg (make-instance регистр:товары-на-складах)))
    (dolist (item (товары obj))
       (let ((new-str (добавить-приход reg)))
          (заполнить new-str item)
          (setf (период new-str) (дата obj))))
     (setf (getf (движения obj) 'товары-на-складах) reg)))

Критикуйте, уточняйте, если что неясно.

Исходная версия monk, :

Ну тогда описание архитектуры:

1. Backend: http://www.couchbase.com/download . Интерфейс к ней в процессе написания.

2. Front-end: https://github.com/Kalimehtar/gtk-cffi (уже всё рабоает, но реализованы не все виджеты).

3. Middle-tier: сервер приложений с бизнес логикой а-ля 1С. В зависимости от *feature* объекты либо по запросу все загружаются в память навсегда, либо в виде weak-ref, либо при каждом чтении берутся из couchbase (у него есть своё кэширование).

Синтаксис

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

стандартный CL также поддерживается (кроме имен функций предметно области)

(defmethod обработка-проведения ((obj поступление))
  (let ((reg (make-instance регистр:товары-на-складах)))
    (dolist (item (товары obj))
       (let ((new-str (добавить-приход reg)))
          (заполнить new-str item)
          (setf (период new-str) (дата obj))))
     (setf (getf (движения obj) 'товары-на-складах) reg)))

Критикуйте, уточняйте, если что неясно.