Your SlideShare is downloading. ×
0
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
P ort80 bkk-codeigniter
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

P ort80 bkk-codeigniter

1,527

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,527
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
23
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1.  
  • 2. <?php echo ‘ [pOrt80 BKK]’ ?> Hash tag : #NTT8 This is our NTT8.9 8 for 8 th year & 9 is 9 th month
  • 3. “ แนะนำการพัฒนาระบบ e-Commerce ด้วย CodeIgniter ” สมเกียรติ ปุ๋ยสูงเนิน [Narisa.com: Up1]
  • 4. “ I am JAVA developer”
  • 5. แนะนำอะไรบ้าง <ul><li>CodeIgniter หรือ CI </li></ul><ul><li>รูปแบบและแนวทางในการพัฒนา </li></ul><ul><li>Continuous Integration Tools หรือ CI </li></ul>
  • 6. CodeIgniter ( โค้ด – อิ๊ก – ไนท์ - เตอร์ ) คืออะไร <ul><li>เรียกสั้นๆ ว่า CI </li></ul><ul><li>MVC ( Model-View-Controller ) Framework พัฒนาด้วยภาษา PHP </li></ul><ul><li>OpenSource </li></ul><ul><li>Free </li></ul><ul><li>Simple </li></ul><ul><li>Small </li></ul><ul><li>Fast </li></ul><ul><li>Flexible </li></ul><ul><li>Loose Coupling </li></ul><ul><li>Good Document </li></ul><ul><li>Good Communities </li></ul>
  • 7. โครงสร้างการทำงาน
  • 8. โครงสร้างการทำงาน ใน Version 2.0 ถูกตัดออกไป
  • 9. โครงสร้างการพัฒนาแบบทั่วไป Controller View Model DB Request Response
  • 10. โครงสร้างการพัฒนาแบบปรับปรุง Controller View Model DB Request Response Library
  • 11. Libraries ต่างๆ ที่น่าสนใจของ CodeIgniter <ul><li>OAuth </li></ul><ul><li>REST </li></ul><ul><li>Caching </li></ul><ul><li>Benchmark </li></ul><ul><li>Social </li></ul><ul><ul><li>Twitter </li></ul></ul><ul><ul><li>Facebook </li></ul></ul><ul><li>Testing </li></ul><ul><ul><li>SimpleTest </li></ul></ul><ul><ul><li>phpUnit </li></ul></ul>
  • 12. CodeIgniter + Zend
  • 13. โครงสร้างการพัฒนาแบบยึดหยุ่น <ul><li>นำแนวคิด plug-in, modular มาใช้ </li></ul><ul><ul><li>Separation of Concern </li></ul></ul>
  • 14. รูปแบบการพัฒนา
  • 15. รูปแบบการพัฒนา
  • 16. รูปแบบการพัฒนา C DB V L M
  • 17. แยกการพัฒนาออกเป็น 2 ส่วนหลัก Web APIs HTTP/TCP IP DB
  • 18. นำแนวคิดต่างๆ ข้างต้น มาพัฒนาระบบ e-Commerce
  • 19. โครงสร้างของระบบ e-Commerce
  • 20. โครงสร้างของระบบ e-Commerce
  • 21. แรงบันดาลใจ
  • 22. ทำให้เกิดแนวคิดใหม่ๆ เพื่อเปลี่ยนแปลงและปรับปรุง ระบบ e-Commerce ในไทย STORAGE CORE SYSTEM APIs Plug-In BACKEND FRONTEND
  • 23. Core System และ Backend STORAGE CORE SYSTEM APIs Plug-In BACKEND FRONTEND <ul><li>User Management </li></ul><ul><li>Security Management </li></ul><ul><li>Plug-in/Modular Management </li></ul><ul><li>Interface/ Theme Management </li></ul><ul><li>Product Management </li></ul><ul><li>Order Management </li></ul><ul><li>Shipping Management </li></ul><ul><li>Inventory Management </li></ul><ul><li>Search </li></ul>
  • 24. Front-End STORAGE CORE SYSTEM APIs Plug-In BACKEND FRONTEND
  • 25. APIs STORAGE CORE SYSTEM APIs Plug-In BACKEND FRONTEND <ul><li>User APIs </li></ul><ul><li>Product APIs </li></ul><ul><li>Order APIs </li></ul><ul><li>Shipping APIs </li></ul><ul><li>Invoice APIs </li></ul><ul><li>Inventory APIs </li></ul><ul><li>etc.. </li></ul>
  • 26. Plug-ins STORAGE CORE SYSTEM APIs Plug-In BACKEND FRONTEND <ul><li>Interface/ Theme/ Layout </li></ul><ul><li>Payment Channel </li></ul><ul><li>Shipping Channel </li></ul><ul><li>New Features of Product </li></ul><ul><li>Blog </li></ul><ul><li>Search System </li></ul><ul><li>Facebook Connect </li></ul><ul><li>Twitter Anywhere </li></ul><ul><li>etc .. </li></ul>
  • 27. โดยทั้งหมดนี้พัฒนาอยู่บน CodeIgniter
  • 28. เป้าหมายที่แท้จริง คือ การแจกจ่ายออกไปเพื่อสร้าง Communities ขึ้นมา
  • 29. แต่ … ยังไม่จบครับ
  • 30. ผมมีของฝากนิดหน่อย
  • 31. Continuous Integration Tool in PHP
  • 32. Continuous Integration คืออะไร <ul><li>เรียกสั้นๆ ว่า CI </li></ul><ul><li>เป็นแนวคิด ไม่ใช่เครื่องมือ </li></ul><ul><li>เป้าหมายเพื่อ </li></ul><ul><ul><li>ปรับปรุงกระบวนการพัฒนาระบบงาน ทั้งการ build และ deployment ให้ดียิ่งขึ้น </li></ul></ul><ul><ul><li>เมื่อมีการเปลี่ยนแปลงต่างๆ แล้วไม่ส่งผลกระทบหรือกระทบต่อระบบให้น้อยที่สุด </li></ul></ul>
  • 33. แล้ว Integration อะไรบ้าง <ul><li>Sourcecode </li></ul><ul><li>Database </li></ul><ul><li>Resource ต่างๆ </li></ul>
  • 34. แล้วนำมาใช้งานเมื่อไร <ul><li>เมื่อมีการเปลี่ยนแปลง แล้วส่งผลให้ระบบไม่ทำงาน หรือทำงานผิดพลาด </li></ul><ul><li>เมื่อมีผู้ร่วมพัฒนาจำนวนมาก มีส่วนประกอบต่างๆ จำนวนมาก ซึ่งจะเกิดความซับซ้อนมาก </li></ul>
  • 35. ขั้นตอนการพัฒนาปกติ <ul><li>พัฒนางานในส่วนที่รับผิดชอบ </li></ul><ul><li>ทำการ checkout และ update sourcecode ต่างๆ ผ่าน Control Version System เช่น SubVersion, Git เป็นต้น </li></ul><ul><li>ทำการเขียน code </li></ul><ul><li>ทำการทดสอบงานที่เขียนเสร็จ </li></ul><ul><li>เมื่อทดสอบผ่าน ทำการ commit code </li></ul><ul><li>แต่ไม่มีการทำ Integration Test </li></ul>
  • 36. ขั้นตอนการพัฒนาโดยนำ Continuous Integration มาใช้ <ul><li>การพัฒนาแบบปกติ </li></ul><ul><li>Continuous Integration Server เริ่มทำงานดังนี้ </li></ul><ul><ul><li>ทำการ Checkout หรือ Update sourccode </li></ul></ul><ul><ul><li>ทำการทดสอบระบบ </li></ul></ul><ul><ul><li>ระบบทำการบันทึกผลการทำงาน เป็น suceess หรือ failure </li></ul></ul>
  • 37. ผลของการนำ Continuous Integration มาใช้ Before After
  • 38. แตกต่างจากวิธีปกติอย่างไร <ul><li>เป็นการทดสอบแบบ Integration Test คือทดสอบรวมกับส่วนการทำงานอื่นๆ </li></ul><ul><li>ทำให้เราต้องเขียน Test สำหรับทดสอบ sourcecode ที่พัฒนาขึ้นมาเสมอ </li></ul><ul><li>ทำให้รู้ defect ต่างๆ อย่างรวดเร็ว ซึ่งแตกต่างจากการพัฒนาในรูปแบบเดิมๆ </li></ul>
  • 39. ประโยชน์ที่ได้รับ <ul><li>ลดเวลาสำหรับการ integrate หรือ deploy ระบบงาน </li></ul><ul><li>ลดเวลาการค้นหาและแก้ไข BUGs </li></ul><ul><li>ลดความเสี่ยงของการ failure ของระบบ </li></ul>
  • 40. การทดสอบและเครื่องมือในแต่ละส่วน <ul><li>Unit Test </li></ul><ul><ul><li>SimpleTest, phpUnit </li></ul></ul><ul><li>End-to-End Test </li></ul><ul><ul><li>Selenium </li></ul></ul><ul><li>Database Test </li></ul><ul><li>QA </li></ul><ul><ul><li>Software Matric </li></ul></ul><ul><ul><ul><li>PHPmd, PHPDepend </li></ul></ul></ul><ul><ul><li>Code duplication </li></ul></ul><ul><ul><ul><li>PHPcpd </li></ul></ul></ul><ul><ul><li>Coding standard </li></ul></ul><ul><ul><ul><li>Php_CodeSniffer </li></ul></ul></ul>
  • 41. เครื่องมือที่มีให้ใช้งาน <ul><li>CruiseControl ( phpUnderControl ) </li></ul><ul><li>Xinc </li></ul><ul><li>Hudson </li></ul><ul><li>Bamboo ( Commercial ) </li></ul>
  • 42. เลือกตัวไหนดี <ul><li>เลือกตามความต้องการ </li></ul><ul><li>ทดสอบใช้เครื่องมือต่างๆ </li></ul><ul><li>ประเมินผล </li></ul><ul><li>นำไปใช้งาน </li></ul>
  • 43. การนำมาใช้งานในโลกความเป็นจริงในไทย <ul><li>ยาก แต่ไม่ใช่ว่าเป็นไปไม่ได้ </li></ul><ul><li>ปรับเปลี่ยนทัศนคติในการพัฒนา </li></ul><ul><li>ปรับเปลี่ยนรูปแบบการพัฒนาแบบค่อยเป็นค่อยไป </li></ul>
  • 44. ผมเชื่อว่า สามารถนำมาใช้ได้อย่างแน่นอน
  • 45. คำแนะนำก่อนจบ <ul><li>ทุกๆ คน ควรจะ Update Sourcecode จาก Control Version System ทุกๆ เช้า ก่อนเริ่มทำงาน </li></ul><ul><li>ทุกๆ คน ควรจะ Commit Sourcecode จาก Control Version System ทุกๆ เย็น ก่อนกลับบ้าน </li></ul>
  • 46. วันนี้คุณ Update และ Commit Sourcecode แล้วหรือยัง !!
  • 47. ขอบคุณมากครับ
  • 48. Links <ul><li>http://www.codeigniter.com </li></ul><ul><li>http://www.codeigniter.in.th </li></ul><ul><li>http://www.magentocommerce.com </li></ul><ul><li>http://www.prestashop.com </li></ul><ul><li>http://www.pyrocms.com </li></ul>
  • 49. Q&amp;A <ul><li>ช่วงเวลาของคำถาม ครับ </li></ul>&lt;?php echo ‘ [pOrt80 BKK]’ ?&gt;
  • 50. &nbsp;

×