AIGC辅助完成Python技术架构

liftword5个月前 (12-12)技术文章67

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/

相关文章

Python中用于Excel处理的库都有哪些?简单介绍一下?

在进行数据分析和数据挖掘的时候,不可避免的会用到Excel表格来存储处理数据,那么在Python中也提供了很多的Excel表格处理库,下面我们我们就来详细介绍一下这些处理库。pandaspandas库...

使用vscode配置Python开发环境

vscode是一个相当优秀的 IDE ,具备开源、跨平台、模块化、插件丰富、启动时间快、颜值高、可高度定制等等优秀的特质,最近几年流行度也是越来越高。今天来跟大家分享下在 vscode 下配置和使用...

详细Python中元组的使用?

在Python中,元组(tuple) 是一种用于存储多个项目的有序、不可变的数据结构。元组和列表非常相似,不同的是元组是不可变的,也就是说元组一旦创建,元素的值就不能被更改。下面我们就来详细的介绍Py...