PUMJ | มาใช้ Java version ใหม่ๆ กันเถอะ

Chal U-Viengchai
SET-IT-TEAM
Published in
2 min readMar 12, 2023

Powering Up with Modern Java (PUMJ) เป็นบันทึกเรื่องราวการพัฒนา Java Application ของ Chal มีทั้งเรื่องที่ใหม่ ที่ผู้อ่านอาจจะไม่เคยเห็น หรือเรื่องเก่า ที่อาจหลงลืมไปบ้าง หวังว่าสนุกไปกับ PUMJ นะครับ

My Java Story

เป็นเรื่องที่รู้ดีกันว่า Java มีภาพลักษณ์ในทางที่ไม่ค่อยดีสักเท่าไหร่ สำหรับคนที่จบใหม่ (อย่างน้อยก็ในรุ่นของผู้เขียน) ไม่ว่าจะเป็นภาษาที่เก่าแล้ว, การเขียน syntax ที่ค่อนข้างยาว (เมื่อเทียบกับ javascript หรือ python)

คำถามที่น่าสนใจคือ Java มันเป็นแบบนั้นจริงๆ หรอ? หรือ ทำไม Java มีภาพจำแบบนั้น? ผู้เขียนจึงพยายามหาเหตุ จากผลที่มีอยู่ และได้คิดเอาเองว่า ทั้งหมดเกิดจาก Java เป็นภาษาที่ถูกนำมาใช้ในการสอน programming พื้นฐาน

แล้วมันมีปัญหาตรงไหน? ปัญหาอยู่ตรงที่ Java ที่สอนนั้นมันไม่ได้ update ตาม version ปัจจุบันยังไงหละ! ซึ่งเข้าใจได้เพราะการ update Java นั้นไม่ได้มีผลกับเนื้อหาการสอน (ชื่อวิชาก็บอกอยู่ว่าสอน programming พื้นฐาน ไม่ได้สอน Java นะ)

Note

ต้องเกริ่นว่า ผู้เขียนไม่ได้อยู่ทีม Java (แบบว่า Java นั้นยอดเยี่ยมที่สุด !!!) Programming language เป็นเพียงเครื่องมือที่ใช้ในการทำงาน หน้าที่ของ Software Engineer คือ การเลือกใช้เครื่องมือให้เหมาะกับงาน และสภาพแวดล้อมในการทำงานด้วย

“There is no one solution to all problems”

ไม่ว่าผู้อ่านจะชอบ Java หรือจะอยู่ทีมใดก็ไม่สำคัญ การที่ได้เรียนรู้เพิ่มย่อมเป็นเรื่องที่ไม่เสียหายอย่างแน่นอน ลุยกันเลยยย

Overviews

  1. Local Variable Type Inference
  2. Switch Expressions
  3. Formatted
  4. Record
  5. Pattern Matching

1. Local Variable Type Inference

java version: 10
การใช้ var ช่วยให้ไม่ต้องเขียนชื่อ class ใหม่ (ลดการ redundant) และช่วยให้อ่าน code เข้าใจง่ายขึ้น ถึงแม้จะมี Keyword var แต่ก็ยังเป็น static type นะ

2. Switch Expressions

java version: 14
การใช้ switch กับ arrow (->) ทำให้ไม่ต้อง break ทุกครั้ง และยังทำให้ code เข้าใจง่ายขึ้น เขียนสั้นลงอย่างเห็นได้ชัดเจน

3. Formatted

java version: 15
การทำ String Format สามารถเรียกใช้จาก String ได้เลย ไม่ต้อง String.format แล้ว

4. Record

java version: 16
Record ใช้สำหรับสร้าง object ที่เป็น immutable ช่วยลดการเขียน code เป็น keyword ใหม่สำหรับ boilerplate code

5. Pattern Matching for instance of

java version: 16
ใช้ Pattern Matching ทำให้เขียนน้อยลงไปอีกบรรทัด และทำให้เข้าใจ code ง่ายขึ้น

--

--