Chà- có rất nhiều điều ở đây mà tôi thậm chí còn không biết đó là những hạn chế - sau khi làm việc trên nền tảng này trong một vài năm.
Nhưng chỉ để thêm một số thứ khác ...
Lý do bạn không có trình gỡ lỗi từng dòng chính là vì đó là một nền tảng nhiều người thuê. Ít nhất thì đó là những gì SFDC nói - có vẻ như trong thời đại lập trình giàu luồng này, đó không phải là một cái cớ nhiều, nhưng đó rõ ràng là lý do. Nếu bạn phải viết mã, bạn có "System.debug (String)" làm trình gỡ lỗi của mình - tôi nhớ có nhiều công cụ gỡ lỗi máy chủ phức tạp hơn trong Java 1.2 khoảng 12 năm trước.
Một điều tôi thực sự ghét về hệ thống là kiểm soát phiên bản. Khung công tác Spring không được sử dụng cho những gì Spring thường được sử dụng - nó thực sự là một công cụ cấu hình trong SFDC hơn là kiểm soát phiên bản. SFDC cung cấp kiểm soát phiên bản ZERO.
Bạn có thể thấy mình bị mắc kẹt trong nhiều ngày khi làm một việc gì đó có vẻ rất dễ dàng, chẳng hạn như lập lịch báo cáo SFDC để xuất sang tệp CSV và gửi email tới danh sách người nhận ... Chà, về cách dễ nhất để làm điều đó là tạo đối tượng tùy chỉnh với trường tùy chỉnh, với quy tắc dòng công việc và mẫu email Visualforce ... và sau đó đối với mã, bạn cần viết một thành phần Visualforce truyền dữ liệu báo cáo đến mẫu email Visualforce dưới dạng tệp đính kèm và bạn viết APEX ẩn danh cập nhật trường lịch trình mã của đối tượng tùy chỉnh ... Đối với các nhà phát triển SFDC, đây gần như là một công việc hàng ngày ... cố gắng kết hợp khoảng năm công nghệ khác nhau lại với nhau để thực hiện các nhiệm vụ có vẻ rất đơn giản .... Và điều này có thể khiến ban quản lý đau đầu và căng thẳng nữa - Thông thường, bạn sẽ tìm ra điều này sau khi nhận được đề xuất làm điều gì đó khôngkhông làm việc trong cộng đồng người dùng (như ai đó đã nói), và sau đó thử nhiều thứ mà sau khi bạn phát triển chúng, bạn sẽ thấy chúng không hoạt động vì một số lý do kỳ quặc - như "bạn không thể lên lịch Trang VisualForce "hoặc" bạn không thể gọi getContent từ ngữ cảnh có thể lập lịch "hoặc một số lý do phức tạp khác.
Có rất nhiều, rất nhiều gotcha nhỏ khó chịu trên nền tảng SFDC, mà một khi bạn biết TẠI SAO chúng ở đó, điều đó hoàn toàn hợp lý ... nhưng chúng vẫn có những hạn chế rất tồi tệ khiến bạn không thể làm những gì bạn cần làm. Đây là một số của tôi;
Bạn không thể lấy thông tin chủ sở hữu bản ghi "ra khỏi hộp" trên hầu hết mọi loại bản ghi - bạn phải viết trình kích hoạt liên kết chủ sở hữu khi tạo bản ghi với bản ghi bạn đang chèn. Tại sao? Câu trả lời ngắn gọn vì chủ sở hữu có thể là "người" hoặc "người xếp hàng", và cả hai là các thực thể khác nhau rõ rệt ... Có lý, nhưng nó có thể làm đảo lộn dự án theo đúng nghĩa đen.
Mô hình bảo mật đáng sợ. Ví dụ: Quyền "Quản lý Báo cáo Công khai" khác rất nhiều so với "Tạo và Tùy chỉnh Báo cáo" và điều đó về cơ bản áp dụng cho mọi thứ trên nền tảng ... đặc biệt là các thư mục thuộc bất kỳ loại nào.
Như đã đề cập, hỗ trợ về cơ bản là không tồn tại. Nếu bạn là một cá nhân cực kỳ tự lập, hoặc có nhiều tài nguyên SFDC hoặc có nhiều thời gian và / hoặc một người quản lý rất khoan dung, hoặc phụ trách một hệ thống SFDC đang hoạt động tốt, bạn đang ở khá tốt hình dạng. Nếu bạn không ở bất kỳ vị trí nào trong số này, bạn có thể thấy mình đang gặp rắc rối sâu sắc.
SFDC là một đề xuất kinh doanh rất quyến rũ ... không có dấu chân thiết bị, bảo mật khá tốt, giá cố định, không có cơ sở hạ tầng VÀ bạn nhận được CRM dựa trên web với xử lý có thể truy cập và có thể lập lịch ... Nhưng như các áp phích khác đã nói, nó thực sự là khá phát triển trong học tập phát triển và nếu bạn tham gia tư vấn, tôi nghĩ mức giá thấp nhất mà tôi từng thấy là 200 đô la / giờ.
Salesforce có xu hướng tích hợp với những thứ khác nhiều năm sau khi một số công nghệ trở nên phổ biến - JSON và jquery xuất hiện trong tâm trí ... và nếu bạn có các cơ sở hạ tầng chung khác mà bạn muốn tích hợp, như JIRA, bạn sẽ phải trả thêm nhiều tiền, và chúng có thể khá lỗi.
Và như một trong những áp phích khác đã đề cập, bạn đang liên tục chống lại các giới hạn của thống đốc có thể khiến bạn phát điên lên ... một tệp đính kèm KHÔNG được> 5MB. Giai đoạn = Stage. Và đôi khi <3MB (nếu mã hóa base64). Mười chú thích HTTP trong một lớp. Giai đoạn = Stage. Có hàng tá giới hạn thống đốc được công bố, và nhiều giới hạn không phải là điều bạn chắc chắn sẽ tìm thấy và chỉ muốn chạy ra khỏi văn phòng của bạn để hét lên.
Tôi thực sự, THỰC SỰ thích nền tảng này, nhưng hãy tin tôi - nó có thể là một tình nhân thực sự độc ác.
Nhưng công bằng với SFDC, tôi muốn nói thế này: vấn đề lớn nhất mà tôi tìm thấy với nền tảng không phải là bản thân nền tảng, mà là những kỳ vọng khổng lồ mà hầu như bất kỳ ai nhìn thấy nền tảng nhưng chưa phát triển trên nó đều gặp phải .... và những người đó có xu hướng giữ những vị trí có quyền lực lớn trong các tổ chức kinh doanh; tiếp thị, bán hàng, quản lý, v.v. Những lần ngắt kết nối lớn xảy ra và đầu cuộn, hoặc bị đe dọa hoạt động hàng ngày - tất cả là bởi vì có nền tảng tuyệt vời này với những tính năng kỳ lạ và hàng nghìn người phải vật lộn hàng ngày để tìm hiểu lý do tại sao mọi thứ nên hoạt động khi họ chỉ không và sẽ không.
CHỈNH SỬA:
Chỉ để thêm vào bình luận của lomaxx về MVC; Trong thuật ngữ SFDC, điều này có liên quan chặt chẽ với cái được gọi là "viewstate" - và nó có thể thực sự có lỗi, ở chỗ những gì trên trang VF không phải là những gì trong lớp bộ điều khiển của trang. Vì vậy, bạn phải thực hiện các vòng quay kỳ lạ để đồng bộ hóa những gì trên trang với những gì bộ điều khiển sẽ ghi vào SF khi bạn nhấp vào nút "lưu" (hoặc tạo chú thích HTTP của bạn hoặc bất cứ điều gì) .... anh bạn, thật khó chịu .