Thực hành mã hóa tốt nhất, mẹo và nhiều hơn nữa cho Android

Ảnh của Joshua Earle trên Bapt

Tôi đã là một nhà phát triển trong hơn hai năm nay và cách tôi viết mã đã thay đổi bằng cách học hỏi và chia sẻ với những người khác. Trong hai năm qua tôi đã thấy hàng ngàn dòng mã, một số thì đàng hoàng, một số thì xấu xí và may mắn cũng có vài cái gợi cảm. Nếu bạn là một lập trình viên và bạn có thể đọc một mã như đọc một tờ báo, Không có gì đánh bại điều đó, thậm chí không phải là cô gái nóng bỏng mà bạn theo dõi trên Instagram. Vì vậy, hãy để đào bới.

Mẹo mã hóa và không thủ thuật

Nếu lồng nhau

Tôi ghét điều này, tôi thực sự nghiêm túc, bạn có các câu lệnh yêu cầu nhiều kiểm tra như mã dưới đây và nó đi rất sâu thực sự, Trong mã hóa thực sự xấu.

if (xe! = null) {
       if (xe.getCar ()! = null) {
           if (xe.getCar (). getModel ()! = null) {
               int price = xe.getCar (). getModel (). getprice ();
           }

       }
   }

Và điều này là, Nó có thể tránh được, bạn hoàn toàn có thể, như thế này. Như bạn thấy dưới đây một là dễ đọc và dễ hiểu hơn.

if (xe == null | | xe.getCar () == null || xe.getCar (). getModel () == null) return;

int price = xe.getCar (). getModel (). getprice ();

Khai báo mặc định

Quyết định và khai báo mặc định ngay bây giờ trong các hằng số nếu cần thiết cho các đối tượng nguyên thủy hoặc đối tượng khác nhau mà bạn thường sử dụng. Tại sao? Đây là ví dụ bạn có một biến price (String), trong đó bạn trả về null, chuỗi rỗng và N / A, tại các vị trí khác nhau. Don lồng làm điều này. Nó phạm tội chống lại loài người. Chỉ cần chọn yêu thích của bạn vì tính nhất quán ít bị lỗi hơn.

Chuỗi kết nối trong vòng lặp

Có một điều là bạn có thể đã biết một số trong những điều này, vì bạn sẽ là người xấu nhưng bạn rất tệ đến nỗi bạn cứ để nó cho tương lai của bạn giả sử anh ấy / cô ấy sẽ xấu hơn và sẽ tái cấu trúc nó, bỏ qua thực tế rằng anh ấy / cô ấy có thể là một ass lười biếng. Tôi hy vọng bạn có được điểm f *** g .

không
cho (Tên chuỗi: tên) {
    tên + = tên;
}
Yup
StringBuilder nameBuilder = new StringBuilder ();
cho (Tên chuỗi: tên) {
    tênBuilder.append (tên);
}

Đặt tên

Tên ngắn cho các biến số sống ngắn và tốt và có ý nghĩa cho những người sống lâu vì họ sẽ ở bên bạn lâu dài. Họ là gia đình.

Ví dụ: biến chỉ số trong vòng lặp for có thể là 'i' nhưng vì biến lớp nên là 'index'

Không bắt buộc

Đối với java, đây là giải pháp tốt nhất được cung cấp cho Lỗi hàng tỷ đô la và nó có thể trông giống như một giải pháp rẻ tiền nhưng bạn phải sử dụng nó nếu bạn khó kiếm tiền.

Trở về

Trả lại các bộ sưu tập và danh sách trống bất cứ nơi nào bạn có thể quyên tặng null, nếu không, tỷ sẽ trở thành nghìn tỷ hoặc làm điều đó, nếu bạn là một tỷ phú.

Độ phức tạp nhận thức

Định nghĩa: Nó có một đặc điểm tâm lý hoặc biến tâm lý cho biết mức độ phức tạp hay đơn giản của khung và kỹ năng nhận thức của một người.

Trong lập trình một phương thức với lồng nhau nếu khác, kích thước lớn hơn gây ra độ phức tạp nhận thức cao có nghĩa là ít hiểu biết hơn. Vì vậy, tốt hơn là chia các phương thức lớn thành các phương thức nhỏ hơn một cách hợp lý và sử dụng thủ thuật Nested If trên để giảm bớt nó. Ngoài ra SonarLint một công cụ phân tích mã tĩnh tính toán điều này cho bạn trong thời gian thực trong studio, bạn có thể sử dụng sonar để xem cách bạn làm không?

Lambda

Nó yêu cầu phải giữ cho mã của bạn chính xác và cuộn tròn {} miễn phí, vì không phải đường cong nào cũng tốt. May mắn thay với Android gradle> 3.0.0 họ đã xây dựng, nó hỗ trợ trong phòng thu tại đây.

Cập nhật

Luôn cập nhật các công cụ, kỹ năng và ngôn ngữ của bạn, ý tôi là đứa trẻ ngôn ngữ của bạn (Đi kotlin / flutter / Reac / hybrid / bản địa của chúng tôi 13 lý do tại sao !!) khác điều này sẽ xảy ra.

Google đang tức giận và họ có thể chặn *** của bạn.

Khu vực

Sử dụng các vùng để phân tách các đoạn mã của bạn trong các lớp lớn như người anh hùng đã làm với chính sách phân chia và quy tắc, hỏi người Ấn rất hiệu quả.

// tên có ý nghĩa của vùng được phân tách hợp lý của bạn
làm việc của bạn ở đây
// kết thúc

Khởi đầu

Tạo phương thức bắt đầu để tự khởi chạy hoạt động trong hoạt động để tránh lặp lại chính mình vì ai thích điều đó và nếu bạn đã sử dụng nó thì hãy gói dữ liệu don don chỉ cần truyền hàng ngàn tham số như bên dưới.

công khai void void start (Bối cảnh bối cảnh, Gói bó) {
    Intent starter = new Intent (bối cảnh, NextActivity. Class);
    starter.putExtra (AppConstants.BUNDLE, gói);
    bối cảnh.startActivity (khởi động);
}

Các tham số tối đa trong phương thức

Không có giới hạn cho việc không có tham số nào được cho phép trong các chức năng nhưng điều đó không có nghĩa là bạn nên làm điều đó, giống như có một GF không có nghĩa là bạn có thể có một người khác nhưng có đạo đức. Lý tưởng nhất là không nên có nhiều hơn 3 tham số4 và nếu bạn cần nhiều hơn thì hãy sử dụng mẫu Parameter Object.

Định dạng

Định dạng mã là rất quan trọng đối với khả năng đọc, cần có một hạn chế theo chiều dọc và ngang đối với mã mà bạn đặt trong các phương thức của mình trừ khi bạn sử dụng các phương thức của mình để xử lý rác. Studio có một đường thẳng đứng không nên vượt qua hoặc chuẩn bị chết.

don đai kéo dài giới hạn của bạn.ồ, tôi thích nó!

Lời khuyên

John rừng. Mã cho dễ đọc

Một số bài viết hay cho người dùng Android của tôi

Đúng cách để thực hiện màn hình Splash

Từ mọt sách lớn

Làm thế nào để trở nên hiệu quả hơn trong Android với các plugin android studio

Làm thế nào để làm cho Singleton hoàn hảo?

Mindork

Tôi viết ở đây bạn có thể theo dõi chúng tôi, Chúng tôi có những người thậm chí còn tốt hơn tôi.

Công cụ và plugin

Bạn không cần phải biết tất cả mọi thứ, bạn đã được phép phạm sai lầm miễn là ai đó đang nhìn bạn và nói với bạn rằng KHÔNG !!!. Hãy thử những công cụ dưới đây.

SonarLint

Tôi khuyên bạn nên điều này, tôi đã sử dụng nó và tôi đã biết về điều này từ một đồng nghiệp, đôi khi chúng có thể hữu ích, đùa. Nó có một số tính năng tốt nhất để chỉ quét các lớp đã sửa đổi và nó sẽ tự động chỉ trích bạn về mã xấu của bạn và đôi khi bạn có thể xấu đến mức nào. BTW Nhận thức phức tạp chúng tôi đã nói trước đó nó giúp.

Tìm kiếm

Nó là một chương trình sử dụng phân tích mã tĩnh để tìm lỗi trong mã java giống như SonarLint. Để biết thêm về FindBug kiểm tra này. Fellas lật một đồng xu hoặc bất cứ điều gì nhưng chọn một trong những công cụ này.

Để biết danh sách tất cả các plugin tốt nhất và được sử dụng nhiều nhất, hãy kiểm tra bên dưới

Các nguyên tắc mã hóa

CHẤT RẮN

Nó có một từ viết tắt ghi nhớ giúp xác định năm nguyên tắc thiết kế hướng đối tượng cơ bản:

  • Nguyên tắc trách nhiệm duy nhất
  • Nguyên tắc đóng mở
  • Nguyên tắc thay thế Liskov
  • Nguyên tắc phân chia giao diện
  • Nguyên tắc đảo ngược phụ thuộc

Để kiểm tra tham khảo đầy đủ.

Quy tắc hướng đạo nam

Định nghĩa: Để lại khu cắm trại sạch hơn bạn tìm thấy

Từ mã sạch bởi chú bob, tôi thích quy tắc này vì vậy khi tôi làm việc với một mã xấu tôi đã cấu trúc lại, làm sạch, giảm và làm cho nó có ý nghĩa và dễ đọc hơn trước. Luôn luôn giữ cho khu vực xung quanh của bạn sạch sẽ vì tổng thống quá bận rộn để xây dựng một bức tường.

Don lồng lặp lại chính mình (DRY)

Không bao giờ viết cùng một đoạn mã hai lần làm cho nó trở thành quy tắc sắt của bạn và mọi người nghiêm cấm điều này trong vương quốc của bạn.

Nguyên tắc phê bình

Được rồi, nó hoàn toàn tạo nên nhưng nó rất logic. Khi bạn đang xem lại mã của các đồng đội của mình, hãy là một người bạn, hãy là kẻ thù không đội trời chung của họ, đừng để họ phạm sai lầm mà bạn có thể phải dọn dẹp vào một ngày nào đó. Làm sạch các shit khác sẽ chỉ làm bẩn tay bạn. Thực thi các thực hành tốt trong đánh giá mã.

Có nhiều lời khuyên và thực tiễn tốt nhất đến từ đâu, chỉ cần nhấp vào liên kết này, hãy tin tôi, tôi sẽ bật bất kỳ Quảng cáo nào và tất cả các bạn đều có thể đóng góp, đề xuất và chỉnh sửa lỗi của mình. Bạn là người tốt. Tôi sẽ bỏ phiếu cho ya.

Còn tiếp…

Cảm ơn đã đọc bài viết này. Hãy chắc chắn nhấp vào để giới thiệu bài viết này nếu bạn thấy nó hữu ích. Nó mang nhiều ý nghĩa với tôi.

Kiểm tra tất cả các bài viết hàng đầu tại blog.mindork.com

Đồng thời cho phép kết nối trên facebook, twitter, github và Linkedin.

Vỗ tay, chia sẻ nếu bạn thích nó và theo tôi cho bước tiếp theo.