上个月,在花了一年半时间以后,写了55篇文章,分析完成了Chromium在Android上的实现,以及Android基于Chromium实现的WebView。学到了不少东西,不过也挺累的,平均不到两个星期一篇文章。原本想休息一段时间后,再继续分析Chromium使用的JS引擎V8。不过某天晚上,躺在床上睡不着,鬼使神差想着去建立一个我的站点,用来连载《Android系统源代码情景分析》一书的内容。前端
事情是这样的,躺在床上睡不着,就去申请了一个域名,0xcc0xcd.com。域名申请到了,总不能不用吧。用来作什么呢?想起我写的那本书《Android系统源代码情景分析》,从2012年10月出版至今,也有四年多的时间了,获得了你们的厚受。不过网络上也逐渐的出现了一些盗版PDF。不用说,质量确定不好。干脆我把这本书的内容在个人我的站点上放出来吧。后面征得了出版社的赞成,就着手开始干了。git
网站名称为“进击的程序员”,主要是为了配合0xcc0xcd.com这个域名。从Windows时代过来的老司机可能一眼就能看出这个域名是什么意思。看不懂的,若是你们有兴趣,后面我也能够详细说说,怀念一下逝去的青春。程序员
从开始有想法,到把网站建好,以及将书前三章(准备知识、硬件抽象层、智能指针)的内容放上去,花了不到一个月的时间。在这不到一个月的时间里,学习到了挺多东西:申请域名、云服务器、域名解析、域名邮箱、网站备案以及开发网站等等。由于我一直都是作客户端开发,刚毕业几年作的是Windows客户端,后面作的是Android端,没有作过网站相关的开发,包含前端和后端,因此学习过程仍是有些小波折。不过整体上来讲仍是比较顺利的。这也跟网站的技术选型有关吧。数据库
如今不是提倡作全栈工程师吗?这个建站过程也算是小小地实践了一把。怕时间久了会忘记一些关键细节和踩过的坑,因此就计划把建站连载书的过程记录下来。也但愿可以帮助到有兴趣作全栈工程师的同窗们。vim
网站使用的是LNMP架构,以下图1所示:后端
图1 进击的程序员网站架构服务器
网站运行在云服务器上,系统装的是Ubuntu 14.04,除了Nginx、PHP和MySQL,还搭了一个GIT仓库,用来管理网站源码。这个GIT仓库除了用来管理网站源码,还用来将源码分布到网站中去。网络
具体是这样的,在本地用本身的电脑开发网站(其实就是用vim编辑网页和PHP)。测试没有问题以后,就用git push命令将源码上传到GIT仓库。而后再登陆到云服务器上,在网站根目录用git pull命令从GIT仓库中得到最新网站源码。架构
此外,在本地还搭建了一个管理后台。这个管理后台就是用来给管理员管理网站的。主要就是操做一下数据库,例如查看数据、插入数据、更新数据等等。正规的网站会专门提供一些页面供管理员操做。鉴于这个网站不是很正规,管理员又是一个技术控,因而就直接使用Python脚原本实现这个管理后台了,想要什么功能就直接写个脚本。框架
Oracle提供了一个Python版的MySQL数据库驱动库MySQL Connector/Python,经过它很容易用Python脚本操做MySQL中的数据。这样一个简单的管理后台就搭建起来了。
整个网站的架构很是简单,能够很是快上手,同时它又五脏俱全。网站的前端主要用Ajax、jQuery开发,后端没有用什么高大尚的框架,基本上是徒手写的PHP。主要是考虑这个网站要作的事情很简单,就是连载《Android系统源代码情景分析》的内容,基本功能就是浏览和评论。因此就以最简单最快的方式实现。
为了让你们利用碎片时间更好地阅读书的内容,网站在提供PC版的同时,也提供了移动版。移动版和PC版的功能是同样的,只是它们的页面表现形式不同。因此网站在设计之初,就考虑了模块化和代码复用,用最小的成本得到同时实现PC端和移动端的功能。
不知道为何,提及PHP, 老是会想起“PHP是最好的语言”这句话。从这一个月的经历看,PHP是否是最好的语言不知道,可是用来建网站,PHP的确是最好的语言。用PHP和JS开发网站,效率比用Java/OC开发App,高多了。不过,网站的体验不如App。因此移动开发目前仍是王道。
接下来,我会用一个系列的文章分享整个建站过程,包括:
1. 域名、云服务器、域名解析、网站备案、域名邮箱、CA证书申请
2. LNMP开发环境搭建,包括如何配置SSL加密的HTTPS站点
3. 支持SSH访问的GIT仓库搭建
4. 网站基本功能开发,PC版和移动版代码复用
5. 基于MySQL Connector/Python的管理后台开发
欢迎你们关注!想在线阅读《Android系统源代码情景分析》一书的,点击进击的程序员进入!