Skip to content

Tag: javascript

ใช้งาน Promise ใน Node.js ด้วย Bluebird

ทำไมควรใช้ Promise? ทำไมถึงควรใช้ Bluebird?

โพสต์ที่แล้วผมแนะนำ lib สำหรับจัดการ control flow ของ Node.js ไปคือ Async และ Bluebird ซึ่ง Async ทุกคนที่เขียน Node.js คงคุ้นเคยกันดีเพราะเป็นสไตล์ callback pattern แต่ Bluebird อาจจะยังไม่คุ้นเคยกันเพราะใช้ Promise pattern หรืออาจจะใช้กันเป็นปกติอยู่แล้วก็ไม่รู้ แต่ผมไม่สนใจครับ โพสต์นี้ผมจะมาสอนจระเข้ว่ายน้ำ (นี่แน่ะ!)

Promise ที่เป็น built-in ฟีเจอร์ของ ES6 ถึงจะสะดวกแต่ส่วนตัวผมมองว่ามันก็ยังไม่ค่อยสะดวกเท่าไหร่ถ้ามีการใช้งานในรูปแบบที่ซับซ้อนขึ้น เช่น การจัดการกับ Promise array หรือ Promise Map เพราะ class Promise ของ ES6 เองเป็น class พื้นฐานฟีเจอร์จึงน้อย Bluebird เลยสะดวกกว่า

Leave a Comment

Javascript และ NodeJS วน loop แบบมี delay ยังไงนะ?

เนื่องจาก Javascript และ NodeJS (จริงๆ ก็ภาษาเดียวกัน) ไม่มี function สำหรับการทำ delay หรือ sleep มาให้เพราะถูกออกแบบมาให้ทำงานบนเบราว์เซอร์แต่แรกจึงมีแค่ setTimeout() และ setInterval() เท่านั้นซึ่งก็เป็น callback based ทั้งคู่ ถ้าใช้งานปกติทั่วไปมันให้ผลเหมือนกับ function delay หรือ sleep ในภาษาอื่นครับ แต่ถ้าใช้ใน loop จะไม่ให้ผลอย่างนั้น

Leave a Comment

เปรียบเทียบความเร็วในการ render ของ template engine

โพสต์ก่อนหน้าแนะนำ Handlebars ไปก็เลยได้ลองหาดูว่ามีเจ้าไหนที่น่าใช้อีกบ้าง การเลือกเครื่องมือมาใช้ในงาน dev คงหนีไม่พ้นประสิทธิภาพ ที่วัดกันง่ายๆ เลยของ template engine คือความเร็วในการ render ก็ไปเจอ ECT template engine ซึ่งเขาเคลมว่าเร็วที่สุดในตอนนี้

ที่เคลมว่าเร็วที่สุดเขาก็ไม่ได้อ้างลอยๆ นะครับมี benchmark ทดสอบให้ดูด้วย (เลื่อนไปดูข้างล่าง) และในเว็บก็มีให้ลองใช้งานด้วย ผมดูแล้วเจอฟีเจอร์ที่น่าสนใจคือมันสามารถ include ส่วนอื่นมาต่อกันได้เหมือน PHP เลย

Leave a Comment

Handlebars template engine ที่น่าใช้อีกตัว

เมื่อนานมาแล้วผมเอา Mustache javascript template engine มาใช้แล้วพบว่ามันก็เป็น “Logic less” template engine จริงๆ เจอข้อเสียอยู่ 2 อย่างคือ

  1. ใช้กับ data model ที่เป็น JSON แปลกๆ แล้วใช้ลำบาก อันนี้จะว่า Mustache อย่างเดียวก็ไม่ถูกต้องว่าคนออกแบบ JSON structure ด้วย สรุปคือมันไม่ยืดหยุ่นเท่าไหร่
  2. if else ใช้ลำบากคือจริงๆ มันสามารถใช้ได้นะแต่ syntax ไม่สื่อโค้ดอ่านยาก
1 Comment

ใช้ Javascript เล่นเสียงจากแท็ก <audio>

แท็ก <audio> เพิ่งเพิ่มมาใน HTML5 เอาไว้ใช้ define ข้อมูลที่เป็นคลิปเสียง ถ้านึกไม่ออกให้ลองนึกถึงเว็บแอปที่มีการแจ้งเตือน เช่น Facebook เมื่อมีการแจ้งเตือนนอกจากจะมี notification สีแดงบอกแล้วก็จะมีเสียงเตือนด้วย หรือระบบแชทถ้ามีข้อความจากคู่สนทนาก็จะมีเสียงเตือนแจ้ง เป็นลูกเล่นเล็กๆ น้อยๆ ด้าน UX

Leave a Comment

Responsive web design resources

รวมๆ resources ในการทำ responsive web design เผื่อมีโอกาสได้ทำอีกจะได้ไม่ต้องไปควานหาในเน็ตให้เหนื่อย [Recommended] Twitter Bootstrap พักหลังงาน UI ผมใช้เจ้านี่แทน jQuery UI ไปหลายงานแล้วแต่ละตัวมีข้อดี-ข้อเสีย ใช้ร่วมกันก็ได้เหมือนกัน [Recommended] Respond.js ตามคำโปรยเขาเลย “A fast & lightweight polyfill for min/max-width CSS3 Media…

Leave a Comment

หัดใช้ Mustache กันดีกว่า

Mustache คืออะไร?

Mustache เป็น template engine (บางทีก็เรียก render engine) ตัวหนึ่งในเว็บโครงการเขานิยาม lib ตัวนี้ว่า

Logic-less templates.

Mustache รองรับภาษาอื่นๆ เยอะมาก เช่น RubyJavaScriptPython,ErlangPHPPerlObjective-CJava.NET,AndroidC++GoLuaoocActionScript,ColdFusionScalaClojureFantom,CoffeeScriptD, และ node.js

หน้าที่ของมันคือ generate markup  (ถ้าเป็น web app ก็ HTML) ซึ่งเป็นส่วนหน้าของ app จาก data model (JSON) ที่เราออกแบบไว้ จะว่าไปมันก็เป็นเครื่องมือที่เกิดจากแนวคิด MVC ที่พยายามแยกการทำงานของโปรแกรมหรือ application ออกเป็นส่วนตามการทำงาน

5 Comments