Tag Archives: code

Công cụ đơn giản, bá đạo mà 69.96% sinh viên IT không biết – Phần 2 : Profiler và Command Line

Nối tiếp phần 1, mình sẽ tiếp tục giới thiệu về những công cụ đơn giản, bá đạo mà truờng không hề dạy, làm đồ án cũng không bao giờ dùng. Tuy nhiên, chúng lại đuợc áp dụng trong 96.69% dự án thực tế.

Thông qua những câu chuyện ngắn gọn, mình sẽ giới thiệu và giải thích về các công cụ này nhé. Chúng lần lượt là:

  • Phần 1: Unit Test và Logging
  • Phần 2: Profiler và Command Line

Nhắc lại một tí, hai nhân vật chính trong câu chuyện này là:

  • Tùng, một sinh viên Ép Tao Dê mới ra trường, gia nhập công ty phần mềm Ép Dê Tao với vị trí junior.
  • Sơn, một anh senior dev kì cựu cao to sáu múi.

Profiler – Code chậm thành nhanh, không còn memory leak

Chuyện thứ 3: Mấy tháng sau, Tùng đã không còn là junior developer nữa mà đã… lên chức thành developer. Anh Sơn cũng từ vị trí senior developer leo lên techinical lead.

Duyên trời run rủi, hai người lại bị điều vào chung 1 dự án. Đây là một dự án C#, công việc chính cũng là bảo trì và thêm chức năng mới.

Vì dự án đã được phát triển từ 5,6 năm trước nên code rất nhiều, cấu trúc vô cùng rắc rối và phức tạp. Hồi trước chỉ có khoảng 100-200 user nên không sao, bây giờ hệ thống đã lên tầm 50-100k user nên hệ thống bắt đầu bị chậm, lâu lâu lại crash vì thiếu RAM.

Nhận trọng trách mới, Tùng bắt tay vào optimize code để hệ thống chạy nhanh hơn, ít tốn RAM hơn. Tùng cắm đầu cắm cổ áp dụng đủ mọi kiến thức từ đổi thuật toán, thêm caching, thay ORM. Thế nhưng, sau một tuần, hiệu suất chỉ tăng mỗi … 5-10%.

Thấy tội nghiệp, anh Sơn liền ra tay, hướng dẫn Tùng cách dùng profiler.

Profiler là một công cụ cho phép ta đo đạc thời gian hoạt động, tài nguyên mà các đoạn code sử dụng, từ đó optimize cho hợp lý.

C# Profiler trong Visual Studio
Tùng lần luợt làm theo 4 bước:

  1. Chạy code cùng với profiler một thời gian
  2. Dựa theo profiler tìm, các đoạn code chạy chậm nhất, tốn tài nguyên nhất
  3. Optimize các đoạn code đó
  4. Chạy lại profiler để check kết quả

Đêm đó, hai anh em Sơn Tùng thức suốt đêm tại công ty để tình thương mến thương,… nhầm, để optimize code.

Hoá ra do mỗi lần truy cập, chương trình lại đọc thông tin từ một file text vài trăm MB trên ổ cứng, sau đó không close connection nên bị memory leak.

Anh Sơn chỉ việc load toàn bộ thông tin này lên RAM làm cache, hệ thống chạy nhanh gấp… 5 lần, hết tràn RAM chỉ nhờ 10 dòng code và profiler.

Nhờ profiler, Tùng và anh Sơn nhanh chóng optimize code và fix đuợc memory leak
Bài học rút ra: Profiler là một công cụ rất mạnh mẽ nhưng ít bạn biết vì … làm bài tập và dự án trên trường có bao giờ phải optimize code đâu.

Mỗi ngôn ngữ thường đi kèm với profiler, có khi tích hợp sẵn trong IDE luôn. Do vậy, khi cần optimize code, các bạn hãy nhớ đến profiler nhé.

Command Line – Cảnh giới “thần thánh” không cần chuột

Chuyện thứ tư: Một hôm nọ, Tùng may mắn được ngồi cạnh pair programming với anh Sơn. Tùng để ý anh rất ít khi dùng chuột mà chỉ toàn dùng bàn phím gõ gõ, trên màn hình đen thui nhấp nháy.

Thắc mắc, Tùng hỏi: Sau anh không dùng giao diện cho dễ mà gõ gõ chi vậy anh?

Anh Sơn trả lời: Hở? Em vẫn còn dùng giao điện àh? Chuyển qua dùng Terminal và Vim đi! Tăng ít nhất 50% năng suất làm việc đấy!

Bán tín bán nghi, Tùng cũng bắt đầu tập sử dụng command line và Vim trong các công việc thường ngày: Sửa file, build code, chạy code.

Sau một thời gian, Tùng nhận thấy mình bắt đầu viết code nhanh hơn, thực hiện công việc nhanh hơn, năng suất tăng còn hơn 50% mà anh Sơn đã quảng cáo.

Nhờ làm việc chung với anh Sơn, Tùng cảm thấy trình độ của mình ngày một tăng, tình cảm “chong xáng” dành cho anh cũng tăng theo.

Sự bá đạo của Command Line. Ảnh chôm của codeaholicguy
Command Line là một công cụ vô cùng mạnh mẽ mà nhiều bạn sinh viên/lập trình viên bỏ qua, do đã quá quen thuộc với Windows và IDE.

Ta có thể build code từ command line, sử dụng Git từ command line, thậm chí upload file hoặc deploy code từ command line nốt.

Command Line còn được những bạn làm về mạng hoặc sysadmin ưu dùng. Khi quản lý các server Ubuntu, bạn sẽ không thể dùng giao diện và click như Window mà phải SSH để kết nối tới server, sau đó dùng command line để quản lý.

Hoặc nếu bạn làm Front-end developer, command line càng là người bạn không thể thiếu. Hầu như các tool của mảng front-end (Babel, Webpack, npm) đều dựa trên nền NodeJS, chạy trên command line. Thành thạo command line là nền tảng để sử dụng các tool này.

Do đó, mình khuyến khích các bạn nên học và làm quen cách dùng command line nhé! Ví dụ như trong clip dưới, mình và Codeaholicguy có huớng dẫn cách dùng Git trên command line.

Bạn có thể cài Bash trên Windows 10, hoặc kiếm một con VPS Ubuntu để tập nghịch command line nhé. Ngoài ra, bạn có thể đọc cuốn này để nhập môn cách dùng command line: Learn Enough Command Line to Be Dangerous.

Nếu bạn có hứng thú thì cứ để lại comment nhé. Nếu có nhiều người quan tâm thì sau này mình sẽ có một series riêng về cách dùng command line nha!

Chuyện cuối cùng

Sau đó, anh Sơn và Tùng nhận ra tình cảm của mình dành cho nhau. Hai người sống hạnh phúc bên nhau đến cuối đời. Họ có với nhau một đứa con xinh xắn tên là Sơn Tùng MTP.

Từ đó Tùng và anh Sơn sống hạnh phúc bên nhau đến cuối đời
Các bạn có thể sẽ thắc mắc: Tại sao ngay từ đầu anh Sơn không vô giúp đỡ Tùng mẹ nó đi, chờ nó te tua rồi mới nhảy vô vậy?? Đương nhiên anh Sơn có thể làm vậy, nhưng để Tùng tự va chạm, tự trải nghiệm sẽ giúp Tùng học được nhiều hơn, nhớ lâu hơn.

Do vậy, khi gặp khó khăn, các bạn có thể hỏi người có kinh nghiệm hơn. Tuy nhiên, hãy tự mình tìm hiểu trước, vừa để cho bản thân mình, vừa tiết kiệm thời gian của người khác nhé!

Kết

Đấy, trong 2 phần của bài viết, mình đã chia sẻ về bốn công cụ đơn giản, mạnh mẽ nhưng rất hữu ích bao gồm:

  1. Unit Test
  2. Logging
  3. Profiler
  4. Command Line

Bạn còn biết công cụ nào nữa không? Hãy chia sẻ và thảo luận trong phần comment nhé ;).

Advertisements

Ngẫm – Không có khiếu code thì liệu có theo ngành lập trình được không?

Cuối năm rồi, nên hôm nay mình sẽ không post bài về technical làm đau não bạn đọc nữa. Thay vào đó, chúng ta hãy cùng chém gió và suy ngẫm về một vấn đề:

  • Để theo ngành lập trình này, liệu có cần năng khiếu hay không?
  • Không có khiếu code thì liệu có tiến xa trong ngành đuợc không?

Góc nhìn của mình là:

Méo cần đâu! Thật ra trong ngành lập trình, tài năng và năng khiếu cũng *éo quan trọng mấy! Đam mê và nỗ lực quan trọng hơn nhiều!

Continue reading Ngẫm – Không có khiếu code thì liệu có theo ngành lập trình được không?

Ngày xửa ngày xưa, lập trình là vốn là chuyện của … đàn bà???

Hiện tại, theo quan điểm của nhiều người, lập trình là một ngành khô khan, không phù hợp với phái nữ. Bản thân trong ngành lập trình, nam giới cũng chiếm tỉ lệ khá lớn.

Tuy nhiên, bạn có biết, những con người đặt nền móng cho ngành lập trình lại là… phụ nữ??

Bạn có biết, ngày xưa tỉ lệ nam-nữ trong ngành lập trình là 50-50, bây giờ chỉ còn 92-8.

Bạn có thắc mắc tại sao ngành lập trình lại có đông nam và ít nữ như vậy hay không?

Nếu có, hãy cùng đọc bài viết để tìm hiểu nhé!

Note: Đây là bài viết nhằm tôn vinh chị em phụ nữ trong ngành code. Mình đặt tựa đàn bà nghe cho nó có vần có điệu hơn thôi, ko có ý coi thường gì chị em phụ nữ đâu nha hehe.

Continue reading Ngày xửa ngày xưa, lập trình là vốn là chuyện của … đàn bà???

Chuyện chàng coder nghèo và 2 ly trà sữa

Hôm nay, Code Dạo mời các bạn thưởng thức một truyện ngắn nho nhỏ mang tên “Chuyện chàng Coder nghèo và 2 ly trà sữa” nhé.

Chương 1 – Anh Coder và cô bé mê trà sữa

Ngày xửa ngày xưa, ở một trường Đại Học nọ, có một chàng sinh viên nghèo tên Tùng. Vốn đam mê lập trình từ thuở bé, lại thêm ham học hỏi và khám phá nên Tùng may mắn được giành được học bổng ngành CNTT của đại học Ép Tao Dê.

Lên Đại Học, do bị bạn bè xấu dụ dỗ, Tùng bị sa đà vào game gọt gái gú. Sáng ra Trần Duy Hưng chơi gái, tối về Trần Đức Cảnh chơi game. Từ một thanh niên tương lai sáng lạn, Tùng chểnh mảng việc học hành, tà tà ra trường với tấm bằng loại khá.

Rồi Tùng cũng tìm được việc làm tại công ty Ép Tao Dê, mức lương bèo bọt 3,4 triệu chỉ đủ ăn trà đá uống mì tôm mỗi tháng.

Thế rồi, Tùng biết yêu!

Continue reading Chuyện chàng coder nghèo và 2 ly trà sữa

Series JavaScript sida – Sự bá đạo của Async/Await trong JS

Lâu rồi chưa viết bài về kĩ thuật nên hôm nay viết một bài để dân tình biết là mình vẫn còn code nhé!

Kì này, chúng ta sẽ tìm hiểu về async/await, một cặp từ khoá rất bá đạo trong JavaScript chuẩn ES2017. Biết cách dùng async/await sẽ giúp ta viết code ngắn gọn, hiệu quả và dễ dàng hơn nhiều nhé.

Continue reading Series JavaScript sida – Sự bá đạo của Async/Await trong JS

Series Nhập Môn Lập Trình – Năm con đường kiếm tiền từ nghề lập trình

Một trong những câu hỏi mình hay nhận được về ngành IT là “ngành này ra trường có dễ xin việc, có dễ kiếm tiền không”? Câu trả lời dĩ nhiên là CÓ!

Ở bài trước, mình có chia sẻ đôi điều về triển vọng nghề nghiệp trong ngành lập trình. Là lập trình viên, có rất nhiều cách để bạn kiếm tiền. Trong bài này, chúng ta cùng tìm hiểu 5 con đường để kiếm tiền từ ngành này nhé!

Continue reading Series Nhập Môn Lập Trình – Năm con đường kiếm tiền từ nghề lập trình

Jon Skeet đã dạy tôi điều gì về tính khiêm tốn?

Hôm nay, chúng ta tạm bỏ qua những dòng code và những bài technical căng thẳng để cùng nghiền ngẫm về lòng tự cạo, tính khiếm tốn – một đức tính mà các developer khá thiếu.

Continue reading Jon Skeet đã dạy tôi điều gì về tính khiêm tốn?