ความเป็นมืออาชีพ [ โปรแกรมเมอร์ ] ควรมีอะไร ?


การจัดบรรทัด
ถามว่าจำเป็นไหม ? พูดเลย จำเป็น เพราะว่าในการเขียนครั้งต่อไปหรือนำ code เหล่านั้นมาทำต่อแก้ไข ดัดแปลง มันไม่ง่ายเลยถ้าจัดบรรทัดไม่ดี จะเกิดคำพูดในใจขึ้นมา เนี่ยตรูเขียน เหี้ย อะไรเนี่ยฟ๊ระ หรือคนอื่น ๆที่มาอ่านต่อก็ แถบอยากจะลบทิ้งแล้วเขียนใหม่ จะง่ายกว่าไหม ? ตั้งตัวแปรที่สื่อความหมายพอให้เดาทางได้ เขียน /* Comment code */ ไว้บ้าง ถ้าจะแก้ไฟล์อย่าลืม Backup ไว้ให้ดี ๆ การจัดบรรทัด หลัก ๆที่ได้ประโยชน์คือ อ่านง่าย หาที่จบ Loop ได้ชัดเจน 

ENV ที่ต้องมีความเข้าใจเป็นอย่างดี 
OSI Models ,Sever , NGINX , Apache , PHP INI, HTACCESS, Proxy ,Route, HOST Config ,Private IP,DATABASE,DNS , NAT, ARP,REST, Cache , Memcache, Redis,  DB, PHP Frame Work ต่าง ๆนา ๆที่ใช้พัฒนา Application รวมไปถึง Issue ต่าง ๆที่มันเกิดขึ้นกับสิ่งเหล่านี้ ถามว่าทำไมต้องรู้เอาจริง ๆเราไม่รู้ก็ได้ถามคนอื่นเอา ให้ คนอื่นแก้ปัญหาให้ จะดีกว่าไหมถ้าเรารู้ถึง Root cause ของปัญหาจริง ๆก่อนที่จะไปบอกให้ Infra แก้ไขปัญหาให้ 

Debug Step & Skill Debug
การแก้ปัญหาข้อผิดพลาดของโปรแกรมที่เขียนขึ้นมา เป็นสิ่งที่มีความจำเป็นอย่างยิ่ง มันจะเกิดขึ้นเมื่อ อยากแก้ Flow การ Calculate  การ Debug ตอน Running code หรืออะไรก็แล้วแต่ โปรแกรมเมอร์ต้องจับผิดมันให้ได้ ไม่งั้นคงโดนสตั้นไปนานเลยทีเดียว นอกเหนือจากนั้นก็ต้องมีทักษะในการหา Root cause  อาจจะมี Some thing wrong ไอ้ some think ต้องรู้ให้ได้ว่ามันคือ ? จะแก้อย่างไร ? วิธีการ ? เวลาที่ใช้ ? สิ่งที่อาจกระทบกับมัน

Test Case : TDD 
มีคนเคยกล่าวไว้ว่าก่อนที่จะเขียน code ต้องรู้ก่อนว่าจะ Test กันยังไง KPI คืออะไร ?(หัวหน้าผมเอง) เป็น Step ของ Programmer ขั้นเทพ ไม่ต้องมาเสียเวลานั่งคิด ออกแบบ Flow การเขียนได้ระดับนี้ต้องมีประสบการณ์ขั้นสูงมาก ๆ เลยทีเดียว เป็นเรื่องที่จำเป็นมาก

Analysis 

ต้องมีความเข้าใจเข้าถึงและพัฒนา " คนล่ะเรื่องแหละ สิ่งที่มืออาชีพมีคือ ต้องมองให้ขาด ออก Solution ให้ได้ว่า Requirement ขนาดนี้ ฟันธงไปเลยว่าอะไรที่ทำได้ ทำไม่ได้ และมีอะไรที่เป็นเรื่องต้องระแวง ระมัดระวัง สิ่งที่มันจะทบ สุดท้ายคงจบลงด้วยกันฟังธงไปว่า งานนี้ใช้เวลา และคนที่กี่คนเสร็ดภายในกี่วัน

Coding :
Skill ในการคิด code ออกมาก็ไม่แพ้กัน ซึ่งความสามารถนี้มันก็แล้วแต่ล่ะคน มีไม่เท่ากัน บางคนคิดนานหน่อย บางคนก็เขียนได้เลย แต่บางคนก็ต้องเปิด  Doc Research แล้วค่อยเขียนได้ เวลาในการเขียนก็เหมือนกับความชำนาญ ถ้าชำนาญมาก ๆก็เขียน ได้ง่าย ๆ รวดเร็ว และถูกต้อง การทำงานของ Function เหมือนกัน แต่รูปแบบแต่ละคนเขียนก็ไม่เหมือนกัน แล้วแต่ว่าใครจะมีจิตนาการในการเขียน ประสบการณ์ หรืออื่น ๆ ซึ่งการเขียนที่ดีไม่ใช่แค่ ลด Stag ของ Code และต้องลด Resource ของเครื่องด้วย นั่นคือความไว และประสิทธิภาพมาควบคู่กัน 

การวางแผนที่ดีต้องมีสิ่งนี้
- Backup plan 
- Document 
- Requirement 
- Human management 
- Presentation Deploy Plan : Lunch  Project
- Policy 
- Data management
- Security 
- คำนึงถึงอนาคต ?จะเกิดอะไรขึ้นถ้า ข้อมูล คนใช้ เพิ่มขึ้น ?  constant , Structure design 


Share on Google Plus

About maxcom

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 ความคิดเห็น:

แสดงความคิดเห็น