Day 1
和 @pan🍳 討論「如何從零開始實現一個自己的日誌系統?」。
✅ TODO
- ☑️ D1.1. 用
.txt
記錄日誌; - ☑️ D1.2. 彙總
.txt
; - ☑️ D1.3. 導入到服務器中,並響應;
📝 過程記錄
D1.1. 其實是在考察「對規範 / 約定的理解」:
- 記錄形式:是用文本,還是 Excel ?
- 記錄粒度:是通通放在一個文件中,還是每天一個?
D1.2. 是在引入「解析」的概念;
db = []
Dir.each_child("./") do |f|
next unless /\.md$/ =~ f
db << File.read(f)
end
pp db
用 Python 實現也很簡單:
import os
md_files = [name for name in os.listdir('./')
if name.endswith('.md')]
db = []
for fname in md_files:
with open(fname, 'rt') as f:
db.append(f.read())
print("\n".join(db))
D1.3. 可以直接引入「Web 框架」[1]。同時,介紹「路由🚏」的概念。這裏用的是 Sinatra
(GitHub)。
require "sinatra"
get '/foo' do
db.join("<br />")
end
Python 實現也不難:
# save this as app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "<br />".join(db)
裝好 Flask 以後( pip install -U Flask
),運行 flask run
,然後打開 localhost:5000
就可以看到了。
現在,藉助瀏覽器的 ⌘ + F
已經可以實現日誌搜索🔍了。
📄 課後習題:
- ☑️ D1.4. 瞭解 MarkDown ;
- ☑️ D1.5. 瞭解怎麼在網頁中嵌入輸出;
⚠️ 在一開始就應該建立的理念:
- 凡事皆記錄的習慣,包括學習的過程(這樣可以在一開始對日誌記錄的必要性沒有認識的情況下冷啓動。當然,日後也會收穫數據遷移的痛苦🤣)。同時,還可以從日誌中抽取文檔。
-
主要是我忘了怎麼用原生庫實現了😓; ↩