<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Boonsong&apos;s Blog</title><description>Software Engineer specializing in Fintech, Trading &amp; Investment Systems, Scrum Practices, DDD, AI, thru-hiking, surfing, and technical writing.</description><link>https://www.boonsong.dev/</link><item><title>Software Engineering กับ Harness Engineering: 10x หรือ Technical Debt</title><link>https://www.boonsong.dev/10x-%E0%B8%AB%E0%B8%A3%E0%B8%B7%E0%B8%AD-technical-debt/</link><guid isPermaLink="true">https://www.boonsong.dev/10x-%E0%B8%AB%E0%B8%A3%E0%B8%B7%E0%B8%AD-technical-debt/</guid><description>ลองนึกภาพร้านก๋วยเตี๋ยวเจ้าเก่าที่ขายดีมา 20 ปี วันดีคืนดีพี่มาวินมารีวิวลง TikTok แล้วลูกค้าทะลักเข้ามา 10 เท่า เตาเดิม หม้อเดิม พนักงานเท่าเดิม แต่ Order เพิ่...</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate></item><item><title>Active Record to Domain Model</title><link>https://www.boonsong.dev/active-record-to-domain-model/</link><guid isPermaLink="true">https://www.boonsong.dev/active-record-to-domain-model/</guid><description>Domain Model เป็นวิธีการที่ให้ความสำคัญกับ business logic เป็นอันดับแรก ไม่ว่าจะเป็นชื่อตัวแปร ชื่อ function สิ่งเหล่าเราได้จาก domain experts</description><pubDate>Wed, 28 Dec 2022 09:09:13 GMT</pubDate></item><item><title>AI คือ Auto Suggestion Text ใน Keyboard?</title><link>https://www.boonsong.dev/ai-auto-suggestion-keyboard/</link><guid isPermaLink="true">https://www.boonsong.dev/ai-auto-suggestion-keyboard/</guid><description>รู้หรือไม่ว่าจริงๆ AI มันมีมานานแล้วนะ เวลาที่เราพิมพ์แล้ว Keyboard ในโทรศัพท์จะขึ้น Suggestions นั่นคือ AI มาทำความเข้าใจว่า AI เดาคำอย่างไร จาก Language Models ถึง Large Language Models</description><pubDate>Tue, 17 Feb 2026 12:00:00 GMT</pubDate></item><item><title>Authorization code with PKCE for Flutter</title><link>https://www.boonsong.dev/authorization-code-with-pkce-for-flutter/</link><guid isPermaLink="true">https://www.boonsong.dev/authorization-code-with-pkce-for-flutter/</guid><description>OAuth 2.0 แนะนำให้ใช้ Authorization code ด้วย Proof Key for Code Exchange () มันคืออะไร ทำไมต้องใช้ และมันทำงานอย่างไร</description><pubDate>Wed, 01 May 2024 00:00:00 GMT</pubDate></item><item><title>Business domain and Subdomain</title><link>https://www.boonsong.dev/business-domain-and-subdomain/</link><guid isPermaLink="true">https://www.boonsong.dev/business-domain-and-subdomain/</guid><description>ก่อนที่เราจะเริ่ม Implementing Domain-Driven Design ควรรู้จัก Business domain และ Subdomain ซึ่งเป็นเรื่องสำคัญที่ทำให้เราเข้าใจองค์กรของเรามากขึ้น</description><pubDate>Sun, 08 Jan 2023 11:50:13 GMT</pubDate></item><item><title>Event-carried state transfer</title><link>https://www.boonsong.dev/event-carried-state-transfer/</link><guid isPermaLink="true">https://www.boonsong.dev/event-carried-state-transfer/</guid><description>Event-carried state transfer (ECST) มักนำมาใช้เมื่อเราไม่ต้องการให้ระบบยึดติดกันเกินไป ในบทความนี้จะมาพูดถึงรูปแบบของ ECST และ ตัวอย่าง Message schema ที่นิยมใช้กัน</description><pubDate>Sun, 22 Jan 2023 11:41:13 GMT</pubDate></item><item><title>Event Storming: วิธีออกแบบ Software Architecture Partitioning</title><link>https://www.boonsong.dev/event-storming-%E0%B8%A7%E0%B8%B4%E0%B8%98%E0%B8%B5%E0%B8%AD%E0%B8%AD%E0%B8%81%E0%B9%81%E0%B8%9A%E0%B8%9A-software-architecture-partitioning/</link><guid isPermaLink="true">https://www.boonsong.dev/event-storming-%E0%B8%A7%E0%B8%B4%E0%B8%98%E0%B8%B5%E0%B8%AD%E0%B8%AD%E0%B8%81%E0%B9%81%E0%B8%9A%E0%B8%9A-software-architecture-partitioning/</guid><description>ต้องอ่าน 2 บทความนี้ก่อน</description><pubDate>Sat, 27 Jun 2026 08:15:00 GMT</pubDate></item><item><title>Event Storming กับคนแคระทั้งเจ็ด ตอนที่ 1</title><link>https://www.boonsong.dev/event-storming/</link><guid isPermaLink="true">https://www.boonsong.dev/event-storming/</guid><description>หากเปรียบ Event Storming เป็นนิทานเรื่องหนึ่ง บทเกริ่นนำคงจะเป็นการกล่าวถึง 3 ดินแดนสำคัญของจุดเริ่มต้นการเดินทางในครั้งนี้ ดินแดนเหล่านั้นได้แก่ Big Picture Le...</description><pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate></item><item><title>เมื่อผมต้องให้ Feedback เพื่อนร่วมงาน</title><link>https://www.boonsong.dev/feedback/</link><guid isPermaLink="true">https://www.boonsong.dev/feedback/</guid><description>ธรรมชาติของมนุษย์ล้วนปรารถนาจะเติบโต เรียนรู้ และก้าวข้ามข้อผิดพลาดในตนเอง บ่อยครั้งเรากลับไม่ล่วงรู้ว่าพฤติกรรมบางอย่างได้ส่งผลกระทบหรือสร้างความเจ็บปวดให้ผู้อ...</description><pubDate>Thu, 11 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Implementing Simple Business Logic</title><link>https://www.boonsong.dev/implementing-simple-business-logic/</link><guid isPermaLink="true">https://www.boonsong.dev/implementing-simple-business-logic/</guid><description>องค์กรประกอบด้วยหน่วยงานย่อย ๆ หลากหลายส่วน หากนิยามหน่วยงานย่อย ๆ เหล่านั่นว่า “Subdomain” การที่องค์กรจะทำงานเพื่อให้บรรลุผลสำเร็จตามเป้าหมาย ต้องอาคัยแรงผลัก...</description><pubDate>Tue, 25 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Integrating EDA with Legacy systems</title><link>https://www.boonsong.dev/integrating-eda-with-legacy-systems/</link><guid isPermaLink="true">https://www.boonsong.dev/integrating-eda-with-legacy-systems/</guid><description>ในบทความนี้เราจะพาเปิดคอม เข้าสู่ท้องของน้อง Moby Dock ปลาวาฬตัวใหญ่ยักษ์ โดยมีสมาชิกคือเจ้า Gopher ผู้ปกครองดินแดน Legacy systems ที่มีความปรารถนานำส่งสารสำคัญให้เจ้า Rocket Turtle ในดินแดนแห่งใหม่นามว่า Event driven architecture</description><pubDate>Sun, 21 Apr 2024 17:23:13 GMT</pubDate></item><item><title>บทความนี้ชื่อว่า Keycloak คือ, SAML คือ, OAuth และ OpenID Connect คือ</title><link>https://www.boonsong.dev/keycloak-saml-oauth-openid/</link><guid isPermaLink="true">https://www.boonsong.dev/keycloak-saml-oauth-openid/</guid><description>Keycloak เป็นระบบการจัดการข้อมูลซึ่งพัฒนาโดย Red Hat ช่วยให้การรักษาความปลอดภัยสำหรับแอปพลิเคชันและบริการที่ทันสมัยเป็นเรื่องง่าย บลา ๆๆๆ</description><pubDate>Sun, 26 May 2024 00:00:00 GMT</pubDate></item><item><title>Liveness, Readiness and Startup Probes</title><link>https://www.boonsong.dev/kubernetes-liveness-readiness-and-startup-probes/</link><guid isPermaLink="true">https://www.boonsong.dev/kubernetes-liveness-readiness-and-startup-probes/</guid><description>บางครั้ง application ก็ไม่สามารถเริ่มทำงานได้ทันที ถ้า kubernetes restart container เพราะว่า application ยัง setup ไม่เสร็จจะเกิดการ loop restart ได้</description><pubDate>Mon, 05 Dec 2022 16:04:13 GMT</pubDate></item><item><title>“Loop” ตอนที่ 1 ทำงานวันแรก</title><link>https://www.boonsong.dev/loop-1/</link><guid isPermaLink="true">https://www.boonsong.dev/loop-1/</guid><description>ในโลกที่หมุนวนอย่างไม่หยุดนิ่ง ทั้งการเงิน เทคโนโลยี และการตัดสินใจที่ต้องเร่งรัด ลูป คือชายหนุ่มที่ก้าวเข้ามาสู่เส้นทางนี้ด้วยความมุ่งมั่น เขาเริ่มทำงานวันแรกใ...</description><pubDate>Sat, 28 Sep 2024 00:00:00 GMT</pubDate></item><item><title>“Loop” ตอนที่ 2 Primitive Obsession — Code Smell</title><link>https://www.boonsong.dev/loop-2/</link><guid isPermaLink="true">https://www.boonsong.dev/loop-2/</guid><description>“คันหลังนะหนุ่ม ลุงจะไปส่งแก๊ส” เห็นได้ชัด ผมไม่ได้โชดดีเหมือนวันก่อน เมื่อถึงตึกผมได้แต่ถอนหายใจเบาๆ อีกครั้งและเดินไปแลกบัตรขึ้นตึกที่ฝ่ายต้อนรับ</description><pubDate>Tue, 29 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Event notifications</title><link>https://www.boonsong.dev/pattern-event-driven-architecture-2/</link><guid isPermaLink="true">https://www.boonsong.dev/pattern-event-driven-architecture-2/</guid><description>Event notifications หนึ่งใน pattern ที่ได้รับความนิยมสำหรับ EDA ในบทความนี้เราจะมาทำความรู้จักความหมายและตัวอย่างของ messages</description><pubDate>Mon, 12 Dec 2022 20:09:13 GMT</pubDate></item><item><title>Saga Pattern: Fundamentals</title><link>https://www.boonsong.dev/saga-pattern-fundamentals/</link><guid isPermaLink="true">https://www.boonsong.dev/saga-pattern-fundamentals/</guid><description>Saga ถูกพูดถึงครั้งแรกในปี 1987 () โดย Hector Garcia-Molina และ Kenneth Salem พวกเขาเสนอวิธีการแก้ปัญหา LLTs (Long Lived Transactions) และถูกพูดถึงอีกครั้งในปี ...</description><pubDate>Sun, 23 Jun 2024 00:00:00 GMT</pubDate></item><item><title>Should Use: เอกพจน์ or พหูพจน์ ? - REST API</title><link>https://www.boonsong.dev/singular-or-plural-naming/</link><guid isPermaLink="true">https://www.boonsong.dev/singular-or-plural-naming/</guid><description>ปัญหาการตั้งชื่อด้วยคำ Nouns ที่เป็น เอกพจน์(singular) หรือ พหูพจน์(plural) ยังเป็นสิ่งที่โต้เถียงกัน ว่า GET /resources หรือ GET /resource ใครถูก? ใครผิด?</description><pubDate>Fri, 01 Jul 2022 12:04:13 GMT</pubDate></item><item><title>Long Method</title><link>https://www.boonsong.dev/smells-long-method/</link><guid isPermaLink="true">https://www.boonsong.dev/smells-long-method/</guid><description>code smells ที่น่ารักอีก 1 ตัว มาดูวิธีจัดการกับความน่ารักของ smell นี้กัน โดยอ้างอิงจากหนังสือ Refactoring</description><pubDate>Sat, 25 Jun 2022 17:04:13 GMT</pubDate></item><item><title>SSO Authentication ด้วย Sidecar Containers</title><link>https://www.boonsong.dev/sso-authentication-with-sidecar-ontainers/</link><guid isPermaLink="true">https://www.boonsong.dev/sso-authentication-with-sidecar-ontainers/</guid><description>ในบทความนี้เราจะมาประยุกต์ใช้ Sidecar pattern เพื่อนำ Logic ของ Authentication ออกจาก Application Layer พร้อมกับ Reuse ใช้กับ Service อื่นๆ โดยที่ไม่ต้องสนใจเรื่องของ Programming Language</description><pubDate>Tue, 09 Jan 2024 09:09:13 GMT</pubDate></item><item><title>Pattern: Strangler Fig Application #1</title><link>https://www.boonsong.dev/strangler-fig-application-1/</link><guid isPermaLink="true">https://www.boonsong.dev/strangler-fig-application-1/</guid><description>วิธีการ migrate จาก monolith ไปสู่ microservices แบบไปทีละเล็กไปทีละน้อย</description><pubDate>Thu, 30 Nov 2023 01:10:51 GMT</pubDate></item><item><title>Technical Debt กับ Scrum Teams</title><link>https://www.boonsong.dev/technical-debt-and-scrum-teams/</link><guid isPermaLink="true">https://www.boonsong.dev/technical-debt-and-scrum-teams/</guid><description>Technical Debt ถูกเรียกครั้งแรกโดย Ward Cunningham ในปี 1992 มาทำความรู้จักและลองมองจากมุมของ scrum teams กัน</description><pubDate>Thu, 03 Aug 2023 17:27:13 GMT</pubDate></item><item><title>Transaction Script to Active record</title><link>https://www.boonsong.dev/transaction-script-to-active-record/</link><guid isPermaLink="true">https://www.boonsong.dev/transaction-script-to-active-record/</guid><description>Transaction Script และ Active record คือ implementing domain logic ที่ได้รับความนิยมมาอย่างยาวนาน เราจะมาทำความรู้จักและค่อยๆ ทำความเข้าใจไปที่ละ step พร้อมตัวอย่าง code การเปลี่ยนจาก Transaction Script ไป Active record</description><pubDate>Wed, 28 Dec 2022 09:09:13 GMT</pubDate></item><item><title>What is Software Architecture?</title><link>https://www.boonsong.dev/what-is-software-architecture/</link><guid isPermaLink="true">https://www.boonsong.dev/what-is-software-architecture/</guid><description>โดยปกติผมมักจะเริ่มเนื้อหาด้วยการอธิบายความหมายของหัวข้อที่ต้องการจะเขียน เช่น Software Architecture คืออะไร แต่สำหรับครั้งนี้ ผมขอสารภาพเลยว่าผมก็เองก็ยังไม่สา...</description><pubDate>Thu, 24 Jul 2025 00:00:00 GMT</pubDate></item><item><title>When to use Event Modeling?</title><link>https://www.boonsong.dev/when-to-use-event-modeling/</link><guid isPermaLink="true">https://www.boonsong.dev/when-to-use-event-modeling/</guid><description>หลังจากผ่านกระบวนการศึกษาและหาความเรียนรู้ ก้าวต่อไปคือการนำไปใช้ให้เกิดประโยชน์</description><pubDate>Sun, 20 Oct 2024 00:00:00 GMT</pubDate></item><item><title>Widgets vs helper methods</title><link>https://www.boonsong.dev/widgets-vs-helper-methods/</link><guid isPermaLink="true">https://www.boonsong.dev/widgets-vs-helper-methods/</guid><description>เปรียบเทียบระหว่าง Widgets กับ helper methods การ Refactoring และ Effort ที่คุณต้องจ่าย</description><pubDate>Sat, 04 Jun 2022 11:04:13 GMT</pubDate></item></channel></rss>