1 Star 0 Fork 0

DSX/stool

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT-0

supos

supos git push pull 的形式管理平台以下概念

  1. 服务脚本
  2. 可编程组件

特点

  • 多平台开发时,supos 管理多个平台的服务脚本和可编程组件
  • 结合 代码开发工具 + Git 可协同管理服务脚本和可编程组件
  • 可编程组件改动看效果时,无需频繁提交代码。只需 supos ext watch 帮助自动提交可编程组件
  • 表单转 DDL ,辅助掌控全局

Install

$ npm install -g supos

Use Example

$ supos debug
? 选择【A表单】的服务进行调试? yes
***【A表单】下所有服务***
? 请选择服务!
> 服务名称:serviceA(Integer int,Long long,Float float,Double double,Boolean bool,String str)
 ------------------------------
? int(INTEGER)> 1
? long(LONG)> 1
? float(FLOAT)> 1
? double(DOUBLE)*> 1
? bool(BOOLEAN)> true
? str(STRING)*> 123
 ------------------------------
# 以下为服务执行的输出日志和返回结果

#略

获取帮助

您可以使用以下命令获取帮助信息:

  • 查看全局帮助信息:

    supos --help
    
  • 查看特定命令的帮助信息(例如 remote 命令):

    supos remote --help
    
  • 查看子命令的帮助信息(例如 remote add 子命令):

    supos remote add --help
    

每个命令的帮助信息都包含了详细的使用说明和示例。

Usage

1. init config

$ supos init
? 重置将初始化所有配置文件,是否重置[N]! yes
 SUCCESS  已成功初始化....    

2. add your remote address

$ supos remote add <code> -m <url> -u <username> -p <password>
$ supos remote add pdd -m http://127.0.0.1:8080 -u admin -p pwd123
pdd,admin 请记住您的平台编号和当前账户!

3. config your default remote

$ supos remote login pdd
 SUCCESS  已切换成平台pdd,地址为:http://127.0.0.1:8080

4. login your remote

$ supos remote login
 SUCCESS  用户登录成功!
#or
$ supos login
 SUCCESS  用户登录成功!

5. pull remote all template and service to loacl env

$ supos template init
将重新拉取所有表单及所有表单服务,成功后需重新配置默认工作的表单!
 SUCCESS  车间管理-workshopManage server total:1
 ---------------- 查询车间数据-queryAll-(String factoryId)==MD5: 66d11897e372ad2b01733ef1cebd4a84
rsnyc 车间管理-workshopManage use time 3425

6. Select the default template to work under it

$ supos template
#1. 先有个可供选择的表单列表,可进行搜索。
? 请选择工作区的表单模板!
> A表单
  B表单
  C表单
(Use arrow keys to reveal more choices)
A表单
#2.选择后会输出
SUCCESS  您选择了【A表单】
#3. 最后完整的日志
? 请选择工作区的表单模板! A表单
 SUCCESS  您选择了【A表单】

7. 调试模板下的服务

$ supos debug

8.

初始化平台无关级别的配置

supos ext init

拉取所有可编程组件

9. For more features, please use Supos -h

$ supos -h
#略 更多详细用法请参考各命令的帮助信息,例如 `supos service --help`。

TODO

  • 服务

    • 物模板服务支持

    • 表单模板

      • 考虑使用 Sql 同步 表单模板,引导形成 一个模式
    • 可添加服务

      • 可单独添加服务参数
    • 可删除服务

    • 可单独删除参数,通过修改服务删除 supos service update -i

    • debug 可选记录历史传参

      • 在该命令下添加option 记录是否记录历史。 -[x] 考虑在debug时是同样加option去选择历史参,还是提前确认什么模式去选择历史参。
    • 按职责拆分代码

    • 切换平台后将之前登录的平台主动退出去

    • 提供平台级迁移功能

      • APP级
      • 表单级
        • 属性
      • 服务级
  • 可编程

    • push 代码时,拉取 libs 查看更新时间,没更新就不进行上传,加速上传
  • 其他

    • 如何与 git 相结合

    • 考虑 process.cwd() 定位,引起用户在别的目录下执行,会引起问题

    • 功能逐渐变多 objectHelp 代码需职责拆分

优化建议

  • 使用 inquirer 库来实现交互式命令行界面,以提高用户体验。

  • 使用 axios 库来处理 HTTP 请求,以提高性能和可靠性。

  • 使用 chalk 库来添加颜色和样式,以提高可读性和用户体验。

  • 使用 ora 库来显示加载动画,以提高用户体验。

  • 使用 commander 库来处理命令行参数,以提高用户体验。

  • 使用 fs 库来处理文件系统,以提高用户体验。

  • 使用 path 库来处理文件路径,以提高用户体验。

  • 使用 os 库来处理操作系统,以提高用户体验。

  • 使用 crypto 库来处理加密,以提高用户体验。

  • 根据您提供的代码库信息,我对extensions类的优化有以下建议:

    • 代码结构优化:
      • 将lib/extensions.js文件拆分成多个smaller的模块,每个模块负责特定的功能。例如:
      • initExtensions.js: 处理初始化相关的函数
      • pullExtensions.js: 处理拉取组件相关的函数
      • pushExtensions.js: 处理推送组件相关的函数
      • buildExtensions.js: 处理构建依赖相关的函数
  • 这样可以提高代码的可读性和可维护性。

    • 错误处理优化:
      • 在lib/extensions.js中,使用更具体的错误类型,而不是简单地抛出字符串。创建自定义错误类,如ExtensionError,以便更好地处理和区分不同类型的错误。
  • 配置管理优化:

    • 将硬编码的配置项(如bulitInDependencies, ignoreFileArr等)移到单独的配置文件中,便于集中管理和修改。
  • 异步操作优化:

    • 考虑使用Promise.all()来并行处理一些独立的异步操作,提高性能。例如,在initAppExtensions函数中,可以并行处理libs和controls的拉取。
  • 日志记录优化:

    • 使用更结构化的日志记录方式,考虑引入专门的日志库(如winston),以便更好地管理和分析日志。
  • 测试覆盖率提高:

    • 在tests/supos.test.js中添加更多针对extensions功能的单元测试和集成测试,提高代码的可靠性。
  • 依赖注入考虑:

    • 考虑使用依赖注入的方式来管理外部依赖(如DB, ConfigDB等),这样可以提高代码的可测试性和灵活性。
  • 代码复用优化:

    • 提取一些常用的操作为工具函数,放在单独的utils.js文件中,以减少代码重复。
  • 类型检查引入:

    • 考虑使用TypeScript或Flow来引入静态类型检查,可以提前发现潜在的类型错误。
  • 文档完善:

    • 为主要的函数和模块添加详细的JSDoc注释,便于其他开发者理解和使用代码。
  • 性能优化:

    • 使用性能分析工具来识别可能的性能瓶颈,特别是在文件操作和网络请求方面。
  • 安全性提升:

    • 检查所有的文件操作和网络请求,确保它们都经过适当的安全处理,防止潜在的安全漏洞。
  • refactor 内容对比时 前后hash 本地DBhash 对比平台内容 hash,一致时,将本地新内容推送至平台

Notice

  • 添加 5x 版本平台需自己找到加密后的密码进行添加

LICENSE

MIT

MIT No Attribution Copyright 2024 DSX Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

帮助SupOS平台用户类Git方式开发服务与可编程组件 展开 收起
JavaScript
MIT-0
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/Cyluone/stool.git
git@gitee.com:Cyluone/stool.git
Cyluone
stool
stool
main

搜索帮助