Salesforce е доста болезнен опит за разработване на всичко друго, но не и на най-простите приложения. Salesforce има много конкретна представа какво бихте искали да разработите и ако приложението ви не е в тези граници, избягвайте!
Ограниченията на управителя наистина са доста жалки: рекурсия от 16 нива, купчина от 1 meg, не повече от 200 обекта, върнати от заявка, не повече от 20 заявки в едно извикване. 10 уеб надписа в едно извикване, 1000 елемента в един списък и те продължават. Крайният резултат е, че всяка хитрост, която измислите, за да заобиколите едно ограничение, се сблъсква с друго.
След като достигнете определен размер, цялото ви време ще бъде изразходвано за кодиране около тези ограничения. Езикът, Apex, всъщност не поддържа никакво смислено наследяване. Дори привидно прости задачи в крайна сметка отнемат дни, когато човек се натъкне на нови и очевидно произволни ограничения, например всички обекти в Apex наследяват от SObject
; обаче не е позволено да се инстанцира колекция от генерични SObject
s, което прави почти невъзможно изграждането на полезни библиотеки с помощни програми. Не са възможни сложни (дори доста прости) съединявания на бази данни.
Инструментите и поддръжката за Salesforce също са изключително слаби. Те са ненадеждни и трудни за използване за реални процеси на развитие. Внедряването е кошмар, тъй като инструментите срещат огромни трудности при разрешаването на сложни проблеми със зависимостите и множество обекти, които човек ще създаде в хода на нормалното развитие, просто НЕ МОГАТ да бъдат внедрени програмно. Други малки функции също са възхитителни, като например факта, че езикът не е чувствителен към малки и главни букви, но IDE е чувствителна към малки и малки букви. Няма инструменти за рефакторинг, за които да говорим, така че получавате цялата болка на статично въведен език, без нито едно от предполагаемите предимства. И времето за запазване/компилиране е високо - виждам времена от над 2 минути с честота. И, разбира се, ако имате множество грешки при компилиране при едно запазване (а вие ще го направите, тъй като няма да искате да компилирате отново всяка промяна, с тези 2 минути чакане...), ще получите само една грешка наведнъж !
Във връзка с това, изглежда сте забелязали, че документацията на Salesforce е по-скоро самопоздравителна - е, така е докрай. Никъде не се споменава дори в най-тъмните технически справки за често срещаните грешки или дори за ограниченията на даден API или функция. Всичко е „ето страхотното нещо, което можете да направите“ и нищо не се споменава, „но бихте си представили, че също ще направи ___, но ще сгрешите! Абсолютно грешите!“ Документацията наистина се чувства като маркетингов материал докрай. Програмирах в тази среда вече 18+ месеца и все още от време на време ми е трудно да намеря основни неща, като справка за API.
Salesforce не е гъвкава среда. Това не е среда за бързо разработване (поне в сравнение с всяка друга рамка за уеб програмиране). Не е добра среда за изграждане на нещо различно от приложения за играчки като тези, които показват в своите уроци. Просто кажи не.
person
Ben
schedule
21.12.2009