# 全棧篇: 架構設計
### 博客
我尚不屬于那些技術特別好的人——我只是廣度特別廣,從拿電烙鐵到所謂的大數據。不過相比于所謂的大數據,我想我更擅長于焊電路板,笑~~。由于并非畢業于計算機專業,畢業前的實習過程中,我發現在某些特殊領域的技術比不上科班畢業的人,這意味著需要更多的學習。但是后來受益于工作近兩年來從沒有加班過,朝九晚六的生活帶來了大量的學習時間。在這個漫長的追趕過程中,我發現開發博客相關的應用帶來了很大的進步。
### 技術組成
So,在這個博客里會有三個用戶來源,Web > 公眾號 > App。
在網頁上,每天大概會400個PV,其中大部分是來自Google、百度,接著就是偶爾推送的公眾號,最后就是只有我一個人用的APP。。。
> Web架構
服務器:
1. Nginx(含Nginx HTTP 2.0、PageSpeed 插件)
1. Gunicorn(2 Workers)
1. New Relic(性能監測)
DevOps:
1. Farbic(自動部署)
Web應用后臺:
1. Mezzaine(基于Django的CMS)
1. REST Framework (API)
1. REST Framework JWT (JSON Web Token)
1. Wechat Python SDK
1. Mezzanine Pagedown (Markdown
Web應用前臺:
1. Material Design Lite (用戶)
1. BootStrap (后臺)
1. jQuery + jQuery.autocomplete + jquery.githubRepoWidget
1. HighLight.js
1. Angluar.js
1. Backbone (已不維護)
移動端:
1. Ionic
1. Angular + ngCordova
1. Cordova
1. highlightjs
1. showdown.js(Markdown Render)
1. Angular Messages + Angular-elastic
微信端:
1. Wechat-Python-SDK
That’s All…
### 前后臺分離
### API
在構建SPA的時候,做了一些API,然后就有了一個Auto Sugget的功能:

Auto Suggest
或者說,它是一個Auto Complete,可以直接借助于jQuery AutoComplete插件。
或許你已經猜到了,既然我們已經有博客詳情頁和列表頁的API,并且我們也已經有了Auto Suggestion API。那么,我們就可以有一個APP了。
### APP
偶然間發現了Ionic框架,它等于 = Angluar + Cordova。于是,在測試Google Indexing的時候,花了一個晚上做了博客的APP。

Blog App
我們可以在上面做搜索,搜索的時候也會有Auto Suggestion。上面的注銷意味著它有登錄功能,而Hybird App的登錄通常可以借用于JSON Web Token。即在第一次登錄的時候生成一個Token,之后的請求,如發博客、創建事件,都可以用這個Token來進行,直到Token過期。如果你是第一次在手機上訪問,也許你會遇到這個沒有節操的廣告:

Install Phodal Blog App
然并卵,作為我的第七個Hybird應用,它只發布在Google Play上——因為不需要審核。
隨后,我意識到了我需要將我的博客推送給讀者,但是需要一個渠道。
### 微信公眾平臺
借助于Wechat-Python-SDK,花了一個下午做了一個基礎的公眾平臺。除了可以查詢最新的博客和搜索,它的主要作用就是讓我發我的博客了。
對了,如果你用Python寫代碼,可以試試PyCharm。除了WebStorm以外,我最喜歡的IDE。因為WebStorm一直在與時俱進。