Code สวย

เมื่ออาทิตย์ก่อนหน้าโน๊นพี่ roof ตั้งคำถามใน fb ว่า ตั้งแต่ทำงานมามีที่ทำงานที่ไหนให้ความสำคัญกับคำว่า “โค้ดสวย” บ้างครับ แม้ผมจะตอบกวนตีนไปว่าคนเขียน code สวยสำคัญกว่า แต่ตัวคำถามก็น่าสนใจจนต้องมาย้อนนึกคำตอบอยู่เหมือนกัน

สมัยผมยังทำงานเป็นโปรแแกรมเมอร์บริษัทแรกที่ผมทำ (อย่างน้อยก็ทีมที่ผมอยู่) ไม่มีแนวคิดเรื่อง code สวยครับ คือมีสอน coding convention บ้างว่าตัวแปรควรจะตั้งชื่ออย่างไร ชื่อ database แต่ละ table ควรจะตั้งอย่างไรก่อนเข้าทำ project แค่นั้น

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

ในบริษัทปัจจุบันที่ผมทำอยู่ ผมไม่ได้เป็นโปรแกรมเมอร์แล้ว (ที่นี่เรียกว่า dev) ผมไม่รู้ว่ามีการเน้นการเขียน code ที่ถูกต้องหรือไม่ แต่ผมก็รู้ว่าพวกเขามีการทำ code review กันทุกอาทิตย์ ส่วนงานของผมจะเน้นไปที่อ่านและ debug code ที่ตัวเองไม่ได้เขียนเป็นหลัก code ที่ผมมีความสุขที่ได้ทำงานด้วยคือ code ที่ผมเห็นแล้วรู้ทันทีว่ามันทำอะไรโดยไม่ต้องอ่าน comment หรือ debug ดู และถ้า code นั้นผมเห็นแล้วถึงกับร้องว่าเหยด คิดได้ยังไงจะยิ่งฟินสุดๆ ซึ่งก็พอจะมี dev ที่เป็นเพื่อนผมอยู่ 2-3 คนที่เขียนได้ประมาณนี้แล้วก็มีหลายๆ ครั้งที่ส่วนนั้นมันเจ๋งจนผมจำได้ว่าเวลาจะไล่อะไรก็ไปเริ่มไล่ในจุดนั้นแหละ แต่ไอ้ code พวกนั้นก็ไม่ได้รับรองว่าตัวมันทำงานจริงๆ มันจะช้าจะเร็วอย่างไร หรือนานๆ ไปมันจะมี bug ไหม ควร refactor อีกรึเปล่า (เพราะไม่ใช่หน้าที่ผม – แต่ก็เห็น dev refactor กันอยู่บ้างนานๆ ทีอ่ะนะ)

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

ป.ล. พี่ roof เขียนถึงการพัฒนา software ที่เน้นเรื่อง performance จนละเลย maintainability ไว้แล้วครับ

18 เหตุผลที่ทำไม iPhone 5s ถึงเจ๋งกว่า Galaxy S5

เมื่อวาน Samsung ก็ได้ประกาศเปิดตัว Galaxy S5 มือถือรุ่นเกือบเรือธงใน Series Galaxy ของตน (ต่อจาก S4 ในปีที่แล้ว) ซึ่งอาจจะรวมไปถึงการเป็นมือถือเรือธงของบรรดา Android ที่จะต่อสู้ชิงตำแหน่งกับ iPhone

Galaxy S5 from The Verge
ที่มา – The Verge

ถ้าจะพูดถึงกระแสโทรศัพท์ที่ฮ๊อตที่สุดในไทยตอนนี้ คงหนีไม่พ้น iPhone 5s แน่นอนว่าโทรศัพท์แต่ละเครื่องแต่ละยี่ห้อก็ย่อมมีข้อดีข้อด้อยแตกต่างกันไป แต่ถ้าจะให้หาเหตุผลในการจะบอกว่า “ทำไมคุณควรต้องซื้อ iPhone 5s แทนที่จะเป็น S5” เรามีคำตอบให้แล้ว
(copy ประโยคมาจาก 20 เหตุผลที่ทำไม iPhone 5 ถึงเจ๋งกว่า Galaxy Note 2 และ S3@macthai ดื้อๆ :p)

อ้อ กรุณาดู ตารางเปรียบเทียบ spec ระหว่าง Galaxy S5, iPhone 5s, LG G Pro 2 และ HTC One ประกอบด้วยนะครับ
Continue reading “18 เหตุผลที่ทำไม iPhone 5s ถึงเจ๋งกว่า Galaxy S5”

BioShock Infinite: Burial at Sea Episode One

BioShock Infinite: Burial at Sea เป็น DLC ตัวที่ 2 ของ BioShock Infinite แต่ว่าเป็น Story DLC ตัวแรก แถมยังประกาศตั้งแต่ด้วยว่า “Episode One” แสดงว่าไม่จบใน DLC เดียวแน่ๆ

DLC นี้จะพาเรากลับไปสู่เมืองใต้น้ำ Rapture จาก BioShock 1 & 2 เรารับบทเป็นนักสืบเอกชนที่มีชื่อว่า DeWitt Booker ที่อยู่ๆ มีหญิงสาวลึกลับนาม Elizabeth มาว่าจ้างให้ตามหาเด็กผู้หญิงคนนึงที่ Booker ก็รู้จักและคิดไปว่าเธอได้ตายไปจากเมืองคนบ้าแห่งนี้ไปแล้ว

ภาคนี้ปรับปรุงระบบต่อสู้ของภาคหลักขึ้นมานิดหน่อยครับ จากที่เก็บอาวุธได้แค่ 2 อย่างก็เก็บได้เต็มที่เลยแต่เลือกสลับเร็วๆ ได้ทีละ 2 อย่างเหมือนเดิม เรามี vigor ซึ่งในเรื่องจะเรียกว่า plasmids ตามมิติของ Rapture ใหม่ขึ้นมา 1 อัน แต่อันเก่าๆ ก็มาไม่ครบ (เสียดาย อีกาอันโปรดผมไม่มาด้วย) ศัตรูในเรื่องก็โหดและกดดันมากขึ้นเพราะเหล่า splicer แม่งก็พวกคนบ้าดีๆ นี่เอง มันเลยโจมตีแรงและหลบเก่งกว่าศัตรูในภาคหลักอย่างเห็นได้ชัด กระสุนปืนและที่เติมพลังรวมถึงเงินก็น้อยสุดๆ เรียกได้ว่ากดดันกันสุดๆ ไปเลยสำหรับ game play โดยเฉพาะฉากเจอกับ Bigdaddy ที่พูดตรงๆ ว่าเจ๋งกว่าสู้กับ boss ทุกตัวในภาคหลักอีก

สิ่งที่ชอบสุดๆ คือบรรยากาศ “ความกดดันอันแสนบ้าคลั่ง” ของ Rapture มันเข้ากับ gameplay ที่จำกัดทรัพยากรและเนื้อเรื่องที่สุดตีนเป็นอย่างดี เล่นๆ ไปจะเจอเครื่องบันทึกเสียงเนื้อเรื่อง side story ให้ฟังเยอะ ซึ่งถ้าตามฟังจนครบเราจะได้รู้อีกว่าคนฝั่ง Rapture ก็รับรู้ตัวตนของคนฝั่ง Columbia เช่นกัน!!!

BioShock Infinite Burial at Sea Episode One Poster

ข้อเสียก็พอมีบ้างครับตรง vigor ก็ยังง่อยๆ เมื่อเทียบกับ plasimd ของแท้อยู่เช่นเดิม พวก sky hook กับรางที่ยัดๆ เข้ามาใส่แบบไม่เนียนเท่าไหร่ แถมบน XBOX ยังมี load ค้างบ่อย (ภาคหลักไม่เป็น) แต่พวกนี้ก็พอจะกล้อมแกล้มไปได้อ่ะนะ

สรุป Burial at Sea Episode One สนุกมากๆ ใครที่เล่น BioShock Infinite จบแล้วแนะนำให้ซื้อภาคนี้มาเล่นกันครับเพราะ Episode 2 จะออกปีนี้แล้ว ^^