วันเสาร์ที่ 4 สิงหาคม พ.ศ. 2555

Next Step

"เริ่มต้น" คำนี้ สำหรับผม หมายถึง ผู้ที่เคยเรียนรู้มาก่อน
แต่หลังจาก เรียนเสร็จ  ก็จะ "งง" ...แบบว่า ทำไม เนื้อหามันมากเหลือเกิน


คนสอน ก็มักจะพูดว่า  แค่นี้จำไม่ได้ หรือ ?
คนเรียน ก็มักจะคิดว่า  มันมากน๊ะ  ใครจะจำได้ ?  
     ตอนคุณ (คนสอน) เรียน ทำได้เลยใช่มั๊ย ?  (อันนี้คิดในใจน๊ะ)


Next Step  คือ  ฝึกทำๆๆๆ  และเพิ่มความรู้ความเข้าใจในเครื่องมือ (Tool) ต่างๆ

อ๊ะ! วิธีนี้คือ การเรียนในห้องเรียนนี่นา!   
ใช่แล้วครับ 

ถ้าใช้เครื่องมือได้เต็มที่  ก็จะลดเวลาได้มาก
ข่าวไม่ดี : เครื่องมือดั้งเดิม  ที่แสดงให้เห็น  ใช้งานยังยุ่งยากอยู่ 

ผมมักจะเปรียบเทียบวิธีนี้ คือ การเขียน ASP.net  ด้วย NotePad
(ต้องจำคำสั่ง และใช้ความพยายามมาก)

มีเครื่องมือที่ช่วย  คล้ายกันกับ VS2010 ของ DotNet แต่ก็ยังมีข้อจำกัดอื่นๆ แทรกอยู่
เช่น  เขียน code ง่ายขึ้น แต่เมื่อจะ compile ต้องกลับไปใช้  วิธีแบบเดิม เป็นต้น

Tool ที่ใช้เขียน RPG ที่ง่ายกว่า เช่น Web Sphere Studio (ฟรี), ASNA Visual RPG (มีลิขสิทธ์)
ตัวที่ช่วยออกแบบหน้าจอ เช่น Visual Age (ฟรี) เป็นต้น
เลือกใช้ตามสะดวกครับ  ในหัวข้อต่อไป  ผมจะแนะนำ "หัวข้อ" 
ที่ใช้เสริม  "ฝึกทักษะ"  เพื่อแก้ปัญหา  รู้วิธีทำแล้ว  จะทำอะไรดีอ่ะ (คิดไม่ออก)

โดยผมจะแทรก  algorithm  กับ business concept เข้าไปด้วย
จากประสพการณ์  นักศึกษาที่จบใหม่  "ขาด" ทักษะส่วนนี้มาก  




วันเสาร์ที่ 28 กรกฎาคม พ.ศ. 2555

เริ่มต้นกับ RPG/400

RPG เป็นภาษาที่ใช้บนเครื่อง IBM รุ่น iSeries, AS/400 (รุ่นยอดนิยม)
หรือ System/38 (รุ่นนี้น่าจะไม่มีคนใช้แล้ว) 

ช่วงเวลาหนึ่ง รุ่น AS/400 ขายดีมากในประเทศไทย
ด้วยสภาพการใช้งาน ที่เฉพาะ IBM เท่านั้น ทำให้จนถึงปัจจุบันหลายบริษัทฯ ก็ยังใช้งานอยู่  


สำหรับผู้ที่จำเป็นต้องใช้งาน  ก็มาเรียนรู้กัน
แต่ควรเตรียมปรับตัว  รองรับช่องทางเสริม เผื่่อไว้กรณีบริษัทเปลี่ยน platform ด้วยน๊ะครับ

ใน blog นี้ผมจะแนะนำ แนวทางการใช้งาน ควบคู่กับการใช้เทคโนโลยี่ใหม่

----------------------------------------------------------------------------------------------

โปรแกรมเมอร์ต้อง ได้รับสิทธิการใช้เข้าใช้เครื่อง "ก่อน" น๊ะครับ
(ติดต่อ Admin ของเครื่องนั้น)

เข้าใช้งานด้วยเครื่อง Workstation (เครื่องเฉพาะเพื่อเปิดใช้ ปัจจุบันมีน้อยมาก)
หรือ PC ที่ติดตั้งโปรแกรมจำลองการทำงานเหมือน Workstation
ที่นิยมใช้คือ CA/400(Client Access/400)  ปรกติ Admin จะติดตั้งให้ใช้
สภาวะพร้อมทำงาน คือ หน้าจอ SignOn
หน้าจอ SignOn 

การเข้าใช้งาน Admin จะสร้าง UserProfile และ รหัสผ่านเริ่มต้นให้
หลังจาก Sign On เข้าไป  จะเห็นหน้าจออย่างน้อย หนึ่งใน 2 แบบ คือ 
1. Line Command ต้องป้อนคำสั่งเอง  (ต้องจำกัดหน่อยครับ)
2. Line Command ที่แสดง เมนู ให้เลือก  (ง่ายดี)

แทนที่จะจำคำสั่งหรือโปรแกรมเครื่องมือแต่ละตัว
IBM ได้จัดรวมโปรแกรมเครื่่องมือ (Tool) ในการป้อน Code ไว้ใน  Programming Development Manger
เรียกใช้  ด้วยคำสั่ง StrPdm
หน้าจอแสดงผลลัพธ์จาก คำสั่ง StrPdm

Code ที่เราสร้างจะจัดเก็บใน Library, SourceFile  (ที่เราได้รับอนุญาตให้ใช้)

ลองดูภาพรวมๆ ของการสร้าง

ตย  ต้องการสร้างโปรแกรม  เพื่อแสดงคำว่า Hello
A. สร้างหน้าจอ  เพื่อแสดงข้อความ Hello
B. สร้างโปรแกรม เรียกใช้ หน้าจอจากข้อ A
C. เรียกใช้

A. สร้างหน้าจอ ชื่อ HelloW เพื่อแสดงข้อความ Hello (บรรทัดที่ 2 เริ่มต้น ที่คอลัมน์ 5)
    หน้าจอมาตรฐาน  จะมีขนาด 80 อักษร (คอลัมน์) 24 แถว

    a.1 เลือกเมนู ข้อ 3  (ด้านล่าง ป้อน เลข 3 แล้วกด Enter)
          จัดเก็บใน Source File = QDDSSRC ที่ Library = QGPL
          จะอยู่ใน mode : หน้าจอแสดงรายชื่อสมาชิก  (work member PDM)

    a.2 กด F6 เพื่อสร้าง สมาชิก (Member) ใหม่  ตั้งชื่อ file หน้าจอ HelloW  ชนิดเป็น DSPF
          หลังสร้างเสร็จ จะเห็น ชื่อ HelloW  (ในข้อ a.1)

    a.3 เข้าไป  ออกแบบหน้าจอ  HelloW ด้วย StrSDA   ป้อน 2=Edit หน้า HelloW
    a.4 ป้อน code ดังต่อไปนี้
              1. สร้าง หน้าจอ(Record Format)  ชื่อ HelloWR1  ป้อนเลข 1
              2. ป้อน  คำว่า Hello World  ให้แสดง บรรทัดที่ 10 เริ่มที่คอลัมน์ 20
 


    a.5 สิ้นสุดการป้อน โดยกด F3  เพื่อ Save  จะกลับไปสู่ ข้อ a.1
    a.6 เปลี่ยน  code เป็น Object  โดยป้อนเลข 14 ในช่อง Opt
           หลังการสร้าง compiler จะแสดงผลเป็น รายงาน และ ข้อความ (สำเร็จ หรือ ล้มเหลว)
  
         ตรวจสอบ object ได้สร้างสำเร็จ หรือไม่ ?  
           ด้วยคำสั่ง   dspobjd  qgpl/hellow*  *file   จะเห็น object


B. สร้างโปรแกรม เรียกใช้หน้าจอข้อ A
    (สังเกต  ผมพยายามแสดงให้เห็นว่า  ทำงานคล้ายๆกัน)
    b.1 เลือกเมนู ข้อ 3  (ด้านล่าง ป้อน เลข 3 แล้วกด Enter)
          โดยจัดเก็บใน  SourceFile = QRPGSRC  ที่ Library = QGPL
          จะอยู่ใน mode : หน้าจอแสดงรายชื่อสมาชิก  (work member PDM)


    b.2 กด F6 เพื่อสร้าง สมาชิก (Member) ใหม่  ตั้งชื่อ File = Hello  ชนิดเป็น RPG

          หลังสร้างเสร็จ จะเห็น ชื่อ Hello ในข้อ b.1
    b.3 เข้าไป  ป้อน code File= Hello ด้วย StrSEU  ป้อน 2 หน้า Hello
    b.4 ป้อน code ทีทำงานดังนี้
               1. จะใช้  หน้าจอ จากข้อ A HelloW
               2. เรียกใช้  หน้าจอเลขที่ 1 HelloWR1
               3. บอกจุดสิ้นสุดโปรแกรม


    b.5 สิ้นสุดการป้อน โดยกด F3  เพื่อ Save  จะกลับไปสู่ ข้อ a.1
    b.6 เปลี่ยน  code เป็น Object  โดยป้อนเลข 14 ในช่อง Opt
           หลังการสร้าง compiler จะแสดงผลเป็น รายงาน และ ข้อความ (สำเร็จ หรือ ล้มเหลว)

C. เรียกใช้
    ที่ Line Command : Call Hello

         ตรวจสอบ object ได้สร้างสำเร็จ หรือไม่ ?  
           ด้วยคำสั่ง   dspobjd  qgpl/hello*  *pgm   จะเห็น object

ตอนนี้เห็น "ภาพรวม" แล้วน๊ะครับ - แต่ละจุดยังมีรายละเอียดย่อยอีกพอสมควร
ถ้ามองอย่างยุติธรรม   ขั้นตอนหลักไม่ต่างกันกับทุกภาษา
- ภาษาอื่น อาจจะมีเครื่องมือ ช่วยให้ใช้งานได้เร็วกว่า ตย.เช่น Visual Studio เป็นต้น

ผู้เขียน สอนพนักงานใหม่มาหลายรุ่น  จะเชี่่ยวชาญต้อง
- เพิ่ม "ทักษะ" (ทำมากๆๆๆ)
- จดจำขั้นตอนหลัก ให้ได้   ("ลด" รายละเอียดปลีกย่อยไปก่อน)
- ใช้ "ความเข้าใจ" แทนการท่องจำขั้นตอน