Git Product home page Git Product logo

jmobilesuit's Introduction

ReFreSH.JMobileSuit (v2)

maven license GitHub last commit Documentation Publish GitHub repo size GitHub code size

View in maven-central

View Documentation | 查看文档

NOTICE: The master branch is the development branch for v2.0. If you're looking for or stable version source code, please turn to v1.x branch.

JMobileSuit is a Light-weight MobileSuit for Java. Migrated from .NET Core.

Previously named as PlasticMetal.JMobileSuitLite.

ReFreSH.MobileSuit is a Powerful tool to quickly build a ConsoleApp, written in C#, mapping command to a specific method in your code.

For details of MobileSuit, see: https://github.com/HIT-ReFreSH/MobileSuit

jmobilesuit's People

Contributors

2021111502 avatar cliang42 avatar ferdinandsu avatar hitgyh avatar jonojikatsuya avatar leeseetheloswer avatar mrruancoder avatar wyh202102 avatar yoyil avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

jmobilesuit's Issues

V2 Refactors: Introduction for Modern Application

Due to lack of maintenance, JMobileSuit's design architecture lags far behind MobileSuit. Nowadays, many improvements have helped JMobileSuit make significant progress, especially @yrris 's introduction of Spring's improvements in #21 , which has enabled us to have a true dependency injection system

I think it's time to bridge these gaps. We will imitate MobileSuit's design and develop version 2, which mainly includes the following refactoring work:

  1. #23 Thoroughly refactor the core components, imitating MobileSuit's approach based on dependency injection, middleware, and service registration to complete the current core functions; The main case code for this part of the reference project is located in 'HitRefresh' MobileSuit Core, therefore the relevant components of JMobileSuit should be located in package ReFreSH JMobileSuit `;

  2. #24 Change the instantiation method of the client application (SuitClient) from singleton mode to single request mode to facilitate refreshing the application context between different requests, facilitating database operations, and providing support for parallelism

  3. #25 Provide asynchronous operation support, task lifecycle management, and enable applications to run in parallel (in the background)

  4. #26 Configuration file injection support: Like MobileSuit, the injected IConfiguration can be directly used to access the specified configuration file (appsettings. json)

由于疏于维护,JMobileSuit的设计架构远远落后于MobileSuit。现在,许多改进已经帮助JMobileSuit进步了很多,尤其是@yrris#21 引入Spring的改进,使得我们有了真正的依赖注入系统.
我想是时候抹平这些差距了,我们将模仿MobileSuit的设计,开发版本2,主要包含以下几项重构工作:

  1. #23 彻底重构核心组件,模仿MobileSuit基于依赖注入、中间件和服务注册的方式完成当前的核心功能;参考项目的这部分主要案例代码位于HitRefresh.MobileSuit.Core,故JMobileSuit的相关组件应该位于package ReFreSH.JMobileSuit;
  2. #24 将客户端应用(SuitClient)的实例化方式从单例模式改为单请求模式,以方便在不同的请求间刷新应用上下文,方便对数据库的操作,提供对并行的支持
  3. #25 提供异步操作支持,提供任务生命周期管理,使应用支持并行(后台运行)
  4. #26 配置文件注入支持:像MobileSuit那样可以直接使用注入的IConfiguration访问指定的配置文件(appsettings.json)

V2 Refactor: Configuration file injection support

Like MobileSuit, the injected IConfiguration can be directly used to access the specified configuration file (appsettings.json)

配置文件注入支持:像MobileSuit那样可以直接使用注入的IConfiguration访问指定的配置文件(appsettings.json)

V2 Refactor: Client instantiation method

Use Dependency Injection to change the instantiation method of the client application (SuitClient) from singleton mode to single request mode to facilitate refreshing the application context between different requests, facilitating database operations, and providing support for parallelism.

利用依赖注入,将客户端应用(SuitClient)的实例化方式从单例模式改为单请求模式,以方便在不同的请求间刷新应用上下文,方便对数据库的操作,提供对并行的支持

Unit Tests

Hi, I'm the developer of this Program, but I don't have enough time to make my program perfect. I'll appreciate it if you can help me improve it and become a contributor. Here is an existing issue:

This Project lacks Unit Tests, please help me write some.
本项目需要补充一些单元测试,补充一些即可。

-- December 3rd, 2023

We‘re near the perfect! Further improvement can be based on the existing tests, and:

  1. Additional test cases for incomplete tests
  2. Fix bad usage on assertEquals. Some contributors wrongly used it, they misplaced actual and expected arguments.
  3. Translate Chinese comments.

我们已经很接近完美了!后续的改进可以基于:

  1. 现存不够全面的测试
  2. 修复对于 assertEquals的不良使用。一些贡献者把 actualexpected 实参写反了
  3. 帮忙翻译下测试代码里的中文注释

Documentation

Hi, I'm the developer of this Program, but I don't have enough time to make my program perfect. I'll appreciate it if you can help me improve it and become a contributor. Here is an existing issue:

This project lacks detailed documentation, please help me fill in
本项目缺乏完备的文档,请帮助我完善。

Regarding the contribution methods of documents:

  • View existing documents, you can go to https://hit-refresh.github.io/jmobilesuit/index.html
  • Edit article: Modify the markdown file in the docs/article directory of the warehouse
  • Edit API documentation, aka. Javadoc: Please directly modify the source code files in the code

关于文档的贡献方式:

V2 Refactor: Core Components using Dependency Injection, Middlewares and Services

Thoroughly refactor the core components, imitating [MobileSuit](https://github.com/hit-refresh/mobilesuit]'s approach based on dependency injection, middleware, and service registration to complete the current core functions; The main case code for this part of the reference project is located in HitRefresh.MobileSuit.Core, therefore the relevant components of JMobileSuit should be located in package ReFreSH.JMobileSuit.Core.

彻底重构核心组件,模仿MobileSuit基于依赖注入、中间件和服务注册的方式完成当前的核心功能;参考项目的这部分主要案例代码位于HitRefresh.MobileSuit.Core,故JMobileSuit的相关组件应该位于package ReFreSH.JMobileSuit.Core.

Log System Improvement

Hi, I'm the developer of this Program, but I don't have enough time to make my program perfect. I'll appreciate it if you can help me improve it and become a contributor. Here is an existing issue:

Currently, the log system is quite simple. Please consider using modern log frameworks, e.g. Log4j.
目前,日志系统非常简陋,应该考虑升级到现代化的log4j等日志框架

V2 Refactor: Async operation support

Provide asynchronous operation support task lifecycle management and enable applications to run in parallel (in the background).
提供异步操作支持,提供任务生命周期管理,使应用支持并行(后台运行)

Dependency Injection

Hi, I'm the developer of this Program, but I don't have enough time to make my program perfect. I'll appreciate it if you can help me improve it and become a contributor. Here is an existing issue:

This project lacks support for Dependency Injection, please help me add it.
本项目目前缺乏依赖注入支持。

Thanks to the great contributions made by @yrris at #21 , now we have a real Dependency Injection system based on Spring Framework.The next steps are:

  1. Publish release 1.2.0-alpha1, with recent contributors’ name added.
  2. Make refactors to the core components, to sync with MobileSuit and PyMobileSuit. As I’m too busy, this may need quite long. I do wish someone can help me!
    感谢来自 @yrris#21 的巨大贡献,我们拥有了基于Spring框架的真正的依赖注入系统,后续会有两件事要做
  3. 把最近新的贡献者名字加进去,然后发布1.2-alpha1
  4. 利用依赖注入重构核心组件,实现和MoblieSuit和PyMobileSuit的同步。因为我本人时间有限,这可能需要花很久。非常希望有人能够加入作为本项目的维护者,帮帮我!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.