16 กุมภาพันธ์ 2553

[038] สุดแสนเสียเวลา อ่านหนังสือ ABAP Programming

สองสามวันนี้อ่านหนังสือภาษาไทย SAP R/3 ABAP Programming ของค่าย ARiP สุดแสนจะปวดหัวอย่างแรง ขอบ่นระบายหน่อยเถอะ 
  • ตัวอย่างในหนังสือผิด ในบทที่ 5 เขียนวิธีการอ้าง Internal Table แบบใช้ [ ] ผิดหมดทุกตัวอย่าง   เพราะมีเว้นวรรคทุกคำสั่ง งงตั้งนานว่าทำไม กว่าจะรู้จะไปค้นในเว็บ help.sap.com ว่าไม่ต้องมีช่องว่าง [] (รับรองว่าดูไม่ผิด วัดแล้วใส่ตัวอักษรได้อีกตัวแน่ๆ)
  • ไม่อธิบายคำสั่ง TYPES อยู่ดีๆ ก็เอามาไว้เป็นส่วนหนึ่งของตัวอย่าง  ลองย้อนกลับไปดูบทก่อนๆ ไม่มีแน่ๆ ต้องการอะไร ปริศนาพาสนุก?
  • ไม่บอกถึงความแตกต่างของ  Internal Table Types กับ Internal Table Objects (อ่านจนจบแล้วต้องไปหาข้อมูลเพิ่มว่าทำไมต้องใช้ TYPES) 
  • อธิบายเรื่อง Header Line ได้มั่วมาก อย่ามีรูปดีกว่า งงกว่าเดิม  แทนที่จะเอาแบบประกาศแยกมาแสดงให้ดูก่อน ดันเอาแบบรวมมาแสดงก่อน พยายามอ่านหลายรอบ
  • บอกว่าให้เขียนแบบสร้างแบบมี header ไปเลยจะได้ไม่ยุ่งยาก (หน้า 109) แต่พอในหน้า 121 ดันบอกว่า ถ้าพิจารณาจากทฤษฎีจริงๆ แล้ว ควรแยก Internal Table กับ Header Line เพื่อป้องกันความสับสน !!! สรุปเอาไงกันแน่ฟร่ะ  แถมลงท้ายว่า ถ้าเขียนใน Report ธรรมดา ๆ ก็ใช้แบบมี header ไปเลยก็ได้ ถ้าไม่เน้นหลักและซีเรียสกับชีวิตมากมาย (เออ ตอนนี้ตรูเริ่มซีเรียสแล้วว่ะ )
  • วิธีการใช้งาน Internal Table ยกตัวอย่างไม่มีลำดับขั้นตอน เหมือนพูดแบบหว่านแหแล้วไปดูรายละเอียดใน help เอา 
 หนังสือเล่มนี้ผู้เขียนได้บอกว่า ไม่ได้ต้องการเจาะลึกลงใน Syntax ของตัวคำสั่ง แต่อยากให้ทราบถึงการทำงานของ ABAP บน SAP ว่ามีการจัดการและมุมมองอย่างไร แต่จากที่อ่านยังไม่ใกล้กับที่กล่าวไว้  เพราะถ้ามองในมุมคนที่ไม่มีพื้นหรือผู้เริ่มต้น จะสับสนเป็นอย่างมาก เพราะหลักภาษาเหมือน COBOL สภาพแวดล้อมที่ทำงานบน SAP ไม่เหมือนกับโปรแกรมที่เขียนบน client ได้

แนะนำว่าผู้เขียนหนังสือควรปรับปรุงในเรื่องลำดับของคำสั่งหรือหัวข้อที่จะนำเสนอ ถ้าจะเอาประสบการณ์มา ก็ควรลำดับดีๆ ไม่ใช่หว่านแหๆๆ ใส่มาแล้วให้คนอ่านมานึกสรุปเอาเอง ยกเว้นว่าคนอ่านพอมีพื้นมาบ้างอาจไม่มีปัญหาเพราะพอจะประติดประต่อกันได้ อย่างเช่น บทที่ 5 น่าจะเริ่มด้วย ทำความเข้าใจกับ Internal Table Types ก่อนว่ามีโครงสร้างและการใช้งานยังไง เพราะจะได้เข้าใจเรื่อง header จากนั้นค่อยมาว่าเรื่อง  Internal Table Objects แบบประกาศแยก header กับ table และสอนถึงวิธีการนำเอาข้อมูลจาก header ไปใส่ใน table รวมถึงการเข้าถึง ลบ เพิ่ม เรียงลำดับ จากนั้นถึงเอาไปรวมกับคำสั่ง Open SQL ว่าใช้งานร่วมกันอย่างไร นี่ยังไม่เข้าใจถึงตัว Internal Table และวิธีใช้งานเลย ก็เอามายำกับ Open SQL แล้ว 

จบ สรุปเสียเวลาไป 2 วันกับเรื่อง internal table เรื่องเดียว  ไม่เข้าท่าเลย 

ปล. ถ้าคนแต่ง(ประพจน์)ได้มาอ่าน แล้วรู้สึกว่าที่ตัวเองเขียนดีแล้ว ก็อย่าสนใจเลย  ผมก็บ่นตามที่ผมรู้สึก แต่ถ้าอยากปรับปรุงในเล่มต่อไปก็น่าจะดีต่อผู้อ่านและตัวคุณเอง 

เกี่ยวกับเจ้าของบล๊อก

รูปภาพของฉัน

เป็นโปรแกรมเมอร์ที่ฝันว่าจะได้นอนเกาพุงไปวัน ๆ จนพุงลดกลายเป็นเอว ได้เป็นบุคคลที่มีความสุขที่สุดในโลกจนคนอื่น ๆ อิจฉา