Ví dụ cơ bản, cơ bản về cách bạn thực hiện.
Giả sử bạn có một ứng dụng đơn giản được thiết kế để giải quyết một trường hợp kinh doanh cụ thể. Ví dụ: bạn đã tạo một ứng dụng để xử lý việc đặt phòng tại văn phòng của bạn.
Để "chuyển đổi" ứng dụng này thành một dịch vụ , bạn phải định cấu hình sao cho hầu hết các phần của người dùng cụ thể là tham số (chúng có thể được "templatized" - vì thiếu từ tốt hơn).
Đây là cách giao diện người dùng được chuyển đổi. Bạn có thể tạo các biến để giữ biểu trưng, dòng tiêu đề, trêu ghẹo, lược đồ màu cho ứng dụng; cho phép mỗi người dùng tùy chỉnh cá thể của họ.
Cho đến nay, ứng dụng của bạn có thể tùy chỉnh chính nó ở giao diện người dùng. Nó vẫn đang sử dụng cùng một cơ sở dữ liệu được thiết kế trong giai đoạn một.
Hiện tại, vấn đề chỉ hiển thị những trường có liên quan đến một người dùng cụ thể. Điều này sẽ được tham số hóa cơ sở dữ liệu. Vì vậy, bạn có thể thêm một cột xác định mỗi hàng là thuộc về một người dùng cụ thể; sau đó tạo các khung nhìn hoặc các thủ tục lưu sẵn để lọc các bản ghi dựa trên người dùng đã đăng nhập.
Hiện tại, ứng dụng có thể được "thuê"; vì bạn có thể tùy chỉnh cá thể dựa trên người dùng.
Sau đó, nó trở nên lớn hơn từ đây - tùy thuộc vào quy mô, loại và tùy chỉnh dự định của ứng dụng của bạn. Bạn có thể quyết định rằng ứng dụng của bạn hoạt động tốt hơn khi mỗi người dùng có cơ sở dữ liệu riêng của họ thay vì kết hợp thủ tục lưu trữ + xem.
Bạn có thể quyết định rằng đối với một số loại người dùng (hoặc "gói"), bạn cần một phiên bản ứng dụng chuyên dụng đang chạy. Vì vậy, đối với người dùng "cao cấp" hoặc "cực", bạn muốn có hệ thống riêng của họ đang chạy.
Nếu ứng dụng của bạn yêu cầu nhiều bộ nhớ - bạn có thể quyết định tính phí riêng để lưu trữ.
Điểm mấu chốt là nó không liên quan gì đến ngôn ngữ được sử dụng. Đó là một vấn đề về kiến trúc và thiết kế.
Nó sẽ rất thú vị nếu bạn đăng phản hồi của riêng bạn ở đây sau 4 năm. Trong trường hợp bạn tiếp tục làm việc trong dự án. Cảm ơn. –
@imanis_tn tốt, 4 năm sau rất nhiều thứ xảy ra nhưng đây là phần quan trọng. Tôi đã làm việc trên một ứng dụng SaaS gọi là Nhận Bản tin. Chúng tôi đã sử dụng khung công tác REST Django để xây dựng API của chúng tôi nhưng chưa sử dụng bất cứ điều gì đặc biệt. Không có tên miền phụ cho mỗi người dùng, hệ thống thanh toán nội bộ và chúng tôi đã xử lý các quyền theo đối tượng theo cách thủ công. Thực ra khi tôi tham gia dự án đã đề cập ở trên, hệ thống đã được thiết lập và chạy, và chúng tôi mới bắt đầu tạo REST Api để chúng tôi bị hạn chế bởi codebase hiện tại nhưng kết quả khá tốt. –