原创 字符集編碼(三):Unicode

前面《字符集編碼(上):Unicode 之前》我們講了在二十世紀九十年代 Unicode 出現之前各廠商和標準化組織爲了應對不同語言文字的編碼需求而設計了各種互不兼容的字符集編碼標準,這使得軟硬件開發商在處理多語言環境時相當棘手。爲了解決字

原创 字符集編碼(二):字符編碼模型

上一篇《字符集編碼(上):Unicode 之前》我們講了 Unicode 之前的傳統字符集編碼標準產生的歷史背景,以及因存在多種編碼標準而帶來的混亂,這種局面強烈要求一種新的、統一的現代編碼標準的出現——這個統一的編碼標準就是 Unicod

原创 字符集編碼(上):Unicode 之前

計算機起初是設計用來做數學計算的,Computer 一詞英文原意是“計算員”——在計算機發明之前,計算員是一個獨立的職業,專門做各種數學用表的計算,如測量和天文領域的三角函數表、對數表,航海領域的航海天文歷等。 計算機發明後不久,人們發現,

原创 IP:網絡上的擊鼓傳花

鏈接,而不是直達 在之前《聽說你很懂 DNS?》中我們分析過用戶在瀏覽器裏面輸入 www.baidu.com 後,瀏覽器如何通過 DNS 解析拿到 IP 地址,然後請求該 IP 地址獲取網站內容。 本文接着就講講瀏覽器端給目標主機(IP 地

原创 一文搞清楚 DNS 的來龍去脈

目錄美國霸權ICANN:互聯網界的聯合國IP 地址分配域名解析架構分層架構:DNS 緩存:根 DNS 服務器:頂級 DNS 服務器(TLD):權威 DNS 服務器:本地 DNS:DNS 協議概覽:dig 一下:DNSSEC:如何證明”你媽是

原创 再談 PHP 未來之路

前段時間我寫過一篇博文《phper:敢問路在何方》,分析了 PHPer 的困境以及 PHP 程序員的學習、進階突破之路。同時我在知乎上也發過類似的提問。從大家的評論和回答看,大體分爲以下幾種情況: 認爲 PHPer 的困境跟 PHP 語

原创 Swoole 實戰:MySQL 查詢器的實現(協程連接池版)

文章目錄需求分析使用示例模塊設計UML 類圖入口事務連接池連接查詢器的組裝總結 需求分析 本篇我們將通過 Swoole 實現一個自帶連接池的 MySQL 查詢器: 支持通過鏈式調用構造並執行 SQL 語句; 支持連接池技術; 支

原创 Git 分支管理實踐

背景 在團隊多人協作開發中,分支管理需要解決如下問題: 直到上線並驗收通過之前,每個人開發的功能互不影響; 多人開發的功能測試時需要共用同一套(或有限的幾套)測試環境; 哪怕代碼上線後,也有回滾的可能性,上線回滾不會對主幹分支的

原创 PHP 開發雜談:對後端開發的思考

(團隊內部技術分享摘要) 文章目錄目前開發實踐中的問題相關設計模式和架構概述其他設計/架構模式相關概念分析 目前開發實踐中的問題 業務邏輯泄露。本應屬於 Service 的業務邏輯泄露到其他各層中(Controller、Repo

原创 PHP 開發規範:實戰篇

本規範基於 PSR 和實際項目經驗整理而成,目前已在公司內部推行使用,特分享如下。 分爲編碼格式篇和程序設計篇兩大部分。 文章目錄編碼格式篇樣例文件行縮進關鍵字命名命名空間和類類的常量、屬性和方法修飾符的使用方法和函數的調用控制結

原创 nginx 支持 WebSocket 協議

nginx.conf 的 http 段中: map $http_upgrade $connection_upgrade { default upgrade; '' close; } vhost.conf 中: l

原创 技術面試(上):面試官篇

作爲一個技術團隊管理者,面試是一項必不可少的工作;作爲一個上班族,被面試也是必然會一而再再而三經歷的事情。 不過在我的經驗中,很多人(包括曾經的自己)不太會面試這件事,或者說不太重視這件事。面試官認爲搞幾道題給對方做做,做得出來就

原创 phper:敢問路在何方

很多php程序員存在未來發展方面的困擾,介於各方面的因素,phper 比其他程序員更容易遇到上升天花板。 一方面,一般只有初創企業爲了快速實現產品上市以及極容易招到 phper 才使用 php 來實現公司的全部業務,大廠的核心業務

原创 從儲值卡(會員卡)充值業務看分佈式事務的設計

公司有一項儲值卡充值業務:客戶在微信公衆號開通儲值卡服務,通過微信支付往卡里面充值,充值成功後客戶可收到消息通知,並進行消費。 看起來是一項很簡單的業務,最初我們儲值卡團隊的實現也確實很簡單。我們看看最初的實現: 相信聰明的你一

原创 Git 常用命令彙總(99%的工作場景看這篇就夠了)

文章目錄分支的三個版本倉庫與版本庫工作區、暫存區、版本區.git 目錄概覽本地倉庫與遠程倉庫基於遠程倉庫的分支創建本地分支基於 master 創建本地分支並推送到遠程倉庫git pull 的兩種模式:rebase 和 merge合