php-meetup-01

มีโอกาสได้ร่วมงาน Meet up ของกลุ่ม Thailand PHP User Group
ซึ่งเป็นงานครั้งที่ 2 ของกลุ่ม แต่ใช้ชื่อว่า #1 :: construct() เน้นเรื่องของ Testing
โดยในครั้งนี้มีโอกาสได้พูดเพื่อแบ่งปัน รวมทั้งได้รับจากการฟังและพูดคุย
กับคนในกลุ่มซึ่งประกอบไปด้วย

1. ได้พูดเรื่อง Agile Testing

เรื่องนี้อาจจะไม่ค่อยเกี่ยวกับกลุ่ม PHP มากนัก แต่เมื่อ theme ครั้งนี้เป็นเรื่อง testing
ดังนั้น การพูดเรื่อง Agile Testing ก็น่าจะพอไปได้
โดยจะเริ่มพูดตั้งแต่แนวทางพัฒนาในปัจจุบันว่าเป็นอย่างไร
แล้วคำว่า Agile เกิดขึ้นมาอย่างไร รวมไปถึงแนวคิดที่เกิดขึ้นมา
และได้พาผู้ร่วมงานเล่น workshop เล็กน้อย เพื่อให้เห็นการส่งงานแบบ Agile

จากนั้นได้อธิบายถึง  9 แนวคิด และ 6 แนวปฏิบัติ ของ Agile Testing
ซึ่งผมจะอธิบายเพิ่มเติมใน blog ต่อไปครับ เนื่องจากถ้าอธิบายตรงนี้ น่าจะยาวไป

และปิดท้ายด้วยการอธิบายเรื่อง ความเข้าใจผิดในการทำ testing รูปแบบต่างๆ
โดยผมเคยเขียนอธิบายไว้ที่นี่ ทำความเข้าใจ Software Testing ด้วยภาพ :: Pyramid vs Ice-cream cone vs Capcake

ส่วน Slide อยู่ที่นี่ครับ

2. ได้พูดเรื่อง Robot Framework ภายในสามนาที

ในช่วงนี้อาจจะมีเวลาสั้นไปหน่อย แต่ผมก็ทำ slide มาพูดอธิบายเรื่อง Robot framework เล็กน้อย
ตาม slide ครับ ( ผมทำหลังจากที่พูดเรื่อง Agile Testing จบครับ )

3. ได้ฟังเรื่องจากๆ เพิ่มขึ้น รวมทั้งแบ่งปันเรื่องต่างๆ ประกอบไปด้วย

หลังจากพูดไปแล้วก็ได้เวลาฟังเรื่องอื่นๆ ทั้งเรื่องเครื่องมือที่นำมาใช้งานได้ภาษา PHP เช่น

  • IDE และ Text Editor ที่ใช้งานกัน
  • Testing tool ต่างๆ ตั้งแต่ Unit test, Acceptance test, Performance test และ Security test
  • แนวทางการพัฒนาด้วยภาษา PHP ว่าทำอย่างไร มีแนวคิดอย่างไร
  • แนะนำการใช้งานคำสั่งใน PHP ซึ่งปัจจุบันเขาไปไปใช้ PDO สำหรับติดต่อฐานข้อมูลกันแล้วนะ
  • เรื่องคุณภาพของการพัฒนา Software
  • ได้แบ่งปันในคำว่า Enterprise
  • ได้แบ่งปันเรื่องแนวคิดของ Continuous Integration และ Continuous Delivery
  • ได้แบ่งปันเรื่องการใช้งาน Jenkins ซึ่งเป็น Continuous Integration Server
  • ได้แบ่งปันเรื่องการใช้งาน Sonarqube สำหรับวิเคราะห์ source code ทั้งภาษา PHP และ Java
  • ได้พูดคุยเรื่องแนวทางในการทำ unit testing , integration test และ acceptance test ว่าควรไปแนวทางไหนดี
  • ได้กิน pizza 1 ชิ้น ขอบคุณมากๆ สำหรับคนที่เดินเอามาให้ครับ !!!
  • ได้กินเบียร์ ซึ่งแก้วมันเล็กไปนะครับ !!!
  • และเรื่องอื่นๆ อีกมากมาย ขอบคุณมากๆ ครับ

4. ได้พูดปิดท้ายในเรื่อง Open/Close Principle (OCP)

เห็นว่าทั้งสองครั้งของ PHP Meetup มีคนพูดและถามถึงแนวคิด SOLID
ดังนั้นในครั้งนี้ ผมจึงพูดคุยกับผู้จัดงานว่า ถ้าผมจะพูดเรื่อง OCP สักหน่อย จะได้ไหม ?
คำตอบคือ ได้เลย …

ดังนั้น ผมจึงไม่รอช้า นำเรื่อง OCP ซึ่งผมเคยไปพูดเรื่องนี้ในงาน Agile Thailand มาก่อนแล้ว 
โดยแนวคิดของ OCP นี้ไม่ใช่เป็นแนวคิดสำหรับคนเก่งอะไร
แต่มันคือแนวคิด ที่เรารู้หรือไม่รู้ เท่านั้น

มาครั้งนี้ลองมาใช้ในกลุ่ม PHP เริ่มตั้งแต่ให้แต่ละกลุ่มสร้าง Legacy code ขึ้นมา
แล้วลองสอบถามว่า สิ่งที่คุณทำมานั้น มันดีไหม ?
ได้คำตอบมาก็คือ ไม่ดีนะ
… แต่เราก็เขียนกันมา อันนี้ก็ไม่รู้สินะ …

ต่อจากนั้น ถามว่า จำนวน if-else ที่พบเจอมามากที่สุดจำนวนเท่าไร ?
ได้จำนวนสูงสุดคือ 1,000  ถึงกับอึ้งกันไป

กลับมาที่แนวคิดของ OCP กันก่อน ซึ่งผมอธิบายด้วยคำสั้นๆ ง่ายๆ คือ
เปิด สำหรับส่วนขยาย
ปิด สำหรับการแก้ไข

เพียงเท่านี้แหละครับ แล้วลงมือทำกันเลย ถ้าใครอยากรู้ว่า OCP เป็นอย่างไร
แนะนำให้ลองคิดก่อน แล้วลองทำ
ต่อจากนั้น ให้ไปดูที่ Slide ของผมครับ

สุดท้าย

ขอขอบคุณผู้จัดงานทั้งหมด รวมทั้งผู้เข้ามาร่วมครับ
และในครั้งหน้า หวังว่าจะได้เจอกัน รวมทั้งทุกๆ คนจะได้มาแบ่งปันความรู้กันอีกครับ