มีใครใช้ Sproutcore บ้างไหม


19

มีใครใช้ Sproutcore สำหรับเว็บแอปพลิเคชันหรือไม่ ถ้าเป็นเช่นนั้นคุณช่วยเล่าประสบการณ์ของคุณให้ฉันได้หรือไม่? ขณะนี้ฉันกำลังพิจารณา แต่มีข้อกังวลเล็กน้อย ครั้งแรกเอกสารประกอบไม่ดี / ไม่สมบูรณ์และฉันกลัวว่าฉันจะใช้เวลามากมายในการค้นหาสิ่งต่าง ๆ หรือขุดผ่านซอร์สโค้ด นอกจากนี้ฉันลังเลที่จะใช้โครงการที่ค่อนข้างใหม่และอาจได้รับการเปลี่ยนแปลงที่สำคัญ

ความคิดใด ๆ จากผู้ที่พัฒนาใน Sproutcore จะได้รับการชื่นชม!

แก้ไข / PS: ใช่ผมเคยเห็นโพสต์นี้: /programming/370598/sproutcore-and-cappuccino อย่างไรก็ตามฉันสนใจคำอธิบายที่ยาวขึ้นเล็กน้อยของ Sproutcore จากคนที่ใช้มันสำหรับโครงการสำคัญ


2
ฉันไม่สามารถตอบคำถามได้ แต่ฉันสามารถบอกคุณได้ว่า Apple เองใช้ SproutCore สำหรับบริการ. Mac ของตัวเอง อย่างน้อยก็โตพอสำหรับสิ่งนั้น
Chuck

ใช่ - นั่นคือสิ่งที่ฉันสนใจ แต่ด้วยความพยายามเล็ก ๆ น้อย ๆ ของฉันเอกสารไม่ดีพอ (โดยเฉพาะอย่างยิ่งสำหรับ SC.DataSource และ SC.Store) ที่ฉันไม่แน่ใจว่ามันคุ้มค่ากับปัญหาหรือไม่

คำตอบ:


20

เราใช้ sproutcore มากกว่าปี

ครั้งแรกที่ฉันพัฒนาโดยใช้เวอร์ชัน 0.9 ซึ่งยอดเยี่ยม แต่มีปัญหาด้านประสิทธิภาพที่เกี่ยวข้องกับ KVO ชุดข้อมูลขนาดใหญ่เป็นต้น แต่เนื่องจาก SproutCore เป็น Javascript (ใกล้กับ javascript) เราจึงสามารถแก้ไขได้สำหรับแอปพลิเคชันของเรา สำหรับฉันจริง ๆ แล้ว SproutCore สอนวิธีการเขียนโค้ด javascript ให้ฉันอย่างเหมาะสม ฉันเรียนรู้ Javascript และ SproutCore ในเวลาเดียวกัน

ประมาณเดือนกรกฎาคมพวกเขาได้เปิดตัว Pre-alpha SproutCore 1.0 API มีการเปลี่ยนแปลงอย่างมีนัยสำคัญดังนั้นการแปลงแอปพลิเคชันของเราเป็นเวอร์ชันใหม่เป็นโครงการในตัวเอง และเอกสารนั้นเป็นศูนย์ในเวลานั้น

ตอนนี้ทุกอย่างเปลี่ยนไปมีเอกสารและวิกิที่ดีมาก ๆ มีการเพิ่มบทช่วยสอนและเอกสารใหม่ในแต่ละวัน

หากคุณคิดที่จะใช้ / ประเมิน SproutCore นี่เป็นเวลาที่เหมาะสม และในแต่ละวัน SproutCore ทำให้ฉันประหลาดใจด้วยความสามารถและพลังที่มีอยู่ ยังมีขอบขรุขระจำนวนมากซึ่งลดลงทุกวัน

ทรัพยากรบางอย่าง:

SproutCore Wiki

เอกสาร API

การเพิ่มล่าสุดสำหรับ API ที่เก็บข้อมูล (ซึ่งเป็นส่วนที่สำคัญมาก)


17

ฉันทำงานกับ บริษัท ที่ใช้ SC ในการออกแบบแอปหลักของพวกเขา นี่คือความคิดของฉัน:

  1. ฉันจริงๆเช่นรูปแบบ MVC ของแอปพลิเคเอสซี มันเป็นสิ่งที่ฉันคิดว่าเฟรมเวิร์ก JS อื่นขาด กรอบการเชื่อมโยงของพวกเขาทำให้การปรับปรุงมุมมองรวดเร็ว

  2. เอกสารที่ดีที่สุดอยู่ในรหัส

  3. ต้องการเอกสารที่ดีกว่า / ตัวอย่างเพิ่มเติม ตัวอย่างของพวกเขาเพียงพอที่จะให้คุณเริ่มต้น แต่สิ่งที่ก้าวหน้าจะทำให้ผู้ใช้ส่วนใหญ่ตอไม้

  4. ชั้นการเข้าถึงข้อมูลซับซ้อนเกินไป มันลึกลับมาก พวกเขาต้องการจัดทำเอกสารจริง ๆ หรือให้ตัวอย่างเพิ่มเติมเพื่อปูทางเพื่อให้ผู้คนสามารถใช้งานได้อย่างถูกต้อง ในทางกลับกันดูเหมือนว่าจะเป็นกรอบเกือบ ORM ที่ทรงพลังจริงๆ

  5. ฉันชอบความจริงที่ว่าพวกเขาทดสอบความเครียด

  6. การขาดกริดคือการลากที่แท้จริง แอพจำนวนมากหากไม่ใช่แอปส่วนใหญ่ต้องมีกริด ที่กล่าวว่า SC เป็นเฟรมเวิร์ก MVC ที่มีคุณลักษณะครบถ้วนไม่ใช่เฟรมเวิร์กของรายการวิดเจ็ต (คอมโพเนนต์) EXTJS

  7. รหัสจำนวนมากดูซับซ้อนเกินไป ทุกครั้งที่เมธอดมีความยาวเกิน 10-30 บรรทัดมันควรจะถูกทำลายเพื่อเพิ่มความสามารถในการอ่าน

  8. บางทีการพิจารณาที่ยิ่งใหญ่ที่สุดคือ: ถ้าคุณกำลังทำงานโครงการและการพิจารณา SC คุณจะมีปัญหาในการหานักพัฒนาที่มีความสามารถเพื่อทำงานกับมัน ดังนั้นอาจเป็นผลดีสำหรับโครงการส่วนบุคคลขนาดเล็ก แต่คุณกำลังเสี่ยงกับโครงการขนาดใหญ่ที่จะต้องมีการบำรุงรักษา

  9. การสนับสนุน IRC เป็นปรากฎการณ์ ผู้ชายในช่องนั้นมีประโยชน์จริงๆ


1
ชั้นการเข้าถึงข้อมูลซับซ้อนเกินไป มันลึกลับมาก - แน่นอน นอกจากนี้การแก้ไขข้อบกพร่องเป็นหนึ่งในภาระงาน
c69

@ c69 - เมื่อฉันเขียนสิ่งนี้ฉันเชื่อว่า แต่ตั้งแต่นั้นมาฉันก็ได้ขุดและสรุปว่าดาต้าสโตร์นั้นค่อนข้างทรงพลังและไม่ยากเกินไปที่จะเข้าใจ คุณเพียงแค่ต้องเริ่มทำสิ่งต่าง ๆ กับมัน
hvgotcodes

อาจจะอยู่ในรุ่นปัจจุบันของจริง - งาน แต่ฉันกับมรดก SC, และเพียงแค่ความบ้าของมัน .. (และไม่สามารถอัปเดตเป็นดูเหมือนว่า)
c69

@ c69 หากคุณมีปัญหาโดยเฉพาะให้ถามคำถามและบางทีฉันสามารถช่วยได้
hvgotcodes

15

เพียงแค่เรียกดูโพสต์กลุ่ม sproutcore ที่กลุ่ม google เพื่อรับรู้ว่าเกิดอะไรขึ้น

บางสัปดาห์ที่ผ่านมามีคนบ่นเกี่ยวกับเอกสารเป็นมือใหม่และโดยทั่วไปสิ่งที่เขาได้รับคือ: "ถ้าคุณไม่ชอบมันทำไมคุณไม่ช่วยสร้างเอกสาร" ... ดีมาก !!

คุณจะเห็นปัญหาเช่นนี้นับตั้งแต่เริ่มก่อตั้ง อีกไม่กี่สัปดาห์ที่ผ่านมามีคนถามกลุ่มถึงวิธีสร้างไฮเปอร์ลิงก์โดยใช้ Sproutcore ฉันหมายถึง LOL ใช้เวลาหลายชั่วโมงในการสร้างไฮเปอร์ลิงก์อย่างง่าย

Sproutcore ไม่ได้โฆษณาว่าใครใช้เฟรมเวิร์กในป่า: โดยปกติจะไม่ได้เป็นสัญญาณที่ดี

มีการอ้างสิทธิ์ (ไม่ใช่ sproutcore เอง afaik) ที่ Apple ใช้ แต่ถ้าคุณมองอย่างใกล้ชิดคุณจะเห็นว่า Apple มี codebase ของตัวเอง

โดยส่วนตัวแล้วฉันพบว่าต้นกล้าที่จะเต็มไปด้วยข้อบกพร่องการขาดมุมมองง่ายๆที่น่ารำคาญตัวอย่างที่ไม่สมบูรณ์หรือไม่ทำงานและการไม่มีเอกสารประกอบและแม้แต่การขาดการทดสอบที่สมบูรณ์ก็ไม่ใช่ฐานที่ดีในการสร้าง


5
ฉันอ้างว่า Apple ใช้มันและมาจาก Apple เอง MobileMe เขียนด้วย SproutCore appleinsider.com/articles/08/06/16/…
Chuck

Apple มีฐานรหัสของตัวเอง แต่พวกเขากลับรวมกับ repo สาธารณะเป็นประจำ

นอกจากนี้เพื่อเป็นการตอบสนองต่อปัญหาการเชื่อมโยงหลายมิติ SC ถูกสร้างขึ้นเพื่อสร้างแอปพลิเคชันเว็บที่สมบูรณ์ ซึ่งหมายความว่าคุณไม่ได้สัมผัส DOM ด้วยตัวเอง ดังนั้นคุณไม่ได้ตั้งใจสร้างไฮเปอร์ลิงก์ของคุณเอง

7

ฉันใช้ SproutCore และมันยอดเยี่ยมมาก เราเปลี่ยนจากjQueryเป็นSproutCoreเนื่องจาก jQuery มีชุดเครื่องมือขนาดเล็กและ SproutCore มีสถาปัตยกรรมระดับสูงที่ดี

เราประเมินไลบรารี Javascript เหล่านี้ตามลำดับต่อไปนี้:

  1. ต้นแบบซึ่งรู้สึกว่าใช้ได้ แต่ jQuery มีการสนับสนุนและหนังสือมากขึ้นเป็นต้น
  2. jQueryซึ่งรู้สึกดีมาก แต่ก็ไม่ได้รับการสนับสนุนสำหรับสถาปัตยกรรมระดับสูงที่ดีและเราเริ่มสร้างมันขึ้นมา แต่ใช้เวลานานเกินไป
  3. คาปูชิโน่ซึ่งมีสถาปัตยกรรมระดับสูงที่ดี แต่ขาดแผนการทำงานและเอกสารประกอบ
  4. SproutCore THE SOLUTION เนื่องจากนี่เป็นสถาปัตยกรรมระดับสูงที่ดีและมีระบบบิลด์ในตัวที่ดี

รายการยอดนิยมของเรา:

  1. SproutCore เป็นผู้ชนะ
  2. jQuery เป็นชุดเครื่องมือที่ดี
  3. คาปูชิโน่ดูสดใส แต่ยังไม่ถึงจุดนั้น
  4. ต้นแบบก็โอเค แต่ในความคิดของฉันไม่ดีเท่า jQuery

แน่นอนมีชุดเครื่องมือมากขึ้น แต่เป็นชุดที่เราประเมิน โดยสรุปฉันสามารถแนะนำ SproutCore ให้กับทุกคนที่กำลังสร้างแอปพลิเคชันคลาสเดสก์ท็อปโดยใช้ Javascript หากคุณต้องการ Javascript ง่ายๆเช่นตัวเลือกวันที่เป็นต้นฉันแนะนำ jQuery

อีกหนึ่งเคล็ดลับ ในขณะที่เขียนคำตอบนี้ SproutCore 1.0 เป็นเวอร์ชั่นเสถียรล่าสุด แต่น่าเสียดายที่มันค่อนข้างเก่าและเราจะใช้รุ่นล่าสุดที่สามารถพบได้จากหน้า Github SproutCore ของ ฉันขอแนะนำอย่างยิ่ง


4

หากคุณกำลังพยายามเข้าสู่ SproutCore ฉันขอแนะนำให้คุณขุดลงในแอปพลิเคชันตัวอย่างของ SproutTweets มีโครงสร้างที่มีประสิทธิภาพมากขึ้น (สถานะ, เฟรมเวิร์กที่โหลดแบบไดนามิก, ตัวอย่างที่มีประโยชน์ของแหล่งข้อมูล) อยู่ในนั้น

คุณสามารถค้นหาแอปพลิเคชัน SproutTweets ได้ที่ github http://github.com/sproutit/sproutcore-samples/tree/master/apps/sproutweets/

  • นอกจากนี้โปรดทราบว่าการเรียกใช้ตัวอย่างใน Safari ด้วยตัวตรวจสอบเว็บจะให้ข้อความแสดงข้อผิดพลาดที่เป็นประโยชน์มากกว่า
  • เซิร์ฟเวอร์ sc มีพรอกซีซึ่งสามารถใช้ในการเข้าถึงแหล่งข้อมูล REST ของคุณเองที่ทำงานบนเว็บเซิร์ฟเวอร์ท้องถิ่น อ้างถึง buildfile ในแอปตัวอย่าง sprouttweets ด้านบนเพื่อดูวิธีการทำงาน
  • พร็อกซีที่รวมอยู่ในการรับใช้นั้นค่อนข้าง จำกัด หากคุณมีปัญหาเกี่ยวกับการร้องขอเลเยอร์ข้อมูลของคุณให้ sc-build แล้วปรับใช้บนเว็บเซิร์ฟเวอร์ท้องถิ่นของคุณลองแทนของพร็อกซี่ เราพบปัญหาเกี่ยวกับการรับรองความถูกต้องลูป 401 ของเราและการสตรีมของการตอบกลับชุดข้อมูลขนาดใหญ่ (การเข้ารหัสแบบ chuncked)

แม้ว่าคุณจะไม่ได้ตั้งใจใช้ SproutCore ในแอปพลิเคชั่นที่ใช้งานจริง แต่คุณต้องติดใจกับตัวเองเพื่อสำรวจเพิ่มเติมเพื่อดูแนวทางอันทรงพลังในการเขียนโปรแกรมจาวาสคริปต์โดยเฉพาะอย่างยิ่ง KVO และมิกซ์อิน (ด้าน) สถาปัตยกรรมที่ยอดเยี่ยมมากมายที่ต้องไตร่ตรองและเรียนรู้จาก

จุดสุดท้าย - ช่อง IRC มีประโยชน์มากกว่าแหล่งข้อมูลอื่นมากรองจากการดำน้ำลึกในการสนทนากลุ่ม google


2

ฉันเคยใช้ SproutCore ในอดีต ฉันได้รับมอบหมายโครงการเพื่อพัฒนาสคริปต์ทดสอบเว็บอัตโนมัติโดยใช้เครื่องมือที่เรียกว่า Selenium RC Selenium RC ถูกสร้างขึ้นเพื่อกำหนดเป้าหมายรหัสประจำ HTML และคลาส แต่ SproutCore รวบรวมรหัสองค์ประกอบเพื่อให้รหัสองค์ประกอบเป็นแบบสุ่มดังนั้นฉันต้องคิด API สำหรับ SproutCore ดังนั้นฉันจึงสามารถหารหัสองค์ประกอบจากทรีวิวได้

SproutCore มีความคล้ายคลึงกับคอมไพเลอร์อย่างใกล้ชิด หากคุณมีองค์ประกอบมากเกินไปที่คุณนำเข้าการสร้างสำหรับหน้าเว็บของคุณมีโอกาสที่คุณจะมีการชนกันของเนมสเปซบน ID หากคุณต้องการสร้างแอปพลิเคชันของคุณด้วย jQuery เมื่อคุณสร้างหน้าเว็บของคุณด้วย jQuery รหัสทั้งหมดขององค์ประกอบ HTML จะเป็นแบบกลม ไม่มีสิ่งใดเป็นขอบเขตของท้องถิ่นในภาษาที่แปลหรือแปล

SproutCore จบลงด้วยการจัดการเนื้อหา HTML สำหรับคุณ มุมมองที่สร้างขึ้นโดยใช้จาวาสคริปต์แล้วรวบรวม หากคุณผ่านการกวดวิชา SproutCore (และฉันยอมรับ SproutCore ขาดเอกสารประกอบดังนั้นคุณควรพยายามหลีกเลี่ยงสำหรับแอปพลิเคชันธุรกิจ) คุณจะเห็นว่าโครงการที่เสร็จสิ้นแล้วมีองค์ประกอบ ID เป็น "sc - ###" การชนกันของเนมสเปซได้รับการแก้ไขบนเว็บไซต์เพื่อให้คุณสามารถทำงานได้เร็วขึ้น

อย่างไรก็ตามมีข้อกังวลสำคัญ เอกสารเหล่านี้ทำงานได้ไม่ดีพอที่จะอธิบายว่าทำไมคนจึงควรใช้ โครงการคือ opensource แต่ขุดลงไปเพื่อทำความเข้าใจกับจาวาสคริปต์ในระดับที่ต่ำกว่าเพื่อดูว่าการสร้างมุมมองนั้นเจ็บปวดอย่างไร Javascript เป็นภาษาที่ใช้งานได้ แต่ฉันเพิ่งพบสิ่งผิดปกติกับภาษาที่ใช้งานได้แบบไดนามิก มีความยืดหยุ่นมากเกินไป ฉันกำลังเสียบสกาล่า

ปัญหาล่าสุด SproutCore อาจช้า แต่มันเป็นราคาที่ต้องจ่าย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.