Behavior parameterization và biểu thức lambda

Wudup,

Xử lí dữ liệu trong collection là một trong những công việc thường hay gặp nhất của những người làm lập trình. Từ việc sắp xếp, lọc cho đến biến đổi từ kiểu cấu trúc này sang kiểu khác (từ list sang map). Và tôi phải thú nhận rằng đó là một công việc cực chán vì sự lặp đi lặp lại của những dòng code chỉ để làm cùng một công việc. Để minh họa cho điều vừa nói, tôi có một class tên là Creature với một method tên getFaction và một biến tên army là một list chứa Creature. Nếu ta được yêu cầu chọn ra những sinh vật thuộc phe Undead, thì ta sẽ viết một method filter như sau:

 

army
Undead là cái con ma ở cột số 4 đấy

Nhưng thế giới thì chẳng ngừng thay đổi, nên ngày hôm sau ta lại có yêu cầu khác là chỉ lấy ra những sinh vật có thể đánh từ xa (biết bắn), và method mới lại ra đời: Continue reading “Behavior parameterization và biểu thức lambda”

Nhạc US-UK cover với phong cách vintage

Wuddup,

Tối hôm trước đang ngồi uống nước với bà chị thì quán mở một bài hát cũng nổi trong những năm gần đây nhưng được phối lại với phong cách jazz. Chị bảo bài này mà nó cũng hát được thế à, tôi mới nói là em cũng có cái playlist giống thế  này ở nhà, để bữa nào chia sẻ cho chị. Thế là hôm nay ngồi viết lại sự tích ra đời của cái playlist và chia sẻ nó với mọi người luôn. Continue reading “Nhạc US-UK cover với phong cách vintage”

Để viết test đỡ chuối hơn

Yo wassup guys,

Ai làm trong nghề lập trình này chắc thế nào cũng có biết qua cuốn sách huyền thoại này: Clean Code: A Handbook of Agile Software Craftsmanship. 71ambnhelilNó giúp chúng ta viết ra những dòng code gọn gàng, dễ hiểu, dễ mở rộng và bảo trì hơn. Vậy còn số phận của mấy dòng code dùng trong unit test thì sao? Không phải ai cũng thích viết unit test nên thường đám code này toàn được viết sao pass cái đống test case, cho nó xanh và chỉ cần cái compiler hiểu là được rồi. Chúng ta viết một đống test để có test coverage cao nhất nhưng điều đó không đi đôi với việc người sau (hoặc chính tác giả) khi đọc lại đống test ấy và hiểu chúng một cách dễ dàng. Chắc ai cũng muốn mấy dòng test code khi đọc sẽ giống như là những dòng miêu tả về chức năng đang được test. Ví dụ như sản phẩm của tớ là cái máy xay sinh tố, thì test code của tớ sẽ giống giống như sau: đầu vào là mấy trái dâu, khi chạy máy xong thì kết quả mong đợi là sinh tố dâu chứ không phải là trà đào hay matcha gì đó. Sau một khoảng thời gian viết code và đúc kết kinh nghiệm, tớ đã tổng hợp được vài điểm chuối mà chúng ta hay gặp khi viết test code và cách khắc phục.

Continue reading “Để viết test đỡ chuối hơn”

What da hell is under the Web: phần 5 – HTTP

Hey wassup guys,

phần trước, tớ đã giới thiệu về ba thành phần chính để tạo nên Web gồm có HTML, URIHTTP. Và hôm nay, tớ sẽ nói về thành phần còn lại của bộ ba này là HTTP.

Như chúng ta đã biết là web server và browser trao đổi thông tin dựa trên HTTP – protocol nền tảng của web. Vậy nên web server và web browser hay được gọi là HTTP server và HTTP client, mặc dù browser vẫn còn nhiều chức năng khác hơn là support mỗi HTTP (như FTP, email, local file access). HTTP dùng mô hình client-server: HTTP client gửi HTTP request message tới HTTP server, tại đây message được xử lý, sinh ra HTTP response message và gửi trả vềcho HTTP client. Browser và server hiếm khi trao đổi được trực tiếp với nhau, thường phải thông qua một lô lốc các HTTP proxy (ví dụ như browser > gateway của ISP > firewall của server > web server). Continue reading “What da hell is under the Web: phần 5 – HTTP”

Năm ấy bạn nghe gì – phần ba

Hey wassup guys,

Nếu được hỏi những bài hát ở khoảng thời gian nào làm bạn nhớ nhất thì với tớ là năm cấp ba nhé. Hết 50% nhạc trong playlist của tớ là toàn những bài trong giai đoạn này. Dù vẫn nghe nhạc mới khi vô đại học và đi làm nhưng không nhiều bài đọng lại được trong đầu và có nhiều kỉ niệm như lúc này, nghe được vài tháng là quên. Vậy nên sê ri “Năm ấy bạn nghe gì” nên kết thúc ở đây là hợp lý nhất. Rồi, bắt đầu điểm lại những bài gắn với kỉ niệm của với giai đoạn 2005 – 2008 nào. Continue reading “Năm ấy bạn nghe gì – phần ba”

What da hell is under the Web – phần 4: HTML

Yo wassup guys,

phần trước, tớ đã giới thiệu về ba thành phần chính để tạo nên Web gồm có HTML, URIHTTP. Hôm nay, tớ sẽ nói về nguyên nhân ra đời của HTML (tớ không có ý định viết tutorial về HTML đâu, ngoài kia có nhiều bài viết về chủ để này hấp dẫn bắt mắt hơn nhiều). Mà nó sẽ không chán như hồi đi học với môn lịch sử đâu, biết  thêm được cội nguồn của HTML sẽ giúp ta hiểu được quá trình tiến hóa của markup language đấy, và sau đó là đám đàn em XML nữa (cái XML này cũng hay lắm, phải viết bài riêng cho nó). Continue reading “What da hell is under the Web – phần 4: HTML”

Biệt đội XCOM của tớ

Hey wassup,

2kgm_xcomenemywithin_coverMãi tới năm nay tớ mới bắt đầu chơi thử game XCOM Enemy Within (ra mắt từ hồi 2012) và tớ phải công nhận một điều là đây là game đầu tiên khiến tớ dám thức tới 1 giờ sáng để chơi và hy sinh luôn một vài một buổi tối trong tuần (vì tớ chỉ chơi game vào cuối tuần thôi). Đã thế tớ còn chơi lại ít nhất ba lần, cứ chơi được hai tháng (tính theo thời gian trong game) mà thấy khả năng thua cao hay đi theo hướng phát triển ngớ ngẩn là chơi lại từ đầu. Thế mới biết là tớ ghiền cái game này cỡ này. Điều tớ thích nhất khi chọn một game để chơi là game đó cho phép mình theo đổi diện mạo và quần áo được, và trò này cho phép làm tới sáu nhân vật, hỏi sao không thích. Không những thế, khi một đứa lính trong này mà chết là chết luôn, không có trò hồi sinh :(. Thế nên mới biết cái cảm giác nhìn một đứa lính mình đào tạo qua bao nhiêu trận chiến bị một con Chryssalid xé xác nó đau khổ thế nào. Thế là tớ chơi trò này cực kì cẩn thận, sai một nước đi là lấy save cũ ra chơi lại liền, nên cuối game không chết một em lính nào. Tớ chơi xong trò này cũng được một tháng rồi, hôm nay thấy nhớ cái đội của mình nên chụp hình lại, kể lại tiểu sử và kỉ niệm với từng đứa. Continue reading “Biệt đội XCOM của tớ”