Tutorial - "Hello World"
Category : Tutorial

มาทําความรู้จักกับ Microservice Architecture กันเถอะ

Posted by arnondora on March 19th, 2017

ในช่วงปีที่ผ่านมา หลาย ๆ เราน่าจะได้ยินคำว่า Microservice Architecture ผ่านหูกันมาไม่น้อยเลย ซึ่งตอนนี้สถาปัตยกรรมแบบนี้ก็ได้ถูกนำไป Implement จริงในบริษัท IT ใหญ่ ๆ หลาย ๆ เจ้ามาแล้ว ซึ่งตัวผมเองก็ได้ลง Production จริงกับสถาปัตยกรรมแบบนี้มาแล้วนิดนึง เลยอยากจะมาเล่าให้อ่านกันสักหน่อย เกริ่นกันก่อน เมื่อก่อน เวลาเราจะพัฒนาระบบขึ้นมาสักตัว เราจะแบ่งระบบของเราออกมาอย่างง่าย ๆ เป็น 3 ส่วนคือ Database or other Data service หรือง่าย ๆ คือ ที่เก็บข้อมูล อาจจะใช้เป็น RDBMS หรือ No-SQL ก็ได้เช่นกัน Backend หรือคือ ระบบหลังบ้านที่คอยจัดการงานต่าง ๆ ให้เรา Frontend ที่จะเป็นหน้าตาคุยกับผู้ใช้ของเรานั่นเอง ฉะนั้นขั้นตอนจะเป็นว่า User ส่ง Request ผ่าน Frontend […]

ลดขนาดรูปบน WordPress ด้วย EWWW Image Optimizer

Posted by arnondora on February 23rd, 2017

เรามาถึงในยุคที่เว็บไซต์ของเราสามารถเข้าถึงได้จากทุกที่ และจากหลากหลายประเภทอุปกรณ์ด้วยกัน เรื่องนึงที่สำคัญเรื่องนึงคือ รูปภาพ ไหนจะเรื่องของขนาด (Dimension) หรือจะขนาดไฟล์อีก วันนี้เราจะมาโฟกัสกันที่ขนาดไฟล์กัน เราจะมาใช้ EWWW Image Optimizer ในการลดขนาดของไฟล์กัน ความเร็วในการโหลดหน้าเว็บส่งผลอย่างไรเว็บไซต์ของเรา ? สำหรับปัญหานี้ ให้เราลองนึกดูว่า ถ้าเราเป็นคนที่เข้าหน้าเว็บสักเว็บนึง แล้วปรากฏว่า เว็บนี้รูปเยอะมาก ๆ แล้วโหลดช้าอีก เราคงไม่ค่อยสบอารมณ์แน่นอน ฉะนั้น เรื่องของการโหลดหน้าจึงเป็นเรื่องที่สำคัญมาก มีการทดลองบอกว่า ผู้ใช้จะคาดหวังว่า หน้าจะสามารถโหลดได้ในเวลาประมาณ 2-3 วินาที จากนั้นจะเริ่มออกหนีไป ที่ได้กล่าวไปเมื่อกี้เป็นทางฝั่งของ Desktop แต่ถ้าเป็นทางฝั่ง Mobile ความคาดหวังจะสูงขึ้นอีกมาก ทำให้เราต้องทำให้หน้าของเราโหลดได้เร็วที่สุดเท่าที่จะเป็นไปได้ ขนาดของไฟล์ภาพก็เป็นอีกหนึ่งปัจจัย จริง ๆ เหตุผลก็มีอยู่หลาย ๆ อย่าง แต่วันนี้ขอยกเรื่องของขนาดของไฟล์ภาพมาก่อนละกัน ถ้าเราลองใช้ Inspect Tool เข้าไปดู Request ต่าง ๆ ที่เกิดขึ้นในหน้าเว็บของเรา เราจะเห็นได้ว่า มากกว่า 50% […]

Cloud Computing คืออะไร ? (ฉบับมนุษย์อ่านได้ Dev อ่านดี)

Posted by arnondora on February 11th, 2017

ทุกวันนี้เราคงปฏิเสธไม่ได้แล้วว่า เราอยู่ในยุคที่เราใช้ข้อมูลในการตัดสินใจสิ่งต่าง ๆ มากขึ้น (Information-Driven) จะเห็นได้ว่า ทุกวันนี้เราเสพข้อมูลมากแค่ไหน จากทั้ง Social Network และสื่อบนอินเตอร์เน็ตต่าง ๆ ทำให้สิ่งที่เรียกว่า Cloud Computing เข้ามาเป็นอีกหนึ่งปัจจัยในการดำรงชีวิตของเราไปโดยที่เราไม่รู้ตัวเลย ตั้งแต่ที่เราตื่นนอน จนไปถึงเรานอนอีกวันนึงเลย Cloud Computing คืออะไร ? จริง ๆ คำ ๆ นี้ก็มีหลาย ๆ คนได้ในคำนิยามไว้เยอะมาก แต่ผมขอให้คำนิยามว่า มันเป็นการเก็บ ประมวลผล และเรียกใช้ ข้อมูลจากที่ไหน และเมื่อไหร่ก็ได้ เหมือนกับก้อนเมฆที่ลอยอยู่บนท้องฟ้า ย้อนกลับไปหน้านั้นหน่อย จริง ๆ ก่อนคำว่า Cloud Computing จะเข้ามา มันมีอีกคำก่อนหน้านั้นอีกนั่นคือ Client-Server ที่จะมี Server ไว้สักตัวออนไลน์เอาไว้ และให้ผู้ใช้ที่เป็น Client เข้ามาในระบบเพื่อดึง หรือบันทึกข้อมูลลงไปได้ ตามที่ผู้พัฒนาได้โปรแกรมไว้ แต่วิธีนี้เองก็มีข้อเสีย เพราะถ้าเกิด […]

มา Deploy Laravel บน Microsoft Azure กันเถอะ

Posted by arnondora on January 1st, 2017

ปัญหาของการ Deploy เป็นปัญหาหนึ่งตอนที่ผมพึ่งเรียน Laravel ใหม่ ๆ ตอนเขียนก็ยังได้อยู่ แต่พอจะเอาขึ้น Production Server เท่านั้นแหละ “เอาไงดีฟร๊ะ !” ฉะนั้นวันนี้เราจะมาดูวิธีการ Deploy Laravel Project ของเราขึ้น Cloud อย่างง่ายกัน ตอนนี้หลาย ๆ คน (ที่เป็นมือใหม่) ยังไม่น่าจะนึกออกว่าจะทำยังไงดี จะ Upload ผ่าน FTP มั้ยหรือยังไง แน่นอน เราค่อย ๆ ไปกันดีละขั้นตอนกัน เตรียม Web App Service ในขั้นตอนของการสร้าง Web Application บน Microsoft Azure จะไม่ขอพูดถึงละกันครับ เพราะมี Document อยู่กันเกื่อนแล้ว ซึ่งตัว Web App นี้มันก็รองรับ PHP ให้เราเรียบร้อยแล้ว แต่สิ่งที่ยังไม่มีอีกอย่างคือ […]

ภัยคุกคาม กับความปลอดภัยของเราบนโลกไซเบอร์

Posted by arnondora on September 15th, 2016

ในตอนนี้จำนวนผู้ใช้อินเตอร์เน็ตเพิ่มสูงขึ้นเรื่อย ๆ แล้ว จากเมื่อก่อนบ้านหนึ่งหลัง จะมีอุปกรณ์ที่ใช้เชื่อมต่ออินเตอร์เน็คเพียงแค่เครื่องเดียว หรือไม่มีด้วยซ้ำ แต่ในปัจจุบัน คนหนึ่งคนอาจจะมีมากกว่า 1 อุปกรณ์ด้วยซ้ำ เมื่อจำนวนผู้ใช้เยอะขึ้นเรื่อย ๆ ทำให้ผู้ไม่หวังดี ย่อมอยากที่จะเข้ามาทำอะไรไม่ดีไม่ร้ายกับเรา (อ่านแล้วดูหื่นจัง) จึงเพิ่มขึ้นเป็นเงาตามตัวกันเลยทีเดียว ดังนั้นเราในฐานนะของผู้ใช้งานอินเตอร์เน็ตก็ย่อมต้องระวังตัวของเราเองมากขึ้นเช่นกัน เพื่อป้องกัยผู้ไม่ประสงค์ดีเข้ามาล้วงข้อมูล ทั้งส่วนตัว และไม่ส่วนตัวของเราได้ ภัยคุกคามตอนนี้ถือว่าน่ากลัวแค่ไหน ? ก่อนเราจะไปถึงวิธีป้องกันง่าย ๆ เรามาดูกันก่อนว่า ในปีที่ผ่านมานั้นมีผู้ถูกโจมตีมากแค่ไหน เราลองมาดู สถิติคร่าว ๆ กัน รายงานจาก Symantec ที่เป็นบริษัท Software รักษาความปลอดภัยบอกว่า ในช่วงปี 2015 ที่ผ่านมามีจำนวนการโจมตีเพิ่มมากขึ้นจากปีก่อนถึง 2% หรือคิดเป็นเงินมูลค่าหลายล้านเหรียญสหรัฐเลยทีเดียว อ่านดูแล้ว คิดว่าเป็นเรื่องไกลตัวกันแน่ ๆ เลยตอนนี้ งั้นลองมาดูทางฝั่งของ Microsoft กันหน่อย ทางนั้นบอกว่า เครื่องคอมพิวเตอร์ส่วนบุคคลที่เราใช้กันอยู่ มีจำนวนครั้งที่ถูกโจมตีมากกว่า คอมพิวเตอร์ที่อยู่ในสำนักงาน ถึง 2 เท่าเลยทีเดียว ซึ่งแน่นอนว่า […]

นานาสาระกับ Middleware ใน Laravel

Posted by arnondora on July 30th, 2016

ผมเชื่อว่า ใครที่พึ่งเริ่มเรียน หรือหัดใช้ Laravel สิ่ง ๆ หนึ่งที่พวกเราหลาย ๆ คนไม่น่าอยากเข้าไปยุ่งในตอนนั้นคือ Middleware มันดูเป็นอะไรที่ ลึกลับ ซับซ้อน มาก ๆ สำหรับผมตอนแรก ๆ เลย แต่พอเราได้ลองมาดูจริง ๆ แล้ว มันแค่หลอกตาเราเท่านั้นแหละ ง่ายมาก ๆ เลย วันนี้เราจะลองมาดูกันว่า มันคืออะไร และ ทำอะไรได้บ้าง Middleware คืออะไร ผมก็ไม่รู้จะนิยามมันว่ายังไงเหมือนกัน อธิบายให้มนุษย์เข้าใจ มันคือ ตัวกรอง ในเครื่องกรองน้ำเลย ในที่นี้มันทำหน้าที่ในการกรอง Request ต่าง ๆ ที่ User กดไป กดมา อยู่ใน App ของเรา หลักการทำงาน(คร่าว ๆ ?) เราลองมาดูการทำงานแบบผิว ๆ กัน ก่อนที่เราจะเข้าไปดูว่าโค๊ตจริง ๆ […]

Filesystem Service ใน Laravel

Posted by arnondora on July 14th, 2016
Filesystem Laravel

กลับมาอีกครั้งกับซีรีส์ของ Laravel ในวันนี้ผมจะพาไปรู้จักอีก Service หนึ่งใน Laravel ที่จะช่วยให้เราจัดเก็บ และจัดการไฟล์ต่าง ๆ ในเว็บไซต์ของเราได้ง่ายขึ้นกับ Service ที่มีชื่อว่า Filesystem Filesystem ใน Laravel ทำอะไรได้ ? ถ้าเมื่อก่อน ก่อนที่เราจะได้มาใช้ Filesystem Service ใน Laravel ถ้าเราต้องการที่จะเก็บไฟล์ เรียกไฟล์หรือ เรียกค่าต่าง ๆ จากไฟล์ เราจำเป็นต้องเขียนคำสั่งในภาษา PHP เองทั้งหมด ซึ่งเราจะต้องมารับมือกับ Function มากมายก่ายกองไปหมด ถ้าเขียนในระบบเล็ก ๆ ภาระ ในการ Implement อาจจะไม่ยากนัก แต่ถ้าเราเขียนระบบใหญ่ เรื่องง่าย ๆ อย่างการอัพโหลดไฟล์อาจจะเป็นเรื่องใหญ่ ที่สร้างความบรรลัย และปวดหัวมาก ๆ เลยก็ได้ แต่ด้วย Filesystem Service ใน Laravel จะช่วยให้เราสามารถ […]

Getting Started with Gulp.js

Posted by arnondora on July 7th, 2016

ถ้าใครที่เขียนเว็บในสมัยนี้ เราจะพบว่ากว่าเราจะเขียนเว็บออกมาได้สักเว็บหนึ่ง เราต้องเขียนทั้ง HTML, CSS และ JS หรือในบางคนอาจจะเขียน SCSS ไม่ก็ SASS ก็ต้องมา Compile และ Minify อีก ซึ่งเป็นอะไรที่ค่อนข้างเสียเวลามาก ๆ จะดีกว่ามั้ยที่จะมี Tool สักตัวมาจัดการให้เราเองทั้งหมด มาทำความรู้จักกับ Gulp.js กัน Gulp.js คืออะไร ? Gulp.js เป็น Tool ตัวนึงที่จะเข้ามาช่วยเราจัดการ Workflow การทำงานของเราให้รวดเร็วมากขึ้น โดยมี Plugin ให้เราเลือกใช้มากมาย ถ้านึกภาพไม่ออก ให้นึกซะว่า Gulp มันคือ คนใช้ ที่โง่มาก ๆ ทำอะไรไม่เป็นสักอย่าง แต่เราสามารถสอนมันได้โดยการลง Plugin ให้และบอกให้มันไปทำเป็นอย่าง ๆ ไป หรือเราเรียกว่า Task ติดตั้ง Gulp.js ตัว Gulp เองเป็น […]

นับ 1 2 3 มาถ่ายรูปกันเถอะ! – เรื่องยุ่งๆ หลังคอม (Part 2)

Posted by arnondora on June 30th, 2016

หลังจากตอนที่แล้วก็หายไปนานเลย สารภาพบาปว่า ตอนนั้นงานยุ่งมาก จนลืมไปเลย ตอนนี้ปิดเทอมแล้ว จะมาไล่เขียน Tutorial ที่ค้างไว้ให้จบกันเลย คราวที่แล้ว เราได้เรียนรู้ การดู Histogram กันไป วันนี้ เราจะมาดูอีกหนึ่งเรื่องที่สำคัญของการ Process ภาพนั่นคือ White Balance White Balance คืออะไร White Balance (WB) หรือภาษาไทยเราเรียกว่า สมดุลแสงขาว (อ่านแล้วแปลก ๆ มาก !) แต่ก่อนที่จะไปดูความหมาย เราต้องเข้าใจก่อนว่า แสงที่เรามองเห็นนั้นมี อุณหภูมิ ที่แตกต่างกัน สังเกตไม่ยาก เราลองดูมองออกไปนอกหน้าต่างตอนกลางวัน และเทียบกับ แสงจาก Flash จากโทรศัพท์ของเราดู เราจะเห็นว่า แต่ละแหล่งกำเนิดแสงให้แสงที่มี อุณหภูมิ หรือสีที่แตกต่างกันออกไป อุณหภูมิของแสง เราจะวัดกันในหน่วย เคลวิน ยิ่งมาก แสงจะออกสีไปทาง ส้ม มากขึ้น กลับกัน ถ้าน้อยจะออกไปทาง […]

Database Migration with Laravel

Posted by arnondora on June 27th, 2016

ถ้าใครที่ใช้ Laravel ใหม่ ๆ ก็อาจจะสงสัยว่า Migration ใน Laravel มันคืออะไร แล้วมันเกิดมาเพื่ออะไรกันแน่ วันนี้เราจะมาทำความเข้าใจกับ Database Migration ใน Laravel กัน Database Migration คืออะไร ? ก่อนที่เราจะเข้าใจความหมาย เรามาดูกันก่อนว่า ปกติแล้ว เราทำงานกับ Database ในเว็บกันอย่างไร กับผม ก่อนที่จะมาใช้ Laravel ผมก็จะเขียน ERD แล้ว Implement ลงใน DBMS ที่ใช้เช่น MySQL หรือ SQL Server ก็ว่าไปแล้วแต่ Project และพอผมทำเสร็จผมก็จะ Backup ตัว DB แล้วส่งต่อให้ในทีมเอาไปทำต่อ ถ้าเกิดวันหนึ่งผมต้องเปลี่ยนชื่อ Field สักตัวใน DB นั่นแปลว่า ผมต้องส่งตัว Backup ของ […]