#109 - DynamoDB Single Table Design
Tiếp nối thành công Grokking Webinar #2, đến với Grokking Webinar #03 "Data Science in Silicon Valley" các bạn sẽ có cơ hội tìm hiểu thêm về data science và công việc của một data scientist tại Silicon Valley thông qua những chia sẻ từ anh Vĩnh Thụy, một data scientist có nhiều năm kinh nghiệm giải quyết các bài toán data science tại Uber. Thông tin chi tiết về sự kiện các bạn có thể tham khảo tại đây.
Grokking Webinar là chuỗi sự kiện được tổ chức online với sự tham gia của các anh chị engineer người Việt có nhiều năm kinh nghiệm làm việc tại các quốc gia khác chia sẻ về kinh nghiệm, những khó khăn và thử thách, kiến thức cần thiết để trở thành world class engineer!
Những bài viết hay
5 arguments to make managers care about technical debt — understandlegacycode.com
Technical Debt có lẽ là vấn đề thường gặp phải trong mỗi dự án, nó có thể là những vấn đề nhỏ khi team cố gắng cho kịp deadline hay đáp ứng được chi phí phát triển. Khi mà nhiều cái "nhỏ" được cộng lại thì nó lại thành vấn đề "lớn" khiến việc nâng cấp tính năng hay bảo trì là rất tốn kém. Các team không may rơi vào hoàn cảnh này đều thấy phiền toái khi phải fix bug hoặc tạo ra những dòng code chức năng đi kèm để "trả nợ".
Ở góc nhìn của người quản lý thì khó có thể thấy được những khó khăn thuần kĩ thuật này. Là một developer chân chính luôn mong muốn đem lại những dòng code thật cool & clean, bạn sẽ thuyết phục quản lý ra sao để vừa refactoring lại vừa đảm bảo tiến độ dự án?
The What, Why, and When of Single-Table Design with DynamoDB — www.alexdebrie.com
DynamoDB cung cấp rất nhiều lợi ích mà các databases khác không có đặc biệt là khả năng mở rộng. Có nhiều hướng tiếp cận khác nhau cho việc mô hình hoá dữ liệu, trong đó AWS khuyến khích sử dụng một bảng (single table design) để lưu tất cả các loại data thay vì nhiều bảng. Trong bài viết sau, tác giả Alex DeBrie giải thích rõ single table design là gì cũng như giới thiệu những ưu và nhược điểm của hướng tiếp cận này.
The Powerful Differences Between Good and Great Programmers. — levelup.gitconnected.com
Theo Ravi Shankar Rajan, good developer là một người
Có kĩ năng tuyệt vời về kĩ thuật, có thể viết code sạch và gọn gàng.
Có kiến thức vững chắc về kỹ thuật phát triển và chuyên môn giải quyết vấn đề.
Hiểu các "best practices" và áp dụng chúng như thế nào.
Có một niềm đam mê trong lập trình và cố gắng đóng góp cho nhóm.
Được tôn trọng và yêu mến bởi các thành viên khác trong nhóm.
Còn một great developer = good developer + tập hợp những đặc điểm vô hình.
Vậy những đặc điểm vô hình đó là gì?
Five Tips For Coding Interviews - 👩💻👨💻 — dev.to
Coding Interviews là một trong những vòng phỏng vấn quan trọng nhất đối với các bạn developer. Trong vòng phỏng vấn này, các bạn rất dễ bị rối khi chưa tìm ra giải pháp, hoặc chưa biết bắt đầu từ đâu cho các câu hỏi từ các anh/chị phỏng vấn. Năm gợi ý sau đây có thể sẽ giúp ích cho bạn trong lần phỏng vấn tiếp theo.
Góc Database
MongoDB vs. MySQL: How to choose — www.infoworld.com
Lựa chọn database vẫn là một câu hỏi muôn thuở trong đó bạn phải trả lời những câu hỏi như:
- Khi hệ thống của bản trưởng thành (mature) thì khối lượng dữ liệu dự kiến bạn phải chứa là bao nhiêu?
- Thời điểm lưu lượng cao nhất thì sẽ có bao nhiêu luồng xử lý cần thiết?
- Những thông số nào là quan trọng với bạn: availability, scalability, latency, throughput, data consistency, ...
- Database schema của bạn có thay đổi thường xuyên không?
.... và nhiều vấn đề khác
Trong bài viết sau, tác giả chia sẻ lại góc nhìn về cách phân tích để chọn lựa giữa MongoDB và MySQL.
Tin tức khác về Database:
CouchDB ra mắt phiên bản 3.0.
Neo4j ra mắt phiên bản 4.0, một phiên bản được xem là "ưu việt" nhất tới thời điểm hiện tại cho các dòng Graph Database.
Code & Tools
Grafana loki: giải pháp đơn giản cho vấn đề logging với chi phí hợp lý
Viết lại sqlite bằng C để hiểu database hoạt động như thế nào
Những nguyên lý, nguyên tắc và mẫu thiết kế hữu ích cho lập trình viên
Tin tức khác
DNS lookups sẽ được mã hoá cho người dùng Firefox tại Mỹ vào ngày 25/2/2020 hoặc trong vài tuần tới
This week sponsor
Ascenda is a global innovator in loyalty management, established 2014 and headquartered in Singapore with offices across Asia, Europe and the Americas. With a team of 80 full-time employees, we enable over 50 major financial services and travel brands worldwide with rewards technology, loyalty marketing, advisory and customer servicing.
We believe that nothing should stand in the way of brands who aim to deliver extraordinary moments for their customers. That’s why our solutions are beautifully simple to manage, easy and rapid to deploy, and always delivering exceptional value. In a world of increasingly complex enterprise software and proliferating buzzwords, we strip away the noise and take a fresh, practical approach to loyalty management.
Visit ascendaloyalty.com for more information and current job openings.
Góc tuyển dụng
Fresher/mid level/senior backend software engineer
Fresher/mid level/senior frontend software engineer
Quote
Looking at code you wrote more than two weeks ago is like looking at code you are seeing for the first time
― Dan Hurvitz