[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-6-12-%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B8%2525252525252525252525252525252525252525252525252581%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B8%25252525252525252525252525252525252525252525252525A7%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B9%2525252525252525252525252525252525252525252525252588%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B8%25252525252525252525252525252525252525252525252525B2%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B8%2525252525252525252525252525252525252525252525252588%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B8%25252525252525252525252525252525252525252525252525B0%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B9%2525252525252525252525252525252525252525252525252580%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B8%252525252525252525252525252525252525252525252525259B%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B9%2525252525252525252525252525252525252525252525252587%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B8%2525252525252525252525252525252525252525252525252599%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B8%25252525252525252525252525252525252525252525252525A0%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B8%25252525252525252525252525252525252525252525252525B2%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B8%25252525252525252525252525252525252525252525252525A9%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B8%25252525252525252525252525252525252525252525252525B2%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B9%2525252525252525252525252525252525252525252525252582%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B8%2525252525252525252525252525252525252525252525252584%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B9%2525252525252525252525252525252525252525252525252589%25252525252525252525252525252525252525252525252525E0%25252525252525252525252525252525252525252525252525B8%2525252525252525252525252525252525252525252525252594-all-all-createdAt:desc-default":3},{"data":4,"page":518,"perPage":519,"totalItems":520,"totalPages":521},[5,75,123,167,204,256,288,320,348,389,442,480],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":71,"published_at":72,"school_blog":67,"short_description":73,"title":6,"updated":74,"slug":68,"views":70},"JS2GO EP.48 Logging & Monitoring for Production (Go & Node.js)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fssj081nxo3m7iqh\u002Fcover_image_js2_go_ep_48_logging_monitoring_for_production_go_node_qpowgw7zj4.js.webp","2026-03-04 08:44:54.485Z",{"keywords":10,"locale":39,"school_blog":49},[11,19,24,29,34],{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},"sclkey987654321","school_keywords","2026-03-04 08:44:53.651Z","","tuo9u1ayxlr8xvm","Monitoring System","2026-04-10 16:12:51.456Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:44:54.012Z","e283qzmjw1vq2l4","Logging Production","2026-04-10 16:12:51.523Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:24:40.405Z","05u3tysava2z6ga","Node.js","2026-04-10 16:07:29.504Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-04-10 16:07:28.339Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},"th","pbc_1989393366","locales","2026-01-22 10:59:55.832Z","twemoji:flag-thailand","s8wri3bt4vgg2ji",true,"Thai","2026-04-10 15:42:46.614Z",{"category":50,"collectionId":51,"collectionName":52,"created":15,"expand":53,"id":67,"slug":68,"updated":69,"views":70},"hsa1afr8fcnd6qb","pbc_2105096300","school_blogs",{"category":54},{"blogIds":55,"collectionId":56,"collectionName":57,"created":58,"created_by":15,"id":50,"image":59,"image_alt":15,"image_path":60,"label":61,"name":62,"priority":63,"publish_at":64,"scheduled_at":15,"status":65,"updated":66,"updated_by":15},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:24:37.986Z","js2_go_2_11zon_y6paxmuz32.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fhsa1afr8fcnd6qb\u002Fjs2_go_2_11zon_y6paxmuz32.webp",{"en":62,"th":62},"JS2GO",10,"2025-08-11 03:41:08.820Z","published","2026-04-25 02:32:14.339Z","d8jrjoxb8k7la64","js2go-ep48-logging-monitoring-production-go-nodejs","2026-05-12 19:23:06.222Z",232,"ssj081nxo3m7iqh","2025-12-23 04:57:48.010Z","จากการมีแค่ log สู่การเข้าใจระบบทั้งก้อน เรียนรู้ Structured Logging, Correlation ID, Metrics, Tracing และ Error Monitoring เพื่อให้ระบบ Go และ Node.js พร้อมใช้งานจริงในระดับ Production และ Microservices","2026-05-08 06:51:59.957Z",{"alt":76,"cover_image_path":77,"created":78,"expand":79,"id":119,"published_at":120,"school_blog":115,"short_description":121,"title":76,"updated":122,"slug":116,"views":118},"Work-Life Balance แบบ Programmer: วิธีไม่ให้หมดไฟในวงการนี้","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fkwwrvw3iltat93v\u002Fwork_life_balance_for_programmers_how_to_avoid_burnout_in_the_tech_industry_762b9s96my.webp","2026-03-04 08:44:58.989Z",{"keywords":80,"locale":101,"school_blog":102},[81,86,91,96],{"collectionId":12,"collectionName":13,"created":82,"created_by":15,"id":83,"name":84,"updated":85,"updated_by":15},"2026-03-04 08:35:12.499Z","9bexb3o9mxg9dei","Burnout","2026-04-10 16:12:39.924Z",{"collectionId":12,"collectionName":13,"created":87,"created_by":15,"id":88,"name":89,"updated":90,"updated_by":15},"2026-03-04 08:44:58.046Z","h2p9vyglxcuqfov","ชีวิตโปรแกรมเมอร์","2026-04-10 16:12:52.407Z",{"collectionId":12,"collectionName":13,"created":92,"created_by":15,"id":93,"name":94,"updated":95,"updated_by":15},"2026-03-04 08:44:58.280Z","hoxhv4dr3heikf6","โปรแกรมเมอร์หมดไฟ","2026-04-10 16:12:52.474Z",{"collectionId":12,"collectionName":13,"created":97,"created_by":15,"id":98,"name":99,"updated":100,"updated_by":15},"2026-03-04 08:44:57.697Z","rw5wz1cf9aox58p","Work-Life Balance","2026-04-10 16:12:52.284Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":103,"collectionId":51,"collectionName":52,"created":15,"expand":104,"id":115,"slug":116,"updated":117,"views":118},"spm4l1k5bgmhmmt",{"category":105},{"blogIds":106,"collectionId":56,"collectionName":57,"created":107,"created_by":15,"id":103,"image":108,"image_alt":15,"image_path":109,"label":110,"name":111,"priority":112,"publish_at":113,"scheduled_at":15,"status":65,"updated":114,"updated_by":15},[],"2026-03-04 08:31:18.590Z","50hyjr6os45_ayazwr5gq7.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fspm4l1k5bgmhmmt\u002F50hyjr6os45_ayazwr5gq7.png",{"en":111,"th":111},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-04-25 02:32:14.497Z","sy7kac0t03r9dox","work-life-balance-for-programmers","2026-05-12 03:07:21.655Z",230,"kwwrvw3iltat93v","2025-12-22 02:12:40.992Z","การทำงานสายโปรแกรมเมอร์เต็มไปด้วยความกดดัน เดดไลน์ และการเรียนรู้ไม่สิ้นสุด บทความนี้จะพาคุณเข้าใจ Work-Life Balance สำหรับ Programmer อย่างแท้จริง พร้อมแนวคิดและวิธีดูแลตัวเอง เพื่อทำงานได้ดีโดยไม่หมดไฟในระยะยาว","2026-05-08 06:52:01.275Z",{"alt":124,"cover_image_path":125,"created":126,"expand":127,"id":163,"published_at":164,"school_blog":159,"short_description":165,"title":124,"updated":166,"slug":160,"views":162},"EP.119 สร้างระบบ Real-time Document Editing แบบ Google Docs ด้วย WebSocket และ Go","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fnyzij7kxx6kmddu\u002Fcover_image_ep_ylr3nwpk30.gWebSocketandGo.webp","2026-03-04 08:44:56.148Z",{"keywords":128,"locale":145,"school_blog":146},[129,134,135,140],{"collectionId":12,"collectionName":13,"created":130,"created_by":15,"id":131,"name":132,"updated":133,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-04-10 16:08:05.227Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":136,"created_by":15,"id":137,"name":138,"updated":139,"updated_by":15},"2026-03-04 08:44:54.877Z","ype7kkszqa7py9n","Real-time Document","2026-04-10 16:12:51.779Z",{"collectionId":12,"collectionName":13,"created":141,"created_by":15,"id":142,"name":143,"updated":144,"updated_by":15},"2026-03-04 08:44:54.550Z","dhhilrqrpmtr3x7","Google Docs","2026-04-10 16:12:51.619Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":147,"collectionId":51,"collectionName":52,"created":15,"expand":148,"id":159,"slug":160,"updated":161,"views":162},"wqxt7ag2gn7xcmk",{"category":149},{"blogIds":150,"collectionId":56,"collectionName":57,"created":151,"created_by":15,"id":147,"image":152,"image_alt":15,"image_path":153,"label":154,"name":155,"priority":156,"publish_at":157,"scheduled_at":15,"status":65,"updated":158,"updated_by":15},[],"2026-03-04 08:33:53.210Z","59ty92ns80w_15oc1implw.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fwqxt7ag2gn7xcmk\u002F59ty92ns80w_15oc1implw.png",{"en":155,"th":155},"Golang The Series",1,"2026-03-16 04:39:38.440Z","2026-04-25 02:32:15.470Z","nez2cwex9p6we4q","realtime-document-editing-with-go-websocket","2026-05-12 11:21:18.066Z",242,"nyzij7kxx6kmddu","2025-12-22 02:12:35.702Z","เรียนรู้การพัฒนาระบบแก้ไขเอกสารแบบหลายคนพร้อมกันแบบ Real-time ด้วย Go และ WebSocket พร้อมแนวคิดจัดการ Conflict และ Version Control","2026-05-08 06:52:00.506Z",{"alt":168,"cover_image_path":169,"created":170,"expand":171,"id":200,"published_at":201,"school_blog":196,"short_description":202,"title":168,"updated":203,"slug":197,"views":199},"EP.118 การสร้างระบบ AI + WebSocket สำหรับ IoT แบบเรียลไทม์","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fusojgv4mbo51ee9\u002Fcover_image_ep_5u7zo3et9b.emforIoTDevices.webp","2026-03-04 08:44:57.441Z",{"keywords":172,"locale":190,"school_blog":191},[173,174,179,180,185],{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":175,"created_by":15,"id":176,"name":177,"updated":178,"updated_by":15},"2026-03-04 08:44:56.136Z","1ant8hjpcxuj8a2","IoT","2026-04-10 16:12:51.845Z",{"collectionId":12,"collectionName":13,"created":130,"created_by":15,"id":131,"name":132,"updated":133,"updated_by":15},{"collectionId":12,"collectionName":13,"created":181,"created_by":15,"id":182,"name":183,"updated":184,"updated_by":15},"2026-03-04 08:31:29.142Z","hrqdq7kjl5lzjmi","AI","2026-04-10 16:07:41.358Z",{"collectionId":12,"collectionName":13,"created":186,"created_by":15,"id":187,"name":188,"updated":189,"updated_by":15},"2026-03-04 08:44:49.054Z","vbjgbr5ah0kh43p","Real-time System","2026-04-10 16:12:50.311Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":147,"collectionId":51,"collectionName":52,"created":15,"expand":192,"id":196,"slug":197,"updated":198,"views":199},{"category":193},{"blogIds":194,"collectionId":56,"collectionName":57,"created":151,"created_by":15,"id":147,"image":152,"image_alt":15,"image_path":153,"label":195,"name":155,"priority":156,"publish_at":157,"scheduled_at":15,"status":65,"updated":158,"updated_by":15},[],{"en":155,"th":155},"3wlgaoume77bwtm","golang-ep118-ai-websocket-iot-real-time","2026-05-11 11:49:09.698Z",251,"usojgv4mbo51ee9","2025-12-22 02:12:30.693Z","เรียนรู้การสร้างระบบ IoT อัจฉริยะด้วย Go + WebSocket ที่ผสาน AI เพื่อทำ Anomaly Detection และ Predictive Maintenance แบบเรียลไทม์ พร้อมแนวทางใช้งานจริงในระดับ Production","2026-05-08 06:52:00.864Z",{"alt":205,"cover_image_path":206,"created":207,"expand":208,"id":252,"published_at":253,"school_blog":248,"short_description":254,"title":205,"updated":255,"slug":249,"views":251},"ไขความลับ \"Nano Banana\": ทำไม AI ชื่อกล้วยๆ ถึงล้มแชมป์เก่าได้ราบคาบ?","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fndyl8vxkneahr45\u002Fdigital_glowing_banana_graphic_representing_nano_banana_the_codename_for_google_s_new_gemini_image_m_4di09vp1hq.webp","2026-03-04 08:45:01.197Z",{"keywords":209,"locale":235,"school_blog":236},[210,215,220,225,230],{"collectionId":12,"collectionName":13,"created":211,"created_by":15,"id":212,"name":213,"updated":214,"updated_by":15},"2026-03-04 08:44:59.347Z","zx9l4eq448df98a","Gemini AI","2026-04-10 16:12:52.674Z",{"collectionId":12,"collectionName":13,"created":216,"created_by":15,"id":217,"name":218,"updated":219,"updated_by":15},"2026-03-04 08:45:00.090Z","yxvyznmahwofbr4","Gemini Image Generation","2026-04-10 16:12:52.934Z",{"collectionId":12,"collectionName":13,"created":221,"created_by":15,"id":222,"name":223,"updated":224,"updated_by":15},"2026-03-04 08:45:00.752Z","2c5b5bcrxk9qvpy","สร้างภาพด้วย AI","2026-04-10 16:12:53.208Z",{"collectionId":12,"collectionName":13,"created":226,"created_by":15,"id":227,"name":228,"updated":229,"updated_by":15},"2026-03-04 08:44:59.765Z","51knaqayw5mn73i","Google Gemini","2026-04-10 16:12:52.773Z",{"collectionId":12,"collectionName":13,"created":231,"created_by":15,"id":232,"name":233,"updated":234,"updated_by":15},"2026-03-04 08:45:00.498Z","21720ewj4b2qmja","Nano Banana","2026-04-10 16:12:53.080Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":237,"collectionId":51,"collectionName":52,"created":15,"expand":238,"id":248,"slug":249,"updated":250,"views":251},"pkuzfil3b4ug2ea",{"category":239},{"blogIds":240,"collectionId":56,"collectionName":57,"created":241,"created_by":15,"id":237,"image":242,"image_alt":15,"image_path":243,"label":244,"name":245,"priority":112,"publish_at":246,"scheduled_at":15,"status":65,"updated":247,"updated_by":15},[],"2026-03-04 08:31:47.860Z","3w9eadde0ql_vquww3nx7o.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fpkuzfil3b4ug2ea\u002F3w9eadde0ql_vquww3nx7o.png",{"en":245,"th":245},"Cutting-Edge Tech","2025-01-27 08:43:38.395Z","2026-04-25 02:32:14.847Z","r41jxqt4x4t621a","nano-banana-google-gemini-ai-reveal","2026-05-12 18:44:06.543Z",258,"ndyl8vxkneahr45","2025-12-17 11:47:04.517Z","เจาะลึกเบื้องหลัง \"Nano Banana\" ชื่อลับของ Gemini Image Model ที่เอาชนะ Midjourney ในการทดสอบ Blind Test ด้วยฟีเจอร์เขียนข้อความแม่นยำและความเข้าใจบริบทระดับเทพ พร้อมวิธีใช้งานจริง","2026-05-08 06:52:01.468Z",{"alt":257,"cover_image_path":258,"created":259,"expand":260,"id":284,"published_at":285,"school_blog":280,"short_description":286,"title":257,"updated":287,"slug":281,"views":283},"JS2GO EP.47 Dependency Injection ใน Go และ Node.js: ทำไมระบบใหญ่ต้องมี DI?","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F89duht4c5ae6qrn\u002Fcover_image_js2_go_ep_47_dependency_injection_in_go_and_node_hehykg0srq.geSystemsNeedDI.webp","2026-03-04 08:45:02.070Z",{"keywords":261,"locale":274,"school_blog":275},[262,267,272,273],{"collectionId":12,"collectionName":13,"created":263,"created_by":15,"id":264,"name":265,"updated":266,"updated_by":15},"2026-03-04 08:45:01.083Z","anx8rod7y41shjl","Clean Architecture","2026-04-10 16:12:53.282Z",{"collectionId":12,"collectionName":13,"created":268,"created_by":15,"id":269,"name":270,"updated":271,"updated_by":15},"2026-03-04 08:45:01.460Z","bbwe2jz83qa1d1j","Dependency Injection","2026-04-10 16:12:53.456Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":50,"collectionId":51,"collectionName":52,"created":15,"expand":276,"id":280,"slug":281,"updated":282,"views":283},{"category":277},{"blogIds":278,"collectionId":56,"collectionName":57,"created":58,"created_by":15,"id":50,"image":59,"image_alt":15,"image_path":60,"label":279,"name":62,"priority":63,"publish_at":64,"scheduled_at":15,"status":65,"updated":66,"updated_by":15},[],{"en":62,"th":62},"i20pcnin578firk","js2go-ep47-dependency-injection-go-nodejs","2026-05-10 07:49:33.911Z",249,"89duht4c5ae6qrn","2025-12-17 02:25:59.478Z","DI คือเทคนิคสำคัญที่ช่วยให้ระบบทดสอบง่าย ลดการผูกติดกันของโค้ด และปรับเปลี่ยน implementation ได้โดยไม่กระทบส่วนอื่น บทความนี้อธิบายแนวคิด DI พร้อมโค้ดตัวอย่างใน Go (pgx\u002FGORM) และ Node.js รวมถึงวิธีทำให้ระบบพร้อมสำหรับ Production จริง","2026-05-08 06:52:01.906Z",{"alt":289,"cover_image_path":290,"created":291,"expand":292,"id":316,"published_at":317,"school_blog":312,"short_description":318,"title":289,"updated":319,"slug":313,"views":315},"JS2GO EP.46 การสร้าง Middleware และ Modular Architecture ใน Go และ Node.js","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fddfdxscguz1ldsl\u002Fcover_image_js2_go_ep_46_building_middleware_and_modular_architecture_in_go_and_node_exrof0jwyi.js.webp","2026-03-04 08:45:03.591Z",{"keywords":293,"locale":306,"school_blog":307},[294,295,296,301],{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":297,"created_by":15,"id":298,"name":299,"updated":300,"updated_by":15},"2026-03-04 08:45:02.900Z","12i9ika4aocvtm5","Modular Architecture","2026-04-10 16:12:53.598Z",{"collectionId":12,"collectionName":13,"created":302,"created_by":15,"id":303,"name":304,"updated":305,"updated_by":15},"2026-03-04 08:34:25.436Z","bctyeonwhcrzvq3","Middleware","2026-04-10 16:08:14.305Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":50,"collectionId":51,"collectionName":52,"created":15,"expand":308,"id":312,"slug":313,"updated":314,"views":315},{"category":309},{"blogIds":310,"collectionId":56,"collectionName":57,"created":58,"created_by":15,"id":50,"image":59,"image_alt":15,"image_path":60,"label":311,"name":62,"priority":63,"publish_at":64,"scheduled_at":15,"status":65,"updated":66,"updated_by":15},[],{"en":62,"th":62},"06v021j7mqri9t7","js2go-ep46-middleware-modular-architecture-go-nodejs","2026-05-09 13:47:45.316Z",248,"ddfdxscguz1ldsl","2025-12-17 02:25:26.894Z","เรียนรู้การสร้าง Middleware (Auth, Logging, Rate Limit) และออกแบบ Modular Architecture แบบองค์กรใน Go และ Node.js พร้อมตัวอย่างโค้ด Fiber + Express และ Best Practices ที่ใช้จริงในระบบ Production","2026-05-08 06:52:02.186Z",{"alt":321,"cover_image_path":322,"created":323,"expand":324,"id":344,"published_at":345,"school_blog":340,"short_description":346,"title":321,"updated":347,"slug":341,"views":343},"EP.117 การเชื่อมต่อ IoT Device หลายตัวด้วย WebSocket (Real-time IoT Network)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F6geyjq1575qgjai\u002Fcover_image_ep_gg70n9zn2d.-timeIoTNetwork.webp","2026-03-04 08:45:04.567Z",{"keywords":325,"locale":334,"school_blog":335},[326,331,332,333],{"collectionId":12,"collectionName":13,"created":327,"created_by":15,"id":328,"name":329,"updated":330,"updated_by":15},"2026-03-04 08:44:49.445Z","0ips6v3gj6yy1h7","ระบบเรียลไทม์","2026-04-10 16:12:50.583Z",{"collectionId":12,"collectionName":13,"created":175,"created_by":15,"id":176,"name":177,"updated":178,"updated_by":15},{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":130,"created_by":15,"id":131,"name":132,"updated":133,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":147,"collectionId":51,"collectionName":52,"created":15,"expand":336,"id":340,"slug":341,"updated":342,"views":343},{"category":337},{"blogIds":338,"collectionId":56,"collectionName":57,"created":151,"created_by":15,"id":147,"image":152,"image_alt":15,"image_path":153,"label":339,"name":155,"priority":156,"publish_at":157,"scheduled_at":15,"status":65,"updated":158,"updated_by":15},[],{"en":155,"th":155},"nboyiqnzglp5uh7","ep117-iot-multi-device-websocket","2026-05-12 11:25:37.435Z",213,"6geyjq1575qgjai","2025-12-15 01:58:37.695Z","เรียนรู้การสร้างระบบ IoT แบบ Real-time ด้วย Go และ WebSocket ที่รองรับอุปกรณ์หลายตัวพร้อมกัน พร้อมแนวทาง Authentication, Bandwidth Management และการขยายระบบให้รองรับอุปกรณ์นับหมื่น","2026-05-08 06:52:02.811Z",{"alt":349,"cover_image_path":350,"created":351,"expand":352,"id":385,"published_at":386,"school_blog":382,"short_description":387,"title":349,"updated":388,"slug":383,"views":384},"EP.116 การเพิ่มฟีเจอร์ Voice\u002FVideo แบบเรียลไทม์ด้วย WebRTC + WebSocket Signaling","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fvkhrndyjxf6sakd\u002Fcover_image_ep_kpibg1eae8.etSignalinginGo.webp","2026-03-04 08:45:06.410Z",{"keywords":353,"locale":376,"school_blog":377},[354,359,360,365,370,371],{"collectionId":12,"collectionName":13,"created":355,"created_by":15,"id":356,"name":357,"updated":358,"updated_by":15},"2026-03-04 08:45:05.836Z","37t2tvjs3vvty3x","WebRTC","2026-04-10 16:12:54.088Z",{"collectionId":12,"collectionName":13,"created":130,"created_by":15,"id":131,"name":132,"updated":133,"updated_by":15},{"collectionId":12,"collectionName":13,"created":361,"created_by":15,"id":362,"name":363,"updated":364,"updated_by":15},"2026-03-04 08:45:05.158Z","836if8oqwpocqe3","Voice Chat","2026-04-10 16:12:53.881Z",{"collectionId":12,"collectionName":13,"created":366,"created_by":15,"id":367,"name":368,"updated":369,"updated_by":15},"2026-03-04 08:45:04.918Z","2oi71a8zf6vf68l","Video Call","2026-04-10 16:12:53.751Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":372,"created_by":15,"id":373,"name":374,"updated":375,"updated_by":15},"2026-03-04 08:45:05.632Z","cof4vbc2ts3emn3","WebSocket Signaling","2026-04-10 16:12:54.016Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":147,"collectionId":51,"collectionName":52,"created":15,"expand":378,"id":382,"slug":383,"updated":15,"views":384},{"category":379},{"blogIds":380,"collectionId":56,"collectionName":57,"created":151,"created_by":15,"id":147,"image":152,"image_alt":15,"image_path":153,"label":381,"name":155,"priority":156,"publish_at":157,"scheduled_at":15,"status":65,"updated":158,"updated_by":15},[],{"en":155,"th":155},"9u83c9b4adi7p6e","ep116-realtime-voice-video-webrtc-websocket-go",261,"vkhrndyjxf6sakd","2025-12-15 01:58:16.309Z","เรียนรู้วิธีสร้างระบบ Video Call และ Voice Chat แบบเรียลไทม์ด้วย WebRTC และ WebSocket Signaling ในภาษา Go พร้อมโค้ดตัวอย่างและแนวทางการออกแบบระบบระดับ Production","2026-05-08 06:52:03.446Z",{"alt":390,"cover_image_path":391,"created":392,"expand":393,"id":437,"published_at":438,"school_blog":433,"short_description":439,"title":440,"updated":441,"slug":434,"views":436},"Docker Compose คืออะไร? เครื่องมือสำคัญที่โปรแกรมเมอร์ยุคใหม่ต้องรู้","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fhbhtvcn6m4zvtaf\u002Fcover_image_what_is_docker_compose_the_essential_tool_for_modern_developers_clkznj0vwv.webp","2026-03-04 08:45:07.426Z",{"keywords":394,"locale":420,"school_blog":421},[395,400,405,410,415],{"collectionId":12,"collectionName":13,"created":396,"created_by":15,"id":397,"name":398,"updated":399,"updated_by":15},"2026-03-04 08:35:11.709Z","ga2eo1rr4uw66mu","DevOps","2026-04-10 16:12:39.734Z",{"collectionId":12,"collectionName":13,"created":401,"created_by":15,"id":402,"name":403,"updated":404,"updated_by":15},"2026-03-04 08:45:06.613Z","mel6m5brnjq2zmy","Multi-container","2026-04-10 16:12:54.338Z",{"collectionId":12,"collectionName":13,"created":406,"created_by":15,"id":407,"name":408,"updated":409,"updated_by":15},"2026-03-04 08:26:56.612Z","yf74wkqyamfc5qx","โปรแกรมเมอร์","2026-04-10 16:07:36.426Z",{"collectionId":12,"collectionName":13,"created":411,"created_by":15,"id":412,"name":413,"updated":414,"updated_by":15},"2026-03-04 08:45:06.433Z","h61cls1b4isvvvx","Docker Compose","2026-04-10 16:12:54.185Z",{"collectionId":12,"collectionName":13,"created":416,"created_by":15,"id":417,"name":418,"updated":419,"updated_by":15},"2026-03-04 08:44:18.652Z","jr5zczy6qrxmd88","Docker","2026-04-10 16:12:43.264Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":422,"collectionId":51,"collectionName":52,"created":15,"expand":423,"id":433,"slug":434,"updated":435,"views":436},"jwhmeg2uxwz0bkp",{"category":424},{"blogIds":425,"collectionId":56,"collectionName":57,"created":426,"created_by":15,"id":422,"image":427,"image_alt":15,"image_path":428,"label":429,"name":430,"priority":112,"publish_at":431,"scheduled_at":15,"status":65,"updated":432,"updated_by":15},[],"2026-03-04 08:31:40.635Z","1qt33a4n2u3_lr23qy62xh.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fjwhmeg2uxwz0bkp\u002F1qt33a4n2u3_lr23qy62xh.png",{"en":430,"th":430},"Tools & Resources","2025-01-31 09:55:27.001Z","2026-04-25 02:32:14.689Z","myt8jk36cr4iuqn","what-is-docker-compose-essential-tool-for-developers","2026-05-11 16:39:13.487Z",383,"hbhtvcn6m4zvtaf","2025-12-12 02:47:35.017Z","เรียนรู้ Docker Compose เครื่องมือจัดการ Multi-container ที่สำคัญที่สุดสำหรับโปรแกรมเมอร์และ DevOps สรุปวิธีการทำงาน พร้อมตัวอย่างไฟล์ docker-compose.yml ที่ทำให้การพัฒนาซอฟต์แวร์ง่ายขึ้นหลายเท่าตัว!","Docker Compose คืออะไร? เครื่องมือสำคัญที่โปรแกรมเมอร์ต้องรู้","2026-05-08 06:52:03.798Z",{"alt":443,"cover_image_path":444,"created":445,"expand":446,"id":476,"published_at":477,"school_blog":472,"short_description":478,"title":443,"updated":479,"slug":473,"views":475},"JS2GO EP.45 การจัดการ Transactions และ ACID ใน Go และ JavaScript","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F4buexxrk2sagdet\u002Fcover_image_js2_go_ep_dfqdfnfoh9.nGovsJavaScript.webp","2026-03-04 08:45:08.122Z",{"keywords":447,"locale":466,"school_blog":467},[448,449,450,455,456,461],{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":451,"created_by":15,"id":452,"name":453,"updated":454,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-04-10 16:07:26.172Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":457,"created_by":15,"id":458,"name":459,"updated":460,"updated_by":15},"2026-03-04 08:45:07.600Z","k7yaeiuxv1skqiy","ACID","2026-04-10 16:12:54.568Z",{"collectionId":12,"collectionName":13,"created":462,"created_by":15,"id":463,"name":464,"updated":465,"updated_by":15},"2026-03-04 08:45:07.399Z","72jmv19z0d4abka","Transactions","2026-04-10 16:12:54.403Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":50,"collectionId":51,"collectionName":52,"created":15,"expand":468,"id":472,"slug":473,"updated":474,"views":475},{"category":469},{"blogIds":470,"collectionId":56,"collectionName":57,"created":58,"created_by":15,"id":50,"image":59,"image_alt":15,"image_path":60,"label":471,"name":62,"priority":63,"publish_at":64,"scheduled_at":15,"status":65,"updated":66,"updated_by":15},[],{"en":62,"th":62},"bk7k4smwq526one","js2go-ep45-transaction-acid-go-vs-javascript","2026-05-12 10:44:43.081Z",228,"4buexxrk2sagdet","2025-12-08 07:52:14.487Z","เรียนรู้พื้นฐานสำคัญของ Transaction, ACID, Deadlock, Isolation Level และวิธีทำธุรกรรมให้ถูกต้องในระบบ Production พร้อมตัวอย่างโค้ด Go (pgx\u002FGORM) และ Node.js (pg) ที่ใช้งานได้จริง","2026-05-08 06:52:04.336Z",{"alt":481,"cover_image_path":482,"created":483,"expand":484,"id":514,"published_at":515,"school_blog":510,"short_description":516,"title":481,"updated":517,"slug":511,"views":513},"JS2GO EP.44 การเชื่อมต่อ Database: SQL & NoSQL ใน JavaScript และ Go","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fy8ql3s3zg33thzx\u002Fcover_image_js2_go_ep_i85wxvw0ej.JavaScriptandGo.webp","2026-03-04 08:45:10.183Z",{"keywords":485,"locale":504,"school_blog":505},[486,487,492,493,498,499],{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":488,"created_by":15,"id":489,"name":490,"updated":491,"updated_by":15},"2026-03-04 08:45:08.439Z","wscthqnz8vx2sox","PostgreSQL","2026-04-10 16:12:54.755Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":494,"created_by":15,"id":495,"name":496,"updated":497,"updated_by":15},"2026-03-04 08:45:09.036Z","l1oi3jpol4c4ezx","Database","2026-04-10 16:12:54.847Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":500,"created_by":15,"id":501,"name":502,"updated":503,"updated_by":15},"2026-03-04 08:45:09.799Z","402ofda7qxj0vs0","การเชื่อมต่อฐานข้อมูล","2026-04-10 16:12:55.032Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":50,"collectionId":51,"collectionName":52,"created":15,"expand":506,"id":510,"slug":511,"updated":512,"views":513},{"category":507},{"blogIds":508,"collectionId":56,"collectionName":57,"created":58,"created_by":15,"id":50,"image":59,"image_alt":15,"image_path":60,"label":509,"name":62,"priority":63,"publish_at":64,"scheduled_at":15,"status":65,"updated":66,"updated_by":15},[],{"en":62,"th":62},"80o1aimylbrt97t","js2go-ep44-database-connection-sql-nosql-javascript-go","2026-05-09 16:26:51.129Z",219,"y8ql3s3zg33thzx","2025-12-08 07:51:54.211Z","สรุปวิธีเชื่อมต่อ PostgreSQL, MySQL, MongoDB และ Redis ใน JavaScript และ Go พร้อมตัวอย่างโค้ดจริง การตั้งค่า Connection Pool, การเลือก ORM\u002FQuery Builder และ Best Practices ที่ต้องรู้ก่อนขึ้นระบบ Production","2026-05-08 06:52:04.733Z",6,12,407,34]