เมื่อเราเกิดและเติบโต เราสร้างความรู้ และดึงความรู้จากรายรอบตัวมาจากโลก ก่อนเราตาย ควรต้องคืนความรู้เหล่านั้นกลับไปไว้ให้โลก เผื่อคนรุ่นถัดๆ ไป จะได้ค้นหา และนำไปใช้เพื่อประโยชน์สุขแก่ตนเอง และผู้อื่นบ้าง ...แม้เพียงสักคน ที่นำความรู้สักเสี้ยวของเราไปใช้ ก็ยังดี...
Translate
แสดงบทความที่มีป้ายกำกับ web development แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ web development แสดงบทความทั้งหมด
วันจันทร์ที่ 28 เมษายน พ.ศ. 2557
บินไปกับ Phalcon ...PHP Framework ที่เคลมตัวเองว่า...เร็วส์...แรงส์
ตั้งแต่ผมเขียน PHP มา และได้ผันตัวเองมาเริ่มใช้ Framework ได้ประมาณ 4 ปี ผมก็หลงรัก และติดใจกับ Codeigniter มาตลอด เพราะความที่เริ่มต้นได้เร็ว ง่าย และต่อยอดได้หลากหลาย มีอยู่เหมือนกันที่ไปศึกษา Framework อื่นๆ ที่เป็นรูปแบบ MVC เหมือนกันอย่าง Yii หรือ Laravel แต่ก็เป็นเพียงช่วงสั้นๆ แม้จะได้ลองเขียน และใช้งานจริง (งานที่รับทำฟรีแลนซ์ ส่วนใหญ่ไม่ใช่ Yii ก็ Codeigniter) อยู่บ้าง แต่ก็ไม่ได้เปลี่ยนใจจากความชื่นชมใน Codeigniter ไปใช้อย่างอื่นแต่อย่างใด
ผมได้ยินชื่อ Phalcon มาประมาณระยะหนึ่งแล้ว จากเว็บและหลายๆ แหล่ง ที่ยังไม่ได้ไปหาข้อมูล หรือลองเล่น เพราะไม่คิดจะเปลี่ยนว่าจะต้องเปลี่ยนใจไปจาก CI เพราะปัจจุบันก็ยังทำงานได้อยู่ แม้ว่า CI เองจะเริ่มตายลงก็ตาม (ผมอ้างอิงจาก Laravel นะ แต่เห็นเขาก็ยังไปของเขาเรื่อยๆ และ CI ก็เป็นจุดเริ่มต้นที่ดีในการเริ่มเขียน PHP แบบใช้ pattern MVC)
จากการตามดู First Commit ที่ Github ก็เดาว่า Phalcon ถือกำเนิดประมาณช่วงมกราคม ปี 2012 โดยคุณ andresgutierrez (เข้าใจว่าเป็นนามแฝงนะ)
จากนั้น Phalcon ก็ขยายตัวมาตลอด มีนักพัฒนาจากทั่วโลก มาร่วมด้วยช่วยกัน (อาจจะไม่ใหญ่เท่า CI) ทั้งทดสอบ แก้บั๊ก และเพิ่มเติม code เพราะอานุภาพแห่ง License แบบ New BSD License นั้นเอง
เมื่อ 2 ปีก่อน (2012) ผมเองก็ประสบปัญหาที่เกี่ยวข้องกับ performance ของ PHP เช่นกัน เพราะด้วยทรัพยากรด้าน hardware ที่จำกัด คือ นอกจากเป็น VM ware แล้ว ยังจำกัด Resource ด้วย ทำให้ผมต้องพยายามหาวิธีสารพัด เพื่อเพิ่มความเร็วของการใช้งาน ที่จะเพิ่มขึ้นอย่างสูงในช่วงระยะเวลาหนึ่ง ช่วงนั้นเป็นอะไรที่เก็บเกี่ยวความรู้ในการเขียน Code อย่างมาก Coding แบบไหนที่น่าจะทำให้ลด Header ของการเรียกใช้งาน ผมก็พยายามปรับวิธีการเขียนใหม่ เช่น ใช้ loop น้อยลง ใช้ตัวแปรน้อยลง ลด else block ที่ไม่จำเป็นลง หรือแม้กระทั่ง ใช้ single quote แทน double quote ในการใช้ตัวแปรแบบ string เพียวๆ
แต่นั่นก็เป็นส่วนเล็กๆ ที่ผมทำ กับ server เล็กๆ จุดๆ หนึ่งบนโลก ...ขณะเดียวกันนั้น ก็มีคนที่คิดว่าจะเพิ่ม Performance ของ PHP ขึ้นเช่นกัน แต่เขาใช้วิธีเปลี่ยนไปใช้ Framework ที่เป็น extension พิเศษเฉพาะที่เขียนด้วย C เสียเลย ซึ่งเป็นการแก้ปัญหาที่ตรงจุดกว่า เนื่องจากอย่างที่เรารู้กันอยู่ว่า PHP ที่เราใช้งานกันอยู่นั้น เป็นภาษาโปรแกรมแบบ Interpreted เหมือน Basic สมัยก่อน มันก็เพิ่มขั้นตอนในการแปลขึ้นมาอีกขั้นกว่าจะไปเป็นภาษาเครื่อง ตรงจุดนี้ก็ทำให้ Performance ลดลงได้ เมื่อเปลี่ยนมาเป็น Compile คำสั่งต่างๆ ของ Framework เสียก่อนเลย การใช้งานก็น่าจะเร็วขึ้นโข ...ใช่มั้ยล่ะ
ถ้าคุณเขาไปที่เว็บไซต์ http://phalconphp.com คุณจะพบกับตารางเปรียบเทียบนี้ ผมก็ไม่รู้ว่าถ้าเทียบกับ Yii จะเป็นยังไงเหมือนกัน และทำไมเขาไม่ลองเทียบออกมาดู (หรือว่าความเร็วก็ได้ใกล้ๆ กันก็ไม่รู้ เลยเอามาโชว์ไม่ได้) เรื่องความเร็วที่เพิ่มขึ้น สำหรับเว็บไซต์เล็กๆ น้อย ที่คนเข้าพร้อมกันประมาณ 50-100 คนต่อวินาที แล้ว อาจจะไม่ต่างกันเท่าไรนัก แต่ถ้าปริมาณของ user เยอะกว่านั้นล่ะ? ปัญหาความ "หน่วง" นี้จะเริ่มปรากฎให้เห็นเด่นชัดขึ้นทันที
เกริ่นมาสารพัด วันนี้มีข้อแนะนำในการติดตั้ง Phalcon นิดหน่อย ซึ่งภายในเว็บเขามีบอกอยู่แล้วล่ะ แถมยังมีภาษาไทยด้วยนะ http://phalconphp.com/th
ผมใช้ xampp 1.8.3 ; PHP 5.5.6 ซึ่งทาง phalcon เขาบอกว่า ยิ่งใหม่ก็ยิ่งดีนะมีปัญหาตอนลง phalcon นิดหน่อยก็เรื่อง load ผิดไฟล์มา ถึงแม้เครื่องผมจะใช้ windows 64 บิต แต่ทาง xampp ยังเป็น 32 บิตอยู่ ก็ต้อง download ตัว 32 บิตมา และต้องเลือกด้วยว่า เวอร์ชั่น xampp ของเราที่เรา Download มานั้น เป็น non thread safe (NTS) หรือ thread safe (TS) (ถ้าสงสัยเรื่อง NTS กับ TS ตามไปดูที่นี่น่าจะเข้าใจ http://stackoverflow.com/questions/1623914/what-is-thread-safe-or-non-thread-safe-in-php )
ของผมโหลดแบบ TS มา ก็ต้องใช้ phalcon แบบ TS ครับ
1. ตอนแรกจะเป็น zip ไฟล์ แตกออกมาจะเป็น phalcon.dll
2. เอาไปใส่ไว้ใน /php/ext ที่ใช้งาน อย่างถ้าใช้ xampp เหมือนกัน ก็ใส่ที่ /xampp/php/ext จากนั้นก็ไปเพิ่มการเรียก extension เพิ่มเติมที่ไฟล์ /xampp/php/php.ini ตามนี้
extension=phalcon.dll
เพิ่มไว้ที่บรรทัดต่อจาก extension บรรทัดสุดท้ายก็ได้ครับ
3. จากนั้น Restart apache ใหม่เมื่อไปดูที่ phpinfo.php แล้วถ้า find หาคำว่า phalcon เจอ ก็พร้อมใช้งานแล้วครับ
เดี๋ยวลองใช้แล้วจะเอา concept การใช้งานมาลงก็แล้วกัน แต่เดี๋ยวนี้ programmer มีอะไรก็ควรไปที่ stackoverflow.com นะครับ ลองหาดูว่ามีคนติดแบบเดียวกันหรือเปล่า ช่วยได้เยอะจนจบโปรเจ็คเลยทีเดียวล่ะ ^_^
วันอาทิตย์ที่ 19 พฤษภาคม พ.ศ. 2556
เปิดประเด็น blogger
สวัสดีครับ ชาวโลก,
เนื่องด้วยตอนนี้ก็อายุอานามปาเข้าไปเยอะแล้ว ก็อยากจะแบ่งปันประสบการณ์ และจดบันทึกเรื่องราวการเดินทางของความรู้ตัวเองด้วย ว่าชาตินี้ได้ใช้ชีวิตไปกับอะไรที่เป็นประโยชน์บ้าง คิดๆ ไป ทุกอย่างที่ผ่านเข้าหัวมา ถ้าไม่ใช้มันก็จะลืมเลือนหมด อะไรที่เรียนรู้ไปแล้วไม่ได้ใช้ ก็เหมือนจะสูญเสียเวลาไปโดยใช่เหตุ
อีกไม่กี่วันสำหรับผมก็ 34 ปีพอดี เริ่มต้นเขียน Blog ของตัวเองตอนนี้ รู้สึกเหมือนลุงแก่ๆ ที่กลัวเทคโนโลยียังไงไม่รู้ ทุกปีๆ เทคโนโลยีที่ก้าวเข้ามาในชีวิตประจำวัน นับวันก็มีแต่จะก้าวกระโดด ไปไกลเกินกว่าที่จะเรียนรู้ได้ทัน ของเก่าๆ ที่อยู่ในหัว บางอย่างก็หมดสมัย และไม่จำเป็นอีกต่อไปเสียแล้ว
ช่วงชีวิตของผมตั้งแต่เริ่มแสวงหาความรู้มา ก็คงพอแยกแยะได้บ้างว่าตัวเองชอบด้านไหน และถ่ายทอดอะไรกลับคืนไปได้ดีที่สุด ผมเลยจะแบ่งเนื้อหาของ Blog ตัวเองออกเป็นส่วนๆ ดังนี้นะครับ
1. Web Development
ช่วงเวลานี้ถนัดที่สุดในเรื่องนี้ อนาคตไม่แน่ไม่นอน แต่คงทำเป็นเนื้อหาได้ดีที่สุด แน่นอนว่าเนื้อหาคงซ้ำไปมาทั่วโลกอยู่แล้ว หรือผมอาจจะเอาจากคนอื่นมาบ้าง และจากประสบการณ์ตัวเองที่เจอมาบ้าง ก็จะค่อยๆ เล่าไปเรื่อยๆ เก็บไว้เผื่อใครสืบค้นแล้วหลงทางผ่านเข้ามาอ่าน
2. Publication
เรื่องการทำสื่อสิ่งพิมพ์ และอะไรต่อมิอะไรที่เจอมาเกี่ยวกับงานด้านนี้ อันนี้เป็นงานที่ถนัดมาก่อนจะทำ Web
3. Buddhism
ศาสนาพุทธ ที่ผมเข้าใจและรู้จัก เพราะความจริงของทุกสิ่ง คือ แล้วแต่มุมมองของผู้คน ผมชอบบางบทบางตอนของพระไตรปิฎก ก็จะหยิบยกมา แล้วก็สาธยายสู่กันเพื่อเกิดมุมมองใหม่ๆ ให้ใครบางคนที่อาจไม่มีมุมมองแบบผม
4. Business
ผมจบด้านบริหารธุรกิจ ความฝันหลักๆ ก็เป็นเรื่องการทำธุรกิจ ล้มลุกคลุกคลานมาเยอะ และยังล้มลุกคลุกคลานอยู่ต่อไป สักวันหนึ่งอาจจะถึงฝั่งฝัน
5. Write
งานเขียน เป็นอะไรที่ผมชอบ ผมมีหนังสือที่ได้ตีพิมพ์อยู่ แม้มันจะไม่สามารถใช้คำว่า วรรณกรรม ได้ แต่ก็เป็นอะไรที่ภูมิใจอยู่เหมือนกัน ที่เปิดทางแนวหนังสือที่ตัวเองชอบได้
6. Mobile Development
อันนี้สำหรับอนาคต ผมคงย้าย Platform ไป mobile แน่ๆ มันรู้สึกถูกชะตา และยังมีอะไรให้ค้นหาอีกเยอะ
7. Motivation
การกระตุ้นเตือนตัวเองว่าความหวัง ความฝันอยู่ที่ไหน เป็นอีกอย่างที่คนเราต้องทำอย่างสม่ำเสมอ ขาดไม่ได้ เพราะสิ่งนี้เท่านั้น ที่ทำให้คน หรือสัตว์ใดๆ ก็ตาม ยังคงความหมายของชีวิตอยู่บนโลกนี้ได้
ชีวิตผมวนเวียนอยู่กับความรู้ไม่กี่อย่าง บางอย่างก็ทำให้เสียเวลาไปเฉยๆ ไม่ได้เอามาทำประโยชน์อะไร สิ่งที่จะเขียนอาจไม่ใช่ของใหม่ และอาจจะก๊อปเขามาบ้าง แต่ก็มีความเป็นตัวของตัวเองอยู่ด้วยแน่นอน
ไป...
เริ่มกันเถอะ
...
เริ่มคิดจะทำ Web
ไม่รู้ว่าผมเข้าใจความหมายของ web development ถูกหรือเปล่า แต่โดยรวมก็น่าจะแปลว่าการพัฒนาเว็บ ซึ่งมันต้องใช้ความรู้หลายแขนงมาประกอบกัน แต่ก่อนก็ดูเหมือนจะยากอยู่ แต่สมัยนี้แล้วอะไรๆ ก็ดูจะง่ายไปหมด สำหรับคนที่สนใจจริงๆ
ถ้าเราชอบที่จะทำแล้ว การจะทำอะไรก็ตามมันจะถูกซึมซับอย่างรวดเร็ว ยิ่งเป็นการเริ่มออกค้นหา ก็ยิ่งมีความสุขมากที่ขึ้นๆ เพราะมีหลายสิ่งให้เรียนรู้มากมายเหลือเกิน (ในทางกลับกัน ทางใจไม่ชอบ มันจะกลายเป็นท้อแท้ไปแทน)
ผมจะข้ามเรื่องเงินเดือนไป เพราะมันแล้วแต่จังหวะ และโอกาสของคนแต่ละคน ผมเคยทำงานบริษัทที่เป็น web developer เหมือนกัน งานเหมือนกัน แต่เงินเดือนต่างกันแบบห่างมาก ของอย่างนี้มันอยู่ที่จังหวะแต่ละคนจริงๆ
มาเริ่มกันเลยดีกว่า ถ้านับจากประสบการณ์ตัวเองแล้ว การจะเริ่มต้นทางสายนี้ ก็ต้องชอบก่อน จากนั้นก็จะต้องรู้ว่า ความรู้อะไรบ้างที่ประกอบกันขึ้นมาเป็นเว็บได้
1. Programming
เพราะเว็บสมัยนี้ และสมัยหน้า ต้องการความ dynamic เว็บแบบ static หมดลงไปเรื่อยๆ เพราะฉะนั้นหลีกเลี่ยงไม่ได้จริงๆ ที่จะต้อง coding แต่การ coding จริงๆ แล้วก็อาศัยหลักคิดธรรมดาๆ แค่ว่า "ถ้าเป็นแบบนี้ ก็จะเป็นแบบนั้น" เท่านั้นเอง
ในที่นี้ จะมีเขียนเกี่ยวกับ : PHP, JavaScript
2. Graphic
ความสวยงามเป็นสิ่งสำคัญที่ทำให้คน สนใจ หรือไม่สนใจอะไร ความสวยงามไม่จำเป็นต้องอลังการ อาจเป็นแค่ความคิดแตกต่าง ฉีกแนว หรือ เรียบง่ายก็ได้ ในประเทศไทย ส่วนใหญ่แล้วเวลาคนเราต้องการมีเว็บ เพื่ออะไรสักอย่าง เช่น ขายของออนไลน์ แต่ทำเองไม่ได้ ก็คิดจะจ้างคนที่รับทำ แล้วก็เข้าใจว่า การทำเว็บ มันสามารถทำให้เสร็จได้โดยคนเพียงคนเดียว แบบง่ายๆ ...นี่เป็นความรู้อีกแขนงหนึ่ง ที่ต้องศึกษาไว้ แต่ถ้ามีใจรัก มันก็จะศึกษาเองโดยไม่ยากลำบากเท่าไรนัก
ในที่นี้ จะมีเขียนเกี่ยวกับ : CSS, UX
3. Network
เพราะเว็บ เกิดขึ้นมาจาก Networking การขยายตัวของเครือข่าย ทำให้มันมีพลังแบบทบทวีคูณ เปลี่ยนวิถีชีวิตของคนบนโลกนี้ไปโดยสิ้นเชิง การศึกษาเรื่องพื้นฐานของสิ่งที่เราชอบ จะทำให้เข้าใจมากขึ้นเวลาที่พบกับปัญหาเกี่ยวกับมัน
ในที่นี้ จะมีเขียนเกี่ยวกับ : IP, Data Transition
4. Database
สิ่งสำคัญในการแบ่งปันเผยแพร่ คือการจัดการเนื้อหาที่จะเผยแพร่ ในรูปแบบที่สามารถจัดการได้ง่าย ยุคปัจจุบันการทำเว็บส่วนใหญ่ จำเป็นต้องเก็บข้อมูลไว้ในที่ต่างๆ กันหลายที่ เพื่อนำมารวมกันอีกครั้ง และสร้างขึ้นมาเป็นเนื้อหาในหน้าเว็บหนึ่งๆ ความรู้แขนงนี้ ยังจำเป็นอย่างมากในสมัยปัจจุบันและอนาคต สำหรับการทำเว็บ
ในที่นี้ จะมีเขียนเกี่ยวกับ : SQL (ภาษาหลักของ database ยี่ห้อต่างๆ เช่น MySQL, Postgres, SQL server etc.)
สำหรับผม ก็น่าจะมีเพียงเท่านี้ในการจะสร้างเว็บขึ้นมา 1 เว็บ อาจจะต้องมีความรู้อื่นๆ อีกเล็กน้อย แต่ที่เน้นๆ ก็จะมีเรื่องพวกนี้ล่ะ และที่ผมจะมาพูดคุย เล่าบ่นให้ฟัง ก็เกี่ยวกับเรื่องพวกนี้เท่านั้น
ผมจะข้ามประวัติศาสตร์ต่างๆ กว่าจะมาเป็นเว็บในปัจจุบันไป เพื่อไปเริ่มลงมือกันจริงๆ จังๆ นับหนึ่งกันสักที ต้องบอกก่อนว่าเรื่องต่อไปนี้ จะเป็นสายทำเว็บโดยภาษา PHP เป็นหลัก ตามประสบการณ์ของตัวเอง และเครื่องมือเครื่องใช้ที่ต้องมี แน่นอนว่าจะเป็นอะไรทำนองนี้
1. Computer ที่มีระบบปฏิบัติการอยู่ จะเป็น windows, linux, osx หรืออะไรก็ได้
2. Internet ตอนแรกยังไม่มีก็ได้ เราจะเขียนกันแบบ offline ก่อน
3. Editor สักตัว ผมใช้ของ opensource ของ Netbean, หรือ eclipse เพื่อจะได้พิมพ์สร้างไฟล์ขึ้นมาได้
4. Internet Browser สำคัญสุด เพราะมันคือ platform ที่จะนำเสนอสิ่งที่เราสร้างขึ้นมาให้คนทั้งโลกได้รับรู้
เท่านี้ก็น่าจะพอ ผมจะจบด้วยการเล่าเรื่องแบบพอสังเขป ถึงความเป็นมาเป็นไปของประวัติศาสตร์เว็บก็แล้วกัน
Building the Web Together
ผมชอบคำนี้จัง...
สมัครสมาชิก:
บทความ (Atom)


