Bạn nên luôn luôn lập trình phía máy chủ cho một trang web?


38

Tôi sắp bắt đầu tạo một trang web dự án âm nhạc cho một người bạn. Bây giờ nó khá đơn giản: không có nội dung động (ngày tham quan, v.v.) và không có gì nhiều hơn một vài bài hát mẫu được nhúng hoặc liên kết SoundCloud. Tôi không mong đợi sử dụng bất cứ thứ gì ngoài vanilla JavaScript và Bootstrap hoặc Foundation cho lưới phản hồi.

Điều này có đủ không? Tôi có thể chỉ cần tải lên các tệp HTML, CSS và JS lên máy chủ và được thực hiện với nó không, hay tôi nên dành thời gian để lập trình máy chủ phụ trợ trong Node hoặc PHP?


54
Đủ chưa? Vấn đề gì bạn có là có một kết thúc năng động sẽ giải quyết. Giữ cho nó ngu ngốc đơn giản, cho đến khi bạn không thể.
RubberDuck

25
Tối đa hóa công việc không được thực hiện. YAGNI.
RubberDuck

9
Có lẽ bạn sẽ tốt nhất nên cài đặt một CMS làm sẵn nếu tất cả những gì bạn sẽ làm là viết một số văn bản, tải lên một số hình ảnh và một vài tệp nhạc / nhúng một số tệp video / YouTubes ... WordPress, v.v. trở nên lý tưởng và hầu hết các công ty lưu trữ đều cung cấp trình cài đặt chỉ bằng một cú nhấp chuột để giúp bạn đi trong vòng vài phút .... có rất nhiều CMS ngoài kia.
Kinnectus

11
Tôi tự hỏi tại sao một câu hỏi như thế này đã có rất nhiều upvote? Nó giống như hỏi "tôi có phải tạo cơ sở dữ liệu cho phần mềm của mình không, mặc dù nó không cần lưu trữ bất kỳ dữ liệu nào?". Nó sẽ không làm tôi ngạc nhiên nếu đó là một câu hỏi dành cho người mới bắt đầu, nhưng không phải khi bạn đủ kỹ năng để tạo ra một dự án bootstrap / Foundation.
Mahdi

14
@Mahdi nó được nâng cấp bởi vì mọi người đã tự hỏi điều chính xác chết tiệt này trong 5 năm và không ai có can đảm để hỏi nó.
djechlin

Câu trả lời:


86

Nếu bạn không biết liệu bạn có cần mã phía máy chủ hay không, có lẽ bạn không *

* Hãy cẩn thận : Mã phía máy chủ rất cần thiết cho bảo mật, khi bạn muốn kiểm soát nội bộ quyền truy cập vào nội dung, dữ liệu hoặc chức năng. (Không nhất thiết phải là máy chủ của bạn , xem đoạn cuối.)

Hãy tự hỏi vấn đề sử dụng các công nghệ phía máy chủ sẽ giải quyết. Nếu bạn không thể nghĩ ra bất kỳ (và trong trường hợp của bạn, tôi cũng không thể) thì bạn không cần chúng.

Xin lưu ý rằng nhiều hơn bạn nghĩ là có thể sử dụng mã phía máy khách. Các khung JavaScript như AngularJS hoặc ReactJS có thể cho phép bạn tích hợp với bên thứ ba, nội dung động thông qua API sử dụng Ajax. (Điều này bao gồm móc vào một API có thể xử lý bảo mật của chính nó.)


17
Tôi nghĩ rằng đây là một tuyên bố nguy hiểm cần thực hiện - các công nghệ phía máy chủ được sử dụng thường xuyên khi bạn 'có thể thực hiện phía máy khách': quyết định chuyển mọi thứ sang máy chủ là vì lý do bảo mật, không nhất thiết phải là chức năng. - như vậy thúc đẩy một thái độ 'không biết' là đáng lo ngại: các lập trình viên phải luôn luôn xem xét bảo mật trong bất kỳ ứng dụng nào , ngay cả một cách đơn giản như được mô tả. Toàn bộ giải pháp nên được suy nghĩ kỹ - bạn có muốn một khu vực nội dung 'được bảo mật', buộc người dùng phải đăng ký hoặc thích trên FB trước khi đưa cho họ một bản mp3 không? (tuy nhiên trong trường hợp này, một trang web tĩnh nghe có vẻ tốt)
Jmons

3
Có một điều cần nói về lợi thế bảo mật của các trình tạo trang tĩnh. Đối với nhiều ứng dụng, các trang web tĩnh là bảo mật tối ưu ở chỗ thực sự không có gì để hack.
Nathan GoFundMonica Arthur

1
Server-side code is essential for securitykhá nhiều nhà phát triển không cung cấp cho af * ck về bảo mật. Không phải cho đến khi bạn ném mặt họ vào ... mớ hỗn độn của họ. Dòng của tôi là nếu bạn cần xác thực, bạn cần một văn phòng hỗ trợ. Nếu bạn cần lưu trữ dữ liệu, bạn cần một backoffice nơi dữ liệu sẽ được kiểm tra lần thứ hai sau khi được kiểm tra bởi phía khách hàng.
Walfrat

1
@Walfrat Nếu bạn chỉ cần xác thực, bạn có thể giảm tải cho bất kỳ số lượng dịch vụ xác thực mở nào và không sử dụng bất kỳ phụ trợ nào cả. Nếu bạn cần ủy quyền, mặt khác, bạn có thể cần một số công cụ phụ trợ.
corsiKa

56

Đọc về máy phát điện trang tĩnh. Những thứ này cho phép bạn tạo một trang web theo cách lập trình (sử dụng các mẫu, dữ liệu, v.v.) chứ không phải bằng HTML thủ công. Kết quả là một tập hợp HTML và CSS tĩnh không yêu cầu bất kỳ phụ trợ nào.

https://www.staticgen.com/ liệt kê và xếp hạng một số trình tạo nguồn mở như vậy; dịch vụ nguồn đóng có khả năng tồn tại, quá.


3
+1, điều này vẫn hoạt động cho các trang web động chỉ một chút theo thời gian (như blog và hành trình du lịch). Cho đến khi nội dung phụ thuộc vào người dùng nhìn vào trang, nó thường là đủ.
RemcoGerlich

1
+1. Ngày tham quan và các bài hát mẫu sẽ cần được khách hàng cập nhật thường xuyên hơn hoặc ít hơn. Một trình tạo trang tĩnh giúp anh ta không cần phải chạm vào HTML và nó đơn giản và an toàn hơn nhiều so với CMS (được bảo trì kém).
Bergi

3
Trong khi tôi đồng ý rằng đây là một gợi ý tốt cho OP, nó có thực sự cố gắng trả lời câu hỏi như đã hỏi không?
Woodrow Barlow

Câu trả lời được đánh dấu là tổng quát hơn và phù hợp với câu hỏi khi được hỏi như Woodrow Barlow đề cập. Tuy nhiên tôi đã làm +1 để đặt trước một giải pháp tốt đẹp mà tôi và nhiều người khác có thể thực hiện
Deegriz

2
@WoodrowBarlow: Tôi cho rằng Can I simply upload HTML, CSS, and JS files to a host and be done with it, or should I take the time to program a backend server in Node or PHP?sẽ kêu gọi chỉ ra rằng có một thứ 3, trong trường hợp của OP khá hấp dẫn, tùy chọn IMHO :)
Tobia Tesan

6

Bạn có thể và chỉ nên sử dụng một trang tĩnh nếu nó đủ hoặc sử dụng một trình tạo trang tĩnh . Tại sao? Bảo trì. Mã có lỗi. Cứ vài tuần lại có một lỗ hổng bảo mật WordPress khác được tìm thấy. Nếu bạn sử dụng một CMS thông thường, bạn sẽ phải vá nó liên tục. Khác trang web bạn bè của bạn sẽ sớm chứa quảng cáo cho các loại thuốc bất hợp pháp, tuyên truyền ISIS, phần mềm độc hại được cài đặt trên máy tính của khách truy cập hoặc tệ hơn. Ngay cả khi bạn thường xuyên vá nó, bạn có thể đã quá muộn nên bạn phải liên tục kiểm tra các bản hack. Có nhiều cách để bảo mật CMS này. Cài đặt "plugin bảo mật", định cấu hình tường lửa ứng dụng web như mod_security, v.v. Tất cả chỉ cần làm việc nhiều hơn. Họ cũng phải được cập nhật. Đôi khi các quy tắc mod_security của bạn sẽ phá vỡ một plugin cho WordPress, bạn phải phân tích nó và sửa nó. Công việc nhiều hơn.

Bạn có thể nghĩ, không ai muốn hack trang web đó. Nhưng đối với các lỗ hổng bảo mật phổ biến được tìm thấy trong các hệ thống CMS phổ biến, sẽ sớm có các bot tự động thu thập / tìm kiếm trên web và hack TẤT CẢ các trang web sử dụng CMS đó. Họ chỉ muốn truyền bá liên kết / phần mềm độc hại / tuyên truyền của họ.

Với một trang web tĩnh (được tạo thủ công hoặc bằng trình tạo), bạn không gặp phải vấn đề đó.

Nếu bạn thực hiện phần phụ trợ của riêng mình, nó cũng sẽ có lỗ hổng bảo mật (không ai hoàn hảo) nhưng rất có thể sẽ không có ai khai thác chúng cho trang web nhỏ đó. Nhưng bạn muốn thực hiện những gì? Nếu bạn muốn tạo một trình soạn thảo nơi bạn của bạn có thể tự thay đổi ngày tham quan, hãy nghĩ xem việc này sẽ kéo dài bao lâu cho đến khi anh ta đủ dễ sử dụng mà không cần sự giúp đỡ của bạn. Bao nhiêu lần bạn có thể nhanh chóng thay đổi ngày cho anh ấy với ngân sách thời gian đó?

Theo tôi, ngày nay có quá nhiều người chỉ sử dụng các hệ thống CMS cho mọi trang web, vì HTML tĩnh là "cũ". Nếu bạn không cần bất cứ điều gì không thể với HTML5, hãy sử dụng mã phía máy chủ. Nhưng nếu bạn không cần nó, bạn sẽ tiết kiệm được rất nhiều thời gian mà không cần đến nó.


Cứ vài tuần? Hah, nếu chỉ! Giống như nhiều ngày hơn
Cuộc đua nhẹ nhàng với Monica

3

Bạn chỉ cần làm chương trình phụ trợ khi bạn cần.

Tuy nhiên, ngay cả các tính năng cơ bản như hình thức gửi email yêu cầu lập trình phụ trợ cơ bản thường. Nếu nó chỉ là một trang web hiển thị thì có, nó ổn.


1
Nếu đó chỉ là một tính năng đơn giản, bạn thường có thể sử dụng một số dịch vụ SaaS để thay thế. Ví dụ: một biểu mẫu đăng ký có thể được thực hiện miễn phí trên Google Forms và sau đó được liên kết từ trang web.
André Paramés

2

Không nhất thiết, nhưng có một số vấn đề bạn có thể gặp phải nếu bạn tạo toàn bộ trang web bằng HTML đơn giản.

Nhiều trang web có cùng các yếu tố menu, tiêu đề và chân trang trên nhiều trang. Nếu bạn chỉ cần sao chép và dán chúng từ trang này sang trang khác thì điều này có thể trở nên tẻ nhạt và dễ bị lỗi khi trang web trở nên lớn hơn và bạn cần tiếp tục thay đổi trong các lĩnh vực này.

Trong những ngày trước khi lập trình phía máy chủ rất phổ biến, một cách phổ biến để giải quyết vấn đề này là sử dụng các khung để nhúng các khu vực này vào mỗi trang. Điều này đã không còn được ưa chuộng vài năm trước, vì vậy tôi không khuyên bạn nên làm điều đó ngay bây giờ. Bạn có thể viết một số mã phía máy chủ đơn giản để hiển thị các yếu tố phổ biến này trên mỗi trang.

Tôi đồng ý với những người khác ở đây, những người đã khuyến nghị sử dụng CMS ngoài giá.


1
Một cách khác để "sao chép và dán" là sử dụng trình tạo trang tĩnh; cần quan tâm đến các yếu tố menu / tiêu đề / chân trang cho bạn, cho phép bạn chỉ cần lo lắng về nội dung.
Doktor J
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.