原创 C語言-常用基礎函數

由於C是靠近底層的語言,必須要學習精通各種進制。雖然C標準庫有進制轉換的函數,但還是要自己能夠實現這些函數才能加深理解,不定期整理一些學習筆記,加深理解 二進制字符串轉十進制 #include <math.h> int biToI

原创 推薦的接口管理平臺-yapi

最近在找好用的接口管理平臺,爲項目的接口做統一管理。最終選擇了 YApi 這個開源項目。 github地址:https://github.com/ymfe/yapi; 項目需要nodejs,mongo支撐,使用nodejs運行,安裝運行

原创 golang-標準庫(crypto/ecdsa)

ecdsa包提供了非對稱加密算法ECDSA,ECDSA爲橢圓曲線加密算法,是基於橢圓方程公式,安全性要高於RSA。 這裏說下使用ecdsa的密匙生成和簽名校驗,不涉及原理; go中ecdsa目前只有用私鑰加密,公鑰做校驗,沒有解密環節;

原创 算法筆記(2)

 數組索引排序法 整理一個數組索引排序法,利用數組索引來排序的一種算法,效率遠高於冒泡排序等普通算法。不過它有前提條件:已知數據中的最大元素。 原理:聲明一個長度爲待排序數組最大元素+1的索引數組,然後遍歷待排序數組,將數組值對應索引數

原创 算法筆記(1)

記錄一下最近用到的幾種常見算法的優劣。下面將給出四種算法的javascript代碼和對10w條數據進行排序的結果,10w條數據使用Math.random產生10w條隨機整數。在對1w條一下的數據進行排序時,大多數算法都在毫秒的差距上體現

原创 nginx隨筆-官方模塊筆記(1)

ngx_http_secure_link_module 這個模塊可以實現對服務資源文件做訪問限制,防止其它站點盜用資源文件。原理是,用戶訪問資源文件時,服務器返回一個新的uri,這個uri裏帶有二個重要的參數一個是md5加密字符串(

原创 golang-unsafe包的用處

在前一篇文章(https://blog.csdn.net/itpika/article/details/104180513)我總結了unsafe包的用處和一些簡單的用法(計算內存對齊優化結構體,操作結構體私有變量,對有相同字段類型但結構

原创 golang-標準庫(sync/atomic)

這個庫是用來保證併發編程數據安全的。提供了對數據進行原子性操作的方法。 可能一些初學者對數據的原子性操作不是太理解,sync包的鎖就可以保證併發數據的安全,爲什麼atomic包也可以保證併發的數據安全,它跟加鎖的區別又是什麼。 簡單說一

原创 golang標準庫-os/exec

exec包可以用於執行外部命令。簡單來說,就是可以用該包來執行其它的應用程序(比如shell腳本,或者其它任意可執行程序)。它對os.StartProcess函數做了包裝,以便更容易的對輸入輸出做處理,使用管道連接I/O,以及作其它的一

原创 golang標準庫-操作系統(os)

讀完本篇文章大概會花費你5-20分鐘時間,有些內容可選擇跳過 os包提供了操作系統的系列函數,這些接口不依賴平臺。設計爲Unix風格的,錯誤處理是go風格的;調用失敗會返回錯誤值而非錯誤碼。通常錯誤值裏包含更多信息。 os包的接口在所有

原创 排列組合(密碼本)-求指定個數的字母或數字的的任意排列組合

最近要做一個密碼本,列出所有電話號碼的可能組合 也就是指定個數的數字的所有組合 比如(0, 1, 2) 列出這三個數字的任意組合,組合長度爲3: 000,001,002,100,101,102..... 需要一個算法,特此記錄 使用遞

原创 golang-切片與數組的區別理解

接觸golang有一年多了,很長一段時間對數據和切片的理解都模模糊糊,到今天爲止總結一下自己對數組和切片理解。 數組: 在go中,數組是一種值類型。雖然數組的元素可以被修改,但數組本身的賦值和傳參都是以整體賦值的方式進行的。數組由長度

原创 golang-標準庫(unsafe)

除了c家族的編程語言明確提供了直接通過指針運算操作內存的方式,其它語言大多屏蔽了這一操作,程序員直接操作內存往往不太安全,容易出現各種問題。go有着c的影子,保留了指針但又對指針的能力進行了削弱。在go中也不能直接進行指針運算來操作內存

原创 golang-協程理解

本文總結一下go協程的理解,如有錯誤望請指正。 網上都說協程是一種輕量級線程,線程又是一種輕量級的進程。這話在語言層面看來是沒有錯的,但它們的實現是不同的。 線程是cpu資源調度的最小單位。協程不由cpu進行調度,由應用程序進行調度,也就

原创 CommonJs和es6的Module的區別

歷史上,js一直沒有模塊(module)體系,無法將一個項目拆分成多個模塊文件。正對這一情況,社區出現了一些統一的規範:CommonJs和AMD,前者是針對服務端的js,也就是nodejs。後者是針對瀏覽器的。ES6在語言標準層面上,實