練習 46: blog
blog
原文: Exercise 46: blog 譯者: 飛龍 協定: CC BY-NC-SA 4.0 自豪地采用 谷歌翻譯
你應該按照本節開頭的描述編寫流程主題,你應該将流程列出并做好準備。為了起步,我們将為本節的其餘部分提供一個名為
blog
的全新工具作為熱身。
你應該慢慢參與這個項目,盡量不要趕時間。你的目标不是成為快速的程式員。通過系統地緩慢起步,你最好緩慢、流暢地建立速度,直到你的工作方式成為第二本能。如果你總是趕時間,那麼你會粗心。
確定将你的筆記放在手邊,并跟蹤你的工作的實際情況和名額。你正在試圖看看是否有一個适合你的流程,作為稍後的工作方式。并不是所有的方法一直有用,這就是為什麼我試圖教你各種工作政策,不同的程式員使用它們。如果你做這個項目,你發現你做的事情沒有起作用,那麼你的筆記将幫助你找出原因。在下一個項目中更改它,看看其它的東西是否效果更好。
挑戰練習
我讓你編寫一個名為
blog
的簡單的指令行部落格工具。這是一個非常有創意的項目名稱,用于一個有創意的項目。部落格是一些早期程式員編寫的第一個項目,但是你的項目将在本地生成部落格,然後使用另一個名為
rsync
的工具将其發送到伺服器。以下是此練習的要求:
- 如果你不知道什麼是部落格,那麼你應該去建立一個,然後嘗試一下。有很多平台,但你可能會喜歡 Wordpress 或 Tumblr。隻需使用它一會兒,并記下你可能想要複制的功能。不要太瘋狂了。
- 你将要學習如何使用模闆系統來設計 HTML 頁面。我建議你使用 mako 或 jinja 模闆系統。這些系統允許你制作模闆 HTML 檔案,然後你可以根據使用者放置在目錄中的文本檔案,将真實内容放入。
- 你将要使用 Markdown 作為你的部落格格式,是以請為你的項目安裝 markdown 庫。
- 你的部落格将是一個靜态檔案部落格,是以你将需要使用
,就像python -m SimpleHTTPServer 8000
指南中示範的那樣。這會把轉儲目錄中的檔案提供給浏覽器。SimpleHTTPServer
- 你需要一個名為
的指令行工具,來處理他人的部落格。blog
- 在你起步之前,請考慮你的部落格工具所做的所有事情,然後設計所需的所有指令及其參數。然後檢視
項目,來實作這些指令。docopt
- 你應該使用 mock 來模拟你需要測試的東西,特别是錯誤情況。參考我在第三部分和第五部分中,我如何使用
。mock
- 除此之外,你可以按照自己的意願,随意開發這個
工具。變得有創造力。所有要做的事情是,部落格是以某種方式建立的,然後我可以放在要檢視的伺服器上。blog
最後,我會使用
rsync
将這樣的部落格放到網上,使用下列指令:
rsync -azv dist/* myserver.com:/var/www/myblog/
這可能更進階,但這可能是一個好時機,來學習如何部署靜态檔案。這裡有一個研究性學習,也談到如何使用亞馬遜 S3 來實作它。
研究性學習
- 将靜态檔案部署到你自己的伺服器是所有的事情,也很有趣,但如果
工具适用于 Amazon S3 不是更好嗎?有一個名為blog
的項目,将為你提供你所需的一切,使boto3
實作它。blog
- 編寫一個
指令,它使用blog serve
類來簡單部署部落格,而不是單獨生成部落格。SimpleHTTPServer