ComBioLaw.De » Blog » เขียนโปรแกรม

โค้ดสั้น vs โค้ดยาว

Imageไอเดียของบล็อกนี้มีที่มามาจาก Forum ใน Blognone (อีกแล้ว) เมื่อมีโปรแกรมเมอร์ท่านหนึ่ง คือคุณ darkleonic มาระบายความอึดอัดใจในการทำงาน ให้เพื่อนร่วมวงการฟัง ในหัวข้อเรื่อง ผิดด้วยเหรอที่เขียนโปรแกรมไม่ geek มองเผิน ๆ เหมือนกับเป็นการมาบ่นเพื่อระบายความในใจเฉย ๆ แต่ประเด็นที่ถูกนำมาบ่นน่าสนใจไม่หยอก แม้ว่าเจ้าของเรื่องจะมองเป็นการเขียนโค้ด geek หรือไม่ geek (น่าจะเป็นเทพหรือไม่เทพมากกว่า) แต่เมื่อผมอ่านข้อความที่นำมาโพสต์จบ ก็รู้สึกว่าเป็นเรื่องของ โค้ดสั้น vs โค้ดยาว ทำให้รู้สึกสนใจขึ้นมา ยิ่งมีความคิดเห็นของคุณ bossalove เข้ามาด้วยแล้ว ความสนใจยิ่งเพิ่มความบรรเจิด

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

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

โดยพื้นฐานแล้วผมเชื่อว่า โค้ดสั้นย่อมดีกว่าโค้ดยาว แต่ก็ไม่สามารถครอบคลุมได้ทุกกรณี ทั้งนี้มีสองกรณีที่เราสามารถบอกได้ทันทีว่าโค้ดสั้น หรือโค้ดยาวอย่างไหนดีกว่ากัน ...

เขียนโปรแกรม เขียนโปรแกรม

16 Aug 09 | by bow_der_kleine | tags เขียนโปรแกรม

read 1726 comments 10 read more

โปรแกรมช่วยเขียนบทความทางการเมือง

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

อนึ่ง ผมค่อนข้างเห็นใจคนที่ต้องการเขียนบทความทางการเมือง เพราะเนื้อหาและประเด็นทางการเมือง ที่เกิดขึ้นในช่วงระยะเวลาปีหรือสองปีที่ผ่านมา เป็นเหตุการณ์แผ่นเสียงตกร่อง ที่เกิดขึ้นซ้ำแล้วซ้ำอีกไม่มีอะไรใหม่ จะต่างไปบ้าง ก็เห็นจะเป็นสีเสื้อและตัวบุคคล ผมก็เลยเขียนโปรแกรมขนาดเล็กกระทัดรัด สำหรับคนที่ต้องการเขียนบทความเกี่ยวกับเหตุการณ์ที่เกิดขึ้น

# -*- coding: utf8 -*-
 
replace_str = {
	'เหลือง'		: 'แดง',
	'สมัคร'		: 'อภิสิทธิ์',
	'สมชาย'		: 'อภิสิทธิ์',
	'สนามบิน'		: 'อาเซียนซัมมิท',
	'ตำรวจ'		: 'ทหาร',
	'แก้สน้ำตา'		: 'ปืน',
}
 
old_article = """"""
new_article = """"""
for i in replace_str : new_article = old_article.replace(i, replace_str[i])
print new_article
plain code

สำหรับคนที่สนใจใช้งาน ต้องไปดาวน์โหลด Python มาติดตั้งก่อน จากนั้นก็กำหนดค่า old_article ซึ่งก็คือ บทความของคุณที่เขียนขึ้น ระหว่างที่ นาย สมัคร และ นาย สมชาย เป็นนายกรัฐมนตรี ตัวโปรแกรมจะเปลี่ยนคำในบทความ จากคำว่า "เหลือง" เป็น "แดง", "สมัคร" เป็น "อภิสิทธิ์" หรือไม่ก็ "สมชาย" เป็น "อภิสิทธิ์" และ "สนามบิน" เป็น "อาเซียนซัมมิท"

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

เขียนโปรแกรม เขียนโปรแกรม

13 Apr 09 | by bow_der_kleine | tags เขียนโปรแกรม เหตุบ้าน และ การเมือง Python

read 2072 comments 3 read more

คุณภาพซอพท์แวร์

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

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

การพิจรณาว่าเข้าข่ายเรื่องสินค้าบกพร่องนี่แหละ เป็นอะไรที่ค่อนข้างยาก ตามคำเล่าอ้างของคุณเช ฯ เราสามารถใช้หลักในการพิจรณาได้สองหลักคือ ...

กฏหมาย กฏหมาย

08 Apr 09 | by bow_der_kleine | tags กฏหมาย เขียนโปรแกรม ไอที

read 1249 comments 2 read more

Dynamic and Cool Website with jQuery

imageเอกสาร HTML หรือเวบไซท์ที่ไม่มี JavaScript ก็จะเป็นเวบไซท์แบบทื่อ ๆ ด้วย JavaScript ทำให้เอกสาร HTML มีลูกเล่นต่าง ๆ มีความเป็น Dynamic มากขึ้น ดังนั้น JavaScript จึงเป็นสิ่งที่ขาดไม่ได้ สำหรับ Web App สมัยใหม่ แต่ ! การเขียนโปรแกรมด้วย JavaScript ไม่ใช่เรื่องง่าย และน่าสนุก เพราะ JavaScript ก็คล้าย ๆ กับเทคโนโลยีที่เกี่ยวข้องกับ เวบไซท์อื่น ๆ (HTML, CSS) ที่ไม่มีมาตรฐานที่ชัดเจน เอกสารดี ๆ ก็ไม่ค่อยจะมี อีกทั้งเครื่องมือในการพัฒนาและ debug ก็หาดีไม่ค่อยจะได้ จึงไม่ใช่เรื่องแปลกที่ JavaScript จะเป็นเทคโนโลยีที่ไม่ค่อยมีมือฉมัง ทั้งที่จริง ๆ แล้ว หน้าที่ของ JavaScript ก็ควรจะมีแค่ เปลี่ยน attribute ของเอกสาร HTML ตามสถานการณ์หรือ event ที่กำหนด

ด้วยความสำคัญและความน่าเบื่อในการเขียน JavaScript ทำให้เราได้เห็น JavaScript-Framework ออกมาให้เลือกใช้มากมาย ตามแต่งานและความต้องการของนักพัฒนาโปรแกรม แต่ก็ใช่ว่าทุก Framework จะใช้งานง่ายอย่างที่ใจต้องการ

ล่าสุด ผมได้ทดลองใช้ jQuery และรู้สึกชอบเป็นพิเศษ เพราะหลักการของ jQuery นั้นง่าย ๆ คือ เลือก element จากเอกสาร HTML ในรูปแบบของ CSS และมีกลิ่นอายของ SQL นิด ๆ จากนั้นก็เปลี่ยนแปลงคุณสมบัติของ element ตามที่คุณต้องการ ;) ยกตัวอย่างเช่น ...

เขียนโปรแกรม เขียนโปรแกรม

16 Mar 09 | by bow_der_kleine | tags เขียนโปรแกรม JavaScript jQuery Web App

read 1999 comments 4 read more

PHP Profiling and Optimisation with Xdebug

imageเวลาผมเขียนโปรแกรมจะเป็นพวกชอบรีด คือ ต้องรีด Performance ของโปรแกรมออกมาให้ได้มากที่สุด แม้ว่าในบางครั้ง Performance Optimisation จะหมายถึงโค้ดที่ดูแลยากขึ้น แต่ในบางครั้งการแก้ไขโค้ดเพียงเล็กน้อยก็ อาจทำให้โปรแกรมทำงานเร็วขึ้นอย่างเห็นได้ชัด หากเลือกได้ ทุกคนคงเลือกอย่างหลัง เครื่องมือสำคัญสำหรับ Performance Optimisation คือ Profiling Tools โดย Profiling Tools จะเป็นตัวบอกเราว่า ส่วนต่าง ๆ ของโปรแกรมใช้เวลาในการประมวลผลเท่าไร หรือ Profiling Tools บางตัวอาจบอกเราได้ด้วย ว่าส่วนต่าง ๆ ของโปรแกรมใช้หน่วยความจำไปเท่าไร

ส่วนมากแล้วภาษาเขียนโปรแกรมหรือเครื่องมือที่เป็น 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

read 1417 comments 2 read more

Search

Navigation

รวมลิงก์น่าสนใจ

ความเคลื่อนไหว

Login

name password

ลืมรหัสผ่าน