ขั้นตอนการสมัครสมาชิก
- เข้าไปที่ www.thaiprogrammer.org เลือกสมัครสมาชิกแล้วกรอกข้อมูลให้ครบถ้วน
- ถ่ายสำเนาบัตรประชาชนพร้อมเซ็นรับรอง, ระบุอีเมล์ที่ใช้สมัครสมาชิกและเบอร์โทรศัพท์
- ชำระเงินที่จุดลงทะเบียน 300.-
การทำ Cluster มีความหมายค่อนข้างกว้างและเกี่ยวกับเรื่องการจัดกลุ่ม สำหรับไลบรารี่ Cluster ของ NodeJS คือการแตกโปรเซสออกเป็นหลายๆ โปรเซส เพื่อกระจายการทำงาน สำหรับ NodeJS จะทำงานแบบ Single Thread ถ้าต้องการกระจายงานให้สามารถทำงานพร้อมกันได้หลายงานต้องทำการแตกโปรเซสออกเป็นหลายๆตัว ซึ่งก็คือการทำ Cluster
เมื่อวานนี้ 20 /2/2016 มีโอกาสได้มาเรียน Machine Learning กับ ดร.กานต์ ที่ Geeky Base เป็นเวลาครึ่งวัน เนื่องจากไม่ได้ลงทะเบียนไว้ พอดีผ่านมาทำธุระแถวเกษตรพอดี เลยขอท่านอาจารย์มาขอความรู้ด้านนี้ไว้เนื่องจากกำลังสนใจอย่างมาก และถ้าได้รับคำชี้แนะจากคนที่มีประสบการณ์ก็จะได้ไม่หลงทาง สิ่งที่ได้รับจากการเรียนครึ่งวัน ขอสรุปคร่าวๆ ดังนี้
จากปัญหา Callback Hell ก็มีไลบรารี่ที่แก้ปัญหาความสวยงามของการเขียนโค้ดแบบ callback ของ JavaScript ออกมาหลายตัว ตัวที่น่าสนใจอีกตัวที่ผมชอบใช้ก็คือ async ซึ่งก็มีความสามารถมากมายสามารถกำหนดลำดับการทำงานแบบต่างๆได้มากมายไม่ว่าจะเป็น waterfall,series ,parallel,etc แต่ก็ยังไม่ตอบโจทย์เรื่องความสวยงามของโค้ด ก็มีการสร้างไลบรารี่ Promise ขึ้นมา เพื่อให้เขียนโค้ด asynchronous แต่ synchronous เป็นลำดับได้ เอ่ะ งง รึเปล่า เอาเป็นว่า Promise จะช่วยให้เราเข้าใจลำดับการทำงานของ asynchronous ที่มีความต่อเนื่องกันได้ง่ายขึ้น จริงรึเปล่าต้องมาลองกันดู
Java Script Callback ก็คือ การเรียกฟังก์ชั่นแบบ Asynchronous เอ่ะ แล้วการเรียกแบบ Asynchronous มันคืออะไรอีกเนี่ย ? คำว่า Asynchronous กับ Synchronous ในแวดวงวิศวกรรมหรือเทคโนโลยีมักจะได้ยินกันบ่อยๆ ซึ่งมักใช้เกี่ยวกับการรับส่ง ข้อมูล สัญญาณ ในรูปแบบต่างๆ ซึ่งการส่งข้อมูลหรือสัญญาณต่างๆนั้นก็ ต้องมี ผู้ร้องขอ - ผู้ตอบกลับ การส่งแบบ Synchronous นั้นเป็นการรอจังหวะให้การร้องขอและการตอบกลับเสร็จเป็นเรื่องๆไปจึงจะทำงานตามขั้นตอนการร้องขอครั้งใหม่
จากตัวอย่างการเขียน Route URIs ของการเขียน RestApi ในตอนที่แล้วนั้น มีเพียง 4 route เท่านั้น คือ /get,/add,/edit และ /delete แต่ในชีวิตจริงแอพหนึ่งแอพมีเป็น 100 route ขึ้นไปแน่นอนตามขนาดแอพ แอพใหญ่ๆอาจจะมีมากถึงหมื่นเลยทีเดียว ส่วนผมเองเคยแตะถึงระดับพันต้นๆเท่านั้น เมื่อมี route มากขึ้น หากมาเขียนไว้ในไฟล์ๆเดียว หากในบริษัทมีคนพัฒนา Api หลายคนคงต้องปวดหัวในการแก้ไขไฟล์หลักนี้แน่นอน ถึงแม้ปัจจุบันมีเครื่องมือในการคอนโทรลเวอร์ชั่นดีๆอย่าง svn และ github ในตอนนี้เราจะมาแก้ไขปัญหานี้แบบง่ายๆ
การเขียนเว็บเซอร์วิส หรือ เว็บ Api (Application Programming Interface) เพื่อให้เทคโนโลยแพลตฟอร์มต่างๆสามารถแลกเปลี่ยนข้อมูลกันได้ ไม่ว่าจะเป็น OS ,Web ,Mobile Application นั้น มี 2 มาตรฐานที่ได้รับความนิยม ได้แก่
NodeJS มีไลบรารี่ให้ใช้กว่า 2 แสนแพคเกจ (ณ วันที่ 6/2/2016) แม่เจ้า เยอะมากแล้วจะใช้ตัวไหนดี ดูทั้งหมดได้ที่ npmjs.com หลักการเลือกใช้ไลบรารี่ทั่วไป แต่ละคนให้น้ำหนักไม่เท่ากัน ผมพิจาณาจาก เงื่อนไข ดังนี้ มีฟังก์ชั่นที่ผมต้องการ ทำงานได้ถูกต้อง ใช้งานง่าย มีเอกสารอ่านง่าย หาข้อมูลศึกษาได้เยอะ ได้รับความนิยม ดูจากการโหวต จำนวนของผู้เข้าร่วมพัฒนา การ Support ความสม่ำเสมอในการออกเวอร์ชั่นใหม่ๆ อั้ยย่ะ แค่เลือกใช้ไลบรารี่ สมัยนี้เสียเวลากว่าเขียนโค้ดอีกนะ สำหรับการทำ * ระบบหลังบ้าน (Back End) มีไลบรารี่ในการทำ Web Framework ที่ได้รับความนิยมเท่าที่ผมรู้จักอยู่ 4 ตัว ได้แก่ Express – ออกมาเป็นตัวแรก เข้าใจได้ง่าย มี Feature มากมาย Hapi – เน้นการเขียนลักษณะ Config และ Flow […]
NodeJS เป็นเทคโนโลยีที่เรารู้กันว่าเป็น JavaScript ฝั่งเซิร์เวอร์ ดังนั้นก็ต้องมีพื้นฐานภาษา JavaScript จึงจะช่วยให้ทำความเข้าใจในการเขียนโค้ดบน NodeJS ได้ง่ายขึ้น ในบทความนี้จะสรุปเพียงสั้นๆที่พอให้ไปต่อได้เท่านั้น JavaScript Value Type ภาษา JavaScript มีการเก็บค่าอยู่ 3 แบบด้วยกัน คือ boolean ค่าตรรกะ true , false numeric ค่าตัวเลข Number.MIN_VALUE 5e-324 – Number.MAX_VALUE 1.7976931348623157e+308 string “hello” , ‘hello’ Reference Type การเก็บค่าแบบ Reference Type เก็บในรูปแบบยอดฮิตอย่าง JSON (JavaScript Object Notation) {"firstName":"John", "LastName":"Doe" , "Age":30} การประกาศตัวแปร ใช้คำว่า var ขึ้นต้น ตามด้วยชื่อตัวแปรตามกฎการตั้งชื่อของภาษาทั่วๆไป var […]
Google V8 V8 เป็น Engine ที่สร้างโดย Google ด้วยภาษา C++ ใช้คอมไฟล์ JavaScript ให้เป็น Byte Code ซึ่งช่วยให้ JavaScript ทำงานได้เร็วขึ้นมาก เมื่อเรา Complie NodeJS จะเป็น Byte code อยู่ในหน่วยความจำ ซึ่งคอมพิวเตอร์เข้าใจทำให้ทำงานได้เร็ว การคอมไพล์เราได้ลองทำในตอนที่ 1 ดังนี้ node ch1_hello.js เมื่อเราดำเนินการทำตามคำสั่ง ดังกล่าว ชุดคำสั่ง byte code นั้นจะถูกสร้างเป็น process ไว้ในหน่วยความจำ เมื่อคอมไพล์เสร็จ หากเราลบไฟล์ ch1_hello.js ออก โปรแกรมที่รันอยู่ก็ยังสามารถทำงานได้ เพราะอยู่ในหน่วยความจำแล้ว ในส่วนรายละเอียดการทำงานเชิงลึกของ V8 Engine คงไม่ได้กล่าวถึงเพราะคงมีน้อยคนนักที่จะลงไปศึกษาระดับสถาปัตยกรรม ส่วนใหญ่ก็ศึกษาเพื่อเขียนโปรแกรมเป็นหลัก หากใครสนใจสามารถศึกษาเพิ่มเติมได้ที่ https://developers.google.com/v8/?hl=th Blocking I/O สำหรับพื้นฐานการทำงานของคอมเตอร์นั้น มีอยู่ […]