> 백엔드 개발 > PHP 튜토리얼 > 웹사이트 아키텍처 문제

웹사이트 아키텍처 문제

WBOY
풀어 주다: 2016-08-10 09:07:23
원래의
996명이 탐색했습니다.

현재 당사 웹사이트에는 4개의 모바일 단말기(IOS, ANDROID, PC, TV)가 있습니다. PC 단말기 외에 다른 단말기에서도 api json 데이터 형식을 통해 데이터에 접근하고 데이터를 가져오지만, PC 단말기는 그렇지 않습니다. 예를 들어, 일부 목록 페이지 등은 API를 사용하고, 다른 PC 페이지는 페이지 렌더링 시 백그라운드에서 직접 생성됩니다. 그렇다면 지금 직면한 문제는 이 네 개의 터미널에 필요한 인터페이스를 이해할 수 없다는 것입니다. 인터페이스가 동일하더라도 데이터 구조나 필드가 다릅니다. 현재 접근 방식은 서버 측에서 MVC 모델과 Lib 라이브러리를 사용하는 것입니다. 인터페이스의 경우 컨트롤러의 lib에 있는 클래스와 메서드를 호출하기만 하면 됩니다. 실제로는 간접 액세스 클래스입니다. 예를 들어 사용자 목록을 얻으려면 집 주소를 제공하는 컨트롤러에서 다음과 같이 표시됩니다.

<code>// .....
$userList = User::getList()
return $this->success($userList);</code>
로그인 후 복사
로그인 후 복사

그런 다음 PC 페이지의 템플릿에 다음을 작성하세요.

<code>{{ userlist = Tag_User_getList() }}
// ....</code>
로그인 후 복사
로그인 후 복사

기본적으로는 이런 구조인데, 이는 단점이 많습니다. 예를 들어 PC 측과 모바일 측을 분리할 수 없다는 점입니다. 둘째, 모바일 측에서 요구하는 데이터가 꼭 필요하지는 않습니다. PC 쪽, 그 반대일 수도 있습니다. 사용하지 않는 데이터를 읽는 등의 문제가 발생할 수 있습니다.
그렇다면 일부 대규모 프로젝트에서는 이 문제를 어떻게 해결하는지 묻고 싶습니다. 예를 들어 타오바오, JD.com 등

답글 내용:

현재 당사 웹사이트에는 4개의 모바일 단말기(IOS, ANDROID, PC, TV)가 있습니다. PC 단말기 외에 다른 단말기에서도 api json 데이터 형식을 통해 데이터에 접근하고 데이터를 가져오지만, PC 단말기는 그렇지 않습니다. 예를 들어, 일부 목록 페이지 등은 API를 사용하고, 다른 PC 페이지는 페이지 렌더링 시 백그라운드에서 직접 생성됩니다. 그렇다면 지금 직면한 문제는 이 네 개의 터미널에 필요한 인터페이스를 이해할 수 없다는 것입니다. 인터페이스가 동일하더라도 데이터 구조나 필드가 다릅니다. 현재 접근 방식은 서버 측에서 MVC 모델과 Lib 라이브러리를 사용하는 것입니다. 인터페이스의 경우 컨트롤러의 lib에 있는 클래스와 메서드를 호출하기만 하면 됩니다. 실제로는 간접 액세스 클래스입니다. 예를 들어 사용자 목록을 얻으려면 집 주소를 제공하는 컨트롤러에서 다음과 같이 표시됩니다.

<code>// .....
$userList = User::getList()
return $this->success($userList);</code>
로그인 후 복사
로그인 후 복사

그런 다음 PC 페이지의 템플릿에 다음을 작성하세요.

<code>{{ userlist = Tag_User_getList() }}
// ....</code>
로그인 후 복사
로그인 후 복사

기본적으로는 이런 구조인데, 이는 단점이 많습니다. 예를 들어 PC 측과 모바일 측을 분리할 수 없다는 점입니다. 둘째, 모바일 측에서 요구하는 데이터가 꼭 필요하지는 않습니다. PC 쪽, 그 반대일 수도 있습니다. 사용하지 않는 데이터를 읽는 등의 문제가 발생할 수 있습니다.
그렇다면 일부 대규모 프로젝트에서는 이 문제를 어떻게 해결하는지 묻고 싶습니다. 예를 들어 타오바오, JD.com 등

귀하의 웹사이트에 무슨 일이 일어나고 있는지 전혀 모른다는 겁니까? 4개의 웹사이트가 강제로 합쳐진 것 같습니다. 각각 고유한 인터페이스가 있는데 왜 인터페이스를 통합해야 합니까? 현재 데이터 일관성이 달성되면 인터페이스 문제에 대해 걱정하지 마십시오. 주요 변경은 불가능합니다. 인터페이스에서 불필요한 필드를 필터링해도 괜찮습니다. 더 깊이 있는 일은 하지 마세요. 이미 엉망이고, 바꿀수록 더 지저분해집니다.

개인적으로는 하나의 인터페이스 세트, 여러 호출을 디자인할 때 API 인터페이스가 최대한 표준화되어야 한다고 생각합니다.

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿