Tag Archives: architecture

Bạn biết gì về Caching – Kĩ thuật được 96.69% hệ thống sử dụng để tăng tốc độ tải

Gần đây, nhiều bạn yêu cầu Code Dạo viết thêm mấy bài nặng tính kĩ thuật về architecture design hơn. Do vậy, Code Dạo sẽ chia sẻ thêm về những kĩ thuật design, các system component phổ biến mà các hệ thống lớn hay dùng nhé!

Trong bài này, chúng ta sẽ tìm hiểu về Caching, một kĩ thuật được sử dụng trong 96,69% các hệ thống để tăng tốc độ tải và giảm tải cho hệ thống nhé.

Đây là một kĩ thuật rất đơn giản nhưng lại vô cùng hiệu quả và cực kì phổ biến! Continue reading Bạn biết gì về Caching – Kĩ thuật được 96.69% hệ thống sử dụng để tăng tốc độ tải

Cùng Học Cờ Lao – Cloud là cái chi chi? Cloud có gì hot?

Như đã hứa với các bạn, Code Dạo sẽ lần lượt ra mắt những bài viết đầu tiên của Series Cùng Học Cờ Lao – Tìm hiểu Cloud Computing cùng Code Dạo.

Theo mình, để nắm vững một cái gì đó, chúng ta cần phải hiểu nó là gì, lý do nó ra đời, vấn đề mà nó giải quyết, trước khi cắm đầu vào dùng một cách mù quáng.

Do vậy, ở những bài đầu tiên của series, chúng ta sẽ tìm hiểu tổng quan về cloud là gì, những vấn đề mà nó giải quyết, những lý do mà chúng ta nên sử dụng cloud nhé!

Continue reading Cùng Học Cờ Lao – Cloud là cái chi chi? Cloud có gì hot?

Giới thiệu Series Cùng học Cờ Lao – Tìm hiểu về Cloud Computing

Sau một thời gian ấp ủ cũng khá lâu, hôm nay Code Dạo quay lại, viết một series hoàn toàn mới, hướng dẫn các bạn Nhập Môn về Cloud nha.

Sao đến bây giờ Code Dạo mới nói về Cloud?

Cách đây vài năm, đi đâu các bạn cũng sẽ nghe giang hồ ra rả về công nghệ Điện Toán Đám Mây, về Cloud Computing. Người ta bảo rằng nó là tương lai của công nghệ blah blah blah.

Bản thân mình thích đi ngược số đông, thấy công nghệ gì được bà con tung hô thì mình rất là dị ứng (Trước là Cloud, Angular 2, rồi React, gần đây là Bitcoin với Blockchain).

Mình thường hay đợi tới khi nó production-ready, được nhiều công ty sử dụng, mang lại lợi ích thực tế cho người dùng thì mới bắt đầu tìm hiểu.

Thời đấy, ban đầu chỉ có mỗi Amazon cung cấp dịch vụ Cloud Computing. Thế nhưng, nhu cầu ngày càng nhiều, doanh thu của Amazon Web Service – dịch vụ cung cấp Cloud của Amazon phát triển ngày càng vượt bật.

Thấy ngon ăn, Microsoft cũng nhảy vào với Azure, Google thì chậm chân hơn, cho ra đời Google Cloud Platform. Nhờ có sự cạnh tranh, giá thành cloud dễ chịu hơn, các công cụ hỗ trợ nhiều hơn, tài liệu học nhiều hơn.

Amazon, Microsoft và Google cạnh tranh thị trường Cloud

Hiện tại, các công ty sử dụng Cloud càng ngày càng nhiều, các qui trình cũng như best practice cũng đã rõ ràng. Cloud đã chứng minh được nó là một công nghệ có ích, được sử dụng nhiều, đáng học.

Do vậy Code Dạo mới cắm đầu vào học, tìm hiểu và chia sẻ!

Continue reading Giới thiệu Series Cùng học Cờ Lao – Tìm hiểu về Cloud Computing

Sự khác biệt giữa Junior và Senior Developer

Thật ra, mình được nghe câu hỏi “Senior Developer thì khác gì Junior Developer” cũng nhiều lần lắm rồi. Hôm nay mình mới có thời gian ngồi suy ngẫm, đúc kết lại để viết một bài đàng hoàng để giải thích về vấn đề này.

Đây là một bài viết khá hay, đáng đọc. Dù bạn có đang là junior – sinh viên mới ra trường, hoặc đang là senior lương chục củ, bài viết này cũng sẽ có ích cho bạn.

 

Note: Thật ra, cộng đồng developer thế giới lẫn Việt Nam đều có rất nhiều tranh cãi về chuyện phân chia title như thế nào, chưa có một chuẩn nào cụ thể, rõ ràng cả!

Do vậy, bài viết này là góc nhìn cá nhân của mình, chứ không phải là chuẩn hay tuyệt đối gì đó. Bạn có thể đồng tình hoặc phản đối nhé, mọi tranh luận đều được đón nhận.

Continue reading Sự khác biệt giữa Junior và Senior Developer

Thật ra, code không quan trọng như bạn nghĩ đâu!

Ý tưởng của bài viết này xuất phát từ một câu hỏi vừa thú vị vừa hơi … buồn cười của một bạn đọc:

Ủa anh ơi, lập trình viên mình thì công việc chính là viết code. Vậy chỉ cần viết code giỏi là thành lập trình viên giỏi thôi! Cần gì những kĩ năng này nọ v...v nữa ạ?

Đây là một câu hỏi rất bình thường và hiển nhiên, không phải hỏi ngu hay gì cả; vì thời mới ra trường mình cũng từng có thắc mắc tương tự.

Giờ đây, sau khi đã bị cuộc đời coder vùi dập vài năm, mình đã trải nghiệm tạm đủ để có thể trả lời câu hỏi này (cho bạn đọc, cũng như cho mình ngày xưa)

Chàng trai à, thật ra, code không quan trọng như bạn nghĩ đâu. Bởi vì, công việc chính của lập trình viên... không phải là viết code!

Continue reading Thật ra, code không quan trọng như bạn nghĩ đâu!

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?

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”