2011-05-13 3 views
8

우리는 높은 잠재력을 가진 웹 사이트를 만들 준비를하고 있습니다. 규모가 오면 우리는 준비가 되길 원합니다! 우리는 PHP, Apache 및 MySQL을 사용하기로 결정했습니다. 우리는 일종의 PHP 프레임 워크 (PHPulse, CodeIgniter, CakePHP, Zend, ...)를 사용해야합니까, 아니면 처음부터 모든 것을 빌드하는 것이 낫습니다. 웹 사이트의 성격은 Facebook과 비슷하지만 주로 텍스트 데이터 (많은 이미지, 동영상 제외)가 있습니다. 웹 사이트는 클라우드에서 호스팅됩니다.확장 성이 뛰어난 웹 사이트에 PHP 프레임 워크를 사용해야합니까?

무엇을 권하고 싶습니까?

감사합니다 ...

+0

나는 그게 무슨 뜻인지 잘 모르겠습니다. 이 질문은 확장 성 측면에서 볼 때 프레임 워크가 문제를 나타낼 수있는 것처럼 더 많은 의미가 있습니다. (도움이되지 않는다면). 확장 성을 전문으로하는 프레임 워크가 있습니까? – Cartoonle

+0

내가 아는 것은 아닙니다. 주요 프레임 워크 중 어느 것도 예를 들어 분산 코드 또는 performant 쿼리 (우리가 추측하게하는 대신 의도 한 것을 정의 할 때도 도움이됩니다). 그것에 대한 이전의 lari fari 토론도 참고하십시오. http://stackoverflow.com/questions/132056/what-is-the-best-php-mvc-framework-for-scalability – mario

+0

왜 PHP로 귀찮아합니다. 탈출구에 있습니다. 파이썬, 루비, C#과 같은 다른 언어는 웹 사이트 개발을위한 더 나은 도구를 가지고 있습니다. – Keyo

답변

7

이 질문은 여러 번 질문되었습니다. 일반적인 합의는 항상 당신이 할 수있는 일을합니다. 처음부터 너무 확장 가능하도록 걱정하지 마시고, 조금 마음 속에 간직하십시오. 처음부터 너무 확장 가능하도록 만들려고 노력하는 것은 힘들어지고 당신은 포기할 가능성이 큽니다.

대대적 인 인기로 인해 문제가 발생하기 시작하면 그만큼 좋습니다! 그렇다면 충분히 인기가 있으며, 값 비싼 호스팅 및 고급 프로그래밍/데이터베이스 프레임 워크 및 엔진에 대한 지불에 대해 걱정할 필요가 없을만큼 충분히 수익을 올릴 수 있습니다.

+0

저는 지금까지 모든 프레임 워크를 사용하지 않았습니다 (모든 것을 손으로 만들었습니다). 그러나이 웹 사이트는 정말로 완벽해야합니다 (적어도 나는 그 근처에오고 싶습니다 :)).그것은 큰 프로젝트입니다, 팀은 작고 시간이 제한되어 있으므로, 이번에는 프레임 워크를 구현하는 것이 좋은 생각이라고 생각했습니다. 좋은 사례를 기반으로하는 몇 가지 개념을 제시하므로 다루지 않아도됩니다. 나중에 페이지가 커지면 필요한 경우 해당 개념을 더 적합한 것으로 바꿀 수 있습니다. – Cartoonle

+1

Frameworks 필자는 PHP를 언급하고 있으며 eBay와 같은 미리 컴파일 된 DLL을 건너 뛴다. 그리고 엔진에 의해 MYSQL에 reffering하고있다. Jumbonormous 웹 사이트는 일반적으로 MYSQL을 사용하지 않고 하이 엔드 성능 기반 데이터베이스 엔진을 사용합니다. –

1

빨리 조정해야한다는 것을 알고 있다면 처음부터 직접 빌드하지 말고 기존의 입증 된 프레임 워크를 사용하는 것이 좋습니다. 확장성에 그다지 많은 부분이 필요하지는 않지만 나중에 작업을 단순화하고 상용구 코드가 충분히 잘 작동한다는 확신을 가질 수 있습니다.

위에서 언급 한 프레임 워크를 사용한 적이없는 경우 초기 학습 곡선을 넘어서는 시간을 고려해 볼 수 있습니다.

+0

프레임 워크를 구현하는 것이 그렇게 큰 문제가 아니어야합니다 ... 아니면? 내가 놓친 게 있니? 나는 뒤에 몇 줄의 코드를 가지고 있으며, 새로운 것을 사용하거나 배우는 것을 두려워하지 않았다. – Cartoonle

+0

@Cartoonle : 기분이 좋으면 문제 될 필요가 없습니다. API 또는 프레임 워크를 처음부터 작성하는 것 이상을 즐길 수있는 것은 없으며 기본적으로 기존 코드를 수정하고 업데이트하는 것 외에는 다른 것입니다. 그러나 잘 알려진 프레임 워크에서 이미 특정 성숙도에 도달 한 일부 작업을 코딩하지 않을 경우 이점이 있습니다. 특정 기능을 신속하게 필요로하는 시점에서 기존 툴킷, 플러그인 및 기타 공개적으로 사용 가능한 기능을 활용할 수 있습니다. – Groo

0

처음부터 모든 것을 빌드하면 시간이 걸릴 것이지만 코드의 내부 논리는 알 수 있습니다. 반대로 프레임 워크를 사용하면 빠른 개발을 얻을 수 있지만 그 경우 어떤 코드를 열어 놓은 코드로 웹 사이트를 만들면 해킹 당할 확률이 더 높아집니다. 각 방법에는 자체 프로 및 옥수수가 있습니다. 어쨌든 당신은 PHP Top 10 frame works of PHP의 최상의 프레임 워크를 확인할 수 있습니다. Code Igniter

+0

보안과 관련해서는 대개 상당히 반대입니다. 불명료 한 보안은 공개적으로 사용 가능한 솔루션을 사용하는 것보다 약합니다. – Groo

+0

@ 그루,하지만 완전히 오픈 소스 CMS (Joomla, drupal), 오픈 소스 포럼 (SMF)이 해커들에게 열려 있다는 것은 사실입니다. –

+0

PHPulse는 어떻습니까? 그것은 자신을 가장 빨리 호출합니다 ... – Cartoonle

1

도메인 계층이 코드의 나머지 부분과 가능한 한 느슨하게 결합되어 있는지 확인하기 위해 평소보다 많은 노력을 기울여야합니다. 문제를 식별하면 변경하기 위해 문을 열어 두어야합니다. 다른 레이어와.

프레임 워크를 설치하여 실행하고 CRUD 유틸리티 (CI, 나는 당신을보고 있음)를 사용하는 것을 조심하십시오.

ORM 솔루션을 사용하기로 결정했다면 여러 프레임 워크로 훌륭하게 재생되는 솔루션을 선택하십시오.

+0

나는 무국적자가되기로 이미 결정했습니다. – Cartoonle

+0

죄송합니다. 게시물을 제대로 읽지 못했습니다. 클라우드 스토리지에 가장 적합한 후크를 제공하는 프레임 워크를 선택해야 할 것 같습니다. – Cups

2

처음부터 빌드하십시오. 모든 비트를 제어하는 ​​것은 최적화하는 동안 도움이됩니다. http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html

이 memcached와 같은 일부 캐싱 라이브러리를 사용하여 PHP는 이미 프레임 워크와 템플릿 엔진이기 때문에

http://developers.facebook.com/blog/post/358/이 프레임 워크를 사용하지 마십시오 : 페이스 북은 심지어 PHP 컴파일러를 제어합니다. 클라우드에서 사용할 수 있는지 확실하지 않거나 클라우드에서 자체 캐싱 시스템을 제공 할 수 있습니다.

+0

예, highscalability.com의 "거대한 웹 사이트 아키텍처"에 대해 읽었습니다. 그러나이 단계에서는이 방법을 시작하는 것이 불가능하다고 생각합니다. 이 단계에서는보다 단순한 아키텍처를 구축해야하지만 문을 열어 두어야합니다. 따라서 나중에 단계별로 최적화 할 수 있습니다. – Cartoonle

+0

당신은 그것을 소유합니다, 당신은 그것을 소유하고 있습니다. 자신 만의 라이브러리를 작성하고, 문서화하고 유지 보수 할 것을 기대하십니까? 프레임 워크를 사용하면 순수하게 비즈니스 로직에만 집중하고 다른 헛소리는 잊어 버릴 수 있습니다. 물론 나쁜 프레임 워크와 템플릿 언어가 있습니다. 그러나 때로는 프레임 워크로 더 나은 도구를 얻습니다. 코드가 표준화되기 때문에 훌륭한 문서화, 통합 된 단위 테스트, 캐싱 및 양식 라이브러리에 내장되어 있으며, 도움을 줄 수있는 커뮤니티가 있습니다. 자신의 프레임 워크를 작성하는 것은 시간 낭비 일뿐입니다. 나는 페이스 북이 성급하게 최적화하지 않았을 것이라고 확신한다. – Keyo

0

더 나은 언어가 있기 때문에 나는 아니오라고 말할 것입니다. 파이썬, 루비 및 C#은 PHP보다 훨씬 멋진 네임 스페이스 및 개발 도구를 제공합니다.

그러나 실제 문제는 언어가 아닙니다.이것은 훨씬 더 중앙화 될 것이므로 데이터베이스 계층이 될 것입니다. memcached를 사용하여 데이터베이스의로드를 줄일 수 있습니다. ORM 검사를 사용하는 경우 곧장 쿼리를 실행하고 지연 삽입 쿼리 대신 대량 삽입을 실행하거나 조인을 사용하여 관련 개체를 가져올 수 있습니다.

대기열을 사용하여 페이지로드 속도를 높이십시오. 느린 작업을 페이지 요청 외부에서 수행 할 수있는 경우 대기열로 밀어 넣고 나중에 다른 서버에서 처리 할 수 ​​있습니다. 전자 메일 및 이미지 크기 조정은 좋은 예입니다.

확장 성이 뛰어난 웹 응용 프로그램을 원한다면 Apache, MySQL 버블 외부로 나가서 Nginx 및 비 관계형 데이터베이스와 같은 도구를 사용해야합니다.

지금까지는 최선의 방법은 문제가 존재하기 전에 문제에 대해 너무 걱정하지 않아도됩니다. 선택하는 프레임 워크가 느슨하게 결합되었는지 확인하여 데이터베이스 계층을 전환하는 것과 같은 작업을 수행 할 수 있습니다. 전염병처럼 codeigniter를 피하십시오. 모듈화가 전혀 없으며 ORM이없고 양식 라이브러리가 정말 형편 없습니다. Django (Python)를 추천합니다. 클라우드 호스팅을하는 회사가 많이 있습니다. 나는 PHP에서 Python으로 가게를 전환하는 것을 보았고 그것들을 많이 좋아하게되었다. 특히 호스팅을 선택할 때 PHP에 고정되어 있다고 생각하지 마십시오.

편집, 답장 없음 Cartoonle 장고. 그러나 PHP를 원한다면 Symfony 일 수도 있지만 느린 것으로 알려져 있습니다. 코 하나 (Kohana)는 CI와 같지만 더 많은 커뮤니티 주도 및 OOP입니다. 따라서 코드 서명자의 주요 결함 중 일부는 kohana에서 오래 전에 해결되었습니다. 나는 또한 케이크에 관해 좋은 점을 들었지만 결코 그것을 맛 보지 못했다. 코드 네이 터 (codeigniter)에 관해서는 그렇습니다. 간단하지만 간단하지만, 못생긴 단축키를 위해 좋은 소프트웨어 패턴이 많이 부족합니다. 나는 팀과 함께 1 년 동안 함께 일하면서 팀원 모두가 휠을 너무 많이 발명하고 다른 것을 필요로한다는 데 동의했다. 잠시 동안 함께 작업하면 문제가 거품을 일으키기 시작합니다. 우리는 잠시 동안 논쟁을 벌이면서 결국 장고로 끝 맺었습니다. 어려운 결정 이었지만 생산성이 높아졌습니다. 플러스 구글은 그것을 사용, 나는 그것이 많이 말한다라고 생각한다.

심각하게 python은 comp sci 101 코스에서 전문적으로 사용되는 유일한 언어 중 하나입니다. Python의 목표 중 하나는 가르침을 쉽게 할 수있게하는 것이 었습니다. 무서운 것이 아니라 터미널을 열어 python을 입력하고 놀아보세요. PHP 배와 비슷하지만 멋진 파이썬 패키지 리포지토리 외에도 git, gzip, hg 및 기타 다양한 형식으로 작동하는 pip와 같은 멋진 도구가 많이 있습니다. PHP로는 거의 볼 수없는 패키지 힙이 있습니다. http://djangopackages.com/

적어도 2 시간 정도 소요되는 자습서를 통해 기회를 제공하십시오. 웹 서버가 내장되어 있으므로 파이썬 그 자체 외에 설정하는 것이 없습니다.

http://docs.djangoproject.com/en/1.3/intro/overview/

+0

장고에 관해 좋은 말을들은 적이 있지만 전에는 Pyton을 사용한 적이 없기 때문에 아마 나를위한 최선의 방법은 아닙니다. – Cartoonle

+0

CodeIgniter가 싫어한다는 점에 흥미가있어서 ... 많은 사람들이 추천하고 있으며 필요한 모든 것을 가지고 있습니다. CodeIgniter를 권장하는 PHP 프레임 워크는 무엇입니까? – Cartoonle

+0

위의 답장을 참조하십시오. 기본적으로 파이썬 과대 광고로 해고하기 전에 장고를 적절하게 체크 아웃해야한다고 생각합니다. 그러나 PHP 대안을 제공했습니다. – Keyo

관련 문제