5 Bài học về Cấu trúc Code

Ngày đăng: 15/07/2020   -    Cập nhật: 15/07/2020
Cấu trúc code là một phần khó, nhưng rất quan trọng của lập trình. Viết code có cấu trúc tốt cần có tư duy đúng đắn, hiểu biết về các mẫu thiết kế (design pattern) và kinh nghiệm.

Tuy nhiên, những bài học này thường được học một cách cứng nhắc, hời hợt.

Lẽ ra, tầm quan trọng của cấu trúc code không nên bị đánh giá thấp - code cấu trúc tốt là rất quan trọng vì nó giúp ta dễ đọc và dễ duy trì.


5 Bài học về cấu trúc code

5 Bài học về cấu trúc code

Đây là 5 cách bạn có thể cải thiện cấu trúc code của mình.

1. Suy nghĩ về thiết kế


Trước khi bạn bắt đầu viết code, có lẽ bạn nên suy nghĩ về cách bạn sẽ thiết kế ứng dụng mà bạn sắp xây dựng. Một cách rất tốt mà bạn có thể làm điều này là sử dụng các sơ đồ UML.

Bạn cần có một kế hoạch chi tiết trước khi bạn bắt đầu tập trung viết code.

Suy nghĩ về cấu trúc code của bạn và tạo một số sơ đồ UML mà bạn thấy hữu ích sẽ giải quyết được các lỗ hổng rõ ràng nhất.

Trên hết, nó có thể khiến bạn nhận thức rõ hơn về nhiều vấn đề cần giải quyết trước khi viết bất kỳ dòng code nào.

Các sơ đồ UML mà bạn đã tạo ra cho phép những suy nghĩ của bạn không bị trôi đi hoặc chừa chỗ cho một số tính năng mà bạn nghĩ có thể hữu ích trong tương lai.

Nếu bạn không dành thời gian thiết kế ứng dụng của bạn có thể giúp bạn bắt đầu thì cuối cùng bạn cũng sẽ phải làm.

Nhưng lúc đó, nó sẽ dẫn đến việc phải cấu trúc lại các phần lớn của code tốn rất nhiều thời gian.

Vì thế, hãy thật dành thời gian để thiết kế ứng dụng của bạn ngay từ đầu.

> Khi tham gia HỌC LẬP TRÌNH FULL STACK tại NIIT - ICT Hà Nội, bạn sẽ được học kỹ về tư duy thiết kế ứng dụng. Học lấy gốc rễ chứ không phải học lấy ngọn.


2. Code Conventions


Một phần lớn trong cấu trúc code của bạn phải thực hiện với các quy ước rõ ràng, nhất quán.

Các quy ước (Code conventions) là phải có cho mọi dự án. Không có quy ước khi lập trình, code của bạn sẽ trở thành một mớ hỗn độn không thể đọc được trong tương lai.

Lập danh sách các quy ước code, ghi lại cách khai báo các biến và một số quy ước đặt tên, v.v.

> Quy ước đặt tên trong Java

Số lượng quy tắc bạn có thể thêm vào danh sách này là không giới hạn và số lượng quy tắc có thể thay đổi.

Bạn cũng có thể thêm các quy tắc mới vào danh sách các quy ước nếu cảm thấy thích nó.

Hoặc loại bỏ một quy ước khỏi danh sách.

Một khi bạn đã có danh sách các quy ước, hãy bám vào nó!


3. Làm cho các class và hàm dễ hiểu hơn


Để giữ cho các class và hàm của bạn có thể đọc và duy trì được, có một số nguyên tắc bạn có thể làm theo:

  • Giữ cho các class và hàm nhỏ
  • Để các class và hàm tuân theo Nguyên tắc Trách nhiệm Duy nhất (SRP)

Giữ các class và hàm càng nhỏ càng tốt giúp code dễ hiểu hơn.

> Tham khảo: Nguyên tắc SOLID

Nó đơn giản chỉ là chia các class và hàm lớn thành các lớp chuyên biệt nhỏ hơn.

Tuân theo Nguyên tắc Trách nhiệm Duy nhất có nghĩa là mọi class và hàm chỉ nên làm một việc và một việc duy nhất.

Điều này không phải là giữ cho tất cả các class và hàm của bạn nhỏ tý. Hãy giữ nó trong giới hạn hợp lý.

Bởi vì, quá nhiều class nhỏ cũng tồi tệ hơn nhiều so với một vài class lớn hơn.

Ngoài ra, các chức năng lớn tìm nạp, xử lý và lưu trữ dữ liệu là không nên khi đi theo SRP.

Bạn phải chia chức năng này thành ba chức năng nhỏ hơn:


  • Một để tìm nạp
  • Một để xử lý
  • Một chức năng khác để lưu trữ dữ liệu.

4. Sử dụng Design Pattern


Tìm hiểu về các Design Pattern (mẫu thiết kế) và hiểu cách chúng hoạt động là một cách tốt để giúp cấu trúc code của bạn và viết code có thể đọc và dễ duy trì.

Bạn cũng cần phải biết những 
Design Pattern nào bạn có thể sử dụng trong một số tình huống nhất định mang lại cho bạn lợi thế. Chứ không cần tự mình đưa ra giải pháp nửa vời.

Chỉ cần tuân theo nguyên tắc thiết kế, code của bạn sẽ có cấu trúc tốt.

Nhưng, hãy cẩn thận để không lạm dụng các 
Design Pattern - nó cũng là cạm bẫy phổ biến nhất khi sử dụng các Design Pattern.

Mặc dù bạn có thể thực hiện một 
Design Pattern trong một tình huống nhất định, nhưng điều đó không có nghĩa là bạn nên làm.

Sử dụng quá nhiều 
Design Pattern, bạn sẽ nhận được một ứng dụng khó có thể nắm bắt được đối với các lập trình viên khác.

5. Viết unit test


Viết các bài unit test có tác dụng rất tốt, nó buộc bạn phải cấu trúc lại code của mình. Để có thể viết các bài unit test cho code của bạn, ít nhất code phải được cấu trúc đúng.

Bạn có thể đã nghe về vấn đề code không được test trước đây.

Nếu bạn không biết cách viết một bài unit test cho một đoạn code thì có lẽ vì nó làm quá nhiều thứ hoặc nó được thiết kế kém.

Dù bằng cách nào, nó cũng an toàn khi nói rằng việc xử lý code không thể kiểm soát được có một nguyên nhân: Code có cấu trúc tồi.

Bạn sẽ cần phải dành thời gian để tái cấu trúc code bất cứ khi nào code bạn không thể chạy unit test đúng.

Các bài unit test có thể được sử dụng như để buộc bạn phải cấu trúc code.


Tóm lại


Có một vài điều bạn có thể làm để cấu trúc code của mình. Tất cả bắt đầu trước cả khi bạn bắt đầu viết dòng code đầu tiên.

Hãy suy nghĩ về thiết kế của ứng dụng của bạn. Tạo sơ đồ UML giúp bạn giải quyết các lỗ hổng rõ ràng nhất.

Bất cứ khi nào bạn chuẩn bị sẵn sàng để viết code, hãy đảm bảo bạn có một danh sách các quy ước mà bạn cần phải tuân theo.

Điều này giúp làm cho code của bạn có thể đọc được và dễ duy trì.

Tìm hiểu về các mẫu thiết kế và thực hiện chúng có thể giúp bạn thực hiện điều này. Giữ các lớp và chức năng nhỏ và làm cho chúng làm một việc duy nhất.

Cuối cùng, nhưng không kém phần quan trọng, hãy bắt đầu viết unit test.

Các bài unit test buộc bạn phải viết code có cấu trúc tốt từ đầu, bởi vì nếu không. Bạn sẽ mất cả tuổi thanh xuân để tái cấu trúc code.


-- Daan
 

---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Dạy học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543 - 0353655150 
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
 
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python
Bình luận Facebook
Khóa học liên quan đến bài viết

Khóa học PHP Full stack [2023] cho người mới bắt đầu

96 giờ
Khóa học Lập trình PHP Full stack, phiên bản cập nhật lần thứ 8. Dạy Lập trình PHP bài bản từ Front end đến Back end + Laravel. Hướng dẫn làm 2 Dự Án Web lớn

KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG

50 giờ
Khóa học giúp học viên sử dụng thành thạo ngôn ngữ Lập trình Python (3x). Hiểu và phát triển được Ứng dụng Web với Django Framework. Học thực hành với Giảng viên cao cấp.

Lập trình PHP với Laravel Framework

42 giờ
Khóa học Lập trình PHP với Laravel Framework được NIIT - ICT HÀ NỘI xây dựng nhằm hoàn thiện kỹ năng lập trình web các các bạn đã biết Lập trình Web PHP thuần.

Khóa học Java Full stack (IJFD)

104 giờ
Học lập trình Java Fullstack với khóa học được xây dựng theo lộ trình bài bản, từ JAVA CƠ BẢN đến JAVA WEB và nâng cao về JAVA FRAMEWORK như: Spring Boot, Hibernate
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!