Tag Archives: architecture

Developer phải làm sao khi làm việc với code … rởm?

Ở bài “Tại sao code của dự án hiện tại nó … tởm quá vậy” trong kì trước, mình đã nói lý do mà code của các dự án càng để lâu sẽ càng loằng ngoằng, rối rắm.

Đây là chuyện bất khả kháng, và chúng ta ít khi có quyền lựa chọn project mình tham gia!

Thay vì than trời, trách đất, chửi mấy lão developer trước kia, bạn hãy cùng mình tìm hiểu một số cách “sống chung với lũ” – tức sống và làm việc chung với code bựa.

Ở cuối bài, mình cũng sẽ chia sẻ một số phương pháp để nâng cao chất lượng code trong dự án, giúp code đỡ “tởm dần đều” qua thời gian nhé!

Continue reading Developer phải làm sao khi làm việc với code … rởm?

Advertisements

CDN là cái gì? CDN tăng tốc độ tải của hệ thống như thế nào?

Hôm nay, chúng ta quay lại tìm hiểu các khái niệm technical hay ho tiếp nhé!

Trong bài này, chúng ta nói về một thiết kế rất đơn giản nhưng lại vô cùng hệ quả. Thiết kế này được rất nhiều ông lớn sử dụng để đảm bảo hệ thống hoạt động nhanh, ổn định cho toàn bộ người dùng trên thế giới.

Thứ mà chúng ta sẽ nói đến trong bài được gọi là hệ thống CDN (Content Delivery Network).

Continue reading CDN là cái gì? CDN tăng tốc độ tải của hệ thống như thế nào?

Tại sao code hiện tại của dự án lại … “tởm” quá vậy?

Khi đi học hoặc mới đi làm, chúng ta được dạy về việc viết code rõ ràng, mạch lạc, chất lượng:

  • Code phải được chia tách thành các class/module rõ ràng.
  • Mỗi module phải làm một nhiệm vụ duy nhất, ít lệ thuộc lẫn nhau (high cohension/low coupling)
  • Code được thiết kế theo architecture phù hợp (3-tier hoặc MVC) tùy vào dự án. Có sử dụng design pattern tùy vào vấn đề.

Khi tham gia dự án đầu tiên, hẳn ai cũng mong rằng mình sẽ được tiếp xúc với những dòng code mạch lạc, chất lượng như vậy.

Thế nhưng, đời sẽ cho bạn một gáo nước lạnh ngay lập tức! Khi tham gia một dự án, nhiều khả năng các bạn sẽ được đọc một đống code vừa khổng lồ, vừa tởm vừa rối như canh hẹ.

Có những đống code đọc vào chỉ muốn chửi WTF

Thật đấy, 96.69% code của các dự án lớn đều như vậy cả. Có thể dự án hiện tại bạn đang làm cũng vậy đấy!

Vì sao thế? Cùng đọc bài viết này để biết nhé!

Continue reading Tại sao code hiện tại của dự án lại … “tởm” quá vậy?

Hiệu ứng Dunning Kruger và sự ảo tưởng sức mạnh mà lập trình viên nên tránh

Đã có bao giờ bạn cảm thấy mình giỏi hơn hẳn đồng nghiệp hoặc bạn bè cùng trang lứa chưa?

Đã bao giờ bạn cảm thấy cái ngôn ngữ/framework này “dễ òm”, mình học một tí là được chưa?

Đã bao giờ bạn cảm thấy mình đã “nắm chắc 100%” một ngôn ngữ lập trình nào đó chưa?

Nếu đã từng có lần cảm thấy những điều trên, xin chúc mừng bạn! Bạn đã mắc phải hiệu ứng Dunning Kruger rồi đấy!

Trong bài này, chúng ta cùng mổ xẻ về nguyên nhân, triệu chứng, hậu quả của thứ này nhe. Bạn nào bị thì nhớ đọc kĩ để phòng tránh nhé!

Continue reading Hiệu ứng Dunning Kruger và sự ảo tưởng sức mạnh mà lập trình viên nên tránh

Tại sao đa phần các công ty thích dùng công nghệ “lỗi thời”

Ở kì trước, mình có khuyên các bạn Nên đặt câu hỏi vì sao (why) thay vì làm sao (how). Việc này sẽ giúp các bạn học sâu hơn, nhìn nhận vấn đề tốt hơn!

Ngay sau đó, mình lại nhận được một câu hỏi “Vì sao” khá hay từ vài bạn độc giả:

Anh ơi, tại sao các công ty họ lại thích dùng công nghệ cũ vậy ạ?
Em tự học, tự tìm hiểu Spring/Struts với Angular đồ; vào cty F lại dùng toàn đồ cũ, làm dự án toàn VB.NET rồi JSP rồi jQuery là sao anh?

Hẳn nhiều bạn sinh viên mới ra trường cũng có suy nghĩ tương tự nhỉ!

Bài viết này sẽ cho bạn một góc nhìn khác về các công nghệ mới, cũng như trả lời câu hỏi: Tại sao đa phần các công ty thích dùng công nghệ cũ??

Continue reading Tại sao đa phần các công ty thích dùng công nghệ “lỗi thời”

Làm sao để thiết kế hệ thống phục vụ hàng triệu người dùng?

Trước đây blog Code Dạo toàn viết về code, hôm nay mình đổi phong cách, viết lên tầm thiết kế hệ thống cho nó máu!

Kì này, chúng ta tìm sẽ thử thiết kế một hệ thống lớn, phục vụ hàng triệu người dùng. Đây là một câu hỏi khá là khó và không có câu trả lời chính xác (Tương tự những câu: vì sao phụ nữ buồn, làm sao để con gái sướng).

Nhân hôm trước, mình có làm bài phỏng vấn tại công ty nọ, có một câu hỏi yêu cầu thiết kế một ứng dụng chat sao cho có thể scale cho hàng triệu người dùng. Trước giờ mình không có kinh nghiệm với cái này, qua quá trình tự tìm hiểu cũng đủ biết sơ sơ để chém gió.

Vì vậy mình chia sẻ cho các bạn, Mọi người cùng đọc và góp ý nhé.

Continue reading Làm sao để thiết kế hệ thống phục vụ hàng triệu người dùng?

Microservice có gì hot? Chuyện về cái bồn cầu và microservice

Thời gian gần đây, đi liền với sự nổi dậy của cloud computing, microservice cũng đang dần trở thành một từ khóa hot. Bài viết này sẽ giới thiệu tổng quan về microservice một cách đơn giản, dễ hiểu cho bà con gần xa.

Micro là rất nhỏ, service là dịch vụ, vậy microservice nghĩa là… dịch vụ vô cùng nhỏ. Nói đơn giản, microservice là một kiếu kiến trúc phần mềm. Các module trong phần mềm này được chia thành các service rất nhỏ (microservice).

Có vẻ phức tạp ha? Ủa mà vậy thì liên quan gì đến cái bồn cầu nhỉ?? Đọc hết bài rồi sẽ hiểu ngay thôi!

Continue reading Microservice có gì hot? Chuyện về cái bồn cầu và microservice