2014-04-05 2 views
11

코드는 축소되었지만 형식이 변경되는 데는 몇 백 줄의 코드가 필요합니다. 나는 최소의 코드를 가지고있는 최소한의 페이지를 상상할 것이다. Google이 근원이 오래되었다는 것은 무엇입니까? 나는 그것이 자바 스크립트임을 많이 볼 수 있지만, 자바 스크립트를 인라인하는 것은 나쁜 습관 이었다는 인상하에 있었다.Google의 홈페이지가 너무 작 으면 수백 줄의 코드가있는 이유는 무엇입니까?

+1

나는 이것이 좋은 질문이라고 생각합니다. 닫히지 않아야합니다. –

답변

8

빠른 검색을위한 ajax 콜백에 해당 코드가 하나 이상 사용됩니다.

자바 스크립트를 인라이닝하는 것이 나쁜지 여부를 고려할 때 대안을 생각해 봐야합니다. 코드가 별도의 파일에있는 경우 다른 http 요청 일 수 있습니다. 즉, 페이지 대기 시간이 길어집니다.

1

이것은 인터페이스와 구현을 분리하는 원리라고 생각합니다. 사용자는 인터페이스를보고 구현이 무엇인지 신경 쓸 필요가 없습니다. 얼마나 간단하고 복잡하며 어떤 방법으로 구현은 인터페이스가 제공해야하는 작업을 수행합니다.

시계의 예를 들어보세요. 시계를 볼 때 구현에 대해 전혀 생각하지 않습니다. 당신이 신경 쓰는 것은 시간과 분침으로 시간을 알려주며, 시계 모드로 돌아갈 수 있고 버튼 A는 그것을 시작할 수 있고 버튼 B는 그것을 리셋 할 수 있습니다 - 멈춤의 기능을 제공 할 수 있다면 손목 시계. 인터페이스는 매우 단순 할 수 있으며 가능하면 간단 할 수도 있습니다. 구현 작업은 복잡한 일이 될 수 있습니다. 수백만 개의 트랜지스터를 사용하여 세계 여러 지역에서 원자 시계 신호와 동기화하는 회로가있는 경우와 같이 작업을 잘 수행 할 수는 있지만 사용자는 일반적으로 구현은 다음과 같습니다. 모든 사용자는 시계의 인터페이스를 이해하기 쉽도록주의 할 수 있습니다. 시계의 얼굴을보고 눈 깜짝 할 사이에 몇시에 말할 수 있어야합니다.

코드가 너무 커서 모든 키 입력이 Google 서버에 요청을 일으키지 않도록 제한 메커니즘을 포함하는 자동 제안 메커니즘 외에도 사진, 링크가있는 Google+ 공유가 있습니다. , 비디오, 이벤트, 각각 다른 취급. 페이지가 깨끗하고 단순 할 수는 있지만 페이지가 제공 할 수있는 것은 훨씬 더 많습니다.

2

JavaScript는 작성되지 않은 소스에서 인라인되지 않습니다. 잠재적 인 나쁜 관행 것입니다. 빌드 할 때 페이지 소스에 인라이닝함으로써 페이지는 별도의 리소스 파일을 다운로드하기 위해 추가 HTTP 요청을 할 필요가 없습니다. HTTP 요청은 웹 페이지를로드하는 데 가장 느린 부분 중 하나입니다.

JS의 엄청난 양은 제 추측에 따르면 아마 많은 공통 라이브러리와 코드가 많은 페이지에서 공유되고 있기 때문에 홈페이지에로드되지 않도록하려고하면 불필요한 많은 작업이 필요하게됩니다. 코드에서 불쾌한 해결 방법을 찾아야합니다. 또한 UI가 단순 해 보일 수도 있지만 실제로 실제로 얼마나 많이 발생하고 있습니까? 걱정할 Google 계정, 즉각적이고 음성 검색, 분석 추적 등이 있습니다.

결국 Google 엔지니어가 비밀을 누설하지 않는 한 결국 진정으로 알 수 없습니다. 그 (것)들을 가진 일.