Screen Shot 2557-12-28 at 9.11.33 PM
เรื่องที่ 11 ที่นักพัฒนาควรรู้ และ เข้าใจก็คือ Know How to Use Command-line Tools
หรือ นักพัฒนาต้องหัดเรียนรู้ เข้าใจ และ ใช้งานคำสั่งต่างๆ ใน command-line นะ

ตัวอย่างเช่น
เชื่อไหมว่า Java Developer ส่วนใหญ่
ไม่สามารถ compile code
ไม่สามารถสร้างไฟล์ JAR, WAR, EAR
ไม่สามารถ deploy ระบบ
โดยปราศจาก IDE …

ในปัจจุบัน

นักพัฒนาส่วนใหญ่มักจะเริ่มต้นการเขียนโปรแกรมด้วยการถามหา IDE ที่ดีที่สุด
แทนที่จะถามว่า ภาษาโปรแกรมเขียนอย่างไร กลับถามว่าใช้ IDE เขียนดีล่ะ ?
แปลกไหม ?

IDE นั้นไม่เพียงใช้ง่ายเท่านั้น แต่ยังช่วยให้นักพัฒนาอย่างเรา
ไม่ต้องไปคิดในเรื่องขั้นตอนการ build ระบบเท่าไร เช่น

  • การตรวจสอบความถูกต้องของ code เป็นไปตาม syntax ของภาษาหรือไม่
  • การ compile code
  • การสร้าง package ของ code เช่น ในภาษา Java จะต้องสร้าง JAR, WAR, EAR

เชื่อไหมว่า ?

นักพัฒนาส่วนใหญ่ ไม่รู้วิธีการ build ข้างต้น ถ้าปราศจาก IDE
มันเป็นเรื่องที่น่าเศร้ามากๆ

ความง่ายต่อการใช้งานของ IDE นั้นมันก็มีข้อเสียเช่นกัน
เนื่องจาก IDE มันได้สร้างการตัดสินใจต่างๆ ให้คุณใช้งาน
และทำงานต่างๆ ไว้เบื้องหลัง ซึ่งคุณไม่จำเป็นต้องรู้เลย

ดังนั้น ถ้าคุณยังใช้เพียง IDE อย่างเดียวสำหรับการพัฒนา software
คุณก็ไม่มีวันรู้เลยว่า เบื้องหลังการทำงานจริงๆ มันเป็นอย่างไร
คุณจะทำได้เพียงกดปุ่มจาก IDE แล้วรอดูว่ามันจะทำอะไรให้เท่านั้นเอง

สามารถสรุปง่ายๆ ได้ว่า

ถ้า IDE มันฉลาด และ ใช้ง่ายเพียงใดแล้ว
คุณในฐานะผู้ใช้งาน ก็จะยิ่งโง่ลงไปเท่านั้น
ถ้ายังไม่ศึกษาและทำความเข้าใจการทำงานจริงๆ ของมัน

ลองหันมาศึกษา และ ใช้งาน Command-line tool หน่อยไหม ?

สามารถเรียนรู้ได้จาก IDE ที่คุณใช้
แล้วกลับมาดูว่าในการทำงานของ IDE เราสามารถนำ command-line tool อะไรมาใช้บ้าง
แล้วให้ลองเขียน script เพื่อรวบรวมการทำงานแต่ละส่วนเข้าด้วยกัน เช่น

  • การ compile code
  • การ packaging code
  • การสร้างไฟล์ executable
  • การ deploy

ตัวอย่างของเครื่องมือที่สามารถใช้งานได้ เช่น

  • Shell script/Window bat file
  • Apache Ant, Apache Maven สำหรับภาษา Java
  • Phing/Composer สำหรับภาษา PHP

ถ้าคุณสามารถทำได้
คุณก็จะรู้ว่า IDE นั้นมันคือระบบใช้งานที่มี User Interface ดีๆ ให้เราใช้งาน
ส่วนการทำงานด้านหลัง มันคือกลุ่มของ command-line นั่นเอง

แต่เดี๋ยวก่อนนะ !!

สิ่งที่อธิบายมานั้น มันช่วยทำให้คุณสามารถพัฒนาระบบงาน
โดยไม่ต้องใช้ IDE รวมทั้งยังเพิ่ม productivity ให้นักพัฒนาอีกด้วย

แต่สิ่งที่อาจจะเข้าใจผิด คือ บทความนี้ไม่ได้บอกว่าให้คุณเลิกใช้ IDE
แต่แนะนำให้คุณเข้าใจว่า การทำงานทำจริงๆ ของ IDE มันเป็นอย่างไร
ด้วยการรู้ว่าใช้งานผ่าน commnad-line tool อย่างไร
ซึ่งเป็นวิธีการศึกษาที่ดีมากๆ

เมื่อคุณกลับไปใช้งาน IDE
คุณจะเข้าใจและใช้งาน IDE ดีขึ้นมาก
รวมทั้งสามารถควบคุม ขั้นตอนการ build ระบบงาน
ได้อย่างดี และ มีประสิทธิภาพ

และถ้าคุณสามารถใช้งาน command-line tool ได้อย่างดีแล้ว
คุณก็สามารถประยุกต์มันไปใช้งานต่างๆ ได้
ตลอดจนสามารถนำมาใช้เพื่อแทน IDE ได้อีกด้วย

คำถามที่ต้องถามตัวเอง

วันนี้คุณศึกษา command-line tool บ้างหรือยัง ?
วันนี้คุณ compile code เป็นหรือไม่ ?
วันนี้คุณสามารถสร้างระบบการ build แบบอัตโนมัติ โดยไม่ผ่าน IDE ได้ไหม ?

มันแปลกนะ ว่าไหม ?
หรือว่ามันเป็นเรื่องที่ปกติไปแล้ววววววว