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

spring-boot-logo

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

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

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

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

updated
รวมลิงก์ของทุกตอนครับ

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 มากขึ้น)

updated
รวมลิงก์ของทุกตอนครับ

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

Spring boot ตอนที่ 1 – Setup Environment

spring-boot-logo

เนื่องจากช่วงนี้ต้องสอน spring boot บ่อย ก็เลยเอามาเขียนบล็อกเก็บไว้ดีกว่า หากจะถามว่าอะไรคือ spring boot เอาความหมายแบบง่ายๆ คือการเขียนเว็บด้วย spring framework ในรูปแบบที่ไม่ต้องวุ่นวายกับการ config ค่าต่างๆ เอาแค่นี้ไปก่อนครับ ต่อเครื่องมือที่ผมใช้มีดังนี้

การพัฒนาผมอ้างอิงบน Windows นะครับ

updated
รวมลิงก์ของทุกตอนครับ

Continue reading “Spring boot ตอนที่ 1 – Setup Environment”

Single-Page Application (SPA)

เรียกว่าเป็น Trend การพัฒนาเว็บที่มาแรงที่สุดของปี 2016 เลยก็ว่าได้ และคิดว่าปีหน้าก็คงเป็นปีที่คนทำเว็บต้องหันมาศึกษากันคึกคักแน่นอน นั่นคือ Single-Page Application ต่อไปนี้ผมเรียกย่อๆ ว่า SPA (คนละสปาที่ไปนวดตัวนะครับ อันนั้นตัวหอมเลยทีเดียว)

Continue reading “Single-Page Application (SPA)”

ทำไม developer ไทยเก่งๆ ถึงไม่ค่อยเป็นที่รู้จัก

คำถามจากบล็อกพี่สมเกียรติ ทั้งในเฟสและในบล็อกก็มีคำตอบจากหลายคน รวมถึงคุณหนูเนยก็เขียบล็อกตอบ จากที่ผมอ่านความคิดเห็นของหลายๆ ท่านสรุปได้ว่าเป็นการบอกวิธีจะทำให้เก่งขึ้นซึ่งมันไม่ได้ตอบคำถามที่ว่าคนเก่งแต่ทำไมไม่เป็นที่รู้จัก ถ้าเทพจริงลองไปอ่านในเว็บ blognone ตอนสัมภาษณ์คนไทยในซิลิคอนวัลเลย์ดูก็ได้ครับ มีบอกไว้เหมือนกันพวกเขาเหล่านั้นไปถึงจุดนั้นได้อย่างไร หรืออย่างตอนสัมภาษณ์คุณประเสริฐ ประเสริฐวิทยาการ เกมดีไซเนอร์คนไทยในทีม Final Fantasy XV ซึ่งคนนี้ผมก็ชอบเพราะเขาดูแลเกมส์ที่ผมชอบ ดังนั้นถ้าจะตอบคำถามนี้ ต้องมาดูกันว่าบุคคลเหล่านี้ทำไมถึงไม่ค่อยเป็นที่รู้จักมากกว่า

Continue reading “ทำไม developer ไทยเก่งๆ ถึงไม่ค่อยเป็นที่รู้จัก”

Microsoft เปิด source code ของ JDBC แล้ว

Microsoft ได้เปิด source code ของ JDBC สำหรับ SQL Server แล้วบน Github ซึ่ง Jar สามารถดาวโหลดได้จาก maven ได้อย่างเป็นทางการโดยไม่ต้องมาเพิ่ม lib ใน maven เหมือนเมื่อก่อนแล้ว และยังสามารถดาวโหลดจากหน้าเว็บของ Microsoft ตามปกติได้เช่นกัน

อ้างอิง: https://github.com/Microsoft/mssql-jdbc

Over-engineering

ก่อนจะเข้าเรื่อง over-engineering ในเชิงของการเขียนโปรแกรม ขออธิบายคำนี้ก่อน ถ้าเปรียบเทียบคำนี้กับสำนวนไทยน่าจะเป็น “ขี่ช้างจับตั๊กแตน” คือเป็นการทำงานที่มากเกินความจำเป็นเพื่อให้ได้ผลลัพธ์นั้นๆ ลองนึกภาพว่าไปซื้อรถสปอร์ตอย่างเช่นแลมโบกินีเพื่อมาขนข้าวไปโรงสี ซึ่งก็สามารถขนได้เหมือนกันเพียงแค่บรรทุกได้น้อยและค่าบำรุงดูแลรักษาแพงใหนจะค่าน้ำมันอีก ด้วยความคิดนี้หากผมพบเจอคนที่ไม่ได้ใช้รถบรรทุกมาขนของผมจะมองว่าเป็นการกระทำที่ over-engineering เนื่องจากผมมองว่าสิ่งที่ได้ไม่คุ้มกับสิ่งที่เสียไป

ปัญหาคือจะรู้ได้อย่างไรว่าเรากำลังขี่ช้างจับตั๊กแตน? แล้วจะรู้ได้อย่างไรว่าแค่ใหนพอดี? ซึ่งถ้าเรามองไปยังอีกฝั่งเขาอาจจะบอกว่า “ก็มีรถคันนี้อยู่แล้ว และเป็นการขนของชั่วคราว ถ้าเขาต้องไปซื้อรถใหม่มันก็สิ้นเปลืองกว่า อย่างเช่นย้ายหอพัก เราก็ไม่ได้ย้ายกันทุกเดือน” ดังนั้นด้วยสภาพแวดล้อมที่เขาอยู่เขาเลยคิดว่าสิ่งนั้นคือสิ่งที่เหมาะสมที่สุดแล้ว เรื่องนี้ไม่มีอะไรถูกผิดครับ จะมีก็เพียงแต่เราเอาความคิดของเราไปใช้วัดคนอื่นแค่นั้นเอง

Continue reading “Over-engineering”