Site icon Blog Dương Trạng

Từ coder đến developer – Tôi đi code dạo

Từ coder đến developer – Tôi đi code dạo

Từ coder đến developer – Tôi đi code dạo

Tiếp tục từ phần 1, tôi sẽ giới thiệu những công cụ đơn giản nhưng vô cùng hữu ích mà trường học không dạy và không sử dụng trong các dự án. Tuy nhiên, những công cụ này lại được áp dụng trong 96.69% các dự án thực tế.

Thông qua các câu chuyện ngắn, tôi sẽ giới thiệu và giải thích về những công cụ này. Các công cụ này bao gồm:

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

Profiler – Tăng tốc code và khắc phục lỗi memory leak

Chuyện thứ 3: Sau vài tháng làm việc, Tùng đã không còn là junior developer nữa mà đã thăng chức thành developer. Anh Sơn cũng từ vị trí senior developer thăng chức thành technical lead.

Vào một ngày đen tối, cả hai người bị chuyển vào làm cùng một dự án. Đây là một dự án sử dụng ngôn ngữ lập trình C#, công việc chính 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, mã nguồn rất lớn và cấu trúc phức tạp. Trước đây, chỉ có khoảng 100-200 người dùng nên không có vấn đề gì. Nhưng hiện tại, hệ thống đã lên đến 50-100k người dùng nên hệ thống trở nên chậm chạp và thỉnh thoảng gặp lỗi không đủ RAM.

Tùng nhận trách nhiệm mới, anh ta bắt đầu tối ưu mã nguồn để hệ thống chạy nhanh hơn và tiêu thụ ít RAM hơn. Tùng áp dụng mọi kiến thức từ việc thay đổi thuật toán, thêm caching và thay đổi ORM. Nhưng sau một tuần làm việc, hiệu năng chỉ tăng thêm 5-10%.

Thấy vậy, Sơn ra tay và hướng dẫn Tùng cách sử dụng profiler.

Profiler là một công cụ cho phép đo đạc thời gian hoạt động và tài nguyên mà các đoạn mã sử dụng, từ đó tối ưu mã nguồn một cách hợp lý.

C# Profiler trong Visual Studio

Tùng thực hiện theo 4 bước sau:

  1. Chạy mã nguồn cùng với profiler trong một khoảng thời gian.
  2. Tìm các đoạn mã chạy chậm nhất và tốn nhiều tài nguyên nhất dựa trên thông tin từ profiler.
  3. Tối ưu các đoạn mã đó.
  4. Chạy lại profiler để kiểm tra kết quả.

Trong đêm đó, Sơn và Tùng thức suốt đêm tại công ty để tối ưu mã nguồn.

Cuối cùng, họ nhận ra rằng mỗi lần truy cập, chương trình phải đọc thông tin từ một tệp văn bản và không đóng kết nối, dẫn đến việc gặp vấn đề về memory leak.

Sơn chỉ cần tải thông tin này lên RAM làm bộ nhớ cache, hệ thống chạy nhanh gấp 5 lần và không gặp vấn đề về RAM chỉ với 10 dòng mã và sử dụng profiler.

Nhờ profiler, Tùng và Sơn tối ưu mã nguồn và khắc phục vấn đề về memory leak

Bài học từ câu chuyện này: Profiler là một công cụ rất mạnh mẽ nhưng không được nhiều người biết đến vì trong quá trình học và làm dự án, chúng ta không bao giờ phải tối ưu mã nguồn.

Mỗi ngôn ngữ lập trình thường đi kèm với profiler và thậm chí có thể tích hợp sẵn trong các trình biên dịch hoặc môi trường phát triển tích hợp (IDE). Do đó, khi cần tối ưu mã nguồn, hãy nhớ đến việc sử dụng profiler.

Command Line – Cánh cửa thần thánh không cần sử dụng chuột

Chuyện thứ tư: Một ngày nọ, Tùng có cơ hội làm việc bên anh Sơn. Tùng nhận thấy anh Sơn rất ít khi sử dụng chuột, thay vào đó chỉ sử dụng bàn phím để gõ gõ trên màn hình đen.

Tò mò, Tùng hỏi: Anh không sử dụng giao diện để tiện gõ gõ sao?

Anh Sơn trả lời: Ôi, em vẫn còn sử dụng giao diện à? Hãy chuyển sang dùng Terminal và Vim! Việc làm này sẽ tăng ít nhất 50% hiệu suất làm việc!

Tin nhắn đó mang tính chất quảng cáo, Tùng cũng bắt đầu học và sử dụng command line và Vim cho công việc hàng ngày như sửa file, xây dựng mã nguồn và chạy mã nguồn.

Sau một thời gian, Tùng nhận thấy mình viết mã nguồn nhanh hơn, thực hiện công việc một cách nhanh chóng hơn và hiệu suất làm việc đã tăng hơn 50% như lời hứa của anh Sơn.

Vì làm việc cùng anh Sơn, Tùng cảm thấy trình độ của mình ngày càng tiến bộ và tình cảm dành cho anh Sơn cũng tăng lên theo.

Sức mạnh của Command Line. Ảnh chụp của codeaholicguy

Command Line là một công cụ mạnh mẽ mà nhiều sinh viên/lập trình viên bỏ qua bởi vì chúng đã quá quen thuộc với giao diện Windows và môi trường phát triển tích hợp (IDE).

Chúng ta có thể xây dựng mã nguồn, sử dụng Git và thậm chí tải lên tệp tin hoặc triển khai mã nguồn từ command line.

Command Line cũng được sử dụng phổ biến trong lĩnh vực mạng và quản trị hệ thống. Khi quản lý các máy chủ Ubuntu, bạn không thể sử dụng giao diện và click như trong Windows mà phải sử dụng SSH để kết nối với máy chủ, sau đó quản lý bằng command line.

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

Do đó, tôi khuyến nghị các bạn hãy học và làm quen với cách sử dụng command line! Bạn có thể cài đặt Bash trên Windows 10 hoặc sử dụng VPS Ubuntu. Bên cạnh đó, bạn có thể đọc cuốn sách Learn Enough Command Line to Be Dangerous để tìm hiểu thêm về cách sử dụng command line.

Nếu bạn quan tâm, hãy để lại comment. Nếu có nhiều người quan tâm, tôi sẽ tạo một series riêng về cách sử dụng command line!

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. Họ sống hạnh phúc bên nhau đến cuối đời. Họ có một đứa con xinh xắn tên Sơn Tùng MTP.

Tùng và Sơn sống hạnh phúc bên nhau đến cuối đời

Bạn có thể thắc mắc: Tại sao anh Sơn không giúp Tùng từ đầu mà đợi cho anh ta tự khám phá và trải nghiệm? Tất nhiên anh Sơn có thể làm như vậy, nhưng để Tùng tự cảm nhận và rèn kỹ năng của mình sẽ giúp Tùng học nhiều hơn và nhớ lâu hơn.

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

Kết

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

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

Bạn có biết thêm công cụ nào không? Hãy chia sẻ và thảo luận trong phần comment nhé! ????

Exit mobile version