Convention over Configuration パターン (2)

Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次

CoCで重要なのは、まず規約を良く練る事です。
矛盾した規約に従うことほど辛いものはありません。


もう一つ、作業を開始しやすいよう、テンプレートを作ることも大切です。ドキュメントを検索する手間は少ない方が良いに決まっています。新規ユーザーの敷居を下げるのが重要です。

#adapter_scaffold.py
from __future__ import with_statement
import sys
import os

protocol = sys.argv[1]
class_name = protocol.capitalize() + "Adapter"
file_name = protocol.lower() + "_adapter.py"

scaffolding = u'''\
#encoding:utf-8
#%(file_name)s

class %(class_name)s:
    """Adapter class to send message for %(protocol)s"""
    
    def send_message(message):
        """ """
        #メッセージを送信するコード

if __name__ == "__main__":
    pass

''' % {
    "file_name": file_name,
    "class_name": class_name,
    "protocol": protocol,
}

with open(os.path.join("adapter", file_name), "w") as f:
    f.write(scaffolding.encode("utf-8"))
adapter_scaffold.py spam

spam用のアダプタが自動生成されます。