以下是【浮舟】分享的內容全文:
Go+Python雙語言混合開發
第1章 【階段一:Go語言基礎】1~13章內容 試看
【階段一】我們通過python與go的對比式講解,系統掌握go語法,比如某個知識點在go語言中是如何的,同時在python中又如何使用?兩者之間使用上有什么區別?通過對比學習的方式,一來幫助大家快速掌握go語言不墨跡,同時也能加深對python的認識,學習效率事半功倍,為后面的實戰進階夯實基礎。【第一章:講解go語言的特點,介...
共 23 節 (269分鐘)
第2章 計算機組成原理快速掃盲
本章節快速講解靜態語言學習過程中最基礎的計算機原理,包括各種進制以及ascii碼表
共 3 節 (56分鐘)
第3章 基本數據類型、運算符和表達式
本章節我們將全面的了解go語言的整數類型,浮點數類型以及這些基本類型的轉換,我們將理解到go語言中的strconv包以及各種轉換函數的使用,我們也將通過對比python和go的數據類型來加深兩種語言之間的區別
共 6 節 (108分鐘)
第4章 python的海象運算符和變量注解
本章節我們將介紹python中的新特性- 海象運算符,也會講解python中的類型申明和函數的類型檢查等靜態語言具備的功能
共 3 節 (56分鐘)
第5章 字符串的基本操作
本章節我們會了解到go語言中字符串相關的細節,包括中文字符串的長度問題、轉義符、子串查詢和統計、以及字符串的格式化輸入和輸出等常用的字符串相關功能
共 5 節 (74分鐘)
第6章 條件語句和循環語句
本章節我們會了解到go語言中的條件語句和循環語句,除了基本的if和for循環以外還理解到中文在for循環中容易出現的問題,goto語句和switch等常用語句的基本使用,我們也會理解到python中為什么沒有switch以及如何實現
共 6 節 (88分鐘)
第7章 最常用的復雜數據類型 - map、數組、 切片
本章節主要講解go語言中最常用的復雜類型:map、數組、切片, 通過本章節的學習我們不只是會使用go語言的這些基本類型還將了解到python和go語言在這些類型上的差異。比如go語言中切片的實現原理等
共 11 節 (192分鐘)
第8章 go語言的利器- 指針
本章節我們將會介紹go語言區別于其他語言的利器-指針,除了指針的基本使用以外,還包括make函數和new函數的區別以及new函數的使用過程、nil和python中的none的區別等
共 5 節 (72分鐘)
第9章 go語言的函數
go語言中的函數是靜態語言中的一大亮點,基本上滿足了python使用者的靈活性。例如:不定長參數、一等公民特性。本章節中我們還會介紹go語言函數中的defer機制以及panic機制和recover的異常處理等。通過對比python的args、kwargs以及go語言的參數也能加深我們對python的理解...
共 8 節 (185分鐘)
第10章 go語言的結構體
go語言的結構體是go語言中完成面向對象特征的最重要類型,對于struct的學習和理解有助于我們理解go語言的設計理念,本章節我們會詳細的介紹struct的各個細節,包括定義、組合以及結構體標簽等
共 7 節 (156分鐘)
第11章 go語言的接口
go語言的接口設計理念和python的鴨子類型設計理念是一致的,所以學習完本章節你將對python和go對于面向對象的理解有一個新的理解。我們也會對比講解go語言的設計理念和面向對象語言的區別以及go是如何通過接口達到面向對象的各個主要特性...
共 8 節 (140分鐘)
第12章 包管理和編碼規范
go語言的包管理經歷過兩個重要的階段,本章節我們將會了解到靜態語言是如何進行包管理以及和python的包管理有什么區別,也會著重介紹go編碼規范和python的編碼規范
共 8 節 (128分鐘)
第13章 go并發編程
go語言最大的特性是高并發實現非常簡單而且并發性很高,本章節我們除了會講解go語言并發編程中基本概念如:goroutine的基本使用、waitgroup、互斥鎖、讀寫鎖、channel以及deadlock出現的場景以外還會介紹另一個非常重要的知識點 - context。我們也會通過和python的協程對比來加深大家對協程的理解。...
共 12 節 (207分鐘)
第14章 【階段二:多語言通信基礎 - grpc】14~17章內容
rpc是微服務開發的起點也很重要,本階段我們會從0開始講解rpc是如何開發出來的,然后通過rpc再過渡到grpc,課程會講解xml-rpc、json-grpc、zero-rpc以及對這些rpc框架做一個分析和一個rpc框架應該如何封裝才能達到我們的要求,是一個非常有亮點的階段,同學們會明白:一個rpc框架應該要解決哪些問題?我們為什么要使用grpc...
共 7 節 (147分鐘)
第15章 go的rpc體驗
本章節中我們會采用和python不一樣的方法了解go語言中的rpc開發體驗,通過本章節我們將會體驗到python和go語言的rpc調用,本章節我們會一步步基于go提供的基礎rpc功能開始逐步封裝達到grpc的使用效果,本章節是一個非常重要的章節,理解到本章節以后我們上手grpc會很快...
共 5 節 (95分鐘)
第16章 grpc快速入門
本章節是grpc的快速入門章節,我們除了體驗到python和go下的grpc基本使用以外,還會體驗到go和python的grpc互相調用,通過本章節學習我們將體驗到protobuf的基本定義、grpc的流模式使用
共 9 節 (168分鐘)
第17章 protobuf和grpc進階
前面的章節中我們已經入門了grpc的基本使用,本章節是一個非常重要的進階過程,本章節的學習將為后續的微服務打下堅實的基礎,本章節介紹了大量的protobuf和grpc進階知識,如:protobuf的各種類型、grpc的metadata、攔截器、驗證器、錯誤處理以及超時機制等等...
共 17 節 (248分鐘)
第18章 【階段三:需求分析、架構設計、orm和web框架基礎】18~22章內容
該階段主要目標:1. 詳細的架構演進設計, 單體應用到微服務架構演進過程中要解決的問題?為什么需要微服務架構設計?go和python在微服務設計中分別承擔的作用? 2. 學習 orm和web框架重要組件,我們會選擇python作為和數據庫最近的底層業務層,一方面python非常適合做業務接口開發,同時python的orm使用會非常的簡...
共 3 節 (18分鐘)
第19章 架構設計
本章節我們將理解到從單體應用到微服務架構設計的整個過程,以及微服務設計過程中需要解決的各個問題,比如服務注冊和發現、配置中心、鏈路追蹤等等大量的細節
共 7 節 (96分鐘)
第20章 yapi的安裝和配置
前后端分離開發的最大痛點是: 1. 接口管理麻煩 2. 前端等到后端的mock數據 3. 后端測試需要引入postman等測試工具,本章節我們介紹前后端開發過程中的利器:yapi,通過yapi的使用我們能解決這些所有的問題使得前后端開發完全獨立...
共 5 節 (60分鐘)
第21章 python的orm-peewee
本章節我們將會快速入門python下的流行orm-peewee,本章節主要解決python下的數據庫訪問,除了基本的crud基本操作以外,還包括多表查詢、反向查詢以及最后的如何避免n+1查詢問題
共 8 節 (149分鐘)
第22章 go的web框架-gin
本章節我們將會快速的體驗到go語言下最流行的web框架之一-gin,我們除了講解gin的基本功能以外,還會講解gin中的一些難懂的點-中間件的原理解析。本章節的主要內容包括:gin的路由、表單驗證、錯誤中文翻譯、優雅退出等大量的細節...
共 17 節 (244分鐘)
第23章 【第四階段:第一個微服務 - 用戶服務】23~25章內容
在本階段我們將開始使用上階段設計的微服務模式進行電商項目的第一個微服務 - 用戶服務,我們會完成用戶相關的接口, 用戶登錄、用戶注冊、用戶列表等大量和用戶相關的接口,該階段完成以后我們不止能對外提供http接口供電商系統和后臺管理系統調用,在python服務中完成對go提供grpc接口。該階段還集成了實際生產環境中...
共 13 節 (192分鐘)
第24章 web層開發-gin基礎項目架構
本章節我們需要改造gin為基本的微服務web層架構服務,在本章節中我們我們除了需要解決基本的項目結構設計以外,還需要解決日志、grpc集成、配置文件管理等基礎服務的完善。
共 10 節 (164分鐘)
第25章 web層開發-用戶接口開發
本章節我們除了上一個章節的基礎功能如日志、配置文件、優雅退出以外我們還會涉及到更多的知識點: 用戶登錄、用戶注冊、短信發送、表單驗證、自定義mobile驗證、json web token的校驗機制、圖片驗證碼以及跨域問題等大量的開發細,通過本章節的學習我們將能夠體驗到第一個完整的微服務web層的基礎結構和功能開發。...
共 12 節 (231分鐘)
第26章 【階段五:服務注冊、服務發現、負載均衡、配置中心】26~29章內容
該階段將解決微服務中最基礎也是最重要的問題: 服務注冊和發現、配置中心和負載均衡。我們將選擇主流的微服務注冊組件并將其集成到微服務中,分別集成到gin和python的grpc服務中,解決大量的ip地址和端口的配置問題,服務的健康檢查, 大量的微服務配置,還能夠發布和發現最新的配置,解決不用重啟就能夠解決配置的更...
共 7 節 (128分鐘)
第27章 服務集成注冊中心
本章節我們將前面開發的service層和gin開發的web層服務集成到consul的服務發現體系中
共 3 節 (56分鐘)
第28章 負載均衡
本章節我們需要解決微服務中一個非常重要的問題-負載均衡,本章節首先會解決多個服務下的端口動態分配的問題,然后解決負載均衡策略和常用的負載均衡算法,最后講負載均衡和注冊中心集成進來并完成grpc下的負載均衡調用...
共 6 節 (84分鐘)
第29章 配置中心
微服務管理除了管理服務實例以外,大量的微服務下的配置也需要一個統一的配置中心來解決,我們將會選擇主流的nacos來完成配置的統一管理,以及如何解決在生產環境以及開發環境下的隔離。
共 8 節 (111分鐘)
第30章 【階段六:電商系統中商品、圖片、庫存、訂單和購物車服務、分布式鎖】30~38章
該整個課程中的比重是非常重要的,該階段除了完成電商各大模塊服務的基本接口以外,還解決了微服務中的圖片文件的oss存儲,通過前端直傳的方式解決了將文件上傳到阿里云的傳輸問題,解決了通過分布式鎖完成庫存的扣減問題,此外還實現了基于樂觀鎖和redis的分布式鎖如何完成庫存的扣減問題。通過本階段的學習以后,我們除...
共 19 節 (227分鐘)
第31章 商品服務-web等
本章節我們會使用上一節課中完成的底層微服務接口,在web層我們會完成客戶端的調用和底層接口的轉換,在本章節中我們除了完成底層的接口調用以外,還需要解決gin的優雅退出、yapi的接口調試,在本章中我們也會提供一個python腳本用于同步python和go的proto以及源碼的生成。...
共 13 節 (211分鐘)
第32章 阿里云的oss服務
微服務下我們無法使用簡單的文件上傳功能,我們需要使用獨立的圖片服務,本章節我們除了要使用阿里云上傳圖片以外,還需要解決阿里云下的oss直傳問題,對于直傳后的回調問題我們需要通過內網穿透技術來調試。
共 8 節 (117分鐘)
第33章 庫存服務
庫存服務我們需要獨立出來,庫存服務的獨立會產生出很多新的問題,本章節我們會詳細介紹庫存服務的重要性、以及庫存的扣減問題和數據庫事務的細節,并集成庫存的設置接口
共 9 節 (92分鐘)
第34章 分布式鎖
本章節我們需要解決分布式系統下的一個非常重要的問題,也是面試中經常被問到的問題-分布式鎖。分布式鎖在微服務中有大量的應用,所以對于分布式鎖的細節我們需要理解到而不是簡單的會使用,大公司對分布式鎖的要求較高,所以本章節我們會講解到兩個重要的實現手段: 1. 基于數據庫的樂觀鎖 2. 基于redis的分布式鎖,...
共 9 節 (144分鐘)
第35章 訂單和購物車服務-service層
本章節我們要解決訂單和購物車相關的功能,訂單是電商中的重點,也是難點,訂單服務會牽扯到大量的其他微服務,包括商品、庫存、用戶等服務。訂單服務的完整性要涉及到分布式事務,在后續的過程中我們會也會針對性的解決分布式事務以及訂單超時和庫存歸還等細節。...
共 12 節 (157分鐘)
第36章 訂單和購物車服務-web等
本章節我們需要和前端聯調訂單和購物車服務接口,在web服務中我們還需要解決另一個重要的問題-支付寶支付,在本章節我們也會通過內網穿透的方式解決支付成功的回調細節。
共 7 節 (119分鐘)
第37章 用戶操作服務-service層
用戶操作服務主要解決用戶在電商系統中的重要行為:收藏商品、留言、收貨地址管理等,經過前面的章節學習,后續的這些操作會變得很簡單。
共 6 節 (86分鐘)
第38章 用戶操作服務-web等
通過底層的接口可以快速完成這些用戶行為的接口調試
共 7 節 (80分鐘)
第39章 【階段七:分布式系統技術難點 - 分布式事務、冪等性機制】39~44章內容
在本階段要解決分布式系統中非常重要的幾個問題: 分布式事務、冪等性機制,然后繼續完善電商系統中的重要細節, 比如庫存的超時歸還,訂單創建過程中的分布式事務,同時介紹重試機制和重試機制,以及超時、重試以及網絡問題帶來的冪等性問題,這些都是分布式開發中的重要問題以及面試中會被經常問題的問題。【本章:電商...
共 3 節 (39分鐘)
第40章 分布式理論基礎和常見的分布式事務解決方案
本章節我們除了需要理解分布式理論:CAP理論和BASE理論以外,還需要了解到柔性事務、剛性事務、ACID等基本概念,在分布式系統下了解2pc、3pc、TCC和基于可靠消息的最終一致性事務。此外分布式事務是微服務中必須要解決的問題,也是難點,所以我們會介紹常用的分布式事務解決方案,如:2pc、TCC、基于可靠消息的最終一致性...
共 8 節 (116分鐘)
第41章 消息隊列在微服務中的作用和選型
本章節我們會講解消息隊列的作用是什么?而且對比目前主流的rabbitmq、rocketmq和kafka。通過消息隊列的對比。我們需要決定應該選擇什么消息隊列以及如何為什么要選擇rocketmq。
共 2 節 (31分鐘)
第42章 rocketmq消息隊列入門
本章節我們需要了解rocketmq的重要組件:broker、nameserver、consumer、producer、topic等。在本章節我們需要理解rocketmq中的兩個重要功能:延遲消息和事務消息。
共 9 節 (88分鐘)
第43章 實現基于可靠消息最終一致性的事務解決庫存歸還
普通的定時任務無法完美解決訂單的定時取消功能,我們需要通過rocketmq的延遲消息解決庫存的定時歸還。同時為了解決訂單新建過程中可能出現的各種問題下的庫存扣減和歸還問題保持數據的一致性。
共 16 節 (154分鐘)
第44章 冪等性機制
由于引入了超時和重試機制,這些重試會引起訂單重復,數據重復提交等問題,冪等性機制需要確保這些重復的提交只能保存一條數據,冪等性解決的方案較多如:唯一索引,查詢、token機制、樂觀鎖和分布式鎖機制等解決數據的重復提交,本章節我們需要對比各種方案并選擇合適的方案來解決訂單的重復提交。...
共 6 節 (57分鐘)
第45章 【階段八:微服務的高可用保障 - 鏈路追蹤、熔斷、限流、降級】45~48章內容
前面部分我們雖然解決了分布式系統的重要問題以及接口的基本功能開發,但是一個高可用的微服務框架我們還需要解決負載的微服務間的調用鏈的監控以及超時可能會帶來的服務雪崩問題,通過引入鏈路追蹤以及服務的熔斷、限流等機制將會讓我們的微服務變得更加可控以及可用性增強,在本階段中我們會引入jaeger來進行鏈路追蹤,使...
共 3 節 (28分鐘)
第46章 第二章 鏈路追蹤open tracing和jaeger
本章節我們會理解到鏈路追蹤的標準、以及各種鏈路追蹤的技術對比選型。我們除了需要理解到jaeger的架構以外還會理解到鏈路追蹤的各個細節,包括span、spancontenxt、tracer等基本的概念,而且我們將會快速的體驗到在go和python下的jaeger的開發體驗。...
共 7 節 (65分鐘)
第47章 gin和python集成jaeger
經過前面章節的學習我們已經明白了opentracing標準和jaeger,經過前面的章節學習,我們會理解到如何將jaeger集成到python和gin中,我們將會更加深刻的理解到grpc的metada機制以及如何集成到grpc中。經過本章節我們將會體驗到復雜的鏈路中如何清晰的展示到jaeger的ui中。...
共 6 節 (82分鐘)
第48章 熔斷、限流 - sentinel
本章節我們首先會對比一下主流的hystrix和sentinel,通過對比我們選擇sentinel作為系統的熔斷器。微服務由于調用鏈路的問題,很容易出現服務雪崩這種嚴重的錯誤,本章節我們采用目前最流行的sentinel完成服務間調用的熔斷和限流。本階段中會理解到如何熔斷,以及如何限流,通過熔斷和限流可以確保一個長的鏈路不至于因為其...
共 11 節 (119分鐘)
第49章 【階段九:API網關】49~50章內容
本階段我們來完成微服務開發的最后一站 - api網關,經過前面的開發我們已經開發出來了大量的微服務,這些微服務如何對外暴露統一的接口,以及如何解決這些服務的統一認證都將在api網關中實現,在本階段我們會選擇高性能的api網關-kong來完成從用戶端到微服務端的調用以及接口管理。【本章內容:API網關技術選型和安裝配置...
第50章 kong的基本功能
在本章節中我們將會體驗到nginx和kong的對比,以及對kong進行技術細節理解,中我們將體驗到kong的基本功能,包括url動態路由,jwt的認證配置,我們需要了解到如何將consul的服務注冊中心集成到kong的體系中。
第51章 【階段十:jekins自動化部署】51~51章內容
在課程的最后我們需要通過jekins來完成大量微服務的統一部署,微服務由于服務較多以及組件依賴較多,我們需要通過自動化部署工具來對這些服務進行統一的部署管理。【本章內容:jekins快速入門:本章節我們從jekins的基本功能介紹到jekins的安裝配置到最后的jekins的基本功能使用、本章節我們將會理解到kong的基本功能,包括...
第52章 jekins自動化部署
本章節我們通過jekins的自動化部署完成大量微服務的部署

本站不存儲任何資源文件,敬請周知!
本網站采用 BY-NC-SA 協議進行授權 轉載請注明原文鏈接:Go+Python雙語言混合開發

侵權舉報/版權申訴



