2011-06-22 28 views
5

Tôi mới vào thế giới lập trình web, đã đưa ra một số quy tắc chung cho thiết kế dự án đầu tiên của tôi. Làm những âm thanh như quy tắc hợp lý để đi theo, hoặc nên mã của tôi cho các khía cạnh khác nhau của dự án được nhiều hơn hoặc ít trộn lẫn với nhau, hoặc tổ chức khác nhau vì một lý do? Trong hai cuốn sách tôi đã đọc liên quan đến lập trình web (một trên HTML & CSS, cái kia trên PHP & MySQL), không giải quyết rõ ràng điều này. Bất kỳ ý kiến ​​từ các nhà phát triển web có kinh nghiệm sẽ được đánh giá rất nhiều!Quy tắc chung để tách các phần của ứng dụng web

Quy tắc ngón tay cái:

  1. Đối với nội dung tương đối tĩnh, sử dụng PHP để tạo các trang (ví dụ, điền vào một câu chuyện tin tức) để HTML và PHP được trộn lẫn một chút ở đây.

  2. Đối với các đối tượng địa lý động, hãy triển khai dưới dạng API văn bản XML/đơn giản để kết thúc ngược PHP không được trộn lẫn với bất kỳ logic trình bày nào (ví dụ: API/dịch vụ phía máy chủ không có kiến ​​thức về bản trình bày một khách hàng AJAX được phát triển và trình bày cho người dùng)

  3. Xác định cách chia khách AJAX thành các trang khác nhau dựa trên mong muốn người dùng có thể đánh dấu trang và điều hướng bằng trình duyệt.

+0

mọi người đều có sự phản đối riêng của họ.nếu bạn là một lập trình viên OO, bạn có thể thấy mẫu thiết kế MVC được đề xuất ở mọi nơi. điều này ngăn cách định tuyến, logic nghiệp vụ và hiển thị và dường như hoạt động khá tốt đối với nhiều người. bạn cũng có thể muốn xem xét các khung công tác miễn phí đã áp dụng mẫu thiết kế này (Zend Framework, CodeIgniter, Kohana). bạn có thể muốn xem xét các sách về các mẫu thiết kế và phát triển nhanh, vì chúng giúp giữ cho mã của bạn dễ uốn. – dqhendricks

Trả lời

1

Xem MVC pattern cho các ứng dụng web. Bạn không cần phải sử dụng XML/văn bản thuần để phân tách bản trình bày khỏi logic. Sử dụng khung công tác PHP như Symfony hoặc Cake có thể hữu ích. Bạn có thể tốt nhất để phát triển một ứng dụng web bằng cách sử dụng HTML trước và sau đó rắc một số AJAX lên trên để ứng dụng của bạn có dự phòng nếu AJAX không thành công - ví dụ: thiêt bị di động.

Hy vọng rằng sẽ giúp

+0

Cảm ơn bạn đã phản hồi nhanh! Có vẻ như mẫu MVC là con đường để đến đây. Tôi đã xem phần đầu tiên của tài liệu CakePHP. Có vẻ như, với mô hình MVC, tôi có thể tạo các trang có đầy đủ các máy chủ nội dung và dễ dàng tối ưu hóa trải nghiệm người dùng bằng cách thực hiện một chế độ xem khác tạo XML/plaintext (tùy thuộc vào độ phức tạp của dữ liệu) để xử lý và chèn phong cách AJAX. Bạn có đề xuất có một trang web dự phòng duy nhất HTML mà không có tối ưu hóa AJAX cho thiết bị di động không? –

1

Bạn có thể muốn điều tra MVC Pattern mà là một cách tuyệt vời để tổ chức ứng dụng và tách logic điều khiển từ logic trình bày.

Một số framework phổ biến PHP MVC bao gồm:

A "khó khăn" khuôn khổ hơn (nhưng người tôi thích nhất), là Kohana

Tôi sẽ khuyên bạn nên bắt đầu với một trong hai người đầu tiên.

+0

Tôi muốn giới thiệu CodeIgniter trên CakePHP, nó nhanh hơn, nhỏ hơn và đơn giản hơn. – timw4mail

+0

@ timw4mail CodeIgniter âm thanh tốt (ít "automagic", cấu hình ít hơn, và có lẽ nhanh hơn). Tôi nhận thấy trên trang CodeIgniter họ có một "CodeIgniter có phù hợp với tôi không?" danh sách có "Bạn không quan tâm đến các thư viện khối nguyên khối lớn như PEAR". Tôi không hiểu những gì bằng cách sử dụng PEAR đã làm với việc lựa chọn một khuôn khổ ... –

+1

Một khuôn khổ như CodeIgniter đi kèm với một loạt các thư viện, về cơ bản họ nói "Thư viện của chúng tôi tốt hơn thư viện PEAR!" mà tôi không thực sự có ý kiến. Tôi không nên sử dụng CodeIgniter) – LainIwakura

1

Trang web nhỏ, tĩnh: Chỉ HTML hoặc PHP có đầu trang và chân trang được bao gồm và các chức năng phổ biến.

Phức tạp hơn: khung MVC phân cách xem (mẫu), Models (cuộc gọi Cơ sở dữ liệu và thao tác dữ liệu), và Controller (trang định tuyến)

AJAX: MVC framework trên backend, các tuyến đường trang đặc biệt để lấy dữ liệu trang (kiểm tra các tiêu đề phải), history.pushState w/hashbang sao lưu cho tải trang một phần. Tùy thuộc vào độ phức tạp, có thể có sự tạo khuôn mẫu phía máy khách.

+0

Tôi nên lưu ý rằng tôi đã chủ yếu làm việc trên PHP, HTML và CSS và chỉ mới bắt đầu xem xét JavaScipt/AJAX và tôi đang cố gắng tìm ra cách tất cả các phần phù hợp với nhau một cách độc đáo. Hình như nhìn vào một khung MVC là bước tiếp theo. Đối với điểm cuối cùng của bạn, tôi có chính xác trong việc hiểu rằng history.pushState/hashbang URL là một cách để cho phép người dùng điều hướng như bình thường và đánh dấu trang trong khi sử dụng một trang AJAX hướng? Ngoài ra, bất kỳ đề xuất nào về nơi để tìm kiếm thông tin khuôn mẫu phía khách hàng? Có vẻ như đó là điều tiếp theo cần tìm hiểu sau khung MVC. Cảm ơn! –

+0

Tôi sẽ chỉ sử dụng chế độ khuôn mẫu phía máy khách nếu bạn có cấu trúc bố cục cực kỳ phức tạp và cần phải thay thế các phần của các trang rất phức tạp. Đối với hầu hết các phần, việc gửi HTML để thay thế các phần khác nhau của trang thường là đủ. – timw4mail

+1

API lịch sử cho phép bạn thay đổi url trang và giữ nút quay lại hoạt động với tải trang một phần. Nó cho phép bạn sử dụng cùng một url có và không có javascript. Các url Hashbang là một hack cho phép bạn có một url hoạt động với nút quay lại, nhưng vô ích nếu không có Javascript. Hiện tại, Internet Explorer và Opera không hỗ trợ API lịch sử. – timw4mail

Các vấn đề liên quan