#6 - Benchmark một hệ thống, dễ hay khó?
Để trở thành một lập trình viên giỏi, bạn cần liên tục nâng cao kỹ năng của mình. Vì thế mỗi tuần Grokking Newsletter luôn cố gắng giới thiệu những bài viết hay, qua đó giúp nâng cao kỹ năng cũng như mang lại những thông tin giá trị cho người đọc.
Tuần này, Grokking Newsletter xin gửi tới các bạn các bài viết về Benchmark một hệ thống của một bạn engineer tại Tiki, những tính năng mới của C++ 17. Bên cạnh đó, bài viết "How to solve a hard programming interview question" sẽ chỉ ra giúp bạn những bước khi thực hiện một bài lập trình trong một cuộc phỏng vấn. Những bạn yêu thích về database chắc hẳn sẽ thích thú với 2 bài viết về hoạt động của PostgreSQL và transaction isolation level. Ngoài ra, một bài viết rất đáng đọc về Software Architecture dành cho những bạn quan tâm tới kiến trúc phần mềm cũng xuất hiện trong số này.
Chúc các bạn một ngày làm việc vui vẻ với những kiến thức mới.
Nếu bạn thấy một bài viết nào hay và muốn chia sẻ với tất cả mọi người thì đừng ngần ngại gửi mail cho chúng tôi nhé!
Happy Grokking,
Những bài viết hay
Benchmark một hệ thống, dễ hay khó? — engineering.tiki.vn
Chắc hẳn không ít các bạn rơi vào cảnh “Tính năng mới vừa release chạy cực kì tốt” nhưng vài ngày sau lại chạy ì ạch. Hoặc vui hơn là đang hí hửng báo cáo sếp về performance và availiabity thì… ĐÙNG, hệ thống lăn ra chết chỉ sau một lần gửi notification :D.
Các tính huống trớ trêu trên là không tránh khỏi, nhất là các hệ thống có lượng truy cập cao và thường có sự đột biến về lượng truy cập. Tuy nhiên, không hẳn là không có giải pháp, và một trong những cách thức đó là benchmark hệ thống hiện tại, tính toán và điều chỉnh cho phù hợp và sẵn sàng đáp ứng lượng truy cập mong muốn.
Kiến trúc phần mềm: Explicit Architecture — herbertograca.com
Nếu gặp một hệ thống lớn với rất nhiều server, model, layer, protocol, pattern, framework được sử dụng, hẳn bạn đã từng thắc mắc làm sao họ có thể xây dựng một hệ thống đồ sộ như thế? Đây là một câu hỏi khó mà thường chúng ta chỉ có thể tự trả lời sau rất nhiều năm đi làm và tích lũy kinh nghiệm.
Bài viết sau nằm trong một chuỗi các bài viết về Software Architecture sẽ giúp các bạn có cái nhìn ban đầu dễ dàng hơn trong việc thiết kế phần mềm. Trong bài viết này, tác giả đã xây dựng một hệ thống tương đối đồ sộ với rất nhiều model, layer, công cụ được sử dụng, nhưng tác giả vẫn khéo léo lồng ghép một cách thích hợp và tương thích với nhau. Một bài viết tuy dài nhưng đáng đọc dành cho những ai quan tâm tới kiến trúc phần mềm.
Tóm tắt những features trong C++17 — www.bfilipek.com
C++ là một trong những ngôn ngữ có lịch sử hình thành lâu dài, được sử dụng rộng rãi và vẫn đang được tiếp tục phát triển liên tục. Gần đây, ISO CPP đã approved C++ 17, với nhiều tính năng đổi mới. Điểm nổi bật của những thay đổi lần này là sự đơn giản hóa core language, hỗ trợ tốt hơn cho các hệ thống phần mềm, bổ sung thêm các tính năng mới hỗ trợ lập trình song song.
Nhằm giúp mọi người có cái nhìn tổng quan hơn về những thay đổi mới của C++ 17 lần này, mời các bạn đọc loạt bài viết sau đây. Các bài viết được viết bởi một tác giả có kinh nghiệm lập trình C++ nhiều năm và có những đóng góp nhất định trong cộng đồng.
Case Study: 1 config tuning nhỏ trong Postgres đã tăng 50x lần tốc độ của 1 câu query như thế nào — amplitude.engineering
Một config nhỏ nhưng lại có thể giúp câu query chạy nhanh hơn gấp 50 lần! Nghe có vẻ lạ nhưng đây là tình huống mà một kỹ sư phần mềm đã gặp phải. Mời các bạn cùng đọc tình huống sau đây, và cách giải thích của tác giả liên quan tới cơ chế hoạt động của PostgreSQL, hash join và nested loop.
Những bước để giải 1 câu hỏi phỏng vấn khó
Việc phải giải các bài lập trình trong các cuộc phỏng vấn là điều mà chắc chắn bạn lập trình viên nào cũng từng gặp. Vậy làm thế nào để có một lời giải tốt? Làm sao để nghĩ ra được một lời giải tốt nếu bạn chưa từng gặp câu hỏi đó? Liệu lời giải của bạn đã bao quát hết các trường hợp chưa? Nên trình bày lối suy nghĩ, lời giải của mình như thế nào cho dễ hiểu?
Bài viết sau trình bày tuần tự từng bước giải một bài tập lập trình thông qua một ví dụ cụ thể. Mời các bạn cùng theo dõi.
Khái niệm Transaction Isolation Levels trong PostgreSQL — shiroyasha.io
Transaction là một khái niệm không hề xa lạ với những ai làm việc với database. Nhưng liệu chúng ta đã thực sự hiểu hết các level của transaction isolation chưa? Bài viết sau trình bày về cách transaction isolation hoạt động trong PostgreSQL, các tùy chọn thay thế bạn có thể thực hiện nhưng vẫn đảm bảo tính chính xác của dữ liệu cũng như chi phí và hiệu suất của chúng.
Tin tức kỹ thuật
Rails 5.2.0 beta sẽ có những gì Đọc thêm.
Django 2.0 ra mắt Đọc thêm.
PHP phát hành bản cập nhật 7.2.0 Đọc thêm.
Qt 3D Studio 1.0 Đọc thêm
Sự kiện nổi bật
Zalo Hackathon 2017 Zalo Hackathon 2017 là sự kiện hackathon được tổ chức bởi Zalo/VNG, nhằm tạo điều kiện cho các bạn trẻ đam mê lập trình được trải nghiệm một cuộc thi thật sự xứng tầm.
Đề bài được chia thành hai nhóm: AI và Mobile. Các bạn quan tâm có thể truy cập vào đường link https://hackathon.zalo.me/ để tìm hiểu chi tiết nhé.
Hạn chót đăng ký vào ngày 12/12.
Bạn có thấy Grokking Newsletter hữu ích cho mình?
Grokking Newsletter là một dự án thử nghiệm (experimental project) của team Grokking nhằm đưa những kiến thức kĩ thuật hay & thực tế đến với cộng đồng dev VN.
Nếu bạn thấy Grokking Newsletter này hữu ích cho bạn, hãy forward/share email này với các chiến hữu dev của bạn để càng nhiều người được đọc các bài viết kĩ thuật hay nhé!
Hoặc nhấn reply và chia sẻ feedback của bạn đến với team Grokking!