[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-7-12-superdev%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520academy-all-all-createdAt:desc-default":3},{"data":4,"page":511,"perPage":512,"totalItems":513,"totalPages":514},[5,70,102,146,188,242,284,322,364,397,434,474],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":66,"published_at":67,"school_blog":62,"short_description":68,"title":6,"updated":69,"slug":63,"views":65},"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":10,"locale":34,"school_blog":44},[11,19,24,29],{"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:45:01.083Z","","anx8rod7y41shjl","Clean Architecture","2026-04-10 16:12:53.282Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"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},"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:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},"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":45,"collectionId":46,"collectionName":47,"created":15,"expand":48,"id":62,"slug":63,"updated":64,"views":65},"hsa1afr8fcnd6qb","pbc_2105096300","school_blogs",{"category":49},{"blogIds":50,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":56,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"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":57,"th":57},"JS2GO",10,"2025-08-11 03:41:08.820Z","published","2026-04-25 02:32:14.339Z","i20pcnin578firk","js2go-ep47-dependency-injection-go-nodejs","2026-05-22 01:06:43.310Z",254,"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":71,"cover_image_path":72,"created":73,"expand":74,"id":98,"published_at":99,"school_blog":94,"short_description":100,"title":71,"updated":101,"slug":95,"views":97},"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":75,"locale":88,"school_blog":89},[76,77,78,83],{"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":79,"created_by":15,"id":80,"name":81,"updated":82,"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":84,"created_by":15,"id":85,"name":86,"updated":87,"updated_by":15},"2026-03-04 08:34:25.436Z","bctyeonwhcrzvq3","Middleware","2026-04-10 16:08:14.305Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":90,"id":94,"slug":95,"updated":96,"views":97},{"category":91},{"blogIds":92,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":93,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],{"en":57,"th":57},"06v021j7mqri9t7","js2go-ep46-middleware-modular-architecture-go-nodejs","2026-05-19 17:09:12.219Z",252,"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":103,"cover_image_path":104,"created":105,"expand":106,"id":142,"published_at":143,"school_blog":138,"short_description":144,"title":103,"updated":145,"slug":139,"views":141},"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":107,"locale":124,"school_blog":125},[108,113,118,119],{"collectionId":12,"collectionName":13,"created":109,"created_by":15,"id":110,"name":111,"updated":112,"updated_by":15},"2026-03-04 08:44:49.445Z","0ips6v3gj6yy1h7","ระบบเรียลไทม์","2026-04-10 16:12:50.583Z",{"collectionId":12,"collectionName":13,"created":114,"created_by":15,"id":115,"name":116,"updated":117,"updated_by":15},"2026-03-04 08:44:56.136Z","1ant8hjpcxuj8a2","IoT","2026-04-10 16:12:51.845Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":120,"created_by":15,"id":121,"name":122,"updated":123,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-04-10 16:08:05.227Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":126,"collectionId":46,"collectionName":47,"created":15,"expand":127,"id":138,"slug":139,"updated":140,"views":141},"wqxt7ag2gn7xcmk",{"category":128},{"blogIds":129,"collectionId":51,"collectionName":52,"created":130,"created_by":15,"id":126,"image":131,"image_alt":15,"image_path":132,"label":133,"name":134,"priority":135,"publish_at":136,"scheduled_at":15,"status":60,"updated":137,"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":134,"th":134},"Golang The Series",1,"2026-03-16 04:39:38.440Z","2026-04-25 02:32:15.470Z","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":147,"cover_image_path":148,"created":149,"expand":150,"id":184,"published_at":185,"school_blog":180,"short_description":186,"title":147,"updated":187,"slug":181,"views":183},"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":151,"locale":174,"school_blog":175},[152,157,158,163,168,169],{"collectionId":12,"collectionName":13,"created":153,"created_by":15,"id":154,"name":155,"updated":156,"updated_by":15},"2026-03-04 08:45:05.836Z","37t2tvjs3vvty3x","WebRTC","2026-04-10 16:12:54.088Z",{"collectionId":12,"collectionName":13,"created":120,"created_by":15,"id":121,"name":122,"updated":123,"updated_by":15},{"collectionId":12,"collectionName":13,"created":159,"created_by":15,"id":160,"name":161,"updated":162,"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":164,"created_by":15,"id":165,"name":166,"updated":167,"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":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":170,"created_by":15,"id":171,"name":172,"updated":173,"updated_by":15},"2026-03-04 08:45:05.632Z","cof4vbc2ts3emn3","WebSocket Signaling","2026-04-10 16:12:54.016Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":126,"collectionId":46,"collectionName":47,"created":15,"expand":176,"id":180,"slug":181,"updated":182,"views":183},{"category":177},{"blogIds":178,"collectionId":51,"collectionName":52,"created":130,"created_by":15,"id":126,"image":131,"image_alt":15,"image_path":132,"label":179,"name":134,"priority":135,"publish_at":136,"scheduled_at":15,"status":60,"updated":137,"updated_by":15},[],{"en":134,"th":134},"9u83c9b4adi7p6e","ep116-realtime-voice-video-webrtc-websocket-go","2026-05-23 18:08:53.980Z",262,"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":189,"cover_image_path":190,"created":191,"expand":192,"id":237,"published_at":238,"school_blog":233,"short_description":239,"title":240,"updated":241,"slug":234,"views":236},"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":193,"locale":219,"school_blog":220},[194,199,204,209,214],{"collectionId":12,"collectionName":13,"created":195,"created_by":15,"id":196,"name":197,"updated":198,"updated_by":15},"2026-03-04 08:35:11.709Z","ga2eo1rr4uw66mu","DevOps","2026-04-10 16:12:39.734Z",{"collectionId":12,"collectionName":13,"created":200,"created_by":15,"id":201,"name":202,"updated":203,"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":205,"created_by":15,"id":206,"name":207,"updated":208,"updated_by":15},"2026-03-04 08:26:56.612Z","yf74wkqyamfc5qx","โปรแกรมเมอร์","2026-04-10 16:07:36.426Z",{"collectionId":12,"collectionName":13,"created":210,"created_by":15,"id":211,"name":212,"updated":213,"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":215,"created_by":15,"id":216,"name":217,"updated":218,"updated_by":15},"2026-03-04 08:44:18.652Z","jr5zczy6qrxmd88","Docker","2026-04-10 16:12:43.264Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":221,"collectionId":46,"collectionName":47,"created":15,"expand":222,"id":233,"slug":234,"updated":235,"views":236},"jwhmeg2uxwz0bkp",{"category":223},{"blogIds":224,"collectionId":51,"collectionName":52,"created":225,"created_by":15,"id":221,"image":226,"image_alt":15,"image_path":227,"label":228,"name":229,"priority":230,"publish_at":231,"scheduled_at":15,"status":60,"updated":232,"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":229,"th":229},"Tools & Resources",0,"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-22 00:40:44.009Z",393,"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":243,"cover_image_path":244,"created":245,"expand":246,"id":280,"published_at":281,"school_blog":276,"short_description":282,"title":243,"updated":283,"slug":277,"views":279},"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":247,"locale":270,"school_blog":271},[248,249,254,259,260,265],{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":250,"created_by":15,"id":251,"name":252,"updated":253,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-04-10 16:07:28.339Z",{"collectionId":12,"collectionName":13,"created":255,"created_by":15,"id":256,"name":257,"updated":258,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-04-10 16:07:26.172Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":261,"created_by":15,"id":262,"name":263,"updated":264,"updated_by":15},"2026-03-04 08:45:07.600Z","k7yaeiuxv1skqiy","ACID","2026-04-10 16:12:54.568Z",{"collectionId":12,"collectionName":13,"created":266,"created_by":15,"id":267,"name":268,"updated":269,"updated_by":15},"2026-03-04 08:45:07.399Z","72jmv19z0d4abka","Transactions","2026-04-10 16:12:54.403Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":272,"id":276,"slug":277,"updated":278,"views":279},{"category":273},{"blogIds":274,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":275,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],{"en":57,"th":57},"bk7k4smwq526one","js2go-ep45-transaction-acid-go-vs-javascript","2026-05-24 01:09:17.517Z",230,"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":285,"cover_image_path":286,"created":287,"expand":288,"id":318,"published_at":319,"school_blog":314,"short_description":320,"title":285,"updated":321,"slug":315,"views":317},"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":289,"locale":308,"school_blog":309},[290,291,296,297,302,303],{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":292,"created_by":15,"id":293,"name":294,"updated":295,"updated_by":15},"2026-03-04 08:45:08.439Z","wscthqnz8vx2sox","PostgreSQL","2026-04-10 16:12:54.755Z",{"collectionId":12,"collectionName":13,"created":250,"created_by":15,"id":251,"name":252,"updated":253,"updated_by":15},{"collectionId":12,"collectionName":13,"created":298,"created_by":15,"id":299,"name":300,"updated":301,"updated_by":15},"2026-03-04 08:45:09.036Z","l1oi3jpol4c4ezx","Database","2026-04-10 16:12:54.847Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":304,"created_by":15,"id":305,"name":306,"updated":307,"updated_by":15},"2026-03-04 08:45:09.799Z","402ofda7qxj0vs0","การเชื่อมต่อฐานข้อมูล","2026-04-10 16:12:55.032Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":310,"id":314,"slug":315,"updated":316,"views":317},{"category":311},{"blogIds":312,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":313,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],{"en":57,"th":57},"80o1aimylbrt97t","js2go-ep44-database-connection-sql-nosql-javascript-go","2026-05-25 06:17:30.984Z",221,"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",{"alt":323,"cover_image_path":324,"created":325,"expand":326,"id":360,"published_at":361,"school_blog":356,"short_description":362,"title":323,"updated":363,"slug":357,"views":359},"EP.114 การจัดการ Multi-device & Multi-session สำหรับ WebSocket Server","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F3ijessvp7wgttqd\u002Fcover_image_ep_ozojn2qh39.ebSocketSystems.webp","2026-03-04 08:45:11.857Z",{"keywords":327,"locale":350,"school_blog":351},[328,333,338,339,344,349],{"collectionId":12,"collectionName":13,"created":329,"created_by":15,"id":330,"name":331,"updated":332,"updated_by":15},"2026-03-04 08:44:48.724Z","s6xhnfomy7n5ycp","WebSocket Server","2026-04-10 16:12:50.171Z",{"collectionId":12,"collectionName":13,"created":334,"created_by":15,"id":335,"name":336,"updated":337,"updated_by":15},"2026-03-04 08:44:49.054Z","vbjgbr5ah0kh43p","Real-time System","2026-04-10 16:12:50.311Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":340,"created_by":15,"id":341,"name":342,"updated":343,"updated_by":15},"2026-03-04 08:45:11.216Z","4pcpc8j9lxwki40","Multi-session","2026-04-10 16:12:55.409Z",{"collectionId":12,"collectionName":13,"created":345,"created_by":15,"id":346,"name":347,"updated":348,"updated_by":15},"2026-03-04 08:45:11.536Z","dam2zlrgu9l1qrd","Multi-device","2026-04-10 16:12:55.519Z",{"collectionId":12,"collectionName":13,"created":120,"created_by":15,"id":121,"name":122,"updated":123,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":126,"collectionId":46,"collectionName":47,"created":15,"expand":352,"id":356,"slug":357,"updated":358,"views":359},{"category":353},{"blogIds":354,"collectionId":51,"collectionName":52,"created":130,"created_by":15,"id":126,"image":131,"image_alt":15,"image_path":132,"label":355,"name":134,"priority":135,"publish_at":136,"scheduled_at":15,"status":60,"updated":137,"updated_by":15},[],{"en":134,"th":134},"wzoz7l3fkolypwa","ep114-multi-device-multi-session-websocket","2026-05-07 05:33:17.804Z",270,"3ijessvp7wgttqd","2025-12-08 03:47:51.843Z","เรียนรู้การออกแบบระบบ WebSocket ที่รองรับผู้ใช้ 1 คนเข้าใช้งานหลายอุปกรณ์พร้อมกันอย่างเสถียร ปลอดภัย และซิงก์ข้อมูลแบบเรียลไทม์ พร้อมตัวอย่างโค้ด Go และแนวทางระดับ Production","2026-05-08 06:52:05.632Z",{"alt":365,"cover_image_path":366,"created":367,"expand":368,"id":393,"published_at":394,"school_blog":389,"short_description":395,"title":365,"updated":396,"slug":390,"views":392},"EP.115 การใช้ WebSocket ในระบบ Multiplayer Game ขั้นสูง (Advanced Multiplayer Game System)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fghutpdhsg8a4psb\u002Fcover_image_ep_4l3pq7n7eo.bSocketinGolang.webp","2026-03-04 08:45:10.850Z",{"keywords":369,"locale":383,"school_blog":384},[370,375,376,377,378],{"collectionId":12,"collectionName":13,"created":371,"created_by":15,"id":372,"name":373,"updated":374,"updated_by":15},"2026-03-04 08:45:10.623Z","2zhfdpu8sy1xeju","Golang WebSocket","2026-04-10 16:12:55.126Z",{"collectionId":12,"collectionName":13,"created":255,"created_by":15,"id":256,"name":257,"updated":258,"updated_by":15},{"collectionId":12,"collectionName":13,"created":120,"created_by":15,"id":121,"name":122,"updated":123,"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":379,"created_by":15,"id":380,"name":381,"updated":382,"updated_by":15},"2026-03-04 08:45:09.425Z","75vnd9vtdgbgcsr","Multiplayer Game","2026-04-10 16:12:54.941Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":126,"collectionId":46,"collectionName":47,"created":15,"expand":385,"id":389,"slug":390,"updated":391,"views":392},{"category":386},{"blogIds":387,"collectionId":51,"collectionName":52,"created":130,"created_by":15,"id":126,"image":131,"image_alt":15,"image_path":132,"label":388,"name":134,"priority":135,"publish_at":136,"scheduled_at":15,"status":60,"updated":137,"updated_by":15},[],{"en":134,"th":134},"9o11ptzo0838b9r","ep115-websocket-multiplayer-game-advanced","2026-05-13 23:37:33.859Z",236,"ghutpdhsg8a4psb","2025-12-08 02:13:56.236Z","เรียนรู้การออกแบบ Multiplayer Game แบบเรียลไทม์ด้วย Go และ WebSocket ตั้งแต่ Player Sync, Position Update, Event Broadcast, Room Architecture ไปจนถึงเทคนิคลด Latency และแนวทางระดับ Production สำหรับเกมหลายผู้เล่น","2026-05-08 06:52:05.171Z",{"alt":398,"cover_image_path":399,"created":400,"expand":401,"id":430,"published_at":431,"school_blog":426,"short_description":432,"title":398,"updated":433,"slug":427,"views":429},"JS2GO EP.43 การทำ Rate Limiting และ Throttling ใน Go และ Node.js","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fkwtikt0mr8bk7nk\u002Fcover_image_js2_go_ep_43_rate_limiting_and_throttling_in_go_and_node_083y6kqmje.js.webp","2026-03-04 08:45:16.034Z",{"keywords":402,"locale":420,"school_blog":421},[403,408,413,414,415],{"collectionId":12,"collectionName":13,"created":404,"created_by":15,"id":405,"name":406,"updated":407,"updated_by":15},"2026-03-04 08:44:38.026Z","m3dqo2zalnfaoof","Token Bucket","2026-04-10 16:12:47.845Z",{"collectionId":12,"collectionName":13,"created":409,"created_by":15,"id":410,"name":411,"updated":412,"updated_by":15},"2026-03-04 08:45:14.634Z","k64fy7g22x7ash7","Throttling","2026-04-10 16:12:56.314Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":416,"created_by":15,"id":417,"name":418,"updated":419,"updated_by":15},"2026-03-04 08:34:07.915Z","921nl48h9in67sw","Rate Limiting","2026-04-10 16:08:07.808Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":422,"id":426,"slug":427,"updated":428,"views":429},{"category":423},{"blogIds":424,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":425,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],{"en":57,"th":57},"xnajds5fdcdxt16","js2go-ep43-rate-limiting-throttling-go-nodejs","2026-05-24 12:35:46.686Z",231,"kwtikt0mr8bk7nk","2025-12-03 14:28:15.587Z","เรียนรู้วิธีป้องกันระบบล่มด้วย Rate Limiting และ Throttling ทั้ง Token Bucket, Leaky Bucket และ Sliding Window พร้อมตัวอย่างโค้ดจริงใน Go และ Node.js สำหรับใช้งานในระบบระดับ Production","2026-05-08 06:52:07.271Z",{"alt":435,"cover_image_path":436,"created":437,"expand":438,"id":470,"published_at":471,"school_blog":466,"short_description":472,"title":435,"updated":473,"slug":467,"views":469},"คุณอาจกำลังเสียเวลาอ่านโค้ดโดยไม่จำเป็น… ถ้ายังไม่รู้จัก Code Wiki","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Ff2draewgm0el39c\u002Fwhat_is_code_wiki_google_s_tool_that_helps_developers_understand_code_faster_ji0s94vmdo.webp","2026-03-04 08:45:17.799Z",{"keywords":439,"locale":460,"school_blog":461},[440,445,450,455],{"collectionId":12,"collectionName":13,"created":441,"created_by":15,"id":442,"name":443,"updated":444,"updated_by":15},"2026-03-04 08:45:17.133Z","71gsmylmonz3ikx","code wiki","2026-04-10 16:12:56.757Z",{"collectionId":12,"collectionName":13,"created":446,"created_by":15,"id":447,"name":448,"updated":449,"updated_by":15},"2026-03-04 08:45:16.903Z","fc3dajgzvy2vdec","google code wiki","2026-04-10 16:12:56.602Z",{"collectionId":12,"collectionName":13,"created":451,"created_by":15,"id":452,"name":453,"updated":454,"updated_by":15},"2026-03-04 08:45:16.585Z","h61ztnkgd0y3ooz","developer tools","2026-04-10 16:12:56.507Z",{"collectionId":12,"collectionName":13,"created":456,"created_by":15,"id":457,"name":458,"updated":459,"updated_by":15},"2026-03-04 08:20:15.564Z","9zhk20p0247axym","Google","2026-04-10 16:07:26.313Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":221,"collectionId":46,"collectionName":47,"created":15,"expand":462,"id":466,"slug":467,"updated":468,"views":469},{"category":463},{"blogIds":464,"collectionId":51,"collectionName":52,"created":225,"created_by":15,"id":221,"image":226,"image_alt":15,"image_path":227,"label":465,"name":229,"priority":230,"publish_at":231,"scheduled_at":15,"status":60,"updated":232,"updated_by":15},[],{"en":229,"th":229},"gado4zcess7ysg9","code-wiki-save-time-reading-code","2026-05-25 10:10:19.288Z",326,"f2draewgm0el39c","2025-12-02 03:40:15.214Z","Code Wiki คือเครื่องมือใหม่จาก Google ที่ช่วยสร้างเอกสารโค้ดแบบอัตโนมัติและอัปเดตตามโค้ดจริง ทำให้นักพัฒนาทำความเข้าใจระบบได้เร็วขึ้น ลดเวลาในการอ่านโค้ดย้อน และปรับปรุงประสบการณ์การทำงานของทีม Dev อย่างชัดเจน","2026-05-08 06:52:07.701Z",{"alt":475,"cover_image_path":476,"created":477,"expand":478,"id":507,"published_at":508,"school_blog":503,"short_description":509,"title":475,"updated":510,"slug":504,"views":506},"JS2GO EP.42 Goroutine Pools และ Worker Pools ใน Go และ JavaScript","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fcky7eocdx79x37y\u002Fcover_image_js2_go_ep_h9thc5vq15.GoandJavaScript.webp","2026-03-04 08:45:18.581Z",{"keywords":479,"locale":497,"school_blog":498},[480,481,482,487,492],{"collectionId":12,"collectionName":13,"created":250,"created_by":15,"id":251,"name":252,"updated":253,"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":483,"created_by":15,"id":484,"name":485,"updated":486,"updated_by":15},"2026-03-04 08:24:48.143Z","dourw0uuydrrh1h","Concurrency","2026-04-10 16:07:30.157Z",{"collectionId":12,"collectionName":13,"created":488,"created_by":15,"id":489,"name":490,"updated":491,"updated_by":15},"2026-03-04 08:34:34.471Z","wdd8fb47sbrmq28","Worker Pool","2026-04-10 16:08:17.741Z",{"collectionId":12,"collectionName":13,"created":493,"created_by":15,"id":494,"name":495,"updated":496,"updated_by":15},"2026-03-04 08:45:16.045Z","1h6015yv90l5ktw","Goroutine Pool","2026-04-10 16:12:56.407Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":499,"id":503,"slug":504,"updated":505,"views":506},{"category":500},{"blogIds":501,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":502,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],{"en":57,"th":57},"76bhys68f0c8v31","js2go-ep42-goroutine-pool-worker-pool-go-vs-javascript","2026-05-21 19:39:49.089Z",222,"cky7eocdx79x37y","2025-12-02 03:39:17.183Z","เรียนรู้วิธีควบคุมจำนวนงานพร้อมกันด้วย Goroutine Pools และ Worker Pools เพื่อป้องกัน resource leak และทำให้ระบบรองรับโหลดระดับหมื่นคำขอ\u002Fวินาทีได้อย่างเสถียร พร้อมตัวอย่างโค้ดจริงทั้ง Go และ JavaScript","2026-05-08 06:52:07.879Z",7,12,414,35]