2023 go崗位-跳槽-學習規劃(求補充)

wangchunbo發表於2023-05-04

進度

2023-05-04 完成基礎,base項,文章整理,連結整理。話術整理。
2023-05-05 完成kafka roccketMQ,以及 知識庫es的知識點整理與面試話術總結。
未完成 docker,k8s
未完成,微服務,領域驅動
未完成 雲原生

基礎面試題

請先完成此文章的題目。再看下面的題。這個題是現在很基礎的,很常問的題。
這個人寫的很正經,不是打廣告,我反正就記錄一下。各位也可以找到其他的相關題。然後可以評論,求補充。
www.kancloud.cn/martist/phper-will...

0. laravel 為phper 轉go的準備下

laravel 基礎面試題 我感覺可以不看,不就那點東西。用了兩三年laravel 自然都會。
翻譯:91 個常見的 Laravel 面試題和答案

laravel生命週期 一圖搞定(講清楚這個就行)

2023 go崗位-跳槽-學習規劃(求補充)

laravel 服務容器:註冊基礎服務;管理所需建立的類及其依賴。

依賴 依賴注入,控制反轉淺顯解釋:部落格:依賴、依賴注入與控制反轉 筆記

1. 面試題

topgo講的細。
www.topgoer.cn/docs/gomianshiti/go...

面試技術點詳解拆分

部落格:go-面試技術點-帶解析

redis部分

包含了redis,但是redis 我認為有更細節的部分(更加易於背誦),請看下文。

部落格:[面試題]跳槽面試必背-自己最近5年的整理,歡迎大家補充。

2023 go崗位-跳槽-學習規劃(求補充)

mysql最佳化,從該文章的 16開始,如下圖
部落格:[面試題]跳槽面試必背-自己最近5年的整理,歡迎大家補充。

2023 go崗位-跳槽-學習規劃(求補充)

2. go 底層

看幼麟實驗室
www.bilibili.com/video/BV1hv411x7w...

3. gin框架(求補充)

4. Docker(求補充)

5. GRPC(求補充)

6. 微服務(求補充)

7. k8s(求補充)

8. 雲原生 kafka rocketMQ(求補充)

推薦一個知識星球,但是是付費的,但內容還可以。
wx.zsxq.com/dweb2/index/columns/51...

8.1 kafka 使用場景

8.2 kafka 基礎命令

articles.zsxq.com/id_qfjnjwafdxsv....

8.3 rocketMQ 使用場景

8.4 rocketMQ 基礎命令

8.5 kafka rocketMQ 等區別 優缺點

rocketMQ 最後一頁。
優勢:
1 java原始碼,2支援高階特性多(普通訊息」、「順序訊息」、「事務訊息」、「訊息過濾」、「定時/延時訊息」、「訊息重試」),3阿里已經在用。

articles.zsxq.com/id_6xttsqfhw9v5....

2023 go崗位-跳槽-學習規劃(求補充)

9. 爬蟲

爬蟲base面試題1(簡單版): blog.csdn.net/AudiA6LV6/article/de...

爬蟲base面試題2(專業版):blog.csdn.net/wanlitengfei/article...

10. websocket

部落格:websocket 面試題

11. JWT 與 OAuth2.0

請看博文。這個也要自己整理一段話術。或者全背下來
blog.csdn.net/sssssooo/article/det...

12. Elasticsearch面試題 與 應用場景

基礎面試題

blog.csdn.net/QLCZ0809/article/det...

應用場景-知識庫 全文檢索 todo

13. MogoDB 常用操作 與 應用場景

13.1 應用場景,網站使用者來源日誌

1. 存日誌

2023 go崗位-跳槽-學習規劃(求補充)
先提取出各個欄位的值,然後存入,就是一個包含很多個欄位的文件。

也支援批次寫 db.events.insert([doc1, doc2, ...])

2. 日誌分析

可以find 模糊搜尋
可以按照time 時間段搜尋

3. 日誌過大怎麼處理。

第一: 設定TTL 索引,過期自動刪除
之前網站設定的是3個月過期,同時查詢資料存入mysql
MongoDB的TTL索引可以支援文件在一定時間之後自動過期刪除。例如上述日誌time欄位代表了請求產生的時間,針對該欄位建立一個TTL索引,則文件會在30小時後自動被刪除。
db.events.createIndex( { time: 1 }, { expireAfterSeconds: 108000 } )
第二:
定期按集合或DB歸檔,按照月份 對集合命名。 缺點就是,跨月份查詢需要聯合查詢

詳情如下:
比如每到月底就將events集合進行重新命名,名字裡帶上當前的月份,然後建立新的events集合用於寫入。比如2016年的日誌最終會被儲存在如下12個集合裡:

  1. events-201601
  2. events-201602
  3. events-201603
  4. events-201604
  5. ....
  6. events-201612

當需要清理歷史資料時,直接將對應的集合刪除掉:

  1. db["events-201601"].drop()
  2. db["events-201602"].drop()

不足之處,在於到時候,如果要查詢多個月份的資料,查詢的語句會稍微複雜些,需要從多個集合裡查詢結果來合併。

13.2 基礎命令

1. MongoDB 建立資料庫的語法格式如下:

use DATABASE_NAME

MongoDB 刪除資料庫的語法格式如下:

db.dropDatabase()

2.集合操作

MongoDB 中使用 createCollection() 方法來建立集合

檢視已有集合,可以使用 show collections 或 show tables 命令:

如何將資料插入到 MongoDB 的集合中。

文件的資料結構和 JSON 基本一樣。

所有儲存在集合中的資料都是 BSON 格式。

BSON 是一種類似 JSON 的二進位制形式的儲存格式,是 Binary JSON 的簡稱。

3. 文件

文件的資料結構和 JSON 基本一樣。

所有儲存在集合中的資料都是 BSON 格式。

BSON 是一種類似 JSON 的二進位制形式的儲存格式,是 Binary JSON 的簡稱。

MongoDB 使用 insert() 或 save() 方法向集合中插入文件,語法如下:

db.COLLECTION_NAME.insert(document)  或 db.COLLECTION_NAME.save(document)

update() 更新

remove 刪除

find 查詢

排序 sort

索引 createIndex

14. rbac 原理與 casbin 以及應用場景

rbac原理

  1. 五個表,完成許可權控制

2023 go崗位-跳槽-學習規劃(求補充)

  1. 升級版本增加角色組表. 使用者組和角色組進行管理.

  2. 使用者組的優點 應用場景。

除了減少工作量,還有更便於理解。

比如按部門建立使用者組的例子。一位使用者從A部門異動到了B部門,這是實際發生的情況。如果沒有使用者組,那麼我們要拿掉A部門的所有角色,換上B部門的所有角色。
加上使用者組之後,只需要操作使用者離開A組而加入B組就行了。這與實際情況很貼近。

使用者組的理解:

使用者組對標的是使用者而不是角色,使用者組的作用是對使用者做一個歸類,可以更加方便地授權而已。
譬如你要對多個角色授權,並且這些角色成員存在交集。那麼先把這些共同的使用者新增到一個使用者組,再在角色成員裡面新增使用者組,總的新增操作次數是x+y,而直接新增使用者則是x*y次。這就是使用者組的作用。

casbin 應用場景

casbin 支援acl rbac RESTful等。 我們系統中用的是 rbac 與restful(RESTful: ⽀持路徑, 如 /res/*, /res/:id 和 HTTP ⽅法, 如 GET, POST, PUT, DELETE)

目前的系統裡,構建了一個 rbac服務。
採用互斥角色。
使用者-單角色,單角色對對許可權節點。
許可權節點分為了,選單,按鈕,api。

二開了許可權節點,新增了api分類與api表。增加了公共api分類。
把選單或者按鈕與多個api進行關聯。一對多。
因為可能某個按鈕,有多個api。
在中介軟體中增加相關的許可權判斷。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
感謝關注 上海PHP自學中心-免費程式設計影片教學|

相關文章