Là một trong những người thực hiện điều này công cụ , startHttpServer
bạn cần phải cố gắng để làm cho nó đơn giản nhất, trơn tru và liền mạch để sử dụng ...
Logic của hàm
Về mặt kỹ thuật, bằng cách tách startHttpServer
's logic vào 2 chức năng và gọi họ riêng biệt , tất cả những gì bạn làm là di chuyển startHttpServer
' s idempotency vào mã gọi cả hai chức năng thay vì ... Hơn nữa, trừ khi bạn quấn cả logic trong một chức năng thứ ba (đó là những gì hiện startHttpServer
ở vị trí đầu tiên), điều này buộc bạn phải viết mã chưa được mã hóa, sao chép nó theo cấp số nhân ở mọi nơi bạn phải gọi startHttpServer
. Tóm lại, startHttpServer
phải gọi chính nó là isHttpServerRunning
chức năng.
Vì vậy, quan điểm của tôi là:
- Thực hiện
isHttpServerRunning
chức năng bởi vì điều này có thể cần thiết một cách độc lập ...
- Triển khai
startHttpServer
làm cho nó sử dụng isHttpServerRunning
để xác định hành động tiếp theo của nó phù hợp ...
Tuy nhiên, bạn có thể startHttpServer
trả về bất kỳ giá trị nào mà người dùng của chức năng này có thể cần, ví dụ:
0
=> máy chủ bắt đầu thất bại
1
=> máy chủ bắt đầu thành công
2
=> máy chủ đã được khởi động rồi
Chức năng đặt tên
Trước hết, mục tiêu chính của người dùng là gì? Để khởi động máy chủ HTTP , phải không?
Về cơ bản, không có vấn đề gì bằng cách dự định bắt đầu một cái gì đó đã được bắt đầu, AKA 1*1=1
. Vì vậy, ít nhất với tôi, gọi nó là " ensureHttpServerIsRunning
" dường như không cần thiết lắm, tôi quan tâm nhiều hơn đến việc tên của hàm dài bao nhiêu, tự nhiên và đáng nhớ.
Bây giờ nếu bạn muốn biết làm thế nào để làm việc chi tiết chức năng dưới mui xe, có tài liệu hoặc nguồn mã cho điều đó, ý tôi là giống như bất kỳ chức năng nào khác từ thư viện / framework / API / vv ...
Bạn học hàm một lần trong khi bạn viết nó nhiều lần ...
Vì vậy, dù sao, tôi sẽ gắn bó với startHttpServer
cái ngắn hơn, đơn giản hơn và rõ ràng hơn ensureHttpServerIsRunning
.