Tech Articles

cover of post: Understanding File Globbing in Go

Understanding File Globbing in Go

Mar 02, 2025

Go’s `filepath.Glob` simplifies file pattern matching, but for advanced globbing, use third-party packages.

By Wenhao Wang#Engineering
cover of post: Exploring Golang Backend Frameworks

Exploring Golang Backend Frameworks

Mar 02, 2025

Golang’s backend frameworks offer high performance, scalability, and simplicity for web development.

By Min-jun Kim#Engineering
cover of post: Deep Dive into Rust Traits: Inheritance, Composition, and Polymorphism

Deep Dive into Rust Traits: Inheritance, Composition, and Polymorphism

Mar 02, 2025

A guide to Rust traits, covering definition, implementation, inheritance, composition, and polymorphism.

By Takashi Yamamoto#Engineering
cover of post: Understanding Go's Abstract Syntax Tree (AST)

Understanding Go's Abstract Syntax Tree (AST)

Mar 01, 2025

Go's AST enables source code analysis, transformation, and tooling development.

By Lukas Schneider#Engineering
cover of post: Generating Random Numbers in Go

Generating Random Numbers in Go

Mar 01, 2025

Guide to generating random numbers in Go using `math/rand` and seeding techniques.

By Wenhao Wang#Engineering
cover of post: Understanding Golang JSON Tags

Understanding Golang JSON Tags

Mar 01, 2025

Golang JSON tags customize struct field encoding, supporting options like `omitempty`, `-`, and `string`.

By Emily Parker#Engineering
cover of post: Understanding Generic Functions in Go

Understanding Generic Functions in Go

Mar 01, 2025

Go generics enhance flexibility, reusability, and type safety in function design.

By Emily Parker#Engineering
cover of post: Understanding Golang's Garbage Collector

Understanding Golang's Garbage Collector

Mar 01, 2025

Go’s concurrent GC efficiently manages memory using mark-and-sweep with minimal pause times.

By James Reed#Engineering
cover of post: Understanding Classes in Go

Understanding Classes in Go

Mar 01, 2025

Go replaces classes with structs, methods, and interfaces to simplify software design.

By Emily Parker#Engineering
cover of post: Understanding Dictionaries in Go: The `map` Data Structure

Understanding Dictionaries in Go: The `map` Data Structure

Mar 01, 2025

Go maps efficiently store key-value pairs but require initialization and have unpredictable iteration order.

By Grace Collins#Engineering
cover of post: Understanding Closures in Go: Capturing Variables for Flexible Functions

Understanding Closures in Go: Capturing Variables for Flexible Functions

Mar 01, 2025

Closures in Go enable flexible, encapsulated, and dynamic function behaviors.

By Wenhao Wang#Engineering
cover of post: How to Check if an Array Contains a Specific Element in Go

How to Check if an Array Contains a Specific Element in Go

Mar 01, 2025

Check for element existence in Go using iteration or maps for efficiency.

By Grace Collins#Engineering
cover of post: Understanding Struct Inheritance in Go

Understanding Struct Inheritance in Go

Mar 01, 2025

Go replaces traditional inheritance with struct composition and interfaces for flexibility.

By Takashi Yamamoto#Engineering
cover of post: Understanding the `omitempty` Tag in Go's JSON Encoding

Understanding the `omitempty` Tag in Go's JSON Encoding

Mar 01, 2025

The `omitempty` tag removes empty fields in Go's JSON encoding, affecting struct handling.

By Wenhao Wang#Engineering
cover of post: Understanding the `goto` Statement in Go

Understanding the `goto` Statement in Go

Mar 01, 2025

The `goto` statement in Go enables jumps but should be used sparingly for readability.

By Ethan Miller#Engineering
cover of post: Goose: A Database Migration Tool for Go

Goose: A Database Migration Tool for Go

Mar 01, 2025

Goose simplifies and automates database migrations in Go projects.

By Takashi Yamamoto#Engineering
cover of post: Understanding Global Variables in Go

Understanding Global Variables in Go

Mar 01, 2025

Global variables in Go offer convenience but require careful use to avoid issues.

By Daniel Hayes#Engineering
cover of post: How to Copy a Slice in Go

How to Copy a Slice in Go

Mar 01, 2025

Methods to copy Go slices using `copy` and `append`, with considerations for shallow and deep copies.

By Wenhao Wang#Engineering
cover of post: Mastering Time Parsing in Go with `time.Parse`

Mastering Time Parsing in Go with `time.Parse`

Mar 01, 2025

Go’s `time.Parse` requires a reference time format for accurate string-to-time conversion.

By Emily Parker#Engineering
cover of post: Writing to Files in Go: A Comprehensive Guide

Writing to Files in Go: A Comprehensive Guide

Mar 01, 2025

Writing files in Go requires choosing the right method (`os`, `bufio`), managing resources, and handling errors.

By Emily Parker#Engineering
cover of post: How to Replace Substrings in Go Using `strings.Replace`

How to Replace Substrings in Go Using `strings.Replace`

Mar 01, 2025

Learn how to replace substrings in Go using `strings.Replace` and `strings.NewReplacer`.

By Wenhao Wang#Engineering
cover of post: Boosting Go Testing Efficiency with Mockery

Boosting Go Testing Efficiency with Mockery

Mar 01, 2025

Mockery enhances Go testing by automating mock generation, integrating with Testify, and supporting CI/CD.

By Takashi Yamamoto#Engineering
cover of post: Building APIs with Goa: A Design-First Framework for Go Developers

Building APIs with Goa: A Design-First Framework for Go Developers

Mar 01, 2025

Goa streamlines API development with a design-first approach and automated code generation.

By Lukas Schneider#Engineering
cover of post: Efficient File Reading in Go: Techniques and Best Practices

Efficient File Reading in Go: Techniques and Best Practices

Mar 01, 2025

Go provides multiple file reading methods, with `bufio` offering the best performance for large files.

By Wenhao Wang#Engineering
cover of post: Understanding Enums in Go: Using `iota` for Enumerated Constants

Understanding Enums in Go: Using `iota` for Enumerated Constants

Mar 01, 2025

Go uses `iota` to create enums, enhancing readability and switch-case logic.

By Wenhao Wang#Engineering
cover of post: Simulating a Do-While Loop in Golang

Simulating a Do-While Loop in Golang

Mar 01, 2025

Golang lacks `do...while`, but `for` loops can achieve similar behavior.

By Emily Parker#Engineering
cover of post: How to Clean Go: A Guide to Keeping Your Go Environment Tidy

How to Clean Go: A Guide to Keeping Your Go Environment Tidy

Mar 01, 2025

Learn how to use `go clean` to manage Go’s build artifacts and caches efficiently.

By Lukas Schneider#Engineering
cover of post: Understanding Go Timers: Timer and Ticker in Action

Understanding Go Timers: Timer and Ticker in Action

Mar 01, 2025

Go's `Timer` and `Ticker` efficiently manage delayed and periodic tasks.

By Olivia Novak#Engineering
cover of post: How to Exclude a Directory as a Package in Golang

How to Exclude a Directory as a Package in Golang

Mar 01, 2025

Exclude Golang directories by removing `.go` files, using build constraints, or IDE settings.

By Takashi Yamamoto#Engineering
cover of post: How to Exclude Files from `go get` in Golang

How to Exclude Files from `go get` in Golang

Mar 01, 2025

Use build constraints and `go.mod` to exclude files and directories from `go get` in Go.

By Wenhao Wang#Engineering
cover of post: Rust’s Copy vs. Clone: What's the Difference?

Rust’s Copy vs. Clone: What's the Difference?

Mar 01, 2025

Explains Rust’s Copy and Clone traits, their differences, implementation, and best practices.

By Grace Collins#Engineering
cover of post: Why SQLAlchemy 2.0 Is the Most Powerful Python ORM Yet

Why SQLAlchemy 2.0 Is the Most Powerful Python ORM Yet

Mar 01, 2025

SQLAlchemy is the most popular Object Relational Mapping (ORM) in the Python ecosystem. It has an elegant design and is divided into two parts: the underlying Core and the upper-level traditional ORM. In most ORMs in Python and even in other languages, a good hierarchical design has not been implemented. For example, in Django's ORM, the database connection and the ORM itself are completely mixed together.

By Min-jun Kim#python
cover of post: Building a Go Web Server from Scratch

Building a Go Web Server from Scratch

Feb 28, 2025

An HTTP Server, as understood from its name, is a server that supports the HTTP protocol. While a Web Server, in addition to supporting the HTTP protocol, may also support other network protocols. This article will focus on introducing several common ways to write a Web Server using the official package of Golang.

By Daniel Hayes#golang
cover of post: How to Organize a Large-Scale Rust Project Effectively

How to Organize a Large-Scale Rust Project Effectively

Feb 28, 2025

Best practices for organizing Rust projects, from basic crate structures to complex workspaces.

By Wenhao Wang#Engineering
cover of post: Memory Ordering in Rust: A Guide to Safe Concurrency

Memory Ordering in Rust: A Guide to Safe Concurrency

Feb 27, 2025

A practical introduction to Rust’s Ordering for atomic operations and reliable concurrency.

By Lukas Schneider#Engineering
cover of post: Rescript: The Best JavaScript Alternative in 2025

Rescript: The Best JavaScript Alternative in 2025

Feb 27, 2025

This language itself has many remarkable features, such as a more robust type system, more pure functional programming support, powerful language features, and a compiler written in a native language with extremely high performance. Of course, it also has corresponding disadvantages. This article will focus on introducing ReScript's powerful features, its surrounding ecosystem, and its integration with React, which is most closely related to our daily use.

By Grace Collins#javascript
cover of post: Golang Timer Precision: How Precise Can It Get?

Golang Timer Precision: How Precise Can It Get?

Feb 26, 2025

In the world of Golang, timers have a wide range of application scenarios. However, the question of exactly how precise they are has always been a concern for developers. This article will delve deep into the management of the timer heap in Go and the mechanism for obtaining time at runtime, thus revealing to what extent we can rely on the accuracy of timers.

By Emily Parker#golang
cover of post: Enhancing Multithreading in Rust: Advanced Arc Optimization

Enhancing Multithreading in Rust: Advanced Arc Optimization

Feb 25, 2025

Techniques to enhance Rust's multithreading performance by refining Arc and lock usage.

By Grace Collins#Engineering
cover of post: Deep Dive into Hugo: The Ideal Static Blog Framework

Deep Dive into Hugo: The Ideal Static Blog Framework

Feb 25, 2025

Hugo is a static website page generation tool written in Golang, and its efficiency is much higher than that of Jekyll written in Ruby. You can directly download the binary package from Github, and after decompression, add it to the PATH environment variable to use it.

By James Reed#golang
cover of post: Go: Performance of RwMutex vs Mutex Across Multiple Scenarios

Go: Performance of RwMutex vs Mutex Across Multiple Scenarios

Feb 24, 2025

In the field of software development, testing the performance of Golang locks is a practical task. Recently, a friend raised a question: when performing thread-safe read and write operations on a slice, should one choose a read-write lock (rwlock) or a mutex lock (mutex), and which lock has better performance? This question has triggered an in-depth discussion.

By Min-jun Kim#golang
cover of post: Choosing the Right Message Push Strategy: A Comprehensive Guide

Choosing the Right Message Push Strategy: A Comprehensive Guide

Feb 23, 2025

A comparison of message push strategies to help you choose the right solution for your needs.

By Grace Collins#Engineering
cover of post: Go Compiler Performance Optimization Tips and Tricks

Go Compiler Performance Optimization Tips and Tricks

Feb 23, 2025

Compilation optimization refers to the use of various technical means during the compilation process to improve the execution efficiency and resource utilization efficiency of the generated code. The Go language compiler will automatically perform some basic optimizations. However, through reasonable code design and compilation parameter settings, the program performance can be further improved.

By James Reed#golang
cover of post: Rust Release Optimization: How to Build Small and Fast Binaries

Rust Release Optimization: How to Build Small and Fast Binaries

Feb 23, 2025

Learn how to optimize Rust compilation for minimal size, maximum speed, or a balance of both.

By Emily Parker#Engineering
cover of post: Macros and Functions in Rust: When to Use Which?

Macros and Functions in Rust: When to Use Which?

Feb 22, 2025

A practical guide to choosing between Rust macros and functions for clean, efficient, and maintainable code.

By Daniel Hayes#Engineering
cover of post: Why Protobuf Should Dominate the Data Format Ecosystem

Why Protobuf Should Dominate the Data Format Ecosystem

Feb 22, 2025

With its efficiency (in terms of size) and professionalism (professional types), Protobuf should have a higher coverage in the future data transmission field.

By James Reed#programming
cover of post: Go Panic and Recover Explained in Depth: Everything You Need to Know!

Go Panic and Recover Explained in Depth: Everything You Need to Know!

Feb 21, 2025

In the Go language, there are two keywords that often appear in pairs — panic and recover. These two keywords are closely related to defer. They are both built-in functions in the Go language and provide complementary functions.

By Lukas Schneider#golang
cover of post: Optimizing Resource Loading with fetchpriority

Optimizing Resource Loading with fetchpriority

Feb 21, 2025

Optimize resource loading with fetchpriority to improve web performance and user experience. Engineering

By Min-jun Kim#Engineering
cover of post: ErrGroup: Go's Hidden Gem for Concurrent Programming

ErrGroup: Go's Hidden Gem for Concurrent Programming

Feb 20, 2025

`errgroup` is an official extended library that adds error handling capabilities on the basis of `sync.WaitGroup`, providing functions such as synchronization, error propagation, and context cancellation. Its `WithContext` method can add a cancellation function, `SetLimit` can limit the number of concurrency, and `TryGo` can try to start a task. The source code is ingeniously designed and worthy of reference.

By Olivia Novak#golang