Java 8 – Lambda Expression

Lambda Expression คือการสร้าง Anonymous Object ด้วย syntax ที่สั้นลง (anonymous object คือการ new interface แล้ว implement โค้ดกันสดๆ ตอนนั้นเลย) เช่นในตอนที่แล้วผมทำการลูป forEach แล้วลดรูปลง

สำหรับคนที่ต้องการใช้งาน lambda expression ไม่ใช่ว่าอยู่ๆ ก็จะสามารถใช้ได้เลยนะครับ โดยเขายึดหลักอยู่สามข้อดังนี้

  1. Logic ต้องง่าย หากมีความซับซ้อนก็ให้ไป new Class แล้วทำการ implement ตามปกติ
  2. Interface นั้นจะต้องอยู่ในรูปแบบที่เรียกว่า functional interface
  3. method นั้นจะต้องไม่มี side effect (pure functional) คือไม่ควรมีการไปแก้ไขค่าตัวแปรที่อยู่ข้างนอก scope ของ method

Continue reading “Java 8 – Lambda Expression”

Advertisements

forEach ใน Java 8

ผมเชื่อว่าหลายคนเคยเขียน loop เพื่อดึงค่าข้อมูลใน List มาใช้งานโดยใช้คำสั่ง for หน้าตาประมาณนี้

for (Integer value : values) {
	System.out.println(value);
}

เราเรียก loop ที่ได้ค่ามาโดยที่เราไม่ต้องระบุ index แบบนี้ว่า for-each ใน Java 8 ได้มีการเตรียมการ for-each ให้แล้ว เพียงแค่เรียกเมธอดเดียวก็สามารถใช้งานได้เลย ข้อแม้คือคลาสนั้นต้องมีการ implements Iterable ถึงจะใช้ได้
Continue reading “forEach ใน Java 8”

Spring boot ตอนที่ 3 – กรณีศึกษา MyFacebook web (4)

spring-boot-logo
บทสุดท้ายของกรณีศึกษาแล้วครับ เนื่องจากจะยาวเกินไป และเนื้อหาก็เป็นการใช้ spring mvc, security, jpa ซึ่งเป็นเรื่องที่นอกเหนือจาก spring boot ในบทนี้จะทำในเรื่อง Add friend และ comment post ของเพื่อนที่เราได้ Add ไปแล้ว โดยผมไม่ได้ทำเหมือน facebook ที่ต้องกด approve เพื่อเป็นการประหยัดเวลาครับ คือ add แล้วก็มีเพื่อนได้เลย

Continue reading “Spring boot ตอนที่ 3 – กรณีศึกษา MyFacebook web (4)”

Spring boot ตอนที่ 3 – กรณีศึกษา MyFacebook web (3)

spring-boot-logo
ถ้าหากรอดจาก Spring security ในตอนที่แล้วมาได้ถัดจากนี้ก็สบายแล้วครับ บทนี้จะเป็นเรื่องเบาๆ ด้วยการการทำโพสต์และคอมเม้นต์โดยใช้ Spring data JPA

Continue reading “Spring boot ตอนที่ 3 – กรณีศึกษา MyFacebook web (3)”

Spring boot ตอนที่ 3 – กรณีศึกษา MyFacebook web (2)

spring-boot-logo

มาถึงส่วนที่ยากที่สุดของการใช้ spring framework แล้วครับ นั่นคือใช้ spring security ทำ register และ login ถ้าใครผ่านจุดนี้ได้ถือว่าอยู่ร่วมกับ spring framework ได้อย่างไม่มีปัญหาแล้วครับ เรียกได้ว่าถ้าไม่ชอบก็คือเกลียด spring ไปเลย ถ้าท่านใหนผ่านบทนี้ได้ผมขอแสดงความยินดีด้วยครับล่วงหน้าครับ ในบทนี้ใช้เครื่องมือดังนี้

  • Spring Data JPA ในส่วนของการเชื่อมต่อกับฐานข้อมูล
  • Spring security เพื่อตรวจสอบ login

Continue reading “Spring boot ตอนที่ 3 – กรณีศึกษา MyFacebook web (2)”

Spring boot ตอนที่ 3 – กรณีศึกษา MyFacebook web (1)

spring-boot-logo

เพื่อให้เห็นภาพการพัฒนาเว็บ ผมจึงตั้งโจทย์ว่าผมจะทำเว็บคล้ายๆ กับ facebook ในแบบของตัวเอง เอาแค่สามอย่างพอ

  1. ลงทะเบียน (Register)
  2. โพสต์/คอมเม้นต์ (Post/Comment)
  3. ส่งคำขอและยกเลิกเป็นเพื่อน (Add friend/Unfriend)

ในบทนี้จะเป็นการหัดใช้

  • Spring security เพื่อตรวจสอบสิทธิการใช้งานเว็บ
  • Bootstrap สำหรับจัดการ layout หน้าเว็บ

Continue reading “Spring boot ตอนที่ 3 – กรณีศึกษา MyFacebook web (1)”

Spring boot ตอนที่ 2 – Hello world

spring-boot-logo

เพื่อให้คุ้นชินกับเครื่องมือ Hello world จึงเป็นโปรแกรมที่แรกที่ควรทำได้ และในบทนี้จะพาทำ Test เบื้องต้นซึ่งเป็นสิ่งที่สำคัญแต่โปรแกรมเมอร์ไม่ค่อยทำกัน ขอพูดไว้ตรงนี้เลยว่า “ทำ tests เถอะครับ จะได้ไม่เป็นภาระของลูกหลาน” ซึ่งถ้าทำจนเป็นนิสัยมันจะช่วยเพิ่มคุณค่าให้ตัวคุณเองเป็นโปรแกรมเมอร์ที่มีคุณภาพด้วย (เนื่องจากในบทนี้มีแค่แสดงข้อความ Hello อาจจะทำให้ไม่เห็นภาพว่าการทำ Test แบบ Integration Test กับ Unit Test ต่างกันอย่างไร ซึ่งผมจะอธิบายในบทถัดๆ ไป เมื่อเริ่มมี Logic มากขึ้น)

Continue reading “Spring boot ตอนที่ 2 – Hello world”