msgbartop
Just another blog of mine
msgbarbottom

14 May 07 CakePHP

CakePHP เป็น API และ framework สำหรับพัฒนาโปรแกรมบนเว็บ โดยอิงกับรูปแบบ MVC ที่มี Ruby on Rails เป็นผู้นำทาง รู้จัก CakePHP โดยบังเอิญ เนื่องจากจะต้องพัฒนาระบบงานระบบหนึ่งให้กับสถาบันฯ แบบเร่งรัด โดยส่วนตัวก็ชอบแนวคิดของ RoR แต่รู้สึกไม่ค่อยชินกับไวยากรณ์และโครงสร้างของภาษา Ruby สักเท่าไหร่ แม้ว่าจะใช้ Ruby เขียนสคริปต์เป็นหลักตอนเรียนปริญญาเอก แต่ทำยังไงก็ไม่คุ้น หยุดใช้ไปซักหน่อยก็จะลืมหมด จะเขียนใหม่ก็ต้องมานั่งอ่านกันทุกที  เลยลองหาไลบรารีเพิ่มเติมของ PHP ซึ่งใช้ไวยากรณ์คล้ายภาษาซีที่ติดอยู่ในสายเลือดแล้ว หาไปหามาก็เจอ CakePHP ตัวนี้แหละ

ข้อดีของ CakePHP ก็คือ เป็นแค่ library เพิ่มเติม ที่ทำงานร่วมกับ interpreter ของภาษา PHP ทำให้ติดตั้งโปรแกรมหรือระบบได้ง่าย ไม่ต้องการอะไรพิเศษ ดาวน์โหลดมาแล้ว พอระเบิดออกก็จะได้ directory มาหนึ่งอัน ที่เราสามารถเพิ่มโปรแกรมของเราเข้าไปตามโครงสร้างที่วางไว้ และ directory นี้ก็มีลักษณะเช่นเดียวกับระบบที่พัฒนาด้วย PHP แบบเดิม เอาไปวางไว้บน web server แก้ config นิดหน่อยก็ใช้งานได้แล้ว  สะดวกมาก นอกจากนี้ CakePHP ยังเหมาะกับคนที่เข้าใจไวยากรณ์ของ PHP อยู่แล้ว เรียกว่าไม่ต้องปรับตัวมากมาย ก็เข้าใจระบบ และสามารถเขียนโปรแกรมได้ทันที

Tags: ,

19 Apr 07 กฎหมายกับโปรแกรม

แม้ว่าคนส่วนใหญ่จะพูดกันว่ารัฐธรรมนูญ พ.ศ. 2540 ที่เพิ่งโดนฉีกไปหมาด เป็นรัฐธรรมนูญที่ดีที่สุดฉบับหนึ่ง แต่ในสายตานักเขียนโปรแกรม ผมรู้สึกว่ารัฐธรรมนูญฉบับนั้นดูแย่มาก ทำไมเหรอ? ก็เพราะเห็นปัญหาต้องตีความอยู่บ่อยๆ (ไม่รู้หรอกว่าบ่อยกว่าฉบับก่อนๆ หรือเปล่า เกิดไม่ทัน แหะๆ) สาเหตุที่เห็นส่วนใหญ่คือการเขียนข้อความที่เฉพาะเจาะจงกับกรณีปกติ ไม่ได้คิดถึงปัญหาที่จะเกิดขึ้นในอนาคต เหมือนกับเขียนโปรแกรมที่รับข้อมูลเข้า โดยไม่มีการตรวจสอบ ตั้งสมมติฐานไว้ก่อนว่าข้อมูลเข้านั้นถูกต้องเสมอ ฉะนั้นเวลาผู้ใช้ใส่ข้อมูลผิดพลาด หรือมีกรณีผิดปกติอะไรเกิดขึ้น โปรแกรมก็ไม่สามารถทำงานต่อไป หรือไม่ก็ทำงานต่อโดยไม่สามารถคาดเดาผลลัพธ์ได้

ถ้าจำไม่ผิดรัฐธรรมนูญฉบับนี้มีปัญหาตั้งแต่การเลือกตั้งส.ว.ครั้งแรกแล้ว ดูเหมือนจะไปกำหนดไว้ว่าต้องมีวุฒิสภาภายในกี่วัน โดยไม่ได้ระบุไว้ว่าถ้าไม่ได้ต้องทำยังไง สุดท้ายก็ต้องมานั่งตีความอีกว่าจะทำยังไงได้บ้าง นอกจากนี้มักจะกำหนดค่าคงที่ต่างๆ เป็นค่าตายตัว โดยไม่ได้คิดว่าถ้าหาค่านั้นไม่ได้แล้วต้องทำยังไง สุดท้ายก็เกิดปัญหา อย่างกรณีสรรหาปปช. ครั้งล่าสุด ที่กำหนดไว้ว่าต้องมีตัวแทนฝ่ายค้านกี่คนหรือกี่พรรคอะไรทำนองนั้น พอไม่ครบขึ้นมาก็เกิดทางตันไปหมด

แต่ยังไงก็แล้วแต่ผมไม่ใช่ผู้เชี่ยวชาญด้านกฎหมาย (ไม่มีความรู้เลยต่างหาก) ผมไม่รู้หรอกว่ากฎหมายที่ดีควรเป็นยังไง แต่โปรแกรมที่ดีควรคำนึงถึงปัญหาต่างๆ ที่อาจจะเกิดขึ้นในทุกกรณี เพื่อให้โปรแกรมทำงานตามที่เราคาดการณ์ไว้ ไม่เกิดเงื่อนไขแปลกๆ แล้วทำให้เกิดทางตัน หรือผลลัพธ์ที่ไม่เป็นไปตามที่ต้องการ

สำหรับโปรแกรมหรือซอฟท์แวร์นั้น เรามีวิชาวิศวกรรมซอฟท์แวร์ ที่พูดถึงวิธีการทดสอบซอฟท์แวร์แบบต่างๆ เพื่อให้เกิดความมั่นใจว่าเราจะได้ซอฟท์แวร์ที่มีคุณภาพ เอ…อย่างนี้เราควรจะต้องมีวิชาวิศวกรรมกฎหมายหรือเปล่า เผื่อว่าเราจะได้กฎหมายที่ดีขึ้น (ในแบบของผม)

Tags: ,