Standard Post with Image

วิธีการออกแบบเพื่อลดการซับซ้อนของ software

ควรออกแบบให้เป็น Layer และ แต่ละ Layer ควรกำหนดจุดประสงค์ให้ชัดเจน ภาพจากหนังสือ  https://www.amazon.com/Grokking-Simplicity-software-functional-thinking/dp/1617296201 จากภาพด้านบนเราควรจะกำหนดวัตถุประสงค์ของแต่ละ layer ให้ชัดเจน และ call graph ก็ไม่ควรจะยุ่งเหยิง หรือมีลูกศรที่ข้าม layer   และใน layer เดียวกันก็ไม่ควรจะมีที่เรียกกันเอง  ( ถ้า function นั้นๆ เรียก function ใน layer เดียวกัน function นั้นก็ต้องอยู่บน layer ที่สูงกว่า ) 

Read More
Standard Post with Image

Web Socket คืออะไร

Web socket คือ technology ที่ใช้สื่อสารระหว่าง web browser และ server  เป็นการสื่อสารแบบสองทาง ข้อดีของ web socket คือ program ในฝั่ง web browser ไม่ต้องเขียนในลักษณะของการเรียก function ในแบบ interval วนไปเรื่อยๆ แต่ใช้วิธีการ  Event listening  สรุปง่ายๆ คือ  ถ้าเราเขียน code ว่า เราสนใจใน event นี้ เมื่อ event นั้นๆ เกิดขึ้นมา code ที่เราผูกกับ event. นั้นก็จะนำ event data ไป process  

Read More
Standard Post with Image

เทคนิคที่ช่วยให้เขียน program ให้ดีขึ้นอย่างรวดเร็ว

ข้อแรกเราต้องเข้าใจปัญหาของระบบที่เราต้องการจะแก้ โดยเราจะต้องค้นหาว่าอะไรคือปัญหาหลักๆ  เมื่อเราค้นพบแล้ว เราก็ควรจะออกแบบโครงสร้างของระบบ และลองร่าง code ในระดับที่เพียงพอจะทดสอบแนวคิดของเราได้  เราอาจจะเขียนใส่กระดาษก็ได้

Read More
Standard Post with Image

มาสร้าง Blockchain ของเราเองกันเถอะ ( 1 )

Blockchain คือ การบันทึกข้อมูล ที่ยากในการแก้ไข ( แทบจะเป็นไปไม่ได้ ) ที่จะเปลี่ยนแปลงข้อมูล, hack ระบบ, หรือโกงได้ องค์ประกอบของ blockchain จะประกอบด้วย Block ซึ่งเป็นที่เก็บข้อมูลที่เราต้องการบันทึก เมื่อมี block ใหม่เข้ามา ก็จะทำการไปต่อท้ายเหมือนเป็นสายโซ่ ( chain ) เราเลยเรียกว่า Blockchain แต่การที่จะเพิ่ม block เข้าไปใหม่ใน blockchain network จะมีขั้นตอนที่เรียกว่า proof of work ( การสร้าง hash key ที่ตรงตามเงื่อนไขที่เรากำหนดไว้ เราอาจจะรู้จักขั้นตอนนี้ว่า “ขุด” mine )

Read More
Standard Post with Image

เราจะเข้าใจ code ของ project ที่มีความซับซ้อนได้อย่างไร ?

ในสมัยที่ผมเขียน code แรกๆ ผมเข้าใจว่าผมสามารถเข้าใจการทำงานของ program ทุกอย่างผ่านการอ่าน code เพียงอย่างเดียว ผมมีหนังสือหลายเล่มที่อยากแนะนำให้ programmer ลองอ่านดูนะครับ

Read More
Standard Post with Image

ทำแอปประชุม online ด้วย Zoom SDK และ Ionic mobile framework

เมื่อสองสามวันก่อน มีลูกค้ารายหนึ่ง มาปรึกษาว่า เค้าต้องการจะใช้ Wowza Video streaming server มาทำเป็น Online conference แต่เนื่องจากเค้าทำอย่างไรก็ยัง delay อยู่ประมาณ 5 วินาที  แต่ความต้องการของลูกค้าเค้าอยากให้การตอบสนองเหมือน Zoom เลย 

Read More
Standard Post with Image

5 ข้อ ที่เข้าใจผิดในการเขียน code

1. ต้องเป็นคนความจำดี อันนี้ไม่จริงเลย  จริงอยู่ความจำเป็นสิ่งสำคัญ แต่ความเข้าใจสำคัญกว่า และจากที่เขียน code เลี้ยงชีพมาหลายปี หลายๆ ครั้งก็ copy code มาจากตัวอย่าง แล้วเอามาแก้ไข แต่ผมไม่ได้หมายถึงว่า copy แนวคิดของ code ตัวอย่างนะ เราต้องทำการออกแบบ program ของเราเสียก่อน ว่ามันจะทำอย่างไร ด้วยวิธีการอย่างไร

Read More