Có ai đã sử dụng Sproutcore chưa?


19

Có ai đã sử dụng Sproutcore cho một ứng dụng web chưa? Nếu vậy, bạn có thể cho tôi một mô tả kinh nghiệm của bạn? Tôi hiện đang xem xét nó, nhưng tôi có một vài lo ngại. Đầu tiên, tài liệu rất tệ / không đầy đủ và tôi sợ rằng tôi sẽ dành nhiều thời gian để tìm hiểu mọi thứ hoặc đào qua mã nguồn. Ngoài ra, tôi hơi do dự khi sử dụng một dự án còn khá mới và có thể trải qua những thay đổi đáng kể.

Mọi suy nghĩ từ những người đã phát triển trong Sproutcore đều được đánh giá cao!

EDIT / PS: Có, tôi đã thấy bài đăng này: /programming/370598/sproutcore-and-cappuccino . Tuy nhiên, tôi quan tâm đến một mô tả dài hơn về chính Sproutcore từ một người đã sử dụng nó cho một dự án quan trọng.


2
Tôi không thể trả lời câu hỏi, nhưng tôi có thể nói với bạn rằng chính Apple sử dụng SproutCore cho các dịch vụ .Mac của riêng họ. Vì vậy, nó ít nhất đủ trưởng thành cho điều đó.
Chuck

Phải - đó là những gì tôi quan tâm. Nhưng với những gì tôi đã thử, tài liệu này đủ tệ (đặc biệt là, ví dụ, đối với SC.DataSource và SC.Store) mà tôi không chắc liệu nó có đáng để gặp rắc rối không.

Câu trả lời:


20

Chúng tôi đang sử dụng spoutcore hơn sau đó năm.

Đầu tiên tôi đã phát triển bằng phiên bản 0.9 rất tuyệt vời nhưng có vấn đề về hiệu năng, liên quan đến KVO, bộ dữ liệu lớn, v.v. Nhưng vì SproutCore là Javascript (gần với javascript), chúng tôi có thể giải quyết chúng cho ứng dụng của chúng tôi. Đối với tôi thực sự, SproutCore đã dạy tôi cách mã hóa javascript thích hợp. Tôi đã học Javascript và SproutCore cùng một lúc.

Ở đâu đó khoảng tháng 7, họ đã phát hành SproutCore 1.0 pre-alpha. API đã được thay đổi đáng kể để chuyển đổi ứng dụng của chúng tôi sang phiên bản mới hơn là một dự án. Và tài liệu là số không tại thời điểm đó.

Bây giờ mọi thứ đã thay đổi, Có tài liệu và wiki rất hay. Hướng dẫn và tài liệu mới được thêm vào mỗi ngày.

Nếu bạn nghĩ sử dụng / đánh giá SproutCore thì đây là thời điểm thích hợp. Và mỗi ngày SproutCore làm tôi ngạc nhiên với khả năng và sức mạnh của nó. Vẫn có rất nhiều cạnh thô, làm giảm hàng ngày.

Một số tài nguyên:

SproutCore Wiki

Tài liệu API

Bổ sung gần đây cho API lưu trữ dữ liệu (phần rất quan trọng)


17

Tôi đã làm việc với một công ty sử dụng SC để thiết kế lại ứng dụng hàng đầu của họ. Đây là suy nghĩ của tôi:

  1. Tôi thực sự thích cách bố trí MVC của một ứng dụng SC. Đó là điều mà tôi nghĩ rằng các khung công tác JS khác thiếu. Khung ràng buộc của họ làm cho việc cập nhật lượt xem nhanh chóng.

  2. Các tài liệu tốt nhất là trong chính mã.

  3. Sự cần thiết phải có tài liệu tốt hơn / nhiều ví dụ hơn. Các ví dụ của họ là đủ để giúp bạn bắt đầu, nhưng những thứ tiên tiến sẽ làm vấp ngã hầu hết người dùng.

  4. Lớp truy cập dữ liệu quá phức tạp. Đó là một bí ẩn lớn. Họ cần thực sự cập nhật tài liệu hoặc cung cấp thêm ví dụ để mở đường để mọi người có thể sử dụng nó đúng cách. Mặt khác, nó dường như là một khung ORM thực sự mạnh mẽ.

  5. Tôi thích thực tế rằng họ căng thẳng thử nghiệm.

  6. Thiếu lưới là một lực cản thực sự. Nhiều nếu không phải hầu hết các ứng dụng cần lưới. Điều đó nói rằng, SC là một khung MVC đầy đủ tính năng, không phải là một khung các widget (thành phần) liệt kê EXTJS.

  7. Rất nhiều mã dường như quá phức tạp. Bất cứ khi nào một phương thức được dài hơn 10-30 dòng thì nó thực sự nên được chia nhỏ để tăng khả năng đọc.

  8. Có lẽ cân nhắc lớn nhất là đây: nếu bạn đang làm việc trong một dự án và xem xét SC, bạn sẽ gặp khó khăn thực sự khi tìm các nhà phát triển có thẩm quyền để làm việc với nó. Vì vậy, nó có thể tốt cho một dự án cá nhân nhỏ, nhưng bạn đang mạo hiểm với một dự án lớn sẽ cần bảo trì.

  9. Sự hỗ trợ của IRC là phi thường. Những người trên kênh đó thực sự hữu ích.


1
Lớp truy cập dữ liệu quá phức tạp. Đó là một bí ẩn lớn. - thật. Ngoài ra, gỡ lỗi là một trong những nhiệm vụ.
c69

@ c69 - Khi tôi viết bài này tôi tin điều đó. Nhưng kể từ đó, tôi đã đào sâu và đi đến kết luận rằng kho dữ liệu khá mạnh và không quá khó hiểu. Bạn chỉ cần bắt đầu làm mọi thứ với nó
hvgotcodes

có thể trong các bản phát hành hiện tại, nó đúng - nhưng tôi làm việc với SC kế thừa và sự điên rồ của nó .. (và nó không thể cập nhật, như có vẻ như vậy)
c69

@ c69, nếu bạn đang gặp vấn đề cụ thể, hãy đặt câu hỏi và có thể tôi có thể giúp
hvgotcodes

15

Chỉ cần duyệt qua các bài đăng của nhóm spoutcore tại các nhóm google để cảm nhận về những gì đang diễn ra.

Vài tuần trước, có người phàn nàn về các tài liệu, là một người mới và về cơ bản những gì anh ta nhận được là: "nếu bạn không thích nó, tại sao bạn không giúp tạo ra các tài liệu" ... duh !!

Bạn sẽ thấy những vấn đề như thế này kể từ khi nó ra đời. Cũng vài tuần trước, có người đã hỏi nhóm cách tạo siêu liên kết bằng Sproutcore. Ý tôi là, LOL, phải mất hàng giờ để tạo ra một siêu liên kết đơn giản.

Sproutcore không quảng cáo những người sử dụng khuôn khổ của họ trong tự nhiên: thường không phải là một dấu hiệu tốt.

Người ta khẳng định (không phải bởi chính spoutcore afaik) rằng Apple sử dụng nó, nhưng nếu bạn nhìn kỹ bạn sẽ thấy rằng Apple có cơ sở mã riêng.

Cá nhân tôi nhận thấy spoutcore bị đánh cắp lỗi, việc thiếu một bảng xem đơn giản gây phiền nhiễu, không đầy đủ hoặc không hoạt động, và việc không có tài liệu và thậm chí không có TESTS hoàn chỉnh không phải là một cơ sở tốt để xây dựng.


5
Tôi tuyên bố rằng Apple sử dụng nó và đó là từ chính Apple. MobileMe được viết bằng SproutCore. appleinsider.com/articles/08/06/16/NH
Chuck

Apple có cơ sở mã riêng, nhưng họ thường xuyên hợp nhất trở lại với repo công khai.

Ngoài ra, để đối phó với vấn đề siêu liên kết, SC được tạo để tạo các ứng dụng web phong phú. Điều này có nghĩa là bạn thường không chạm vào DOM. Kết quả là, bạn không có ý định tạo siêu liên kết của riêng bạn.

7

Tôi đang sử dụng SproutCore và nó đơn giản là tuyệt vời. Chúng tôi đã chuyển từ jQuery sang SproutCore , vì jQuery cung cấp một bộ tiện ích nhỏ và SproutCore cung cấp một kiến ​​trúc cấp cao đẹp.

Chúng tôi đã đánh giá các thư viện Javascript này theo thứ tự sau:

  1. Nguyên mẫu , cảm thấy ổn nhưng jQuery có nhiều hỗ trợ và sách hơn, v.v.
  2. jQuery , cảm thấy tuyệt vời nhưng nó không có bất kỳ sự hỗ trợ nào cho một kiến ​​trúc cấp cao đẹp và chúng tôi đã bắt đầu xây dựng một kiến ​​trúc, nhưng nó đã mất quá nhiều thời gian.
  3. Cappuccino , có kiến ​​trúc cao cấp đẹp nhưng thiếu lộ trình và tài liệu
  4. SproutCore GIẢI PHÁP, vì điều này cung cấp một kiến ​​trúc cấp cao đẹp và nó có một hệ thống xây dựng tích hợp đẹp

Danh sách hàng đầu của chúng tôi:

  1. SproutCore là người chiến thắng
  2. jQuery là một bộ công cụ tốt
  3. Cappuccino có vẻ đầy hứa hẹn nhưng vẫn chưa hoàn thành
  4. Nguyên mẫu là ok, nhưng theo tôi không tốt bằng jQuery

Tất nhiên có nhiều bộ công cụ hơn, nhưng đây là những công cụ chúng tôi đã đánh giá. Để kết luận, tôi rất có thể giới thiệu SproutCore cho bất kỳ ai đang xây dựng một ứng dụng lớp máy tính để bàn bằng Javascript. Nếu bạn chỉ cần một số Javascript đơn giản, như bộ chọn ngày, v.v., tôi khuyên dùng jQuery.

Chỉ một mẹo nữa thôi. Tại thời điểm viết câu trả lời này, SproutCore 1.0 là phiên bản ổn định mới nhất. Thật không may, nó khá cũ và chúng tôi đang sử dụng phiên bản mới nhất có thể tìm thấy từ trang Github của SproutCore . Tôi rất có thể khuyên bạn nên điều đó.


4

Nếu bạn đang cố gắng vào SproutCore, tôi khuyên bạn nên tìm hiểu về ứng dụng mẫu SproutTweets. Nhiều cấu trúc mạnh hơn (trạng thái, khung được tải động, một ví dụ hữu ích về nguồn dữ liệu) nằm trong đó.

Bạn có thể tìm thấy ứng dụng SproutTweets trên github http://github.com/sproutit/sproutcore-samples/tree/master/apps/sproutweets/

  • Ngoài ra, hãy lưu ý rằng việc chạy mẫu trong Safari với trình kiểm tra web sẽ cung cấp một bộ thông báo lỗi hữu ích hơn.
  • Máy chủ sc chứa proxy có thể được sử dụng để truy cập nguồn dữ liệu REST của riêng bạn đang chạy trên máy chủ web cục bộ. Tham khảo buildfile trong ứng dụng mẫu spouttweets ở trên để xem cách nó hoạt động.
  • Các proxy được bao gồm trong sc-phục vụ là khá hạn chế. Nếu bạn gặp vấn đề với các yêu cầu lớp dữ liệu của mình, hãy tạo sc-build, sau đó triển khai trên máy chủ web cục bộ của bạn thử thay vì proxy. Chúng tôi đã tìm thấy các vấn đề với các vòng lặp xác thực 401 của chúng tôi và phát trực tuyến các phản hồi dữ liệu lớn (mã hóa bị cắt xén).

Ngay cả khi bạn không có ý định sử dụng SproutCore trong một ứng dụng sản xuất, bạn vẫn phải tự mình khám phá nó để thấy cách tiếp cận mạnh mẽ đối với lập trình ứng dụng javascript - đặc biệt là công cụ KVO và mixins (khía cạnh). Rất nhiều kiến ​​trúc tuyệt vời để suy ngẫm và học hỏi.

Điểm cuối cùng - kênh IRC có thể hữu ích hơn nhiều so với các nguồn thông tin khác, chỉ đứng sau một số cuộc thảo luận sâu trong các cuộc thảo luận nhóm google.


2

Tôi đã sử dụng SproutCore trong quá khứ. Tôi đã được chỉ định một dự án để phát triển các kịch bản thử nghiệm web tự động bằng cách sử dụng công cụ có tên Selenium RC. Selenium RC được xây dựng để nhắm mục tiêu các lớp và id id thông thường, nhưng SproutCore biên dịch ID phần tử sao cho ID phần tử là giả ngẫu nhiên, vì vậy tôi phải tìm ra API cho SproutCore để tôi có thể tìm ra ID phần tử từ cây xem.

SproutCore có sự tương đồng gần với trình biên dịch. Nếu bạn có quá nhiều yếu tố mà bạn đang nhập tạo cho trang web của mình, có khả năng bạn sẽ có xung đột không gian tên trên ID nếu bạn xây dựng ứng dụng của mình bằng jQuery. Khi bạn xây dựng trang web của mình bằng jQuery, tất cả ID của các thành phần HTML là toàn cục. Không có thứ gọi là phạm vi địa phương như trong một ngôn ngữ được biên dịch hoặc giải thích.

SproutCore kết thúc việc quản lý nội dung HTML cho bạn. Các khung nhìn được xây dựng bằng cách sử dụng javascript và sau đó được biên dịch. Nếu bạn xem qua hướng dẫn SproutCore (và tôi đồng ý SproutCore đang thiếu tài liệu nên bạn nên cố gắng tránh nó cho một ứng dụng kinh doanh), bạn sẽ thấy rằng dự án đã hoàn thành của bạn có các yếu tố ID là "sc - ###". Va chạm không gian tên được giải quyết trên trang web cho bạn tiềm năng để làm việc nhanh hơn.

Tuy nhiên, có những mối quan tâm lớn. Tài liệu của họ không làm một công việc đủ tốt để giải thích lý do tại sao mọi người nên sử dụng nó. Dự án là mã nguồn mở, nhưng đào sâu xuống để hiểu javascript cấp thấp hơn về cách các khung nhìn được xây dựng trở nên đau đớn. Javascript là một ngôn ngữ chức năng, nhưng tôi chỉ thấy có gì đó không ổn với các ngôn ngữ chức năng động. Có quá nhiều sự linh hoạt. Tôi đang cắm Scala.

Vấn đề cuối cùng. SproutCore có thể chậm. Nhưng đó là một cái giá phải trả

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.