Khi nào Java là một lựa chọn tốt để phát triển web?
Xin đừng nói "Khi bạn có một nhóm phát triển chỉ biết Java."
Khi nào Java là một lựa chọn tốt để phát triển web?
Xin đừng nói "Khi bạn có một nhóm phát triển chỉ biết Java."
Câu trả lời:
Với nhiều khung có sẵn, sự trưởng thành của nền tảng, v.v., tôi rất muốn nói "hầu như luôn luôn". Vì vậy, đây là một số lý do khi bạn không nên sử dụng Java:
Java được sử dụng trong các trang web vừa và nhỏ. Điểm cốt yếu là có ít lưu trữ web miễn phí cho các trang web Java hơn là ví dụ PHP, nghĩa là trừ khi bạn có đủ tài nguyên để lưu trữ máy chủ web của riêng mình, bạn có thể sẽ không chọn Java.
Lưu ý rằng với Java EE 6, đặc biệt là cấu hình web, có rất nhiều công nghệ tiêu chuẩn đi kèm có thể tạo ra các ứng dụng web rất mạnh mà không phải mã hóa nhiều. Thật không may là không chính thống khá.
Lưu ý rằng điều này đã thay đổi phần nào gần đây với Công cụ ứng dụng Google cho phép bạn triển khai các ứng dụng web Java tiêu chuẩn (với một vài hạn chế) trong đám mây miễn phí cho các trang web có lưu lượng truy cập thấp đến trung bình.
Khi nền tảng của bạn là UNIX / Linux và bạn cần có bộ công cụ phong phú, chẳng hạn như Lập bản đồ đối tượng / quan hệ, Bảo mật, phối hợp phức tạp các dịch vụ web, v.v.
(Chúng ta không nói về các trang web đơn giản, phải không?)
Mỗi khi có một nhóm Java khác làm tôi bực mình, tôi thổi bay hơi nước bằng cách tìm kiếm những câu hỏi như thế này. Hãy để tôi nhắc lại. Tôi là một khách hàng bên dev và đã được gần 5 năm nay. Tôi đã làm việc trên các trang web từ microsites một phần lớn nội dung, đến các trang web lớn như Sears, đến các trang web loại ứng dụng phức tạp hơn, nơi cần có chuyên môn về UI thực sự sâu sắc. Tôi đã xử lý các biểu mẫu web Rails, PHP, .net (ew), .net MVC (tốt hơn nhiều) và một loạt các giải pháp Java để phát triển web kèm theo các nhà phát triển và các nhóm đã hoàn thành thảm họa. Tôi cũng viết một chút Python và đang bắt đầu đào Django.
Kinh nghiệm của tôi với các nhóm Java là rất tệ. Các công cụ luôn luôn là một PITA. Các nhà phát triển không bao giờ muốn tin rằng họ đã làm bất cứ điều gì sai trái và khiến họ tái đầu tư vào sân cỏ của họ một khi bạn đã loại trừ một vấn đề về phía bạn giống như nhổ răng. Kinh nghiệm đầu tiên khi giao dịch với các nhóm Java theo kinh nghiệm của tôi là thời gian phát triển được chuyển đổi thành thời gian e-mail viết nhiều lời giải thích dài dòng về lý do tại sao vấn đề chắc chắn nằm ở phía cuối của họ. HTML thường không phải là vấn đề của họ trừ khi bạn thực sự muốn kiểm soát nó. Sau đó, tất cả mọi thứ có khả năng đi đến địa ngục vào cuối của họ bởi vì bạn thực sự muốn di chuyển một số div cấp trên xung quanh.
Có những điều về ngôn ngữ tôi không thích nhưng tôi nghĩ vấn đề thực sự là văn hóa và thực tế là sự chấp nhận rất phổ biến, bạn có một tấn tầm thường ở giữa. Văn hóa mà tôi nghi ngờ xuất phát từ cách Java được tiếp thị. Viết một lần, triển khai khắp nơi. Dịch: "Bạn chỉ cần học một điều!" Những người thấy rằng về cơ bản hấp dẫn muốn sử dụng Java như một cây búa khổng lồ cho mọi móng tay với mức tối thiểu thực sự mài giũa thủ công của họ liên quan đến phát triển web.
Vì vậy, nếu bạn có các nhà phát triển biết Java và các ngôn ngữ khác nhưng vẫn thực sự thích Java, tôi sẽ nói, vâng, hãy tiếp tục nếu nó có vẻ là giải pháp phù hợp. Nhưng nếu bạn có các nhà phát triển Java biết Java và mọi thứ khác chỉ đáp ứng các tiêu chí để thực sự biến nó thành điểm nhấn trong sơ yếu lý lịch của họ, hãy yêu cầu họ xây dựng một ứng dụng đơn giản với nhiều trang bán phức tạp ở cuối HTML và thử điều này kiểm tra đơn giản. Phá vỡ một số HTML. Hãy cố gắng để họ tìm ra những gì sai. Nếu vấn đề trước mắt mà họ bắt đầu giải quyết là chuyển hướng đổ lỗi cho chính họ, hãy giữ họ! @ # $ Tránh xa sự phát triển web. Web dev là đa ngành và đòi hỏi sự quan tâm tích cực trong lĩnh vực này để thành công. Nó không phải là nơi dành cho những người chỉ muốn duy trì kiến thức về một ngôn ngữ và kinh hoàng hơn bởi các vấn đề hơn là quan tâm đến việc giải quyết chúng.
Tôi không khẳng định rằng chính Java là gốc rễ của sự bất tài và tôi đã nghe thấy Spring là tốt. Tôi chắc chắn có các nhóm Java có năng lực ngoài kia. Tôi chưa gặp phải một ai và tôi không nghĩ đó là một sự trùng hợp. Tôi nghĩ Sun có nhiều việc phải làm với nó. Tôi cũng nghĩ rằng việc điều hành các nhóm web như hoặc thuộc bộ phận CNTT có liên quan nhiều đến nó.
Java là hoàn toàn tốt cho các trang web nhỏ, bạn có thể làm cho các trang JSP hoạt động rất nhanh với một máy chủ web Java như Tomcat chẳng hạn.
Mặc dù theo kinh nghiệm của tôi, Java phổ biến hơn đối với các trang web lớn, nơi có nhu cầu xử lý phía máy chủ phức tạp hơn - trong trường hợp này bạn sẽ tìm thấy các khung công tác Java tinh vi hơn được sử dụng như JavaServer Faces (JSF).
Điều quan trọng cần lưu ý là một bản cài đặt Java đầy đủ trong lịch sử không có sẵn trong nhiều thiết lập lưu trữ web giá rẻ, do đó có thể giải thích sự phổ biến của các ngôn ngữ khác như PHP trong các môi trường này.
Những lý do chính để sử dụng Java trong phát triển web rút gọn những điều sau:
Nói về mặt kỹ thuật:
Nếu tôi đang bắt đầu một ứng dụng web, tôi sẽ sử dụng Ruby on Rails và thiết kế theo kiểu sao cho các điểm nóng có thể được hoán đổi khi RoR đạt giới hạn mở rộng hiệu suất.
Java có mùi nhất định của COBOL và "các lập trình viên cấp thấp sử dụng Java" treo trên đó và các fiascos của Oracle không giúp ích cho danh tiếng. Nếu bạn có sự lựa chọn , hãy chọn một ngôn ngữ đang thu hút các nhà phát triển hàng đầu.
Thật đơn giản: sử dụng Java khi hiệu năng phía sau là mối quan tâm chính. Có nhiều chi phí hơn khi mã hóa nhưng mã sẽ thực thi trong 1/200 đến 1/500 của thời gian - theo nghĩa đen. Php, Ruby và các ngôn ngữ được gõ động khác sẽ luôn chậm hơn các máy chủ java hoặc .net.
Hầu hết các giải pháp cho web sẽ không cần điều này. Chẳng hạn, Twitter đã không từ bỏ Rails cho đến khi họ bắt đầu nổi tiếng.
Không phải là lý do duy nhất, nhưng với sự phổ biến ngày càng tăng của việc xây dựng các trang web với giao diện giống như ứng dụng tinh vi trong khi vẫn có logic làm 'công cụ' trở lại trên máy chủ - không cần phải giải thích lý do tại sao Java ít nhất bằng với bất kỳ lý do nào khác tùy chọn ở cuối máy chủ. Nhưng ở phần cuối của máy khách, nếu bất kỳ javascript nào sẽ nhanh chóng biến thành cơn ác mộng bảo trì mã và bằng cách sử dụng GWT để giữ nội dung đó ở độ dài vũ khí để bạn có thể viết mã bằng Java, bạn có thể có cả hai thế giới tốt nhất với máy chủ của mình thực hiện công việc nặng nhọc và bộ xử lý của khách hàng mang lại cho họ 'trải nghiệm'. Tìm hiểu cách tích hợp nó với một cái gì đó như jQuery và bạn cũng có thể có tất cả các loại kẹo bạn muốn.
Không phải bất kỳ loại chuyên gia về các lựa chọn thay thế, nhưng nếu người khác có thể đưa ra một người có cùng độ linh hoạt và bề rộng, vui mừng khi nghe về nó.
Lý do chính tại sao tôi chọn java là nếu bạn cần sử dụng các giao dịch phân tán, điều này có thể là mối quan tâm lớn đối với nhiều tập đoàn. Tuy nhiên, bạn vẫn có thể sử dụng ngôn ngữ kịch bản yêu thích của mình để phát triển web và chỉ ủy thác công việc cho java khi bạn cần các giao dịch phân tán / tốc độ.
Tôi tin rằng sẽ là khi ứng dụng của bạn sẽ rất phức tạp, với nhiều người phát triển nó, với rất nhiều mô-đun phức tạp, logic kinh doanh phức tạp và nó phải giao tiếp với nhiều ứng dụng doanh nghiệp khác.
Dù sao, bạn cũng có thể phát triển trong Grails, nơi cung cấp rất nhiều tính năng hay, giúp phát triển rất nhiều và đang trưởng thành rất nhanh.
Java là ổn, nhưng nếu hiệu suất không quan trọng lắm, bạn có thể nhận được kết quả tương tự với ít nỗ lực hơn trong các ngôn ngữ khác.
Java là ngôn ngữ được nhập tĩnh và rẻ hơn so với các ngôn ngữ được nhập tĩnh khác được sử dụng để phát triển web, cụ thể là C # và VB.net, nếu công ty của bạn không có đăng ký MSDN. Các ngôn ngữ được nhập tĩnh rất tốt cho các dự án từ trung bình đến lớn, quy tắc tên miền phức tạp và nhiều mã back-end, bởi vì bạn có thể tổ chức tốt hơn các lớp và IDE sẽ giúp bạn tìm ra lỗi trong mã của mình.
Với các ngôn ngữ được gõ động, như PHP, Python, Ruby, sự phát triển của bạn sẽ nhanh hơn nhiều, nhưng bạn sẽ phải kiểm tra mã của mình tốt hơn nhiều. Nếu bạn không có nhiều thời gian và tiền bạc và yêu cầu của bạn thay đổi rất nhanh và bạn không phải thực hiện các phép tính rất phức tạp, ngôn ngữ động sẽ tốt hơn nhiều.
Bảo vệ
Lý do chính cho các công ty lớn chọn Java hơn các giải pháp khác là vì nó được coi là an toàn hơn nhiều.
Điều này chủ yếu là bởi vì nó được hỗ trợ bởi một công ty lớn như vậy (bây giờ là nhà tiên tri).
Cần xem xét rằng Java cung cấp mức độ bảo mật rất cao và sự hỗ trợ và phân tích tuyệt vời (mặc dù nó có giá).