Return first là gì

Khi trong hàm gặp một trường hợp đặc biệt (như lỗi, dữ liệu không hợp lệ…), ta trả về kết quả ngay lập tức và kết thúc hàm.

Lợi ích khi dùng Return First trong Go

  1. Code gọn, dễ đọc

    • Ít phải thụt dòng.

    • Đọc từ trên xuống dưới như một dòng chảy tự nhiên.

  2. Luồng chính rõ ràng

    • Trường hợp lỗi hoặc dữ liệu xấu được xử lý ngay.

    • Phần logic chính nằm ngoài cùng, dễ thấy.

  3. Ít lồng if

    • Tránh viết code thành “kim tự tháp” nhiều tầng.

    • Mỗi trường hợp đặc biệt được tách riêng, dễ hiểu.

  4. Dễ bảo trì

    • Thêm điều kiện mới chỉ cần thêm một if return.

    • Không phải sửa nhiều block if-else cũ.

  5. Theo chuẩn Go

    • Go community quen với if err != nil { return ... }.

    • Người mới đọc code dễ nắm bắt.

  6. Giảm lỗi logic

    • Không bị rối khi có nhiều else.

    • Hạn chế bug do nhầm nhánh xử lý.

Ví dụ

Cách viết Return First (idiomatic Go)

Cách viết Không Return First (lồng if)

So sánh hai ví dụ trên

Tiêu chí Return First Không Return First
Độ dễ đọc Rõ ràng, tuyến tính Khó theo dõi, phải đọc cả if + else
Nesting (thụt dòng) Ít Nhiều (càng nhiều điều kiện càng lồng sâu)
Xử lý lỗi Trả về ngay Bị đẩy xuống nhánh else
Phong cách Go Idiomatic Ít dùng, dài dòng

About the Author

Ngọc Tri

View all author's posts

Leave a Comment

Your email address will not be published. Required fields are marked *

Bài viết khác

RabbitMQ

RabbitMQ là gì ? RabbitMQ là một hệ thống Message Broker, cho phép các thành phần trong hệ thống giao tiếp với nhau bằng cách gửi và nhận các tin nhắn thông qua các hàng đợi. Các thành phần chính trong RabbitMQ Producer là nơi gửi tin nhắn vào RabbitMQ (có thể là một api […]

Naming convention

Naming convention là gì? Naming Convention – là một tập hợp các tiêu chuẩn được quy định sẵn dùng để biểu thị cho các thành phần: tên biến, tên hàm, kiểu dữ liệu,… Phong cách đặt tên phổ biến 1. Camel Case Camel Case là kiểu đặt tên con lạc đà. Quy tắc: Chữ cái đầu tiên được viết […]

Seed Data(Goose)

Seed Data là gì? Seed data là tập hợp các cậu lệnh sql hoặc đoạn code để đưa dữ liệu ban đầu vào CSDL. Mục đích Khởi tạo hệ thống với dữ liệu mặc định. Tạo dữ liệu test nhanh chóng. Hỗ trợ kiểm thử tự động (unit test, integration test). Tạo môi trường demo cho […]

Migration

Migration là gì? Migration là một cơ chế cho phép quản lý các thay đổi cấu trúc của cơ sở dữ liệu thông qua các file chứa câu lệnh định nghĩa (SQL hoặc code). Như là tạo bảng mới, thêm, sửa, xóa, cột, thêm index, tạo quan hệ giữa bảng Ưu điểm   Đồng bộ: Mọi […]

Ngôn ngữ lập trình Golang

Golang là gì? Go (hay còn gọi là Golang) là một ngôn ngữ lập trình được thiết kế dựa trên tư duy lập trình hệ thống. Go được phát triển bởi Robert Griesemer, Rob Pike và Ken Thompson tại Google vào năm 2007. Điểm mạnh của Go là bộ thu gom rác và hỗ trợ […]

Tìm hiểu Git và GitHub

Git là gì? Git là một hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS), nó là một trong những hệ thống quản lý phiên bản phân tán phổ biến nhất hiện nay. Git cung cấp cho mỗi lập trình viên kho lưu trữ (repository) riêng chứa toàn bộ lịch sử thay đổi. Version Control System […]