原创 序列化和反序列化

序列化也叫做編碼,是指將對象轉換成字節數組,用於在網絡傳輸,數據持久化。 反序列化也叫作解碼,是指將字節數組還原成原始對象,以方便進行後續的業務邏輯操作。   序列化方式 1. 文本類序列化方式,JSON ,XML 2.二進制序列化方式,

原创 git操作

查看歷史記錄的方式 git log --pretty=oneline 用一行去顯示歷史記錄 git log --oneline git reflog 會顯示HEAD@{..} git reflog 可以查看所有分支的所有操作記錄(包括已經

原创 Git交互式rebase

https://segmentfault.com/a/1190000012897755 使用 git rebase -i <branch> 可以進入交互式模式,可以對 某一範圍內的提交 進行重新編輯 默認情況下,直接使用 git reba

原创 git rebase pull

使用git pull --rebase的好處在於, merge操作會生成一個新的節點,之前的提交分開顯示。 而rebase操作不會生成新的節點,是將兩個分支融合成一個線性的提交。

原创 Git中的‘HEAD’是什麼?- Git名詞解釋

問題來源 git 恢復文件到初始狀態的命令: $ git reset HEAD <file> git 展示提交日誌命令: $ git log commit c4f9d71863ab78cfca754c78e9f0f2bf66a2bd

原创 Thrift 應用

Thrift最初由facebook研發,主要用於各個服務之間的RPC通信,支持跨語言。 Thrift是一個典型的CS結構,客戶端和服務端可以使用不同的語言開發,所以需要有一種中間語言來關聯客戶端和服務端的語言。 這種語言就是IDL(接口描

原创 protobuf編譯安裝

github地址:https://github.com/google/protobuf支持多種語言,有多個語言的版本,本文采用的是在centos7下編譯源碼進行安裝。 github上有詳細的安裝說明:https://github.com/

原创 敏捷開發

敏捷開發(agile development)是非常流行的軟件開發方法。據統計,2018年90%的軟件開發採用敏捷開發。 但是,到底什麼是敏捷開發,能說清的人卻不多。本文嘗試用簡潔易懂的語言,解釋敏捷開發。 一、迭代開發 敏捷開發的核心

原创 Docker 部署 ElasticSearch-Head

爲什麼要安裝ElasticSearch-Head呢,原因是需要有一個管理界面進行查看ElasticSearch相關信息 3.1 拉取鏡像 docker pull mobz/elasticsearch-head:5 3.2 運行容器 d

原创 Java UML圖理解

原创 git換行符自動轉換導致整個文件被修改的解決方案

不少開發者可能遇到過這個問題:從git上拉取服務端代碼,然後只修改了一處地方,準備提交時,用diff軟件查看,卻發現整個文件都被修改了。這是git自動轉換換行符導致的問題。  原因 不同操作系統使用的換行符是不一樣的。Unix/Linu

原创 Devops 到底是什麼?

過去一年以來,一批來自歐美的、不墨守陳規的系統管理員和開發人員一直在談論一個新概念:DevOps。DevOps就是開發(Development)和運維(Operations)這兩個領域的合併。(如果沒錯的話,DevOps還包括產品管理、Q

原创 Java8中的[方法引用]“雙冒號”

原文地址:https://blog.csdn.net/lsmsrc/article/details/41747159 類名::方法名 注意是方法名哦,後面沒有括號“()”噠。爲啥不要括號,因爲這樣的是式子並不代表一定會調用這個方法。這種式

原创 Mock測試框架(Mockito爲例)

在做單元測試的時候,有的時候用到的一些類,我們構造起來不是那麼容易,比如HttpRequest,或者說某個Service依賴到了某個Dao,想構造service還得先構造dao,這些外部對象構造起來比較麻煩。 所以出現了Mock! 我們可

原创 軟件開發流程