Articles

cover of post: Why You Might Be Using Go’s Equality Operator Wrong

Why You Might Be Using Go’s Equality Operator Wrong

Mar 25, 2025

This article comprehensively and in-depth introduced the detailed details of the `==` operation in Go language, covering the behavior of the `==` operation under different data types, the comparison rules of special types, and the impact brought by uncomparable types. It is hoped that through the elaboration of this article, it can help the majority of developers to more accurately and deeply understand and apply the `==` operation in Go language, and avoid various problems caused by insufficient understanding of it in actual programming.

GrGrace Collins#golang
cover of post: Beginner's Guide to Concurrent Programming in Rust

Beginner's Guide to Concurrent Programming in Rust

Mar 24, 2025

First steps into concurrent programming in Rust using threads and async

DaDaniel Hayes#Engineering
cover of post: Build a Web App Using Pure Python (No Flask, No Django, No Frameworks!)

Build a Web App Using Pure Python (No Flask, No Django, No Frameworks!)

Mar 24, 2025

Those who have written Python web applications, especially those who have carried out online deployments, must have heard of the WSGI protocol. It defines the data exchange interface between Python's web servers and web applications. This description may be rather abstract, so let's explain it in detail through practical examples below.

JaJames Reed#python
cover of post: Async Programming in Rust: Composing Futures with join!, try_join!, and select!

Async Programming in Rust: Composing Futures with join!, try_join!, and select!

Mar 23, 2025

Learn to run multiple Rust Futures concurrently using join!, try_join!, and select! macros.

DaDaniel Hayes#Engineering
cover of post: The 5 Most Popular Node.js Web Frameworks in 2025

The 5 Most Popular Node.js Web Frameworks in 2025

Mar 23, 2025

In 2025, the above backend frameworks have stood firm in the market. Whether you choose Express.js for its simplicity, Nest.js for its structure, Adonis.js for its productivity, or Koa.js for its elegance, choosing the right framework is crucial. It always depends on your requirements. It is essential to understand your project requirements and, based on that, select the appropriate framework. Additionally, keeping an eye on the latest trends, new features of existing frameworks, and new frameworks is crucial for the success of your backend development journey in 2025.

DaDaniel Hayes#javascript
cover of post: Async Programming in Rust: Stream Trait and Its Design

Async Programming in Rust: Stream Trait and Its Design

Mar 22, 2025

Learn how to use and implement asynchronous streams in Rust using the Stream trait.

GrGrace Collins#Engineering
cover of post: Negroni vs. Other Go Middleware Solutions: What Makes It Unique?

Negroni vs. Other Go Middleware Solutions: What Makes It Unique?

Mar 22, 2025

Negroni is a very valuable library in Go language HTTP service development. For those who pursue efficient, flexible, and easy-to-maintain Web application development, Negroni is undoubtedly an excellent tool worthy of in-depth understanding and widespread application.

GrGrace Collins#golang
cover of post: Async Programming in Rust: Futures, Executors, and Task Scheduling

Async Programming in Rust: Futures, Executors, and Task Scheduling

Mar 21, 2025

Learn how Rust executes async tasks using Futures, Executors, and the Waker mechanism.

GrGrace Collins#Engineering
cover of post: Go & Gorilla/Mux: Everything You Need to Build a Web App

Go & Gorilla/Mux: Everything You Need to Build a Web App

Mar 21, 2025

This article introduces the lightweight and powerful routing library `gorilla/mux`. It supports a rich variety of request matching methods, and sub-routes greatly facilitate route management. Since it is compatible with the standard library `net/http`, it can be seamlessly integrated into programs using `net/http` and make use of the middleware resources written for `net/http`. In the next article, we will introduce `gorilla/handlers` — some commonly used middleware.

JaJames Reed#golang
cover of post: Understanding Async/Await in Rust

Understanding Async/Await in Rust

Mar 20, 2025

An introduction to Rust's async/await, explaining Futures, executors, and concurrency with practical examples.

GrGrace Collins#Engineering
cover of post: Validator: Advanced Struct and Field Validation For Go

Validator: Advanced Struct and Field Validation For Go

Mar 20, 2025

The leapcell library (validator) is very rich in functions and relatively simple and convenient to use. The constraint conditions introduced in this article are just the tip of the iceberg of its powerful functions. This library has a wide range of applications in the field of software development, especially web development. It is recommended that developers have an in-depth understanding and mastery of it to improve the efficiency and accuracy of data validation and ensure the security and stability of the system.

DaDaniel Hayes#golang
cover of post: Implementing a Rule Engine in Go with Govaluate

Implementing a Rule Engine in Go with Govaluate

Mar 19, 2025

Although the operations and types supported by govaluate are limited, it can still implement some interesting functions. For example, you can write a web service that allows users to write their own expressions, set parameters, and let the server calculate the results.

JaJames Reed#golang
cover of post: How to Use `json.MarshalIndent` in Golang

How to Use `json.MarshalIndent` in Golang

Mar 18, 2025

Format JSON in Golang with `json.MarshalIndent` for better readability.

GrGrace Collins#Engineering
cover of post: Understanding Getters in Go

Understanding Getters in Go

Mar 18, 2025

Go encourages direct field access, using getters only when necessary.

JaJames Reed#Engineering
cover of post: How to Copy a Struct in Golang

How to Copy a Struct in Golang

Mar 18, 2025

Shallow copy is simple, but deep copy is necessary for reference types.

JaJames Reed#Engineering
cover of post: Understanding Bitwise Operations in Go

Understanding Bitwise Operations in Go

Mar 18, 2025

Bitwise operations in Go improve efficiency in arithmetic, masking, and binary data handling.

GrGrace Collins#Engineering
cover of post: Iterating Over Maps in Go: Methods, Order, and Best Practices

Iterating Over Maps in Go: Methods, Order, and Best Practices

Mar 18, 2025

Efficiently iterate over maps in Go using `for`-`range`, handling unordered iteration and sorting when needed.

GrGrace Collins#Engineering
cover of post: Understanding Global Variables in Go

Understanding Global Variables in Go

Mar 18, 2025

Avoid excessive use of global variables in Go to maintain modularity and testability.

DaDaniel Hayes#Engineering
cover of post: Why Using UUID as a Primary Key in MySQL Can Hurt Performance

Why Using UUID as a Primary Key in MySQL Can Hurt Performance

Mar 18, 2025

UUID primary keys may cause index fragmentation, slow queries, and storage overhead in MySQL.

DaDaniel Hayes#Engineering
cover of post: Go Flag Library: A Complete Guide to CLI Arguments

Go Flag Library: A Complete Guide to CLI Arguments

Mar 18, 2025

`flag` is used to parse command-line options. People with experience using Unix-like systems should be familiar with command-line options. For example, the command `ls -al` lists detailed information about all files and directories in the current directory, where `-al` is the command-line option.

DaDaniel Hayes#golang
cover of post: Gopsutil: Efficient System Monitoring in Go

Gopsutil: Efficient System Monitoring in Go

Mar 17, 2025

The gopsutil library provides convenience for us to obtain local machine information, and it handles the compatibility issues between different systems well, providing a unified interface. There are also several sub-packages, such as `net` and `docker`, which are not introduced here due to space limitations. Users who are interested can explore them on their own.

DaDaniel Hayes#golang
cover of post: Understanding jemalloc: A Rust Performance Booster

Understanding jemalloc: A Rust Performance Booster

Mar 16, 2025

Learn how jemalloc optimizes memory management

DaDaniel Hayes#Engineering
cover of post: How to Manage Go Versions with ASDF

How to Manage Go Versions with ASDF

Mar 16, 2025

Guide to installing and managing Go versions using ASDF efficiently.

JaJames Reed#Engineering
cover of post: Building an Efficient Web Scraper in Golang

Building an Efficient Web Scraper in Golang

Mar 16, 2025

Efficiently build responsible Go web scrapers using Colly, concurrency, and policy compliance.

DaDaniel Hayes#Engineering
cover of post: Understanding Constructors in Go

Understanding Constructors in Go

Mar 16, 2025

Go uses factory functions for struct initialization and validation.

GrGrace Collins#Engineering
cover of post: Exploring TUI Libraries in Go

Exploring TUI Libraries in Go

Mar 16, 2025

Overview of key Go libraries for developing robust and interactive TUIs.

JaJames Reed#Engineering
cover of post: Why Choose Go Over Ruby on Rails?

Why Choose Go Over Ruby on Rails?

Mar 16, 2025

Go excels in scalability and performance, while Rails suits rapid development.

DaDaniel Hayes#Engineering
cover of post: Implementing Linked Lists in Go

Implementing Linked Lists in Go

Mar 16, 2025

Guide to implementing and using linked lists in Go.

DaDaniel Hayes#Engineering
cover of post: Exploring Graphics Libraries in Go

Exploring Graphics Libraries in Go

Mar 16, 2025

Overview of Go's graphics libraries for drawing, visualization, and GUI development.

GrGrace Collins#Engineering
cover of post: How to Delete from a Map in Golang

How to Delete from a Map in Golang

Mar 16, 2025

Efficient ways to delete elements from a Golang map.

DaDaniel Hayes#Engineering
cover of post: Handling Command Line Arguments in Golang

Handling Command Line Arguments in Golang

Mar 16, 2025

Learn how to handle command line arguments in Golang using `os.Args`, `flag`, and `pflag`.

GrGrace Collins#Engineering
cover of post: How to Read Rust Source Code Effectively: A Practical Approach

How to Read Rust Source Code Effectively: A Practical Approach

Mar 16, 2025

An essential guide to navigating Rust’s source code

GrGrace Collins#Engineering
cover of post: Type-Safe SQL in Go with sqlc

Type-Safe SQL in Go with sqlc

Mar 16, 2025

The interfaces provided by the `database/sql` standard library in the Go language are relatively low-level. This requires us to write a large amount of repetitive code. This substantial amount of boilerplate code is not only cumbersome to write but also error-prone. Sometimes, if you modify the field type, you may need to make changes in many places; if you add a new field, you also need to modify the places where the `select *` query statement was previously used. If there are any omissions, it may lead to a panic during runtime. Even if you use an ORM library, these issues cannot be completely resolved! That's where sqlc comes in! sqlc can generate type-safe and idiomatic Go interface code based on the SQL statements we write, and we just need to call these methods.

DaDaniel Hayes#golang
cover of post: How Rust Lost the Race to Go?

How Rust Lost the Race to Go?

Mar 15, 2025

In today's programming world, both Go and Rust are highly regarded programming languages. Developed by Google, Go is renowned for its simplicity, efficiency, and excellent concurrency performance. It is commonly used for building network services, cloud computing platforms, and more. Rust, promoted by Mozilla, is famous for its memory safety and high performance, and it has a wide range of applications in areas such as system programming and embedded development. This article will conduct a detailed comparison of the code writing in Go and Rust from multiple aspects.

DaDaniel Hayes#golang
cover of post: Deep Dive into Rust’s Smart Pointers

Deep Dive into Rust’s Smart Pointers

Mar 16, 2025

Learn how Rust's smart pointers ensure safe memory allocation, ownership, and concurrency.

GrGrace Collins#Engineering
cover of post: TypeScript Meets Go: Understanding the 10x TypeScript

TypeScript Meets Go: Understanding the 10x TypeScript

Mar 14, 2025

The code name of the new TypeScript migration project is Corsa. The old codebase, Strata, was once the initial code name of TypeScript, which began in the internal development stage at the end of 2010 or the beginning of 2011. The initial team consisted of Steve Lucco, Anders Hejlsberg, and Luke. Steve wrote the original prototype compiler, extracting and modifying the scanner and parser from the JavaScript engine of Internet Explorer. It was a C# codebase used for the proof of concept.

JaJames Reed#golang
cover of post: Rust Error Handling Deep Dive: Beyond Result and Option

Rust Error Handling Deep Dive: Beyond Result and Option

Mar 13, 2025

A practical approach to Rust error handling: methods, patterns, and custom error strategies.

DaDaniel Hayes#Engineering
cover of post: Mastering `fmt.Fprintf` in Go: A Guide to Formatted Output

Mastering `fmt.Fprintf` in Go: A Guide to Formatted Output

Mar 13, 2025

`fmt.Fprintf` in Go enables efficient, formatted output to diverse destinations.

JaJames Reed#Engineering
cover of post: Understanding Anonymous Structs in Golang

Understanding Anonymous Structs in Golang

Mar 13, 2025

Anonymous structs in Go simplify temporary data handling but can reduce readability if overused.

GrGrace Collins#Engineering
cover of post: Machine Learning in Golang: An Overview of Popular Libraries and Examples

Machine Learning in Golang: An Overview of Popular Libraries and Examples

Mar 13, 2025

An introduction to machine learning in Go with key libraries and examples.

JaJames Reed#Engineering
cover of post: Implementing Queues in Go

Implementing Queues in Go

Mar 13, 2025

Explores Go queue implementations using slices, linked lists, channels, and libraries.

GrGrace Collins#Engineering
cover of post: Understanding Go Build Tags

Understanding Go Build Tags

Mar 13, 2025

Go build tags enable conditional file inclusion based on platforms or custom configurations.

DaDaniel Hayes#Engineering
cover of post: Working with Base64 in Go

Working with Base64 in Go

Mar 13, 2025

Guide to Base64 encoding and decoding in Go.

GrGrace Collins#Engineering
cover of post: Understanding `strconv.Atoi` in Golang

Understanding `strconv.Atoi` in Golang

Mar 13, 2025

How to convert strings to integers in Go using `strconv.Atoi`.

DaDaniel Hayes#Engineering
cover of post: Understanding Timers in Go

Understanding Timers in Go

Mar 13, 2025

Go timers schedule delayed tasks, and proper handling ensures efficient operations.

GrGrace Collins#Engineering
cover of post: How to Import a Local Package in Golang

How to Import a Local Package in Golang

Mar 13, 2025

Guide on importing local packages in Go using Go modules.

GrGrace Collins#Engineering
cover of post: Understanding Golang's Format Strings

Understanding Golang's Format Strings

Mar 13, 2025

A guide to Go's `fmt` package for formatting strings, numbers, and customizing output.

JaJames Reed#Engineering
cover of post: Understanding the 'break' Statement in Go

Understanding the 'break' Statement in Go

Mar 13, 2025

How to use Go's `break` statement in loops and switch statements.

DaDaniel Hayes#Engineering