AIGC辅助完成Python技术架构

liftword4周前 (12-12)技术文章20

AIGC已经深入到方方面面,用好它能帮我们节省很多时间。特别是信息技术领域。AIGC的工具很多,这里主要使用Bito,当然也可以使用百度文小言、阿里通义、腾讯元宝、抖音豆包。Python是如今最流行的程序设计语言,多年的实践,已经积累并有了成熟的技术架构模式。这里是一个C/C++程序员,讲述基于AIGC和Python,快速搭建信息系统。

AIGC工具:bito

bito提供了很多形式的客户端,能够集成在集成开发环境(如idea、vscode)、作为浏览器插件(chrome)、直接在网页使用、也提供了命令行工具。用来辅助编程很不错。



Python技术架构

先用一张图描述下什么是Python技术架构。按照4A的设计理念,技术架构TA,与业务架构BA,应用AA,信息架构IA一起描述一个信息系统解决方案的系统架构。TA就是从使用的技术选择角度,要用合理的方式去支持解决方案的落地,基于一定的通用性,往往可以给出相对稳定的架构模式。下面的思维导图就是一种相对通用的架构模式,这里简单予以介绍:


  • API : 系统的服务接口,这里列出了常见的概念。Restful是一个基于http协议的无状态API设计规范;OAuth2是一个资源访问的通用授权设计模式;OpenAPI是一个产品,可基于同一的定义方式,帮助生成API的框架和相关文档。
  • ORM :数据的对象访问模式,统一了面向不同数据库的访问层。SQLAlchemy提供了轻量级的数据库访问模式,适合与任何web框架搭配;DJango则将ORM与WEB集成得很好,如果你的web框架选择了DJango,ORM也可用它。
  • Event : 通常一些非实时响应的服务,可以通过异步方式来处理。Celery能让异步服务做得更容易,实时业务服务可以通过触发事件来告知旁路系统启动工作。例如通知类、统计类业务,结束后形成日志或报表,供用户主动检索即可。如果逻辑比较重,也可以用airflow。
  • Testing : 测试环节这里主要列出了单元测试,开发者角度的工具,可以使用unittest和pytest来完成测试。
  • 调优 :程序运行性能出现问题,需要定位问题所在,cProfile等提供了很好的支持
  • 度量 : 开发的应用在生命周期中的真实访问模型是怎样的,能够有效保障系统可用性,使用Prometheus是个不错的选择
  • Package : 打包发布或者形成仓库,也是一个重要的话题。这里主要是形成可以使用pip管理的公共和私有库

API

如果不知道RESTful、OAuth2、OpenAPI是什么,可以直接询问bito。

基于web服务的API,经过多年实践,推荐使用RESTful架构风格。这种风格将API与具体的资源结合起来,提供统一的方法POST、PUT、DELTE、GET,与http协议配合,能够提供标准可靠、足够灵活的无状态服务,有利于系统基于功能和性能的扩展,并可以借助http头实现缓存。


OAuth2是一种开放标准,主要用于授权,允许第三方应用程序在不暴露用户凭据的情况下访问用户在其他服务上 的资源。它是一个广泛使用的协议,尤其在 Web 和移动应用中,用于安全地授权用户访问 API。

OpenAPI由swagger发展而来,定义了描述RESTful的规范,使用 YAML 或 JSON 格式编写,描述了 API 的端点、请求和响应格式、参数 、认证方式等信息。并提供了工具生成客户端和服务端的代码,获得了页面很多工具的支持,能降低程序员的编码量。


ORM

SQLAlchemy是一个小巧的ORM,能有效基于其他框架结合,不用理解数据之外的东西。


DJango本来是一个WEB框架,内置了ORM。也提供了丰富的ORM能力。



Event

Celery是一个强大的异步任务处理工具,Airflow是一个工作流调度器。类比于java的quartz和activiti。可以针对性选择使用用来解决事件触发的各类服务。



Testing

unitest是内置于python的单元测试工具,提供了测试断言用来编写测试用例。


pytest提供了更加丰富的单元测试和功能测试。需要安装库pip install pytest


参考资料

  1. 本文涉及的代码 https://gitee.com/wapuboy/learning-programming-with-gauss/tree/master/code/python
  2. AIGC工具 https://bito.ai/
  3. TOGAF https://www.opengroup.org/

相关文章

10张架构图包含Python所有方向的学习路线,你们要的体系全在这

一直以来都有很多想学习Python的朋友们问我,学Python怎么学?爬虫和数据分析怎么学?web开发的学习路线能教教我吗?我先告诉大家一个点,不管你是报了什么培训班,还是自己在通过各种渠道自学,你一...

推荐15个最受欢迎的Python开源框架

以下是伯乐在线从GitHub中整理出的15个最受欢迎的Python开源框架。这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等。Django: Python Web应用开发框架...

Python中的方法和函数

什么是Python中的方法?由于Python是一种面向对象的编程语言,因此它包含对象,这些对象具有不同的属性和行为。Python中的方法用于定义Python对象的行为。它通过在程序中创建各种方法或函数...

Python+PyQt架构:如何调用多个设计师窗口界面文件示例

引言Qt是C++语言下广泛使用的一种跨平台的程序界面设计库,而PyQt是其在Python语言下的绑定,这为在Python语言下编写GUI界面程序提供了极大的便利。对于界面程序的设计,可以使用代码构建,...

从零开始搭建一个Python Flask项目

Flask是一个轻量级的Web框架,以其简单的功能,深受众多开发者的喜爱,其核心功能非常简单,但可以通过扩展支持复杂的Web应用开发,下面我们就来演示一下如何从零开始搭建一个Flask项目。环境准备在...

Rich:Python开发者的完美终端库

Rich 是一个 Python 库,可以在终端中提供富文本和精美格式。Rich 的 API 让在终端输出颜色和样式变得很简单。此外,Rich 还可以绘制漂亮的表格、进度条、markdown、语法高亮的...