上個月,在花了1年半時間以后,寫了55篇文章,分析完成了Chromium在Android上的實現,和Android基于Chromium實現的WebView。學到了很多東西,不過也挺累的,平均不到兩個星期1篇文章。本來想休息1段時間后,再繼續分析Chromium使用的JS引擎V8。不過某天晚上,躺在床上睡不著,鬼使神差想著去創建1個個人站點,用來連載《Android系統源代碼情形分析》1書的內容。
事情是這樣的,躺在床上睡不著,就去申請了1個域名,0xcc0xcd.com。域名申請到了,總不能不用吧。用來做甚么呢?想起我寫的那本書《Android系統源代碼情形分析》,從2012年10月出版至今,也有4年多的時間了,得到了大家的厚受。不過網絡上也逐步的出現了1些盜版PDF。不用說,質量肯定很差。干脆我把這本書的內容在我的個人站點上放出來吧。后面征得了出版社的同意,就著手開始干了。
網站名稱為“進擊的程序員”,主要是為了配合0xcc0xcd.com這個域名。從Windows時期過來的老司機可能1眼就可以看出這個域名是甚么意思。看不懂的,如果大家有興趣,后面我也能夠詳細說說,懷念1下逝去的青春。
從開始有想法,到把網站建好,和將書前3章(準備知識、硬件抽象層、智能指針)的內容放上去,花了不到1個月的時間。在這不到1個月的時間里,學習到了挺多東西:申請域名、云服務器、域名解析、域名郵箱、網站備案和開發網站等等。由于我1直都是做客戶端開發,剛畢業幾年做的是Windows客戶端,后面做的是Android端,沒有做過網站相干的開發,包括前端和后端,所以學習進程還是有些小波折。不過整體上來講還是比較順利的。這也跟網站的技術選型有關吧。
現在不是提倡做全棧工程師嗎?這個建站進程也算是小小地實踐了1把。怕時間久了會忘記1些關鍵細節和踩過的坑,所以就計劃把建站連載書的進程記錄下來。也希望能夠幫助到有興趣做全棧工程師的同學們。網站使用的是LNMP架構,以下圖1所示:
圖1 進擊的程序員網站架構
網站運行在云服務器上,系統裝的是Ubuntu 14.04,除Nginx、PHP和MySQL,還搭了1個GIT倉庫,用來管理網站源碼。這個GIT倉庫除用來管理網站源碼,還用來將源碼散布到網站中去。
具體是這樣的,在本地用自己的電腦開發網站(其實就是用vim編輯網頁和PHP)。測試沒有問題以后,就用git push命令將源碼上傳到GIT倉庫。然后再登錄到云服務器上,在網站根目錄用git pull命令從GIT倉庫中取得最新網站源碼。
另外,在本地還搭建了1個管理后臺。這個管理后臺就是用來給管理員管理網站的。主要就是操作1下數據庫,例如查看數據、插入數據、更新數據等等。正規的網站會專門提供1些頁面供管理員操作。鑒于這個網站不是很正規,管理員又是1個技術控,因而就直接使用Python腳本來實現這個管理后臺了,想要甚么功能就直接寫個腳本。
Oracle提供了1個Python版的MySQL數據庫驅動庫MySQL Connector/Python,通過它很容易用Python腳本操作MySQL中的數據。這樣1個簡單的管理后臺就搭建起來了。
全部網站的架構非常簡單,可以非常快上手,同時它又5臟俱全。網站的前端主要用Ajax、jQuery開發,后端沒有用甚么高大尚的框架,基本上是徒手寫的PHP。主要是斟酌這個網站要做的事情很簡單,就是連載《Android系統源代碼情形分析》的內容,基本功能就是閱讀和評論。所以就以最簡單最快的方式實現。
為了讓大家利用碎片時間更好地瀏覽書的內容,網站在提供PC版的同時,也提供了移動版。移動版和PC版的功能是1樣的,只是它們的頁面表現情勢不1樣。所以網站在設計之初,就斟酌了模塊化和代碼復用,用最小的本錢取得同時實現PC端和移動真個功能。
不知道為何,說起PHP, 總是會想起“PHP是最好的語言”這句話。從這1個月的經歷看,PHP是否是最好的語言不知道,但是用來建網站,PHP的確是最好的語言。用PHP和JS開發網站,效力比用Java/OC開發App,高多了。不過,網站的體驗不如App。所以移動開發目前還是王道。
接下來,我會用1個系列的文章分享全部建站進程,包括:
1. 域名、云服務器、域名解析、網站備案、域名郵箱、CA證書申請
2. LNMP開發環境搭建,包括如何配置SSL加密的HTTPS站點
3. 支持SSH訪問的GIT倉庫搭建
4. 網站基本功能開發,PC版和移動版代碼復用
5. 基于MySQL Connector/Python的管理后臺開發
歡迎大家關注!想在線瀏覽《Android系統源代碼情形分析》1書的,點擊進擊的程序員進入!
下一篇 學生信息管理系統