BioLawCom.De » Blog » เขียนโปรแกรม
โค้ดสั้น vs โค้ดยาว
เหมือนทุกครั้งที่ผมจะเขียนเรื่องเขียนโปรแกรม ผมต้องออกตัวก่อนว่าผมไม่ได้เรียนด้านนี้มาโดยตรง เรื่องที่เขียนส่วนมากก็มักจะเป็นประสบการณ์งู ๆ ปลา ๆ ที่ผมพอมีอยู่บ้าง หากผิดพลาดประการใด ก็ขอคำชี้แนะด้วยครับ ผม (และเชื่อว่าอคนส่วนใหญ่) คงไม่สามารถวิเคราะห์สถานการณ์ที่เกิดขึ้น ณ ที่ทำงานของคุณ darkleonic ได้ เพราะต้องดูปัจจัยหลาย ๆ อย่างที่เกิดขึ้นในสถาณการณ์จริง ต้องดูตัวโค้ดจริง ๆ ต้องดูหลักการออกแบบของโปรแกรม และอื่น ๆ อีกมากมาย ซึ่งในเรื่องนี้หลายคนได้ออกความคิดเห็นและเสนอแนะทางออกให้คุณ darkleonic ค่อนข้างดีทีเดียว ดังนั้น ผมจะไม่เขียนถึงเหตุการณ์ที่เกิดขึ้นมากนัก แต่จะเขียนถึงการออกแบบโปรแกรมที่เกี่ยวข้องมากกว่า โดยพื้นฐานแล้วผมเชื่อว่า โค้ดสั้นย่อมดีกว่าโค้ดยาว แต่ก็ไม่สามารถครอบคลุมได้ทุกกรณี ทั้งนี้มีสองกรณีที่เราสามารถบอกได้ทันทีว่าโค้ดสั้น หรือโค้ดยาวอย่างไหนดีกว่ากัน ... |
16 Aug 09 | by bow_der_kleine | tags เขียนโปรแกรม
โปรแกรมช่วยเขียนบทความทางการเมือง
อนึ่ง ผมค่อนข้างเห็นใจคนที่ต้องการเขียนบทความทางการเมือง เพราะเนื้อหาและประเด็นทางการเมือง ที่เกิดขึ้นในช่วงระยะเวลาปีหรือสองปีที่ผ่านมา เป็นเหตุการณ์แผ่นเสียงตกร่อง ที่เกิดขึ้นซ้ำแล้วซ้ำอีกไม่มีอะไรใหม่ จะต่างไปบ้าง ก็เห็นจะเป็นสีเสื้อและตัวบุคคล ผมก็เลยเขียนโปรแกรมขนาดเล็กกระทัดรัด สำหรับคนที่ต้องการเขียนบทความเกี่ยวกับเหตุการณ์ที่เกิดขึ้น
# -*- coding: utf8 -*- replace_str = { 'เหลือง' : 'แดง', 'สมัคร' : 'อภิสิทธิ์', 'สมชาย' : 'อภิสิทธิ์', 'สนามบิน' : 'อาเซียนซัมมิท', 'ตำรวจ' : 'ทหาร', 'แก้สน้ำตา' : 'ปืน', } old_article = """""" new_article = """""" for i in replace_str : new_article = old_article.replace(i, replace_str[i]) print new_articleplain code สำหรับคนที่สนใจใช้งาน ต้องไปดาวน์โหลด Python มาติดตั้งก่อน จากนั้นก็กำหนดค่า old_article ซึ่งก็คือ บทความของคุณที่เขียนขึ้น ระหว่างที่ นาย สมัคร และ นาย สมชาย เป็นนายกรัฐมนตรี ตัวโปรแกรมจะเปลี่ยนคำในบทความ จากคำว่า "เหลือง" เป็น "แดง", "สมัคร" เป็น "อภิสิทธิ์" หรือไม่ก็ "สมชาย" เป็น "อภิสิทธิ์" และ "สนามบิน" เป็น "อาเซียนซัมมิท" แม้ว่าโปรแกรมนี้จะทำงานแบบหยาบ ๆ ไม่ได้รองรับในเรื่องรายละเอียดของเหตุการณ์ที่เกิดขึ้น แต่จากที่ทดลองใช้งาน บทความที่ได้จากโปรแกรม สามารถนำไปเผยแพร่ตามสื่อต่าง ๆ ได้แทบจะทันที เพราะโดยหลักการ วิธีการ และเป้าหมายแล้วไม่ต่างกัน |
13 Apr 09 | by bow_der_kleine | tags เขียนโปรแกรม เหตุบ้าน และ การเมือง Python
คุณภาพซอพท์แวร์
เนื่องจากผมมีนักกฏหมายใกล้ ๆ ตัว (คุณเช ฯ) เลยหันหน้าไปถาม คำตอบที่ได้คือ ฟ้องได้ หากพิสูจน์ได้ว่าซอพท์แวร์ชำรุดเสียหายจริง ด้วยกฏหมายที่ว่าด้วยเรื่องสินค้าชำรุดบกพร่อง ในกฏหมายแพ่งและพานิชย์ ซึ่งตรงนี้คนไอทีหลาย ๆ คนยังเข้าใจผิดอยู่ ว่าหากไม่มีในข้อตกลงซื้อขาย ซึ่งกำหนดคุณสมบัติต่าง ๆ ของซอพท์แวร์เอาไว้ (requirement) ก็ไม่สามารถฟ้องได้ คุณเช ฯ และ ผมเห็นตรงกันว่า ไม่น่าจะเกี่ยว เพราะต้องแยกกันระหว่าง "คุณสมบัติของสินค้า" กับ "คุณภาพของสินค้า" ซึ่ง requirement ควรอยู่ในหมวดของคุณสมบัติของสินค้า หากผู้ผลิตทำผิดตรงนี้ ก็ต้องฟ้องกันในเรื่องของผิดสัญญาซื้อขาย ส่วนเรื่องสินค้าบกพร่อง ควรต้องอยู่ในหมวดของคุณภาพสินค้า ซึ่งต้องมาพิจรณากันอีกที ว่าเมื่อไรถึงจะเข้าข่าย การพิจรณาว่าเข้าข่ายเรื่องสินค้าบกพร่องนี่แหละ เป็นอะไรที่ค่อนข้างยาก ตามคำเล่าอ้างของคุณเช ฯ เราสามารถใช้หลักในการพิจรณาได้สองหลักคือ ... |
08 Apr 09 | by bow_der_kleine | tags กฏหมาย เขียนโปรแกรม ไอที
Dynamic and Cool Website with jQuery
ด้วยความสำคัญและความน่าเบื่อในการเขียน JavaScript ทำให้เราได้เห็น JavaScript-Framework ออกมาให้เลือกใช้มากมาย ตามแต่งานและความต้องการของนักพัฒนาโปรแกรม แต่ก็ใช่ว่าทุก Framework จะใช้งานง่ายอย่างที่ใจต้องการ ล่าสุด ผมได้ทดลองใช้ jQuery และรู้สึกชอบเป็นพิเศษ เพราะหลักการของ jQuery นั้นง่าย ๆ คือ เลือก element จากเอกสาร HTML ในรูปแบบของ CSS และมีกลิ่นอายของ SQL นิด ๆ จากนั้นก็เปลี่ยนแปลงคุณสมบัติของ element ตามที่คุณต้องการ ;) ยกตัวอย่างเช่น ... |
16 Mar 09 | by bow_der_kleine | tags เขียนโปรแกรม JavaScript jQuery Web App
PHP Profiling and Optimisation with Xdebug
ส่วนมากแล้วภาษาเขียนโปรแกรมหรือเครื่องมือที่เป็น OpenSource มักไม่มี Profiling Tools ดี ๆ ใช้ง่าย ๆ ให้ใช้งานอย่างเครื่องมือเชิงพาณิชย์ราคาแพง ๆ (เช่น ใน MATLAB มี Profiling Tools ที่สุดยอดมาก ) แต่ในภาษาเขียนโปรแกรม PHP มี Profiling Tools ที่เป็น OpenSource เจ๋ง ๆ และใช้งานง่าย อย่าง Xdebug ซึ่งนอกจากจะใช้เป็น Profiling Tools แล้ว ยังใช้เป็นเครื่องมือสำหรับ Debug ได้อีกด้วย แต่ในครั้งนี้ผมจะเน้นการนำ Xdebug มาใช้งานในลักษณะ Profiling Tools Xdebug เป็น Extension สำหรับ PHP ที่ต้องทำงานร่วมกับ Apache และ mod_php สำหรับคนที่ใช้ Windows สามารถ ดาวน์โหลด Xdebug และติดตั้งใช้งานร่วมกับ mod_php ได้ สำหรับคนที่ใช้งาน Ubuntu เพียงแค่พิมพ์คำสั่ง
sudo apt-get install php5-xdebug ก็สามารถใช้งาน Xdebug ร่วมกับ mod_php ได้ทันที ... |
15 Feb 09 | by bow_der_kleine | tags เขียนโปรแกรม PHP Optimisation Profiling Xdebug
ไอเดียของบล็อกนี้มีที่มามาจาก
ปกติแล้ว ในช่วงเวลาที่บ้านเมืองเกิดความวุ่นวาย เรามักจะได้อ่านบทความทางการเมือง จากนักวิชาการหลาย ๆ คน ดีบ้าง ไม่ดีบ้าง คละเคล้ากันไป ตามแต่สติปัญญา และจรรยาบรรณของแต่ละคน เนื่องจากว่าเหตุการณ์เสื้อแดงถล่มเมือง และทหารยิงเสื้อแดงจนเลือดแดง เป็นเหตุการณ์ที่เพิ่งเกิดขึ้นได้ไม่นานนัก เราจึงยังไม่เห็นบทความทางการเมืองผ่านทางสื่อต่าง ๆ
เมื่อหลายวันก่อน มีคนเข้ามาถามเรื่อง
เอกสาร HTML หรือเวบไซท์ที่ไม่มี JavaScript ก็จะเป็นเวบไซท์แบบทื่อ ๆ ด้วย JavaScript ทำให้เอกสาร HTML มีลูกเล่นต่าง ๆ มีความเป็น Dynamic มากขึ้น ดังนั้น JavaScript จึงเป็นสิ่งที่ขาดไม่ได้ สำหรับ Web App สมัยใหม่ แต่ ! การเขียนโปรแกรมด้วย JavaScript ไม่ใช่เรื่องง่าย และน่าสนุก เพราะ JavaScript ก็คล้าย ๆ กับเทคโนโลยีที่เกี่ยวข้องกับ เวบไซท์อื่น ๆ (HTML, CSS) ที่ไม่มีมาตรฐานที่ชัดเจน เอกสารดี ๆ ก็ไม่ค่อยจะมี อีกทั้งเครื่องมือในการพัฒนาและ debug ก็หาดีไม่ค่อยจะได้ จึงไม่ใช่เรื่องแปลกที่ JavaScript จะเป็นเทคโนโลยีที่ไม่ค่อยมีมือฉมัง ทั้งที่จริง ๆ แล้ว หน้าที่ของ JavaScript ก็ควรจะมีแค่ เปลี่ยน attribute ของเอกสาร HTML ตามสถานการณ์หรือ event ที่กำหนด
เวลาผมเขียนโปรแกรมจะเป็นพวกชอบรีด คือ ต้องรีด Performance ของโปรแกรมออกมาให้ได้มากที่สุด แม้ว่าในบางครั้ง Performance Optimisation จะหมายถึงโค้ดที่ดูแลยากขึ้น แต่ในบางครั้งการแก้ไขโค้ดเพียงเล็กน้อยก็ อาจทำให้โปรแกรมทำงานเร็วขึ้นอย่างเห็นได้ชัด หากเลือกได้ ทุกคนคงเลือกอย่างหลัง เครื่องมือสำคัญสำหรับ Performance Optimisation คือ Profiling Tools โดย Profiling Tools จะเป็นตัวบอกเราว่า ส่วนต่าง ๆ ของโปรแกรมใช้เวลาในการประมวลผลเท่าไร หรือ Profiling Tools บางตัวอาจบอกเราได้ด้วย ว่าส่วนต่าง ๆ ของโปรแกรมใช้หน่วยความจำไปเท่าไร