Sproutcore를 사용한 사람이 있습니까?


19

웹 애플리케이션에 Sproutcore를 사용한 사람이 있습니까? 그렇다면 귀하의 경험에 대해 설명해 주시겠습니까? 나는 현재 그것을 고려하고 있지만 몇 가지 우려가 있습니다. 첫째, 문서가 잘못되었거나 불완전하기 때문에 소스 코드를 통해 문제를 파악하거나 파헤치는 데 많은 시간을 할애하는 것이 두렵습니다. 또한, 나는 비교적 새로운 프로젝트를 사용하는 것이 약간 주저하고 중대한 변화를 겪을 수 있습니다.

Sproutcore에서 개발 한 사람들의 의견에 감사드립니다!

EDIT / PS : 네,이 게시물을 본 적이 : /programming/370598/sproutcore-and-cappuccino . 그러나 나는 중요한 프로젝트에 그것을 사용한 누군가의 Sproutcore 자체에 대한 좀 더 긴 설명에 관심이 있습니다.


2
질문에 대답 할 수는 없지만 Apple 자체가 자체 .Mac 서비스에 SproutCore를 사용하고 있다고 말할 수 있습니다. 그래서 그것은 적어도 충분히 성숙합니다.
Chuck

그래-그게 내 관심을 끌었 어. 그러나 내가 시도한 내용이 적어 문서화가 충분하지 않아서 (특히 SC.DataSource 및 SC.Store의 경우) 문제가 있는지 확실하지 않습니다.

답변:


20

우리는 년보다 더 많은 새싹 코어를 사용하고 있습니다.

먼저 저는 0.9이지만 KVO, Large datasets 등과 관련된 성능 문제가있는 버전 0.9를 사용하여 개발했습니다. 그러나 SproutCore는 Javascript (javascript에 가깝기 때문에)이기 때문에 응용 프로그램에서 해결할 수있었습니다. 실제로 SproutCore는 적절한 자바 스크립트 코딩 방법을 가르쳐주었습니다. Javascript와 SproutCore를 동시에 배우고있었습니다.

7 월경 어딘가에 그들은 SproutCore 1.0 pre-alpha를 발표했습니다. API가 대폭 변경되었으므로 애플리케이션을 최신 버전으로 변환하는 작업 자체가 프로젝트였습니다. 당시 문서는 제로였습니다.

이제 상황이 바뀌 었습니다. 문서와 아주 좋은 위키가 있습니다. 매일 새로운 튜토리얼과 문서가 추가되었습니다.

SproutCore를 사용 / 평가할 생각이라면이시기입니다. 그리고 SproutCore는 매일 그 기능과 힘으로 놀라게됩니다. 여전히 거친 가장자리가 많아 매일 줄어 듭니다.

일부 자료 :

SproutCore Wiki

API 문서

데이터 저장소 API에 대한 최근 추가 (매우 중요한 부분)


17

저는 주력 앱 재 설계를 위해 SC를 사용하는 회사와 협력했습니다. 내 생각은 다음과 같습니다.

  1. 나는 정말 MVC의 같은 SC 응용 프로그램의 레이아웃입니다. 다른 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

Google 그룹에서 sproutcore 그룹 게시물을 탐색하면 현재 상황을 파악할 수 있습니다.

몇 주 전에 누군가가 문서에 대해 불평했고 초보자였으며 기본적으로 그가 얻은 것은 "좋아하지 않으면 문서를 만드는 데 도움이되지 않는 이유는 무엇입니까?"

처음부터 이와 같은 문제가 표시됩니다. 또한 몇 주 전에 누군가 Sproutcore를 사용하여 하이퍼 링크를 만드는 방법을 그룹에 물었습니다. LOL은 단순한 하이퍼 링크를 만드는 데 몇 시간이 걸린다는 것을 의미합니다.

Sproutcore는 누가 프레임 워크를 야생에서 사용하고 있는지 광고하지 않습니다. 일반적으로 좋은 신호는 아닙니다.

Apple이 그것을 사용한다고 주장하지만 (싹이 나지 않음), 그러나 자세히 보면 Apple이 자체 코드베이스를 가지고 있음을 알 수 있습니다.

나는 개인적으로 새싹 코어가 버그로 가득 차고, 간단한 테이블 뷰가 부족하고, 성가 시거나 불완전하거나 작동하지 않는 예제가 없으며, 문서가없고 심지어 완전한 테스트가없는 것도 빌드하기에 좋은 기반이 아닙니다.


5
나는 애플이 그것을 사용한다고 주장했으며, 그것은 애플 자체에서 나왔다. MobileMe는 SproutCore로 작성되었습니다. appleinsider.com/articles/08/06/16/…

Apple은 자체 코드 기반을 가지고 있지만 정기적으로 공개 리포지토리와 통합됩니다.

또한 하이퍼 링크 문제에 대한 응답으로 SC는 리치 웹 앱을 만들기 위해 만들어졌습니다. 이것은 일반적으로 DOM을 직접 만지고 있지 않다는 것을 의미합니다. 결과적으로, 당신은 당신 자신의 하이퍼 링크를 만들지 않습니다.

7

나는 SproutCore를 사용하고 있으며 단순히 훌륭합니다. jQuery는 작은 유틸리티 세트를 제공하고 SproutCore는 훌륭한 고급 아키텍처를 제공하므로 jQuery 에서 SproutCore 로 전환했습니다 .

이러한 Javascript 라이브러리를 다음 순서로 평가했습니다.

  1. 프로토 타입 은 괜찮 았지만 jQuery는 더 많은 지원과 서적을 가지고 있습니다.
  2. jQuery 는 훌륭했지만 좋은 고급 아키텍처를 지원하지 않았으며 빌드를 시작했지만 시간이 너무 많이 걸렸습니다.
  3. 카푸치노 (Cappuccino )-멋진 고급 아키텍처를 가지고 있지만 로드맵과 문서가 없다
  4. SproutCore THE SOLUTION은 훌륭한 고급 아키텍처를 제공하며 내장 된 멋진 빌드 시스템을 갖추고 있기 때문에

우리의 최고 목록 :

  1. SproutCore가 승자입니다
  2. jQuery는 좋은 툴킷입니다
  3. 카푸치노는 유망 해 보이지만 아직 거기에 없습니다.
  4. 프로토 타입은 괜찮지 만 jQuery만큼 좋지 않습니다.

물론 더 많은 툴킷이 있지만 이것이 우리가 평가 한 툴킷입니다. 결론적으로 Javascript를 사용하여 데스크탑 클래스 응용 프로그램을 작성하는 모든 사람에게 SproutCore를 적극 권장 할 수 있습니다. 날짜 선택기와 같은 간단한 Javascript가 필요한 경우 jQuery를 권장합니다.

팁 하나만 더 이 답변을 작성할 당시 SproutCore 1.0은 최신 안정 버전입니다. 불행히도 그것은 오래되어 우리는 SproutCore의 Github 페이지 에서 찾을 수있는 최신 버전을 사용하고 있습니다 . 나는 그것을 강력히 추천 할 수있다.


4

SproutCore를 사용하려는 경우 SproutTweets 샘플 응용 프로그램을 파헤치는 것이 좋습니다. 더 강력한 구성 (상태, 동적으로로드 된 프레임 워크, 데이터 소스의 유용한 예)이 많이 있습니다.

github http://github.com/sproutit/sproutcore-samples/tree/master/apps/sproutweets/ 에서 SproutTweets 애플리케이션을 찾을 수 있습니다.

  • 또한 웹 관리자를 사용하여 Safari에서 샘플을 실행하면보다 유용한 오류 메시지가 나타납니다.
  • sc-server에는 로컬 웹 서버에서 실행중인 자체 REST 데이터 소스에 액세스하는 데 사용할 수있는 프록시가 포함되어 있습니다. 작동 방식을 확인하려면 위의 sprouttweets 샘플 앱에서 빌드 파일을 참조하십시오.
  • sc-serve에 포함 된 프록시는 꽤 제한적입니다. 데이터 계층 요청에 문제가있는 경우 sc-build를 제공하면 로컬 웹 서버에 프록시 대신 배포를 시도하십시오. 401 인증 루프 및 대용량 데이터 세트 응답 스트리밍 (청크 인코딩)에 문제가 있습니다.

프로덕션 응용 프로그램에서 SproutCore를 사용할 의사가 없더라도 Javascript 응용 프로그램 프로그래밍, 특히 KVO 및 믹스 인 (종횡비)에 대한 강력한 접근 방식을 살펴 보는 방법을 직접 찾아보아야합니다. 숙고하고 배울 수있는 많은 훌륭한 아키텍처.

마지막 요점-IRC 채널은 다른 정보 소스보다 훨씬 도움이 될 수 있습니다.


2

나는 과거에 SproutCore를 사용했습니다. 저는 Selenium RC라는 도구를 사용하여 자동화 된 웹 테스트 스크립트를 개발하는 프로젝트를 배정 받았습니다. Selenium RC는 일반 HTML ID 및 클래스를 대상으로하도록 만들어졌지만 SproutCore는 요소 ID가 의사 무작위로되도록 요소 ID를 컴파일하므로 SproutCore의 API를 파악하여 뷰 트리에서 요소 ID를 찾을 수있었습니다.

SproutCore는 컴파일러와 매우 유사합니다. 웹 페이지 용으로 가져 오는 요소가 너무 많으면 jQuery를 사용하여 애플리케이션을 빌드 할 경우 ID에서 네임 스페이스 충돌이 발생할 가능성이 있습니다. jQuery를 사용하여 웹 페이지를 작성할 때 HTML 요소의 모든 ID는 전역입니다. 컴파일되거나 해석되는 언어와 같은 로컬 범위는 없습니다.

SproutCore는 HTML 컨텐츠를 관리합니다. 뷰는 자바 스크립트를 사용하여 빌드 된 다음 컴파일됩니다. SproutCore 튜토리얼 (SproutCore에 문서가 부족하므로 비즈니스 응용 프로그램에서는 피해야 함)에 동의하면 완성 된 프로젝트에 "sc-###"의 ID 요소가 있음을 알 수 있습니다. 웹 사이트에서 네임 스페이스 충돌이 해결되어 더 빠르게 작업 할 수 있습니다.

그러나 중요한 우려가 있습니다. 사람들이 문서를 사용해야하는 이유를 설명하는 문서는 충분하지 않습니다. 이 프로젝트는 오픈 소스이지만 뷰를 작성하는 방법에 대한 하위 자바 스크립트를 이해하기 위해 아래로 파고 들었습니다. Javascript는 기능적 언어이지만 동적 기능적 언어에는 문제가 있습니다. 유연성이 너무 많습니다. 스칼라를 연결하고 있습니다.

마지막 문제. SproutCore가 느려질 수 있습니다. 하지만 지불하는 가격입니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.