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ó.

pdf17 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 2026 | Lượt tải: 0download
Tóm tắt nội dung Các tài nguyên Java cần thiết, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 thuật và 
các kỹ thuật mà lập trình viên có thể sử dụng để cải thiện năng suất của 
mình, vượt xa những gì mà IDE cung cấp cho họ. 
 The Pragmatic Starter Kit 
Cuốn sách này bao gồm Các phần thử nghiệm đơn vị thực dụng (với JUnit), 
Tự động hóa dự án thực dụng và Kiểm soát nguồn thực dụng (với 
Subversion). Mỗi phần đề cập điều cốt lõi của từng chủ đề thông qua tập 
trung thảo luận để đi sâu trực tiếp đến cốt lõi của vấn đề mà không làm mất 
đi sự tập trung. Đặc biệt, Tự động hoá dự án là một một món khai vị tuyệt 
vời cho cuốn sáchAnt hành động (Ant in Action), nhưng cũng trình bày 
những cái tại sao và những gì làm cho một quá trình xây dựng tốt. 
 Ant in Action (2nd Ed) của Erik Hatcher và Steve Loughran 
Ant là một tiện ích xây dựng ra mắt lần đầu 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 giống như có nhiều thứ để xây dựng một căn nhà hơn là "nắm lấy một cái 
búa và bắt đầu đóng các tấm ván", có nhiều thứ để phát triển Java hơn là "nắm lấy 
IDE của bạn và bắt đầu viết mã". Mặc dù chắc chắn rằng có một IDE tốt là một sự 
trợ giúp rất lớn để viết mã Java, các công cụ khác có thể mang lại cùng giá trị như 
— nếu không phải là nhiều hơn — IDE. 
Không theo thứ tự đặc biệt nào.... 
 The IDE 
Tất nhiên, việc thảo luận về công cụ bắt đầu với IDE. Cố gắng để tránh xa 
con đường thương mại hóa, cả Eclipse lẫn NetBeans là mã nguồn mở và 
miễn phí và do đó cung cấp một tùy chọn hấp dẫn cho "các bước đầu tiên". 
 Thử nghiệm đơn vị (Unit testing) 
Công cụ mãi mãi yêu thích ở đây là sản phẩm nguồn gốc, bắt đầu cuộc cách 
mạng trong kiểm thử đơn vị, đó là JUnit, nhưng một số công cụ khác len lỏi 
vào và được sử dụng phổ biến, gồm có TestNG và không ngạc nhiên, có cả 
JUnitPerf, trong số đó. 
 Tích hợp liên tục (Continuous Integration) 
Một máy chủ tích hợp liên tục thường xuyên kiểm tra mã nằm ngoài kiểm 
soát nguồn, xây dựng nó, chạy các thử nghiệm đơn vị đối với nó và báo cáo 
về bất kỳ các sự cố xây dựng nào cho các nhà phát triển, thường là qua e-
mail. Một số phiên bản mã nguồn mở có sẵn, nhưng một phiên bản đã tập 
hợp được nhiều sự chú ý là Hudson, một máy chủ tích hợp liên tục với 
nhiều trình cắm thêm và có khả năng mở rộng cao. Gốc ban đầu là 
CruiseControl và chỉ nói về các lệnh. 
 Phân tích tĩnh 
FindBugs FindBugs là một công cụ phân tích tĩnh mã nguồn mở chạy trên 
mã Java, thực hiện phân tích sâu n-đường để tính toán tất cả các tuyến mã 
lệnh có khả năng xảy ra và báo lại mọi loại lỗi và cảnh báo mà nó tìm thấy, 
dựa trên một bộ quy tắc rộng lớn. Được phát triển bởi William Pugh (cũng 
là William Pugh người đã phát hiện một lỗi trong mô hình bộ nhớ của Java 
), khẳng định lớn nhất cho sự nổi tiếng của FindBugs là khả năng phân tích 
mã Java tìm các lỗi tương tranh, một điều mà mọi lập trình viên đều đánh 
giá cao. 
 Theo vết gói mạng 
WireShark (mà trước đây thường được gọi là Ethereal) cho các lập trình 
viên trông thấy những gì đang đi ngang qua mạng, tạo cho họ một cơ hội để 
kiểm tra rằng những gì đang chạy trên dây đúng là những thứ cần phải 
chuyển đi trên mạng và những gì không nên có ở trên mạng (như là các 
thông tin nhạy cảm hoặc các mật khẩu dưới dạng chưa mật mã) thì không 
có ở đó. 
 Ảo hóa (Virtualization) 
Một công cụ ảo hóa (hoặc có lẽ chính xác hơn nên gọi nó là một nền tảng) 
như VMWare, Xen, VirtualBox hoặc VirtualPC cung cấp cho các lập trình 
viên khả năng để tạo ra một môi trường giống hệt với môi trường mà máy 
tính sản xuất sẽ chạy mà không bị mất năng suất môi trường của máy PC 
chứa nó. Nó cũng cung cấp một biện pháp thuận tiện để có một chỗ chạy 
thử các phần mềm "thí nghiệm" mà không gây ra nguy hiểm cho máy tính 
phải dùng để sản xuất. Hầu hết chúng đều có một tùy chọn miễn phí nào đó, 
nếu như không phải là các dự án hoàn toàn mã nguồn mở. 
Thực tế là một vài trong số này là các công cụ thương mại, bạn không nên sợ; nếu 
một công cụ tiết kiệm cho bạn thậm chí chỉ một giờ một tuần thì trong bao lâu nó 
sẽ bù lại cho bạn tiền mua chính nó? Và nếu ban quản lý không đồng ý với lý luận 
đó, việc tính toán cẩn thận số thời gian mà một công cụ có thể tiết kiệm được (dù 
đó là thời gian của nhà phát triển hoặc dự đoán sản xuất hoặc thời gian thực hiện) 
nói 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 
Ostrovich Greg, Ryan Slobojan, Hamlet D'Arcy (người đã yêu cầu được nêu tên là 
"Một kẻ lưu vong khác giữa thiên hà, kiếm tiền trong CNTT để mua các phụ tùng 
và vá víu lại tên lửa đẩy của mình, tại đó anh ta sẽ sửa chữa con tầu không gian 
của mình và quay lại hành tinh quê nhà"), Pierre-Marc Larocque, Prashant Rane, 
Marc Stock, Eric Kerwin, Morten Anderson, Alex và Yvonne Miller, Rahul Raj, 
Brian Sletten và Neal Ford. 
Xu hướng trong tương lai cần theo dõi 
Dĩ nhiên, thật là chẳng tốt đẹp gì đối với các nhà phát triển Java khi dành thời gian 
để nghiên cứu công nghệ hôm nay, nếu khi học xong, các công nghệ của ngày mai 
đã tiến lên và tất cả mọi thứ đã học bỗng nhiên lỗi thời. Để mắt đến những gì đang 
lay động xung quanh như là "những làn sóng của tương lai" có thể ít nhất cũng 
quan trọng, nếu chỉ có mục đích là khi CTO của công ty tình cờ đứng bên cạnh 
bạn trong thang máy và hỏi "Rốt cuộc, những thứ mà tôi nghe nói về ngôn ngữ 
chức năng là cái gì thế? Chúng ta có nên xem xét kỹ điều đó không?", bạn có thể 
có một câu trả lời rõ ràng. 
Một số hướng "tương lai" xung quanh nền tảng Java, không xếp theo một thứ tự 
đặc biệt nào, bao gồm: 
 Ngôn ngữ động 
Các ngôn ngữ như Groovy và JRuby đã sinh ra các dự án khác đáng để xem 
xét như Clojure và Fan; chúng thí nghiệm ý tưởng rằng một môi trường 
định kiểu yếu hơn (less-strongly-typed) có thể mang lại năng suất cao hơn 
và đưa ra nhiều tùy chọn hơn. Tuy nhiên, đây không phải là một lời kêu gọi 
từ bỏ ngôn ngữ Java: hiệu quả tốt nhất sẽ đến với việc kết hợp của cả hai. 
 Các ngôn ngữ lập trình chức năng (Functional languages) 
Được Scala đi tiên phong, các ngôn ngữ lập trình chức năng có đặc tính ưu 
việt là ngầm thân thiện tương tranh do xu hướng chung của các ngôn ngữ 
này là khuyến khích dùng các chức năng có khả năng kết hợp lại với nhau 
và không dùng trạng thái chia sẻ chung (mặc dù chắc chắn là đôi khi chúng 
có thể có một cú pháp mà chỉ có người mẹ đẻ ra mới có thể yêu thích 
được). Jaskell là một bản thực thi Haskell-trên-JVM và (lại là) Clojure cũng 
thuộc họ này, cung cấp một tầm nhìn về bộ nhớ giao dịch phần mềm trông 
như thế nào khi chạy ứng dụng thực sự. 
 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 
Một phiên bản mới của JVM được thiết kế để thân thiện hơn với các ngôn 
ngữ khác (như ngôn ngữ động và ngôn ngữ chức năng được đề cập ở trên), 
có thể, hoặc có hoặc không, kết thúc bằng việc trở thành một luồng chủ đạo 
của JVM. Để mắt đến vấn đề này sẽ giúp hiểu được những lý lẽ tán thành 
và phản đối việc chạy ngôn ngữ động/ngôn ngữ kịch bản lệnh trên JVM 
hiện tại. 
 Phát triển giao diện người dùng 
Giữa Flash/Flex, Silverlight và JavaFX, các trình duyệt Web gần như có sự 
thay đổi trang trí bề ngoài của những phần gây sửng sốt (và cũng có thể làm 
kinh sợ nữa). Đấy là thậm chí còn chưa xét đến các khung công tác Web 
phía máy chủ mới trong không gian Java hoặc những thứ khác như bộ dụng 
cụ Web của Google (Google Web Toolkit-GWT). Giao diện người dùng 
luôn luôn là và tiếp tục là (và sẽ còn là, trong một tương lai dự đoán được) 
ham muốn đích thực. Việc hiểu biết một hoặc hai, chưa nói đến một thư 
viện "phía khách phong phú" như Swing hay SWT, sẽ có lợi ích to lớn khi 
cố gắng xây dựng một cái gì đó tương tác nhiều hơn cái mà các trang 
HTML có thể cung cấp. 
Giống như với bất cứ điều gì có liên quan đến "tương lai", hãy chú ý rằng những 
gì đang được thảo luận ngày hôm nay có thể trở thành một hướng sai, một chuyện 
đầu voi đuôi chuột, một sự sao lãng tạm thời, một sự chịu ảnh hưởng từ ngành 
công nghiệp, hoặc trở thành Một Điều Vĩ Đại Tiếp Theo; hãy có đầu óc cởi mở và 
tinh thần hoài nghi lành mạnh với liều lượng như nhau. 
Tóm tắt 
Xin cứ tự nhiên đóng góp vào danh sách này — nó sẽ chỉ dẫn đến một danh sách 
các nguồn tài nguyên tốt hơn mà thôi. Thời gian trôi đi cũng sẽ làm thay đổi nội 
dung của nó vì hệ sinh thái tiếp tục tiến hóa và thay đổi và lớn mạnh. Đây là một 
điều tốt; nếu chúng ta phải sử dụng cùng một môi trường Java mà chúng ta được 
cung cấp vào năm 1995, chúng ta đã đi đến cái gì đó khác mất rồi. 
Tích cực hoạt động trong hệ sinh thái: đóng góp các bản vá lỗi, đề nghị cải tiến và 
nếu tất cả đều thất bại, hãy thoát ra và xây dựng tác 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 

File đính kèm:

  • pdfCác tài nguyên Java cần thiết.pdf
Tài liệu liên quan