diff --git a/中文/JCNC开发者文档导航/JCNC开发者文档导航.md b/中文/JCNC开发者文档导航/JCNC开发者文档导航.md index 598d300..f2d3572 100644 --- a/中文/JCNC开发者文档导航/JCNC开发者文档导航.md +++ b/中文/JCNC开发者文档导航/JCNC开发者文档导航.md @@ -16,7 +16,6 @@ [JCNC项目开发流程](../JCNC项目开发流程/JCNC项目开发流程.md) -[JNotepad文档](https://gitee.com/jcnc-org/JNotepad/blob/release-v1.1.13/README.md) ## 欢迎补充和修复文档! diff --git a/中文/项目文档/IDEology文档/IDEology设计文档.md b/中文/项目文档/IDEology文档/IDEology设计文档.md index 5e6ae89..8aadbde 100644 --- a/中文/项目文档/IDEology文档/IDEology设计文档.md +++ b/中文/项目文档/IDEology文档/IDEology设计文档.md @@ -3,42 +3,52 @@ ## 绪论 ### 项目背景和意义 -在现代软件开发领域,集成开发环境(IDE)扮演着至关重要的角色。随着软件开发的不断发展和复杂化,开发者需要一个强大的工具,来帮助他们提高生产力、降低开发成本、减少错误,并在项目开发周期内快速迭代。IDEology 作为一款综合性集成开发环境,旨在满足这些需求。 + +在现代软件开发领域,集成开发环境(IDE)扮演着至关重要的角色。随着软件开发的不断发展和复杂化,开发者需要一个强大的工具,来帮助他们提高生产力、降低开发成本、减少错误,并在项目开发周期内快速迭代。IDEology +作为一款综合性集成开发环境,旨在满足这些需求。 ### 国际研究现状 -国际上有许多集成开发环境(IDE),如 Visual Studio、IntelliJ IDEA、Visual Studio Code、Eclipse、PyCharm、NetBeans 等。这些软件可以满足不同领域和项目的需求。 - +国际上有许多集成开发环境(IDE),如 Visual Studio、IntelliJ IDEA、Visual Studio Code、Eclipse、PyCharm、NetBeans +等。这些软件可以满足不同领域和项目的需求。 ### 传统项目的不足 -传统项目使用的技术比较陈旧和臃肿以及性能不足,比如使用 Java Swing 框架作为 UI 开发的 IntelliJ IDEA、使用 OSGi (Open Service Gateway Initiative) 框架为基础核心的 Eclipse、拥有孱弱的性能的 Visual Studio Code、无法跨平台的 Visual Studio。 +传统项目使用的技术比较陈旧和臃肿以及性能不足,比如使用 Java Swing 框架作为 UI 开发的 IntelliJ IDEA、使用 OSGi (Open +Service Gateway Initiative) 框架为基础核心的 Eclipse、拥有孱弱的性能的 Visual Studio Code、无法跨平台的 Visual Studio。 ### 本项目的研究内容和目标 + 本项目将使用微内核架构来开发一个全新的 IDE,解决传统项目的不足,并且对JavaFX的开发提供额外的支持。 ## 项目计划 ### v0.0.1 + 完善设计文档、开发文档和软件编写并且打包成功。 ### v0.0.2 + 移植老项目 [JNotepad](https://gitee.com/jcnc-org/JNotepad) 的大部分功能,使用模块化重构项目。 ## 架构设计 + IDEology 采用微内核架构,主要分为[用户模块](#用户模块) 、[核心模块](#核心模块)、[IMC](#imc)和[微内核](#微内核)。 ![IDEology 架构图](img/IDEology架构图.svg) ### 用户模块 -主要包含一些非必要的模块,包括 IDE 模块(IDE模块里面也包含很多模块,如代码编辑器模块等),内存管理模块,文件管理模块,网络模块,资源文件模块,插件模块,内存管理模块等。 + +主要包含一些非必要的模块,包括 IDE 模块(IDE模块里面也包含很多模块,如代码编辑器模块等) +,内存管理模块,文件管理模块,网络模块,资源文件模块,插件模块,内存管理模块等。 这个设计旨在实现IDE功能、有效管理内存资源、处理文件和网络通信、管理资源文件以及支持插件扩展。 这些模块是上层用户模块不是底层核心模块所以一个 IDEology 程序可以不包含这些模块而运行。 #### IDE模块 + 负责提供应用程序的IDE功能实现。 - 用户界面:提供可定制的用户界面,包括主题、窗口布局和快捷键设置等。 @@ -65,6 +75,7 @@ IDEology 采用微内核架构,主要分为[用户模块](#用户模块) - 构建和部署:集成构建工具,方便用户构建和部署应用程序。 #### 内存管理模块 + 负责管理应用程序的内存资源。 - 内存分配和释放: 管理应用程序的内存分配和释放,确保有效利用内存资源,避免内存泄漏和溢出。 @@ -76,6 +87,7 @@ IDEology 采用微内核架构,主要分为[用户模块](#用户模块) - 内存监控: 提供内存监控工具,以帮助开发者识别和解决内存相关问题。 #### 文件管理模块 + 负责管理项目中的文件和文件夹。 - 文件浏览: 提供文件浏览器,允许用户轻松访问和浏览项目文件。 @@ -87,6 +99,7 @@ IDEology 采用微内核架构,主要分为[用户模块](#用户模块) - 版本控制整合: 集成版本控制系统,以便开发者可以轻松管理和跟踪文件版本。 #### 网络管理模块 + 负责处理与网络通信相关的功能。 - 网络连接: 提供网络连接管理,包括建立、维护和断开网络连接。 @@ -98,6 +111,7 @@ IDEology 采用微内核架构,主要分为[用户模块](#用户模块) - 网络安全: 考虑网络安全问题,如加密通信、身份验证和防止网络攻击。 #### 资源文件管理模块 + 负责管理应用程序的资源文件,如图像、音频、文本文件等。 - 资源加载: 提供资源加载和管理功能,以确保应用程序能够访问所需的资源。 @@ -108,8 +122,8 @@ IDEology 采用微内核架构,主要分为[用户模块](#用户模块) - 资源编辑: 考虑资源文件的编辑和导出功能,以支持开发者对资源进行定制和修改。 - #### 插件模块 + 负责管理应用程序的插件功能,如提供API、插件市场等。 - 插件 API:提供丰富的插件 API,使插件开发者可以轻松地与IDE的核心功能进行交互。这包括对编辑器、项目管理、调试器、文件管理等的访问。 @@ -123,14 +137,14 @@ IDEology 采用微内核架构,主要分为[用户模块](#用户模块) - 插件市场:提供一个插件市场,使用户可以轻松查找、安装和更新插件。提供用户评价和反馈的功能。 - ### 核心模块 + 主要包含一些必要的模块,例如通用组件模块(包含UI组件模块和发工具模块)。 核心模块是底层核心模块所以一个 IDEology 程序必须包含这个模块才能运行。 - #### 通用组件模块 + 包括UI组件模块(如 JavaFX),开发工具模块等重要功能模块。 - UI组件模块:提供了与用户界面相关的功能,例如窗口、按钮、文本框等,封装了一些组件 @@ -138,49 +152,54 @@ IDEology 采用微内核架构,主要分为[用户模块](#用户模块) - 开发工具模块:提供开发时常用的工具。 - ### IMC + Inter Module Communication (IMC) 负责提供标准接口和通信协议,用于模块之间的信息传递和功能调用, - IMC模块:是标准化的接口和通信协议,模块可以通过IMC调用来进行信息传递和功能调用(如消息队列、共享对象、信号量等)。 ### 微内核 + 负责模块管理等功能,是整个项目的核心,除了内核以上设计都是运行在内核上的模块。 + - 模块管理:能够发现、加载、安装、卸载、更新和管理模块。 ## 项目设计优势 ### 技术可行性 + - JavaFX 提供了现代、交互式和富客户端用户界面的功能,包括多媒体支持和丰富的用户界面组件。它非常适合构建一个功能丰富的 IDE。 ### 文档和支持 + - 提供详细的文档和在线帮助资源。 - 提供用户支持,包括论坛、社交媒体和电子邮件支持。 - ### 成本可行性 + - JavaFX 是一个免费的开源工具包,不会增加额外的许可费用。相对于商业GUI工具包,成本较低。 - ### 社区和生态系统 + - Java 拥有一个活跃的用户社区和丰富的生态系统。有大量教程、文档和第三方库可用,以帮助项目解决问题和支持开发。 - ### 未来可维护性 + - JavaFX 仍然得到支持和更新,满足 IDE 项目的长期可维护性要求。 - ### 性能和稳定性 -- JavaFX 已在项目 [JNotepad](https://gitee.com/jcnc-org/JNotepad) 证明了其性能和稳定性。它可以提供足够的性能和稳定性,以满足IDE 项目的需求。 +- JavaFX 已在项目 [JNotepad](https://gitee.com/jcnc-org/JNotepad) 证明了其性能和稳定性。它可以提供足够的性能和稳定性,以满足IDE + 项目的需求。 ### 跨平台支持 + - JavaFX 提供了跨平台支持,可以在多个操作系统上运行,包括 Windows、macOS、Linux 和嵌入式系统。这与IDE 的跨平台目标一致。 - ### 微内核架构设计 + - 模块化:微内核架构将系统分为相对独立的模块,每个模块负责一个特定的核心功能。这使得系统更容易理解、维护和扩展,因为不同的模块可以独立开发和测试。 @@ -204,36 +223,33 @@ Inter Module Communication (IMC) 负责提供标准接口和通信协议,用 - 可测试性:模块化的微内核架构更容易进行单元测试,因为每个服务可以独立测试。这有助于及早发现和解决问题。 +## 详细设计 -## 软件设计 +### 模块设计 +IDEology 的内核之上一切皆模块,开发人员需要设计自己的模块并且在内核进行注册。 +模块设计指南: +- 清单文件:规定插件的版本,简介,作者,版本等。 +- 拓展节点:模块通过设计自己的暴露点,可以让其他模块加载到自己的拓展节点上。 +- 逻辑代码区域:模块可以使用 IDEology SDK或者 JDK 来别写模块工作代码。 - - -## 软件测试 - -[点击查看](软件测试.md) +### 内核设计 +IDEology 的内核采用简单设计,仅仅负责模块的发现,加载,卸载等功能。 +详情见[开发文档]() ## 软件部署 -[点击查看](软件部署.md) ## 维护和支持 -[点击查看](维护和支持.md) - ## 文档和帮助 -[点击查看](文档和帮助.md) - ## 反馈和改进 -[点击查看](反馈和改进.md) ## 沟通和合作 -[点击查看](沟通和合作.md) diff --git a/中文/项目文档/IDEology文档/反馈和改进.md b/中文/项目文档/IDEology文档/反馈和改进.md deleted file mode 100644 index e07e47f..0000000 --- a/中文/项目文档/IDEology文档/反馈和改进.md +++ /dev/null @@ -1 +0,0 @@ -# 反馈和改进 \ No newline at end of file diff --git a/中文/项目文档/IDEology文档/文档和帮助.md b/中文/项目文档/IDEology文档/文档和帮助.md deleted file mode 100644 index 3629183..0000000 --- a/中文/项目文档/IDEology文档/文档和帮助.md +++ /dev/null @@ -1 +0,0 @@ -# 文档和帮助 \ No newline at end of file diff --git a/中文/项目文档/IDEology文档/沟通和合作.md b/中文/项目文档/IDEology文档/沟通和合作.md deleted file mode 100644 index 00efec1..0000000 --- a/中文/项目文档/IDEology文档/沟通和合作.md +++ /dev/null @@ -1 +0,0 @@ -# 沟通和合作 \ No newline at end of file diff --git a/中文/项目文档/IDEology文档/维护和支持.md b/中文/项目文档/IDEology文档/维护和支持.md deleted file mode 100644 index a1f8779..0000000 --- a/中文/项目文档/IDEology文档/维护和支持.md +++ /dev/null @@ -1 +0,0 @@ -# 维护和支持 \ No newline at end of file diff --git a/中文/项目文档/IDEology文档/软件测试.md b/中文/项目文档/IDEology文档/软件测试.md deleted file mode 100644 index a97494e..0000000 --- a/中文/项目文档/IDEology文档/软件测试.md +++ /dev/null @@ -1 +0,0 @@ -# 软件测试 \ No newline at end of file diff --git a/中文/项目文档/IDEology文档/软件设计.md b/中文/项目文档/IDEology文档/软件设计.md deleted file mode 100644 index ad75298..0000000 --- a/中文/项目文档/IDEology文档/软件设计.md +++ /dev/null @@ -1 +0,0 @@ -# 软件设计 \ No newline at end of file diff --git a/中文/项目文档/IDEology文档/软件部署.md b/中文/项目文档/IDEology文档/软件部署.md deleted file mode 100644 index 06ae15d..0000000 --- a/中文/项目文档/IDEology文档/软件部署.md +++ /dev/null @@ -1 +0,0 @@ -# 软件部署 \ No newline at end of file diff --git a/中文/项目文档/JNotepad项目文档/JNotepad开发者文档.md b/中文/项目文档/JNotepad项目文档/JNotepad开发者文档.md index 7b20fd4..d5aadb9 100644 --- a/中文/项目文档/JNotepad项目文档/JNotepad开发者文档.md +++ b/中文/项目文档/JNotepad项目文档/JNotepad开发者文档.md @@ -12,4 +12,8 @@ ## 基础知识 -- [JavaFX基础知识](../../JavaFX基础知识/JavaFX基础知识.md) \ No newline at end of file +- [JavaFX基础知识](../../JavaFX基础知识/JavaFX基础知识.md) + +## JNotepad 文档 + +- [JNotepad文档](https://gitee.com/jcnc-org/JNotepad) \ No newline at end of file