當前位置: 華文世界 > 科技

AIGC輔助完成Python技術架構

2024-10-07科技

AIGC已經深入到方方面面,用好它能幫我們節省很多時間。特別是資訊科技領域。AIGC的工具很多,這裏主要使用Bito,當然也可以使用百度文小言、阿裏通義、騰訊元寶、抖音豆包。Python是如今最流行的程式設計語言,多年的實踐,已經積累並有了成熟的技術架構模式。這裏是一個C/C++程式設計師,講述基於AIGC和Python,快速搭建資訊系統。

AIGC工具:bito

bito提供了很多形式的客戶端,能夠整合在整合式開發環境(如idea、vscode)、作為瀏覽器外掛程式(chrome)、直接在網頁使用、也提供了命令列工具。用來輔助編程很不錯。

https://bito.ai/

登入後的首頁

Python技術架構

先用一張圖描述下什麽是Python技術架構。按照4A的設計理念,技術架構TA,與業務架構BA,套用AA,資訊架構IA一起描述一個資訊系統解決方案的系統架構。TA就是從使用的技術選擇角度,要用合理的方式去支持解決方案的落地,基於一定的通用性,往往可以給出相對穩定的架構模式。下面的思維導圖就是一種相對通用的架構模式,這裏簡單予以介紹:

Python技術架構模式

  • API : 系統的服務介面,這裏列出了常見的概念。Restful是一個基於http協定的無狀態API設計規範;OAutp是一個資源存取的通用授權設計模式;OpenAPI是一個產品,可基於同一的定義方式,幫助生成API的框架和相關文件。
  • ORM :數據的物件存取模式,統一了面向不同資料庫的存取層。SQLAlchemy提供了輕量級的資料庫存取模式,適合與任何web框架搭配;DJango則將ORM與WEB整合得很好,如果你的web框架選擇了DJango,ORM也可用它。
  • Event : 通常一些非即時響應的服務,可以透過異步方式來處理。Celery能讓異步服務做得更容易,即時業務服務可以透過觸發事件來告知旁路系統啟動工作。例如通知類、統計類業務,結束後形成日誌或報表,供使用者主動檢索即可。如果邏輯比較重,也可以用airflow。
  • Testing : 測試環節這裏主要列出了單元測試,開發者角度的工具,可以使用unittest和pytest來完成測試。
  • 調優 :程式執行效能出現問題,需要定位問題所在,cProfile等提供了很好的支持
  • 度量 : 開發的套用在生命周期中的真實存取模型是怎樣的,能夠有效保障系統可用性,使用Prometheus是個不錯的選擇
  • Package : 打包釋出或者形成倉庫,也是一個重要的話題。這裏主要是形成可以使用pip管理的公共和私有庫
  • API

    如果不知道RESTful、OAutp、OpenAPI是什麽,可以直接詢問bito。

    基於web服務的API,經過多年實踐,推薦使用RESTful架構風格。這種風格將API與具體的資源結合起來,提供統一的方法POST、PUT、DELTE、GET,與http協定配合,能夠提供標準可靠、足夠靈活的無狀態服務,有利於系統基於功能和效能的擴充套件,並可以借助http頭實作緩存。

    RESTful是什麽?

    OAutp是一種開放標準,主要用於授權,允許第三方應用程式在不暴露使用者憑據的情況下存取使用者在其他服務上 的資源。它是一個廣泛使用的協定,尤其在 Web 和行動應用中,用於安全地授權使用者存取 API。

    OAutp是什麽?

    OpenAPI由swagger發展而來,定義了描述RESTful的規範,使用 YAML 或 JSON 格式編寫,描述了 API 的端點、請求和響應格式、參數 、認證方式等資訊。並提供了工具生成客戶端和伺服端的程式碼,獲得了頁面很多工具的支持,能降低程式設計師的編碼量。

    OpenAPI是什麽?

    ORM

    SQLAlchemy是一個小巧的ORM,能有效基於其他框架結合,不用理解數據之外的東西。

    SQLAlchemy是什麽?

    DJango本來是一個WEB框架,內建了ORM。也提供了豐富的ORM能力。

    DJango作為ORM,請詳細介紹下

    Event

    Celery是一個強大的異步任務處理工具,Airflow是一個工作流排程器。類比於java的quartz和activiti。可以針對性選擇使用用來解決事件觸發的各類服務。

    Celery是什麽?

    Airflow是什麽

    Testing

    unitest是內建於python的單元測試工具,提供了測試斷言用來編寫測試用例。

    unittest是什麽

    pytest提供了更加豐富的單元測試和功能測試。需要安裝庫pip install pytest

    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/