Chaiyong Ragkhitwetsagul

SE CORNER

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

Be sure to visit the podcast's website and support the creator: cragkhit.github.io

Author

Chaiyong Ragkhitwetsagul

Category

Technology

Podcast website

cragkhit.github.io

Latest episode

Oct 11, 2026

Where to listen?

Podcasts in the app Replaio Radio Coming soon

Podcasts are coming to the app soon. Install now and be the first to see a whole new take on podcasts

Get it on Google Play Install for free Android almost 10M downloads · 4.8 rating iOS soon

Episodes

EP72 - เมื่อวันที่ต้อง Deprecate ซอฟต์แวร์มาถึง ทำอย่างไร? - คำแนะนำจากหนังสือ Software Engineering at Google 11.12.2022

ซอฟต์แวร์ใดๆ วันหนึ่งก็ต้องมีจุดที่มีการหยุดการให้บริการ ไม่ว่าจะเป็นเพราะหมดอายุการใช้งานจริงๆ หรือมีระบบใหม่ที่ทดแทนกันขึ้นมา EP นี้ สรุปเนื้อหาจาก Chapter 15 ของหนังสือ Software Engineering at Google ว่าเราจะทำกระบวนการ Deprecation (การหยุดให้บริการหรือหยุดการดูแลรักษา) ของซอฟต์แวร์อย่างไร ให้เหมาะสม และมีปัญหาน้อยที่สุด  ไปฟังรายละเอียดใน EP นี้กันครับ

EP71 - AI Engineer vs. Software Engineer 04.12.2022

AI Engineer เป็นงานที่กำลังเป็นที่ต้องการมากขึ้นเรื่อยๆ ในอนาคต ในขณะที่ Software Engineer เองก็เป็นตำแหน่งงานที่ยังได้รับความนิยมสูงสุดในปัจจุบัน บทความจาก IEEE Software ของคุณ Ipek Ozkaya ชี้ให้เห็นว่าสองงานนี้มีความใกล้เคียงกันมากกว่าที่คิด โดยงาน AI Engineering ซึ่งเกิดใหม่ ยังต้องการความรู้พื้นฐานจาก Software Engineering อีกหลายส่วน เพราะการสร้าง ML models ก็เป็นการสร้างซอฟต์แวร์แบบหนึ่ง ไปฟั...

EP70 - ปรัชญาแห่งการออกแบบซอฟต์แวร์ โดย Prof. John Ousterhout จาก Talks at Google 27.11.2022

ผมได้ไปฟัง Talks at Google อันหนึ่งแล้วพบว่าน่าสนใจมาก เลยหยิบมาเล่าให้ฟังกันใน EP นี้ครับ หัวข้อคือ "A Philosophy of Software Design" โดย Prof. John Ousterhout จาก Stanford University ศาสตราจารย์ Ousterhout นี่เป็นผู้คร่ำหวอดในวงการการศึกษาและพัฒนาซอฟต์แวร์ เพราะแกทำงานเป็นอาจารย์ก่อน แล้วก็ไปทำบริษัท 14 ปี แล้วก็กลับมาเป็นอาจารย์อีก เพราะฉะนั้นแกรู้ทั้งบุ๋นและบู๊แน่นอน คำแนะนำใน Talks at Google...

EP69 - End-to-End Test แบบ Google ทำอย่างไร? (ตอนที่ 2) - คำแนะนำจากหนังสือ Software Engineering at Google 20.11.2022

EP นี้กลับมาอ่าน Chapter 14 Larger Tests ในหนังสือ Software Engineering at Google กันต่อ โดยจะเล่าให้ฟังถึง larger tests ทั้งหมด 10 ชนิด ที่ใช้อยู่ใน Google  Functional testing of one or more binaries Browser and device testing Performance, load, and stress testing Deployment configuration testing Exploratory testing A/B diff (regression) testing User acceptance testing (UAT) Probers and cana...

EP68 - ประสบการณ์ไปร่วมงาน DevMountain Tech Festival 2 13.11.2022

EP นี้ขอคั่นรายการจาก EP ที่แล้วนิดนึง เนื่องจากเพิ่งกลับมาจากงาน DevMountain Tech Festival 2 ที่เชียงใหม่ เลยมาแชร์ประสบการณ์ในการไปร่วมงาน Developer Conference ครั้งแรกครับ ไปฟังกันใน EP นี้ครับ

EP67 - End-to-End Test แบบ Google ทำอย่างไร? (ตอนที่ 1) - คำแนะนำจากหนังสือ Software Engineering at Google 06.11.2022

EP นี้ขยับมา Chapter 14 ในหนังสือ SE at Google ครับ มาคุยกันเรื่อง "Larger Test" ซึ่งก็หมายถึง System Test หรือ End-to-End Test นั่นเอง โดยในตอนที่ 1 นี้ ผมจะเล่าให้ฟังว่า Google ตีความหมายของเทสต์ขนาดใหญ่เหล่านี้อย่างไร และเหตุผลใดจึงต้องทำเทสต์เหล่านี้ รายละเอียดเป็นอย่างไร ไปฟังกันใน EP นี้ครับ

EP66 - แนวทางการเรียนการสอนด้าน Software Engineering ในปัจจุบัน 30.10.2022

ในปัจจุบันการเรียนการสอนด้าน SE เป็นอย่างไร? ใช้วิธีการใดในการสอนบ้างเพื่อให้นักศึกษาที่จบออกไปมีความรู้ความสามารถที่ตรงกับความต้องการของตลาดจริงๆ EP นี้พาไปดูกันครับ  ผมนำงานวิจัยจาก University of Zagreb ที่ไปศึกษางานวิจัยด้านการศึกษาที่เกี่ยวกับ software development จำนวน 120 งานวิจัย และสรุปผลออกมาในสองด้าน คือ (1) วิธีการสอน (teaching methods and approaches) และ (2) ลักษณะของการสอนและวิธี...

EP65 - Requirement Engineering เปลี่ยนไปอย่างไรบ้างในรอบ 10 ปี? 23.10.2022

EP นี้นำงานศึกษาวิจัยจาก IEEE Software ชื่อ The Current and Evolving Landscape of Requirements Engineering in Practice มาเล่าให้ฟังกันครับ Mohamad Kassab และ Phillip Laplante จากมหาวิทยาลัย Pennsylvania State University ศึกษาเรื่อง requirement engineering มาอย่างยาวนาน และได้ทำการเปรียบเทียบผลการ survey นักพัฒนาตั้งแต่ปี 2003, 2008, 2013 จนถึงรอบล่าสุด 2020/2021 (ทำสองรอบ) และเปรียบเทียบผลลัพธ์ใน...

EP63 - Test Doubles คืออะไรและควรใช้อย่างไร? (ตอนที่ 2) - คำแนะนำจากหนังสือ Software Engineering at Google 16.10.2022

EP นี้มาคุยกันต่อเรื่อง Test Doubles จากบทที่ 13 ในหนังสือ Software Engineering at Google ครับ โดยจะลงรายละเอียดไปที่การใช้ test doubles สองแบบคือ 1. Fake - ตัวแทน implementation จริง ที่ทำงานเหมือนตัวจริง แต่ใช้วิธีการต่างกันบางอย่าง เพื่อให้เหมาะกับการเทสต์ เช่น การเขียน/อ่านข้อมูลจาก memory แทนที่จะเป็น disk  2. Stub - การใช้ mock object พร้อมกับการกำหนด return value หรือคำตอบจากการเรียก m...

EP63 - Test Doubles คืออะไรและควรใช้อย่างไร? - คำแนะนำจากหนังสือ Software Engineering at Google 09.10.2022

EP นี้เล่าเรื่องจาก Chapter 13 ในหนังสือ Software Engineering at Google เรื่อง Test Doubles หรือ การใช้ตัวแทนของ implementation หรือ API บางส่วนที่จำเป็นในการเทสต์ เพื่อทำให้การทดสอบนั้นเป็นไปได้อย่างรวดเร็วและสะดวกมากขึ้น ส่ิงที่น่าสนใจคือ Google เชื่อว่า เราไม่ควรใช้ test doubles เยอะๆ เพราะมักจะนำไปสู่ปัญหาในการดูแลรักษาภายหลัง รวมถึงเทสต์ที่ใช้ test doubles ก็ไม่ค่อยมีประโยชน์ในการหาบั๊กสักเท่...

EP62 - "The Rise of SQL" การกลับมาของภาษา SQL 02.10.2022

EP นี้เป็นตอนต่อเนื่องมาจาก EP ที่แล้วที่เราคุยกันเรื่อง Top Programming Languages 2022 ที่จัดอันดับโดย IEEE Spectrum ครับ ผลการจัดอันดับในปีนี้มีจุดน่าสนใจอันหนึ่งคือ ภาษา SQL อยู่อันดับ 1 หากทำการจัดอันดับเรื่องการหางาน ใน EP นี้เลยมาเจาะลึกกันดูว่า เพราะเหตุผลใด SQL จึงกลับมาเป็นภาษาที่ได้รับความนิยมมากอีกครั้งหนึ่ง ผมเจอบทความที่อธิบายเรื่องนี้ใน IEEE Spectrum เขียนโดยคุณ Rian Diane Caballar ค...

EP61 - อันดับ Top Programming Languages 2022 โดย IEEE 25.09.2022

EP นี้พาไปดูผลการจัดอันดับ Top Programming Languages ปี 2022 โดย IEEE Spectrum ครับ เค้าจัดอันดับโดยดูข้อมูลจากหลายแหล่งด้วยกัน ได้แก่ Google Search, Twitter, Stack Overflow (no. of questions, posts), Reddit, IEEE Explore (no. of articles), IEEE Job Site, CareerBuilder, และ GitHub (starred repos, no. of PR) ซึ่งผลที่ออกมาก็คือ  จัดตามผู้ที่สนใจใน IEEE Spectrum: Python, C, C++, C#, Java, SQL จ...

EP60 - หลักการ Unit Testing แบบ Google ตอนที่ 2 - คำแนะนำจากหนังสือ Software Engineering at Google 18.09.2022

EP นี้มาคุยต่อเนื่องเรื่องการเขียน unit testing แบบ Google ครับ โดยจะเน้นไปที่หลักการเขียนเทสต์ให้มีความชัดเจน (Clarity) โดยเทสต์ที่มีความชัดเจนจะมีประโยชน์ทั้งในแง่การ maintenance และในแง่การตรวจหาบั๊กที่เจอด้วยเทสต์นั้นๆ ด้วย  หลักการที่หนังสือ Software Engineering at Google แนะนำ เพื่อให้เทสต์มีความชัดเจนที่สุด มีดังต่อไปนี้ 1. Make Your Tests Complete and Concise ยึดหลักสองอย่างคือ เทสต์ต...

EP59 - หลักการ Unit Testing แบบ Google ตอนที่ 1 - คำแนะนำจากหนังสือ Software Engineering at Google 11.09.2022

EP นี้อ่าน SE at Google book กันต่อครับ Chapter 12 เป็นเรื่อง Unit Testing ที่ Google ให้ความสำคัญมากๆ โดยหนังสือมีคำแนะนำว่าควรจะออกแบบ unit test อย่างไรให้หลีกเลี่ยงปัญหา brittle test และทำให้ unit test suite ของเราดูแลรักษาได้ง่าย (test maintainability สูง)  โดยหลักการที่ Google แนะนำ เช่น test state, not interactions ผมคิดว่าชัดเจนและมีประโยชน์มากๆ และเป็นจุดที่คนเขียน unit test จะสับสนว่...

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 นี้ครับ

Listen to the SE CORNER podcast in Replaio

Radio and podcasts in one app - free, with no sign-up. Install today and do not miss the launch

Get it on Google Play

Replaio is not a podcast publisher; show names, artwork and audio belong to their authors and are distributed through public RSS feeds.