Category: developer

เขียนโปรแกรม คอมพิวเตอร์ และสาระเกี่ยวกับ IT ล่ะนะ

125-cover

All About OOP – ตอนที่ 3 Polymorphism หลากรูป หลายลักษณ์

อ่านตอนก่อนหน้านี้ได้ที่ มาถึงข้อสุดท้ายของคอนเซ็ปแนวคิดแบบ OOP กันแล้ว นั่นคือ Polymorphism (โพลีโมร์ฟิซึม – คำศัพท์ที่เจอครั้งแรกออกไม่ออกเลยว่าต้องออกเสียงว่าอะไร) ภาษาไทยแปลออกมาว่า “การพ้องรูป” บอกตรงๆ เลยว่าเป็นหัวข้อที่เขียนยากมาก ถ้าอ่านแล้วยังไม่เข้าใจ ตอนหลังจะมีตัวอย่างให้นะ (อย่าเพิ่งเลิกงานล่ะ) ในบทความที่แล้วเราพูดถึง Inheritance หรือการสืบทอดไปแล้วซึ่งพูดถึงการส่งต่อโค้ดส่วนที่เหมือนๆ กันลงไปยังคลาสลูก แล้วนำคลาสลูกไปใช้โดยไม่ต้องเขียนโค้ดใหม่ทั้งหมด … แต่สำหรับ Polymorphism จะเป็นกระบวนท่าต่อเนื่องมาอีกทีด้วยมุมมองที่กลับกัน คือ เราจะเขียน child-class เพื่อปรับปรุงการทำงานของ parent-class แทน (ปรับปรุงเฉยๆ ไม่ได้แก้ไขโค้ด) ตัวอย่างเช่น กำหนดให้เรามีคลาสของวัตถุที่สามารถบินได้ ของเรียกว่า Flyable ละกัน

ต่อมา...

127-cover

JavaScript ฉบับมือใหม่ – ตอนที่ 2 มารู้จักECMAScript6กันดีกว่า

ภาษาโปรแกรมนั้นมีการปรับปรุงไปเรื่องๆ JavaScript ก็เช่นกัน ถ้าย้อนไปดูประวัติของมันจะพบว่ามันเกิดขึ้นมาเพื่อทำงานง่ายๆ ให้เบราเซอร์มี interactive กับผู้ใช้ได้นิดหน่อยเท่านั้น โดยที่คนสร้างคงไม่ได้คาดว่ามันจะเดินทางมาไกลขนาดนี้ ทำให้ต้องออกเวอร์ชั่นใหม่ๆ ที่มีฟีเจอร์เหมือนภาษาระดับสูงภาษาอื่นมา ซึ่งตัวที่เราควรจะรู้จักในขณะนี้คือ เวอร์ชั่นที่ 6 หรือ ES6 (ถ้าเรียกตามปีคือ ES2015) ที่ปัจจุบันเบราเซอร์ที่รองรับการเขียน JavaScript แบบ ES6 ก็มีมากขึ้นเยอะแล้ว เพราะมันออกมาตั้งหนึ่งปีแล้ว (จริงๆ ตอนนี้เขากำลังจะไป ES7 กันแล้วล่ะ) ในบทความนี้จะมาแนะนำฟีเจอร์ใหม่ๆ ที่เพิ่มเข้ามาใน ES6 สำหรับคนที่เคยเขียนแต่แบบ ES5 อาจจะต้องปรับตัวตามซะหน่อยนะ let กับ const จากเดิมเวลาเราจะประกาศตัวแปรในภาษา JavaScript เราจะใช้คำสั่ง var...

120-cover

JavaScript ฉบับมือใหม่ – ตอนที่ 1 พื้นฐานการเขียนJS

JavaScript ถือว่าเป็นหนึ่งในภาษายอดนิยมที่สุดในยุคนี้ มีคนใช้งานมันเยอะมาก แต่ในขณะเดียวกันมันก็เป็นภาษาที่คนไม่เข้าใจเยอะที่สุดเช่นกัน โดยเฉพาะมือใหม่ทั้งหลาย เพราะแค่จะศึกษาก็เจอชื่อต่างๆ นานา เช่น jQuery Angular npm node.js React หรืออะไรต่อมิอะไรมากมายจนไม่รู้จะเริ่มจากไหน แต่ถ้าถามเรา เราแนะนำให้คุณเริ่มต้นจากพื้นฐานคือตัว JavaScript เพียวๆ ซะก่อน ถ้าเก่งแล้วค่อยขยับไปใช้ตัวอื่นๆ บทความชุดนี้จะพูดถึงพื้นฐาน JavaScript คร่าวๆ แนะนำแนวทางการใช้งานฉบับโปรแกรมเมอร์มือใหม่ แต่คำว่ามือใหม่ในที่นี้หมายถึงคนที่อาจจะไม่เคยเขียน JavaScript มาก่อนไม่ใช่มือใหม่ในโลกโปรแกรมมิ่งนะ เรื่องของ logic & algorithm พื้นฐานที่โปรแกรมเมอร์ควรจะรู้กันเราจะถือว่าคุณผู้อ่านรู้แล้วยกเว้นถ้ามันน่าสนใจจริงๆ เอ้า งั้นเริ่มกันเลย JavaScript ไม่ใช่ Java แม้ว่าทั้งสองภาษาจะมีคำว่า “จาว่า” อยู่ในชื่อเหมือนกัน...

123-cover

All About OOP – ตอนที่ 2 เจาะลึก Inheritance เมื่อคลาสมีผู้สืบทอดได้

อ่านตอนก่อนหน้านี้ได้ที่ ในโลก OOP เกิดขึ้นจากแนวความคิดหลักคือ “reuse เอากลับมาใช้ซ้ำ” ซึ่งเป็นสาเหตุที่ทำให้เกิดคอนเซ็ปที่สองตามมากคือ “ความเป็น abstract” ย้อนอดีตกันนิดนึง แนว คิดของ Object Oriented นั้นมีมานานมากแล้ว ประมาณปี 1960 (ใครเกิดทันบ้าง แน่นอนว่าเราเกิดไม่ทัน ฮา) โดยนักวิทยาศาสตร์คอมพิวเตอร์ 2 คนคือ Ole-Johan Dahl และ Kristen Nygaard ในยุคนั้นการเขียนโปรแกรมจะเขียนกับแบบ imperative แบบบน-ลง-ล่าง เขียนแบบสอนคอมพิวเตอร์เป็นขั้นๆ แบบ how-to … ทั้งสองคนต้องการสร้างภาษาคอมพิวเตอร์ใหม่ชื่อว่า SIMULA I ซึ่งเป็นภาษาสำหรับการทำ simulation...

122-cover

All About OOP – ตอนที่ 1 มารู้จัก class และ object กันเถอะ

บทความนี้ไม่ใช่บทความสอนสร้าง class ว่าเขียนโค้ดยังไง แต่เป็นการแนะนำการเขียนโค้ดโดยใช้ประโยชน์จากสิ่งที่ OOP เตรียมไว้ให้ได้มากที่สุด ดังนั้นพื้นฐานความรู้ขั้นต่ำสุดในบทความชุดนี้คือคุณควรจะอยู่ในระดับ “อ่านโค้ดง่ายๆ ออก” ไม่ต้องเก่งมากก็พอแล้ว   เปิดซีรีย์บทความใหม่ All About OOP … บทความชุดนี้จะพูดถึงแนวคิดการเขียนโปรแกรมในรูปแบบ Object Oriented Programming ซึ่งเป็นแนวคิดและสไตล์การเขียนโปรแกรมที่โปรแกรมเมอร์ (หรือ Developer) คงพบเจอกัน โปรเจคเกือบทุกโปรเจคที่ทำ หรือแม้แต่โค้ดที่โหลดมาใช้จากอินเตอร์เน็ทส่วนใหญ่มันจะอยู่ในรูปของ class และ object เสมอ เอาจริงๆ ตอนเขียนนี่ก็ยังลังเลอยู่นะว่าจะพูดถึงเรื่องอะไรบ้างดี เพราะผู้เขียนก็ยังไม่ได้เทพ OOP ขนาดบรรลุแล้ว แต่ก็เอาน่ะ ถ้ารอต่อไปก็คงไม่ได้เขียนแน่ๆ ดังนั้นหากบทความมีข้อผิดพลาดอะไรคุณสามารถคอมเมนท์แสดงความคิดเห็นได้นะ บทความชุดนี้จะพูดถึงอะไรบ้าง ที่กะไว้คร่าวๆ...

118-cover

เรื่องของ this ใน JavaScript และวิธีการใช้ bind, call, apply

ติดตามอ่านบทความเกี่ยวกับ JavaScript อื่นๆ ได้ที่ สำหรับคนที่เคยเขียนโปรแกรมแบบ OOP (ใครไม่รู้จักไปอ่านเพิ่มเติมได้ที่นี่) น่าจะคุ้นเคยกับตัวแปรที่ชื่อว่า this ซึ่งโดยปกติแล้วจะหมายถึงตัว object ที่กำลังอ้างถึงอยู่ เช่น

ตัวอย่างข้างบน คลาสมีการประกาศตัวแปรชื่อ x เอาไว้ เมื่อเราจะสั่งงานใน method ให้ทำอะไรกับตัวแปร x นี่เราจะต้องขึ้นด้วยการบอกว่า this.x เพื่อเป็นการบอกว่าเราจะยุ่งกับ x ที่เป็นตัวแปรของคลาสข้างนอกโน้นนะ (ในบางภาษาเช่น Java สามารถละคีย์เวิร์ด this ได้แต่ตามหลักคือมันก็จะใส่ this ให้เองนั่นแหละ) แต่มีอยู่ภาษาหนึ่งที่คีย์เวิร์ด this ทำตัวไม่ค่อยเหมือนภาษาชาวบ้านคนอื่นเขาเท่าไหร่ นั่นคือ JavaScript

115-cover

[Operating System] ว่าด้วยเรื่องของ Memory Management: Paging

หนึ่งในหน้าที่หลักๆ ของระบบปฏิบัติการ (OS) คือควบคุมการใช้เมมโมรี่ของโปรแกรมต่างๆ ที่รันอยู่ในเครื่อง เพราะทุกโปรแกรมล้วนต้องการพื้นที่สำหรับเก็บตัวแปรเวลาทำงานทั้งนั้น แต่วันนี้ที่เราจะมาพูดถึงหลักๆ กันจะโฟกัสที่เรื่องของ Paging หรือการแบ่งเมมโมรี่ออกเป็นเพจๆ ของOS Background .. ก่อนเข้าเรื่อง รู้หน่อยก็ดีนะ ก่อนจะพูดถึงเรื่องเพจกัน มาทบทวนการทำงานระหว่าง CPU – Main Memory (RAM) – Secondary Memory (Hard Disk) กันหน่อย ถือเป็นความรู้พื้นฐานที่ต้องใช้เลยนะ ใครรู้แล้วข้ามๆ ไปหัวข้อถัดไปเลยนะ โครงสร้างหลักๆ ของคอมพิวเตอร์แบ่งเป็น 3 ส่วนคือ CPU (สมอง) – Memory (ความจำ)...

pexels-photo-71184

[SQL] สรุปการใช้ view-function-procedure-trigger แบบง่ายๆ

ถ้าพูดถึงภาษาที่ใช้ติดต่อกับ Database อย่าง SQL แล้วส่วนใหญ่น่าจะนึกถึงคำสั่งพวก select, insert, update, delete กันเป็นอย่างแรก หรือถ้านึกได้มากกว่านั้นก็จะเป็นคำสั่งพวก create table แต่สำหรับภาษา SQL แล้วยังมีคำสั่งอีกชุดหนึ่งที่ไม่ค่อยมีคนรู้จักกันนั่นคือเจ้า 4 ตัวที่อยู่ในหัวเรื่องนั้นแหละ คำสั่งทั้ง 4 คือ view, function, procedure, trigger ซึ่งทั้งหมดเป็นคำสั่งประเภท DDL (Data Definition Language) ภาษานิยามข้อมูล หรือ ภาษาที่เอาไว้ใช้สร้างโครงสร้างของ database ซึ่งจะต่างกับคำสั่งพวก select และ insert, update, delete...

31

วิธีคำนวน Delay, loss and throughput ในระบบ packet-switched networks

เวลาเราส่งข้อมูลผ่านระบบเครือข่าย ไม่ว่าจะเป็นส่งรูปให้เพื่อน อัพโหลดไฟล์ หรือพิมพ์แชทก็ตาม ข้อมูลของเราจะวิ่งผ่าน network (ยังไม่ขอพูดละกันว่าผ่านยังไงบ้าง) แต่ไม่ใช่ว่าทันทีที่เรากดส่งปุ๊บมันจะถึงปั๊บ เพราะมันมีสิ่งที่ทำให้ Data ของเราถึงจุดหมายช้าลง นั่นคือที่มาของ Delay