java Archive

เริ่มต้นการเปลี่ยนจาก Java ไปยัง Kotlin

ช่วงนี้มีโอกาสเข้าไปเปลี่ยนภาษาโปรแกรมสำหรับพัฒนาระบบงาน จากภาษา Java ไปยังภาษา Kotlin ซึ่งกำลังเนื้อหอมกันเลยทีเดียว ก็มีทั้งข้อดีและข้อเสียกันทั้งนั้น ซึ่งหลาย ๆ คนคงจะเห็นบทความเกี่ยวกับภาษา Kotlin ออกมาเพียบ ตั้งแต่ที่ภาษา Kotlin ได้เข้าไปเป็นหนึ่งในภาษาหลักสำหรับการพัฒนา Android app แต่สิ่งที่น่าสนใจคือ ขั้นตอนการปรับเปลี่ยนมากกว่า ว่าต้องเป็นอย่างไรบ้าง ? ดังนั้นจึงสรุปวิ่งที่ได้ลงมือทำไปไว้นิดหน่อย ซึ่งทำการเปลี่ยนแปลงจากระบบที่มีอยู่แล้ว !!! มาเริ่มกันเลย

Read More…

การทดสอบเกี่ยวกับ Exception ใน JUnit 5

วันนี้ลองใช้งาน Junit 5 ในงานนิดหน่อย พบว่าหลาย ๆ อย่างจาก JUnit 4 มันหายไป หลายอย่างเพิ่มมา ทั้งทำให้ยากและง่ายขึ้น มีสิ่งหนึ่งที่น่าสนใจคือ การทดสอบกับ Exception เนื่องจากของเดิมจาก JUnit 4 นั้นมีทางเลือกให้เยอะ ทั้ง try-catch (ไม่ควรทำนะ) ทั้ง @Rule ทั้ง expected ใน @Test ใน JUnit 5 นั้นไม่มี แต่ได้เพิ่ม assertion มาให้เลย ดังนั้นลองมาใช้งานกันดูหน่อย

Read More…

[Docker] แก้ไขปัญหาเรื่อง JVM กิน memory เยอะเกินเหตุ !!

ปัญหาที่มักพบเจอเกี่ยวกับการสร้าง Container สำหรับ JVM คือ การกำหนดขนาดของ memory ให้นั่นเอง ซึ่งพบว่า ถึงแม้จะกำหนดขนาดของ memory ตอนสร้าง container ไปแล้ว แต่ตัว JVM มันก็ยังมีค่าของ Max Heap Size (Estimated) เป็นค่าที่สูงกว่า

Read More…

สวัสดี Java Modular ใน JDK 9 กันหน่อย

วันว่าง ๆ ติดฝนมาลองทำความรู้จักกับ Java Modular ใน JDK 9 กันนิดหน่อย หรือบางคนอาจจะรู้จักในชื่อว่า Project Jigsaw ซึ่งเป็น feature ที่ถูกเลื่อมาอย่างยาวนานตั้งแต่ JDK 7, 8 หรือ 9 ดังนั้นลองมาทำความรู้จักกันหน่อยด้วยการเขียน code

Read More…

บันทึกการปรับปรุง code เกี่ยวกับการ mapping error code

วันนี้ทำการ review code นิดหน่อย พบ code ที่น่าสนใจเยอะพอสมควร หนึ่งในนั้นคือ code เกี่ยวกับการ mapping error code โดยมีขั้นตอนดังนี้ ทำการตรวจสอบว่า Exception แต่ละตัวจากนั้นกำหนด error code ให้ ทำการดึงรายละเอียดของ error ด้วย error code จาก Database !! ปล. ดึงข้อมูลจาก database ไม่ค่อยดีนะ !!

Read More…

สรุปผลการสำรวจเรื่องการพัฒนาระบบด้วยภาษา Java

จากแบบสำรวจเรื่องการพัฒนาระบบงานด้วยภาษา Java นั้น เพื่ออยากรู้ระบบงานในไทยใช้งานอะไรกันบ้าง ? ซึ่งมีผู้เข้ามาทำแบบสำรวจทั้งหมดจำนวน 149 คน ได้ผลการสำรวจที่น่าสนใจดังนี้

Read More…

JDK 9 Feature Complete แล้วจ้า !!!

หลังจากที่ JDK 9 Feature Extension Complete process นั้น เลื่อนมาจากเมื่อปลายปีที่ผ่านมา ถึงตอนนี้ทีมดูแลได้ประกาศออกมาว่าขั้นตอนนี้เสร็จสิ้นแล้ว นั่นหมายความว่า ได้ feature ทั้งหมดออกมาแล้ว !!

Read More…

Kata Java :: ฝึกกรองและเรียงลำดับข้อมูลใน List

จาก post การพูดคุยเรื่องทำการกรองและเรียงลำดับข้อมูลใน List กันอย่างไร ? ใน Facebook group ของ Thailand Android Developer ซึ่งมีความน่าสนใจมาก ๆ จึงมาลองฝึกเขียนตามคำแนะนำใน comment กันหน่อย โดยจะเป็นภาษา Java และ Kotlin ซึ่งมีวิธีการแก้ไขดังนี้ เขียนด้วยภาษา Java ทั่วไป เขียนด้วย Java 8 Lambda เขียนด้วยการนำ Google Guava มาช่วย เขียนด้วยการนำ RxJava มาช่วย เขียนด้วยภาษา Kotlin มาเขียน code กัน ที่สำคัญมี test นะเออ

Read More…

จัดการ Spring boot application ด้วย Docker

จากบทความเรื่อง การวางโครงสร้างระบบด้วย Spring boot ก็มีถึงกระบวนการ deploy กันบ้าง ซึ่งเลือกที่จะจัดการผ่าน Docker โดยสิ่งที่คิดไว้จะมี 2 container คือ สำหรับ Database ซึ่งคือ MariaDB สำหรับการ run ระบบด้วย Spring boot ดังนั้นมาลงมือทำกันหน่อย เพื่อทำให้กระบวนการพัฒนาและ deploy มันสะดวกสบายมากขึ้น แน่นอนว่า สนุกสนานกันอย่างแน่นอน

Read More…

สิ่งที่ควรคำนึงสำหรับการสร้าง Docker Image กับ Java

มีโอกาสต้องนำ Docker มาใช้ในระบบงานที่พัฒนาด้วยภาษา Java จากการลงมือทำพบว่า มันไม่ใช่เรื่องง่ายเลย สำหรับการนำระบบงานที่พัฒนาด้วยภาษา Java มาใส่ในโลกของ Container ดังนั้นจึงทำการสรุปสิ่งที่ต้องคำนึงไว้นิดหน่อย น่าจะเป็นประโยชน์สำหรับคนที่กำลังจะเริ่มนะ 1. เริ่มด้วยการเลือก Image ของ JDK (Java Development Kit) ที่มีขนาดเล็ก ๆ จากการทดลองใช้ image จาก OpenJDK 8 พบว่า OpenJDK แบบ default ซึ่งใช้ os คือ Debian 8 Jessie มีขนาด 643.2 MB (สำหรับ JRE มีขนาด 107.9 MB) OpenJDK แบบใช้ os คือ alpine มีขนาด 145 MB (สำหรับ JRE [&hellip

Read More…