#79 - Concurrency và Parallelism
Những bài viết hay
The Foundations of Functional Concurrency — freecontent.manning.com
Hai mô hình lập trình phổ biến hiện nay là declarative programming and imperative programming. Imperative programming thường gắn liền với lập trình hướng đối tượng OOP mà mọi người ai cũng biết. Declarative programming, thường được biết thông qua functional programming (hay pure functional programming). Tại sao ngày nay functional programming thường được chọn để xử lý bài toán concurrency và các lợi ích mang lại của nó là gì?
Achieving concurrency in Go — medium.com
Go là ngôn ngữ lập trình hệ thống cực kì mạnh vẽ với một trong những tính năng nổi bật nhất là hỗ trợ built-in concurrency model. Trong đó concurrency được coi là first class citizen với những Goroutines và Channels, làm cho việc lập trình concurrency với Go trở nên đơn giản và hiệu quả hơn bao giờ hết.
Fixing a Race Condition — medium.com
Race condition là một trong các vấn đề hay phát sinh khi lập trình song song. Trong bài viết này, một bạn Software Engineer chia sẻ quá trình phân tích để tìm ra nguyên nhân dẫn đến lỗi race condition trong hệ thống xếp lịch phỏng vấn của công ty bạn đang xây dựng.
Making Apache Spark Effortless for All of Uber — eng.uber.com
Apache Spark là một công nghệ hay được sử dụng cho tác vụ tính toán trong các hệ thống phân tán lớn. Tuy nhiên, việc sử dụng Apache Spark ở Uber cũng có vài trở ngại như: phải hỗ trợ nhiều phiên bản Spark, phải bảo trì thường xuyên thông tin cấu hình các Data source, ... nên các kỹ sư ở Uber đã xây dựng một nền tảng gọi là Uber Spark Compute Service (uSCS) giúp giải quyết những trở ngại trên.
Demystifying Containers - Part I: Kernel Space — www.suse.com
Khi nghe nói đến thuật ngữ "Container", hẳn nhiều bạn sẽ nghĩ nhiều đến công nghệ như Docker, Vagrant, Kubernetes, ... nhưng thực ra Container được xây dựng trên những nền tảng công nghệ nào? Series bài viết này sẽ trả lời câu hỏi đó.
Có thể bạn chưa biết
Concurrency và Parallelism là hai khái niệm có liên quan và khá dễ nhầm lẫn. Luồng thảo luận Stackoverflow này có câu trả lời khá hay phân biệt hai khái niệm này, mời các bạn cùng tham khảo. (click vào link bên dưới)
Difference between concurrency and parallelism
Demo
Đoạn code của file main.go trong Repository này demo về concurrency được hiện thực bằng ngôn ngữ Go như thế nào. Bạn đọc có thể chạy thử để xem kết quả như thế nào nhé.
Sản phẩm của người Việt
Lightweight, template-based load testing tool built upon Vegeta — github.com
Một tiện ích hỗ trợ thực hiện Load Test được viết bởi bạn Tuấn, một software engineer đang làm việc ở SEA.
Sách hay nên đọc
Concurrency in .NET: Modern patterns of concurrent and parallel programming: Riccardo Terrell — www.amazon.com
Cuốn sách này sẽ hướng dẫn bạn cách xây dựng hệ thống xử lý concurrency và có thể dễ dàng mở rộng với .NET sử dụng functional programming. Bạn sẽ bắt đầu với các kiến thức nền tảng về concurrency và nắm vững các kĩ thuật thiết yếu cũng như các design practices để tối ưu hóa code, cho phép chạy trên các hệ thống multiprocessor.
Code & Tools
Tin tức khác
THIS WEEK'S SPONSOR
Team biên tập xin gửi lời cảm ơn đến VNG, nhà tài trợ cho newsletter số này.
Được thành lập từ năm 2004, VNG Corporation là một trong những công ty Internet Công Nghệ hàng đầu tại Việt Nam, được vinh danh là start-up kỳ lân đầu tiên của Việt Nam tính đến thời điểm hiện tại. VNG nuôi dưỡng hệ sinh thái dịch vụ đa dạng như trò chơi trực tuyến, nền tảng kết nối, tài chính, thanh toán, dịch vụ đám mây… Với sứ mệnh “thay đổi Internet để thay đổi cuộc sống người Việt”, VNG không ngừng cải tiến và hoàn thiện hơn các sản phẩm giúp người dùng có những trải nghiệm ấn tượng và tốt đẹp.
VNG hiện có 3 văn phòng tại Việt Nam (Hồ Chí Minh, Hà Nội, Đà Nẵng) và 3 văn phòng tại các nước Thái Lan, Singapore, Myanmar.
GAME DEVELOPMENT FRESHER — career.vng.com.vn
Với lộ trình thiết kế để Fresher được phát triển toàn diện về kiến thức chuyên môn lẫn kỹ năng mềm, VNG sẵn sàng chào đón các bạn trẻ CNTT tài năng ngay cả khi còn ngồi trên ghế nhà trường. Đừng để cơ hội vụt khỏi tầm tay, nắm bắt ngay thông tin mới nhấtvề Game Development Fresher 2019 nhé!
Quote
"A primary cause of complexity is that software vendors uncritically adopt almost any feature that users want."
- Niklaus Wirth