View profile

#211 - Cách Google, Twitter, và Spotify xây dựng văn hóa documentation

Grokking Vietnam
Grokking Vietnam
Trong số này, chúng ta cùng tìm hiểu về:
  • Cách Google, Twitter, và Spotify xây dựng văn hóa documentation
  • Cách eBay sao chép dữ liệu NoSQL sang phiên bản staging
  • Bài presentation về Skinny, một project cá nhân về Distributed Lock Service của Dan Lüdtke
  • Bài thuyết trình về Parquet file
  • Lời giải bài Delete Duplicate Folders in System
  • Grokking Webinar #11 vào 12/03/2022

Những bài viết hay
Góc Distributed System
Góc DS tuần này giới thiệu tới bạn đọc một bài presentation về Skinny, một project cá nhân về Distributed Lock Service của Dan Lüdtke, engineer ở Google, được trình bày ở SRECon 2020. Những điểm thú vị trong bài trình bày:
  • Giới thiệu về Paxos và các vấn đề cơ bản khi lập trình một biến thể của thuật toán đồng thuận Paxos.
  • Xem trực tiếp Paxos hoạt động như thế nào.
  • Những điểm khó khăn gặp phải khi lập trình thuật toán này.
(by tuna)
Góc Data
Khi bắt tay vào thiết kế Data Lake thì chúng ta sẽ bắt đầu bằng việc lựa chọn công nghệ và kiến trúc cho thành phần chính: phần Storage và phần Computing.
Đối với Storage, có rất nhiều loại định dạng có thể chọn để lưu trữ như Log file, text file, CSV, JSON, … trong số đó, parquet file là loại format khá thông dụng hiện nay vì nhiều ưu điểm:
  • Format được đặc tả dưới dạng binary tốn tài nguyên hơn so với dạng text như csv, json.
  • Cấu trúc được thiết kế dạng Columnar, phù hợp để chạy các câu query về OLAP
  • Dễ nén và dễ mã hóa
Trong mục Góc Data kỳ này, mời các bạn cùng xem một bài thuyết trình về xoay quanh chủ đề Parquet file. Bài thuyết trình này sẽ mang đến cho bạn một cái nhìn toàn cảnh về những lợi ích của Parquet file, tại sao nó hay được dùng trong Data Lake, cũng như mô tả một cách trực quan về cấu trúc của loại định dạng này.
(by n^4)
Spark + Parquet In Depth: Spark Summit East talk by: Emily Curtin and Robbie Strickland
Spark + Parquet In Depth: Spark Summit East talk by: Emily Curtin and Robbie Strickland
Góc Lập Trình
Đề tuần này: Smallest String With Swaps
Lời giải đề bài tuần trước:
Lời giải:
Đề bài yêu cầu loại bỏ các cây thư mục con bị trùng trong danh sách các cây thư mục được cho sẵn. Để giải bài toán này, ta cần một cấu trúc dữ liệu phù hợp để biểu diễn các đường đi trong cây thư mục. Các ví dụ trong đề bài giúp chúng ta liên tưởng đến Trie, hay còn gọi là Prefix Tree.
Đây là một cấu trúc dữ liệu có rất nhiều ứng dụng trong Autocomplete, hay IP Routing,… Nếu các bạn chưa biết đến cấu trúc dữ liệu này thì có thể làm quen trước qua bài tập sau: Implement Trie (Prefix Tree)
Quay lại bài toán ban đầu, hướng giải quyết bài toán như sau:
  1. Biểu diễn các cây thư mục bằng Trie.
  2. Ứng với mỗi nút trong cây, ta tính giá trị băm (hash) của nút này bằng cách biểu diễn thông qua giá trị cây con của nó. Thông qua giá trị này có thể xác định được cây thư mục con nào bị lặp. Giả sử ta có cây thư mục a->b->x->y, giá trị băm của nút a sẽ là “(b,x,y)”; của nút b là “(x,y)”“,…
  3. Tìm các nút con trong cây có giá trị băm trùng lặp và xóa nút đó khỏi cây Trie ban đầu.
  4. Trả kết quả sau khi đã xóa các cây thư mục trùng lặp.
Ý tưởng cho bài toán không khó, tuy nhiên việc cài đặt lại khá phức tạp vì phải vận dụng nhiều cấu trúc dữ liệu khác nhau và các bước duyệt cây cần sử dụng thuật đệ quy backtrack.
Dưới đây là một hướng cài đặt tham khảo bằng ngôn ngữ Java: https://pastebin.com/0Wx6M3NU
(by ndaadn)
Tech Talks
Grokking Webinar #11: Demystifying Remote Work in Tech
Code & Tools
  • MDN Content - Repo chứa tài liệu cho MDN Web
  • TerarkDB - Một database thay thế cho RocksDB với tối ưu hóa cho tail latency, throughput, và compression của Byteance
Góc Sponsors
Fossil Việt Nam, tiền thân là Misfit, giữ vị thế là Trung tâm Nghiên cứu và Phát triển Công nghệ Thiết bị đeo thông minh trực thuộc Fossil Group. Từ những ngày đầu thành lập, đội ngũ kỹ sư Việt đã thiết kế và xây dựng hệ sinh thái thiết bị đeo thông minh phục vụ cuộc sống của hàng triệu người toàn cầu. Chúng tôi tự hào là những nhà đổi mới luôn bứt phá giới hạn của công nghệ và thời trang, tập trung phát triển 3 nhóm sản phẩm chủ lực: thiết bị, ứng dụng, và dữ liệu trên đám mây.
ĐIỀU FOSSIL TỰ TIN MANG ĐẾN CHO BẠN?
  • Tham gia nghiên cứu và phát triển Thiết bị đeo thông minh hàng triệu người dùng trên toàn thế giới. Với Fossil, mỗi việc bạn làm đều có thể mang lại thay đổi cho cuộc sống của rất nhiều người.
  • Lộ trình nghề nghiệp đa dạng, bất kể bạn muốn quản lý đội ngũ hay tập trung phát triển chuyên môn kỹ thuật.
  • Cơ hội làm việc và học hỏi từ các kỹ sư Google, Qualcomm, Citizen, v.v.
  • Bảo hiểm sức khỏe cao cấp, thu nhập và phúc lợi cạnh tranh mang đến trải nghiệm làm việc toàn diện nhất.
  • Môi trường làm việc linh hoạt để bạn thỏa sức học hỏi, phát triển và tạo ra tác động tích cực!
Fossil Việt Nam đang mở ra cơ hội với hàng loạt vị trí hấp dẫn 
(Cloud Engineer, Android Engineer, Software Architect), mời bạn tham khảo chi tiết công việc tại ĐÂY.
Kết nối với Fossil Việt Nam
Quotes
What do we want? Now! When do we want it? Fewer race conditions!
― Anna Melzer
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