2011-01-08 17 views
5

Tôi muốn tạo một Mạng xã hội nhỏ bằng Ruby on Rails 3. Vì đây là một hệ thống phức tạp, nên kiến ​​trúc thông tin nào được khuyến nghị?Phát triển mạng xã hội: mẹo, chi tiết và thông tin

Tôi đã nghĩ tạo nhiều ứng dụng RoR với Kiến trúc phân cấp, mỗi ứng dụng được sử dụng để thực hiện một mục đích cụ thể. Do đó, tôi đã tạo một miền và nhiều tên miền phụ hơn.

Ví dụ:

miền chính: http://main.com

Tất cả các tên miền phụ nedded: http://app1.main.com, http://app2.main.com ...

Một vấn đề xảy ra sử dụng kiểu kiến ​​trúc là xác thực của người sử dụng , bởi vì, trong khi đặt cookie ở cấp độ http://main.com (để tất cả cookie có thể truy cập được từ tất cả các tên miền phụ), chúng không được "theo dõi" khi tôi cố thực hiện cuộc gọi HTTP GET giữa các tên miền phụ, trừ khi bạn rõ ràng chuyển các giá trị tham số của cookie trong cuộc gọi HTTP GET, có thể sử dụng kết nối SSL/TSL. Đây có phải là một cách tiếp cận đúng không?

Tuy nhiên, trong trường hợp này, tôi có thể nghĩ của việc sử dụng các API REST và một giao thức như vậy OAuth để bảo vệ tài nguyên ...

đúng cách để tạo ra một mạng xã hội là gì? Bất cứ ai có thể tư vấn cho tôi đủ chi tiết?

P .: đó là chính xác những gì tôi đang nói ?!

Trả lời

5

bạn cũng có thể nhìn vào Diaspora đó là một mạng xã hội đầy đủ tính năng và họ thực hiện các mã nguồn có sẵn trên github! https://github.com/diaspora/diaspora

+0

là khó (hoặc không khôn ngoan) để ruột cộng đồng người và làm cho một bản sao linkedin dựa trên nó? –

+0

Tôi nghĩ rằng đó là không khôn ngoan để làm điều đó (nhưng bạn sẽ học được rất nhiều). Bạn nên xây dựng nó từ đầu được thúc đẩy bởi các bài kiểm tra (Test Driven). Sử dụng các loại đá quý có giá như định nghĩa để xác thực người dùng của bạn. Sau đó, bạn có thể xem xét cộng đồng người ngoài cách họ triển khai các tính năng xã hội nhất định. Sau đó viết các bài kiểm tra cho các tính năng đó và cố gắng thực hiện chúng bằng cách sử dụng mô hình dữ liệu của riêng bạn. Nhưng nếu bạn thực sự không có manh mối, hãy xem Diaspora và các hoạt động bên trong để có cảm giác tốt hơn về cách bắt đầu :) –

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