우리는 간단 하 고 그들의 마음에 드는 사진을 공유 하는 사용자에 대 한 빠른 그것을 만들려고 노력 했습니다. 사실, 첫 번째 제품 출시 Pinterest, 시장 로드맵 수집 하는 데 사용의 버전 이었다. 초기 네트워크 출시 후 우리는 그래서 우리는 새로운 방법에 노력 하 고 있습니다 이미지를 업로드에 몇 가지 어려움은 다는 것을 깨달았다. 우리는 먼저 아이폰에 시도 하 고 가까운 미래에 안 드 로이드 애플 리 케이 션을 실행 하 고 싶 었. 때문에 처음부터, 우리는 한 방향에만 집중할 수 있습니다.
아이폰 애플 리 케이 션 구축 방법에 대 한 (3-5) 기사의 시리즈를 있을 것입니다. 여기 우리 건축 세부 사항에 대해 얘기 하자 일부 코드를 나중에 게시. 첫 번째 문서는 모든 그림을 표시 됩니다. 음, 사실, 그 게 다 우리는 당신에 게:
나는 내 이전 보고서 각 계층은 비용 투자에에서 언급 했다. 사실, 처음에 우리는 "phone.services" 레이어 없. 이것은 우리가 나중에 발견에 휴대 전화를 사용 하 여 캐시 데이터를 중간 계층 성능을 크게 향상 시킬 수입니다. 다음 각 계층의 목적을 설명합니다.
데이터 계층
이제 우리는 우리의 기본 데이터 저장소로 SQL Server를 사용 합니다 생각할 수 있습니다. 하지만 우리 BizSpark을 사용 하는, 마이크로소프트는 세계적인 수준의 생산 프로젝트, 완전히 백엔드 데이터베이스 서버의 책임을 지지 수 있습니다. 광범위 한 마이크로소프트 경험 없이 우리가 왜 우리가 SQL Server를 선택 하지 마십시오에 응답 수 있습니다. 데이터베이스에 대 한 우리의 접근의 99% 저장된 프로그램을 통해 이루어집니다 그리고 유일한 32 (는 악용 될 수 있는 SQL 인젝션 공격 가능성 없이 이러한 네트워크에) 데이터베이스 네이티브 SQL 도구를 통해 사용할 수 있습니다. 우리는 데이터베이스의 값 데이터의 저장에만 믿습니다. 우리의 저장된 프로그램은 매우 짧은 그리고 그들 사이 아무 논리. 미래에 블로그에 우리의 데이터 구조 들을 게시할 예정입니다 그리고 당신은 비표준 계획의 일부 측면을 볼 것 이다.
Bit.services 레이어
시작 하기 전에 우리는 수집품을 돌진, 우리는 다른 것 들에 대해 생각해 야 합니다. 게임 애플 리 케이 션 페이스 북에 대 한 적합 한 응용 프로그램에 발판을 포함 하 고 마지막으로 다시 우리의 시작 지점. 하지만 전에 우리는 몇 가지 다른 테스트 해야 했다, 우리는 "23BITS.COM,LLC"를 설립. 그 게 바로 우리가 "비트." 네임 스페이스의 이름을 했습니다 매우 친절, 짧은, 쉽게 입력 하 고 눈에 띄는, 오른쪽?
기본 서비스 계층 해야 제공 하는 데이터베이스에 연결, 데이터베이스에 작업을 수행 하며 asp.net 레이어에 대 한 간단한 엔터티 형식을 제공합니다 이러한 서비스는 다른 네트워크 종류와 아이폰 애플 리 케이 션과 동일. 더 자세한 답변은 미래를 논의 하기에이 시점에서 주어질 것 이다. 12 정도 서비스를 보호 하는 보안, 사용자 프로필, 컬렉션, 포럼, 지역 사회, 및 다른 기능을 아직 시작 하지 않은 것입니다. 서비스 간의 종속성 DI (종속성 주입)에 의해 Ninject를 사용 하 여 관리 됩니다. 이론적으로 하드웨어 지원에 대 한 이러한 서비스 분할 될 수 있다 하지 독립적으로, 그리고 우리는 강도 성장 후 그들을 별도 것입니다.
인터넷 bounday (asp.net MVC3.5)
현재는 여전히 asp.net MVC3, 하지만 또한 MVC4로 실행 하 고 수 MVC4 가까운 무한히 처리. 우리는 곧 업그레이 드 하 고를 사용 하 여 더 많은 방법을 웹 API 기술 쿨러 것입니다! 그것은 또한 기본적인 JSON의 전화에 응답합니다. 그럼 우리가 우리의 시스템을 보호 하는 방법에 대 한 블로그 것입니다. API는 아이폰에 지금 작동, 하지만 API도 나타납니다 안 드 로이드와 윈도에 가까운 장래에.
Bit.clientservices
물론, 고객 서비스 디자인 패턴 한 클라이언트와 서비스는만 수 의미 하지는 않는다. 이 경우에, 우리도 아이폰 클라이언트에 대 한 우리의 백엔드 서버에 의존 하는 서비스. 그것은 로컬 서비스를 clientservices 레이어를 적용 하 여 아이폰에 통신을 추진 하겠습니다. 가장 필요한 관심사는 innerwebs 낮은 경우에 아이폰의 응용 프로그램을 중단 하지 않고 서버에 대 한 호출을 확인 하는 방법 이다. 그러나, 그것은 잘이 미션을 달성할 것 이다.
Phone.services
우리가 아주 특별 한 플랫폼은 최종 계층에 왔다. 이 레이어는 몇 가지 실제 테스트 후 추가 되었습니다 그리고 테스트의 결과 단말기의 성능을 단순히 캐시의 작은 금액을 추가 하 여 극적으로 향상 했다 발견. 아마 거기에 페이 스 북 애플 리 케이 션을 사용할 수 있는 몇 가지 있습니다. 그래서 우리는 Bit.clientservices는 고속 응답을 허용 하는 캐시를 했다. Bit.clientservices 세부 사항에 더 깊게 파고들, 계속 해 서 우리는 또한 찾을 휴대용 레이어 안 드 로이드과 윈도우 모바일 애플 리 케이 션에 활용 될 수 있습니다. 매우 가볍고, 주로 clientservices 호출에 대 한. 캐시할 수 있는 및 당신이 무엇을 캐시할 수 없습니다 알고 하면 고 UI 컨트롤의 특성을 알고 해야 합니다. 그래서, 당신의 로컬 페이 스 북 애플 리 케이 션 새로운 후원을 얻을 것 이다.