java Archive

สวัสดี Java 11

ผ่านมา 6 เดือนที่ Java 10 ถูกปล่อยออกมา ก็ได้เวลาของ Java 11 กันบ้าง (ตามแผนมาก ๆ) ในเรื่องของ feature ต่าง ๆ นั้นก็จัดว่าเยอะอยู่แล้ว เหมือนกับการนำ Java 9 + 10 มานั่นเอง อีกอย่างที่น่าสนใจคือ เรื่องของ Licence และรอบของการ support/release จากทาง Oracle หรือ Long Term Support (LTS) ซึ่งจะมีรอบในการ release ทุก ๆ 6 เดือนนั่นเอง

Read More…

[JUnit 5] มาลองใช้งาน RepeatTest และ DynamicTest

ระหว่างรอรถก็นั่งอ่านเอกสารของ JUnit 5 มีความสามารถใหม่ ๆ เยอะเลย ที่สำคัญน่าจะได้เวลานำมาใช้อย่างจริงจังได้แล้ว จึงลองเล่นสัก 2 features ประกอบไปด้วย RepeatTest DynamicTest ให้ทำงานในรูปแบบ Parameterized มาเขียน code กันดีกว่า

Read More…

Java 10 เป็นมิตรกับ Docker แล้วนะ

สำหรับระบบงานที่ run ใน JVM (Java Virtual Machine) นั้น ไม่ว่าจะเป็น Java Spring, Apache Spark, Apache Kafka และอื่น ๆ มีนำมาอยู่ในโลกของ container แล้วนั้น พบว่าจะมีปัญหาเรื่องการจัดการและใช้งาน memory และ CPU เป็นอย่างมาก ทั้งกิน memory และใช้ CPU เกินขนาดที่กำหนด ทำให้ประสิทธิภาพการทำงานใน container แย่มาก ๆ

Read More…

Java Developer จัดการ version ของภาษา Java กันอย่างไร ?

หลายครั้งที่ไปแบ่งปันเรื่องต่าง ๆ เกี่ยวกับการพัฒนาระบบงานด้วยภาษา Java สิ่งหนึ่งที่ต้องประหลาดใจคือ หลาย ๆ คนไม่ได้กำหนดค่าของ JAVA_HOME สามารถทำการ run ด้วยคำสั่ง java ได้ แต่ไม่สามารถ compile ด้วยคำสั่ง javac ได้ นั่นหมายความว่า ในเครื่องมีแต่ JRE (Java Runtime Environment) แต่ไม่มี JDK (Java Development Kit) หรือบางคนก็มี JDK นะแต่ run ไม่ได้ เนื่องจากทำการกำหนดไว้ใน IDE เท่านั้น แต่ไม่ได้กำหนด JAVA_HOME หรือบางคนก็กำหนดนะ แต่กำหนดไว้ใน PATH ตรง ๆ เลย ไม่มีกำหนดใน JAVA_HOME คำถามที่น่าสนใจคือ ถ้ามี Java หรือ JDK หลาย ๆ version [&hellip

Read More…

ว่าง ๆ มาทำความรู้จักกับ Java 10 กันหน่อย

เห็นมีการพูดถึง Java หรือ JDK 10 กันบ้างพอสมควร (เงียบ ๆ นะ) เนื่องจากตามแผนแล้วจะถูกปล่อยตัวเต็มมาในมีนาคมนี้แล้ว โดยมี feature ต่าง ๆ แยกไปตาม JEPS ดังนี้ 286: Local-Variable Type Inference 296: Consolidate the JDK Forest into a Single Repository 304: Garbage-Collector Interface 307: Parallel Full GC for G1 310: Application Class-Data Sharing 312: Thread-Local Handshakes 313: Remove the Native-Header Generation Tool (javah) 314: Additional [&hellip

Read More…

สิ่งเล็ก ๆ เกี่ยวกับการเขียน code ด้วยภาษา Java

วันนี้ทำการ review code ภาษา Java ได้เห็นรูปแบบการเขียน code แปลก ๆ หลายอย่าง แน่นอนว่า สิ่งเหล่านั้นสามารถเขียนได้หลายแบบ บางรูปแบบมันน่าสนใจมาก ๆ ลองมาดูกันหน่อย

Read More…

สิ่งที่ Java Developer ควรศึกษาไว้ อย่าให้พลาด

ในปัจจุบันเทคโนโลยีต่าง ๆ มันเยอะเหลือเกิน โลกของ Java ก็เช่นเดียวกัน (น่าจะเรียกโลกของ JVM ดีกว่านะ) ดังนั้นมาดูกันหน่อยว่า สำหรับ Java Developer แล้วควรต้องศึกษาอะไรบ้าง ? เพื่อให้ทันโลกในปี 2018 นี้

Read More…

Java :: จัดการกับ Null Pointer Exception (NPE) กันอย่างไร ?

เมื่อวานเห็น code ที่น่าสนใจเกี่ยวกับเรื่อง Null Pointer Exception (NPE) มีทั้งทำให้เกิด หรือ ไม่เกิด แต่ประเด็นเหล่านั้นไม่น่าสนใจเท่ากับว่า วันนี้ Java Developer ทำการจัดการกับ NPE กันอย่างไร

Read More…

สรุปเรื่อง Modernizing Java Apps with Docker จากงาน DockerCon EU 2017

จาก VDO เรื่อง Modernizing Java Apps with Docker จากงาน DockerCon EU 2017 ซึ่งเป็นอีก session หนึ่งที่ตรงกับแนวคิดหลักของงานคือ Modernizing Traditional Application (MTA) โดยที่ Traditional Application คือระบบงานที่พัฒนามาหลายปีแล้ว แต่ยังเป็นหัวใจหลักหรือตัวขับเคลื่อนหลักขององค์กร แน่นอนว่า ทั้ง developer และ operation ต้องทำงานอย่างหนักเพื่อพัฒนาและดูแลรักษาระบบเหล่านี้

Read More…

มาลองใช้งาน JShell ใน Java 9 กันดู

ในภาษาโปรแกรมต่าง ๆ ไม่ว่าจะเป็น Python, Swift, Scala, Clojure ล้วนมีสิ่งที่เรียกว่า REPL (Read Eval Print Loop) สำหรับการ run statement ต่าง ๆ ของ code โดยไม่ต้องทำการสร้างไฟล์ใด ๆ ขึ้นมาเลย เพื่อทดสอบ เพื่อทดลอง เพื่อตรวจสอบ ชุดของ code ที่สำคัญใน Java 9 ก็มีความสามารถนี้เช่นกัน นั่นคือสิ่งเล็ก ๆ ที่เรีกยว่า JShell ดังนั้นมาลองใช้งานกันนิดหน่อย

Read More…