View profile

#220 - Xử lý những chú chim quậy phá bằng kỹ thuật như thế nào?

Grokking Vietnam
Grokking Vietnam
Trong số này, chúng ta cùng tìm hiểu về:
  • Bài học từ việc scale Airflow ở Shopify.
  • Câu chuyện xử lý sự phiền toái của những chú chim bồ câu của một kĩ sư.
  • So sánh các Data Warehouses.
  • Bài toán Find the Duplicate Number và lời giải Merge k Sorted Lists.
  • Kỹ thuật Chaos Engineering.
Ngoài ra các bạn vẫn có thể tiếp tục đặt mua ấn phẩm Dijkstra tập 2 tại đây nhé.

Những bài viết hay
Góc Data
Góc Lập Trình
Đề ra tuần này: Find the Duplicate Number
Lời giải đề bài tuần trướcMerge k Sorted Lists
Đề bài yêu cầu gộp k linked-list đã được sắp xếp theo thứ tự tăng dần lại thành một linked-list duy nhất cũng được sắp xếp theo thứ tự tăng dần.
Đây là bài toán mở rộng từ bài toán gộp 2 linked list. Để gộp 2 linked
Ta có thể thực hiện gộp từng list liên tiếp nhau đến khi gộp toàn bộ k list cho ban đầu. Độ phức tạp thời gian cho cách làm này là O(kN), với k là số lượng list cho trước, N là số lượng phần tử lớn nhất trong 1 list.
Tuy nhiên ta có thể tối ưu hơn bước gộp này bằng phương pháp chia để trị. Thay vì gộp từng list liên tiếp nhau, ta có thể gộp theo từng cặp 2 list lại thành 1, và lặp lại quá trình cho tới khi chỉ còn 1 list duy nhất. Bằng cách này, với mỗi vòng lặp, số lượng list sẽ giảm đi một nửa, do đó độ phức tạp thuật toán được giảm xuống O(Nlogk).
Cài đặt thuật toán như sau: https://pastebin.com/n6Wj1SyA
by ndaadn
Code & Tools
  • OpenLineage: OpenLineage là một nền tảng mở để thu thập và phân tích data lineage. Nó theo dõi metadata của các datasets, jobs, qua đó cung cấp cho người dùng thông tin cần thiết để xác định nguyên nhân gốc rễ của các vấn đề phức tạp và hiểu hơn về tác động của một sự thay đổi nào đó. OpenLineage định nghĩa một tiêu chuẩn mở cho data lineage, cách thức triển khai việc lưu trữ metadata (Marquez), thư viện cho các ngôn ngữ chung và khả năng tích hợp với các data pipeline tools.
Quotes
Object-oriented programming offers a sustainable way to write spaghetti code. It lets you accrete programs as a series of patches.
― Paul Graham, Hackers & Painters: Big Ideas from the Computer Age
Bạn đánh giá nội dung số newsletter này thế nào?
(1 = Rất tệ / 5 = Rất tốt)
👎 1 ——-2 —— 3 —— 4 —— 5 👍
(Việc đánh giá của các bạn là rất quan trọng, sẽ giúp chúng tôi liên tục cải thiện nội dung newsletter tốt hơn)
Did you enjoy this issue? Yes No
Grokking Vietnam
Grokking Vietnam

Cảm ơn bạn đã dành thời gian đọc newsletter kỳ này và chúng tôi hi vọng rằng bạn đã khám phá ra một số điều mới mẻ từ các bài viết trên. Các bạn có thể đọc lại các số cũ tại website newsletter.grokking.org

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Created with Revue by Twitter.
Viet Nam