กระโดดไปยังแผงนำทาง

Regular Expression Framework 26 July 2008 11:02 pm

บันทึกโดย Mr. PeeTai ใน : การสร้างซอฟต์แวร์ , 10 ความคิดเห็น

ผมเห็นเดี๋ยวนี้ใคร ๆ ก็สร้างบล็อกส่วนตัวกัน แล้วก็หวังว่าจะมีคนเข้าไปอ่านกันมาก ๆ แต่เอาเข้าจริงแล้วพอมาตรวจสถิติก็กลับพบว่า ผู้ที่เข้ามาเยี่ยมเยียนบล็อกส่วนใหญ่นั้น มันดันเป็น web crawler ซะนี่!!!

ตั้งแต่ผมติดตั้งปลั๊กอิน Feed ก็เลยทำให้ผมได้รู้ว่าคนที่เข้ามาที่บล็อกแห่งนี้นั้น สนใจเรื่อง web crawler เป็นอันมาก นอกจากจะอ่านจากที่ผมเขียนแล้ว ก็ยังติดต่อผ่าน “ห้องติดต่อ” เพื่อมาถามไถ่ผมเกี่ยวกับเรื่อง web crawler อย่างไม่ขาดสาย

จริง ๆ แล้วกุญแจหลักของ web crawler มันไม่ได้อยู่ที่การแบ่งภาคเพื่อไต่ไปตามเว็บไซต์ต่าง ๆ หรอก อันนั้นจะเขียนให้โปรแกรมเป็นแบบ multithread หรือ multitasking ยังไงก็ได้

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

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

แต่น่าเสียดายที่ regular expression นั้นเข้าใจยาก ถึงแม้จะมีหนังสือ Mastering Regular Expression พิมพ์ออกมาให้เราอ่าน (หนา 500+ หน้าแน่ะ หนาโคตร) หรือมีคนพยายามย่นย่อ regular expression ให้เป็นฉบับย่อเพื่อให้เราทำความเข้าใจอย่างรวดเร็วแล้วก็ตาม

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

(more…)