Git commit 0cfdd5ede05dca8ad1361720b4e3fe9497c7cb14
commit 0cfdd5ede05dca8ad1361720b4e3fe9497c7cb14
Author: Manatsawin Hanmongkolchai <
manat...@gmail.com>
Date: Sun Jan 10 19:58:19 2010 +0700
Added abstraction for ack_{section,account}_id and a test tool.
เห็น log สั้นๆ แค่นี้โค๊ดไม่สั้นนะครับ 154 บรรทัดในไฟล์เดียวเชียว
สำหรับระบบนี้ผมทำเป็น db abstraction ครับ คือเรียกใช้แล้วมันจะสร้าง SQL ขึ้นมาจากนั้นจัดการงานให้ ตรงนี้ท่านไหนพอทำเรื่อง extensible ได้ก็เชิญแก้ไขหน่อยครับเพราะผมไม่ได้ออกแบบไว้เลย
จริงๆ ตาม plan ที่วางไว้คือใช้ SQLObject แต่เนื่องจากมันมี table ที่เป็น SQL อยู่แล้ว จะมานั่งทำ SQLObject มันก็น่าเบื่อ และคงไม่มีประโยชน์ที่จะมา abstraction ซ้อนสองชั้นเลยไม่ทำครับ
สำหรับการใช้งานมอดูลผมพยายามออกแบบให้เข้าใจง่ายที่สุดคือใช้ระบบเดิม เช่นการจะดึงข้อมุล แทนที่จะไปเรียก .get() ขึ้นมา ก็สามารถถือว่า object ตัวดังกล่าวเป็นเหมือน list ปกติ จะดึงก็ list() ขึ้นมาได้เลย (ถ้ามีเงื่อนไขพิเศษค่อยใช้ .get()) หรือจะ for เข้าไปเลยก็ได้ครับ ถ้ายังไม่เข้าใจการทำงาน หรืออยากทราบส่วนอื่นๆ เปิดดูไฟล์ server/testsuite.py ดูนะครับ (ถ้าจะรันไฟล์นี้จะต้องติดตั้งก่อนครับ)
ขั้นตอนการติดตั้งระบบคร่าวๆ คือให้เปิดไปที่ server/ackernel/ คัดลอก conf.py.dist เป็น conf.py แก้ไขไฟล์ตามต้องการ จากนั้นรัน installer.py (working directory ต้องเป็น server/ackernel) โปรแกรมจะติดตั้งให้ทันทีครับเท่านี้ก็สามารถใช้งานได้แล้ว
สำหรับพรุ่งนี้เป็นต้นไปผมไม่อยู่ รบกวนว่าท่านไหนเขียน Python ได้ก็รบกวนทำต่อให้เสร็จด้วยครับ (จริงๆ copy paste โค๊ดผมไปก็ได้บางส่วนแล้ว ยิ่งถ้า table มันเหมือนกันเป๊ะแค่ copy paste เปลี่ยนชื่อ table, field ก็ได้แล้วครับไม่ซับซ้อน เสร็จแล้วเขียน testsuite โดย copy paste เปลี่ยนค่าตัวแปร ack ก็ได้แล้วครับไม่ยาก)