DevDose

Blog About
Our code on Github Follow DevDose on Facebook Follow DevDose on Youtube
  • Learn Rust: Basic Vector

    Feb 22, 2025

  • เริ่มที่แม่ก่อน: จัดการการเงินให้เป็น ก่อนสอนลูกให้เห็น

    Feb 18, 2025

  • ลองเล่น Go-App สร้าง Progressive Web App ด้วย Go

    Feb 14, 2025

  • Learn Rust: Package, Crate and Module

    Feb 13, 2025

  • The Builder Pattern: Simplifying Object Creation in Unit Tests

    Feb 7, 2025

  • Basic Rust: Pattern Matching

    Feb 1, 2025

  • signal.Notify vs singal.NotifyContext

    Oct 15, 2024

  • Mob Thinking, the whole team working together

    Aug 3, 2024

  • go doc เพื่อแสดง source ทั้งหมดของ package

    Dec 11, 2023

  • JavaScript/TypeScript Sync an Async with Promise

    Dec 10, 2023

  • Go: วิธีเขียน http handler ให้รู้ว่า request ถูก cancel ไปแล้ว

    Aug 18, 2023

  • Go: ใช้ method เป็นค่าของ function

    Jul 16, 2023

  • สรุป นิยามของ Software Engineering จาก Titus Winters และ Russ Cox

    Jun 27, 2023

  • สรุป How to build simple systems จากการพูดของ Rich Hickey เรื่อง Simple Made Easy

    Jun 24, 2023

  • สรุปจากเรื่อง Livable Code ของ Sarah Mei จากงาน RailsConf 2018

    Jun 18, 2023

  • [CMake] config Cmake เพื่อ build C/C++ เบื้องต้น

    Mar 18, 2023

  • [Go] ใช้ bytes.Buffer เป็น io.Writer เพื่อเก็บ output ใน memory ก่อนแปลงเป็น string หรือ []byte

    Mar 18, 2023

  • [Go] สร้างฟังก์ชัน unmarshal json.RawMessage แบบ generic type และเช็คค่า null

    Mar 18, 2023

  • [TypeScript] lookup ค่าใน object ด้วย key ที่มี type เป็น keyof type

    Mar 18, 2023

  • [TypeScript] อ้างอิง type จาก property ของ type อื่นด้วยท่า indexed access type

    Mar 18, 2023

  • [Go] ลบบาง query param ออกจาก URL ด้วย package net/url

    Mar 13, 2023

  • [Go] ใช้ reflect ดึงข้อมูล parameter type และ return type ของ function

    Mar 12, 2023

  • [C++] ใช้ CPU ให้เต็มที่ด้วย Boost Thread Pool

    Mar 11, 2023

  • [React] จะ dispatch event ให้ DOM ที่สร้างจาก React ต้องกำหนด bubbles เป็น true เสมอ

    Mar 9, 2023

  • [Go] Parse CSV/Excel columns ด้วย named constant และ map แทนที่จะใช้ index โดยตรง

    Mar 8, 2023

  • [JavaScript] ความต่างระหว่างใช้ Promise.all กับ for แล้ว await ทีละอัน

    Mar 7, 2023

  • [Rust] สรุปความต่างของ Box<T>, Rc<T> และ RefCell<T>

    Mar 6, 2023

  • ทำไม Go return pointer ของตัวแปร local ได้ แต่ Rust return reference ของตัวแปร local ไม่ได้

    Mar 5, 2023

  • [Rust] lifetime annotation มีไว้ช่วย compiler เช็คความถูกต้อง reference ตอน compile time

    Mar 4, 2023

  • [React] ใช้ act ครอบเวลาทดสอบ render ที่มี async useEffect

    Mar 3, 2023

  • [Go] สร้าง test context type เพื่อให้โค้ดของ test เรียบง่ายขึ้น

    Mar 2, 2023

  • ใช้ VSCode settings เดียวกันทั้งโปรเจคด้วย Workspace settings

    Mar 1, 2023

  • [JavaScript] parse date time แบบกำหนด timezone ด้วย dayjs library

    Feb 28, 2023

  • [Go] pattern ในการ encapsulate payload params ของ Firebase Auth SDK

    Feb 27, 2023

  • [Go] สรุปวิธีที่ Go ใช้ implements type http.ResponseController ใน Go 1.20

    Feb 26, 2023

  • [Go] any type argument satisfies comparable constraint in Go 1.20

    Feb 26, 2023

  • [Go] ใช้ generic ครอบ method ที่รับ any เพื่อให้อ่านและใช้งานง่ายยิ่งขึ้น

    Feb 25, 2023

  • กระจายการทำงานหลายๆ งาน ผ่านหลายๆ goroutine ง่ายๆ ด้วย package errgroup

    Feb 19, 2023

  • Go Time Truncate

    Dec 10, 2022

  • วิธีเทสโค้ดที่ใช้ Time.Now

    Dec 3, 2022

  • Pointer of any type T

    Nov 26, 2022

  • Go generic with struct field name

    Nov 19, 2022

  • Go Frameworks

    Nov 12, 2022

  • ลองใช้ Rancher Desktop

    May 15, 2022

  • Elasticsearch max_expansions applies to shard level

    May 8, 2022

  • Go io.Discard ใช้ตอนไหน

    Apr 30, 2022

  • ทดสอบโค้ด Go ที่อยู่ในรูปแบบ message loop goroutine

    Apr 25, 2022

  • สร้าง date command ที่ format ด้วย layout แบบของ Go time package

    Apr 22, 2022

  • List Elasticsearch Alias

    Apr 21, 2022

© 2025 DevDose. All rights reserved.
Our code on Github Follow DevDose on Facebook Follow DevDose on Youtube