Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
221,82 KB
Nội dung
Các tài nguyên Java cần thiết Một bản liệt kê toàn diện các cuốn sách, các địa chỉ Web, các blog, các sự kiện phải kể đến và nhiều hơn nữa Ted Neward, Tư vấn, ThoughtWorks Tóm tắt: Chẳng bao lâu nữa nền tảng Java™ sẽ làm lễ kỷ niệm sinh nhật lần thứ 14 của nó và như một tác dụng phụ, khi một ngôn ngữ thành công và có mặt khắp mọi nơi đạt tới mốc lịch sử như thế này, là sự sinh sôi lan rộng của các thư viện, các công cụ và những ý tưởng — phần thưởng thêm này có thể làm cho nhiều người mới đến với ngôn ngữ Java trôi lênh đênh trong một biển tư liệu. Trong bài viết này, tác giả (một người đóng góp không ngừng nghỉ cho cái biển ngập tràn ấy) bẻ lái xuyên qua dòng thủy triều rộng lớn và trình bày một danh sách các nguồn tài nguyên then chốt mà bất kỳ các nhà phát triển Java đầy triển vọng nào nên có. Từ khi giới thiệu nó cho cộng đồng lập trình như một tổng thể trọn vẹn vào năm 1995, các nền tảng Java đã phát triển vượt ra ngoài tầm nhìn "applet mọi nơi" mà ban đầu các nhà bình luận uyên thâm và các nhà tuyên truyền quảng bá Java đã hình dung thế giới Java là như vậy. Thay vào đó, thế giới Java đã vươn dậy thành Swing, đã cố kết xung quanh các servlet, đã lướt trên chúng để thành J2EE, đã trượt ngã với EJB, đã lạc đường sang Spring và Hibernate, đã tổng quát hóa hơn và đã trở nên năng động hơn, thiết thực hơn và tiếp tục trưởng thành theo nhiều hướng rất thú vị, thậm chí ngay cả khi tôi viết những dòng này. Tất cả những thứ ấy làm cho một lập trình viên Java không trưởng thành kịp cùng với ngôn ngữ cảm thấy một chút gì choáng ngợp. Với tư cách là diễn giả, người viết blog (blogger), nhà tư vấn và người cố vấn dày kinh nghiệm, tôi thường xuyên được các lập trình viên non trẻ và trung bình, làm việc trong không gian các tài nguyên Java, yêu cầu giúp đỡ họ làm chủ thế giới rộng lớn, phức tạp, dường như vô tận ấy. Một vài năm trước đây, tôi đã thử cố gắng trả lời câu hỏi bằng cách đăng tải một Danh sách khuyến khích đọc, nhưng mới đây các biên tập viên Java của developerWorks đã yêu cầu tôi tập hợp lại thành một danh sách tài nguyên rộng hơn, không tập trung riêng vào các cuốn sách — một ý tưởng tốt nếu như biết rằng danh sách ấy đã phát triển đến mức mà người dùng tương lai có thể dễ dàng mất cả thập kỷ tới để đọc chúng và vẫn không có một bước tiến về các nội dung. Để tránh thiên vị hoặc chịu ảnh hưởng không cần thiết, tôi quyết định làm một lời kêu gọi đến cộng đồng blog để tìm các nguồn tài nguyên: các địa chỉ Web, các hội nghị, các cuốn sách, các blog, các công cụ, bất cứ điều gì đó có vẻ như đáng được quan tâm và sử dụng cho các nhà phát triển Java khi họ tiến lên trong không gian và có thể thấy là có ích cho việc chèo lái trong đống khổng lồ những thứ có sẵn. Sự hưởng ứng thật là to lớn (tôi cảm ơn tất cả những người đã trả lời). Một lưu ý ngắn để giải thích trước khi chúng ta bắt đầu: Các nguồn tài nguyên này không nhất thiết phải là các tài nguyên phổ biến nhất, mạnh nhất hoặc có ảnh hưởng nhất trong hệ sinh thái Java — danh sách như thế có thể sẽ hoàn toàn khác (tuy nhiên tôi ngờ rằng nhiều nguồn tài nguyên sẽ hiển thị trong cả hai danh sách); Thay vào đó, đây là các nguồn tài nguyên mà mọi nhà phát triển Java có triển vọng nên có trong trình duyệt của họ, trên các kệ sách của họ hoặc trên lịch công tác của họ để tham dự. Giống như với bất kỳ loại danh sách sắp xếp kiểu này, luôn luôn có chỗ còn phải tranh luận về những gì cần được đưa vào mà không có hoặc những gì đã được đưa vào nhưng đáng ra không nên. Không nghi lễ thêm nữa, chúng ta hãy tiếp tục. Các địa chỉ Web và các cổng Web của nhà phát triển Thế giới Web rõ ràng đã thay đổi bản chất của các tư liệu và các ấn phẩm được chia sẻ chung (và không khó hiểu với tôi rằng bạn đang đọc điều này ngay bây giờ trên Web), vì vậy, có vẻ là hợp lý để bắt đầu cuộc điều tra về các nguồn tài nguyên Java then chốt với các cổng của nhà phát triển và các trang web chủ chốt mà tất cả các nhà phát triển Java nên luôn để mắt đến. Trong nhiều trường hợp, giá trị của một trang web và/hoặc cổng của nhà phát triển không chỉ ở trong các nguồn tài nguyên được cung cấp hoặc các bài viết được đăng ở đó, mà còn ở chỗ cộng đồng xung quanh cổng hoặc trang web đó. Những ngày của các trang web tĩnh và tệp tin tải xuống đang nhanh chóng lùi dần về phía sau, nhường chỗ cho các mô hình "tích cực" hơn của các diễn đàn, các bài viết theo luồng, và các cuộc thảo luận tương tác giữa không những các nhà phát triển hay lui tới trang web đó và tạo thành cộng đồng của nó mà còn là các thành viên cộng đồng và các chủ sở hữu của cổng. Cũng như công nghệ tiến triển, các nhà phát triển cũng phải tiến triển để theo kịp với nó, một cổng phải tiến triển để theo kịp với sự thay đổi nhu cầu của cộng đồng của nó; có một mối quan hệ mở với cộng đồng của nó là một thành phần trọng yếu để giữ cho một cổng đầy sức sống. Danh sách các trang web (với các URL): java.sun.com Đây là nơi mà từ đó JDK khởi đầu và thường là trang web đầu tiên mà những nhà phát triển Java truy cập để tải về một bản sao của JDK và tài liệu hướng dẫn. Nhưng ngoài ra, nó còn là một nguồn thông tin tốt về toàn bộ nền tảng Java, bao gồm một phần rất phong phú về bản thân máy ảo Java - JVM (Hotspot), trong đó mô tả cơ chế bên trong của JVM với mức sâu sắc đáng ngạc nhiên. java.net Trang web Java.NET là một bữa ăn có nhiều món về các dự án mã nguồn mở, tài liệu hướng dẫn, blog, wiki, tin tức và các tài nguyên cộng đồng khác. Đó là một nguồn cung ứng thông tin dồi dào về công nghệ Java, có thể quá nhiều. Mặc dù như vậy, việc duyệt qua danh sách các dự án có thể dẫn đến một số viên ngọc thực sự quý giá như dự án FEST-Swing nhằm mục đích tạo ra một "giao diện hoạt động trôi chảy" để xây dựng các ứng dụng Swing, làm cho chúng đơn giản hơn nhiều để tạo ra các kiểm thử đơn vị. InfoQ Được tạo ra bởi Floyd Marinescu, tổng biên tập sáng lập TheServerSide, InfoQ khác với nhiều tài nguyên khác được liệt kê ở đây ở chỗ rằng nó rõ ràng là trung lập về công nghệ, không chỉ trình bày mã Java mà còn cả .NET và Ruby và cung cấp một bao quát tuyệt vời với cách tiếp cận nhanh nhẹn và cái nhìn thấu đáo. Mặc dù cộng đồng góp ý bình luận cho InfoQ không phải là lớn hay đa dạng được như cộng đồng của TheServerSide, nhưng các cuộc thảo luận này thường thuần hơn và ít thù định hơn. TheServerSide Thường được gọi là "chấm gạch xiên của Java" (the Slashdot of Java), TheServerSide là nơi đầu tiên mà các chủ đề Java doanh nghiệp được hỏi cởi mở, được tranh luận sôi nổi và được theo đuổi ráo riết. Một số ý tưởng sớm nhất xung quanh các thùng chứa nhẹ (như Spring đã làm mẫu) đã nảy sinh ra ở đây và nhiều nhân vật hiện nay được coi là "các nhà lãnh đạo tư tưởng" trong cộng đồng Java đã nổi lên tại đây. Mặc dù các cuộc tranh luận gần đây đôi khi đã có thêm tính cách la hét giành bàn thắng, TSS sẽ luôn luôn là ngôi nhà xuất xứ của phần lớn nhưng gì đã trở thành hệ sinh thái Java mà bây giờ chúng ta đang sống trong đó; như vậy, nó luôn luôn là một nguồn thông tin, là lịch sử nếu không có gì khác. DZone DZone đã bắt đầu cuộc đời như là một tài nguyên cho các nhà phát triển Java, nhưng mới đây đã bắt đầu phân nhánh mở rộng vào các lĩnh vực công nghệ khác, bao gồm cả .NET và Ruby, cũng như một số các vùng chủ đề bao quát khác. Như vậy, trong khi các nhà phát triển Java có thể tập trung hoàn toàn chỉ vào vùng Java, một số sự giao thoa xảy ra và chính nhà phát triển khôn ngoan là người sẽ tận dụng lợi thế đó. IBM® developerWorks Nếu bạn đang đọc bài viết này, thì bạn đã tìm thấy dW. Để bộc lộ hết, tôi phải ghi chú rằng tôi đã đóng góp nhiều bài viết khác, ngoài chính bài này cho trang web này, nhưng tôi có thể nói trung thực rằng dW có giá trị như là một nguồn tài nguyên lớn của các bài viết và tài liệu về viết mã Java và JVM. Cụ thể, hãy chắc chắn đọc Lý thuyết và thực hành Java (Java theory and practice), một loạt bài dài kỳ của Brian Goetz, bao gồm bài viết ba phần mô tả bộ dọn rác của JVM, trong đó giới thiệu các khái niệm cốt lõi của bộ dọn rác (GC) theo cách để có thể tiếp cận được rất đáng ngạc nhiên. IBM alphaWorks alphaWorks, trang web chị em của developerWorks, là nơi mà các nhà khoa học và các nghiên cứu sinh của IBM cung cấp các công cụ và các công nghệ mà họ tin tưởng sẽ xác định trào lưu chính cho tương lai. Được tổ chức thành chừng một tá các phạm trù khác nhau, alphaWorks cung cấp cho các nhà phát triển Java một cơ hội để thử nghiệm các công cụ, các ngôn ngữ, các thư viện và các dự án khác mà trong một số trường hợp thậm chí còn đi trước cả các công nghệ mũi nhọn mới mẻ — chúng đang ở trong giai đoạn nghiên cứu. Lưu ý rằng nhiều dự án dùng để chứng minh một luận điểm nghiên cứu cụ thể và sau đó dừng lại, bỏ mặc dự án ở bất cứ hiện trạng nào. Nguyên tắc người mua chịu trách nhiệm về hàng đã nhận. Caveat emptor: Một số dự án không phải là mã nguồn mở và những dự án khác không bao gồm mã nguồn. Nhưng số lượng khá lớn các dự án alphaWorks kết thúc bằng việc phát triển thành một trào lưu chính hoặc như là một sản phẩm được hỗ trợ từ IBM, hoặc là một công cụ có sẵn để tải xuống từ một số các địa chỉ mã nguồn mở của IBM. Trong bất kỳ sự kiện nào, để mắt đến alphaWorks sẽ là một cái nhìn về hướng hệ sinh thái Java đang ở đâu và tiến hóa như thế nào. JavaWorld : Sau một thời gian dài gián đoạn, JavaWorld đã trở lại với vinh quang thủa ban đầu với một ngoại hình được tân trang, nội dung kỹ thuật chất lượng cao và nguyên tắc phân loại theo chủ đề tiện dụng để có thể nhanh chóng tìm ra các loại bài viết mà bạn tìm kiếm. Đừng bỏ lỡ các khả năng lưu trữ (archives) rộng lớn đã có từ thủa ban đầu của nó và bao gồm các bài viết của một số trong các cộng tác viên nổi tiếng nhất của cộng đồng Java. Artima Được Bill Venners tạo ra, Artima đã phát triển thành một bộ sưu tập khổng lồ các bài viết, các blog và các bài phỏng vấn, không phải tất cả đều hoàn toàn xoay quanh việc phát triển Java và đã có một số các tên tuổi lớn nhất trong không gian Java viết bài ở đó. (Hãy xem sự hoài nghi của Bill Joy đối với sự phức tạp của ngôn ngữ Java sau khi Java 5 đã được phát hành và ví dụ mà ông sử dụng để biện minh cho nhưng lo lắng của ông — Enum<> — như là một ví dụ cổ điển.) Thật đáng xem. Lưu ý rằng đối với nhiều địa chỉ Web ở trên, để tận hưởng đầy đủ các lợi thế của trang web/cổng Web sẽ yêu cầu một số hình thức đăng ký. Như khi viết bài này, tất cả chúng chủ yếu là miễn phí và chỉ yêu cầu đăng nhập với một tên người dùng/mật khẩu để chúng có thể nhận dạng khách truy cập và một địa chỉ e-mail để chúng có thể gửi e-mail hoặc các bản tin chủ đề theo định kỳ. (Theo như tôi được biết, tất cả sẽ cho phép bạn chọn không nhận các e-mail, nhưng tôi đã không thử làm thế vì tôi thấy rằng, rất thông thường các bản tin cho tôi biết vài điều tôi thấy là thú vị mà tôi còn chưa biết, và chúng trở thành những thứ có ích thực sự để nhận về trong hộp thư của tôi). Weblogs Blog là một cách dễ dàng cho các nhà phát triển để biết về các tư tưởng, các hồi ức, các khái niệm, các ý kiến, các cuộc tranh luận và các cuộc thảo luận trí tuệ khác xung quanh công nghệ và nhận thức về "các nhà lãnh đạo tư tưởng", những người dường như rất có ảnh hưởng trong các lĩnh vực công nghệ cụ thể. Thậm chí tốt hơn nữa là, có thể tiêu thụ các blog ở máy cá nhân, thông qua trình đọc nguồn tin (feed readers); chúng kéo xuống các bài viết/các mục, tải về máy tại chỗ để có thể đọc ngay cả khi không trực tuyến (offline). Trong thực tế, các blog đã trở nên có mặt ở khắp nơi đến mức mà các thiết bị chuyên dụng (như Amazon Kindle) làm cho dễ dàng thu thập được các thông tin mà nhà phát triển muốn. Điều chủ chốt là phải xác định xem cái nào trong hàng triệu blog để đọc. Mỗi nhà phát triển sẽ có sở thích riêng của mình qua việc chọn các blog nào để đọc và cái nào thì không đọc, nhưng có thể xem xét bắt đầu đọc một số blog sau: The Java Posse The Java Specialists' Newsletter Martin Fowler's Bliki Bất kỳ nguồn cung cấp RSS nào cung cấp bởi các trang web liệt kê trong phần "trang web" ở trên. Hãy nhớ rằng (hầu hết) đây là các ý kiến cá nhân; đôi khi có những ý kiến chia sẻ chung ở đây sau này tỏ ra là không đúng sự thật — đừng bao giờ quyết định sản xuất đơn thuần chỉ dựa vào các thông tin trong một mục blog. Nhưng nếu sử dụng nó để kích hoạt quá trình suy nghĩ thoát khỏi lối mòn thì các blog có thể là một nguồn tài nguyên cải thiện các kỹ năng hùng hậu đáng kinh ngạc. Các gói phần mềm và/hoặc các thư viện Việc theo dõi tất cả các thư viện và các gói phần mềm trong hệ sinh thái Java là một việc vặt, một việc quá dễ dàng nên các nhà phát triển Java dễ bỏ qua. Kết quả là, các nhà phát triển đôi khi sẽ bỏ sót một thực tế là một thứ gì đó mà họ đang tự viết ra đã tồn tại bên trong một nền tảng (giá như họ đã nán lại để khám phá nó!). Những gì tiếp theo là danh sách của tôi về "Mười gói Java hàng đầu mà mọi nhà phát triển Java ít nhất nên biết chúng có tồn tại (và lý tưởng nhất là biết cách sử dụng như thế nào)": java.lang.reflect Có nhiều thư viện và các công cụ của Java phụ thuộc vào gói Reflection đến nỗi tìm hiểu nó hầu như đã trở thành một yêu cầu bắt buộc (nếu không có lý do nào khác hơn là để hiểu khi nào sử dụng nó sẽ không thành công do chính sách bảo mật hay các loại sai lệch về hạ tầng cơ sở khác). Sóng đôi với Reflection cũng là các chú giải của Java 5 và java.lang.annotation. javax.script Với tầm quan trọng về các ngôn ngữ động lướt qua hệ sinh thái Java, việc biết cách làm thế nào để sử dụng các ngôn ngữ kịch bản lệnh từ bên trong mã Java có thể cho phép các nhà phát triển mở rộng hệ thống của họ mà không phải đi qua chu trình biên dịch-liên kết-chạy-thử nghiệm rất tốn công. javax.management và java.lang.management Các gói phần mềm quản lý, còn được gọi là các Phần mở rộng quản lý Java (JMX-Java Management Extensions), là một công cụ mạnh để giám sát các ứng dụng Java khi chúng chạy, vì vậy các nhà phát triển cần phải biết rõ và thoải mái với JMX để xây dựng phần mềm thực sự có thể được các nhà quản trị hệ thống sử dụng. Đừng quên xem xét công cụ jconsole đi cùng với JDK như là một ví dụ về một bảng đồng hồ hiển thị sức khỏe của ứng dụng, vừa là một ví dụ về những gì có thể được xây dựng, vừa là, tự thân nó như một công cụ có ích. (Hãy chăm chú vào kịch bản lệnh mẫu để xây dựng một trình cắm thêm jconsole cho phép hỗ trợ việc tạo kịch bản lệnh bên trong jconsole, một công cụ mạnh trong tay bất kỳ nhà quản trị hệ thống giỏi nào). java.util.concurrent.* Sự tương tranh là vấn đề lớn nhất mà các nhà phát triển sẽ phải đối mặt trong thập kỷ tới và vũ khí chủ yếu mà các nhà phát triển Java sẽ sử dụng chống lại các lỗi tương tranh sẽ là các lớp trong gói phần mềm này và các gói con của nó (.atomic và .locks).Học để sử dụng nó sẽ là điều trọng yếu như, nếu không nói là hơn, học để viết một lớp như thế nào. Hãy tìm hiểu nó, sống với nó và yêu nó. java.util Cũng giống như thế với các lớp trong java.util. Chúng thường xuyên được đưa vào trong mã, đặc biệt là các lớp Collection, đến mức mà nên tranh luận xem java.util.* có cần phải được tự động nhập vào như là java.lang hay không. java.beans Không nghi ngờ gì nữa, JavaBeans là một trong những phần tử cốt lõi được sử dụng trên toàn hệ sinh thái Java, trải qua dưới cái tên ít mang tính tiếp thị là "POJO" (các đối tượng Java thuần túy). Chúng vẫn còn dựa vào các mã JavaBeans, API và đặc tả kỹ thuật, do đó việc dành một ít thời gian cho các lớp trong java.beans chỉ có thể trợ giúp viết các POJO tốt hơn thôi. java.util.logging Các bản ghi chẩn đoán và kiểm toán rất nhanh chóng trở thành công cụ mạnh mẽ để theo vết việc thực hiện các chương trình đang chạy, dù là cho các mục đích gỡ lỗi hay là cho các mục đích quản trị và giám sát. Lời khuyên của tôi: Hãy học để sử dụng gói này và người anh em họ mã nguồn mở của nó là log4j). java.security.* Các API bảo mật của Java, các cơ chế chính sách và các lớp cấp phép là một phần cốt lõi của những gì làm cho môi trường Java thành một nền tảng tính toán an toàn, nhưng chỉ khi các nhà phát triển biết cách làm thế nào để tận dụng nó. Tránh xa các API mật mã hóa — không sử dụng chúng cho đến khi bạn đã tận dụng hết khả năng của mọi tùy chọn khác có sẵn cho bạn. Chúng không khó để sử dụng những việc có được mật mã hóa đúng (có nghĩa là không có sai sót lớn) là một cái gì đó mà cần mất nhiều năm và rất nhiều góp ý sửa chữa của các chuyên gia mã hóa. Trước hết hãy sử dụng các cơ chế khác như SSL/TLS và các lớp GuardedObject/SignedObject/SecureObject. javax.xml.parsers.* , javax.xml.bind và javax.xml.transform.* Bóng dáng XML luôn hiện ra to lớn trong đầu óc của nhà phát triển Java và việc có thể phân tích cú pháp nó (cả trực tiếp cũng như qua một thư viện đối tượng-XML) và chuyển đổi nó (sử dụng XSLT) là một kỹ năng mạnh phải có, nếu không nói là dứt khoát cần thiết. javax.sound.* OK, nó không phải là một kỹ năng phải có, nhưng việc biết cách làm thế nào để bật lên các hiệu ứng âm thanh thường có thể giúp làm sống động hơn các mã lệnh trần tục. Bên cạnh đó, đôi khi âm thanh có thể được sử dụng để cung cấp tín hiệu và thông tin phản hồi trên một hệ thống khi không có cách hiển thị nào trong tầm tay. Và ngoài những điều đó ra, sẽ chỉ còn là một trò đùa bệnh hoạn khi máy tính có thể xổ ra màn hình cả một ngăn xếp đầy thông báo lỗi và phát ra tiếng kêu thất thanh từ bộ phim kinh dị yêu thích của bạn để báo cho người sử dụng biết rằng một cái gì tệ hại đã xảy ra. Tất nhiên, còn có rất nhiều gói khác, cả bên trong JDK và cả bên ngoài JDK đáng tìm hiểu, nhưng việc làm chủ những điều này sẽ đặt bạn vào vị thế tốt cho hầu hết các dự án, chứ không phải để kể ra trong hầu hết các cuộc phỏng vấn tìm việc. Các hội nghị Các hội nghị tiếp tục đóng một vai trò chủ yếu trong huấn luyện các nhà phát triển Java, đặc biệt là đối với những chủ đề đó mà chưa tích tụ khối lượng đủ lớn để lọt vào sưu tập các chủ đề của các công ty đào tạo lớn. Các hội nghị cũng là một cơ hội vàng cho các nhà phát triển gặp gỡ với các nhà phát triển khác để nói về tất cả các kỹ năng và trách nhiệm, mang lại cho người tham dự cơ hội để làm một cái gì đó khá mạnh mẽ (và hoàn toàn cần thiết): trút bầu tâm sự về những yếu kém ở nơi mình làm việc. Đến dự hội nghị còn có một tác dụng phụ có ích (và có thể được phát triển thành lớn hơn và tốt hơn nếu tích cực hoạt động): Đó là xây dựng nhóm đồng đẳng các nhà phát triển giữa những người tham dự. Nhờ có sự phổ biến rộng rãi khắp mọi nơi của e-mail, các danh sách thư chung (như Google Groups hoặc Yahoo Groups), và các công cụ giao tiếp làm việc nhóm gọn nhẹ, việc duy trì liên lạc với những người đã gặp gỡ tại hội nghị trở nên dễ dàng hơn bao giờ hết. Những tình bạn bắt đầu trong bữa ăn trưa hoặc trong các buổi tiệc tối ấy có thể kéo dài suốt đời và luôn thành công, đặc biệt là khi đánh giá các công nghệ mới. Hãy để những lời nói của một người kỳ cựu, đã 30 năm là người tham dự, là diễn giả, là nhà tổ chức và là khách không mời của các hội nghị (không phải tôi, mà là một người bạn của tôi) chỉ dẫn cho bạn: "Những người mới vào nghề đi dự hội nghị để dự các phiên họp; những người kỳ cựu đi dự vì các bữa tiệc và bạn bè. Các bữa tiệc giúp bạn gặp gỡ bạn bè và mọi người giúp bạn tiến bộ trong sự nghiệp của bạn". Danh sách các hội nghị bao gồm: No Fluff, Just Stuff Đây là một hội nghị mà tôi nhiệt tâm hết sức tán thành, không chỉ vì tôi là một diễn giả thường xuyên ở đây, mà vì bảy diễn giả của của Top Ten JavaOne 2007 là các diễn giả của NoFluffJustStuff (bây giờ hoặc trước đây). Không ở đâu khác các nhà phát triển Java sẽ tìm được sự tập trung cao độ vào các chủ đề kỹ thuật với chi phí tốt hơn hoặc địa điểm thuận tiện hơn: quê hương của bạn. (mỗi năm với hơn 30 cuộc hội nghị xuất hiện trên toàn lục địa Bắc Mỹ — và mở rộng sang Châu Âu và sắp tới sẽ ở Châu Á — là các cơ hội tốt để bạn có thể lái xe đến một buổi trình diễn NFJS hơn là rút ra hàng ngàn đô la để đi tới một số thành phố xa xôi và nghỉ lại khách sạn). Cũng không đáng ngạc nhiên rằng một số các cuốn sách được đề nghị trong bài viết này được viết bởi các tác giả là những người xuất hiện ở các cuộc trình diễn NoFluff: Những người tổ chức NFJS đã làm mọi việc có thể để tìm "nguồn chính" về nhiều chủ đề Java và Phát triển nhanh khác nhau. JavaOne Hội nghị này rất lớn, không của riêng ai, luôn được tổ chức ở San Francisco (điều này hoặc được tán thành, hoặc bị phản đối, tùy thuộc vào ngân sách chi cho đi lại của công ty bạn ra sao), nhưng không có cuộc tụ họp nào khác trên Trái đất mà tập hợp lại nhiều nhân vật đầu mối tổ chức và quản lý Java chủ chốt vào một chỗ như JavaOne đã làm. JAOO Không bỏ lại các đạo hữu Java Châu Âu của chúng tôi ngoài giá lạnh, JAOO được tổ chức mỗi năm một lần tại Aarhus, Đan Mạch và đã đang hoạt động bền vững với gần hai thập kỷ mà không hề có bất kỳ dấu hiệu chậm lại. JAOO không chỉ thu hút được một số diễn giả và tác giả xuất xắc nhất, mà nó còn có sự khác biệt tương đối hiếm vì đây là hội nghị đan chéo nhiều công nghệ, có nghĩa là một người tham dự có thể tham gia một phiên họp Java vào buổi sáng, trò chuyện với một số nhà phát triển C/C + + vào bữa trưa, nắm bắt những sự phát triển mới nhất trên Silverlight của Microsoft® hoặc bất cứ điều gì khác mới lạ) vào buổi chiều và uống bia với các chuyên gia Smalltalk vào buổi tối. Nếu bạn đang xem xét mở rộng tầm nhìn của mình, JAOO hoặc hội nghị chị em của nó, QCon (được tổ chức cùng với những người InfoQ) là một nơi tuyệt vời để bắt đầu. Và đối với các đạo hữu của Java đang sống dưới đường xích đạo, JAOO đến với Brisbane và Sydney vào lần đầu tiên trong năm nay (2008); tất cả các dấu hiệu đều nói lên rằng nó sẽ trở lại một lần nữa trong những năm tới. Devoxx Trước đây là JavaPolis, hội nghị này ở Antwerp, Bỉ, đang phá vỡ các ranh giới với tốc độ tăng trưởng phi thường, là một cách tuyệt vời để gặp gỡ các đối tác Châu Âu của bạn (và thưởng thức một số hương vị tuyệt vời của bia Bỉ, trong khi bạn đang ở đó). Các diễn giả là nhưng người xuất xắc nhất và tập trung vào các chủ đề tối tân. Cũng có sàn triển lãm thương mại quy mô thích hợp và nhiều cơ hội để tương tác với các nhà phát triển cùng hội của bạn. Jazoon Một hội nghị tương đối mới cho sân chơi này, hội nghị Jazoon đã được mở ở Zurich (Thụy Sĩ) năm 2007. Với các tên tuổi như Martin Odersky (người tạo ra Scala), Neal Gafter và Simon Phipps (quan chức mã nguồn mở quan trọng nhất của Sun) trong danh sách, Jazoon có vẻ đang tụ họp một nhóm các diễn giả có sức hấp dẫn. Được tập trung hoàn toàn vào các chủ đề Java và họp đúng ở giữa trung tâm của châu Âu, Jazoon có vẻ là một hội nghị tốt cho các đạo hữu Java của châu Âu đánh dấu trong lịch công tác của mình để tham dự Ngoài ra, còn các hội nghị khác, nhằm đến nhiều loại thính giả khác nhau, nhưng những hội nghị ở trên nhằm trực tiếp vào các nhà phát triển Java. Các nhà phát triển muốn mở rộng tầm nhìn của họ về thế giới nên xem xét đến dự một hội nghị công nghệ "thay thế" như các cuộc hội họp về Perl, Python, Ruby hoặc thậm chí .NET, diễn ra trên toàn thế giới; để cho đầu óc mình mở ra với các ý tưởng mới, đôi khi cần xem xét một tập hợp các vấn đề hoàn toàn mới. Các cuốn sách Không có nguồn tài nguyên nào to lớn hơn sẵn có cho nhà phát triển mà dễ dàng có được, như là những cuốn sách truyền thống bình thường. Chỉ cách bạn một khoảng đúng bằng đoạn đường tới hiệu sách địa phương nơi bạn ở (hoặc nếu bạn sống trong các vùng sâu vùng xa, thì đó là trình duyệt Web của bạn và Amazon) là một kho tàng kiến thức kỹ thuật và kinh nghiệm chỉ cần bạn có thể lựa chọn trong vô số sách na ná kiểu "me-too", “Java for Dummies”. Các tập sách này giả định rằng người đọc đã có một kiến thức làm việc về ngôn ngữ và bộ công cụ Java; các cuốn sách cho những người mới bắt đầu học Java phổ biến đến mức kinh ngạc và hầu như tất cả chúng trình bày cùng những vấn đề cơ sở giống nhau. Việc chọn một cuốn nào đó chỉ còn là sự lựa chọn cách tiếp cận, phong cách viết của tác giả và thậm chí đôi khi chỉ là có hay không có các bài giải cho các bài tập (nếu có các bài tập trong đó) trong các đĩa CD đi kèm cuốn sách. Sau khi bạn đã qua phần cơ sở, hãy xem xét các cuốn sách sau: Effective Java (2nd Ed) của Joshua Bloch Cuốn sách đầu tiên nên có trên giá sách của mọi nhà phát triển Java, có tính thời đại, dễ hiểu, không có trở ngại nào. [...]... sách về mẫu, nói đến các cách tiếp cận thiết kế và các ý tưởng thiết kế và vì thế nó giả định rằng hầu hết các độc giả đã đọc cuốn sách của “Nhóm bốn người” (Gang of Four), cuốn Thiết kế các mẫu (Design Patterns) của Gamma, Helm, Johnson và Vlissides Các cuốn sách về mẫu thông thường giúp đỡ các nhà phát triển tạo ra các thiết kế mạnh mẽ hơn bằng cách cho họ một số khối xây dựng thiết kế cơ sở để sửa... Effective Enterprise Java của Ted Neward (là tôi đấy) Bảy mươi lăm cách để đảm bảo chắc chắn rằng các ứng dụng Java doanh nghiệp của bạn (dù chúng được viết bằng Spring, EJB, dịch vụ Web hay không phải những thứ này) không bị hụt hơi Giống như cuốn Java hiệu quả (Effective Java) không phải dành cho các lập trình viên mới bắt đầu với Java, Java Doanh nghiệp hiệu quả (Effective Enterprise Java) cũng không... Development for the Java Platform của Stuart Halloway Sau khi nhà phát triển Java đã học được ngôn ngữ này, sẽ đến lúc mà các nền tảng bên dưới — bản thân máy ảo Java, có nghĩa là các chủ đề như bộ thu dọn rác, đối tượng Reference, ClassLoaders, các luồng và các trình giám sát và v.v — trở thành biên giới lớn tiếp theo để khám phá Một trong hai cuốn sách này (hoặc cả hai) sẽ là một tài liệu hướng dẫn... gian "Java doanh nghiệp" Release It! của Michael Nygard Bất cứ ai tìm cách để viết các phần mềm dành cho các máy phục vụ sản xuất cần đọc cuốn sách này — đó là một cái nhìn thấu hiểu tuyệt vời vào những thứ có thể xảy ra lỗi trong môi trường sản xuất và làm thế nào để đối phó với các hỏng hóc tiềm năng hoặc bằng cách khắc phục chúng hay hoàn toàn tránh chúng Một trong hai cuốn Inside the Java 2... thể dễ dàng mất tác dụng nếu như xem đó tự thân là mục tiêu Java Power Tools của John Smart Một số người đã đề nghị cuốn sách này, giới thiệu một cách nhẹ nhàng về một loạt các công cụ có sẵn trong hệ sinh thái Java Smart cũng cung cấp các khoá đào tạo (Java Power Tools Bootcamp) xung quanh cuốn sách, nhưng cách dễ dàng nhất để hầu hết các nhà phát triển nhận được thông tin sẽ là dùng phiên bản in... phẩm tốt hơn của chính bạn Biết đâu năm năm sau dự án của bạn sẽ vào trong danh sách này, ai biết được? Mục lục Các địa chỉ Web và các cổng Web của nhà phát triển Weblogs Các gói phần mềm và/hoặc các thư viện Các hội nghị Các cuốn sách Các công cụ Xu hướng trong tương lai cần theo dõi Tóm tắt ... Chấm dứt trong Java Việc thêm hỗ trợ bao đóng (còn được gọi là các phương thức lam đa hoặc ẩn danh) sẽ làm đơn giản hóa một số phần nhất định trong viết mã Java và đang được tranh luận sôi nổi để đưa vào trong phiên bản Java 7 Vì cuộc tranh luận này đang chia rẽ sâu sắc cộng đồng, các lập trình viên Java có nhiệm vụ tiến hành một nghiên cứu nhỏ và xem tất cả những ồn ào ấy là gì Các máy DaVinci... tiên cho nền tảng Java (xem phần kế tiếp về các công cụ để biết thêm chi tiết) và cuốn sách này là sự giới thiệu tốt nhất về sức mạnh to lớn mà Ant có Cùng với việc học cách sử dụng Ant, Ant in Action cũng giải thích việc thử nghiệm đơn vị, tích hợp liên tục và các biện pháp thực tiễn triển khai sản xuất, tất cả từ một phối cảnh những thực tiễn hàng ngày của nhà phát triển Java thực hành Các công cụ Cũng... chung sẽ tiến một bước dài theo hướng thuyết phục được họ về hành động dại dột theo cách suy nghĩ keo kiệt, khôn trong chuyện nhỏ/ngốc trong chuyện lớn Cám ơn các công tác viên Xin cám ơn tất cả những người đọc blog của tôi (blogs.tedneward.com), đã dành thời gian từ lịch công tác riêng của mình để gợi ý các nguồn tài nguyên cần có trong danh sách này; một số (nhưng chắc chắn không phải tất cả) bao gồm... lấp đầy khoảng trống mà hầu hết các máy chủ EJB hùng mạnh như WebSphere hoặc phần mềm trung gian xử lý giao dịch khác còn để lại Các tác giả đã làm một công việc tuyệt vời khi từng bước đi qua chu kỳ phát triển dựa vào-POJO, chỉ ra những thế mạnh và điểm yếu của các ý tưởng và làm thế nào để đạt được cách tiếp cận gọn nhẹ (hơn) để xây dựng các ứng dụng doanh nghiệp với các công cụ như Spring và Hibernate . Các tài nguyên Java cần thiết Một bản liệt kê toàn diện các cuốn sách, các địa chỉ Web, các blog, các sự kiện phải kể đến và nhiều hơn nữa Ted. về các nội dung. Để tránh thiên vị hoặc chịu ảnh hưởng không cần thiết, tôi quyết định làm một lời kêu gọi đến cộng đồng blog để tìm các nguồn tài nguyên: các địa chỉ Web, các hội nghị, các. trước khi chúng ta bắt đầu: Các nguồn tài nguyên này không nhất thiết phải là các tài nguyên phổ biến nhất, mạnh nhất hoặc có ảnh hưởng nhất trong hệ sinh thái Java — danh sách như thế có thể