سؤال

نحن نتطلع حاليا إلى استخدام Force.com. منصة نظرا لأن منصة التنمية لدينا والرجال المبيعات وموقع Force.com مليئة بالأسباب التي تجعلها أفضل منصة في العالم. ما أبحث عنه، رغم ذلك، هو بعض العيوب الحقيقية لاستخدام مثل هذه المنصة.

هل كانت مفيدة؟

المحلول

هنا 10 لتبدأ.

  1. أبيكس هي لغة ملكية. بخلاف البرنامج المساعد Eclipse Force.com، لا يوجد هناك القليل من الأدوات المتاحة مثل Refactoring أو تحليل الكود، إلخ.
  2. تم تصميم Apex على غرار Java 5، التي تعتبر متأخرة عن اللغات الأخرى، وبدون أدوات (انظر # 1)، يمكن أن تكون مرهقة للغاية.
  3. لا يزال النشر دليلا إلى حد ما مع الكثير من Gotchas والخطوات اليدوية. يتحسن هذا الوضع ببطء مع مرور الوقت، ولكن عليك أن تكون بخيبة أمل إذا كنت تعتاد على إجراء عمليات نشر آلية.
  4. Apex تفتقر إلى حزم / مساحات الأسماء. جميع الفصول الدراسية، واجهاتك، إلخ. تعيش في مجلد واحد على الخادم. هذا يجعل التعليمات البرمجية أقل تنظيما وأسماء الطبقة / الواجهة طويلة بالضرورة لتجنب اشتباكات الاسم وتوفير السياق. هذه هي واحدة من أكبر شكاوى بلدي، ولن أختار بحرية البناء على الفور على هذا السبب وحده.
  5. المكون الإضافي "Force.com IDE"، ويعرف أيضا باسم برنامج Eclips.com، هو بطيء بشكل لا يصدق. حفظ أي ملف، سواء كان ملف فئة، ملف نصي، وما إلى ذلك، عادة ما يستغرق 5 ثوان على الأقل وأحيانا يصل إلى 30 ثانية اعتمادا على عدد الكائنات وأنواع البيانات وملفات الفئة، وما إلى ذلك في ORG الخاص بك. يوفر الإحفظ أيضا إجراءات حظر، لا يتطلب عدم الترجمة فقط، ولكن مزامنة كاملة من مشروعك المحلي مع الخادم. أوامر من حجم أبطأ من جافا أو .NET.
  6. مجتمع المطور عبر الإنترنت لا يبدو صحي للغاية. لقد لاحظت الكثير من مشاركات المنتدى، دون إجابة أو غير مذكورة. أعتقد أن هذا قد يكون لديه ما يجب القيام به مع استخدامات SPALESFORCE.COM Software من المنتدى، والذي يبدو أنه يمتص بشدة.
  7. يتم الوصول إلى البيانات DSL في Apex إلى الكثير مما هو مطلوب. انها ليست تنافسية عن بعد مع أمثال (ن) السبات، JPA، إلخ.
  8. تطوير تطبيق على Apex / VisualForce هو تمرين في حاكم المحافظ الهندسة. ينفق نصف وقت مبرمج بسهولة في محاولة تحسين لتجنب حدود الحاكم العديدة وغيرها من GOTCHAS مثل حدود حالة VisualForce Views. يمكن القول أنه إذا كتبت كود فعال للبدء مع أنك لن تواجه هذه المشكلة، فما صحيح إلى حد ما. ومع ذلك، هناك عدة مرات لديك أسباب صالحة لجعل أكثر من استفسارات X في جلسة، أو حلقة من خلال أكثر من X سجلات، إلخ.
  9. دورة Save->> Compile-> تشغيل بطيئة للغاية، ESP. عندما ينطوي على الزفر وتحميل حزمة الموارد الثابتة بأكملها فقط للقيام بشيء مثل اختبار تغيير CSS أو جافا سكريبت.
  10. بشكل عام، ألم منصة شابة، منصة النفاثة دون فوائد كونها مفتوحة المصدر. ليس لديك طريقة للتحقق من صحة و / أو إصلاح الأخطاء في النظام الأساسي. يقولون لنشرها لفيدهم. نعم، حظا سعيدا في ذلك.

إخلاء المسئولية / الإفصاحات: هناك الكثير من الفوائد لمنصة استضافة مثل Force.com. Force.com تعزز بانتظام النظام الأساسي. هناك الكثير من الأشياء التي أحبها. أقوم ببناء المال على

نصائح أخرى

أرى أنك حصلت على بعض الإجابات، لكن أود أن أؤكد من جديد مقدار الوقت الذي يضيع فيه التجول في حدود المحافظ المختلفة على المنصة. بقدر ما أحب المنصة على مستويات معينة، أود بشدة للغاية، إلى حد كبير، توصي بشدة ضدها كمنصة تطوير تطبيقات عامة. إنه لأمر رائع أن يكون تطبيق CRM القابل للتكوين والتوسع للغاية إذا كان هذا ما تريد. في حين أن التسويق الخاص بهم استثنائي في دفع فكرة Force.com كمنصة للتنمية العامة، فإنه ليس قريبا عن بعد بعد.

يتم إهدار كفاءة وجود منصة مستقرة وتجنب مشاكل الأداء والاستقرار الكبير في محاولة للحصول على الكود حول الحدود التي يشير إليها الناس. هناك العديد من الحدود إلى المنصة، يصبح جنديا تماما. هذه الحدود ليست قيودا عالية النهاية التي ستضغط عليها بمجرد حصولك على الكثير من المستخدمين، ستضربها على الفور تقريبا.

في حين أن هناك عادة تقنيات للدخول من حولهم، من الصعب جدا معرفة استراتيجيات لتجنبها أثناء تحاول أيضا تطوير منطق الأعمال للتطبيق الفعلي الخاص بك.

لإعطائك شعورا بسيطا عن كيفية تطوير البيئة غير المتعة للبيئة، تأخذ "عدم وجود بيئة تصحيح الأخطاء" المشار إليها أعلاه. انها أسوأ من ذلك. يمكنك فقط رؤية ما يصل إلى 20 من أحدث طلبات إلى الخادم في سجلات التصحيح. لذلك، كما تتطور داخل التطبيق، عليك إنشاء طلب تصحيح "جديد"، وحدد اسمك، والضغط على "حفظ"، فقم بالتبديل إلى التطبيق الخاص بك، قم بتحديث الصفحة، انقر فوق "العودة إلى علامة التبويب تصحيح الأخطاء"، حاول العثور عليها الطلب الذي سيوفر سجل التصحيح الخاص بك، اضغط على "البحث" للبحث عن النص الذي تبحث عنه. انها مثل عشر نقرات للنظر في إخراج التصحيح. في حين أنه قد يبدو تافهة، إلا أنه مثال على مدى إعطاء القليل من الرعاية والنظر في تجربة المطور.

كل شيء عن منصة التطوير هو مبدع من الرائع لما هو عليه، ولكن بيتا الكلي بالنسبة للجزء الأكبر. إذا كنت لا تعرف بالضبط ما تفعله (كما هو الحال في كونك معتمدا، فهو فهم حميم للغاية للأبسيكس)، فسوف يأخذك بسهولة إلى أعلى من 10-20x مقدار الوقت الذي ستفعله في بيئة أخرى شيء يبدو أنه سيكون بسيطا يبعث على السخرية، إذا كنت تستطيع أن تنجح على الإطلاق.

حدود الحاكم هي بالفعل سيئة. لديك مزيج من الحدود المختلفة (استعلامات قاعدة البيانات، عاد الصفوف، "بيانات البرنامج النصي"، والمكالمات المستقبلية، والطلبات، وما إلى ذلك) وعليك معرفة ذلك بالضبط ما تفعله لتجنب هذه. على سبيل المثال، إذا كان لديك حقل "صيغة" محسوبة "في كائن ولديك مشغل على كائن طفيف، فسيتم تنفيذ كائن الأصل المشغلات وعدد الأشخاص الذين يعانون من حدودك. أشياء مثل هذه ليست واضحة حتى تمر بعملية مؤلمة للمحاولة وفشلها.

ستجرب شيئا واحدا لتجنب حد واحد، وضرب آخر في لعبة لا تنتهي أبدا من "Whack A الحد". في هذه العملية، يجب عليك إعادة المهندس المعماري بشكل كبير التطبيق والنهج بالكامل، بالإضافة إلى إعادة كتابة جميع رمز الاختبار الخاص بك. أنت يجب لديك 75٪ من تغطية رمز الاختبار للنشر في الإنتاج، وهو أمر جيد بالفعل، ولكن مجتمعة مع جميع الحدود الأخرى، إنه مرهق للغاية. سوف تضغط في الواقع على حدود الحاكم كتابة رمز الاختبار الخاص بك والتي لن تأتي في سيناريوهات المستخدم العادية، لكن ذلك سيمنعك من تحقيق التغطية.

هذا لا يذكر مجموعة كاملة من القضايا الأخرى. التعبئة والتغليف ليست ما تتوقعه. لا يمكنك حزمة تطبيقك وتسليمها للمستخدمين دون تدخل مستخدم كبير وتكوينه من جانب مسؤول ORG. يعد AppExchange مزحة إجمالية، وقد بدأت حتى الشحن 5K فقط للحصول على تطبيقك المدرج. تمتص المستورد مع محمل البيانات، خاصة إذا كان لديك أي مشغلات. لا يمكنك تصدير جميع بياناتك في خطوة واحدة تتضمن علاقاتك بطريقة يمكن إعادة استيرادها بسهولة في Org آخر في خطوة واحدة (على سبيل المثال Dev Org). يمكنك فقط تحديث صندوق الرمل مرة واحدة في الشهر من الإنتاج، ولا توجد استثناءات، ولا يمكنك تضمين بياناتك في تحديث افتراضيا إلا إذا قمت باستدعاء حسابك التنفيذي للحصول على هذه الميزة مقفلة. لا يمكنك حذف البيانات في كائنات مخصصة. لا يمكنك تغيير أسماء الحزمة الخاصة بك. بعض الأشياء يمكن أن تأخذ العديد من أيام لإكمال بعد أن طلبت منهم، مثل النسخ الاحتياطي للبيانات قبل أن ترغب في نشر تطبيق، مع عدم وجود تقرير مرحلي على طول الطريق وليس هناك شعور كبير عند حدوث الصادرات بالضبط. بالنظر إلى وجود مشكلات التزامن للبيانات إذا كانت هناك علاقات بين البيانات، فهناك مشكلات خطيرة لتكامل البيانات في أنه لا يوجد شيء مثل "معاملة" يمكنها تصدير العديد من الكائنات في خطوة واحدة. ربما هناك بعض الأدوات التجارية لتسهيل بعض هذا، لكن هذه ليست في متناول المطورين العاديين الذين قد لا يكون لديهم ميزانية ضخمة.

كل شيء آخر قال الآخرون هنا صحيح. يمكن أن يستغرق أي مكان من خمس ثوان إلى دقيقة في بعض الأحيان لحفظ ملف.

لا أقصد أن أكون سلبيا لأن المنصة رائعة للغاية في بعض النواحي، وهم يحاولون القيام بأشياء في بيئة متعددة المستأجرين لا أحد يفعله. إنها بيئة مبتكرة للغاية وقوية على بعض المستويات (أنا فعلا مثل VisualForce كثيرا)، لكن أعطها عام أو عامين آخرين. إنهم يشاركون مع VMware، ربما سيؤدي ذلك إلى إعطاء المطورين أكثر قليلا من Playpen بدلا من خلية السجن للعمل فيها.

فيما يلي بعض الأشياء التي يمكنني تقديمها لك بعد قضاء بعض الوقت في تطوير الوقت على المنصة في الأسبوعين الأسبوعين الأخيرين أو نحو ذلك:

  1. لا يوجد واجهة برمجة تطبيقات مريحة. لديهم API مقرها الصابون التي يمكنك الاتصال بها، ولكن لا توجد وسيلة لإجراء مكالمات مريحة حقيقية

  2. لا توجد طريقة بسيطة لاتخاذ sobjects وتحويلها إلى كائنات JSON.

  3. صفحات القوة المرئية على ما يرام حتى تريد تخصيصها، ثم عالم كامل من الألم.

  4. يجب أن تكون صفحات القوة البصرية يجب أن تكون مرتبطة بالتنوع وإلا لا توجد طريقة للحصول على حقول الإدخال القياسية مثل DatePicker أو حدد قائمة بالعمل.

  5. البرنامج المساعد Eclipse على ما يرام إذا كنت ترغب في العمل بنفسك، ولكن إذا كنت ترغب في العمل في فريق كبير مع انسداد البرنامج المساعد Eclipse. لا يتعامل مع المزامنة من وإلى الخادم، تعطل ذلك وليس مفيدا حقا على الإطلاق.

  6. لا يوجد مصحح! إذا كنت ترغب في تصحيح الأخطاء، فقد تصحيح حرفيا بواسطة بيانات System.Debug. ربما هذه هي أكبر مشكلة وجدتها

  7. نموذج "MVC" ليس حقا MVC. إنه أقرب بكثير إلى Webforms ASP.NET. وجهات نظرك مقرونة بإحكام ليس فقط النماذج ولكن وحدات التحكم كذلك.

  8. تخزين عدد كبير من المستندات غير ممكن. نحتاج إلى تخزين أكثر من 100 جيجابايت من المستندات ونقلنا عن بعض الرقم السخري. لقد قررنا تنفيذ تخزين المستندات لدينا على البنية التحتية للأمازون S3

  9. حتى اللغة هي جافا مقرها، إنها ليست جافا. لا يمكنك استيراد أي حزم أو مكتبات خارجية. أيضا، تحتوي المكتبات الأساسية المتوفرة على محدودة بشدة، لذا فقد وجدنا أنفسنا تنفذ مجموعة من الأشياء خارجيا ومن ثم تعريض هذه البتات كخدمات تسمى من قبل Force.com

  10. يمكنك استدعاء الصابون الخارجي أو الخدمات القائمة على الراحة ولكن يتم تقييد جسم الرسالة على 100 كيلو بايت، لذا فمن المقيد جدا بما يمكنك الاتصال به.

في كل الصدق، أثناء وجود فوائد محتملة لتطوير شيء مثل منصة Force.com، بالنسبة لي، لا يمكنك استخدام منصة Force.com لتطبيقات مستوى المؤسسات TRUE. في أحسن الأحوال، يمكنك كتابة بعض تطبيقات أسلوب Crud Basic Basic ولكن بمجرد الانتقال إلى أي شيء معقدة عن بعد، سأتخلفها مثل الطاعون.

نجاح باهر - هناك الكثير هنا لم أكن أعرف أن القيود - بعد العمل على المنصة لبضع سنوات.

ولكن فقط لإضافة بعض الأشياء الأخرى ...

والسبب في عدم وجود مصحح أخطاء بخط على وجه التحديد لأنه منصة متعددة المستأجرين. على الأقل هذا ما تقوله SFDC - يبدو وكأنه في عصر البرمجة الغنية للخيط، وهذا ليس هناك الكثير من العذر، ولكن هذا ما يبدو السبب. إذا كان عليك كتابة التعليمات البرمجية، فستكون لديك "System.Debug (String)" كصيحك - أتذكر وجود أدوات تصحيح الخادم الأكثر تطورا في Java 1.2 منذ حوالي 12 عاما.

شيء آخر أكره حقا النظام هو عنصر تحكم الإصدار. لا يتم استخدام إطار الربيع في ما يستخدمه الربيع عادة - إنه أكثر إيقاف تشغيل أداة التكوين في SFDC بدلا من عنصر تحكم الإصدار. توفر SFDC التحكم في النسخة الصفرية.

يمكنك أن تجد نفسك عالقا لأيام القيام بشيء سهل يبعث على السخرية، مثل، مثل، جدولة تقرير SFDC للتصدير إلى ملف CSV والبريد الإلكتروني إلى قائمة المستفيدين ... حسنا، حول أسهل طريقة للقيام بذلك قم بإنشاء كائن مخصص مع حقل مخصص، مع قاعدة سير عمل وقالب بريد إلكتروني VisualForce ... ثم من أجل الكود، تحتاج إلى كتابة مكون VisualForce الذي يقوم بتدفق بيانات التقرير إلى قالب البريد الإلكتروني المرفق كمرفق وكتابة Apex مجهول جدول التعليمات البرمجية التحديث الميداني للكائن المخصص ... لمطوري SFDC، هذه مهمة يومية تقريبا ... تحاول وضع خمس تقنيات مختلفة معا للقيام بالمهام التي تبدو بسيطة للغاية .... وهذا يمكن أن يسبب صداع الإدارة التوترات أيضا - عادة، عادة ما تجد هذا بعد الحصول على اقتراح للقيام بشيء لا يعمل في مجتمع المستخدم (مثل شخص ما قال بالفعل)، ثم حاول العديد من الأشياء التي، بعد تطويرها تجد أنها لا تعمل فقط لبعض س سبب DD-BALL - مثل "لا يمكنك جدولة صفحة VisualForce"، أو "لا يمكنك استدعاء GetContent من سياق مجدول" أو بعض السبب المغري الآخر.

هناك الكثير، العديد من Maddening Little Gotcha's على منصة SFDC، والتي بمجرد معرفة سبب وجودها هناك، فإنها منطقية ... لكنها لا تزال قيود سيئة للغاية تبقيك من القيام بما تحتاج إلى القيام به. هنا بعض من الألغام؛

  1. لا يمكنك الحصول على معلومات مالك التسجيل "خارج الصندوق" على حد كبير من أي نوع من السجل - عليك أن تكتب الزناد الذي يربط المالك على إنشاء السجل إلى السجل الذي تدرجه. لماذا ا؟ إجابة قصيرة لأن المالك يمكن أن يكون إما "شخصا" أو "قائمة انتظار"، واثنين من الكيانات المختلفة بشكل كبير ... منطقي، ولكن يمكن أن يحول مشروع رأسا على عقب حرفيا.

  2. نموذج الأمن Maddening. مثال: "إدارة التقارير العامة" إذن مختلف بشكل كبير عن "إنشاء وتخصيص التقارير" وهذا يذهب أساسا لكل شيء على المنصة ... خاصة مجلدات من أي نوع.

  3. كما ذكر، الدعم غير موجود أساسا. إذا كنت فردا كافيا للغاية، أو لديك الكثير من موارد SFDC، أو لديك الكثير من الوقت و / أو مدير متسامح للغاية، أو المسؤول عن نظام SFDC الذي يعمل بشكل جيد، فأنت جيد جدا شكل. إذا لم تكن في أي من هذه المواقف، فيمكنك أن تجد نفسك في ورطة عميقة.

SFDC هو اقتراح تجاري مغر للغاية ... لا توجد بصمة المعدات، والأمن الجيد جدا، وسعر ثابت، ولا توجد بنية تحتية، وحصلت على CRM القائمة على الويب مع معالجة الخليفة، والتعليم المقرن ... ولكن كما قال الملصقات الأخرى، إنه حقا تماما من أجل التعلم الإنمائي، وإذا ذهبت مع الاستشارات، أعتقد أن أدنى سعر رأيته كان 200 دولار / ساعة.

تميل Salesforce إلى الاندماج مع أشياء أخرى بعد سنوات من أن تصبح بعض التقنيات شائعة - JSON و JQUERY تتبادر إلى الذهن ... وإذا كان لديك بنية تحتية مشتركة أخرى ترغب في القيام بدمج مع، مثل جيرا، نتوقع دفع الكثير إضافي، ويمكن أن تكون عربات التي تجرها الدواب تماما.

وكما هو أحد الملصقات الأخرى المذكورة، فإنك تقاتل باستمرار حدود الحاكم التي يمكن أن تدفعك فقط المكسرات ... لا يمكن أن يكون المرفق> 5 ميغابايت. فترة. وأحيانا <3 ميجابايت (إذا تم تشفير base64). عشرة شرح HTTP في الفصل. فترة. هناك العشرات من حدود الحاكم المنشورة، والكثير منهم لا تكتشفون بلا شك ونريد فقط أن ينفد من يصرخ مكتبك.

أنا حقا، حقا مثل المنصة، ولكن ثق بي - يمكن أن يكون عشيقة قاسية حقا.

ولكن في الإنصاف إلى SFDC، أقول هذا: المشكلة الأكبر التي أجدها مع النظام الأساسي ليست المنصة نفسها، ولكن توقعات Gargantuan التي تقريبا أي شخص يرى النظام الأساسي، لكنه لم يطور به .... ويميل هؤلاء الناس في مواقع السلطة العظمى في منظمات الأعمال؛ التسويق والمبيعات والإدارة، إلخ. تحدث قطع قطع ضخمة ورؤساء لفة، أو تهدد لفة ديلي - كل ذلك لأن هناك هذا منصة رائعة هناك مع Gotchas وآلاف الأشخاص الذين يكافحون يوميا للحصول على رؤوسهم حول سبب قيام الأمور بالعمل انهم فقط لا ولن.

تعديل:
فقط لإضافة تعليقات Lomaxx حول MVC؛ في مصطلحات SFDC، يرتبط هذا ارتباطا وثيقا بما يعرف باسم "ViewState" - AAND يمكن أن يكون بالفعل عربات التي تجرها الدواب، في هذا ما هو على صفحة VF ليس ما هو في فئة وحدة تحكم للصفحة. لذلك، عليك أن تذهب عبر جيرثرزات غريبة لتزامن ما في الصفحة مع ما ستكتبه وحدة التحكم إلى SF عند النقر فوق الزر "حفظ" الخاص بك (أو جعل Sallout HTTP أو أيا كان) .... رجل مزعج وبعد

أعتقد أن الأشخاص الآخرين قد غطوا العيوب في أكثر عمقا ولكن بالنسبة لي، لا يبدو أنه يستخدم نموذج MVC أو دعم الكثير في طريقة إعادة استخدام التعليمات البرمجية على الإطلاق. للقيام بأي شيء خارج التطبيقات البسيطة هو تمرين بالإحباط مقارنة بتطوير تطبيق باستخدام شيء مثل ASP.NET MVC.

علاوة على ذلك، فإن الأدوات، طبقة البيانات وإحباط محاولة إعادة تسمية رمز إعادة تسمية أو إعادة تسمية الحقول أثناء عملية التطوير لا يساعد.

أعتقد أنه CMS فهو بارد للغاية ولكن كمنصة لتطبيقات غير CMS، فهو لا معنى لي.

نموذج الأمن هو أيضا مقيد للغاية ... ولكن هذا ليس هو الجزء الأسوأ. لا يمكنك حاليا تأكيد ما إذا كان لدى المستخدم القدرة على تنفيذ إجراء معين.

يمكنك التحقق لمعرفة ما هو دورهم، لكن لا يمكنك التحقق مما إذا كان هذا الدور له أذونات لأداء الإجراء الحالي.

والأسوأ من ذلك هو الرد من الدعم الفني "جرب الإجراء وإذا كان هناك استثناء، امسكه"

النظر في Force.com هي منصة "سحابة"، وقدرتها على العمل كعميل لخدمة محددة خارجية WSDL غير ساحقة. يرى http://force201.wordpress.com 2010/05/20/When-Shen-From-WSDL-Fails-Shand-Coding-Web-service-calls/ لما قد ينتهي بك الأمر إلى القيام به.

إلى كل ما سبق، أنا فضولي كيف يطلق سراح VMForce، مما يسمح برمجيات Java بكتابة التعليمات البرمجية ل Force.com، يغير العيوب أعلاه؟

http://www.zdnet.com/blog/saas/vmforcecom-redefines-the-paas-landscape/1071.

أعتقد أنهم يحاولون معالجة هذه القضايا. في DreamForce، ذكروا أنهم نحاولون نقل حدود الحاكم إلى 4. لست متأكدا من التفاصيل. لديهم راحة API للوصول المبكر، واشتروا هيروكو وهو تطور روبي في السحابة. قاموا بتقسيم قاعدة البيانات، مع Database.com حتى تتمكن من القيام بجميع تطوير الويب الخاص بك على مكالمات DB و DB باستخدام قاعدة البيانات.

أعتقد أنهم يحاولون جعله غير ملائم قدر الإمكان. لكن الحق في الوقت الحالي الآن كل هذه الإعلانات والوصول المبكر، مثلما لا تشتري بياناتهم الآمنة الميناء على ما يقولون، فقط على ما لديهم حاليا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top