原创 golang 併發設計模式(二)--管道模式管道和顯式取消

摘自點擊打開鏈接 Go Concurrency Patterns: Pipelines and cancellation 一、 引言 Go併發原語使得構建流式數據管道,高效利用I/O和多核變得簡單。這篇文章介紹了幾個管道例子,

原创 go database/sql 源碼分析(三)sql.DB數據結構

package sql 中最核心的的數據結構是sql.DB,    其爲上層應用程序提供一個統一的抽象體,它不代表一個數據庫連接,也不代表一個連接池,其是sql的包的作者爲了實現:併發訪問安全控制,連接池等諸多功能而設計的一個綜合抽象數據

原创 go database/sql 源碼分析(二)driver包設計哲學

驅動接口設計特點驅動層設計很簡單,沒有併發鎖的控制驅動層的設計是基於單個連接的,沒有考慮連接池驅動層事務Tx和Stmt是獨立分離的,Tx只有兩個簡單的方法就是Commit() 和Rollback()驅動的具體實現者只需要在單個連接上實現驅

原创 go database/sql 源碼分析(四)sql.Stmt數據結構

#sql.Stmt是sql包暴露給程序調用者的可見實體,一般通過db.Open函數獲得DB實例後的下一步就是調用func (db *DB) Prep

原创 golang 併發設計模式(一)--資源生成器模式

在應用系統中,常見的的應用場景就是調用一個生成器:生成訂單號,序列號,隨機數等。 golang  goroutine爲這種需求提供了強大的武器。 1.簡單的生成器 package main import ( "fmt" "m

原创 go database/sql 源碼分析 -題外篇

第一篇go database/sql 源碼分析 的文章對其作者(Brad Fitzpatrick大神 memcached的作者 go語言項目組成員)給予高度評價,但是個人認爲go database/sql 的實現不是完美無瑕的 優點:

原创 go database/sql 源碼分析(一)sql包設計哲學

database/sql設計哲學非常優雅,但是內部實現又非常複製,本節從頂層來去分析下database/sql的實現思想對上層應用提供一個標準的AP

原创 go blank identifier _作用

The blank identifier has many possible uses, but its main purpose is to allow discarding returns from functions that

原创 go 類型系統(二)

pre-declared type (預聲明類型) golang 默認的有幾個預聲明類型:boole,num,string type. 這些預聲明類型被用來構造其他的類型。 type literal(字面量類型) 由其他預聲明類型組

原创 go Type Identical &Value Assignability & Type Conversions

    1. Type identity Two types are either identical or different. Two named types are identical if their type names ori

原创 go vendor 介紹

go vendor 是go 1.5 官方引入管理包依賴的方式,1.6正式引入 其基本思路是,將引用的外部包的源代碼放在當前工程的vendor目錄下面

原创 Prepared statement peculiarities (P_S to the rescue)

轉自http://mysqlblog.fivefarmers.com/2012/07/03/prepared-statement-peculiarities-p_s-to-the-rescue Prepared statements

原创 Go語言如何深度拷貝對象

深度複製可以基於reflect包的反射機制完成, 但是全部重頭手寫的話會很繁瑣. 最簡單的方式是基於序列化和反序列化來實現對象的深度複製: func deepCopy(dst, src interface{}) error {

原创 Go - 以任意類型的slices作爲輸入參數

Go - 以任意類型的slices作爲輸入參數(譯) 2014-01-16 Thu By youngsterxyf 原文:Go – taking slices of any type as input parameters 譯者:youn

原创 mysql auto_increment 的坑

Statement-Based Replication,不要設置innodb_autoinc_lock_mode=2 會導致主從數據不一致innodb_autoinc_lock_mode=2 時,auto_inc鎖順序: 0)   開始