2009-03-12 11 views
15

Gần đây tôi đã có cuộc gặp gỡ đầu tiên của tôi với PHP (5) thông qua một ứng dụng Drupal cho một khách hàng. Có chắc chắn không có gì khó khăn về kinh nghiệm (tài liệu là tốt ví dụ), nhưng tôi không bao giờ có một thời điểm mà tôi nghĩ, "đó là thực sự thông minh!", Hoặc "wow này là thú vị để sử dụng!" Hơn nữa, tôi không thể dự đoán chính xác các chức năng sẽ được đặt tên như thế nào, hoặc xác định một nguyên tắc hướng dẫn để làm theo.Triết lý thiết kế tổng thể của php là gì?

Điều này trái ngược với Ruby, ví dụ, tất cả mọi thứ là đối tượng, phương pháp có thể dự đoán và đa hình giả, và các khối là một niềm vui để sử dụng (để đặt tên một vài ví dụ). Các ngôn ngữ khác làm nổi bật sự tương phản: sự hiểu biết danh sách của Python thay đổi cách bạn nghĩ về lặp lại, C đưa bạn trở lại phần cứng với các con trỏ và các thao tác bit, javascript đáng ngạc nhiên với các chức năng không tên và nâng cao cho băm, và thậm chí cả SQL sự ghê tởm buộc bạn phải đánh giá cao dữ liệu của mình và suy nghĩ về nó một cách có liên quan.

Vì vậy, với ý nghĩ đó, điểm nổi bật của php là gì? Và triết lý thiết kế tổng thể của ngôn ngữ là gì? Tôi biết php không được hưởng một danh tiếng tuyệt vời tổng thể, nhưng tôi đã luôn luôn nghe nói rằng đó là một vấn đề nhận thức do số lượng lớn các nhà phát triển không chuyên nghiệp đập ra sao chép và dán mã.

CHỈNH SỬA:

Được rồi, do đó, sự đồng thuận là PHP là chìa khoá của các lập trình web. Tôi có thể chấp nhận điều đó. Tôi chỉ đang tìm kiếm một cái nhìn sâu sắc, nhưng tôi đoán tôi đã có nó. Tôi chắc chắn đánh giá cao mod_php/libphp chẳng hạn. Và tôi đã có thể đưa ứng dụng của tôi ra khỏi cửa trong hai tuần mà không có trải nghiệm php nào trước đó, vì vậy tôi đoán điều đó cũng tự nói lên.

Cảm ơn bài đăng.

+0

không sử dụng php & apache sử dụng máy chủ web roxen/RXML PIKE sử dụng nútjs MongoDb neo4j và bạn sẽ là người đầu tiên mãi mãi! –

+0

https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/ – dreftymac

Trả lời

21

Từ php web site:

PHP là một HTML nhúng scripting ngôn ngữ. Phần lớn cú pháp của nó là được vay mượn từ C, Java và Perl với một số tính năng đặc thù của PHP độc đáo được ném vào. Mục đích của ngôn ngữ là để cho phép các nhà phát triển web viết nhanh các trang được tạo động .

Nói cách khác, không thực sự là triết lý thiết kế: Đó là sự pha trộn và kết hợp các ý tưởng để hoàn thành công việc (rõ ràng được kế thừa từ Perl, hehe).

+3

Vì vậy, bạn đang nói nó kế thừa khái niệm chặt chẽ và tầm nhìn rõ ràng từ Perl? –

+7

@ David: Vâng, trong cùng một cách con người thừa hưởng đôi cánh của họ và mang từ động vật linh trưởng. – Pesto

2

Về đặt tên/quy ước chức năng, chắc chắn không có bất kỳ triết lý thiết kế nào đằng sau nó.
Trừ khi bạn coi sự mâu thuẫn là triết lý thiết kế :)

11

Sự nhấn mạnh của PHP là hoàn thành công việc, nhanh chóng, không thông minh. Đó không phải là để nói rằng bạn cam't viết tốt đẹp, sạch sẽ, mã hướng đối tượng trong PHP. Tôi nghĩ rằng nơi mà hầu hết các lập trình viên PHP gặp khó khăn là trong suy nghĩ rằng vì bạn có thể nhúng PHP vào HTML, bạn phải làm như vậy. Mã PHP của riêng tôi là hướng đối tượng mạnh mẽ và không chứa mã nhúng nào (ngoài trang ban đầu).

Và như bạn đã chỉ ra, PHP được tài liệu rất tốt, nhiều hơn bạn có thể nói cho nhiều đối thủ cạnh tranh của nó.

+0

Trải nghiệm của tôi với mã giúp công việc được thực hiện nhanh chóng là mọi thứ sẽ mất nhiều thời gian hơn. –

+0

Vâng, chúng ta phải không đồng ý. Ví dụ, tôi thấy rằng viết mã C++ như trái ngược với C mất abot một phần mười thời gian và là khoảng 10 x đáng tin cậy hơn và duy trì. –

+0

Thật không may. Tôi đã nhìn thấy (và viết) mã một cách nhanh chóng và tốt khi nhân dịp (IMHO). : D Một số trong PHP. Khoảng tỷ lệ tương tự như mã được viết chậm và kém so với từ từ và tốt. – dkretz

11

Triết lý thiết kế của PHP:

D'oh!

+1

+1, tôi đã suy nghĩ một cái gì đó như "không" – RSolberg

+2

+1 vì PHP thực sự là ngôn ngữ duy nhất trong lịch sử ngôn ngữ mà tôi muốn nói chỉ là một POS không thể chấp nhận được – temp2290

+3

+1, tôi sẽ gọi triết lý là ' mã ngay bây giờ ' – zalew

2

Từ một cuốn sách PHP tôi có:

PHP là một dự án mã nguồn mở của Apache Software Founation và đó là máy chủ web phổ biến nhất Apache add-on module, với khoảng 53 % của Apache máy chủ HTTP có khả năng PHP. PHP đặc biệt phù hợp với trang web các ứng dụng cơ sở dữ liệu vì các công cụ tích hợp cho Web và môi trường cơ sở dữ liệu của nó. Cụ thể, tính linh hoạt khi nhúng tập lệnh vào trang HTML cho phép tích hợp dễ dàng của bản trình bày và mã HTML. Hỗ trợ tích hợp tầng cơ sở dữ liệu là cũng tuyệt vời, với hơn 15 thư viện có sẵn để tương tác với hầu như tất cả các máy chủ cơ sở dữ liệu phổ biến.

Nó tiếp tục nói về những ưu điểm sau:

  • nguồn mở
  • linh hoạt cho hội nhập với HTML
  • phù hợp với các dự án phức tạp
  • nhanh tại chạy script
  • Nền tảng và hệ điều hành di động
  • Một nỗ lực cộng đồng

Tôi biết điều này không thực sự trả lời câu hỏi của bạn, nhưng có lẽ nó cung cấp một ít cao cấp nhìn vào những gì PHP là tất cả về.

Từ: Hugh E. Williams & David Lane. Ứng dụng cơ sở dữ liệu web với PHP và MySQL. Ấn bản lần 2.

+0

PHP hiện không phải là một dự án của Quỹ Phần mềm Apache. –

+0

Câu chuyện có thật - cuốn sách là từ năm 2004. –

2

PHP là hệ thống bao gồm phía máy chủ cho tài liệu HTML có cú pháp Perl. Nó đã cố gắng để vượt qua di sản của nó kể từ đó.

9

Điều bạn phải nhớ là PHP là một cuộc cách mạng. Vào thời điểm PHP được tạo ra bởi Rasmus Lerdorf, thực sự không có lựa chọn thay thế cho các trang web động. Cũng có CGI-GATEWAY (php cơ bản là) liên quan đến việc viết exe C của riêng bạn để phục vụ các trang - có cái gì đó gọi là ASP nhưng nó khá là rác và chỉ chạy trên các ô cửa sổ rất ít và xa web.

Bạn có thể nói lý do của nó hoặc triết lý thiết kế là nó là ngôn ngữ kịch bản thị trường đại chúng đầu tiên cho web. Nó không được thiết kế nhiều như đã trưởng thành, đó là lý do tại sao nó có vẻ hơi lộn xộn, nhưng nó thực hiện công việc.

2

Hãy làm những gì ngươi héo

0

Tôi nghĩ rằng điều tốt về php là bạn có thể đứng dậy và chạy khá nhanh chóng và nó rất thân thiện với người mới bắt đầu. Ngôn ngữ đầu tiên tôi học được là Java ở trường, vì vậy PHP rất dễ lấy. Khi tôi học Java, thật khó để đón nhận các khái niệm OO lần đầu tiên và tôi thực sự không hiểu hoàn toàn. Nhưng kể từ khi bạn không cần phải sử dụng OO trong PHP nó rất dễ dàng cho người không lập trình để đón học những điều cơ bản ngôn ngữ và sau đó có thể chuyển sang các đối tượng học tập.

Tôi đồng ý ngôn ngữ là loại hỗn loạn, nhưng nó cung cấp các trang web quyền lực như Facebook, Digg và các phần của Yahoo. Có thể không thực sự nói giống nhau về Ruby (cụ thể hơn đường ray), ngoại trừ Twitter.