Đừng sợ các chức năng 1 dòng!
Rất nhiều lập trình viên dường như có khối tâm thần về chức năng 1 dòng, bạn không nên.
Nếu nó làm cho mã rõ ràng hơn và sạch hơn, hãy trích dòng đó thành một hàm.
Hiệu suất có thể sẽ không bị ảnh hưởng.
Bất kỳ trình biên dịch nào được thực hiện trong thập kỷ qua (và có lẽ hơn nữa) sẽ tự động điền một hàm 1 dòng đơn giản. Ngoài ra, 1 dòng C có thể dễ dàng tương ứng với nhiều dòng mã máy. Bạn không nên giả sử rằng ngay cả trong trường hợp lý thuyết, nơi bạn phải chịu toàn bộ chi phí của một cuộc gọi hàm mà chi phí này là đáng kể so với "một dòng nhỏ" của bạn. Hãy để một mình quan trọng đối với hiệu suất tổng thể của ứng dụng của bạn.
Dẫn trừu tượng đến thiết kế tốt hơn. (Ngay cả đối với các dòng mã)
Các chức năng là các khối xây dựng chính của mã trừu tượng, thành phần, chúng không được bỏ qua. Nếu gói gọn một dòng mã đằng sau một cuộc gọi hàm làm cho mã dễ đọc hơn, hãy làm điều đó. Ngay cả trong trường hợp hàm được gọi một lần. Nếu bạn thấy điều quan trọng là phải nhận xét một dòng mã cụ thể, thì đó là một đoạn mã tốt có thể hữu ích khi di chuyển mã vào một hàm được đặt tên tốt.
Chắc chắn, mã đó có thể là 1 dòng ngày hôm nay, nhưng có bao nhiêu cách khác nhau để thực hiện cùng một chức năng? Mã đóng gói bên trong một hàm có thể giúp bạn dễ dàng xem tất cả các tùy chọn thiết kế có sẵn cho bạn. Có lẽ 1 dòng mã của bạn mở rộng thành một cuộc gọi đến một webservice, có thể nó sẽ trở thành một truy vấn cơ sở dữ liệu, có thể nó trở thành cấu hình (sử dụng mẫu chiến lược, ví dụ), có thể bạn muốn chuyển sang bộ nhớ đệm giá trị được tính bởi hàng. Tất cả các tùy chọn này dễ thực hiện hơn và dễ dàng hơn khi bạn trích xuất 1 dòng mã của bạn thành hàm riêng của nó.
Có thể 1 dòng của bạn nên có nhiều dòng hơn.
Nếu bạn có một khối mã lớn, bạn có thể bị nhồi nhét nhiều chức năng vào một dòng, chỉ để lưu trên màn hình bất động sản. Khi bạn di chuyển mã này sang một hàm, bạn giảm áp lực này, điều này có thể khiến bạn có khuynh hướng mở rộng lớp lót phức tạp của mình thành mã đơn giản hơn để lấy nhiều dòng (có khả năng cải thiện khả năng đọc và bảo trì của nó).
Bạn đang lo lắng về chi phí cuộc gọi, nhưng sau đó gọi pow để tăng 2 lên sức mạnh của một số nguyên nhỏ? ;-p –
Điều gì có thể là cách tốt hơn để làm điều đó? Tôi muốn biết. –
2^x cũng giống như 2 << x nếu x là một số nguyên –