Quick Links
- Portal for Collobration Notes 共筆統整入口 (hosted by hackfoldr and HackMD)
- Program Schedule 議程時間表
- PyCon TW 2016 Official Site 官網
How to update this note?
- Everyone can freely update this note. 任何人都能自由地更新內容。
- Please respect all the participants and follow our code of conduct during discussion. 討論、記錄時,請遵守大會的行為準則。
推薦書籍:Test-Driven Development with Python (O'RELLY)
game is reactive.
Everything can be a stream
for in if
眼睛會痛XD
from functional import seq
core spirit: Stream
most.js: Monadic reactive streams
Python reactive extension
Handle for you:
Implementation:
Asynchronous programming is HARD.
複雜的 list 的扁平化(我要的值在 list 的每個event中)
str_ls = [['6', '7'], ['42']]
互動業 (?)
常用工具:OpenFramework / PureData / Kinect …etc
用Raspberry Pi 3
因為不同公司有不同權限,Django和nginx串接來解決
去一個展場,需要安裝一個 App ,然後可能還沒看完,就離開了, App 又需要送審,相對於網頁,網頁打開就可以 work。
我們在開發程式的時候,都是 "read lines randomly" 的,不像電腦會逐行讀取。
Making wrong code look wrong - Joel on software
用人讀 code 的方式來定義 Maintainability
To understand a random line, the lines you need to read back.
相對於programmer的時間,運算資源比較不值錢。
把時間專注於想要做的事情,而不是 debug 上面。
Be exact & consistent (命名要精準且有一致性)
result = ...
result = ...
以這種方式來命名不夠準確所以很容易混亂
常常用 dictionary,對一個領域不熟悉的話可以多查字典來找到更好的名字哦!
命名具有提示的作用,提示有怎樣的operation可以用
page_no = ...
page_html = ...
這樣就可以知道 page_no
是一個數字,而 page_html
是一個字串
allowed_field_set = set(requested_field)
這樣能清楚知道他是一個集合(set)
用d來標示dictionary
user = User(...)
user_d = {}
Hint: func 的命名如果沒有取名好,那發現問題還需要查 document,這個更耗時
建議:func都用動詞開頭,就會記得加上()
不要把 is_secure = True
與 req.is_secure()
混用
以 形容詞
、介係詞
來當 boolean 會比較好
或者用簡單的句子來表示 boolean: req_is_secure = True
None
Consider:
user = query_user(uid)
user.is_valid()
如果查不到 user 就 ret None 的話,就會噴 Error 囉!
Accept an exception ?
tmpl = '<p>{}</p>'.format(name)
name = '<script> ... </script>'
#XSS
tmpl_html = ... .format(
escape_to_html(name)
)
這種不是 python 的東西,對 Python 而言就只是 str,所以要去處理
uid_email_map = {
'mosky': 'mosky@email'
}
這樣子的命名方式能夠更直覺
空行
來把不同的事情分隔開section
的方式來切開(Title comment 來區隔開不同的區塊)Func A call Func U, Func B call Func U
可以從連線的方式來慢慢切開變成函式的模組化
Hint: 最好把箭頭指向的方向全統一到同個方向
不要為了克服心理上的潔癖而造成開發上時間的損失
就是不要因為覺得 code 很醜就浪費一下午改好又不能動 XD
Use hints to boost maintainability !
1、如何影響同事在 co-working 上使用較好的命名?
絕對不要有 guild line,可是可以用 I will prefer
這種方式來慢慢改變同事的風格,當他們發現這麼做的好處就會漸漸跟著改變。
但是真的碰到沒有按照規則走的同事也不要太生氣,可以 comment 他(幫他補一堆 comment),幫他 wrapper,然後讓自己的工作更順利。
2、你會參考 google 的 programming guildline 嗎?
會參考唷!