บทความ

สอนแบ่งปันความรู้ เทคโนโลยีเพื่อ “ขับเคลื่อนประเทศไทย”
Advanced options
Function Excel A to Z

Excel Functions A to Z รวมสูตร 26 สูตร พร้อมวิธีใช้งาน และ ตัวอย่าง ให้เข้าใจได้ง่าย ๆ

สูตรคำนวณ Excel มีทั้งหมด 26 สูตร พร้อมวิธีใช้งาน และ ตัวอย่าง ให้เข้าใจได้ง่าย ๆ 26 สูตร AVERAGE, BAHTTEXT, COUNTA, DATE, EOMONTH, FV, GETPIVOTDATA, HYPERLINK, INDEX, LEN, MID, NOW, OFFSET, PROPER, QUOTIENT, RIGHT, SUM, TEXTJOIN, TRIM, UPPER, VLOOKUP, WEEKNUM, WORKDAY.INTL, XLOOKUP, YEAR, Z.TEST
Generalized Async Return Types

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : Generalized Async Return Types

คุณสมบัติ “การทำให้ค่าส่งกลับของ Async กว้างขึ้น” (Generalized Async Return Types ย่อ GART) เป็นคุณสมบัติใหม่ของภาษา C# 7.0 ที่ช่วยให้การส่งค่ากลับจาก Method แบบ Async ไม่จำเป็นต้องมีชนิดข้อมูลเป็น Object อย่างแต่ก่อน เดิมทีการส่งค่ากลับจากmethodแบบAsyncเป็นได้แค่ task, task<T> หรือไม่ก็ void ซึ่งไม่ดีเพราะการเป็น task เป็น Reference Type การใช้งานมันจะเกิดการจองที่หน่วยความจำสำหรับ object หรือที่เรียกว่า boxing ที่เราต้องการหลีกเลี่ยงเพราะจะทำให้เกิดปัญหาคอขวด
การดู Critical Path ของโครงการ ใน Microsoft Project

การดู Critical Path ของโครงการ ใน Microsoft Project

ปัญหาหนึ่งที่ผู้จัดการโครงการพบบ่อย ๆ ก็คือ ระหว่างที่ดำเนินโครงการ มีงานบางงานมีปัญหาเกิดขึ้น เช่นวัตถุดิบมาช้ากว่าที่คาดการณ์ไว้ หรือพนักงานต้องการลาในวันทำงาน ผู้จัดการโครงการจะตัดสินใจแก้ปัญหาอย่างไร หากอนุมัติไปแล้วงานที่เกี่ยวข้องกับวัตถุดิบหรือพนักงานดังกล่าวจะเสร็จช้ากว่ากำหนด จะทำให้วันเสร็จสิ้นของทั้งโครงการต้องเลื่อนไปหรือไม่ ซึ่งก็จะมีผลต่อค่าปรับและความน่าเชื่อถือขององค์กรในอนาคต ปัญหาในลักษณะนี้สามารถป้องกันได้ โดยการพิจารณาว่างานที่เกิดปัญหาขึ้นอยู่ใน Critical Path หรือไม่
การดูค่าใช้จ่ายโครงการแยกตามเดือนด้วย Microsoft Project

การดูค่าใช้จ่ายโครงการแยกตามเดือนด้วย Microsoft Project

โครงการขนาดใหญ่มักมาพร้อมกับงานย่อย(tasks)จำนวนมาก และมีการกำหนดการใช้งานทรัพยากรที่หลากหลาย ไม่ว่าจะเป็นวัตถุดิบ คน หรือค่าใช้จ่ายอื่น ๆ และแน่นอนว่าผู้จัดการโครงการต้องนำข้อมูลเหล่านี้มาใช้ในการตัดสินใจและแก้ปัญหาได้อย่างรวดเร็ว โปรแกรม Microsoft Project เป็นโปรแกรมที่ถูกสร้างขึ้นเพื่ออำนวยความสะดวกให้กับผู้จัดการโครงการขนาดใหญ่โดยเฉพาะ ซึ่งสิ่งที่สำคัญที่สุดในโครงการคงหนึไม่พ้นการควบคุมและบริหารค่าใช้จ่ายให้อยู่ภายใต้งบประมาณที่ได้กำหนดไว้
การอ่าน Query Execution Plan ตอนที่ 1

การอ่าน Query Execution Plan ตอนที่ 1

บทความนี้ต่อจากบทความ “เตรียมพร้อมก่อนอ่าน Execution Plan” หากผู้อ่านเปิดมาเจอบทความแล้วยังไม่ได้อ่านบทความแรกผู้เขียนแนะนำให้อ่านก่อน เพราะจะได้ทราบถึงขั้นตอนการประมวลผลคิวรี่ว่ามีกลไกเช่นไร สำหรับบทความนี้ผู้เขียนจะใช้ 2 เครื่องมือเป็นหลักคือ Microsoft SQL Server Management Studio (SSMS) และ Sentryone Plan Explorer หากผู้อ่านต้องการทำตามตัวอย่างในบทความ ก็สามารถหาดาวน์โหลดได้จาก https://www.sentryone.com/plan-explorer
Switch Statement with Pattern Matching

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : Pattern Matching ด้วยคำสั่ง Switch

ในภาษา C# เวอร์ชัน 7.0 การตรวจสอบเพื่อการจับคู่รูปแบบ (Pattern Matching: PM) ด้วยคำสั่ง if และ switch ได้รับการพัฒนาให้ดียิ่งขึ้น ยืดหยุ่นกว่าเดิม เขียนโค้ดได้สะดวกขึ้น แต่เดิมการทำ PM ด้วยหลักวัตถุวิธีเราจะสร้างคลาสฐานเป็นแบบ “abstract” จากนั้นจะใช้กรรมวิธีสืบคุณสมบัติเป็นคลาสลูกหลาย ๆ แบบตามต้องการ ส่วนเก็บข้อมูลและโค้ดเพื่อจัดการข้อมูลจะถูกผนึกไว้เป็นหน่วยเดียวกัน ซึ่งเป็นการ “เชื่อมแน่น” (tight coupling) ในกรณีที่เราต้องการการ “เชื่อมหลวม” (loose coupling) เราจะแยก ส่วนเก็บข้อมูลและโค้ดเพื่อจัดการข้อมูลออกจากกัน จากนั้นทำ PM ด้วยคำสั่ง if และ switch ซึ่งหากมีรูปแบบจำนวนวนมาก โค้ดจะยืดยาวเยิ่นเย้อ
ภาพหน้าปกบทความ เปลี่ยนชื่อเดือนภาษาไทยให้เป็นชื่อเดือนภาษาอังกฤษใน Microsoft Access ด้วยฟังก์ชัน Choose

เปลี่ยนชื่อเดือนภาษาไทยให้เป็นชื่อเดือนภาษาอังกฤษใน Microsoft Access ด้วยฟังก์ชัน Choose

กลุ่มฟังก์ชัน Program Flow นั้นมี 3 ฟังก์ชันในหมวดหมู่นี้ ได้แก่ 1. ฟังก์ชัน IIF แนวทางการใช้เหมือนฟังก์ชัน IF ใน MS Excel 2. ฟังก์ชัน Switch 3. ฟังก์ชัน Choose จะกล่าวถึงกันในบทความนี้ค่ะ
รูปแสดงหัวข้อ App ไม่ค้างตอนอ่านไฟล์ใหญ่

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : App ไม่ค้างตอนอ่านไฟล์ใหญ่

.NET Core version ที่ออกใหม่ก็จะใช้งานกับภาษา C# version ใหม่สุดได้ .NET Core version ปัจจุบันคือversion 2.1 สนับสนุนภาษา C# version 7.1 ส่วนversionต่อไปคือ 3.0 จะสนับสนุนภาษา C# version 8.0 ในหัวข้อนี้เราจะมาดูตัวอย่างการเขียนโค้ด การทำงานกับซิปไฟล์ (zip file) ด้วยภาษา C# ใน.NET Core ว่าเหมือนหรือแตกต่างกับการเขียนภาษา C# ใน .NET Framework หรือไม่อย่างไร
สูตรคำนวณหามูลค่าเงินตามเวลาในอนาคต ด้วยฟังก์ชั่น FV

สูตรคำนวณหามูลค่าเงินตามเวลาในอนาคต ด้วยฟังก์ชั่น FV

ใน Microsoft Excel มีความสามารถในการคำนวณด้านการเงิน (Finance Functions) มากมาย ไม่ว่าจะเป็นการคำนวณ PV, PMT, IRR, FV, NPER, NPV เป็นต้น ซึ่งบทความในวันนี้จะแนะนำสูตรสำหรับการหามูลค่าเงินในอนาคต หรือ Future Value (FV) กันครับ
เตรียมพร้อมก่อนอ่าน Execution Plan

เตรียมพร้อมก่อนอ่าน Execution Plan

มีคนถามเข้ามาพอสมควรเวลาที่ผู้เขียนแสดง Query Execution Plan และวิเคราะห์ประสิทธิภาพให้ฟัง ทั้งในหลักสูตรที่ผู้เขียนบรรยายหรือสรุปผลประสิทธิภาพให้ลูกค้าฟัง ส่วนใหญ่อยากทราบว่ารายละเอียดของแต่ละตัวดำเนินการที่แสดงหมายถึงอะไร ผู้เขียนก็อยากจะเล่ามันทุกตัวแต่บางครั้งมันเล่ายากมาก เพราะหลายๆ ตัวต้องรู้ถึงโครงสร้างตารางทั้งแบบ Rowstore และ Columnstore ต้องรู้ถึงโครงสร้าง Indexes ทั้งแบบ Rowstore และ Columnstore เช่นกัน อีกทั้งยังต้องเข้าใจลำดับการประมวลผลของคำสั่ง เข้าใจถึงการเกิด Parallelism จิปาถะไปหมด ผู้เขียนขอเริ่มจากการทำความเข้าใจขั้นตอนการประมวลผลคิวรี่กันก่อนดีกว่า
ภาพหน้าปกบทความ การใช้ Socket Class เพื่อส่งและรับข้อมูลกับ Server HTTP

การใช้ Socket Class เพื่อส่งและรับข้อมูลกับ Server HTTP ใน .NET Core 2 และ C# 7

สำหรับบทความนี้จะกล่าวถึงคุณสมบัติที่ถูกปรับปรุงใหม่ของภาษาซีชาร์ป 7.0 และ .NET Core 2.0 ในประเด็นที่เกี่ยวข้องกับการสื่อสารข้อมูลในเครือข่าย
Best Practice Microsoft SQL Server 2019

ตั้งค่าตาม Best Practice ทันทีตั้งแต่ตอนติดตั้ง Microsoft SQL Server 2019

ผู้เขียนติดตาม Microsoft SQL Server 2019 จาก Community Technology Previews (CTPs) จนตอนนี้ออก Release Candidate (RC) แรกออกมาแล้ว สิ่งหนึ่งที่ผู้เขียนพอใจมากคือมีการตั้งค่าระดับ Instance ตาม Best Practice ที่ควรจะเป็นให้ตั้งแต่ตอนติดตั้งเลย ดังนี้
การดูต้นทุนโครงการด้วย Microsoft Project

การดูต้นทุนโครงการด้วย Microsoft Project

โครงการขนาดใหญ่ มักมีความซับซ้อนอยู่ภายใน ไม่ว่าจะเป็นงานย่อย(tasks)จำนวนมาก ทรัพยากร (resources) ที่เกี่ยวข้องหลากหลาย ซึ่งบาง task อาจมีการดำเนินงานทับซ้อนกัน และเรียกใช้งาน resources มี model การคิดค่าใช้จ่ายที่ซับซ้อน เช่น ค่าล่วงเวลาและราคาที่เปลี่ยนไปตามช่วงเวลา
ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 14

ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 14

ในตอนที่แล้วผู้เขียนพูดถึงเรื่องการเจาะจงอินเตอร์เฟส ซึ่งมีไว้เพื่อแก้ปัญหาในกรณีที่คลาสหนึ่งคลาสสืบคุณสมบัติจากอินเตอร์เฟสสองตัว และอินเตอร์เฟสสองตัวนั้นมีเมธอดชื่อเดียวกันและมีซิกเนเจอร์ตรงกัน จะมีผลให้อินเตอร์เฟสทั้งสองเรียกไปยังเมธอดเดียวกัน ในตอนนี้หัวข้อนี้จะพูดถึงการสร้างสมาชิกของอินเตอร์เฟสสองตัวแบบเจาะจงบ้าง
เก่งโค้ดงาน Business Intelligence ตอนที่ 7

เก่งโค้ดงาน Business Intelligence ตอนที่ 7

ในภาษาเอ็มเราสามารถเขียนคิวรีที่อ้างถึงคิวรีอื่นเป็นซอร์สได้ ยกตัวอย่างเช่น สมมติว่าเรามีเวิร์กชีตในโปรเกรมเอ็กซ์เซลซึ่งมีตารางอยู่สองอัน ตารางชื่อ Sales และ ตารางชื่อ Product
การแสดงวันเวลาปัจจุบันแบบอัตโนมัติทุก 1 วินาทีบนฟอร์ม

การแสดงวันเวลาปัจจุบันแบบอัตโนมัติทุก 1 วินาทีบนฟอร์ม

ถ้าเราต้องการให้ วันเวลาปัจจุบันแสดงบน Form โดยที่ไม่ต้องเขียน code เราสามารถทำได้ใช้ Calulate Control โดยกำหนด Property ที่ Control Source ของ Textbox Control Source
หน้าปกบทความ Backward Compatibility (การเข้ากันได้ย้อนหลัง) ของ API

Backward Compatibility (การเข้ากันได้ย้อนหลัง) ของ API

บทความตอนนี้พูดถึง Backward Compatibility ของ API ซึ่งคนโค้ดควรรู้และระมัดระวังเมื่อใช้งาน Framework ที่ออก version ใหม่กับ source code เก่าหรือ binary ที่ Compile ไว้กับ version เก่า หรือเมื่อเขียน library ใช้งานเอง เช่น ปัญหา Reference Types ที่ไม่เกี่ยวข้อง parameter แบบ Reference Types กับแบบที่ค่าเป็น null ไม่ได้ parameter ทางเลือก (Optional parameters) และ ปัญหาเรื่องความเข้ากันได้ย้อนหลังในระดับ source code และ binary เมื่อมีการทำ method overload กับ Type ที่เป็น Generic
การสืบค้นตามช่วงเวลา

การสืบค้นตามช่วงเวลา

นี่ก็เป็นอีกหนึ่งบทความใน “ซีรีย์คิวรี่ตามคำขอ” เพราะได้รับคำถามมา ก่อนอื่นผู้อ่านพบว่ามีผู้พัฒนาจำนวนไม่น้อยเก็บข้อมูล datetime เป็น string เพราะอาจไม่ชำนาญในการจัดการข้อมูล datetime เลยสตาฟมันไว้ในรูปแบบ string แทน ซึ่งกลายเป็นภาระในการสืบค้นเพราะเมื่อต้องการนำมาใช้ประโยชน์ก็ต้องหาทางสกัดข้อมูลจาก string มาเป็น datetime ก่อนอยู่ดี
การหาวันเริ่มต้นและวันสุดท้ายของเดือนปัจจุบัน

การหาวันเริ่มต้นและวันสุดท้ายของเดือนปัจจุบัน

บทความนี้ผู้เขียนขอเรียกเป็น “ซีรีย์คิวรี่ตามคำขอ” เพราะผู้เขียนได้รับการสอบถามถึงการสืบค้นวันสุดท้ายของเดือนปัจจุบัน ทั้งที่ Microsoft SQL Server นั้นมีฟังก์ชั่น EOMONTH (End of Month) มาตั้งแต่เวอร์ชั่น 2012
พัฒนาการณ์ของ Query Store

พัฒนาการของ Query Store

ตั้งแต่ได้เขียนบทความ “รู้จัก Query Store บน SQL Server 2016” เอาไว้ก่อนหน้านี้ แล้วได้เว้นช่วงไปพอสมควร ปัจจุบัน Microsoft SQL Server ใกล้จะออกเวอร์ชั่น 2019 ในเร็ววันนี้ มาดูกันว่า Query Store เปลี่ยนไปจากเดิมมากแค่ไหนกัน
เก่งโค้ดงาน Business Intelligence ตอนที่ 6

เก่งโค้ดงาน Business Intelligence ตอนที่ 6

บทความตอนที่ผ่านมาเราดูพารามิเตอร์สามตัวแรกของฟังก์ชัน Table.Group() ไปแล้ว ในหัวข้อนี้มาดูหน้าที่ของพารามิเตอร์ตัวที่สี่กันบ้าง พารามิเตอร์ตัวที่สี่ของฟังก์ชัน Table.Group() ใช้ทำหน้าที่กำหนดวิธีเรียกข้อมูล ถ้าเราไม่กำหนดอะไรจะมีค่าโดยปริยายเป็น GroupKind.Global ซึ่งมีความหมายว่า เมื่อเราจัดกลุ่มคอลัมน์ ลำดับการเรียงข้อมูลจะไม่มีผล ทุกแถวที่สัมพันธ์กับค่าในคอลัมน์จะถูกรวมเข้าด้วยกัน
Merge Query ด้วย Power Query

Merge Query ด้วย Power Query

ข้อมูลที่เราจะต้องทำการสรุปผล บางครั้งอาจจะมีข้อมูลมากกว่า 1 ตารางโดยมีความสัมพันธ์กัน คำสั่งหนึ่งที่จะใช้หาค่าใน Excel เราจะใช้ฟังก์ชั่น VLookup ซึ่งหากทำงานกับข้อมูลจำนวนมาก ก็จะรู้สึกว่า Excel มีความอืด หนืดมาก ซึ่งแนวทางในตัวอย่างนี้จะใช้ Merge Query ใน Power Query เพื่อทำการแก้ไขปัญหา โดยทำการ ETL ให้ข้อมูล Lookup เสร็จเรียบร้อย ทำให้ข้อมูลที่ได้ไม่มีสูตร การทำงานจะรวดเร็วและ ไฟล์จะเล็กลงอีกด้วย
ประโยชน์ของ Power Query เพื่อช่วยในทางธุรกิจ

ประโยชน์ของ Power Query เพื่อช่วยในทางธุรกิจ

Power Query เป็นเครื่องมือสำหรับงานด้าน Business Intelligence ช่วยทำเรื่อง Data Cleansing, Data Shaping, Data Corrector คือจะช่วยในการทำความสะอาดข้อมูล ปรับปรุงข้อมูลที่มาจากหลากหลายแหล่ง หลากหลายรูปแบบให้มีความพร้อมในการวิเคราะห์ข้อมูลด้วยเครื่องมือต่าง ๆ ในอนาคต โดย Microsoft Power Query สามารถเรียกใช้ได้ทั้งใน Power BI และใน Microsoft Excel ซึ่ง Microsoft Excel 2016, Excel 2019, Office 365 เป็นต้นมาจะมี Power Query ติดตั้งมาด้วย
การแปลงวันที่ ที่เป็นปี พ.ศ. ให้ เป็นปี ค.ศ. อัตโนมัติด้วย Power Query ใช้ได้ทั้ง Excel และ Power BI Desktop

การแปลงวันที่ ที่เป็นปี พ.ศ. ให้ เป็นปี ค.ศ. อัตโนมัติด้วย Power Query ใช้ได้ทั้ง Excel และ Power BI Desktop

ปัญหาหนึ่งของการทำงานกับข้อมูลประเภท วันที่ ก็คือ รูปแบบของวันที่ มีหลายรูปแบบ เช่น วันเดือนปี เดือนวันปี หรือ เป็นปี พุทธศักราช หรือเป็นชื่อเต็มของเดือน ชื่อย่อของเดือน การจะนำเอาข้อมูลดังกล่าวมาทำงาน หรือ ใช้ในการวิเคราะห์ข้อมูลได้ มีความจำเป็นที่จะต้องทำการแปลงให้เป็นวันที่ ให้ได้
ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 12

ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 12

ในตอนที่ผ่านมาได้พูดถึงข้อดีของภาษาซีชาร์ปที่มีคุณสมบัติ Expression Trees หรือ “ต้นไม้นิพจน์” ซึ่งเป็นข้อดีในภาษาซีชาร์ปที่ไม่พบในภาษาอื่น ๆ หลายภาษาอย่างเช่นภาษาซี หรือในภาษาจาวาสคริปต์ที่มีต้นไม้นิพจน์แบบย่นย่อ ไม่ใช่ต้นไม้นิพจน์เต็มรูปแบบอย่างที่เรากำลังพูดถึงอยู่ในขณะนี้
การเลือกประเภทกราฟให้เหมาะกับงาน

การเลือกประเภทกราฟให้เหมาะกับงาน

หลายคนที่จะต้องนำเสนอข้อมูล เพื่อใช้ในการทำรายงาน ประชุม การนำเสนอด้วยกราฟเป็นทางเลือกหนึ่งที่น่าสนใจ แต่เราจะเลือกกราฟอะไรดี จะลองสรุปให้ดูกันนะครับ ซึ่งสามารถนำไปใช้เลือกการนำเสนอให้เหมาะสมกับข้อมูล โดยนำไปใช้ในโปรแกรมอย่าง Excel หรือ Power BI หรือ Data Analytics ต่าง ๆ ได้
เก่งโค้ดงาน Business Intelligence ตอนที่ 5

เก่งโค้ดงาน Business Intelligence ตอนที่ 5

ฟังก์ชันใด ๆ สามารถส่งค่ากลับเป็นฟังก์ชันได้ และฟังก์ชันนั้นอาจขึ้นกับค่าของพารามิเตอร์หนึ่งตัวหรือมากกว่าของฟังก์ชันเดิม แสดงคุณสมบัติการปิด ในโค้ดนี้ฟังก์ชันที่คู่กับฟิลด์ MyFunction ส่งค่ากลับเป็นฟังก์ชันที่ส่งค่าของพารามิเตอร์ที่กำหนดให้แก่ตัวมัน ค่าใหม่ของฟังก์ชันจะถูกส่งกลับมาทำ แต่ละครั้งที่ฟังก์ชันถูกเรียก ค่าของพารามิเตอร์จึงถูกส่งกลับไป
เก่งโค้ดงาน Business Intelligence ตอนที่ 4

เก่งโค้ดงาน Business Intelligence ตอนที่ 4

ถ้าเปรียบเรคคอร์ดเป็นตารางในฐานข้อมูล ฟิลด์ก็คือคอลัมน์ต่าง ๆ การดึงข้อมูลจากตารางในภาษา SQL เราใช้คำสั่ง select ภาษาเอ็มก็มีตาราง (table) ที่จะพูดถึงในหัวข้อต่อไป ส่วนในหัวข้อนี้เป็นการดึงข้อมูลจากเรคคอร์เฉพาะบางฟิลด์ที่กำหนด เราใช้วิธีเขียนคำสั่งซึ่งมีซินแท็กซ์ดังนี้
คุณสมบัติ ref return ,ref local กับ Local Function

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : คุณสมบัติ ref return ,ref local กับ Local Function

คุณสมบัติ ref return เริ่มตั้งแต่C# 7.0 จากนั้นพอมาถึงC# 7.3 ก็เพิ่มคุณสมบัติ ref local เพื่อให้ใช้งานคู่กัน ทำให้เขียนโค้ดฝั่งmethodและฝั่งตัวรับได้สะดวกยิ่งขึ้นไปอีก ปรกตินักเขียนโค้ดอย่างเราจะใช้ตัวกระทำ ref (ความจริงเป็นmodifierแต่เพื่อให้กระชับต่อไปนี้จะเรียกว่าเป็น “คำสั่ง” ) เมื่อต้องการส่ง “ค่าอ้างอิง” ไปเป็นพารามิเตอร์ (คือการส่งค่าไปยังmethodโดยส่งค่าอ้างอิงไป ไม่ได้ส่งค่าของตัวแปรไป) หรือที่เรียกว่า “การผ่านตัวอ้างอิง” (pass by reference) นี่เป็นคุณสมบัติที่มีในC#ตั้งแต่versionแรก แต่มาตอนนี้เราสามารถใช้คำสั่ง ref ในลักษณะอื่น ๆ ได้ด้วย ในตอนที่ผ่านมาผู้เขียนได้พูดถึงการการใช้ ref return ไปแล้วบางส่วน ในบทความตอนนี้จะอธิบายรายละเอียดของ ref return ที่เหลือ และจะต่อด้วยเรื่องคุณสมบัติ ref local ด้วย
Checkpoint หัวใจงานนำเสนอ

Checkpoint หัวใจงานนำเสนอ

เทคนิคในการสร้างงานนำเสนอ ที่ตอนทำจริงมักจะลืม ก็เลยเป็นบทความสรุปจุดเช็ค (Checkpoint) ว่าการทำงานนำเสนอความคำนึงเรื่องอะไรบ้าง