ตอนที่ 47 พัฒนาเป็นผู้เชี่ยวชาญด้านแอพ
ห้องคอมพิวเตอร์เงียบสงัด ไม่มีใครอยู่สักคน
ท้ายที่สุดแล้วนี่ก็เป็นช่วงวันหยุดฤดูร้อน นักศึกษากำลังเรียนเพื่อสอบเข้าปริญญาโทและเอกย่อมไม่ใช้คอมพิวเตอร์
ลู่โจวไปปรับแอร์แล้วนั่งลง เขาป้อนไอดีพาสเวิร์ดนักศึกษาแล้วเข้าสู่ระบบคอมพิวเตอร์อย่างชำนาญ
เหตุผลที่ทำไมเขาถึงเลือกห้องคอมพิวเตอร์ของมหาลัยหลักๆเลยก็เพราะโปรแกรมที่เขียนด้วยไพทอนจะต้องรันบนคอมพิวเตอร์ลีนุกซ์(Linux) ดังนั้นการเรียนไพทอนด้วยระบบปฏิบัติการลีนุกซ์จึงจำเป็น
นอกจากนี้โน๊ตบุ๊คมือสองของลู่โจวยังห่วยเกินไป มันใช้เวลาแรมปีเพียงแค่แปลงวิทยานิพนธ์ให้เป็นไฟล์ PDF ตอนที่เขาเล่น LOL ทุกคนเชื่อมต่อกันหมดแล้ว แต่เขายังติดอยู่ที่น้ำพุอยู่เลย การรันระบบปฏิบัติการคู่หรือเวอร์ชวลแมชชีนนั้นเป็นไปไม่ได้
“หนังสืออธิบายไว้อย่างชัดเจน แต่ฉันก็ไม่คิดเลยว่ามันจะเขียนยากขนาดนี้จริงๆ…มันก็จริงแหละการเขียนบนกระดาษกับการเขียนโค้ดมันเป็นสองเรื่องที่แตกต่างกัน ฉันว่าฉันคงต้องเรียนแบบภาคปฏิบัติ”
มันเป็นครั้งแรกเลยที่ลู่โจวใช้คอมพิวเตอร์ลีนุกซ์ เขาอ่านคู่มือที่ยืมมาจากห้องสมุดและเข้าใจในที่สุด
จะว่าไป มันก็สมเหตุสมผลแล้วที่วินโดว์ยึดครองส่วนแบ่งการตลาด OS ใหญ่แบบนี้ เพราะแม้แต่นู้บที่ไม่เคยแตะคอมพิวเตอร์มาก่อนก็สามารถใช้งานหน้าอินเตอร์เฟสของวินโดว์ได้
อย่างไรก็ตามระบบลีนุกซ์นั้นแตกต่างกัน ส่วนใหญ่มันเป็นระบบบรรทัดคำสั่ง(command-line) ทุกอย่างต้องดำเนินการผ่านคีย์บอร์ด โชคดีที่ทางมหาลัยติดตั้งตัวกระจายระบบเดสก์ท็อปเอาไว้ ดังนั้นลู่โจวจึงใช้เมาส์ได้
แน่นอนมีข้อดีของระบบปฏิบัติการลีนุกซ์อย่างชัดเจนเลยก็คือ มันมีความสามารถในการปรับแต่งและความปลอดภัยที่ยอดเยี่ยม ทำให้มันเหมาะสมสำหรับเซิฟเวอร์มากกว่าวินโดว์ นอกจากนี้เมื่อเราคุ้นเคยกับระบบบรรทัดคำสั่ง ประสิทธิภาพของมันก็จะสูงกว่าการใช้วินโดว์หลายเท่า ดังนั้นบริษัทหลายแห่งจะถามโปรแกรมเมอร์ว่าสามารถใช้ระบบปฏิบัติการลีนุกซ์ได้ไหมก่อนจะทำการรับสมัครพนักงาน
ในที่สุดลู่โจวก็คุ้นเคยกับการทำงานพื้นฐานของระบบลีนุกซ์ เขาเปิดซอร์ฟแวร์ไพทอน เปิดหนังสือแล้วนั่งอยู่ตรงหน้าคอมพิวเตอร์
“ฉันได้ยินมาว่าหนึ่งในการใช้งานที่ดีที่สุดของไพทอนคือการเขียนเว็บครอว์เลอร์ ถ้าฉันอยากทดสอบความรู้ของตนเอง นี่ควรเป็นจุดเริ่มต้นที่ดี แต่ฉันควรเขียนครอว์เลอร์แบบไหนดี?”
(ผู้แปล : ครอว์เลอร์ อธิบายง่ายๆเหมือนการทำงานของ google ครับ มันเป็นตัวที่ไปรวบรวมข้อมูลที่เราค้นหามาให้เรา ผิดถูกยังไงก็ขออภัยไว้ล่วงหน้านะครับ)
ลู่โจวจมอยู่ในห้วงความคิด
รวบรวมข้อมูลบนเว่ยป๋อ?
รวบรวมข้อมูลบนไป่ตู้?
มันดูค่อนข้างน่าเบื่อไปหน่อย
กุญแจสำคัญคือข้อมูลที่ถูกรวบรวมมานั้นไร้ประโยชน์ ฉันไม่สามารถจัดเก็บข้อมูลนั้นได้ถ้าหากมันใหญ่เกินไป
ทันใดนั้นเขาก็รู้สึกปวดใจ เขานึกถึงประสบการณ์อันแสนเจ็บปวดของการซื้อตั๋วรถไฟกลับบ้าน มันไม่ใช่เพราะคอมพิวเตอร์ของเขาช้า แต่เป็นเพราะส่วนต่อประสานกับผู้ใช้(user interface)ของเว็บไซต์การรถไฟนั้นย่ำแย่มาก
“ใช้เทคโนโลยีครอว์เลอร์เพื่อรวบรวมข้อมูลของสถานีรถไฟ รถไฟและข้อมูลตั๋วจากเว็บไซต์[12306]…ดูเหมือนจะเป็นไปได้”
ลู่โจวคิดว่าไหนๆเขาก็มาห้องคอมพิวเตอร์แล้ว เขาก็ไม่อยากเสียเวลา เขาจึงเริ่มงานทันที
ท้ายที่สุดแล้วโปรแกรมครอว์เลอร์ก็ถูกพูดถึงในหนังสือเรียนเพราะมันเป็นตัวอย่างทั่วๆไปของแอพพลิเคชั่นของไพทอน ในหนังสือกระทั่งให้วิธีการคำนวณที่แตกต่างกันสำหรับสถานการณ์ที่ต่างกันไป
แน่นอนเว็บ12306ไม่ใช่เว็บฟอรั่มธรรมดาๆ การกำหนดเป้าหมายยังเว็บไซต์นี้สำหรับมือใหม่แล้วค่อนข้างยาก
อย่างไรก็ตามสำหรับอัจฉริยะอย่างลู่โจวที่ศึกษาหนังสือทั้งเล่มมันไม่ใช่ปัญหาใหญ่เลย ในทางเทคนิคแล้วการเขียนครอว์เลอร์นั้นไม่ยากนัก ทั้งโปรแกรมมีน้อยกว่า 30 บรรทัดเสียอีก แต่มันก็รวบรวมข้อมูลได้อย่างสมบูรณ์แบบโดยไม่มีข้อบกพร่อง
มันถึงเวลาฉกฉวย
ลู่โจวก๊อปปี้ URL ของเว็บไซต์ลงในโค้ดแล้วรันสคริปต์ เขาดาวน์โหลดข้อมูลลงในไลฟ์สเปรดชีตที่เขาสร้างขึ้น
ทันใดนั้นพัดลมคอมพิวเตอร์ก็เริ่มดังกระหึ่ม คอมพิวเตอร์กำลังทำงานหนัก บรรทัดโค้ดเด้งขึ้นมารัวๆในไดอะล็อกบ็อกซ์สีดำ ข้อมูลถูกป้อนเข้าสู่สเปรดชีตโดยอัตโนมัติ
ลู่โจวมองสเปรดชีตที่เต็มหน้าอย่างต่อเนื่องแล้วเอนกายพิงเก้าอี้
“ไพทอนสะดวกมาก ไม่แปลกใจเลยว่าผู้เชี่ยวชาญหลายคนแนะนำภาษานี้”
ลู่โจวมองดูข้อมูลเด้งขึ้นมารัวๆแล้วรู้สึกเหมือนเป็นแฮ็กเกอร์
อย่างไรก็ตามนั่นเป็นเพียงภาพลวงตา นี่มันแตกต่างจากแฮ็กเกอร์ตัวจริง มันไม่ผิดกฏหมายที่จะรวบรวมข้อมูลสาธารณะจากเซิฟเวอร์ อย่างมากผู้ดูแลเซิฟเวอร์จะโกรธมากที่เขาไปใช้แบนด์วิชท์ของเซิฟเวอร์
ดังนั้นเว็บไซต์ที่’เห็นแก่ตัว’จำนวนมากจึงติดตั้งโปรแกรมต่อต้านการรวบรวมข้อมูล เราจะไม่สามารถรวบรวมข้อมูลจากพวกเขาได้ แม้ว่าเราจะทำได้ ข้อมูลที่ถูกรวบรวมมาได้ก็เป็นขยะ เว็บไซต์ระดับต่ำกว่ายังสามารถตรวจสอบจำนวนการเข้าชมและบล็อค IP ได้
อย่างไรก็ตามเว็บไซต์ 12306 นั้นไม่เห็นแก่ตัว ผู้ผูกขาดยักษ์ใหญ่ที่ไม่สนใจแม้แต่ประสบการณ์ของผู้ใช้ เห็นได้ชัดว่ามันไม่สนใจทรัพยากรของเซิฟเวอร์ ตราบใดที่ไม่มีใครถล่มเซิฟเวอร์ของพวกเขา มันก็จะไม่มีใครสนใจ!
ลู่โจวมองข้อมูลที่ถูกสะสมอยู่ในสเปรดชีต เขาก็เริ่มสงสัยว่าเขาควรทำอะไรอื่นอีกไหม?
“ทำเว็บซื้อตั๋ว? เหมือนมันจะซ้ำซากไป…”
ทันใดนั้นเองก็มีหลอดไฟสว่างวาบขึ้นมาในหัวลู่โจว
แล้วถ้า…
ฉันทำแอพซื้อตั๋วล่ะ?
เขาคิดถึงไอเดียนี้แล้วควบคุมความตื่นเต้นของตนเองไม่ได้
แม้ว่าจะมีเว็บไซต์จองตั๋วบุคคลที่สามหลายแห่ง แต่ก็มีแอพแบบนี้ไม่มากนัก ถ้าเขาสร้างแอพที่โดดเด่นได้ เขาก็จะทำเงินจากมันได้
ลู่โจวคิดถึงเงินแล้วพลันรู้สึกสนใจขึ้นมา เขาเริ่มคำนวณในใจ
ในทางเทคนิคแล้ว มันเป็นเรื่องยากที่จะสร้างแอพตัวคนเดียว มันยากกว่าการเขียนโปรแกรมครอว์เลอร์แบบง่ายๆ แต่มันก็ไม่ใช่ว่าเป็นไปไม่ได้ แต่เขาสามารถใช้ระบบเพื่อแก้ไขปัญหายากๆ ท้ายที่สุดแล้วการใช้แต้มทั่วไปเพื่อซื้อความรู้ก็เป็นส่วนหนึ่งของการเรียนรู้
เมื่อเขาทำภารกิจสำเร็จแล้วปลดล็อคสาขาเทคโนโลยีปัญญาประดิษฐ์ มันจะมีประโยชน์แน่นอน
มันก็แค่เครื่องเซิฟเวอร์อาจมีราคาแพง แม้แต่ค่าไฟฟ้าและค่าบำรุงรักษาก็อาจจะค่อนข้างแพงเหมือนกัน…
เขามีเงินในบัญชีน้อยกว่าหมื่้นหยวนเสียอีก ดังนั้นเขาจึงทำอะไรไม่ได้…
ลู่โจวกัดฟันแล้วตัดสินใจเอาชนะปัญหาเหล่านี้
ถ้าฉันปฏิเสธเงินเดือนครึ่งล้านหยวนได้ มันก็ไม่มีอะไรที่ฉันทำไม่ได้!
แม้ว่าเขาจะล้มเหลว เขาก็ใช้มันเป็นบทเรียนได้
ดังนั้นลู่โจวจึงปิดโปรแกรม เขาไม่รีบเปลี่ยนโค้ด เขาเปิดเวิร์ดขึ้นมาแล้วเหมือนกับเขียนวิทยานิพนธ์ เขาเริ่มเขียนโครงร่างพัฒนาแอพ
“ฉันมีการรวบรวมข้อมูลของตั๋วรถไฟแบบเรียลไทม์ ความต้องการของเซิฟเวอร์นั้นสูงมาก ดังนั้นโค้ดต้องมีประสิทธิภาพที่สุด!”
“อินเตอร์เฟสเอาแบบเรียบง่ายได้ แต่ข้อมูลต้องแม่นยำและครอบคลุม ฉันควรดูแอพจองตั๋วบุคคลที่สามเป็นข้อมูลอ้างอิง แต่มันต้องไม่เหมือนกัน…ฉันต้องคิดไอเดียของตัวเอง…”
ลู่โจวจนถึงส่วนนี้แล้วนิ้วเขาก็ลูบคีย์บอร์ดเบาๆ เขาคิดพักใหญ่ๆแล้วเริ่มเคาะคีย์บอร์ดอีกครั้ง
“ก่อนอื่นการซื้อตั๋วอัตโนมัติไม่ใช่เรื่องใหม่ เบราเซอร์มากมายต่างก็มีฟีเจอร์นี้”
“แต่การซื้อตั๋วอัตโนมัติแบบออฟไลน์…ฉันยังไม่เคยเห็น”
ลู่โจวคิดย้อนกลับไปตอนวันหยุดฤดูหนาวครั้งก่อน เขากดรีเฟรชเว็บไซต์อยู่ที่หอพักเกือบครึ่งชั่วโมงกว่าจะซื้อตั๋วได้สองใบ เขารู้สึกว่ามันเป็นเรื่องยากมากที่ผู้คนจะกลับบ้านช่วงปีใหม่
การรีเฟรชหน้าเว็บทางการอย่างต่อเนื่องมีโอกาสต่ำมากที่เราจะได้รับตั๋วเพราะบางส่วนมันก็เป็นตั๋วที่ถูกรีฟันโดยผู้อื่น ลู่โจวไม่รู้ว่าเขาจะซื้อตั๋วได้ที่ไหน แต่ฟังก์ชั่นนี้อาจพิจารณาได้
ยกตัวอย่างการตั้งช่วงเวลาและการเดินรถไฟหลายรอบ เซิฟเวอร์จะรีเฟรชข้อมูลโดยอัตโนมัติและส่งคำขอไปทันทีที่ตั๋วปรากฏขึ้น เขาจะใช้ซอร์ฟแวร์ดักตั๋วหลายโปรแกรม และจนถึงตอนนี้ดูเหมือนฟีเจอร์นี้จะยังไม่มีใครใช้
นอกจากนี้แนวคิดนี้ดูเหมือนจะนำไปใช้ไม่ยาก
ลู่โจวคิดมาจนถึงจุดนี้ก่อนจะหันไปมองนาฬิกา
มันบ่ายสามแล้ว!
ลู่โจวบันทึกไฟล์เวิร์ด จากนั้นเขาก็ดึงแขนเสื้อขึ้นแล้วเอามือวางบนคีย์บอร์ด
“ทำงาน ทำงาน!”