<input id="ohw05"></input>
  • <table id="ohw05"><menu id="ohw05"></menu></table>
  • <var id="ohw05"></var>
  • <code id="ohw05"><cite id="ohw05"></cite></code>
    <label id="ohw05"></label>
    <var id="ohw05"></var>
  • 代碼改變世界

    Golang可重入鎖的實現

    2022-05-25 10:42 by 軒脈刃, 222 閱讀, 1 推薦, 收藏, 編輯
    摘要:Golang可重入鎖的實現 項目中遇到了可重入鎖的需求和實現,具體記錄下。 什么是可重入鎖 我們平時說的分布式鎖,一般指的是在不同服務器上的多個線程中,只有一個線程能搶到一個鎖,從而執行一個任務。而我們使用鎖就是保證一個任務只能由一個線程來完成。所以我們一般是使用這樣的三段式邏輯: Lock(); 閱讀全文

    MYSQL如何比對版本號字符串

    2022-05-17 09:28 by 軒脈刃, 292 閱讀, 0 推薦, 收藏, 編輯
    摘要:MYSQL如何比對版本號字符串 mysql 數據庫中存儲了一個形如“2.7.6.526” 的版本號,現在要獲取出小于某個版本號的數據,怎么做?這個就是昨天遇到的一個問題,記錄下查到的解決方法: SELECT * FROM device_table WHERE CONCAT( LPAD(SUBSTRI 閱讀全文

    Golang中常用的代碼優化點

    2022-03-29 09:45 by 軒脈刃, 397 閱讀, 2 推薦, 收藏, 編輯
    摘要:Golang中常用的代碼優化點 大家好,我是軒脈刃。 這篇想和大家聊一聊golang的常用代碼寫法。在golang中,如果大家不斷在一線寫代碼,一定多多少少會有一些些代碼的套路和經驗。這些經驗是代表你對一些問題,或者一類問題的思考和解決。處理一個問題的方法有很多,如果頻繁遇到同樣的場景和問題,我們會 閱讀全文

    一種優雅的Golang的庫插件注冊加載機制

    2022-03-28 09:22 by 軒脈刃, 364 閱讀, 1 推薦, 收藏, 編輯
    摘要:一種優雅的Golang的庫插件注冊加載機制 你好,我是軒脈刃。 最近看到一個內部項目的插件加載機制,非常贊。當然這里說的插件并不是指的golang原生的可以在buildmode中加載指定so文件的那種加載機制。而是軟件設計上的「插件」。如果你的軟件是一個框架,或者一個平臺性產品,想要提升擴展性,即可 閱讀全文

    redis的事件處理機制

    2022-03-24 09:33 by 軒脈刃, 396 閱讀, 1 推薦, 收藏, 編輯
    摘要:redis的事件處理機制 redis是單進程,單線程模型,與nginx的多進程不同,與golang的多協程也不同,“工作的工人”那么少,可那么為什么redis能這么快呢? epoll多路復用 這里重點要說的就是redis的IO編程模型,首先了解下 為什么要有多路復用呢? 如果沒有多路復用,一個線程只 閱讀全文

    如何封裝安全的go

    2022-02-22 09:59 by 軒脈刃, 425 閱讀, 0 推薦, 收藏, 編輯
    摘要:如何封裝安全的go 在業務代碼開發過程中,我們會有很大概率使用go語言的goroutine來開啟一個新的goroutine執行另外一段業務,或者開啟多個goroutine來并行執行多個業務邏輯。所以我為hade框架增加了兩個方法goroutine.SafeGo 和 goroutine.SafeGoA 閱讀全文

    為hade增加model自動生成功能

    2022-02-15 09:56 by 軒脈刃, 175 閱讀, 0 推薦, 收藏, 編輯
    摘要:大家好,我是軒脈刃。 我們寫業務的時候和db接觸是少不了的,那么要生成model也是少不了的,如何自動生成model,想著要給hade框架增加個這樣的命令。 看了下網上的幾個開源項目,最終聚焦在兩個項目中: https://github.com/go-gorm/gen https://github. 閱讀全文

    golang切片的一些自問自答

    2021-12-29 10:04 by 軒脈刃, 339 閱讀, 0 推薦, 收藏, 編輯
    摘要:你好,我是軒脈刃。這篇是關于go切片的一些問題和回答。 go的切片基本上是代碼中使用最多的一種數據結構了,使用這種數據結構有哪些要注意的點,這個是非常必要了解的東西。基本上,以前寫的一篇博客 http://www.tnepal.com/yjf512/p/9531282.html 就說的很清楚了。 閱讀全文

    golang 數組的一些自問自答

    2021-12-27 10:25 by 軒脈刃, 126 閱讀, 0 推薦, 收藏, 編輯
    摘要:所有代碼基于Go-1.17。一些研究Go數組的自問自答,可以考慮作為面試題。 問題:靜態存儲區是什么?和堆/棧有什么區別? 回答: 可以參考下列圖 堆上存放new產生的大塊內存 棧上存放的是程序運行的時候使用的局部變量內存 代碼段和數據段可以統一稱為靜態存儲區 代碼段存放的就是程序的二進制文件 數據 閱讀全文

    SSA:終于知道編譯器偷摸做了哪些事

    2021-12-22 14:51 by 軒脈刃, 467 閱讀, 1 推薦, 收藏, 編輯
    摘要:你好,我是軒脈刃。 在golang中,我們可以使用go tool compile -S main.go 工具將一個go程序直接轉換為匯編代碼。但是你會發現,最終編譯出來的匯編代碼其實是已經被優化過了的,編譯器其實很聰明,甚至將一些函數合并,取消等。至于這個過程,并不是一蹴而就的,在golang代碼和 閱讀全文

    丈量你的代碼,從cloc開始

    2021-12-19 15:50 by 軒脈刃, 394 閱讀, 0 推薦, 收藏, 編輯
    摘要:如果我想統計我當前的項目有多少代碼量?行數最高的代碼文件有哪些?并且排除某些目錄,怎么統計?要統計出注釋多少行,和代碼多少行?使用cloc就行。 cloc是一款使用Perl語言開發的開源代碼統計工具,支持多平臺使用、多語言識別。 mac上安裝cloc還是用brew最為簡單, brew install 閱讀全文

    我的極客時間專欄結課了!!!

    2021-12-17 01:16 by 軒脈刃, 524 閱讀, 2 推薦, 收藏, 編輯
    摘要:我的極客時間專欄結課了!!! 我的極客時間專欄結課了!!!太TMD不容易了。 今天下班到家的時候,收到了一份包裹,里面是極客時間送的結課禮物。是的,我的《手把手帶你寫一個web框架》專欄終于結課了。 “老師總計輸出了38篇文字,約321458字,總計上線音頻時長11小時13分34秒。“ ”積土成山, 閱讀全文

    使用plantuml,業務交接就是這么簡單

    2021-12-14 07:09 by 軒脈刃, 872 閱讀, 3 推薦, 收藏, 編輯
    摘要:使用plantuml,業務交接就是這么簡單 你好,我是軒脈刃。 最近交接了一個業務,原本還是有挺復雜的業務邏輯的,但發現交接過來的項目大有文章,在項目代碼中有一個docs文件夾,里面躺著若干個 puml 文件,這些puml文件把業務中最核心的一些業務流程圖和時序圖都繪制清楚了。看到這個文件夾無異于發 閱讀全文

    collection庫更新1.4.0版本

    2021-12-12 22:43 by 軒脈刃, 212 閱讀, 0 推薦, 收藏, 編輯
    摘要:collection庫更新1.4.0版本 collection庫一直在使用中,周末集合github上的反饋以及contributor的修改,更新了1.4.0版本。 這個版本做了幾個事情: 增加了三種類型, uint, uint32, uint64 這三種類型也算基礎類型了,目前基本上已經把所有基礎類 閱讀全文

    設計一個回調要注意哪些事情

    2021-02-20 18:49 by 軒脈刃, 661 閱讀, 2 推薦, 收藏, 編輯
    摘要:設計一個回調要注意哪些事情 回調是我們在設計系統的時候經常會使用到的, A服務調用B服務, 但是如果B服務提供的是一個較長時間的、異步的接口, 那么我們就會想到使用一個回調, 讓B服務在異步處理結束之后, 來調用A的一個回調接口. 但是細品一下, 這一來一回的設計, 需要思考的點遠不是一個回調接口這 閱讀全文

    談服務可用性監控

    2020-12-24 10:00 by 軒脈刃, 1477 閱讀, 1 推薦, 收藏, 編輯
    摘要:談服務可用性監控 一個服務的監控從整體考慮,要達到哪些才能算是完善的?我想,如果沒有一個全局性的監控思考,一個服務的監控即使加的再多也是會有監控盲區的。 監控的層次 從基礎機器到上層業務,分為三個不同層次:系統,應用,業務。不同的層次都應該有其不同的監控目的。 系統監控 這個層次監控服務所在服務器的 閱讀全文

    ?grafana 的主體架構是如何設計的?

    2020-12-21 17:51 by 軒脈刃, 1542 閱讀, 2 推薦, 收藏, 編輯
    摘要:?grafana 的主體架構是如何設計的? grafana 是非常強大的可視化項目,它最早從 kibana 生成出來,漸漸也已經形成了自己的生態了。研究完 grafana 生態之后,只有一句話:可視化,grafana 就夠了。 這篇就想了解下它的主體架構是如何設計的。如果你對 grafana 有興趣 閱讀全文

    一篇理解什么是CanSet, CanAddr?

    2020-10-27 12:38 by 軒脈刃, 554 閱讀, 2 推薦, 收藏, 編輯
    摘要:什么是可設置( CanSet ) 首先需要先明確下,可設置是針對 reflect.Value 的。普通的變量要轉變成為 reflect.Value 需要先使用 reflect.ValueOf() 來進行轉化。 那么為什么要有這么一個“可設置”的方法呢?比如下面這個例子: var x float64 閱讀全文

    collection v1.3.1升級全記錄

    2020-10-22 13:27 by 軒脈刃, 364 閱讀, 0 推薦, 收藏, 編輯
    摘要:collection v1.3.1升級全記錄 項目地址: https://github.com/jianfengye/collection 歡迎star。 collection 手冊地址: http://collection.funaio.cn/ collection庫升級到v1.3.1版本。 從v 閱讀全文

    ftp的passive模式

    2020-06-29 08:49 by 軒脈刃, 2907 閱讀, 0 推薦, 收藏, 編輯
    摘要:ftp的passive模式 今天在一臺測試服務器上搭建ftp,折騰了許久。 主要是不了解ftp的passive模式和port模式的區別。這里記錄一下。 和passive模式對應的叫做port模式,也叫做standard模式,也叫主動模式。 每個ftp客戶端和服務端建立連接需要建立兩個連接,一個連接用 閱讀全文
    国产美女a做受大片观看