Chaiyong Ragkhitwetsagul

SE CORNER

SE Corner "มุมซอฟต์ๆ ของวิศวกรรมซอฟต์แวร์" โดย ชัยยงค์​ รักขิตเวชสกุลทำอย่างไรจึงจะบริหารซอฟต์แวร์ทีมให้ดีขึ้น? ทำยังไงจะทำให้ซอฟต์แวร์มีบั๊กน้อยลง? ทำไมยิ่งเวลาผ่านไปซอฟต์แวร์เราถึงดูแลรักษายากขึ้นเรื่อยๆ? Podcast นี้ชวนคุณคุยเรื่องราวอัพเดตในมุมสบายๆ เกี่ยวกับวิศวกรรมซอฟต์แวร์ (Software Engineering: SE) ทั้งด้านงานวิจัย เครื่องมือและเทคนิคที่ช่วยนักพัฒนาซอฟต์แวร์ที่จะแก้ไขปัญหาดังกล่าว แชร์ประสบการณ์ และข่าวอัพเดตในแวดวง SE

Autor

Chaiyong Ragkhitwetsagul

Kategorie

Technology

Podcast-Website

cragkhit.github.io

Neueste Folge

5. Jul 2026

Wo hören?

Podcasts in der App Replaio Radio Bald verfügbar

Podcasts kommen bald in die App. Installiere sie jetzt und erlebe als Erster einen ganz neuen Blick auf Podcasts

Bei Google Play herunterladen Kostenlos installieren Android 5 Mio.+ Downloads · Bewertung 4,8 iOS bald

Folgen

EP58 - Software Apocalypse วันซอฟต์แวร์กลืนโลก 04.09.2022

EP นี้ ชวนคุยเรื่องน่าสนใจที่ไปอ่านเจอใน Article จาก The Atlantic ครับ เรื่อง "The Coming Software Apocalypse" (https://www.theatlantic.com/technology/archive/2017/09/saving-the-world-from-code/540393/) อ่านแล้วคิดว่าน่าสนใจมากๆ เลย บทความชี้ให้เห็นว่าโลกเรา ณ​ ปัจจุบันกำลังถูกกลืนกินด้วยซอฟต์แวร์ และถ้าเรายังปล่อยให้ซอฟต์แวร์มีปัญหา (บั๊ก) เยอะแยะแบบนี้ต่อไปเรื่อยๆ วันนึงซอฟต์แวร์จะทำให้เราถึงวัน...

EP57 - อธิบายเรื่องการค้นหาโค้ดที่ ก๊อปปี้มาและไลเซนส์โค้ดบน Stack Overflow 28.08.2022

EP นี้ขออธิบายเพิ่มเติมเรื่องงานวิจัยสมัยปริญญาเอกเรื่อง "การตรวจวัดความเหมือนของโค้ดและการค้นหาโค้ดโคลนในข้อมูลโค้ดขนาดใหญ่" (Code Similarity and Clone Search in Large-Scale Source Code Data)" ที่ได้รับการนำไปประชาสัมพันธ์ผ่านช่องทางสื่อ (เช่น Techhub facebook page ) ครับ มีคนสนใจและมีคอมเม้นต์อยู่เยอะพอสมควร (ขอบคุณมากๆ เลยครับ) แต่พอดีเห็นว่ามีบางคอมเม้นต์ที่อาจจะเข้าใจงานและเนื้อหาที่ต้องการจะ...

EP56 - Flaky Tests รันผ่านบ้าง ไม่ผ่านบ้าง เกิดจากอะไร? 21.08.2022

หากท่านเขียนเทสต์แล้วพบว่ามีเทสต์บางส่วนที่บางทีก็รันผ่าน บางทีก็ไม่ผ่าน สร้างความปวดหัวและหมดความมั่นใจในเทสต์ของตัวเอง ปัญหานี้เรียกว่า flaky test หรือ non-deterministic test ครับ EP นี้จะพาไปฟังคำแนะนำจาก Martin Fowler เจ้าพ่อสายวิศวกรรมซอฟต์แวร์ ว่า flaky test เกิดจากอะไร และแก้ปัญหาได้อย่างไรบ้าง รายละเอียดจะเป็นอย่างไร ไปฟังกันใน EP นี้ครับ

EP55 - Testability เขียนโค้ดให้เทสท์ง่าย ต้องทำยังไง? 14.08.2022

EP นี้ชวนมาคุยเรื่องหลักการ testability ของซอฟต์แวร์ที่ผมคิดว่าเป็นหลักการพื้นฐานที่สามารถนำไปใช้ได้ทุกๆ แพลตฟอร์มและทุกๆ ภาษาครับ ซอฟต์แวร์ใดๆ จะทดสอบยากหรือง่าย เราเรียกว่า "testability" ถ้าค่านี้สูงก็คือทดสอบง่าย แต่ถ้าต่ำก็คือทดสอบยาก ซึ่งเจ้า testability นี้ไม่ต้องหาอะไรมาวัดก็ได้นะครับ ให้คิดถึงสองปัจจัยหลักๆ คือ  1. controllability - สามารถกำหนดหรือควบคุม behavior ของซอฟต์แวร์ที่จะทดสอ...

EP54 - Testing นั้น สำคัญไฉน? (ต้องถามอีกเรอะ!) ตอนที่ 2 - คำแนะนำจากหนังสือ Software Engineering at Google 07.08.2022

EP นี้มาต่อกันที่ Chapter 11 ของ Software Engineering at Google ครับ เรามาดูกันว่า Google ฝ่าฝันการนำ testing มาใช้จนเป็นวัฒนธรรมองค์กรได้อย่างไร  . ทีมใน Google มีกระบวนการในการปลูกฝังการทำ test ตั้งแต่ปี 2005 โดยใช้กระบวนการหลักๆ สามอย่างคือ 1. อบรมเรื่องการทำ test และ automated test ตั้งแต่ตอนปฐมนิเทศน์ และให้คนใหม่ๆ ช่วยปรับแนวคิดของคนเก่าๆ ในองค์กร 2. มีการให้ Test certified โดยแบ่งระดับ...

EP53 - Testing นั้น สำคัญไฉน? (ต้องถามอีกเรอะ!) ตอนที่ 1 - คำแนะนำจากหนังสือ Software Engineering at Google 31.07.2022

ต้อนรับ Season 2 ด้วย EP53 จาก Chapter 11 ของหนังสือ Software Engineering at Google กันครับ  . EP นี้เป็นเรื่องการทดสอบซอฟต์แวร์ (Software Testing) ซึ่งถือว่าเป็นรากฐานสำคัญของการพัฒนาซอฟต์แวร์ที่ Google และเป็นส่ิงที่ Google ทำได้ดีและมีชื่อเสียงมาก ใน EP นี้เลยชวนมาคุยเรื่องความสำคัญของการ test, ทำไมต้องทำ test automation, test size และ test scope  . รายละเอียดจะเป็นยังไง ไปฟังกันใน EP...

EP52 - Retrospective: 1 ปีในการทำ SE Corner Podcast 24.07.2022

EP นี้ไม่ได้มาเล่าเรื่อง software engineering ครับ แต่จะขอทำรีวิวตัวเองในการทำ SE Corner Podcast นี้มาครบ 1 ปีเต็มๆ เนื่องจากเป็นพอดแคสต์เกี่ยวกับวิศวกรรมซอฟต์แวร์ ก็เลยขอใช้วิธีการ retrospective สักหน่อย จะได้เข้าธีม :-)  ใน EP นี้ผมเลยมาเล่าให้ฟังว่ามีเรื่องไหนบ้างที่ผมคิดว่า (1) ผมทำได้ดี (what we did well), (2) ผมยังสามารถปรับปรุงได้ (what we can do better), และ (3) อะไรที่จะเริ่มทำหลังจา...

EP51 - อ้าว เฮ้ย! รวมความเข้าใจผิดในกระบวนการพัฒนาซอฟต์แวร์ที่ใช้ Machine Learning 17.07.2022

Machine learning-enabled systems หรือระบบซอฟต์แวร์ที่มี machine learning เป็นส่วนประกอบ เป็นซอฟต์แวร์ที่พบได้มากขึ้นเรื่อยๆ ในปัจจุบัน งานวิจัยจาก Software Engineering Institute (SEI) ที่ Carnegie Mellon University โดย Grace Lewis และ Ipek Ozkaya พบว่า ทีมพัฒนาของระบบดังกล่าวมักจะประกอบด้วยทีม 3 ทีมที่มีความรู้และความเข้าใจในด้านที่แตกต่างกัน คือ data scientist, software engineering, และ operation...

EP50 - สรุปเนื้อหาจาก Stack Overflow Developer Survey 2022 10.07.2022

EP นี้เอารายงานผลของ Stack Overflow Developer Survey 2022 มาเล่าให้ฟังกันครับ เนื้อหามีเยอะมากๆ เลยสรุปสั้นๆ ในแต่ละด้านมาให้ฟังกัน น่าสนใจทั้งนั้นเลย คนเรียนที่จะโค้ดเองมากขึ้น Docker ได้รับความนิยมสูงขึ้น Rust เป็นภาษาที่คนรักที่สุด 7 ปีซ้อน แต่ JavaScript เป็นภาษาที่คนเขียนเยอะที่สุด Clojure เป็นภาษาที่ได้เงินเดือนเยอะสุด  Tools ด้าน Big-data, data streaming ทำเงินได้เยอะสุด บริษัทใหญ่ๆ เร...

EP49 - Document มีประโยชน์อย่างไร? (ตอนที่ 2) - คำแนะนำจากหนังสือ Software Engineering at Google 03.07.2022

EP นี้มาคุยกันต่อจาก EP ที่แล้วเรื่องการเขียน document ครับ Google แบ่งชนิดของ document ออกเป็น 5 ชนิด คือ  1. Reference documentation, including code comments 2. Design documents 3. Tutorials 4. Conceptual documentation 5. Landing pages แล้วแต่ละอันมีความแตกต่างกันอย่างไร ใครคือคนอ่าน? มีวิธีเขียนอย่างไรให้เหมาะสม? นอกจากนี้เรายังไปดูว่ามีวิธีการ review ตัว document อย่างไร และมี tips &...

EP48 - Document มีประโยชน์อย่างไร? (ตอนที่ 1) - คำแนะนำจากหนังสือ Software Engineering at Google 27.06.2022

EP นี้พากลับไปอ่าน Chapter 10 ในหนังสือ Software Engineering at Google เรื่อง Documentation กันครับ เราจะพาไปดูว่า Google แปลความหมายของ document อย่างไร และประโยชน์ของการเขียน document (ซึ่ง write once, read many times) นั้นมีอะไรบ้าง นอกจากนี้ผมจะเล่าให้ฟังว่าแนวทางการแก้ปัญหาว่า dev ไม่อยากเขียน document นั้นจะต้องทำอย่างไร จากประสบการณ์ของ Google เอง รายละเอียดไปฟังกันใน EP นี้ครับ

EP47 - ก๊อปปี้โค้ดจาก Stack Overflow อย่าลืม CC BY-SA 4.0 license 19.06.2022

EP ชวนคุยเรื่อง software license โดยเฉพาะ license ของโค้ดบน Stack Overflow  โค้ดและเนื้อหาใดๆ บน Stack Overflow นั้น ไม่ได้เป็น public domain แต่อยู่ภายใต้ license ชื่อ Creative Commons Attribution-ShareAlike 4.0 International (หรือ CC BY-SA 4.0) ซึ่งมีแนวทางกำหนดไว้ว่าสามารถนำไปใช้ได้ แต่จะต้อง (1) ให้ attribution หรือให้เครดิตกลับมาที่เจ้าของเนื้อหา และ (2) หากนำไปใช้ต่อ ผลงานนั้นๆ ก็จะต้อง...

EP46 - Case study การบริหารจัดการ documentation ที่ Google 12.06.2022

อ่านๆ Software Engineering at Google บทที่ 10 แล้วไปเจอเรื่องแทรก เลยเปลี่ยนเรื่องเล่าใน EP นี้เลย :-) เป็น case study ของการเปลี่ยนจาก Google Wiki มาใช้ระบบ g3doc ที่ผสานเข้ากับ workflow การทำงานของ developer ที่ Google ได้อย่างดี ทำให้การทำ documentation กลายเป็นเรื่องง่าย และได้รับการยอมรับเป็นอย่างดีจาก developer เลยไปนั่งอ่านและดู talk ของคุณ Riona MacNamara ที่ป็น Google g3doc lead แล้วเอามา...

EP45 - กระบวนการ Code Review ที่ Google - คำแนะนำจากหนังสือ Software Engineering at Google 05.06.2022

EP นี้พูดคุยเนื้อหาจากหนังสือ Software Engineering at Google ในบทที่ 9 เรื่อง Code Review มีเรื่องที่น่าสนใจหลายเรื่องเช่น Code review ที่ Google จะต้องมีการตรวจสอบสามอย่าง คือ correctness (ความถูกต้อง), comprehension (ความเข้าใจง่าย ), และ consistency บางครั้ง ทั้งสามอย่างมีใน reviewer คนเดียว Code review ช่วยทำให้เกิด shared ownership ของโค้ดร่วมกันภายในทีม Code review ช่วยทำให้เกิดการแบ่งปันควา...

EP44 - ลด Tech Debt ด้วยการสร้าง Tech Wealth 29.05.2022

เราน่าจะรู้จักหนี้ทางเทคโนโลยี technical debt (tech debt) กันอยู่บ้างแล้ว มีตัวอย่างมากมายที่แสดงให้เห็นว่า tech debt ก่อให้เกิดปัญหาในภายหลังได้ร้ายแรงขนาดไหน ซอฟต์แวร์ทีมส่วนใหญ่กลัวว่าจะเผลอสร้าง tech debt กัน แต่สุดท้ายก็หนีมันไม่พ้น EP นี้พาไปดูบทความเรื่อง "Reframing tech debt" ของคุณ Leemay Nassery ที่เป็น engineering manager ของ Dropbox ที่บอกว่า เราควรจะปรับความคิดเสียใหม่ ให้เน้นไปที่การ...

EP43 - เขียน requirements ให้ดีขึ้นได้ ด้วยเทคนิค EARS 22.05.2022

EP นี้พาไปรู้จักกับเทคนิคการเขียน requirements ที่ดีและถูกใช้กันอย่างแพร่หลาย ชื่อว่า EARS (Easy Approach to Requirements Syntax) ซึ่งถูกสร้างขึ้นโดย Alistair Mavin และมีแพทเทิร์นการเขียนที่สำคัญ 5 แบบ คือ 1. Ubiquitous requirements 2. State-driven requirements 3. Event-driven requirements 4. Optional feature requirements 5. Unwanted behaviour requirements หากเราเขียนให้ดี requirements ทุกอันจะสาม...

EP42 - โค้ดจาก GitHub Copilot ดีแค่ไหน? 15.05.2022

EP นี้หยิบงานวิจัยใหม่เอี่ยมจาก Mining Software Repositories (MSR '22) ชื่อ "An Empirical Evaluation of GitHub Copilot’s Code Suggestions" โดย Nhan Nguyen and Sarah Nadi จาก University of Alberta มาเล่าให้ฟังกันครับ ทีมวิจัยนี้ศึกษาความถูกต้องและความเข้าใจง่าย (understandability) ของโค้ดที่แนะนำมาจาก GitHub Copilot โดยได้ใช้ตัวอย่างคำถาม 33 คำถามจาก LeetCode ซึ่งเป็น website สำหรับฝึกฝนการเขียนโปร...

EP41 - เพิ่ม Developer Experience (DX) ได้ ถ้าเข้าใจตรงจุด 08.05.2022

EP นี้ชวนคุยเรื่อง developer experience หรือ DX ครับ คุณ Jean Yang เจ้าของบริษัท Akita ให้ความเห็นว่าต่อไปในอนาคต DX จะมีส่วนสำคัญอย่างมาก เพราะจำนวน developers ในโลกนี้เพิ่มขึ้นเรื่อยๆ (ตอนนี้มีจำนวนมากกว่าคนออสเตรเลียทั้งประเทศ!) เราจะสร้าง developer tools ที่ดีอย่างไร? เพื่อให้นักพัฒนามี DX ที่ดี และมีความสุขระหว่างการทำงาน เธอบอกว่านักพัฒนาซอฟต์แวร์จะต้องเจอกับซอฟต์แวร์ที่ซับซ้อนขึ้นเรื่อยๆ แล...

EP40 - Coding Style สำคัญอย่างไร? (ตอนที่ 2) - คำแนะนำจากหนังสือ Software Engineering at Google 01.05.2022

EP นี้ไปอ่านบทที่ 8 ของหนังสือ Software Engineering at Google กันต่อ มาดูกันว่า Google สร้าง Style Guide ขึ้นมาจากหลักการทั้ง 5 ที่กล่าวไปก่อนหน้าได้อย่างไร? กฎทั้งหลายใน Style Guide สามารถเปลี่ยนได้หรือไม่และมีวิธีการอย่างไร? การนำกฎไปใช้ นำไปใช้ตอนไหนและใช้อย่างไร? เนื้อหาทั้งหมดนี้ ไปฟังกันใน EP นี้ครับ 

EP39 - Coding Style สำคัญอย่างไร? - คำแนะนำจากหนังสือ Software Engineering at Google 24.04.2022

EP นี้กลับมาอ่านหนังสือ Software Engineering at Google ต่อ ในบทที่ 8 "Style Guides and Rules" ที่พูดถึงเรื่องการกำหนดแนวทางการเขียนโค้ดในบริษัทกูเกิ้ล EP จะเป็นตอนที่ 1 ที่พูดถึงหลักการสำคัญ 5 ประการในการกำหนด coding styles and guides ซึ่งได้แก่ Pull their weight - styles guide ควรมีแค่สิ่งที่สำคัญและจำเป็นจริงๆ Optimize for the reader - style guide ควรคำนึงถึงผู้อ่านมากกว่าผู้เขียนโค้ด Be consist...

EP38 - "To Microservices and Back Again" เมื่อไมโครเซอร์วิสไม่ตอบโจทย์ 17.04.2022

EP นี้หยิบบทความเรื่อง "To Microservices and Back Again - Why Segment Went Back to a Monolith" ซึ่งเล่าตัวอย่าง case study ของบริษัท Segment ที่เคยพยายามจะแก้ปัญหา Environment Isolation ของซอฟต์แวร์ตนเองด้วยไมโครเซอร์วิส แต่สุดท้ายกลับพบว่าเจอปัญหาที่บริหารจัดการได้ยากกว่าเก่า และสุดท้ายเลือกที่จะกลับมาใช้สถาปัตยกรรมแบบ Monolith อีกครั้งหนึ่ง ปัญหาเริ่มต้นคืออะไร ทำไมย้ายไปไมโครเซอร์วิสแล้วไม่เวิร...

EP37 - Code Review เมื่อส่ิงที่หวัง กับ สิ่งที่ได้ อาจจะไม่ตรงกัน 10.04.2022

EP นี้หยิบงานวิจัยที่เก่าหน่อยแต่ยังมีประโยชน์อยู่มาเล่าให้ฟังกันครับ เป็นงานวิจัยของ Alberto Bacchelli และ Christian Bird ที่ Microsoft ชื่อว่า "Expectations, Outcomes, and Challenges Of Modern Code Review" ซึ่งเป็นงานวิจัยที่ศึกษาจากนักพัฒนาของไมโครซอฟต์และพยายามเข้าใจ 3 อย่าง คือ (1) ความคาดหวังจากการทำ code review, (2) ผลที่ได้จากการทำ code review และ (3) ปัญหาหรือความท้าทายในกระบวนการ code re...

EP36 - "I test in production" เมื่อการทดสอบใน production เป็นส่ิงที่ควรและต้องทำ 04.04.2022

ท่านผู้ฟังอาจจะเคยเห็นมีมอันนี้ "I don’t always test my code, but when I do, I test in production." - the Most Interesting Man in the World ซึ่งก็เป็นมีมขำๆ ที่ให้ชวนหัวเราะว่า การปล่อยให้ซอฟต์แวร์ไปถูกทดสอบบน production นี่มันช่างกล้า เหมือนฆ่าตัวตายชัดๆ Charity Majors (CTO ของบริษัท honeycomb.io) เธอบอกว่าการทดสอบไม่ได้จำกัดหรือไม่ควรถูกจำกัดอยู่แค่ระหว่างการพัฒนาหรือ staging enviroment เท่านั้น...

EP35 - Measuring Engineering Productivity เราจะนำการวัดมาใช้ประโยชน์ในกระบวนการพัฒนาซอฟต์แวร์อย่างไร? - คำแนะนำจากหนังสือ Software Engineering at Google 27.03.2022

Episode นี้พาท่านผู้ฟังกลับไปอ่านหนังสือ Software Engineering at Google กันต่อ ใน Chapter 7 จะเป็นเรื่อง Measuring Engineering Productivity ที่อธิบายว่า Google นำการวัดมาใช้ประโยชน์ในกระบวนการพัฒนาซอฟต์แวร์ อย่างไร ที่ Google จะมีทีมวิจัยเฉพาะที่ตั้งขึ้นมาเพื่อทำการวัดผลในหลากหลายกระบวนการ โดยทีมวิจัยนี้จะประกอบไปด้วยนักวิจัยด้านวิศวกรรมซอฟต์แวร์และด้านอื่นๆ ที่เกี่ยวข้อง เช่น จิตวิทยา (เพื่อเข้าใ...

EP34 - Building for the 99% Developers เมื่อ dev tools ที่ชอบ อาจจะไม่ใช่ tools ที่ใช่? 20.03.2022

EP ที่ 34 นี้เอาบทความจากเว็บไซต์ a16z.com ของคุณ Jean Yang มาเล่าให้ฟังครับ ผู้เขียนบอกว่า developer tools/platforms/environments ทั้งหลายที่มีอยู่ในปัจจุบันนั้นเกือบทั้งหมดจะถูกสร้างขึ้นและนำมาใช้ในบริษัทใหญ่ๆ เช่น Facebook-Apple-Amazon-Neflix-Google ไม่ว่าจะเป็น microservices, GraphQL, DevOps นั้น อาจจะไม่ได้จำเป็นต้องนำมาใช้และยิ่งกว่านั้นคือ อาจจะไม่เหมาะกับบริษัทของเราด้วย เราต้องเลือกดูว่าบ...

Höre den Podcast SE CORNER in Replaio

Radio und Podcasts in einer App - kostenlos und ohne Anmeldung. Installiere sie noch heute und verpasse den Start nicht

Bei Google Play herunterladen

Replaio ist kein Herausgeber von Podcasts; die Namen der Sendungen, Cover und Audioinhalte gehören ihren Autoren und werden über öffentliche RSS-Feeds verbreitet