Clean code là gì

     
Giới thiệu:

Chào các bạn. Bây giờ mình vẫn tạm ko viết những kỹ năng Android nữa mà sẽ viết rộng rộng một chút, chính là về lập trình. Đừng vội vàng rời đi, bao gồm 2 tại sao để chúng ta đọc nội dung bài viết này : đầu tiên bạn là một trong những lập trình viên, thứ hai là bạn có nhu cầu trở thành một thiết kế viên xuất sắc hơn. Và như vậy, bọn họ đã tất cả chung mục tiêu

*

Điều trước tiên mà họ cần phải ghi nhận những điểm lưu ý của Clean code:

Source Code đề nghị thanh lịch: Hãy tưởng tượng đến 2 chữ "thanh lịch", nó cần sạch sẽ, cảm giác hứng thú khi đọc. Giống như khi bạn để ý đọc một bài xích văn xuất xắc vậy
*

Class name: các class và các object nên mang tên là danh tự hoặc cụm danh từ như Customer, Account, Client,... Tránh giải pháp từ như Manager, Processor, Data hoặc chứa thông tin trong thương hiệu của một class. Một thương hiệu class không nên là một trong những động từ.

Bạn đang xem: Clean code là gì

Method name: cần được bắt đầu bằng một rượu cồn từ hoặc một cụm động từ bỏ như postPayment(), deleteUser() , hoặc saveScore(). Những method dùng để làm access vào các trường trong class thì nên cần được thương hiệu theo thương hiệu trường đó và đước trước là set/get. Lấy ví dụ như Class User có trường là name. Thì những method để đọc với ghi tài liệu cho 2 ngôi trường này đang là setName(...) , getName().

Cùng xem đoạn code sau giúp thấy sự quan trọng đặc biệt của việc đặt tên trở thành :

public danh mục getData() var list1 = new List(); var data = ServiceRepository.GetPlainCustomers(); foreach(var sản phẩm in data) if (item != null && item.IsValid) list1.Add(item); return list1; Viết núm này 1 tháng sau bảo vệ nhìn lại chẳng phát âm gì =)) .Cũng là một function nhưng được lấy tên biến, fucntion một bí quyết đàng hoàng :

public danh sách getValidCustomers() var validCustomers = new List(); var plainCustomers = ServiceRepository.GetPlainCustomers(); foreach(var customer in plainCustomers) if (customer != null && customer.IsValid) validCustomers.Add(customer); return validCustomers; Các chúng ta có thể thấy rõ sự khác biệt khi hiểu hiểu bắt buộc không nào.

Pick one word per concept : lựa chọn một từ cho một function trừu tượng gắn với nó (abstract funtion). Hơi cực nhọc hiểu một chút. Ví dụ điển hình khi một class kế hay nhiều các interface, mà trong số interface đó lại có khá nhiều các abstract funtion thì làm thế nào mà bạn cũng có thể biết được method như thế nào là của interface làm sao mà thực thi cho đúng logic. Và chiến thuật ở trên đây là lựa chọn 1 từ (danh từ) kiểu như với class/interface đựng abstract funtion đó. Ví dụ interface : ActionPostListener thì abstract fun của nó là savePost(), sharePost, deletePost()...

Xem thêm: Domain Controller Là Gì ? Vai Trò Của Domain Controller Ra Sao?

Function:

Nguyên tắc trước tiên cho một function là nó phải nhỏ dại nhất có thể, giải quyết một vụ việc duy nhất, lúc nào cần thì gọi. Điều này giúp cho việc hiểu code và tái sử dụng của nó trở nên dễ ợt hơn rất nhiều.

Function arguments:

Một function không nên có nhiều hơn 3 thông số truyền vào. Khi một function trong khi cần nhiều hơn thế 2 hoặc 3 argument, họ nên gói nó vào vào một class hoặc struct của riêng rẽ nó. Việc giảm con số argument truyền vào có vẻ như như là "ăn gian" mà lại không phải. Điều này sẽ giúp cho class gọn gàng và dễ nắm bắt hơn. Ví dụ như bọn họ có một function là ăn() các tham số truyền vào có lẽ là "món chính", "món phụ", "canh", "nước chấm", "món tráng miệng"... Nhiều năm quá, chỉ cần đơn giản gói nó vào class là Food, trong Food này đã định nghĩa những trường trên với truyền vào. Xong!

Tránh hard code

Hãy để tên cho các giá trị là số, string một giải pháp ý nghĩa, điều này rất có thể tránh được cảm hứng khó hiểu cho tất cả những người đọc code như "giá trị này là gì?", "nó chui trường đoản cú đâu ra" ?... Ví dụ:

fun getDiscountPrice(productCode: Int): Int if (productCode in 5..10) return 75 else return 100 Nhìn vào chả hiểu gì cần không nào. Giá trị 5, 10 là gì? 75 ?...Và sau khoản thời gian "làm đẹp"fun getDiscountPrice(productCode: Int): Int if (productCode in DISCOUNTED_PRODUCT_CODES) return DISCOUNT_PRICE else return ORIGINAL_PRICE val DISCOUNTED_PRODUCT_CODES = 5..10const val DISCOUNT_PRICE = 75const val ORIGINAL_PRICE = 100Có thể cần được code dài hơn, nhưng rõ ràng là dễ hiểu hơn nhều đúng không, vì thế nên hãy định nghĩa đông đảo thứ.

Xem thêm: Phân Biệt Iphone 11 Pro Max Và 12 Pro Max Và 11 Pro Max: Có Đáng Để Nâng Cấp?

Tái sử dụng:

*

Trong một dự án thực tế, song khi có không ít các sự trung lặp về logic, các instance. Cứ những lần sử dụng hồ hết thứ đó lại phải đi tư tưởng lại bọn chúng sẽ tốn không hề ít thời gian, tiêu tốn lãng phí efford và duplicate code. Hãy về tối ưu đa số fucntion, ngắn gọn xúc tích để hoàn toàn có thể tái áp dụng lại ở những nơi. Trường hợp trong một class thực hiện nhiều đoạn ngắn gọn xúc tích giống nhau, hãy tách bóc logic đó ra thành một method và ở đâu cần sử dụng chỉ cần gọi method đó. Còn vào một dự án tái thực hiện một method nhiều lần hãy tạo nên một public constant, chuyển method đó vào. Chỗ nào cần địa điểm đó gọi.Kết luận:Trên đó là một vài kinh nghiệm về Clean code của chính mình sau một thời gian thao tác thực tế. Hi vọng nó hoàn toàn có thể giúp bạn xuất sắc hơn trong quá trình coding.Nếu có bất kể gì không ổn, hãy để nó dưới phần phản hồi nhé.

Best regard, Bye!