View profile

#121- Tăng tốc ứng dụng React

Revue
 
Coding skill là kỹ năng cần thiết cho một Software Engineer (SE) giỏi nhưng có một điều thú vị là eng
 

Grokking Newsletter

May 17 · Issue #121 · View online
Tuyển tập những bài viết hay cùng sự kiện bổ ích dành cho kĩ sư phần mềm tại Việt Nam.

Coding skill là kỹ năng cần thiết cho một Software Engineer (SE) giỏi nhưng có một điều thú vị là engineer càng có nhiều kinh nghiệm thì thời gian dành cho code lại càng ít hơn.
Bên cạnh đó, những kỹ năng mềm như: làm việc nhóm, giao tiếp, trao đổi hiệu quả với mọi người cũng cực kì quan trọng. Nắm vững được những kỹ năng này sẽ giúp một SE hoàn thiện hơn.
Engineering Manager (EM) thường là những người đi từ vị trí SE, giúp team làm việc hiệu quả cũng như tạo cơ hội để mọi người có cơ hội học hỏi & phát triển. Đồng thời họ cũng là những mentor giàu kinh nghiệm.
Mời các bạn tham gia Grokking Webinar #05: Engineering Manager 101 để cùng nhau tìm hiểu, thảo luận về vai trò và những kỹ năng cần có của manager, những kỹ năng của manager mà engineer có thể học hỏi và áp dụng được cho công việc của mình.

Những bài viết hay
Phân tích mã độc APT ăn cắp tài khoản Facebook, PayPal
Tăng tốc ứng dụng React
Kiến trúc áp dụng Serverless tốt trông ra sao?
Có thể bạn chưa biết
Các thuật toán nén dữ liệu được chia thành 2 loại:
- Nén có thất thoát: một phần thông tin ban đầu sẽ bị lược bỏ để giảm thiểu dung lượng file, tuy nhiên sẽ không thể khôi phục lại dữ liệu ban đầu từ file nén. Thường được áp dụng cho các file media.
- Nén nguyên vẹn: dữ liệu được nén lại chủ yếu dựa trên sự trùng lặp về thông tin (VD: AAABBCCCCDEEEEEE => 3A2B4C1D6E). Dữ liệu càng trùng lặp thì tỉ lệ nén càng cao có thể từ vài lần tới vài chục lần. Tỉ lệ này cũng phụ thuộc nhiều vào thuật toán khác nhau. Và để tối ưu được tỉ lệ này có rất nhiều kĩ thuật được phát triển, bắt nguồn từ những năm 70 các thuật giải liên tục được đưa ra để tối ưu & thích ứng với thay đổi của công nghệ máy tính như: LZ77, LZ78, PPM, bzip2… Cùng với đó là rất nhiều phiên bản cải tiến được phát triển từ các mẫu ban đầu.
Khái quát lịch sử các thuât toán nén nguyên vẹn
Khái quát lịch sử các thuât toán nén nguyên vẹn
Code & Tools
Tin tức khác
  • https://blog.rust-lang.org/2020/05/15/five-years-of-rust.html Vậy là đã 5 năm kể từ ngày Rust release phiên bản 1.0. Rust đã có rất nhiều thay đổi trong suốt thời gian qua, mời các bạn cùng điểm lại những thay đổi chính của Rust qua các lần cập nhật
  • https://developers.google.com/web/updates/2020/05/heavy-ad-interventions Google Chrome đang thử nghiệm việc giới hạn các tài nguyên máy tính mà một quảng cáo có thể sử dụng, cũng như gỡ bỏ quảng cáo đó nếu sử dụng vượt quá tài nguyên cho phép. Cơ chế này được gọi là Heavy Ad Intervention. Theo đó, một quảng cáo được coi là nặng nếu sử dụng nhiều hơn 4MB network bandwith
  • https://eclipse-foundation.blog/2020/05/12/moving-to-europe/ Eclipse Foundation đang chuyển đổi để trở thành một tổ chức có trụ sở đặt tại Châu Âu. Với các dự án mới về IoT, cloud, AI, v.v… việc chuyển sang châu Âu là một cách hiệu quả để mở rộng và phát triển hơn các dự án open source 
Góc Database
Ivinco là một công ty cung cấp search engine ở quy mô lớn trong đó đặc biệt là hệ thống REST API dành cho full-text search real-time. Các khách hàng của Invinco là sẽ sử dụng hệ thống của Ivinco để lưu trữ thông tin các bài tin tức, blogs, nội dung social media, … và sử dụng REST API để phân tích dữ liệu trên khoảng 200TB dữ liệu lưu trữ ở MySQL.
Tuy nhiên, giống như nhiều hệ thống khác, khi hệ thống của Ivinco phình to do lượng dữ liệu ngày càng nhiều hơn thì họ đối mặt với nhiều vấn đề như:
- Khó cơi nới thời gian lưu trữ dữ liệu trên hệ thống phân tích do MySQL hơi bị khó scale đặc biệt là theo chiều ngang.
- Các vấn đề về high-availability (HA) và failover.
- MySQL cần nhiều indexes. Càng mở rộng với nhiều loại query thì lại đòi hỏi nhiều indexes trên mỗi table
Phía Ivinco đã cân nhắc nhiều lựa chọn thay thế trong đó có:
- Thay đổi sang ELK stack (Elasticsearch-Logstash-Kibana), lựa chọn này đòi hỏi rất nhiều công sức thay đổi toàn bộ công nghệ hiện tại.
- Cân nhắc sử dụng NoSQL - hơi khó sử dụng và kém hiệu quả cho các tác vụ phân tích
- Sử dụng Clickhouse
Sau một quá trình cân nhắc và thử nghiệm, team Ivinco đã quyết định triển khai sử dụng ClickHouse. Mời các bạn đọc thêm chi tiết về những cân nhắc của họ cho quyết định này: https://www.altinity.com/blog/2018/6/30/realtime-mysql-clickhouse-replication-in-practice
Ngoài ra, mời các bạn dành thêm thời gian để nghe đội ngũ phát triển ClickHouse chia sẻ về quá trình họ tối ưu hoá hệ thống ClickHouse như thế nào.
The Secrets of ClickHouse Performance Optimizations
Đính chính
Trong số trước, do một sai sót trong khâu biên tập, chúng tôi đã để sai link khi trích dẫn lại bài của Thái. Chúng tôi xin gửi lại đường link chính xác tới bài viết của anh Thái như sau:
Ban biên tập thành thật xin lỗi quý độc giả và cảm ơn những độc giả đã kịp thời thông báo lại với chúng tôi.
Quote
In programming the hard part isn’t solving problems, but deciding what problems to solve
- Paul Graham
Did you enjoy this issue?
If you don't want these updates anymore, please unsubscribe here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Powered by Revue
Charmington La Pointe, 181 Cao Thang, Dist 10, Ho Chi Minh city, Viet Nam