转自:http://blog.csdn.net/Luoshengyang/article/details/54318348
       上个月,在花了一年半时间之后,写了55篇文章,分析完成了Chromium在Android上的实现,以及Android基于Chromium实现的WebView。学到了很多东西,不过也挺累的,平均不到两个星期一篇文章。本来想休息一段时间后,再继续分析Chromium使用的JS引擎V8。不过某天晚上,躺在床上睡不着,鬼使神差想着去创建一个个人站点,用来连载《Android系统源代码情景分析》一书的内容。

事情是这样的,躺在床上睡不着,就去申请了一个域名,0xcc0xcd.com。域名申请到了,总不能不用吧。用来做什么呢?想起我写的那本书《Android系统源代码情景分析》,从2012年10月出版至今,也有四年多的时间了,得到了大家的厚受。不过网络上也逐渐的出现了一些盗版PDF。不用说,质量肯定很差。干脆我把这本书的内容在我的个人站点上放出来吧。后面征得了出版社的同意,就着手开始干了。

网站名称为“进击的程序员”,主要是为了配合0xcc0xcd.com这个域名。从Windows时代过来的老司机可能一眼就能看出这个域名是什么意思。看不懂的,如果大家有兴趣,后面我也可以详细说说,怀念一下逝去的青春。

从开始有想法,到把网站建好,以及将书前三章(准备知识、硬件抽象层、智能指针)的内容放上去,花了不到一个月的时间。在这不到一个月的时间里,学习到了挺多东西:申请域名、云服务器、域名解析、域名邮箱、网站备案以及开发网站等等。因为我一直都是做客户端开发,刚毕业几年做的是Windows客户端,后面做的是Android端,没有做过网站相关的开发,包含前端和后端,所以学习过程还是有些小波折。不过总体上来说还是比较顺利的。这也跟网站的技术选型有关吧。

现在不是提倡做全栈工程师吗?这个建站过程也算是小小地实践了一把。怕时间久了会忘记一些关键细节和踩过的坑,所以就计划把建站连载书的过程记录下来。也希望能够帮助到有兴趣做全栈工程师的同学们。

网站使用的是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系统源代码情景分析》一书的,点击进击的程序员进入!

老罗的个人网站创建备忘相关推荐

  1. 常用的开源镜像网站收集与备忘

    常用的开源镜像网站收集与备忘 开源软件,英文表示是open source software,简称为OSS,直接的字面意思是公开源代码的软件,开源软件具备可以免费使用和公布源代码的主要特征,是赋予任何人 ...

  2. 加速下载必知必会-国内的镜像网站备忘

    1 国内的知名镜像网站备忘 大的综合镜像站仓库,为各中需求,包括下载软件.jar包.依赖等都提供了特别多的方便,下面是个人收藏的一些镜像站: #### 1 ali云 https://developer ...

  3. c# ui 滚动 分页_UI备忘单:分页,无限滚动和“加载更多”按钮

    c# ui 滚动 分页 重点 (Top highlight) When you have a lot of content, you have to rely on one of these thre ...

  4. aws 认证_AWS ML专业认证备忘单

    aws 认证 the highly important and carefully crafted piece, * this will only be useful after completing ...

  5. jQuery学习笔记--JqGrid相关操作 方法列表 备忘 重点讲解(超重要)

    JqGrid相关操作备忘 方法列表 特别推荐:怎样获取某一方某一列的值: [html] view plaincopy var rowdata=jQuery("#list").jqG ...

  6. vue 插件 滑块验证_VUE接入腾讯验证码功能(滑块验证)备忘

    最近在用VUE做个简单的用户系统,登录注册需要验证码,想找个那种拖动的,找geetest居然已经不面向小客户了(或者说只有收费套餐). 腾讯防水墙的验证码免费使用,有2000/小时的免费额度,对于小网 ...

  7. eazy ui 复选框单选_UI备忘单:单选按钮,复选框和其他选择器

    eazy ui 复选框单选 重点 (Top highlight) Pick me! Pick me! No, pick me! In today's cheat sheet we will be lo ...

  8. hp-ux 单用户 启动_UX备忘单:搜索与浏览

    hp-ux 单用户 启动 重点 (Top highlight) When designing search results and interest sites, you have to keep i ...

  9. 强大的日志分析工具AWStats经典备忘

    awstats经典备忘 [保留] 日志分析软件awstats的安装使用简易指南 http://www.chinaunix.net 作者:missing-cn   发表于:2006-09-30 08:1 ...

最新文章

  1. 腾讯云存储产品矩阵全面升级,发布三维生态战略
  2. 一文带你彻底了解Java异步
  3. mysql表数据以本地文件方式导入Hive
  4. java实体类如果不重写toString方法,会如何?
  5. 04 理解SQL与T-SQL的概念测试分析 1214
  6. Alibaba Nacos 服务消费者工程接入nacos并实现调用服务提供者工程
  7. 华为云苏光牛:生态建设是数据库产业发展非常重要的一环
  8. scala 高阶函数,闭包及柯里化
  9. 蓝桥杯2019年第十届C/C++省赛C组第一题-求和
  10. 7-19 输出全排列 (20 分)
  11. 为什么世界上近60%的人使用谷歌Chrome浏览器?
  12. Solr全文检索学习笔记·记录
  13. js判断数组中是否包含某个元素
  14. 免费支持顺丰、四通一达、EMS等快递物流单号查询的开放接口?
  15. 洛谷P3835 【模板】可持久化平衡树(FHQ Treap)
  16. 千人基因组(1000 Genomes)提取群体(population)或者样本(sample ID)信息
  17. IE浏览器地址栏输入中文乱码问题
  18. 隆重揭晓 | Google Play 2018 年度大赏,中国开发者再领风骚
  19. 语c语言描写,语c动作描写
  20. Android从程序员到架构师之路3

热门文章

  1. Apache Struts 1宣告退出舞台
  2. rhel5U4下挂在ntfs文件系统
  3. 教你如何与电脑病毒打游击
  4. Sniff网络基础原理和软件实现技巧详解
  5. 谷歌开源 VR 应用
  6. Node.js Web开发框架
  7. Google工程师详解Android架构
  8. 开发中很实用的10个效果
  9. php ini文件操作类,操作.ini文件的好PHP类
  10. maven工具使用json-lib时,JSONArray.fromObject()不能执行的解决方案