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é.
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é!
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ẻ!
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.
Ý 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!
Đâ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é!
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).
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!
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íchdù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?