Q : ยังมีการใช้ System.out.println อยู่
A : สำหรับเด็กจบใหม่ผมไม่คิดอะไรหรอกครับที่เขาจะใช้เพราะยังไม่รู้ ตอนผมจบใหม่ผมก็เป็น ตอนหลังถึงมาเรียนรู้ว่าไม่ควรจะใช้ System.out.println แล้ว ควรจะใช้ Log4J (พื้นฐานการ Config อ่านได้ที่นี่ครับ) มาใช้ ซึ่งจริงๆ แล้วที่เราใช้ Log4J ก็เพราะว่าเราสามารถที่จะควบคุมพวก ข้อมูลที่ต้องการโชว์ได้ ว่าอยู่ระดับใด(info, debug, warn, fatal) สามารถแยกเกบเป็นไฟลล์ต่างๆ ได้ง่าย ถ้าเราใช้ System.out.println มันจะไม่ได้น่ะครับ (ที่จริงมันก็พอได้โดยเอา Log4J ไปคุมอีกทีแต่ก็ไม่ควรครับ) แล้วก็วิธีใช้ง่ายๆ ก็อย่าไปแยก Log เป็น Class Utitility เลยครับ ควรคุมง่าย แต่ดูยากไม่รู้ว่าอยู่บรรทัดไหน Class ไหนที่ทำงานอยู่ ให้ทำแบบนี้
private Logger log = Logger.getLogger(xxxx.class);
ไว้ที่ Class ที่เราทำงานเลยครับ แล้วก็ใช้ log.xxx(""); เอาจะดีกว่า
Q : ใช้ Google ไม่เป็น
A : ผมคิดว่าแบบนี้ไม่น่าจะมีแล้วนะครับ คือจะหาอะไรก็พิมพ์คำนั้นลงไปเลย (ถ้าไม่รู้ภาษาอังกฤษ ก็พิมพ์ไทยลงไปเลยครับ ผมคิดว่าปัญหาบางอย่างอาจจะหาภาษาไทยได้เลย แต่ถ้าไทยอาจจะต้องพิมพ์เป็นคำๆ แล้วเว้นวรรค ถึงจะหาเจอ) แล้วก็เพิ่มพวกภาษาที่เราใช้ไปด้วยก็จะแคบเข้า เช่น ถ้าเราเขียน Java ตอนจะต้นอะไรก็ติดคำว่า Java ลงไปด้วยก็น่าจะหาเจอนะครับ หรืออย่างถ้าเราใช้ Tomcat Server เราก็พ่วงคำนี้ลงไปด้วย ถ้ามีปัญหาบน Server น่ะครับ น่าจะช่วยให้หาเจอได้ง่ายขึ้นมาก หรือ ถ้าเราอยากรู้ว่า มันคืออะไรก็พิมพ์เลยครับ เช่น JMS คือ แบบนี้ก็หาเจอความหมายที่เป็นภาษาไทยเลยง่ายในการอ่านด้วย
Q : อ่าน Log (SystemOut.log) ไม่เป็น
A : วิธีการอ่านแบบนี้ เราจะต้องมีวิธีการเขียน Log ที่โชว์ให้ดีๆ ด้วยครับ คือพยายาม Log ว่าเราเข้า Class ไหน, Method ไหน ตลอด ค่าไหนเราแค่เช็คของเรา ก็ใช้ Log.debug เอา แล้วให้โชว์ออกมา (ถ้าใช้ Log4J จะช่วยได้เยอะ เพราะเราจะรู้ว่าตอนนี้ทำอยู่บรรทัดไหน Class ไหน, Method ไหน เลยน่ะครับ ขึ้นอยู่กับ Config ของ Log4J) และอีกอย่างพวก Exception น่ะครับ ก็หัดใช้ e.printStackTrace() ไว้ด้วยตอน ดัก try, catch น่ะครับ จะได้รู้ว่าบรรทัดไหน วิธีการไล่พวกนี้ก็ไม่ยากแค่ดูว่า Exception ที่อยู่ใน Package ของเราอยู่ตรงไหนแล้วก็ไปไล่โค้ดไปเรื่อยๆ ก็จะเจอที่ผิดของเราเองน่ะครับ
Q : ไม่ยอมเช็ค Null ไว้
A : อันนี้ผมก็เป็นบ่อยชอบลืม เช็ค Null ทุกครั้ง ที่จะใช้ตัวแปรนั้นน่ะครับ เดี๋ยวจะเกิดปัญหา NullPointerException น่ะครับ พยายามตรวจดูว่าจะ ตัวแปรตัวไหนให้เช็คก่อนที่จะใช้งานตัวแปรตัวนั้น
Q : ไม่รู้จะเขียน Log ให้แสดงตรงไหนบ้าง
A : วิธีการเขียนง่ายๆ นะครับ ก็เข้า Method ไหน Log แสดงว่าเข้า Method นั้น แลวก็แสดงค่าทุกค่าที่ใช้ใน Method นั้น อันนี้แบบง่ายๆ (พวกแสดงค่าต่างๆ ก็ืำเป็น log.debug เอาแล้ว ครอบด้วย if log.isdebugEnable() ไว้ พอเวลาไม่ต้องการให้แสดงก็ไป Config ไว้ที่ Log4J) สำหรับที่สำคัญๆ ที่ควรมีถ้าขี้เกียจ ก็ Log บอกว่าเข้า Method ไหน แล้วก็ค่าที่ลง Database ว่าลงเป็นอะไร แล้วก็ใช้ SQL อะไรครับ จะได้รู้ว่าผิดที่ Database หรือว่าโปรแกรมที่เราเขียน
Q : เขียน Program พวกค่าต่างๆ ไว้ใน Code เลย
A : พวกค่าต่างที่คิดว่าเป็นค่าที่เราต้อง Config ไว้ ควรเอาไปเก็บไว้ใน General Parameter สักที่นึงที่สามารถแก้ไขได้โดยเราไม่ต้องมานั่ง Deploy Application ใหม่ เช่น ใน Database หรือ Properties Files ตัวอย่างค่าที่เราควรไว้ข้างนอก เช่น URL ที่เราต้องติดต่อกับ External System อื่นๆ, ค่าำคงที่ที่เราต้องส่งไปให้กับ External System เป็นต้น
0 comments:
แสดงความคิดเห็น