P ort80 bkk-codeigniter
Upcoming SlideShare
Loading in...5
×
 

P ort80 bkk-codeigniter

on

  • 1,794 views

 

Statistics

Views

Total Views
1,794
Views on SlideShare
1,642
Embed Views
152

Actions

Likes
1
Downloads
20
Comments
0

1 Embed 152

http://www.108blog.net 152

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

P ort80 bkk-codeigniter P ort80 bkk-codeigniter Presentation Transcript

  •  
  • <?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”
  • แนะนำอะไรบ้าง
    • CodeIgniter หรือ CI
    • รูปแบบและแนวทางในการพัฒนา
    • Continuous Integration Tools หรือ CI
  • CodeIgniter ( โค้ด – อิ๊ก – ไนท์ - เตอร์ ) คืออะไร
    • เรียกสั้นๆ ว่า CI
    • MVC ( Model-View-Controller ) Framework พัฒนาด้วยภาษา PHP
    • OpenSource
    • Free
    • Simple
    • Small
    • Fast
    • Flexible
    • Loose Coupling
    • Good Document
    • Good Communities
  • โครงสร้างการทำงาน
  • โครงสร้างการทำงาน ใน Version 2.0 ถูกตัดออกไป
  • โครงสร้างการพัฒนาแบบทั่วไป Controller View Model DB Request Response
  • โครงสร้างการพัฒนาแบบปรับปรุง Controller View Model DB Request Response Library
  • Libraries ต่างๆ ที่น่าสนใจของ CodeIgniter
    • OAuth
    • REST
    • Caching
    • Benchmark
    • Social
      • Twitter
      • Facebook
    • Testing
      • SimpleTest
      • phpUnit
  • CodeIgniter + Zend
  • โครงสร้างการพัฒนาแบบยึดหยุ่น
    • นำแนวคิด plug-in, modular มาใช้
      • Separation of Concern
  • รูปแบบการพัฒนา
  • รูปแบบการพัฒนา
  • รูปแบบการพัฒนา 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
    • User Management
    • Security Management
    • Plug-in/Modular Management
    • Interface/ Theme Management
    • Product Management
    • Order Management
    • Shipping Management
    • Inventory Management
    • Search
  • Front-End STORAGE CORE SYSTEM APIs Plug-In BACKEND FRONTEND
  • APIs STORAGE CORE SYSTEM APIs Plug-In BACKEND FRONTEND
    • User APIs
    • Product APIs
    • Order APIs
    • Shipping APIs
    • Invoice APIs
    • Inventory APIs
    • etc..
  • Plug-ins STORAGE CORE SYSTEM APIs Plug-In BACKEND FRONTEND
    • Interface/ Theme/ Layout
    • Payment Channel
    • Shipping Channel
    • New Features of Product
    • Blog
    • Search System
    • Facebook Connect
    • Twitter Anywhere
    • etc ..
  • โดยทั้งหมดนี้พัฒนาอยู่บน CodeIgniter
  • เป้าหมายที่แท้จริง คือ การแจกจ่ายออกไปเพื่อสร้าง Communities ขึ้นมา
  • แต่ … ยังไม่จบครับ
  • ผมมีของฝากนิดหน่อย
  • Continuous Integration Tool in PHP
  • Continuous Integration คืออะไร
    • เรียกสั้นๆ ว่า CI
    • เป็นแนวคิด ไม่ใช่เครื่องมือ
    • เป้าหมายเพื่อ
      • ปรับปรุงกระบวนการพัฒนาระบบงาน ทั้งการ build และ deployment ให้ดียิ่งขึ้น
      • เมื่อมีการเปลี่ยนแปลงต่างๆ แล้วไม่ส่งผลกระทบหรือกระทบต่อระบบให้น้อยที่สุด
  • แล้ว Integration อะไรบ้าง
    • Sourcecode
    • Database
    • Resource ต่างๆ
  • แล้วนำมาใช้งานเมื่อไร
    • เมื่อมีการเปลี่ยนแปลง แล้วส่งผลให้ระบบไม่ทำงาน หรือทำงานผิดพลาด
    • เมื่อมีผู้ร่วมพัฒนาจำนวนมาก มีส่วนประกอบต่างๆ จำนวนมาก ซึ่งจะเกิดความซับซ้อนมาก
  • ขั้นตอนการพัฒนาปกติ
    • พัฒนางานในส่วนที่รับผิดชอบ
    • ทำการ checkout และ update sourcecode ต่างๆ ผ่าน Control Version System เช่น SubVersion, Git เป็นต้น
    • ทำการเขียน code
    • ทำการทดสอบงานที่เขียนเสร็จ
    • เมื่อทดสอบผ่าน ทำการ commit code
    • แต่ไม่มีการทำ Integration Test
  • ขั้นตอนการพัฒนาโดยนำ Continuous Integration มาใช้
    • การพัฒนาแบบปกติ
    • Continuous Integration Server เริ่มทำงานดังนี้
      • ทำการ Checkout หรือ Update sourccode
      • ทำการทดสอบระบบ
      • ระบบทำการบันทึกผลการทำงาน เป็น suceess หรือ failure
  • ผลของการนำ Continuous Integration มาใช้ Before After
  • แตกต่างจากวิธีปกติอย่างไร
    • เป็นการทดสอบแบบ Integration Test คือทดสอบรวมกับส่วนการทำงานอื่นๆ
    • ทำให้เราต้องเขียน Test สำหรับทดสอบ sourcecode ที่พัฒนาขึ้นมาเสมอ
    • ทำให้รู้ defect ต่างๆ อย่างรวดเร็ว ซึ่งแตกต่างจากการพัฒนาในรูปแบบเดิมๆ
  • ประโยชน์ที่ได้รับ
    • ลดเวลาสำหรับการ integrate หรือ deploy ระบบงาน
    • ลดเวลาการค้นหาและแก้ไข BUGs
    • ลดความเสี่ยงของการ failure ของระบบ
  • การทดสอบและเครื่องมือในแต่ละส่วน
    • Unit Test
      • SimpleTest, phpUnit
    • End-to-End Test
      • Selenium
    • Database Test
    • QA
      • Software Matric
        • PHPmd, PHPDepend
      • Code duplication
        • PHPcpd
      • Coding standard
        • Php_CodeSniffer
  • เครื่องมือที่มีให้ใช้งาน
    • CruiseControl ( phpUnderControl )
    • Xinc
    • Hudson
    • Bamboo ( Commercial )
  • เลือกตัวไหนดี
    • เลือกตามความต้องการ
    • ทดสอบใช้เครื่องมือต่างๆ
    • ประเมินผล
    • นำไปใช้งาน
  • การนำมาใช้งานในโลกความเป็นจริงในไทย
    • ยาก แต่ไม่ใช่ว่าเป็นไปไม่ได้
    • ปรับเปลี่ยนทัศนคติในการพัฒนา
    • ปรับเปลี่ยนรูปแบบการพัฒนาแบบค่อยเป็นค่อยไป
  • ผมเชื่อว่า สามารถนำมาใช้ได้อย่างแน่นอน
  • คำแนะนำก่อนจบ
    • ทุกๆ คน ควรจะ Update Sourcecode จาก Control Version System ทุกๆ เช้า ก่อนเริ่มทำงาน
    • ทุกๆ คน ควรจะ Commit Sourcecode จาก Control Version System ทุกๆ เย็น ก่อนกลับบ้าน
  • วันนี้คุณ Update และ Commit Sourcecode แล้วหรือยัง !!
  • ขอบคุณมากครับ
  • Links
    • http://www.codeigniter.com
    • http://www.codeigniter.in.th
    • http://www.magentocommerce.com
    • http://www.prestashop.com
    • http://www.pyrocms.com
  • Q&A
    • ช่วงเวลาของคำถาม ครับ
    <?php echo ‘ [pOrt80 BKK]’ ?>
  •