Skip to content
oleg-l edited this page Apr 23, 2020 · 8 revisions

Фреймворк Z8

1. Общее описание проекта

Z8 - это фреймворк с открытым исходным кодом для разработки учётных систем от начала и до конца, включая:

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

Z8 разработан на базе Java (серверная часть) и JavaScript (клиентская часть). Основной особенностью Z8 является наличие своего собственного языка программирования - BL (от Business Logic). BL - это объектно-ориентированный язык программирования со строгой типизацией, синтаксически похож на Java, позволяет описывать классы и их поведение. При этом BL одновременно обладает характерными возможностями DDL (Data Definition Language), т.к. имеет встроенные средства описания структур баз данных, а так же практически полностью покрывает функциональность SQL в части построения запросов к базам данных, оставаясь при этом, в отличие от SQL, языком со строгой типизацией. Наконец, BL позволяет легко описывать визуальные формы для работы с данными, а также писать алгоритмы обработки данных. Z8 включает в себя компилятор языка BL в Java-код. Дальнейшая компиляция Java производится стандартным компилятором из состава JDK.

Взаимодействие с СУБД осуществляется через интерфейс JDBC, при этом в Z8 предусмотрен уровень абстракции от диалектов SQL, что позволяет поддерживать различные СУБД, в том числе: PostgreSQL, Oracle, Miscrosoft SQL Server, H2.

Клиентская часть Z8 разработана на "чистом" JavaScript без использования сторонних фреймворков. Подход к разработке клиентской части похож на фреймворк Sencha ExtJS с его объектно-ориентированным стилем описания JavaScript-классов, но значительно проще.

2. Необходимые инструменты

  • JDK 8 - OpenJDK, либо Oracle Java
  • Gradle, версия 6.2.2 (важно!) - система сборки https://gradle.org/
  • Среда разработки (IDE), одна из:
    • Eclipse - проверено, предпочтительный вариант (есть плагин для работы с файлами BL)
    • NetBeans - проверено
    • Idea