Giaosucan’s Blog chia sẻ kiến thức kĩ thuật theo cách bá đạo
Tàn Code Lệnh
Lời tựa
Tàn code lệnh là series bài viết giải thích nội dung cuốn Clean Code của Robert C. Martin theo phong cách kiếm hiệp
Rober C Martin
Chương 1: Huyết hải thâm cừu
Hỡi thế gian, code là chi mà bao kẻ quyết thề sống chết? Cũng chỉ là vài dòng text, sao Tester khẳng định đó là bug, còn Developer nói rằng đó là một tính năng? Giang hồ hiểm ác, kẻ nào đã sáng tạo ra code? Để gây nên bao nhiêu ân oán tình thù, tạo nên bao tinh phong huyết vũ, gây nên sóng gió trong giới code đạo.
Thần Code sơn trang, đỉnh Sillicon Valley
Ngàn dặm tuyết rơi, gió lạnh như muôn vạn lưỡi dao chém xuống. Trong đêm tối, tiếng reo hò vang trời dậy đất, một đám người khí giới tuốt trần đang vây quanh một trang viện nhỏ
Trên giường, một người đàn ông trạc tứ tuần nằm lặng lẽ, tay cầm một vật mầu đen
Thần Code sơn trang của ta trải qua đã 7 đời, đóng góp biết bao nhiêu framework, open source platform cho giới code đạo. Nay cũng chỉ vật này mà bị hủy trong vòng 1 đêm
Một lão bộc râu tóc bạc phơ, đang quỳ bên cạnh, nước mắt lưng tròng. Người đàn ông khẽ nói
Ngươi hãy đem đứa bé này đi, nó là giọt máu cuối cùng của ta. Hãy nuôi dạy nó lên người, đừng hướng nó đi theo con đường code đạo. OT nhiều, lương thấp khổ lắm. Còn vật này là vật chí tà chí hung, vì nó mà bao kẻ đã táng mạng, ngươi hãy hủy nó đi
Xin trang chủ an tâm, lão nô nguyện đem hết sức bảo vệ thiếu chủ, dạy dỗ nên người…
Gió vẫn buốt lanh từng cơn, người lão bộc đứng trên đỉnh núi, xa xa cả sơn trang đã chìm trong biển lửa. Ông khẽ thở dài
Cũng chỉ vì vật này mà cả sơn trang đã phải chịu thảm sát. Tay ông siết chặt, hữu chưởng giơ lên định bóp nát vật đó. Đúng lúc đó, tiếng khóc oe oe của cậu bé trong bọc chợt vang lên. Hai khóe mắt ông rưng rưng đôi hàng lệ
Trang chủ hãy thứ lỗi, lão nô không thể làm theo di nguyện của người……
Hai mươi năm sau,
Đại Việt quốc, Fsoft môn, đỉnh Complex.
Một chàng trai trạc tuổi độ đôi mươi, đang gục đầu bên máy tính. Đứng bên cạnh là một ông già tóc bạc phơ, thở dài ngao ngán.
Dương Cú Đơ, con lại code sai nữa rồi. Ta đã nhắc nhiều lần, viết code là phải tuân theo Coding convention, không được có tư tưởng “ vâng, con đang test thử có chạy không nên code tạm thế thôi, sửa sau”, nó sẽ tạo cho con thói quen xấu code ẩu. Ngoài ra, đừng cố cắm đầu code nhanh, code ẩu. Hãy tập cho mình thói quen code chậm lại một chút, suy nghĩ kĩ, con sẽ nhận ra nhiều cách để giải quyết vấn đề hơn, cần code chất lượng hơn số lượng
Còn nữa, mấy năm đại học, con không chịu rèn luyện kiến thức, chỉ tối ngày lo chơi game. Cả chiếc laptop ta mua cho con hơn 30 lượng, Ram 16G, CPU Core i7 4 core với mục đích để con build code nhanh, load app tốc độ nhưng con lại dùng nó để lướt facebook, check hàng thiên địa, có khác gì giết gà dùng dao mổ trâu ??
Chàng trai chỉ biết cúi đầu
Sư phụ, con thật vô dụng, xin sư phụ trách phạt
Ông lão thở dài
Dương Cú Đơ, nay con đã lớn, đã đến lúc con cần biết thân phận thật của mình rồi
Hai mươi năm về trước, cha con là trang chủ của Thần Code sơn trang, có ngoại hiệu là Độc Code Đạo Code Dương Chấn Hoàn. Thần Code sơn trang có bảo vật chấn trang là “Tàn Code Lệnh”, không ai biết trong đấy có gì, chỉ biết rằng người nắm trong tay “Tàn Code Lệnh”, sẽ làm minh chủ Sillicon Valley, thiên hạ nể sợ. Ai ngờ đâu, nó cũng khiến cho bao kẻ nhòm ngó. Từ Google bang đến Facebook phái, kẻ nào cũng muốn chiếm nó. Cha con đã bị chúng dùng độc dược “Tiêu Hồn Tán Não đơn” là mất hết trí nhớ, quên hết kiến thức coding, dẫn tới hơn 200 developer của Thần Code sơn trang bị giết trong vòng 1 đêm. Chỉ có ta và con là người sống sót duy nhất…
Ta đã dành 20 năm để nghiên cứu bí mật của Tàn Code lệnh, cuối cùng cũng đã tìm ra huyền cơ ẩn chứa trong nó, mau theo ta…
Chàng trai đi theo ông lão đến một căn mật thất, đó là một căn phòng được trang bị hết sức hiện đại
Bên trong Tàn Code lệnh là một cuốn sách được mã hóa tên là “Clean Code” của Robert Cecil Martin, một vị nhất đại tông sư trong giờ code đạo, có ngoại hiệu là Uncle Bob, nay đã biệt tích trong giới code đạo, ghi lại những bí kíp viết code, con đường để trở thành một developer thực thụ.
Uncle Bob là bạn tâm giao với Dương trang chủ, ông đã để lại cuốn sách này cho cha con, ông nhờ nó mới trở thành đệ nhất cao thủ coding Hackathon, nhưng cũng vì nó mà toàn gia bị thảm sát. Ta vì muốn con trả mối huyết hải thâm cừu mà đã cãi di nguyện của ông, giữ lại nó, mong con có thể học tập thành tài, khôi phục lại danh tiếng Thần Code Sơn Trang.
Nói rồi, ông bật 1 chiếc máy tính Linux Ubuntu, gõ command trên terminal
./tan_code_lenh.sh (Enter)
Cả căn mật thất bỗng sáng bừng, trên màn hình máy tính hiện lên dòng chữ
There Will Be Code
Code, Code nữa, code mãi
Coding là một nghệ thuật, người viết code là một nghệ sĩ. Từng dòng code viết ra, phải như ngọc châu tuôn rơi (Good code). Khi code chạy phải nhanh như phong vũ (performance), có sức mạnh như bạt sơn, đảo hải (chạy đúng nghiệp vụ, dễ maintains). Do đó người coder khi viết code thì tâm phải tĩnh, tâm bất biến giữa dòng đời vạn biến, không được để nữ sắc làm lay động. Nêu không làm được sẽ rơi vào hỏa ngục, viết ra những “bad code”
Cũng như người luyện võ công trước khi học các thế võ bí truyền như hàng long thập bát chưởng, đả cẩu bổng pháp, thì phải rèn luyện tâm pháp, tu luyện chân khí để cường thân tráng thể thì mới có thể học võ. Người học code trước khi học ngôn ngữ lập trình Java, C# thì phải học kiến trúc máy tính, cơ sở dữ liệu và thuật toán, toán học để có căn cơ. Nếu coi thường mà bỏ tắt thì chẳng khác gì thợ hồ coding, mong gì đạt đến level architect, hay scientist.
Good Code
Good code là căn bản trong code học. Tưởng tượng, một coder viết ra một chương trình hot như Ngọc Diện công chúa Ngọc Trinh nhưng “não ngắn” như Ngọc Trinh, thành ra chương trình càng ngày càng sa sút sau mỗi đợt tái xuất giang hồ, đợt sau tàn tạ hơn đợt trước đến nỗi tác giả phải rửa tay gác phím quy ẩn để tránh bị giang hồ chê cười.
Đó là do “dục tốc bất đạt”, coder vội vã lăng xê sản phẩm ra thị trường và thực hiện trong nó một đống lộn xộn các code, chỉ cần chạy được là xong và cho rằng sẽ quay lại sửa sau nhưng có 1 điều, luật của LeBlanc: Later equals never (Để sau có nghĩa là không bao giờ). Thêm liên tục tính năng, code lại càng tệ hơn và cuối cùng thì không quản lý nổi
Bad Code
Bad Code giống như chất độc của Đường Môn, ban đầu chỉ cần viết cho chạy nên làm rất nhanh. Nhưng về sau, mỗi lần thay đổi lại phá vỡ phần code khác, làm hệ thống bắt đầu rối loạn, như độc dược lan vào lục phủ ngũ tạng, năng suất bắt đầu chậm dần rồi về 0, vô phương cứu chữa
Dương Cú Đơ đọc đến đây thì tâm hồn rúng động
Trời hỡi, hai mươi năm qua ta đã lãng phí cuộc đời của mình trong Võ lâm truyền kì, liên minh huyền thoại, thiên địa. Làm sao ta có thể báo được mối thù toàn gia tru diệt 20 năm về trước. Ta phải làm sao đây, đã quá muộn mất rồi
Bỗng trên không trung, một tiếng cười lanh lảnh phát ra như tiếng chuông đồng
Chưa quá muộn đâu, thiếu hiệp
(Còn nữa)