View profile

#239 - Cách Wix xử lý multi-threading trong Node.js

Grokking Vietnam
Grokking Vietnam
Trong số này, chúng ta cùng tìm hiểu về:
  • Cách Wix xử lý multi-threading trong Node.js
  • OLAP đã lỗi thời?
  • 4 nguyên tắc trong Data Engineering
  • Lời giải bài Masking Personal Information
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.

News
(by lpv)
How we built Pingora, the proxy that connects Cloudflare to the Internet
Meta Myths – Stratechery by Ben Thompson
Road to Artificial General Intelligence
Chip Design Shifts As Fundamental Laws Run Out Of Steam
Những bài viết hay
Góc Lập Trình
Đề ra tuần này: Validate Binary Tree Nodes
(by ndaadn)
Giả sử cho một cây nhị phân gồm n nút được đánh số từ 0 đến n-1. Mỗi nút i có 2 nút con leftChild[i] và rightChild[i]. Trả về true khi và chỉ khi tất cả các nút trong chuỗi tạo thành một cây nhị phân hợp lệ.
Ví dụ:
Input: n = 4, leftChild = [1,-1,3,-1], rightChild = [2,-1,-1,-1]
Output: true
Lời giải đề bài tuần trước: Masking Personal Information
(by ndaadn)
Đề bài trông có vẻ phức tạp nhưng thực ra nếu để ý kỹ ta sẽ nhận ra bài toán khá đơn giản. 
Đầu tiên cần xác định xem tham số S đề cho là một địa chỉ email hay một số điện thoại. Để xác định điều này ta chỉ cần tìm xem trong chuỗi có ký tự @ hay không, nếu có thì đó là địa chỉ email, nếu không thì đó là một số điện thoại.
Trường hợp chuỗi s là một địa chỉ email, ta thực hiện thao tác mã hóa như sau:
  • Cắt chuỗi thành 2 chuỗi con s1 và s2 tại vị trí xuất hiện kí tự @.
  • Mã hóa chuỗi con s1 bằng cách lấy kí tự đầu, cộng với chuỗi “*****”, sau đó cộng với kí tự cuối.
  • Nối chuỗi con s1 đã mã hóa với kí tự @ và chuỗi con s2, ta được đáp án.
Trường hợp chuỗi s là một số điện thoại, ta quan sát thấy có 4 trường hợp, đó là các trường hợp số điện thoại gồm 10, 11, 12 và 13 số. Các trường hợp này đều có dạng sau khi đã mã hóa cố định (như đề bài) nên ta cũng dễ dàng thực hiện bước mã hóa như sau:
  • Loại bỏ tất cả các kí tự phân tách ra khỏi chuỗi ban đầu.
  • Nếu chuỗi sau khi loại bỏ gồm 10 số, lấy 4 số cuối nối vào sau chuỗi “***-***-” ta được đáp án.
  • Tương tự với các trường hợp 11, 12 và 13 số.
Cài đặt tham khảo bằng ngôn ngữ Java: https://pastebin.com/rfcKtL7x
Code & Tools
buildg - một công cụ hỗ trợ debug Dockerfiles ngay trên các IDE phổ biến VSCode, Emac, Neovim vừa được tác giả Kohei Tokunaga phát hành. Một trong những ưu điểm nổi bật của Buildg chính là cho phép developer chạy step-by-step quá trình container builds, đặt breakpoints và kiểm tra trạng thái từng step. Buildg còn hỗ trợ debug ngay trên các IDE phổ biến thông qua việc sử dụng DAP (Debug Adapter Protocol, được tích hợp trong nhiều trình soạn thảo như VSCode, Eclipse, ..). Phiên bản 0.4.1 đã được phát hành trên Github của tác giả, để tìm hiểu chi tiết hơn về cách sử dụng, mời bạn đọc cùng tham khảo bài viết
Feedback
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)
Grokking mang lại cho các bạn những kiến thức mới mẻ và hữu ích thông qua:
  • Tech Talk: Là một hoạt động thường xuyên của Grokking từ những ngày đầu thành lập. Tại đây các diễn giả chia sẻ kiến thức xoay quanh Computer Science và Software Engineer. Các buổi Tech Talk đều được record và upload lên kênh youtube của Grokking.
  • Grokking Knowledge Graph: Tập hợp những nguồn kiến thức phong phú với hơn 1000 bài viết chọn lọc, các đầu sách, khóa học, v.v… Các bài viết đều được gán nhãn để giúp bạn đọc dễ dàng tìm kiếm.
  • Webinar: Là chương trình kết nối các kỹ sư Việt Nam và các kỹ sư đang làm việc tại các công ty công nghệ hàng đầu thế giới.
  • Dijkstra: Một ấn phẩm được xuất bản bởi các thành viên của Grokking. Với những bài viết đào sâu vào kỹ thuật và kiến thức khoa học máy tính.
  • Kipalog: Nền tảng chia sẻ kiến thức dành cho các lập trình viên.
  • Newsletter: Những bài viết hay về công nghệ sẽ được gửi tới bạn hàng tuần qua email.
Chúc các bạn sẽ tìm được nhiều điều mới mẻ khi đến với Grokking và xin hẹn gặp lại các bạn vào tuần sau.
Quotes
“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live"
John Woods
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