世上本无路,走的人多了也就成了路.

这里主要描述一下自定义模块的入门和使用,这里的自定义也不是完完全全的自定义,大部分都是从官方库拷贝而来,毕竟官方的实现大部分是可以满足我的需求的,只有少部分方法进行了修改.

限于技术栈有限,主要是聚集于 Java TypeScriptPython

项目结构

  1. raycloud-openApi-util git:(master) tree -I 'idea|*node_module*|*venv*|*target*'
  2. .
  3. ├── README.md
  4. ├── Teafile
  5. ├── java
  6. ├── java.iml
  7. ├── pom.xml
  8. └── src
  9. └── main
  10. └── java
  11. └── com
  12. └── raycloud
  13. └── openapiutil
  14. └── Client.java
  15. ├── main.tea
  16. ├── python
  17. ├── README.md
  18. ├── python.iml
  19. ├── raycloud_openapi_util
  20. ├── __init__.py
  21. ├── client.py
  22. └── sm3.py
  23. ├── setup.py
  24. └── tests
  25. └── test_client.py
  26. ├── teafile.log
  27. └── ts
  28. ├── package-lock.json
  29. ├── package.json
  30. ├── src
  31. └── client.ts
  32. ├── test
  33. └── client.spec.ts
  34. ├── ts.iml
  35. └── tsconfig.json

核心的文件有

  • Teafile 定义了包结构
  • main.tea 定义了基础需要实现的接口
  • README.md【后台展示用】

核心目录有
上边使用main.tea定义了标准的接口,接下来就是用各个语言来接口进行一次实现

  • java 实现
  • ts typescript实现
  • python python实现

遇到的问题

  • dara里边一个版本只要上传一次,即使这个版本出现了错误,它也是不能使用这个版本来进行修复,必须升级到下一个版本.

  • 区分基础模块和建立在基础模块上边的组件模块

    • 基础模块,依赖各个语言的具体实现,例如开头例子中的 test-console,我自己自定义实现的raycloud-openApi-util等等,都可以称之为基础模块,因为他依赖具体语言的实习爱你
    • 组件模块,我可以直接利用dara提供的元语言和基础模块来实现的需求,因为本身不需要其他语言的介入,我称之为组件模块
  • 其他语言的问题排查,因为我们熟悉的语言一般是一种到2种,很少有个语言都面面俱到的,所以一个合理的测试就显的很重要了

  • 语言打包问题,java比较熟悉还好说,其他语言就比较麻烦了,而且还要推送到中央仓库,这些都要去熟悉一下,这里的难度比起开发来说,要更加难受一点。

总结

总体下来,他这个过程其实并不算复杂,重点还是在于新东西能不能沉下心来,把事情做完. 把事情做到极致其实就可以了。 不要总是做到一半就放弃。

实践下来,发现她的组织关系还是比较严密的,又不依赖于中央仓库。还有其他很多的场景可以挖掘。