Làm thế nào để viết mã quản lý với lập trình chức năng?


14

Tôi mới bắt đầu với lập trình chức năng (với JavaScript và Node.js) và từ cái nhìn của mọi thứ, dường như mã tôi đang viết sẽ phát triển thành một cơ sở mã để quản lý, khi so sánh với các ngôn ngữ lập trình có loại mô hình hướng đối tượng.

Với OOP tôi quen thuộc với các thực tiễn sẽ đảm bảo mã của bạn dễ dàng được quản lý và mở rộng. Nhưng tôi chắc chắn về quy ước tương tự với lập trình chức năng.


4
JavaScript là ngôn ngữ hướng đối tượng, vì vậy hãy tiếp tục và sử dụng các kỹ năng OOP của bạn bằng Node.js
Jonas

5
thử chức năng. Những người sẽ giải quyết gần như mọi vấn đề.
tp1

4
Dưới đây là một nguồn lực lớn vào việc giữ mã nguồn nút của bạn gọn gàng và ngăn nắp và do đó dễ quản lý: nodeguide.com/style.html
Daniel Bradley

2
Theo như tôi biết, tính năng lập trình chức năng duy nhất mà JavaScript có là lambdas (chính xác hơn là các hàm không tên) và chức năng truyền qua. Nếu bạn muốn học lập trình chức năng, có lẽ bạn nên xem xét một cái gì đó như Haskell hoặc F # / OCaml hoặc Scala hoặc Lisp.
Rei Miyasaka

Câu trả lời:


8

Trong thực tế, một cơ sở mã chức năng lớn vẫn sẽ cần phải được phân chia trong một số loại hệ thống cấu trúc. Nếu bạn cảm thấy thoải mái trong OOP, các lớp vẫn là yếu tố cấu trúc tự nhiên. Bạn phấn đấu cho "các đối tượng chức năng": các chức năng liên quan đến khái niệm được đặt cùng nhau trong một lớp. Tất nhiên, bạn tránh trạng thái không đàm thoại và phụ thuộc vào các biến thể hiện.

Vượt ra ngoài cấu trúc, có một số kỹ thuật nhất định, chẳng hạn như ứng dụng chức năng một phần, được ưa thích trong thế giới chức năng để mở rộng, duy trì và khái quát hóa. Tuy nhiên, học cách nhận ra những cơ hội này có thể khó khăn khi làm việc trong chế độ đối tượng / chức năng lai. Cá nhân, tôi nghĩ rằng đó là một ý tưởng tốt để làm việc trong chế độ kết hợp nhưng họcchơi trong một môi trường thuần khiết hơn, chẳng hạn như được cung cấp bởi Haskell.


2

Các ngôn ngữ lập trình hàm tận hưởng rất nhiều khái niệm mạnh mẽ để xây dựng mã chất lượng cao, ví dụ: Các hàm được áp dụng một phần, các thành phần chức năng (cái này thực sự mạnh mẽ và yêu thích của tôi), macro, hàm bậc cao hơn. Và không quên cấu trúc dữ liệu bất biến.


1

Thay vì từ bỏ OOP cho FP, hãy thử tăng nó với một số mẫu FP. Bất cứ lúc nào bạn cần xử lý một bộ sưu tập là một ứng cử viên tốt và chỉ ra một tập hợp các phương thức FP phổ biến như ánh xạ, gấp và thu nhỏ. Hãy xem underscore.js và xương sống, một khung MVC sử dụng rộng rãi cái trước.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.