วันนี้ค่อยรู้สึกเหมือนการเขียน blog จริงๆ ซะที ก็พูดถึงตัวเองนี่เนอะ
วันนี้จะมาเล่าถึงพฤติกรรมของโปรแกรมเมอร์หรือตัวผมนั่นเอง เอาตัวเองเป็นกลุ่มตัวอย่าง เหมือนพวกโพลต่าง ๆ ไง
วันนี้จะมาเขียนแต่ในด้านที่ดีนะครับ เสนอแนะได้ คุยเล่นได้ กวนได้ ไม่ซีเรียสครับ ผมไม่คิดมาก
มาข้อแรก 1. การเขียนโปรแกรมต้องมองจุดมุ่งหมายเป็นสำคัญ
เวลาผมเขียนโปรแกรมหรืออ่าน spec ที่ทาง SA เขียนมาให้ หรือที่ลูกค้าให้ก็ตาม ผมก็จะพยายามอ่านจุดมุ่งหมายของคนที่ให้มาให้เคลียร์ หรือถ้าไม่เคลียร์ก็ต้องถามให้เคลียร์ คือถ้าเราเข้าใจจุดมุ่งหมายแล้ว เราก็จะสามารถเข้าใจความคิดว่าที่ทำเพื่ออะไร ซึ่งจะทำให้เราสามารถเสนอสิ่งที่ดีกว่า หรือแก้ไขให้มันดีขึ้นได้ ซึ่งเป็นสิ่งสำคัญที่จะได้ไม่ต้องทำงานหลายรอบ ปัญหาส่วนใหญ่ที่เราต้องแก้งานเรื่อย ๆ เนื่องจากไม่พยายามทำความเข้าใจจุดมุ่งหมาย แต่พยายามทำตาม spec ที่ให้มาโดยคิดว่าอยากได้ก็ทำให้โดยคิดว่าเราไม่ผิดเค้าให้มาผิดก็เป็นความผิดของเค้า ซึ่งสุดท้ายแล้ว เราก็ต้องแก้อยู่ดี เพราะฉะนั้นพยายามทำให้ดีที่สุด หากเข้าใจจุดมุ่งหมายที่ชัดเจนแล้ว จากงาน 100 เราจะทำได้ 120 – 200 เพราะว่าเราจะสามารถเขียนโปรแกรมเพื่อรองรับอนาคตที่จะเกิดขึ้นต่อจากนั้นได้อีก (เห็นด้วย กด 1, ไม่เห็นด้วย กด 2)
2. ใช้ google และต้องทำความเข้าใจ google
เอ่อ ตัวผมหรือหลาย ๆ คนก็ติด google ครับ เพราะมันบอกเราได้ทุกอย่าง เวลาเอาโค้ดชาวบ้านมา ตัวผมก็จะพยายามทำความเข้าใจว่า ทำไมเค้าถึงทำแบบนั้น ผมไมถึงได้ผลแบบนั้น ก็จะพยายาม comment บรรทัดโน้น แก้บรรทัดนี้ และดูผลลัพธ์ที่ออกมา เพราะส่วนใหญ่แล้วโค้ดที่ได้มา จะเอามาใช้ได้ซัก 70 ส่วน แต่หากเราพยายามทำความเข้าใจเราจะได้ความรู้เพิ่มมาอีกมากมายครับ เพราะการดูโค้ดคนอื่น ทำให้เราได้แนวคิดในการประยุกต์แบบใหม่ ๆ เกิดขึ้นมา โค้ดที่ผิด และที่ถูก ก็ให้ความรู้กับผมได้เสมอครับ ตัวอย่างความรู้ที่ได้ !important โอ้ตอนเห็นครั้งแรกมันใช้ทำอะไรน้อ พอเอามาใช้แล้วโอ้ อ้าว สุโค่ย ใครยังไม่รู้ก็ถาม google นะครับ เพราะคราวนี้ไม่ได้สอนอะไรครับ 555
3. ปัญหาคือพลังของโปรแกรมเมอร์
ผมเคยทำโปรแกรมที่ไม่ต้องคิดอะไรเลย แค่สร้างฟิลด์ เพื่อเป็น Object สำหรับสร้างรายงาน ซึ่งทำซ้ำๆ เยอะมากๆๆ ซึ่งยังเป็นอะไรที่น่าเบื่อมาก เรียบง่าย ไม่มีอะไรเลย ซึ่งแทบจะหลับตาพิมพ์เลยครับ 555 (ผมหลับตาพิมพ์ได้ถูกมากกว่าลืมตาครับ) แต่เวลาที่สนุกที่สุดคือเจอบั๊ค มีปัญหา ช่วยดูหน่อย คำพวกนี้เวลาผมได้ยินจะกระดี๊กระด๊ามาก 555 แบบว่ารอมาตั้งนานแล้ว และจะ switch ไปหาปัญหาทันที คนอื่นลุกลน แต่ผมเหมือนได้เจอของเล่น ตื่นทันทีทันใดเลย ไม่รู้ผมเป็นคนเดียวรึเปล่าน้อ มาแชร์กันได้ครับ
4. สิ่งที่ลำบากใจมากที่สุดและสำคัญที่สุดคือการตั้งชื่อ
ชื่อของสิ่งต่าง ๆ ไม่ว่าคลาส ตัวแปร ชื่อฟิลด์ ชื่อฟังก์ชั่น ผมว่าเป็นสิ่งที่สำคัญที่สุดเลยนะ เพราะหากทำไว้ดีการแก้ไขก็จะสามารถทำได้สบายมาก พยายามตั้งให้เป็นรูปแบบเดียวกัน เช่นอะไรที่ใช้ในการค้นหาผมก็จะลงท้ายด้วย Cond อะไรที่เป็นอาเรย์ก็จะตั้งเป็น Arr ส่วนเป็นการติดต่อกับ database ก็จะเป็น DAO (Data Access Object) นั่นเองครับ ซึ่งหากเห็นแค่คำลงท้ายเราก็จะมองเห็นค่าที่อยู่ด้านในทันที หรืออะไรที่เป็นชั้น ๆ ก็จะเป็น Main, Sub1, Sub2 ไปเรื่อย ๆ หรือแม้กระทั่งส่วนที่เป็นชื่อจริง ๆ ก็ตั้งให้สื่อกับตัวมัน คำไหนที่เห็นแล้วก็ต้องอ๋อตัวนั้นนั่นเอง 555
5. อะไรที่ต้องทำซ้ำ ๆ กันหรือใช้ชื่อแบบเดียวกัน ให้ทำเป็น Class ซะ
อันนี้เป็นแนวคิดที่ว่าในหน้าต่างๆ บางหน้าหรือหลายหน้าอาจจะมีการทำงานที่คล้าย ๆ กัน เหรือแตกต่างกันบางส่วน เช่นการดึงข้อมูล การนำข้อมูลในใส่ในหน้าเวป ซึ่งการทำงานมันจะคล้ายๆ กันแต่ข้อมูลที่ดึงมาได้จะไม่เหมือนกัน อยากใช้ชื่อเดียวกัน ทำไงดี ซึ่งผมก็แยกออกเป็นคนละคลาสทันที โดยมีเมธอดชื่อเดียวกัน copy ไปและเปลี่ยนชื่อ class และการทำงานนิด ๆ หน่อย ๆ ก็เรียบร้อยครับ หากเป็น javascript ก็ทำการ new Object(); มาใช้ทันทีครับ
คราวนี้ 5 ข้อก่อนนะครับ เหนื่อยและ เห็นด้วยไม่เห็นด้วยหรืออยากจะเถียงหรือเพิ่มเติมข้อไหนก็บอกมาได้ครับ เผื่อจะได้แนวคิดใหม่ ๆ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น