ขณะนี้เรากำลังพิจารณาการใช้แพลตฟอร์มForce.comเป็นแพลตฟอร์มการพัฒนาของเราพนักงานขายและเว็บไซต์ force.com เต็มไปด้วยเหตุผลว่าทำไมจึงเป็นแพลตฟอร์มที่ดีที่สุดในโลก สิ่งที่ฉันกำลังมองหาคือข้อเสียที่แท้จริงในการใช้แพลตฟอร์มดังกล่าว
ขณะนี้เรากำลังพิจารณาการใช้แพลตฟอร์มForce.comเป็นแพลตฟอร์มการพัฒนาของเราพนักงานขายและเว็บไซต์ force.com เต็มไปด้วยเหตุผลว่าทำไมจึงเป็นแพลตฟอร์มที่ดีที่สุดในโลก สิ่งที่ฉันกำลังมองหาคือข้อเสียที่แท้จริงในการใช้แพลตฟอร์มดังกล่าว
คำตอบ:
นี่คือ 10 ข้อที่จะช่วยคุณเริ่มต้น
การปฏิเสธความรับผิดชอบ / การเปิดเผยข้อมูล: มีประโยชน์มากมายสำหรับแพลตฟอร์มที่โฮสต์เช่น force.com Force.com ปรับปรุงแพลตฟอร์มอย่างสม่ำเสมอ มีหลายสิ่งหลายอย่างเกี่ยวกับเรื่องนี้ที่ฉันชอบ ฉันสร้างรายได้จาก Force.com
ฉันเห็นว่าคุณได้รับคำตอบแล้ว แต่ฉันอยากจะย้ำอีกครั้งว่าต้องเสียเวลาไปเท่าไหร่ในการหลีกเลี่ยงข้อ จำกัด ต่างๆบนแพลตฟอร์ม เท่าที่ฉันชอบแพลตฟอร์มในบางระดับฉันขอแนะนำอย่างยิ่งเป็นอย่างยิ่งและเป็นอย่างมากในฐานะแพลตฟอร์มการพัฒนาแอปพลิเคชันทั่วไป มันยอดเยี่ยมในฐานะแอปพลิเคชัน CRM ที่กำหนดค่าได้และขยายได้อย่างยอดเยี่ยมหากนั่นคือสิ่งที่คุณต้องการ ในขณะที่การตลาดของพวกเขายอดเยี่ยมในการผลักดันแนวคิดของ Force.com ในฐานะแพลตฟอร์มการพัฒนาทั่วไป แต่ก็ยังไม่ปิดจากระยะไกล
ประสิทธิภาพของการมีแพลตฟอร์มที่เสถียรและการหลีกเลี่ยงปัญหาด้านประสิทธิภาพและความเสถียรที่ยิ่งใหญ่นั้นเสียไปอย่างง่ายดายในการพยายามเขียนโค้ดให้เกินขีด จำกัด ที่ผู้คนอ้างถึง มีข้อ จำกัด มากมายสำหรับแพลตฟอร์มมันกลายเป็นเรื่องที่น่ารังเกียจอย่างยิ่ง ขีด จำกัด เหล่านี้ไม่ใช่ขีด จำกัด ระดับไฮเอนด์ที่คุณจะได้รับเมื่อคุณมีผู้ใช้จำนวนมากคุณจะถึงขีด จำกัด ในทันที
แม้ว่าโดยทั่วไปจะมีเทคนิคในการหลีกเลี่ยงพวกเขา แต่ก็ยากที่จะหากลยุทธ์ในการหลีกเลี่ยงพวกเขาในขณะที่คุณพยายามพัฒนาตรรกะทางธุรกิจของแอปพลิเคชันจริงของคุณด้วย
เพื่อให้คุณเข้าใจง่าย ๆ ว่านักพัฒนาซอฟต์แวร์ไม่เป็นมิตรกับสภาพแวดล้อมอย่างไรให้ใช้ "สภาพแวดล้อมที่ไม่มีการแก้ไขจุดบกพร่อง" ที่อ้างถึงข้างต้น มันแย่ไปกว่านั้น คุณสามารถดูคำขอล่าสุดไปยังเซิร์ฟเวอร์ได้สูงสุด 20 รายการในบันทึกการแก้ไขข้อบกพร่อง ดังนั้นในขณะที่คุณกำลังพัฒนาในแอปพลิเคชันคุณจะต้องสร้างคำขอดีบัก "ใหม่" เลือกชื่อของคุณกด "บันทึก" เปลี่ยนกลับไปที่แอปของคุณรีเฟรชหน้าคลิกกลับไปที่แท็บแก้ไขข้อบกพร่องของคุณพยายามค้นหา คำขอที่จะเก็บบันทึกการแก้ไขข้อบกพร่องของคุณให้กด "ค้นหา" เพื่อค้นหาข้อความที่คุณต้องการ เหมือนกับการคลิกสิบครั้งเพื่อดูผลลัพธ์การแก้ไขข้อบกพร่อง แม้ว่าจะดูเป็นเรื่องเล็กน้อย แต่ก็เป็นเพียงตัวอย่างของการเอาใจใส่และการพิจารณาเพียงเล็กน้อยต่อประสบการณ์ของผู้พัฒนา
ทุกอย่างเกี่ยวกับแพลตฟอร์มการพัฒนาเป็นสิ่งที่ต้องพิจารณาในภายหลัง มันน่าทึ่งสำหรับสิ่งที่เป็นอยู่ แต่ PITA ทั้งหมดเป็นส่วนใหญ่ หากคุณไม่ทราบแน่ชัดว่ากำลังทำอะไรอยู่ (เช่นเดียวกับที่คุณได้รับการรับรองและมีความเข้าใจอย่างใกล้ชิดเกี่ยวกับ Apex) จะทำให้คุณใช้เวลาได้มากกว่า 10-20 เท่าในสภาพแวดล้อมอื่น สิ่งที่ดูเหมือนว่ามันจะเรียบง่ายอย่างน่าขันหากคุณสามารถประสบความสำเร็จได้เลย
การ จำกัด ผู้ว่าราชการจังหวัดนั้นแย่มาก คุณมีขีด จำกัด ต่างๆรวมกัน (แบบสอบถามฐานข้อมูลแถวที่ส่งคืน "คำสั่งสคริปต์" การโทรในอนาคตข้อความเสริม ฯลฯ ) และคุณต้องรู้ว่าคุณกำลังทำอะไรอยู่เพื่อหลีกเลี่ยงสิ่งเหล่านี้ ตัวอย่างเช่นหากคุณมีฟิลด์ "สูตร" ค่าสะสมที่คำนวณบนออบเจ็กต์และคุณมีทริกเกอร์บนออบเจ็กต์ลูกก็จะดำเนินการทริกเกอร์ออบเจ็กต์หลักและนับสิ่งเหล่านั้นกับขีด จำกัด สิ่งต่างๆเช่นนั้นจะไม่ชัดเจนจนกว่าคุณจะผ่านกระบวนการที่เจ็บปวดจากการพยายามและล้มเหลว
คุณจะพยายามทำสิ่งหนึ่งเพื่อหลีกเลี่ยงขีด จำกัด หนึ่งและเอาชนะอีกอย่างในเกม "ตีขีด จำกัด " ที่ไม่มีวันสิ้นสุด ในขั้นตอนนี้คุณจะต้องออกแบบแอปและวิธีการทั้งหมดของคุณใหม่อย่างมากรวมทั้งเขียนโค้ดทดสอบใหม่ทั้งหมด คุณต้องมีความครอบคลุมของรหัสทดสอบ 75% เพื่อปรับใช้ในการผลิตซึ่งจริงๆแล้วเป็นสิ่งที่ดีมาก แต่เมื่อรวมกับข้อ จำกัด อื่น ๆ ทั้งหมดแล้วมันเป็นภาระมาก คุณจะได้รับขีด จำกัด ในการเขียนรหัสทดสอบของคุณซึ่งจะไม่เกิดขึ้นในสถานการณ์ผู้ใช้ปกติ แต่จะป้องกันไม่ให้คุณบรรลุความครอบคลุม
นั่นไม่ต้องพูดถึงประเด็นอื่น ๆ ทั้งหมด บรรจุภัณฑ์ไม่ใช่สิ่งที่คุณคาดหวัง คุณไม่สามารถจัดแพ็กเกจแอปของคุณและส่งมอบให้กับผู้ใช้โดยไม่มีการแทรกแซงและกำหนดค่าของผู้ใช้ที่สำคัญในส่วนของผู้ดูแลระบบขององค์กร AppExchange เป็นเรื่องตลกโดยสิ้นเชิงและพวกเขาได้เริ่มชาร์จ 5K เพื่อให้แอปของคุณแสดง การนำเข้าด้วยตัวโหลดข้อมูลนั้นไม่ดีโดยเฉพาะอย่างยิ่งหากคุณมีทริกเกอร์ใด ๆ คุณไม่สามารถส่งออกข้อมูลทั้งหมดของคุณในขั้นตอนเดียวที่มีความสัมพันธ์ของคุณในลักษณะที่สามารถนำเข้าอีกครั้งไปยังองค์กรอื่นได้อย่างง่ายดายในขั้นตอนเดียว (เช่น dev org) คุณสามารถรีเฟรชแซนด์บ็อกซ์ได้เดือนละครั้งจากการใช้งานจริงไม่มีข้อยกเว้นและคุณไม่สามารถรวมข้อมูลของคุณในการรีเฟรชตามค่าเริ่มต้นเว้นแต่คุณจะโทรหาผู้บริหารบัญชีของคุณเพื่อปลดล็อกคุณลักษณะนั้น คุณสามารถ' t ลบข้อมูลจำนวนมากในวัตถุที่กำหนดเอง คุณไม่สามารถเปลี่ยนชื่อแพ็กเกจของคุณ บางสิ่งอาจเกิดขึ้นมากมายวันที่จะเสร็จสมบูรณ์หลังจากที่คุณร้องขอเช่นการสำรองข้อมูลก่อนที่คุณต้องการทำให้แอปใช้งานได้โดยไม่มีรายงานความคืบหน้าระหว่างทางและไม่ทราบว่าการส่งออกเกิดขึ้นเมื่อใด เนื่องจากมีปัญหาความซิงโครไนซ์ของข้อมูลหากมีความสัมพันธ์ระหว่างข้อมูลจึงมีปัญหาด้านความสมบูรณ์ของข้อมูลที่ร้ายแรงซึ่งไม่มีสิ่งที่เรียกว่า "ธุรกรรม" ที่สามารถส่งออกวัตถุจำนวนมากได้ในขั้นตอนเดียว อาจมีเครื่องมือเชิงพาณิชย์บางอย่างเพื่ออำนวยความสะดวกในบางส่วน แต่สิ่งเหล่านี้ไม่สามารถเข้าถึงได้สำหรับนักพัฒนาทั่วไปที่อาจไม่มีงบประมาณมาก
ทุกอย่างที่คนอื่นพูดมานี้เป็นความจริง บางครั้งอาจใช้เวลาตั้งแต่ห้าวินาทีถึงหนึ่งนาทีในการบันทึกไฟล์
ฉันไม่ได้ตั้งใจที่จะมองโลกในแง่ลบเพราะแพลตฟอร์มนั้นเจ๋งมากในบางวิธีและพวกเขากำลังพยายามทำสิ่งต่างๆในสภาพแวดล้อมที่มีผู้เช่าหลายรายที่ไม่มีใครทำ เป็นสภาพแวดล้อมที่แปลกใหม่และทรงพลังในบางระดับ (จริงๆแล้วฉันชอบ VisualForce มาก) แต่ให้เวลาอีกปีหรือสองปี พวกเขากำลังร่วมมือกับ VMware ซึ่งอาจจะนำไปสู่การทำให้นักพัฒนามีส่วนช่วยในการเล่นมากกว่าที่จะเป็นห้องขังในการทำงาน
นี่คือบางสิ่งที่ฉันสามารถให้คุณได้หลังจากใช้เวลาพอสมควรในการพัฒนาแพลตฟอร์มในช่วงสองสัปดาห์ที่ผ่านมา:
ไม่มี RESTful API พวกเขามี API ที่ใช้สบู่ที่คุณสามารถโทรได้ แต่ไม่มีวิธีใดที่จะโทรออกอย่างสงบ
ไม่มีวิธีง่ายๆในการนำ SObjects และแปลงเป็นออบเจ็กต์ JSON
หน้าบังคับภาพใช้ได้จนกว่าคุณจะต้องการปรับแต่งและจากนั้นก็เป็นโลกแห่งความเจ็บปวด
เพจบังคับวิชวลต้องถูกผูกไว้กับ SObjects มิฉะนั้นจะไม่มีทางรับฟิลด์อินพุตมาตรฐานเช่น datepicker หรือเลือกรายการที่จะทำงาน
ปลั๊กอิน eclipse ใช้ได้ถ้าคุณต้องการทำงานด้วยตัวเอง แต่ถ้าคุณต้องการทำงานเป็นทีมขนาดใหญ่ด้วยปลั๊กอิน eclipse ก็อย่าลืม ไม่จัดการการซิงโครไนซ์ไปยังและจากเซิร์ฟเวอร์ขัดข้องและไม่เป็นประโยชน์เลย
ไม่มีการแก้ปัญหา! หากคุณต้องการดีบักมันจะถูกดีบักโดยคำสั่ง system.debug อย่างแท้จริง นี่อาจเป็นปัญหาใหญ่ที่สุดที่ฉันพบ
โมเดล "MVC" ของพวกเขาไม่ใช่ MVC จริงๆ ใกล้เคียงกับ ASP.NET Webforms มากขึ้น มุมมองของคุณไม่เพียงควบคู่ไปกับตัวแบบเท่านั้น แต่ยังรวมถึงตัวควบคุมด้วย
การจัดเก็บเอกสารจำนวนมากไม่สามารถทำได้ เราจำเป็นต้องจัดเก็บเอกสารกว่า 100GB และเราถูกอ้างถึงตัวเลขที่ไร้สาระ เราได้ตัดสินใจใช้พื้นที่จัดเก็บเอกสารของเราบนโครงสร้างพื้นฐานของ amazons S3
แม้ว่าภาษาจะใช้ Java แต่ก็ไม่ใช่ Java คุณไม่สามารถนำเข้าแพ็กเกจหรือไลบรารีภายนอกใด ๆ นอกจากนี้ไลบรารีฐานที่พร้อมใช้งานยังมีข้อ จำกัด อย่างมากดังนั้นเราจึงพบว่าตัวเองใช้งานสิ่งต่าง ๆ มากมายจากภายนอกและเปิดเผยบิตเหล่านั้นเป็นบริการที่เรียกโดย force.com
คุณสามารถเรียกใช้ SOAP ภายนอกหรือบริการที่ใช้ REST ได้ แต่เนื้อหาของข้อความถูก จำกัด ไว้ที่ 100kb ดังนั้นจึงมีข้อ จำกัด ในสิ่งที่คุณสามารถเรียกได้
ด้วยความสัตย์จริงในขณะที่มีประโยชน์ที่เป็นไปได้ในการพัฒนาบางอย่างเช่นแพลตฟอร์ม force.com สำหรับฉันคุณไม่สามารถใช้แพลตฟอร์ม force.com สำหรับแอประดับองค์กรที่แท้จริงได้ อย่างดีที่สุดคุณสามารถเขียนแอปพลิเคชั่นสไตล์ crud ขั้นพื้นฐานได้ แต่เมื่อคุณย้ายไปสู่สิ่งที่ซับซ้อนจากระยะไกลฉันจะหลีกเลี่ยงมันเช่นโรคระบาด
ว้าว - มีหลายอย่างที่ฉันไม่รู้ด้วยซ้ำว่ามีข้อ จำกัด - หลังจากทำงานบนแพลตฟอร์มได้ไม่กี่ปี
แต่เพื่อเพิ่มสิ่งอื่น ๆ ...
เหตุผลที่คุณไม่มีดีบักเกอร์ทีละบรรทัดนั้นเป็นเพราะมันเป็นแพลตฟอร์มที่มีผู้เช่าหลายราย อย่างน้อยนั่นคือสิ่งที่ SFDC กล่าว - ดูเหมือนว่าในยุคของการเขียนโปรแกรมที่มีเธรดที่สมบูรณ์นี้ไม่ใช่ข้ออ้างมากนัก แต่นั่นเป็นเหตุผล หากคุณต้องเขียนโค้ดคุณต้องมี "System.debug (String)" เป็นดีบักเกอร์ - ฉันจำได้ว่ามีเครื่องมือดีบักเซิร์ฟเวอร์ที่ซับซ้อนกว่าใน Java 1.2 เมื่อ 12 ปีก่อน
อีกสิ่งหนึ่งที่ฉันเกลียดมากเกี่ยวกับระบบคือการควบคุมเวอร์ชัน Spring framework ไม่ได้ใช้สำหรับสิ่งที่ Spring มักใช้ - เป็นเครื่องมือกำหนดค่าใน SFDC มากกว่าการควบคุมเวอร์ชัน SFDC ให้การควบคุมเวอร์ชัน ZERO
คุณสามารถพบว่าตัวเองติดอยู่เป็นเวลาหลายวันในการทำบางสิ่งที่ดูเหมือนจะง่ายอย่างน่าขันเช่นการตั้งเวลารายงาน SFDC เพื่อส่งออกเป็นไฟล์ CSV และส่งอีเมลไปยังรายชื่อผู้รับ ... วิธีที่ง่ายที่สุดในการทำเช่นนั้นคือ สร้างออบเจ็กต์แบบกำหนดเองด้วยฟิลด์แบบกำหนดเองด้วยกฎเวิร์กโฟลว์และเทมเพลตอีเมล Visualforce ... จากนั้นสำหรับโค้ดคุณต้องเขียนคอมโพเนนต์ Visualforce ที่สตรีมข้อมูลรายงานไปยังเทมเพลตอีเมล Visualforce เป็นไฟล์แนบและคุณเขียน APEX แบบไม่ระบุชื่อ การอัปเดตฟิลด์กำหนดเวลาโค้ดของออบเจ็กต์ที่กำหนดเอง ... สำหรับนักพัฒนา SFDC นี่เป็นงานประจำวัน ... พยายามรวบรวมเทคโนโลยีที่แตกต่างกันประมาณห้าอย่างเข้าด้วยกันเพื่อทำงานที่ดูเหมือนง่ายมาก .... และสิ่งนี้อาจทำให้เกิดอาการปวดหัวในการจัดการ และความตึงเครียดด้วย - โดยทั่วไปแล้วคุณจะพบสิ่งนี้หลังจากได้รับคำแนะนำให้ทำสิ่งที่ไม่ไม่ทำงานในชุมชนผู้ใช้ (เหมือนที่ใครบางคนพูดไปแล้ว) จากนั้นลองทำหลาย ๆ อย่างหลังจากที่คุณพัฒนาแล้วคุณจะพบว่าพวกเขาไม่ได้ผลด้วยเหตุผลที่แปลกประหลาดบางอย่างเช่น "คุณไม่สามารถกำหนดเวลา หน้า VisualForce "หรือ" คุณไม่สามารถเรียก getContent จากบริบทที่กำหนดตารางเวลาได้ "หรือเหตุผลลึกลับอื่น ๆ
มี Gotcha ตัวน้อยที่น่าขบขันมากมายบนแพลตฟอร์ม SFDC ที่เมื่อคุณรู้ว่าทำไมพวกเขาถึงอยู่ที่นั่นมันก็สมเหตุสมผล ... แต่ก็ยังมีข้อ จำกัด ที่ไม่ดีมากที่ทำให้คุณไม่สามารถทำในสิ่งที่คุณต้องทำ นี่คือบางส่วนของฉัน
คุณไม่สามารถรับข้อมูลเจ้าของเรกคอร์ดแบบ "นอกกรอบ" ในเรกคอร์ดประเภทใดก็ได้ - คุณต้องเขียนทริกเกอร์ที่เชื่อมโยงเจ้าของที่สร้างเรกคอร์ดกับเรกคอร์ดที่คุณกำลังแทรก ทำไม? คำตอบสั้น ๆ เพราะเจ้าของอาจเป็นได้ทั้ง "บุคคล" หรือ "คิว" และทั้งสองเป็นเอนทิตีที่แตกต่างกันอย่างมาก ... เข้าท่า แต่สามารถพลิกโครงการกลับหัวได้อย่างแท้จริง
รูปแบบการรักษาความปลอดภัยที่ทำให้บ้าคลั่ง ตัวอย่าง: สิทธิ์ "จัดการรายงานสาธารณะ" แตกต่างจาก "สร้างและปรับแต่งรายงาน" อย่างมากและโดยพื้นฐานแล้วจะมีผลกับทุกอย่างบนแพลตฟอร์ม ... โดยเฉพาะโฟลเดอร์ทุกประเภท
ดังที่ได้กล่าวไปแล้วการสนับสนุนนั้นไม่มีอยู่จริง หากคุณเป็นคนที่พึ่งพาตัวเองได้มากหรือมีทรัพยากร SFDC จำนวนมากหรือมีเวลามากและ / หรือผู้จัดการที่ให้อภัยมากหรือรับผิดชอบระบบ SFDC ที่ทำงานได้ดีคุณก็ทำได้ดีทีเดียว รูปร่าง. หากคุณไม่ได้อยู่ในตำแหน่งใด ๆ เหล่านี้คุณจะพบว่าตัวเองมีปัญหาอย่างหนัก
SFDC เป็นแนวคิดทางธุรกิจที่เย้ายวนใจมาก ... ไม่มีรอยเท้าของอุปกรณ์ความปลอดภัยที่ดีงามราคาคงที่ไม่มีโครงสร้างพื้นฐานและคุณจะได้รับ CRM บนเว็บที่มีแบตช์และการประมวลผลตามกำหนดเวลา ... แต่อย่างที่ผู้โพสต์คนอื่น ๆ กล่าวไว้มันเป็นเช่นนั้นจริงๆ ค่อนข้างเป็นเรื่องยากในการเรียนรู้การพัฒนาและถ้าคุณไปปรึกษาฉันคิดว่าราคาต่ำสุดที่ฉันเคยเห็นคือ $ 200 / ชั่วโมง
Salesforce มีแนวโน้มที่จะผสานรวมกับสิ่งอื่น ๆ เป็นเวลาหลายปีหลังจากที่เทคโนโลยีบางอย่างกลายเป็นสิ่งที่พบเห็นได้ทั่วไป - JSON และ jquery เป็นสิ่งที่ต้องคำนึงถึง ... และหากคุณมีโครงสร้างพื้นฐานทั่วไปอื่น ๆ ที่คุณต้องการรวมเข้าด้วยกันเช่น JIRA คาดว่าจะต้องจ่ายเพิ่มมาก และพวกมันก็เป็นรถบักกี้
และในฐานะหนึ่งในผู้โพสต์อื่น ๆ ที่กล่าวถึงคุณกำลังต่อสู้กับขีด จำกัด ของผู้ว่าการรัฐที่สามารถผลักดันคุณได้อย่างต่อเนื่อง ... ไฟล์แนบต้องไม่> 5MB ระยะเวลา และบางครั้ง <3MB (ถ้าเข้ารหัส base64) คำบรรยายภาพ HTTP สิบรายการในชั้นเรียน ระยะเวลา มีข้อ จำกัด ของผู้ว่าการที่ตีพิมพ์ออกมาหลายสิบข้อและอีกมากมายที่คุณจะพบไม่ต้องสงสัยและแค่อยากจะวิ่งออกจากสำนักงานของคุณกรีดร้อง
ฉันชอบแพลตฟอร์มจริงๆ แต่เชื่อฉันสิ - อาจเป็นผู้หญิงที่โหดร้ายจริงๆก็ได้
แต่ในความเป็นธรรมกับ SFDC ฉันจะพูดอย่างนี้: ปัญหาใหญ่ที่สุดที่ฉันพบกับแพลตฟอร์มไม่ใช่ตัวแพลตฟอร์ม แต่เป็นความคาดหวังที่สูงส่งที่เกือบทุกคนที่เห็นแพลตฟอร์ม แต่ไม่ได้พัฒนาบนแพลตฟอร์มนั้นมี .... และคนเหล่านั้นมักจะอยู่ในตำแหน่งที่มีอำนาจมากในองค์กรธุรกิจ การตลาดการขายการจัดการ ฯลฯ การตัดการเชื่อมต่อครั้งใหญ่เกิดขึ้นและเกิดขึ้นอย่างรวดเร็วหรือถูกคุกคามทุกวันทั้งหมดนี้เป็นเพราะมีแพลตฟอร์มที่ยอดเยี่ยมนี้พร้อมกับ gotcha แปลก ๆ และผู้คนหลายพันคนที่ดิ้นรนทุกวันเพื่อทำความเข้าใจว่าทำไมสิ่งต่างๆจึงควรได้ผลเมื่อ พวกเขาไม่ทำและไม่ทำ
แก้ไข:
เพียงเพื่อเพิ่มความคิดเห็นของ lomaxx เกี่ยวกับ MVC; ในคำศัพท์ SFDC สิ่งนี้มีความเกี่ยวข้องอย่างใกล้ชิดกับสิ่งที่เรียกว่า "viewstate" - และอาจเป็นเรื่องที่ผิดพลาดได้โดยที่สิ่งที่อยู่ในหน้า VF ไม่ใช่สิ่งที่อยู่ในคลาสคอนโทรลเลอร์สำหรับเพจ ดังนั้นคุณต้องผ่านการหมุนแบบแปลก ๆ เพื่อซิงค์สิ่งที่อยู่บนหน้ากับสิ่งที่คอนโทรลเลอร์จะเขียนไปยัง SF เมื่อคุณคลิกปุ่ม "บันทึก" (หรือสร้างคำบรรยายภาพ HTTP หรืออะไรก็ตาม) .... ผู้ชายมันน่ารำคาญ .
ฉันคิดว่าคนอื่น ๆ ได้กล่าวถึงข้อเสียในเชิงลึกมากกว่า แต่สำหรับฉันแล้วดูเหมือนว่าจะไม่ใช้กระบวนทัศน์ MVC หรือสนับสนุนมากนักในการใช้โค้ดซ้ำเลย การทำอะไรที่นอกเหนือไปจากแอปพลิเคชันง่ายๆคือการออกกำลังกายด้วยความไม่พอใจเมื่อเทียบกับการพัฒนาแอปพลิเคชันโดยใช้ ASP.Net MVC
นอกจากนี้เครื่องมือชั้นข้อมูลและความยุ่งยากในการพยายาม refactor รหัสหรือเปลี่ยนชื่อฟิลด์ในระหว่างกระบวนการพัฒนาไม่ได้ช่วยอะไร
ฉันคิดว่าในฐานะ CMS มันค่อนข้างเจ๋ง แต่ในฐานะแพลตฟอร์มสำหรับแอปพลิเคชันที่ไม่ใช่ CMS มันไม่สมเหตุสมผลสำหรับฉัน
รูปแบบการรักษาความปลอดภัยยังมีข้อ จำกัด มาก ... แต่นี่ไม่ใช่ส่วนที่แย่ที่สุด ขณะนี้คุณไม่สามารถยืนยันได้ว่าผู้ใช้สามารถดำเนินการบางอย่างได้หรือไม่
คุณตรวจสอบได้ว่าบทบาทของพวกเขาคืออะไร แต่ไม่สามารถตรวจสอบได้ว่าบทบาทนั้นมีสิทธิ์ดำเนินการในปัจจุบันหรือไม่
ที่แย่ไปกว่านั้นคือการตอบสนองจากฝ่ายสนับสนุนด้านเทคนิคว่า "ลองดำเนินการและหากมีข้อยกเว้นให้จับ"
การพิจารณา Force.com เป็นแพลตฟอร์ม "คลาวด์" ความสามารถในการทำหน้าที่เป็นไคลเอนต์สำหรับบริการที่กำหนดโดย WSDL ภายนอกนั้นค่อนข้างท่วมท้น ดูhttp://force201.wordpress.com/2010/05/20/when-generate-from-wsdl-fails-hand-coding-web-service-calls/สำหรับสิ่งที่คุณอาจต้องทำ
ทั้งหมดข้างต้นฉันอยากรู้ว่าการเปิดตัว VMforce ทำให้โปรแกรมเมอร์ Java เขียนโค้ดสำหรับ Force.com เปลี่ยนข้อเสียข้างต้นได้อย่างไร?
http://www.zdnet.com/blog/saas/vmforcecom-redefines-the-paas-landscape/1071
ฉันเดาว่าพวกเขากำลังพยายามแก้ไขปัญหาเหล่านี้ ที่ Dreamforce พวกเขากล่าวว่าพวกเขากำลังพยายามลดขีด จำกัด Governor ให้เหลือเพียง 4 เท่านั้นฉันไม่แน่ใจว่ารายละเอียดเป็นอย่างไร พวกเขามี REST API สำหรับทดลองใช้ก่อนเปิดตัวและซื้อ heroku ซึ่งเป็นการพัฒนาทับทิมในระบบคลาวด์ พวกเขาแยกฐานข้อมูลออกด้วย database.com เพื่อให้คุณสามารถพัฒนาเว็บทั้งหมดและเรียกฐานข้อมูลโดยใช้ database.com
ฉันเดาว่าพวกเขาพยายามทำให้ไม่เชื่อเรื่องพระเจ้าให้มากที่สุด แต่ในตอนนี้สิ่งเหล่านี้เป็นการประกาศและการทดลองใช้ก่อนเปิดตัวดังนั้นเช่นเดียวกับงบ Safe Harbor ของพวกเขาไม่ได้ซื้อในสิ่งที่พวกเขาพูด แต่เฉพาะในสิ่งที่พวกเขามีอยู่ในปัจจุบัน