สาเหตุที่เรียน เพียงเพื่อที่จะปิด Gap ให้ตัวเอง เพราะ Ubuntu เป็น OS Linux ที่รู้จักตั้งแต่สมัยเรียน ป.ตรี แต่พึ่งมาทำความรู้จักกับ OS นี้เมื่อไม่นานนี่เอง ทำให้วันนี้ขอเสียเวลาเรียนรู้มันให้สิ้นสงสัยกันไป เผื่อในอนาคตจะต้องทำโปรเจคหรือว่าไปยุ่งกับ linux จะได้มีความเข้าใจมันบ้าง
จากที่ทำงานเดิม เป็นแค่พนักงานที่ใช้งาน Linux ได้ รู้จัก Linux Command เบื้องต้น ไม่ได้ลงลึกไปมากกว่านั้น สิ่งที่ทำได้กับ Linux คือแค่เปิดไปหน้านั้นนี่ได้ , Move file ได้ , ย้าย Folder เป็น , เปิดไฟล์ด้วย VI หรือ Nano ได้เท่านั้น แต่หากถามว่ารู้อะไรมากกว่านี้มั้ย กับระบบปฏิบัติการ Linux พวกนี้ ต้องตอบตรงนี้เลยว่าไม่
เลยเป็นที่มา ให้มา Take Course หัวข้อนี้ โดยในส่วนที่เรียนมีความยาวกว่า 16 ชั่วโมงประกอบไปด้วยรายละเอียดดังนี้
Install Ubuntu Server22.04 on VirtualBox
Lesson1 Introducing
Lesson2_Package Management
Lesson3_Access the Command Line and Help
Lesson4_Architecture File Systems
Lesson5_File and Directory
เสริม_Lesson5_File and Directory การใช้ vi_vi_nano เพื่อจัดการไฟล์และไดเรคทอรี
Lesson6_Users and Groups Management
Lesson7_Configuration and Management sudo
Lesson8_Permission Users and Groups
Lesson9_Managing Files with ACL
Lesson10_Firewall with UFW
Lesson11_OpenSSH
เสริม Lesson11 OpenSSH_การเปลี่ยน port 22 บน Ubuntu Server
ตอนนี้มีไอเดีย หาเรื่องเสียเงิน ว่าจะซื้อเอา Raspberry PI5 Ram 8GB มาลง OS Ubuntu Server เอา Docker ลง แล้วสั่ง Run Website Project งานของเราไว้ในนั้น มีการกั้น NginX จากนั้นไปเปิด Static IP กับ AIS ผูกกับ Domain Name ให้มันเป็นเรื่องเป็นราว และลอง Load Test เข้ามาเข้าบ้านตัวเองดูว่า Raspberry PI มันจะลองรับ Load ได้แค่ไหนทำแบบเป็น Web Production ไปเลยได้จริงหรือเปล่า เผื่อจะได้ทำไปแชร์ให้คนอื่น (ยังไงก็กลัวกลุ่ม Hack ที่มา Scan Port แล้วเข้ามาควบคุม Server เราได้อยู่ดีนะ)
-การสร้าง Form เพื่อใช้งาน : หัวข้อนี้สอนการสร้างฟอร์ม ตั้งแต่พื้นฐานว่ามีที่มาที่ไปอย่างไร ต่อไปถึงการดึง Lib Forme จาก Pub.dev มาใช้งาน ทำให้การสร้าง Form สะดวกมากและเข้าใจในเรื่องการสร้าง Form แบบลึกซึ้งไปเลย
เรื่องถัดมา เป็นเรื่อง Flutter Maintainalibity ซึ่งเป็นหัวข้อเกี่ยวกับการเขียน Test บน Flutter ว่ามีวิธีการเขียนอย่างไร
หากใครเคยเรียนเรื่องการ Test บน Flutter ทั้งจาก Udemy หรือหนังสือ Textbook เรื่อง Flutter ต่างๆ เหมือนกับตัวผมเอง จะเห็นว่าแหล่งต่างๆที่กล่าวมาจะพูดเรื่องการเทสในหัวข้อ Unit Test , Widget Test , Integration Test เพียงเท่านั้น และอาจมีบางที่ที่พูดถึงการทำ API Test ด้วยเช่นเดียวกัน
แต่ในคอร์สนี้ ผู้สอนได้นำเรื่องของ Golden Test มาพูดถึง ซึ่งเมื่อได้ยินครั้งแรก ผมรู้สึกไม่คุ้นเลย แต่หลังจากได้ฟัง ไปสักพัก ก็ได้ความรู้เพิ่ม ว่า “อ๋อ มันคือการทำ Snapshot Test นั่นเอง” (ความรู้ใหม่ จดๆ)
หลักการทำงานของ Golden Test คือ จะมีการเก็บหน้า UI ที่หนึ่งเอาไว้ จากนั้นหากมี Dev คนไหน เผลอลบ Code ส่วน UI นั้นทิ้งไป เมื่อเรามา Run Golden Test ด้วย Function expectLater หน้าจอที่ได้จะไม่เหมือนกัน ทำให้ การเทสด้วย Golden Test ไม่ผ่านนั่นเอง (Widget Test จะเทสได้แค่มีหรือไม่มี เจอหรือไม่เจอ แต่ Golden Test จะเทสในเรื่องของหน้าจอ UI ว่าหลังการเปลี่ยนแปลง Code ไป หน้า UI ยังเป็นแบบเดิมไหม มีการเปลี่ยนแปลงหน้า UI ไปหรือเปล่า) ซึ่งในคอร์สนี้ อธิบายเรื่อง Golden Test โดยละเอียดเลย