<?php echo ‘ [pOrt80 BKK]’  ?> Hash tag : #NTT8 This is our NTT8.9  8 for 8 th  year & 9 is 9 th  month
“ แนะนำการพัฒนาระบบ   e-Commerce  ด้วย CodeIgniter ” สมเกียรติ ปุ๋ยสูงเนิน  [Narisa.com: Up1]
“ I am JAVA developer”
แนะนำอะไรบ้าง <ul><li>CodeIgniter  หรือ  CI </li></ul><ul><li>รูปแบบและแนวทางในการพัฒนา </li></ul><ul><li>Continuous Integ...
CodeIgniter (  โค้ด  –  อิ๊ก  –  ไนท์  -  เตอร์ )  คืออะไร  <ul><li>เรียกสั้นๆ ว่า  CI </li></ul><ul><li>MVC ( Model-View-...
โครงสร้างการทำงาน
โครงสร้างการทำงาน ใน  Version 2.0   ถูกตัดออกไป
โครงสร้างการพัฒนาแบบทั่วไป  Controller View Model DB Request Response
โครงสร้างการพัฒนาแบบปรับปรุง  Controller View Model DB Request Response Library
Libraries  ต่างๆ ที่น่าสนใจของ  CodeIgniter   <ul><li>OAuth </li></ul><ul><li>REST </li></ul><ul><li>Caching </li></ul><ul...
CodeIgniter + Zend
โครงสร้างการพัฒนาแบบยึดหยุ่น  <ul><li>นำแนวคิด  plug-in, modular  มาใช้ </li></ul><ul><ul><li>Separation of Concern </li><...
รูปแบบการพัฒนา
รูปแบบการพัฒนา
รูปแบบการพัฒนา  C DB V L M
แยกการพัฒนาออกเป็น  2  ส่วนหลัก Web APIs HTTP/TCP IP DB
นำแนวคิดต่างๆ ข้างต้น มาพัฒนาระบบ  e-Commerce
โครงสร้างของระบบ  e-Commerce
โครงสร้างของระบบ  e-Commerce
แรงบันดาลใจ
ทำให้เกิดแนวคิดใหม่ๆ เพื่อเปลี่ยนแปลงและปรับปรุง ระบบ  e-Commerce  ในไทย  STORAGE CORE SYSTEM APIs Plug-In BACKEND FRONTEND
Core   System   และ  Backend   STORAGE CORE SYSTEM APIs Plug-In BACKEND FRONTEND <ul><li>User Management </li></ul><ul><li...
Front-End   STORAGE CORE SYSTEM APIs Plug-In BACKEND FRONTEND
APIs   STORAGE CORE SYSTEM APIs Plug-In BACKEND FRONTEND <ul><li>User APIs </li></ul><ul><li>Product APIs </li></ul><ul><l...
Plug-ins   STORAGE CORE SYSTEM APIs Plug-In BACKEND FRONTEND <ul><li>Interface/ Theme/ Layout </li></ul><ul><li>Payment Ch...
โดยทั้งหมดนี้พัฒนาอยู่บน  CodeIgniter
เป้าหมายที่แท้จริง คือ การแจกจ่ายออกไปเพื่อสร้าง  Communities  ขึ้นมา
แต่  …  ยังไม่จบครับ
ผมมีของฝากนิดหน่อย
Continuous Integration Tool in PHP
Continuous Integration  คืออะไร  <ul><li>เรียกสั้นๆ ว่า  CI </li></ul><ul><li>เป็นแนวคิด ไม่ใช่เครื่องมือ </li></ul><ul><l...
แล้ว  Integration  อะไรบ้าง  <ul><li>Sourcecode </li></ul><ul><li>Database </li></ul><ul><li>Resource  ต่างๆ  </li></ul>
แล้วนำมาใช้งานเมื่อไร  <ul><li>เมื่อมีการเปลี่ยนแปลง แล้วส่งผลให้ระบบไม่ทำงาน หรือทำงานผิดพลาด </li></ul><ul><li>เมื่อมีผู...
ขั้นตอนการพัฒนาปกติ  <ul><li>พัฒนางานในส่วนที่รับผิดชอบ </li></ul><ul><li>ทำการ  checkout  และ  update sourcecode  ต่างๆ ผ...
ขั้นตอนการพัฒนาโดยนำ  Continuous Integration  มาใช้  <ul><li>การพัฒนาแบบปกติ </li></ul><ul><li>Continuous Integration Serv...
ผลของการนำ  Continuous Integration  มาใช้  Before After
แตกต่างจากวิธีปกติอย่างไร  <ul><li>เป็นการทดสอบแบบ  Integration Test  คือทดสอบรวมกับส่วนการทำงานอื่นๆ </li></ul><ul><li>ทำ...
ประโยชน์ที่ได้รับ  <ul><li>ลดเวลาสำหรับการ  integrate  หรือ   deploy  ระบบงาน </li></ul><ul><li>ลดเวลาการค้นหาและแก้ไข  BU...
การทดสอบและเครื่องมือในแต่ละส่วน  <ul><li>Unit Test  </li></ul><ul><ul><li>SimpleTest, phpUnit </li></ul></ul><ul><li>End-...
เครื่องมือที่มีให้ใช้งาน  <ul><li>CruiseControl ( phpUnderControl ) </li></ul><ul><li>Xinc </li></ul><ul><li>Hudson </li><...
เลือกตัวไหนดี  <ul><li>เลือกตามความต้องการ </li></ul><ul><li>ทดสอบใช้เครื่องมือต่างๆ </li></ul><ul><li>ประเมินผล </li></ul...
การนำมาใช้งานในโลกความเป็นจริงในไทย  <ul><li>ยาก แต่ไม่ใช่ว่าเป็นไปไม่ได้ </li></ul><ul><li>ปรับเปลี่ยนทัศนคติในการพัฒนา <...
ผมเชื่อว่า สามารถนำมาใช้ได้อย่างแน่นอน
คำแนะนำก่อนจบ  <ul><li>ทุกๆ คน ควรจะ  Update Sourcecode  จาก  Control Version System  ทุกๆ เช้า ก่อนเริ่มทำงาน </li></ul><...
วันนี้คุณ Update  และ  Commit Sourcecode   แล้วหรือยัง  !!
ขอบคุณมากครับ
Links <ul><li>http://www.codeigniter.com </li></ul><ul><li>http://www.codeigniter.in.th </li></ul><ul><li>http://www.magen...
Q&A <ul><li>ช่วงเวลาของคำถาม ครับ  </li></ul><?php echo ‘ [pOrt80 BKK]’  ?>
 
Upcoming SlideShare
Loading in...5
×

P ort80 bkk-codeigniter

1,542

Published on

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

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

No notes for slide

P ort80 bkk-codeigniter

  1. 2. <?php echo ‘ [pOrt80 BKK]’ ?> Hash tag : #NTT8 This is our NTT8.9 8 for 8 th year & 9 is 9 th month
  2. 3. “ แนะนำการพัฒนาระบบ e-Commerce ด้วย CodeIgniter ” สมเกียรติ ปุ๋ยสูงเนิน [Narisa.com: Up1]
  3. 4. “ I am JAVA developer”
  4. 5. แนะนำอะไรบ้าง <ul><li>CodeIgniter หรือ CI </li></ul><ul><li>รูปแบบและแนวทางในการพัฒนา </li></ul><ul><li>Continuous Integration Tools หรือ CI </li></ul>
  5. 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>
  6. 7. โครงสร้างการทำงาน
  7. 8. โครงสร้างการทำงาน ใน Version 2.0 ถูกตัดออกไป
  8. 9. โครงสร้างการพัฒนาแบบทั่วไป Controller View Model DB Request Response
  9. 10. โครงสร้างการพัฒนาแบบปรับปรุง Controller View Model DB Request Response Library
  10. 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>
  11. 12. CodeIgniter + Zend
  12. 13. โครงสร้างการพัฒนาแบบยึดหยุ่น <ul><li>นำแนวคิด plug-in, modular มาใช้ </li></ul><ul><ul><li>Separation of Concern </li></ul></ul>
  13. 14. รูปแบบการพัฒนา
  14. 15. รูปแบบการพัฒนา
  15. 16. รูปแบบการพัฒนา C DB V L M
  16. 17. แยกการพัฒนาออกเป็น 2 ส่วนหลัก Web APIs HTTP/TCP IP DB
  17. 18. นำแนวคิดต่างๆ ข้างต้น มาพัฒนาระบบ e-Commerce
  18. 19. โครงสร้างของระบบ e-Commerce
  19. 20. โครงสร้างของระบบ e-Commerce
  20. 21. แรงบันดาลใจ
  21. 22. ทำให้เกิดแนวคิดใหม่ๆ เพื่อเปลี่ยนแปลงและปรับปรุง ระบบ e-Commerce ในไทย STORAGE CORE SYSTEM APIs Plug-In BACKEND FRONTEND
  22. 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>
  23. 24. Front-End STORAGE CORE SYSTEM APIs Plug-In BACKEND FRONTEND
  24. 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>
  25. 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>
  26. 27. โดยทั้งหมดนี้พัฒนาอยู่บน CodeIgniter
  27. 28. เป้าหมายที่แท้จริง คือ การแจกจ่ายออกไปเพื่อสร้าง Communities ขึ้นมา
  28. 29. แต่ … ยังไม่จบครับ
  29. 30. ผมมีของฝากนิดหน่อย
  30. 31. Continuous Integration Tool in PHP
  31. 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>
  32. 33. แล้ว Integration อะไรบ้าง <ul><li>Sourcecode </li></ul><ul><li>Database </li></ul><ul><li>Resource ต่างๆ </li></ul>
  33. 34. แล้วนำมาใช้งานเมื่อไร <ul><li>เมื่อมีการเปลี่ยนแปลง แล้วส่งผลให้ระบบไม่ทำงาน หรือทำงานผิดพลาด </li></ul><ul><li>เมื่อมีผู้ร่วมพัฒนาจำนวนมาก มีส่วนประกอบต่างๆ จำนวนมาก ซึ่งจะเกิดความซับซ้อนมาก </li></ul>
  34. 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>
  35. 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>
  36. 37. ผลของการนำ Continuous Integration มาใช้ Before After
  37. 38. แตกต่างจากวิธีปกติอย่างไร <ul><li>เป็นการทดสอบแบบ Integration Test คือทดสอบรวมกับส่วนการทำงานอื่นๆ </li></ul><ul><li>ทำให้เราต้องเขียน Test สำหรับทดสอบ sourcecode ที่พัฒนาขึ้นมาเสมอ </li></ul><ul><li>ทำให้รู้ defect ต่างๆ อย่างรวดเร็ว ซึ่งแตกต่างจากการพัฒนาในรูปแบบเดิมๆ </li></ul>
  38. 39. ประโยชน์ที่ได้รับ <ul><li>ลดเวลาสำหรับการ integrate หรือ deploy ระบบงาน </li></ul><ul><li>ลดเวลาการค้นหาและแก้ไข BUGs </li></ul><ul><li>ลดความเสี่ยงของการ failure ของระบบ </li></ul>
  39. 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>
  40. 41. เครื่องมือที่มีให้ใช้งาน <ul><li>CruiseControl ( phpUnderControl ) </li></ul><ul><li>Xinc </li></ul><ul><li>Hudson </li></ul><ul><li>Bamboo ( Commercial ) </li></ul>
  41. 42. เลือกตัวไหนดี <ul><li>เลือกตามความต้องการ </li></ul><ul><li>ทดสอบใช้เครื่องมือต่างๆ </li></ul><ul><li>ประเมินผล </li></ul><ul><li>นำไปใช้งาน </li></ul>
  42. 43. การนำมาใช้งานในโลกความเป็นจริงในไทย <ul><li>ยาก แต่ไม่ใช่ว่าเป็นไปไม่ได้ </li></ul><ul><li>ปรับเปลี่ยนทัศนคติในการพัฒนา </li></ul><ul><li>ปรับเปลี่ยนรูปแบบการพัฒนาแบบค่อยเป็นค่อยไป </li></ul>
  43. 44. ผมเชื่อว่า สามารถนำมาใช้ได้อย่างแน่นอน
  44. 45. คำแนะนำก่อนจบ <ul><li>ทุกๆ คน ควรจะ Update Sourcecode จาก Control Version System ทุกๆ เช้า ก่อนเริ่มทำงาน </li></ul><ul><li>ทุกๆ คน ควรจะ Commit Sourcecode จาก Control Version System ทุกๆ เย็น ก่อนกลับบ้าน </li></ul>
  45. 46. วันนี้คุณ Update และ Commit Sourcecode แล้วหรือยัง !!
  46. 47. ขอบคุณมากครับ
  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>
  48. 49. Q&A <ul><li>ช่วงเวลาของคำถาม ครับ </li></ul><?php echo ‘ [pOrt80 BKK]’ ?>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×