2008-09-07 34 views
5

Chúng tôi có một vài dự án liên quan đến việc xây dựng một ứng dụng bao gồm 50% chức năng tùy chỉnh, nhưng sau đó kéo vào, wiki, diễn đàn và các thành phần khác đó là "bánh xe" đã được phát minh ra rằng chúng tôi không muốn viết lại từ đầu.Thực hành tốt nhất để tích hợp mô-đun của bên thứ ba vào ứng dụng của bạn

Các ứng dụng của bên thứ ba này thường có cơ sở dữ liệu, chủ đề và hệ thống xác thực của riêng họ. Bắt mọi thứ hoạt động như đăng nhập một lần hoặc chủ đề chung hoặc gắn thẻ/tìm kiếm trên các thực thể trong nhiều ứng dụng phụ là những vấn đề khá khó khăn, theo kinh nghiệm của tôi. Một số phương pháp hay nhất cho loại dự án tích hợp này là gì? Cách tiếp cận của chúng tôi, cho đến nay, đã thử và chọn các thành phần của bạn một cách cẩn thận, chọn các thành phần có API được xác định rõ ràng, tốt nhất là thông qua HTTP (như REST hoặc SOAP), mặc dù điều đó không phải lúc nào cũng có thể (chúng tôi 'thiên đường') t tìm thấy một diễn đàn phong nha mà hoạt động theo cách đó). Có những đề xuất mà mọi người có thể trao cho bất cứ ai đang cố gắng làm điều này, vì tôi nghi ngờ nhiều người trong chúng ta ngày càng thường xuyên hơn trong những ngày này?

+0

Cụ thể, tôi đang tìm một danh sách những điều cần thử, tránh hoặc xem ra. –

Trả lời

1

Đảm bảo rằng giao diện giữa ứng dụng của bạn và ứng dụng của bên thứ ba hoặc thư viện là như vậy mà bạn có thể thay thế nó dễ dàng bằng một thứ khác chỉ trong trường hợp. Trong một số trường hợp, phần mềm của bên thứ ba có thể chỉ là việc triển khai một API chuẩn (Java thực hiện điều này rất nhiều với JDBC, JMS, JNDI, ...). Trong các trường hợp khác, điều này có nghĩa là gói thư viện của bên thứ ba trong một số API mà bạn đưa ra.

Tất nhiên có những lúc để ném ý tưởng đó ra ngoài cửa sổ và tích hợp mọi thứ chặt chẽ với phần mềm của bên thứ ba. Chỉ cần chắc chắn rằng bạn thực sự muốn ràng buộc ứng dụng của bạn với bên thứ ba đó. Một khi bạn đi xuống con đường này thật là khó để quay trở lại và thay đổi suy nghĩ của bạn.

0

Donald Knuth nói rằng mã tốt hơn có thể tái sử dụng là mã có thể sửa đổi, vì vậy nếu không có API, bạn nên tìm kiếm ứng dụng nguồn mở được viết tốt và do đó có thể tùy chỉnh.

Đối với cơ sở dữ liệu và hệ thống đăng nhập và các phần lập trình khác (tôi không thấy cách sử dụng chúng có thể có lợi), bạn cũng có thể thử tùy thuộc vào hoàn cảnh. ma cua ban.

1

Nếu bạn đang sử dụng thư viện nguồn mở, hãy chọn những thư viện có giấy phép tốt. Tôi đã phát hiện ra một cách khó khăn (khi cố gắng ứng dụng OEM) mà nhiều công ty né tránh các giấy phép như LGPL. Tôi sẽ không đi vào chi tiết về lý do tại sao nhưng họ thích Apache, BSD hoặc giấy phép theo phong cách MIT.

Chọn các công cụ đã có từ lâu. Kiểm tra cộng đồng và đảm bảo cộng đồng đó đang hoạt động. Xem những gì người khác đang sử dụng và sử dụng những công cụ đó.

Chọn công nghệ hoạt động tốt cùng nhau. Tôi đã đặt cùng một ứng dụng sử dụng ORM và Dịch vụ Web. Spring Framework + Apache CXF + JPA cho ORM đã tạo ra một chồng công nghệ tốt đẹp. Tất cả các công cụ tôi sử dụng dễ dàng kết hợp với nhau vào mùa xuân giúp dễ dàng sử dụng chúng cùng nhau. Điều cuối cùng bạn muốn làm là chọn các công cụ mà bạn phải viết một loạt mã chỉ để sử dụng chúng cùng nhau.

Chọn công nghệ dựa trên các tiêu chuẩn. Bằng cách đó, nếu thư viện hoặc công cụ chết, bạn có thể dễ dàng chuyển sang thư viện hoặc công cụ khác sử dụng cùng một tiêu chuẩn.

0

Cách tiếp cận của tôi là sử dụng mã của bên thứ ba cho một số chức năng chính. Ví dụ, tôi sử dụng Subsonic để truy cập dữ liệu của tôi, các thành phần Devexpress cho UI và Peter Blum Data Entry Suite để nhập và xác thực dữ liệu. Subsonic là mã nguồn mở, các điều khiển của De Blown Peter Blum có mã nguồn có sẵn với một khoản phụ phí. Tôi sẽ không thể có được chức năng của sự kiểm soát này nếu tôi cố tự viết chúng.

Cách tiếp cận này cho phép tôi tập trung vào chức năng tùy chỉnh của ứng dụng mà không phải lo lắng về cách tôi truy cập cơ sở dữ liệu hoặc cách tôi tạo một treelist có thể chỉnh sửa trông đẹp mắt. Chắc chắn tôi không có một diễn đàn được cấu hình và làm việc đầy đủ nhưng tôi biết rằng tôi sẽ sử dụng cơ sở dữ liệu SQL cho ứng dụng của mình và tôi sẽ không phải thử và nhận các thành phần lưu trữ dữ liệu khác nhau để làm việc cùng nhau. Tôi không có một wiki nhưng tôi biết làm thế nào để sử dụng các thành phần ui devexpress và định dạng và xác nhận nhập dữ liệu là dễ dàng với các điều khiển của Peter Blum. Nói cách khác, hãy tìm hiểu các công cụ (và dĩ nhiên là chọn chúng một cách cẩn thận) để tăng tốc độ phát triển của tất cả các dự án của bạn, sau đó bạn có thể tập trung vào các phần của ứng dụng cần phải được tùy chỉnh.

Tôi không quá quan tâm nếu đó là nguồn mở hay không miễn là mã nguồn có sẵn. Nếu đó là nguồn mở tôi tặng cho dự án. Nếu đó là một thành phần thương mại, tôi sẽ trả một mức giá hợp lý. Trong bất kỳ trường hợp nào, các công cụ giúp cho việc lập trình trở nên thú vị và kết quả có tính toàn vẹn dữ liệu và rất đẹp. Nếu tôi phát triển một wiki hoặc diễn đàn tôi biết rằng tôi có thể giúp họ làm việc cùng nhau một cách liền mạch. Cuối cùng, tất cả các công cụ tôi đã đề cập đã được khoảng một thời gian dài và được viết bởi các nhà phát triển xuất sắc với danh tiếng tuyệt vời.

Các vấn đề liên quan