Настройка собственного генератора кода Java (хотя можно и других языков)
Начнём с JFinal-Code-Online Platform (JCOP)!
JCOP — это облегчённое ядро генератора кода, в которое можно добавить шаблоны для любых файлов, которые вы хотите создать. Абсолютная свобода! Вы этого заслуживаете!
JCOP написан на Java, разработан JFinal и представляет собой стандартный Java-проект. При использовании не зависит от IDE. Основная цель разработки — простота изучения и свобода расширения.
Можно использовать любой механизм шаблонов для генерации любого кода. В настоящее время по умолчанию предоставляется генератор кода Java и поддерживается проект в стиле JFinal Web. Вскоре будет добавлена поддержка традиционных проектов SSH.
Объём кода превышает 1000 строк. Реализованы основные функции генератора шаблонов.
Особенности
Быстрый старт
Постройте (или загрузите) и запустите jcop.war
Если вас интересует исходный код, вы можете загрузить его с GitHub или OSCGit.
Адрес исходного кода:
GitHub
git clone https://github.com/b1412/jfinal-code-online.git
OSCGIT
git clone https://git.oschina.net/zhouleib1412/jfinal-code-online.git
Если вы пользователь Gradle (версия 2.0 или выше), просто выполните gradle war для сборки проекта.
Если вы не используете Gradle, выполните скрипт проекта в пути, пользователи Windows выполняют
gradlew.bat
Пользователи Linux выполняют
gradlew
После автоматической загрузки Gradle выполните gradlew war для создания проекта (первая сборка требует загрузки зависимостей из центрального репозитория, что занимает некоторое время). После успешной сборки найдите war в следующем месте:
build/libs/jcop.war
Если вы хотите импортировать проект в IDE для отладки, пользователи Eclipse выполняют
gradlew eclipse
пользователи IDEA выполняют
gradlew idea
Запустите проект
Скопируйте jcop.war в любой контейнер сервлета (например, Tomcat, Jetty) и запустите.
Обратите внимание: необходимо сначала изменить конфигурацию базы данных в war на свой пароль базы данных, иначе запуск завершится неудачно.
Вы можете напрямую распаковать war-файл, изменить конфигурацию и запустить.
Или, если вы забыли изменить конфигурацию после неудачного запуска, вы можете распаковать файл конфигурации и изменить его позже.
Посетите главную страницу проекта http://localhost:8080/jcop (8080 — порт по умолчанию для контейнера, который можно настроить самостоятельно).
Создание проекта
Щелкните «Project Management» в списке слева.
Нажмите кнопку «Добавить» на панели инструментов списка «Project Management», чтобы ввести тестовые данные.
Сохраните тестовые данные и вернитесь к списку «Project Management».
Создание сущности
Щелкните панель инструментов «Edit Entity» в списке «Project Management», введите тестовые данные, и отобразится следующее изображение:
Щелкните кнопку «Добавить» в списке «Edit Entity», введите тестовые данные и отобразится следующее изображение:
Сохраните тестовые данные и вернитесь в список «Edit Entity».
Создайте поле
Щелкните панель инструментов «Редактировать поле» в списке «Редактировать сущность», введите тестовые данные и отобразится следующее изображение:
Щелкните кнопку «Добавить» в списке «Редактирование поля», введите тестовые данные и отобразится следующее изображение:
Сохраните тестовые данные и вернитесь в список «Редактирование полей».
Генерация проекта
Вернитесь в список «Управление проектами», выберите только что отредактированный проект, нажмите «Создать проект» и отобразится следующее изображение:
Сгенерированный код проекта находится в:
/src/main/webapp/target/YourProject
Просмотр кода в Интернете
Дважды щёлкните любой сгенерированный файл, чтобы просмотреть исходный код в Интернете.
Просмотрите проект онлайн, генерируя код одновременно с просмотром эффекта (не зависит от IDE) (с нетерпением ждём...)
Обратное проектирование (с нетерпением жду...)
Если у вас уже есть дизайн базы данных, импортируйте схему для создания проекта.
Для кого предназначен JCOP?
Начинающие JFinal
Изучая JCOP, открытую платформу JFinal, можно быстро улучшить понимание JFinal для полного проекта и быстро ознакомиться с различными функциями JFinal, в отличие от традиционного обучения демо. Используя JCOP, начинающие могут быстро создавать собственные бизнес-демонстрации и просматривать код, соответствующий стилю проекта JFinal.
Команды разработчиков, использующие JFinal в качестве основной структуры
JCOP был разработан программистами для программистов. Его модель разработки полностью соответствует традиционной модели разработки. Если команда лидеров решит использовать JFinal в качестве основного веб-фреймворка, использование JCOP может значительно сократить повторяющуюся разработку и снизить затраты на обучение новых членов команды. Основные разработчики создают бизнес-шаблоны, а новички могут использовать JCOP для создания бизнес-кода и быстро знакомиться с методами и стандартами разработки команд.
Разработчики, желающие создать генератор кода (включая пользователей, отличных от JFinal, таких как традиционные пользователи SSH)
Многие разработчики, имеющие некоторый опыт разработки, глубоко ненавидят повторяющиеся логические операции. Многие команды, помимо основных операций CRUD, имеют свои собственные часто используемые функциональные модули. Обычные инструменты генерации не предоставляют функций, и более важно то, что если вы хотите изменить и добавить свои собственные функции, стоимость обучения (например, изучение разработки плагинов Eclipse) очень высока. JCOP позволяет полностью использовать веб-технологии для расширения всего, что вы хотите, или вы можете рассматривать JCOP как прототип генератора на основе Интернета, который легко расширить.
Почему выбирают JCOP
Моделирование повторяющихся функций
Цель JCOP состоит в том, чтобы моделировать (генерировать шаблоны) общие функции, такие как CURD и проверка данных, тем самым повышая эффективность разработки и позволяя разработчикам программного обеспечения сосредоточиться на основном бизнес-логике, а не на повторяющейся логике. В этом отношении JCOP сам по себе не предоставляет слишком много функций, потому что многие платформы уже реализовали множество функций, но потребности разных пользователей различны, и платформа не стремится предоставить всеобъемлющие шаблоны. Будущие шаблоны будут постоянно расширяться, но они полностью независимы от ядра, и ядро также будет продолжать развиваться и поддерживать больше расширений.
Полная открытость
Исходный код JCOP полностью открыт, шаблоны генераторов полностью открыты, и вы можете легко добавлять свои собственные шаблоны или настраивать их в соответствии со своими командами. Поэтому при использовании JCOP вы не откажетесь от накопленных знаний и технических архитектур вашей команды, а будете использовать инструмент быстрого моделирования для существующих технологий. JCOP также является отличным инструментом обучения для JFinal с открытым исходным кодом, поскольку он сам по себе является хорошо спроектированным проектом JFinal. Хотя текущая поддержка технологий ограничена, разработчики, знакомые с другими технологиями, могут легко интегрировать свои знакомые фреймворки в платформу. Это также одна из основных целей дизайна JCOP. В отличие от некоторых платформ, управляемых моделями, с собственными правилами разработки, языками сценариев и рабочими процессами, они стали замкнутыми системами.
Не зависит от IDE
Некоторые многофункциональные платформы зависят от определённых IDE, таких как плагины Eclipse, которые удобны в использовании, но увеличивают сложность разработки и использования. JCOP не разрабатывает собственную IDE и не разрабатывает плагины, а работает как обычный стандартный веб-проект, поэтому даже если пользователь имеет свои собственные требования к пользовательскому интерфейсу, пока он понимает разработку переднего плана, он может легко расширять существующую основу или даже полностью заменять её своим собственным интерфейсом. Если платформа зависит от определённой IDE, то расширение интерфейса платформы становится чрезвычайно сложным, и его трудно освоить, если вы не новичок.
Повышение скорости
JCOP использует генерацию кода на основе метаданных для создания сценариев базы данных, кода Java, шаблонов страниц, файлов конфигурации и т. д. (вы можете добавить любые файлы, которые вам нужно создать). Из сухого формального кода на Java (например, Model, обычный CRUD) освобождаешься, фокусируешься на основной бизнес-логике.
JCOP платформа на нижнем уровне представляет собой хорошо спроектированный фреймворк, который может обеспечить быстрое построение «под ключ» для различных фреймворков.
Основное внимание JCOP уделяется снижению сложности освоения для начинающих, упрощению изучения самой платформы и постоянной оптимизации ядра, чтобы вся команда могла освоить платформу в кратчайшие сроки.
Второстепенным является объединение различных превосходных и часто используемых фреймворков для более удобного использования (в этом отношении хотелось бы получить больше поддержки от других более профессиональных пользователей, которые могли бы написать шаблоны).
Снижение рисков
JCOP — это платформа с наименьшими рисками в своём классе!
Полностью открытый исходный код без каких-либо препятствий, им очень легко управлять. Весь сгенерированный код полностью виден, JCOP не устанавливает стандарты, в настоящее время по умолчанию поддерживает стиль JFinal, вскоре также будет интегрирован с шаблонами традиционного SSH-фреймворка.
Затраты на управление командой будут снижены, особенно это касается текучести кадров, которая является сложной проблемой для управления предприятием, а лучшим способом решения этой проблемы является стандартизация в управлении проектами и разработке.
JCOP предоставляет чрезвычайно лёгкую базовую архитектуру для разработки, обеспечивая соответствие сгенерированного кода собственным настроенным правилам, гарантируя, что независимо от движения персонала, эти стандарты останутся неизменными.
Строго говоря, JCOP не предлагает никаких инновационных решений, но если настаивать на том, чтобы назвать его технологически инновационным, то он достаточно открыт и свободен. JCOP не хочет создавать колёса и не стремится устанавливать собственные стандарты разработки, а помогает разработчикам определять свои собственные стандарты.
Откройте браузер, посетите обычный бэкэнд-проект управления, и вы сможете быстро генерировать код и просматривать исходный код и предварительный просмотр проекта в режиме онлайн, подобно веб-IDE — именно этого эффекта добивается JCOP (отсылка к платформе jfinal-code-online).
Ядро простое
Количество кода крайне мало, менее 2000 строк, даже начинающие разработчики могут быстро освоить всю генерацию платформы.
Расширение простое
Благодаря простоте ядра, уровней абстракции немного, но точек расширения много. Если вы хотите добавить свои собственные бизнес-шаблоны или стандарты разработки, это будет легко и интуитивно понятно.
Точек расширения много
Без изменения исходного кода можно реализовать следующие функции через внешнее расширение и добавление данных:
На данный момент
Вскоре
Есть лучшее будущее для JCOP
Это долгосрочный проект, JCOP сам по себе является лишь микроядром генератора, предоставляемые функциональные возможности не так уж велики, но есть планы по созданию более всеобъемлющего JFinal веб-фреймворка, который можно будет непосредственно использовать в корпоративных разработках. Конечно, это зависит от опыта самого разработчика JCOP, наверняка существует множество областей, которые не были затронуты. Поэтому JCOP надеется, что больше людей будут вносить различные технические шаблоны, базовые бизнес-архитектуры, поскольку гибкая архитектура JCOP позволяет легко интегрировать различные шаблонные языки и технические архитектуры.
Если у вас есть какие-либо вопросы или предложения во время использования, пожалуйста, отправьте их на issue https://github.com/b1412/jfinal-code-online/issues.
Внесите свой бизнес-шаблон
На данный момент:
Скоро:
Когда ядро будет полностью отделено от метаданных и данных шаблонов, шаблоны станут просто данными (эти данные могут быть всего лишь папкой с одним набором шаблонов и некоторыми текстовыми описаниями), тогда:
Будет рассмотрена возможность создания онлайн-платформы для выбора шаблонов.
Следите за обновлениями на oscgit и github
Этот проект будет развиваться в сотрудничестве с командой osc, все новые функции и улучшения будут представлены в виде issues на oscgit.
Кроме того, я надеюсь, что это будет международный проект, вся документация будет переведена на английский язык, и будет проводиться определённая популяризация в англоязычном мире, пожалуйста, следите за github.
Как расширить (не завершено...)
Изменить существующие шаблоны
Путь к шаблону:
/home/kid/git/jfinal-code-online/src/main/resources/templates/jfinalweb
Шаблоны используют синтаксис Freemarker, здесь вы можете полностью заменить шаблоны на страницы своего проекта.
Добавить новый шаблон
Нажмите «Управление дизайнером» → «Управление задачами», отобразится следующее:
Новый шаблон задачи
Файлы, папки, имена файлов по умолчанию поддерживают Groovy, Groovy полностью совместим с синтаксисом Java, если вы не знакомы с Groovy, считайте, что вы пишете Java. Типы задач включают single/multiple, первый — это создание одного файла для всего проекта, например, скрипта базы данных, конфигурационного файла и т. д., второй — создание отдельного файла для каждого объекта, такого как модель, контроллер и т.д.
Если вам нужно использовать другие языки сценариев, реализуйте интерфейс IScriptHelper, измените в методе afterJFinalStart класса CodeConfig:
Config.scriptHelper(new DefaultScriptHelper("groovy"));
Для вашего собственного ScriptHelper.
По умолчанию шаблоны используют Freemarker, если вам нужно использовать другой шаблон, реализуйте ITemplateHelper интерфейс, измените в классе FreeMarkerHelper метода templateEngine класса Config:
Config.templateEngine(new FreeMarkerHelper(Config.templatePath()));
Для вашей собственной TemplateHelper.
Примечание: в настоящее время добавление задач ещё не слишком удобно, необходимо самостоятельно отлаживать выражения.
Разработайте свою собственную архитектурную спецификацию (1.0 временно не поддерживается, 2.0 поддерживается)
Добавьте новую группу.
Архитектура JCOP (не завершена...)
Основные понятия:
Дополнительные точки:
Узнайте больше
Причины появления платформы JFinal-Code-Online
Перспективы платформы онлайн-проектов JCOP
Дополнительная поддержка
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )