OSCOOL's Architecture

  • Home
  • Videos

The secret of OSCOOL.COM

Subscribe RSS

Profile

Architecture
  • Albums of Architecture
  • Blogs of Architecture
  • Videos of Architecture

Following

hide
Masato audy DevLism~ Webmaster

Categories

hide
  • General
  • Performance

Recent Posts

hide
  • ปรับ Performance ทุกวิถีทางที่พอจะทำได้ เรื่องที่ 2 ออกแบบ Storage
  • ปรับ Performance ทุกวิถีทางที่พอจะทำได้ เรื่องที่ 1 ทำยังไงดีกับ MySQL นะ
  • เลือก Tools ที่จะทำการใช้งาน ในเบื้องต้น
  • เริ่มต้นลำดับความคิด จะเอายังไงดี ??

Recent Videos

hide
  • Zend Framework 1.9 tutorial 10 modular application part 6 When your site has multiple functionality, like user services and administratio…
  • Zend Framework 1.9 tutorial 10 modular application part 5 When your site has multiple functionality, like user services and administratio…
  • Zend Framework 1.9 tutorial 10 modular application part 4 When your site has multiple functionality, like user services and administratio…
  • Zend Framework 1.9 tutorial 10 modular application part 3 When your site has multiple functionality, like user services and administratio…
  • Zend Framework 1.9 tutorial 10 modular application part 2 When your site has multiple functionality, like user services and administratio…

Recent Comments

hide
  • ไม่มีใครมาจ้างไปเขียน 555
  • ถ้าเขียน หนังสือ zend เป็นไทย เมื่อไร ผมจะไปซื้อคนแรก ^^
  • ขอบคุณครับ งม งม ต่อไป อิอิ
  • ผมเคยเขียนไว้คร่าวๆ ที่ jQueryTips นะครับ http://www.jquerytips.com/blogs/view/971 PS. มันออกจะคร่าวมาก จนน่าตกใจ 555 จริงๆ ตัวนี้มัน Simpl…
  • ไล่อ่านบทความคุณ Tee+ อยู่ครับ ได้แนวคิดกับเครื่องมือหลายอย่างที่น่าสนใจเพียบเลย พอจะแนะนำเวบหรือบทความที่สอนเกี่ยวกับ Zend - rest ได้บ้างไห…
  • เป็นเหมือนกันเลยครับ ตอนออกแบบนี่ดูไม่เยอะ ตอนเขียนจริงทำไมมันเยอะแบบนี้ฟ่ะ อยากเลิกไปเลยก็มี
  • ตัว Zend Controller มันหนักมากน่ะครับ แค่ Render ก็ดูด Resource เยอะแล้ว เลยไม่เอาดีกว่า ลองหาข้อดีของแต่ละตัวมาประกอบกันแทนครับ
  • ดู ๆ ไปแล้ว ทำไมไม่ใช้ Zend ตัวเดียวไปเลยหล่ะครับ
  • ผมไม่เคยเล่นเฟรมเวอร์ค ที่คุณ T++ ว่ามาเลย เพราะ ผมไม่ได้มีเวลามากหรือชอบศึกษาหลายอย่าง ผมเล่นตัวนี้ครับ Kohana
  • ตอนแรกผมก็แบบนั้นเลย แต่พอเขียนไปเขียนมา Scale ใหญ่ขึ้นมันคุม Pattern ให้ไปในทางเดียวกันลำบาก ก็เลยต้องหันมาใช้ FW ที่ดีๆ สักตัวนึง จะได้ลดง…
  • Home
  •  » Blogs

ปรับ Performance ทุกวิถีทางที่พอจะทำได้ เรื่องที่ 2 ออกแบบ Storage

Dec 10, 2010 12:00:55 AM | 0 Comments | in Performance | files
การจัดเก็บข้อมูลเป็นส่วนที่มีความสำคัญมากกับ ยุคที่ Internet เติบโตเร็ว และมีความเร็วของสปีดเพิ่มจากยุด 28K ค่อนข้างมาก ภาพที่มีขนาดใหญ่ก็สามารถ upload ได้สบายๆ รวมทั้ง users ต่างต้องการ การเข้าถึงข้อมูลที่รวดเร็ว และเอาเว็บที่เข้าบ่อยๆ เป็น มารตฐาน อาทิเช่น Google, Facebook ซึ่งแม่งโครตรวยจะทำไรก็ได้ -*-

ดังนั้นเราต้องมาเอาใจใส่กับทุกรายละเอียดกันหน่อย

การออกแบบ Storage นั้นมีหลายส่วนมากๆ ซึ่งตัวผมเองแยกออกเป็นดังนี้ ...

1. การจัดเก็บ Static files อาทิพวก js, images, swf, etc.
2. การจัดเก็บไฟล์ user
3. การจัดเก็บไฟล์ cache (ออกแบบไว้ก่อน แต่ใช้งานจริงๆ ถูก port ไปหาพวก memory cache หมด)
4. การจัดเก็บไฟล์ Tmp
5. การจัดเก็บ session files (อันนี้ออกแบบไว้ก่อนเหมือนกัน ตอนนี้ย้ายไป mc แล้ว)

ซึ่งพอผมคิดดังนี้สุดท้ายเอา ยุบรวมกันเหลือแค่ 3 directories หลักๆ

1. Farm --> จัดเก็บ user files
2. Data จัดเก็บไฟล์ที่ต้องการ การเข้าถึงรวดเร็ว (cache, log, sessions)
3. assets จัดเก็บไฟล์ที่นานๆ จะไปเปลี่ยนมันครั้ง (css, js, images)

twitter stumbleupon delicious digg facebook Read More

ปรับ Performance ทุกวิถีทางที่พอจะทำได้ เรื่องที่ 1 ทำยังไงดีกับ MySQL นะ

Nov 23, 2010 1:15:28 AM | 5 Comments | in Performance | MySQL, Cache
เอาล่ะครับ มาต่อกันจากที่ผมทิ้งท้ายไว้ในคราวที่แล้ว ว่าจะมาแก้ไข performance ที่เสียไปเนื่องจากใช้ Framework ยังไงดี??

ก่อนอื่นบอกไว้ก่อนนะครับ ณ ขณะที่ผมเขียนอยู่นี้ยังไม่ได้ตั้งค่า Application ให้ใช้ตามระบบที่ออกแบบไว้ เนื่องจากยังอยู่ใน Development Server บางทีท่านอาจจะเห็นมันล่มบ้างอะไรบ้างก็ขอให้เข้าใจตรงนี้ไว้ก่อน ....

เริ่มต้นเลยก็มาเรียงลำดับความคิดก่อนว่าเราจะ ออกแบบยังไงกันบ้าง ต้องทำอะไรบ้าง ถึงจะให้ performance ออกมาดีโดยที่เสียตังค์ น้อยที่สุด ฮา ฮา

เรื่องแรกก็คือ Database

ส่วนนี้บอกตามตรงว่าเป็นส่วนที่ผมกังวลใจเป็นที่สุด เพราะด้วยการที่เจอกับตัวเองมาหลายครั้งหลายหน ปัญหาเกี่ยวกับ DB (ผมเลือกใช้ MySQL) เป็นปัญหาหนักอกหนักใจกับผม พอสมควร เพราะฉะนั้นจึงต้องออกแบบให้ดีที่สุด สิ่งที่ผมคิดได้ก็คือ

1. การทำ Index ให้เหมาะสมใช้ Index อันนี้คงไม่ต้องบอกกัน มันเป็นวิธีการง่ายที่สุดแล้วในการปรับ การทำ Index ที่ดีจะช่วยลดการทำงานได้เยอะมากๆ จากที่ Join แล้วการเป็นล้าน Records ถ้าทำ Index ดีๆ อาจจะเหลือแค่ 10 records ก็เป็นได้ ดังนั้นเอาเลยครับ เขียนไปด้วยแล้วก็คอย ใช้คำสั่ง EXPLAIN ไปด้วยตลอดเวลา 555 บ้าไปแล้ว

2. ใช้ Zend DB เข้าช่วย เนื่องจาก Zend DB Select มีลักษณะการทำงานเป็น piece-by-piece อยู่แล้ว ผมจึงไม่ต้องห่วงเลยว่าจะ join เกิน หรือทำงานเยอะไป คือผมจะทำงานเท่าที่คำสั่งมา ไม่ไปทำอะไรเกินเด็ดขาด อาทิเช่น

twitter stumbleupon delicious digg facebook Read More

เลือก Tools ที่จะทำการใช้งาน ในเบื้องต้น

Nov 20, 2010 8:51:09 PM | 14 Comments | in Performance
ผมแทบจะนับไม่ถูกเลยว่าเอาอะไรมาใช้งานบ้าง มันเยอะจริงๆ ครับ แต่ยังไงผมคงต้องทำสรุปแล้วทำเป็นหน้า Credit ไปถึงผู้พัฒนาที่มีพระคุณเหล่านั้น ที่กรุณาคิดค้น Libraries, Framework, Protocol, Functions เพื่อให้ผมหยิบฉวยมาใช้งานได้ โดยไม่คิดมูลค่าอะไรเลย

สิ่งแรกที่ผมจะต้องเลือกเลยคือ Framework เพื่อว่ามันเป็นโครงของ Application เลยถ้าเลือกพลาดก็จบ ผมนำมาเทสหลายๆ ตัวประกอบการตัดสินใจ อาทิเช่น

1. CodeIgniter
2. Zend Framework
3. Cakephp
4. Yii

สุดท้ายผมก็พบว่า ไม่มีตัวไหนเลยที่จะทำงานโดยไม่มีที่ติ จนสุดท้ายแล้วผมได้ Framework ลูกผสมระหว่าง 3 ตัว โดย Yii ผมตัดทิ้งไป

โครงสร้างหลักจึงออกมาตามนี้
1. Main Application - CI
2. Tools, Libraries, Helpers - Zend, Cakephp

ถ้าให้อธิบายมันก็ออกมาราวๆนี้ครับ
CI ทำหน้าที่เป็น Route เพื่อแสดงผลในระดับ Controllers, Views แต่ว่าเพื่อให้เข้ากับ Application ผมเลยเปลี่ยนลักษณะ View นิดหน่อย กลายเป็น การแสดงผลแบบ Master Page และ Sub Page โดยใช้ lib ตัวข้างล่างนี้เข้าช่วย

twitter stumbleupon delicious digg facebook Read More

เริ่มต้นลำดับความคิด จะเอายังไงดี ??

Nov 20, 2010 2:07:54 AM | 3 Comments | in General
ก่อนที่ผมจะลงมือทำนั้น ผมได้ลำดับความคิดว่า ทำเว็บอะไรดีถึงจะได้ใช้ความสามารถทุกๆ ทางที่ผมมีมารวมกัน เพื่อเอามารวมไว้เป็น ดัชนีความรู้ส่วนตัว เอาไว้เปิดอ่านโคดตัวเองเพื่ออ้างอิงได้ แล้วก็มาสรุปเอาเองว่า Blog แบบ Multiple User นี่แหละ ที่พอจะใช้ได้ เพราะว่าต้องจัดการเรื่องเหล่านี้ทุกเรื่อง

1. ความเสถียรของระบบ เพราะมีการใช้ทรัพยากรสูงกว่าปกติ จากเว็บปกติ ที่ Render ทุกอย่างแบบแข็งๆ ได้แต่พอมาเป็น Multiple เมื่อไหร่ ทุกอย่างจะต้องเป็น Dynamic เกือบหมด เพราะความต้องการของผู้ใช้งานแต่คนค่อนข้างต่างกัน ต้องรีดความสามารถของแอพพลิเคชั่นออกมาด้วย ทรัยากรระบบ ที่มีอยู่อย่างจำกัด

2. ต้องมีความเข้าใจในโครงสร้างของ CSS Structure เป็นอย่างดี เพราะว่า ผู้ใช้งานจำเป็นต้องเปลี่ยนแปลงหน้าตาได้

3. Rich Application Interface อันนี้ต้องมีการใช้งาน Javascript ค่อนข้างเยอะมาก เพื่อความง่ายแก่การใช้งาน ก็เท่ากับว่าได้ฝึกตรงนี้ไปในตัว โม Editor ใหม่เพื่อให้เข้ากับงานของระบบ (ส่วนนี้ WP ช่วยผมไว้ได้มาก)

4. APIs ต่างๆ เพราะบล็อกเป็น แอพพลิเคชั่น แบบโดเดี่ยว จำเป็นต้องติดต่อ ภายนอกเพื่อให้มีความเป็น Community มากขึ้น

ตอนนั้นก็คิดไว้ราวๆ นี้แหละครับ แต่พอเอาเข้าจริง มาทำจริง มันมีอะไรหยุมๆ หยิมๆ มาให้ทำตลอด หายเบื่อกลายเป็น ขี้เกียจไปเลย 555+

Tee++;

twitter stumbleupon delicious digg facebook Read More

Powered by OSCOOL. You may view this on RSS or ATOM.

OSCOOL

Connect with facebook
  • Twitter
  • Facebook
  • Next