跳到主要內容

筆記:TDD三原則

所謂的測試導向開發的三原則
http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
  1. You are not allowed to write any production code unless it is to make a failing unit test pass.
  2. You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures.
  3. You are not allowed to write any more production code than is sufficient to pass the one failing unit test.
翻譯成白話一點的中文就是
  1. 沒有測試單元,不寫程式。
  2. 不寫測試條件以外的測試程式。
  3. 不寫不屬於任何測試單元的產品程式。
張貼留言

這個網誌中的熱門文章

Portable Python

我常常需要把Python寫的script帶到其他電腦使用,因此,一個免安裝,可攜帶的Python就顯得十分重要。最近看過了幾個可攜式Python的方案,下面這個PortablePython是我覺得最合我意的方案。因為它提供了大部分會用到的Python module及工具,甚至連wxPython及PyGame也有。同時也有好用的Python編輯器PyScripter。所有開發Python所需的開發工具都一應俱全了!把它放到隨身碟中,就不用到處幫人安裝Python了。

PortablePython: http://www.portablepython.com/

解決Python script無法在cp65001的console下執行的問題

你是否有這樣的經驗,明明沒問題的script,拿到某的電腦一直看到下面的訊息而無法執行。
LookupError: unknown encoding: cp65001 cp65001是什麼鬼!?其實,它就是UTF8阿!只是,Microsoft喜歡叫他cp65001(code page 65001號)。附帶一提,我們常用的Big5是cp950。想要知道你目前所使用的code page可以在Windows的console視窗執行

一個Python程式可幫檔名加上日期與時間

很多時候,我們希望能夠將檔案或是目錄名稱加上一個時間及日期,以便release。所以,我就寫了一個小小的程式來達到這個目的。我把這個程式貼上來,讓有興趣的人可以拿去使用。
--
#!/usr/bin/env python
# -*- coding: ascii -*-
"""
Usage: cfgfn.py [filename or directory list]
"""
import sys
import os
import time
import re
import glob

ro = re.compile(r'(?P<FN>.*)-[0-9]{8}-[0-9]{4}(?P<EXT>.*)')

for fnl in sys.argv[1:]:
for fn in glob.glob(fnl):
mo = ro.match(fn)
if mo:
pre = mo.group('FN')
ext = mo.group('EXT')
else:
pre, ext = os.path.splitext(fn)
newFn = pre + time.strftime('-%Y%m%d-%H%M') + ext
os.rename(fn, newFn)
print 'Rename %s -> %s' % (fn, newFn)