Wow- ada banyak hal di sini yang bahkan saya tidak tahu adalah batasannya - setelah bekerja di platform selama beberapa tahun.
Tetapi hanya untuk menambahkan beberapa hal lain ...
Alasan Anda tidak memiliki debugger baris demi baris justru karena ini adalah platform multi-tenant. Setidaknya itulah yang dikatakan SFDC - sepertinya di era pemrograman kaya thread ini, itu bukan alasan yang banyak, tapi tampaknya itulah alasannya. Jika Anda harus menulis kode, Anda memiliki "System.debug (String)" sebagai debugger Anda - Saya ingat memiliki alat debugging server yang lebih canggih di Java 1.2 sekitar 12 tahun yang lalu.
Hal lain yang sangat saya benci tentang sistem ini adalah kontrol versi. Framework Spring tidak digunakan untuk tujuan Spring biasanya - ini lebih merupakan fitur konfigurasi di SFDC daripada kontrol versi. SFDC menyediakan kontrol versi NOL.
Anda dapat menemukan diri Anda terhenti selama berhari-hari melakukan sesuatu yang seharusnya tampak sangat mudah, seperti, katakanlah, menjadwalkan laporan SFDC untuk diekspor ke file CSV dan email ke daftar penerima ... Nah, tentang cara termudah untuk melakukannya adalah buat objek kustom dengan bidang kustom, dengan aturan alur kerja dan template email Visualforce ... lalu untuk kode Anda perlu menulis komponen Visualforce yang mengalirkan data laporan ke template email Visualforce sebagai lampiran dan Anda menulis APEX anonim kode jadwal pembaruan bidang objek khusus ... Untuk pengembang SFDC, ini hampir merupakan tugas harian ... mencoba menggabungkan sekitar lima teknologi berbeda untuk melakukan tugas yang tampak begitu sederhana .... Dan ini dapat menyebabkan sakit kepala manajemen dan ketegangan juga - Biasanya, Anda akan mengetahui hal ini setelah mendapat saran untuk melakukan sesuatu yangt bekerja di komunitas pengguna (seperti yang sudah dikatakan seseorang), lalu mencoba banyak hal yang, setelah Anda mengembangkannya, Anda akan menemukan bahwa mereka tidak berfungsi karena alasan yang aneh - seperti "Anda tidak dapat menjadwalkan VisualForce page ", atau" Anda tidak dapat memanggil getContent dari konteks yang dapat dijadwalkan "atau alasan misterius lainnya.
Ada begitu banyak, banyak gotcha kecil yang menjengkelkan di platform SFDC, yang begitu Anda tahu MENGAPA mereka ada di sana, itu masuk akal ... tetapi batasan itu masih sangat buruk yang membuat Anda tidak melakukan apa yang perlu Anda lakukan. Ini beberapa milik saya;
Anda tidak bisa mendapatkan informasi pemilik rekaman "di luar kotak" pada hampir semua jenis rekaman - Anda harus menulis pemicu yang menautkan pemilik saat membuat rekaman ke rekaman yang Anda masukkan. Mengapa? Jawaban singkat karena pemilik dapat berupa "orang" atau "antrean", dan keduanya merupakan entitas yang sangat berbeda ... Masuk akal, tetapi secara harfiah dapat menjungkirbalikkan proyek.
Model keamanan yang menjengkelkan. Contoh: izin "Kelola Laporan Publik" sangat berbeda dari "Buat dan Ubahsuaikan Laporan" dan pada dasarnya berlaku untuk semua yang ada di platform ... terutama folder apa pun.
Seperti yang disebutkan, dukungan pada dasarnya tidak ada. Jika Anda adalah individu yang sangat mandiri, atau memiliki banyak sumber daya SFDC, atau memiliki banyak waktu dan / atau manajer yang sangat pemaaf, atau bertanggung jawab atas sistem SFDC yang berfungsi dengan baik, Anda cukup baik bentuk. Jika Anda tidak berada dalam salah satu posisi ini, Anda dapat menemukan diri Anda dalam masalah besar.
SFDC adalah proposisi bisnis yang sangat menggoda ... tanpa jejak peralatan, keamanan yang cukup bagus, harga tetap, tidak ada infrastruktur, DAN Anda mendapatkan CRM berbasis web dengan pemrosesan batchable, dan dapat dijadwalkan ... Tapi seperti yang dikatakan poster lain, itu benar-benar peningkatan dalam pembelajaran pengembangan, dan jika Anda mengikuti konsultasi, menurut saya harga terendah yang pernah saya lihat adalah $ 200 / jam.
Salesforce cenderung berintegrasi dengan hal-hal lain bertahun-tahun setelah beberapa teknologi menjadi tempat umum - JSON dan jquery muncul dalam pikiran ... dan jika Anda memiliki infrastruktur umum lain yang ingin Anda integrasikan, seperti JIRA, perkirakan untuk membayar lebih banyak, dan mereka bisa sangat bermasalah.
Dan seperti yang disebutkan salah satu poster lain, Anda terus-menerus melawan batasan gubernur yang bisa membuat Anda gila ... lampiran TIDAK boleh> 5MB. Titik. Dan terkadang <3MB (jika base64 dikodekan). Sepuluh keterangan HTTP di satu kelas. Titik. Ada lusinan batasan gubernur yang diterbitkan, dan banyak di antaranya yang tidak diragukan lagi akan Anda temukan dan hanya ingin kehabisan kantor.
Saya benar-benar, BENAR-BENAR suka platform, tapi percayalah - itu bisa menjadi nyonya yang sangat kejam.
Namun dalam keadilan bagi SFDC, saya akan mengatakan ini: masalah terbesar yang saya temukan dengan platform bukanlah platform itu sendiri, tetapi ekspektasi besar yang dimiliki oleh hampir semua orang yang melihat platform, tetapi belum mengembangkannya .... dan orang-orang itu cenderung memiliki otoritas besar dalam organisasi bisnis; pemasaran, penjualan, manajemen, dll. Terjadi pemutusan hubungan yang besar dan kepala bergulir, atau terancam bergulir setiap hari - semua karena ada platform hebat di luar sana dengan gotcha aneh dan ribuan orang yang berjuang setiap hari untuk memahami mengapa hal-hal seharusnya berfungsi saat mereka hanya tidak dan tidak mau.
EDIT:
Hanya untuk menambah komentar lomaxx tentang MVC; Dalam terminologi SFDC, ini terkait erat dengan apa yang dikenal sebagai "kondisi tampilan" - dan dapat benar-benar bermasalah, karena apa yang ada di laman VF bukanlah yang ada di kelas pengontrol untuk laman tersebut. Jadi, Anda harus melalui perputaran aneh untuk menyinkronkan apa yang ada di halaman dengan apa yang akan ditulis pengontrol ke SF ketika Anda mengklik tombol "simpan" (atau buat keterangan HTTP Anda atau apa pun) .... man, itu mengganggu .