#84 - Làm thế nào để xây dựng một sản phẩm phần mềm tốt?
Để giúp cải thiện chất lượng nội dung của newsletter, mong bạn dành ít thời gian phản hồi cũng như đóng góp ý tưởng giúp team thông qua link khảo sát hàng tuần ở đây nhé: tại đây.
Những bài viết hay
How to Interview Engineers — triplebyte.com
Không phải những buổi phỏng vấn kỹ thuật nào cũng có những kết thúc tốt đẹp. Chúng ta dễ dàng tìm đọc những phàn nàn từ các ứng viên về quy trình tuyển dụng, phỏng vấn. Từ hơn 900 cuộc phỏng vấn trong suốt 2 năm, tác giả đã rút được những kinh nghiệm, lời khuyên rất hữu ích dành cho những người tham gia phỏng vấn ứng viên. Phỏng vấn một ứng viên không phải là việc dễ dàng, nhưng chúng ta có thể tránh được nhiều vấn đề nếu có một quy trình cẩn thận và chuyên nghiệp.
How to Build a Good Software? — www.csc.gov.sg
Có thể bạn sẽ cảm thấy ngạc nhiên khi biết rằng nguyên nhân cốt lõi của các "bad software" thường ít liên quan đến các lựa chọn kỹ thuật cụ thể mà thường liên quan nhiều đến cách quản lý và phát triển các dự án. Các dự án phần mềm tồi tệ nhất thường tiến hành theo một cách rất riêng.
Tuân thủ các nguyên tắc sau đây khi phát triển một dự án sẽ giúp bạn có một sản phẩm hoàn thiện và tốt hơn.
Service Mesh, API Gateway, Message Queue - when to use what?
Bài viết sau giải thích những cách khác nhau nhằm tổ chức liên lạc giữa các microservice như: Service Mesh, một API Gateway hay một Message Queue. Từ đó bạn có thể chọn lựa được phương án phù hợp cho mình.
Sản phẩm của người Việt
go-advanced: A small Vietnamese Go book compiled by ZaloPay teams. — github.com
Đội ngũ ZaloPay mới public một bộ sách viết bằng tiếng Việt mang tên go-advanced. Sách có 6 chương, bao gồm nhiều level từ cơ bản (basic) đến nâng cao (CGO, web, distributed system). Bên cạnh việc giải thích những khái niệm một cách rất dễ hiểu như: hệ thống phân tán, crawler, search-engine. Ngoài ra, cuốn sách còn kèm theo rất nhiều ví dụ cụ thể theo từng chương, từng chủ đề. Cuốn sách là một nguồn tài liệu tiếng Việt tốt cho các lập trình viên tham khảo.
Sách hay nên đọc
Code by Charles Petzold — www.goodreads.com
Nếu bạn đã từng thắc mắc, điều gì xảy ra bên trong các thiết bị điện tử thì đây là cuốn sách nên đọc.
Tác giả Petzold đã mở ra thế giới điện toán thông qua cách kể chuyện súc tích. Bắt đầu với cơ sở về mã Morse và chữ nổi thông qua hệ thống điện báo, mã vạch, logic boolean, mạch có bộ nhớ, máy von neumann, các thiết bị ngoại vi, thiết bị I/O, giao diện GUI, nói về HTTP và rồi tới thế giới web.
Tất cả được thể hiện qua từng câu chuyện, giúp chúng ta đi sâu vào thế giới điện tử, hiểu sâu hơn về cách các thiết bị hoạt động, giao tiếp, xử lý các tín hiệu.
Đây là cuốn sách chúng ta nên đọc ngay từ khi bắt đầu học lập trình!
Code & Tools
Darkroom: Realtime Image Processing — blog.gojekengineering.com
Darkroom là một ứng dụng Image Proxy tích hợp cả 2 phần là lưu trữ (hiện chỉ có aws S3) và xử lý ảnh (cắt, thay đổi kích thước, xám màu), viết bằng golang. Ban đầu nó được phát triển tại Gojek bởi 1 kĩ sư và 3 thực tập sinh. Tại đây, ứng dụng đã được triển khai với khả năng đáp ứng 500,000 ảnh/phút
Bạn có biết
Kappa Architecture là loại kiến trúc trong đó thay vì sử dụng các database thường dùng như Relational DB hoặc Key-value store như Cassandra, mô hình kiến trúc này sử dụng chủ yếu là các thông tin dạng log dưới hình thức chỉ thêm và không sửa (append-only immutable log) như là hình thức lưu trữ chính.
Có thể xem kiến trúc Kappa như là một phiên bản "không có phần xử lý batch" của kiến trúc Lambda
Tham khảo thêm: http://milinda.pathirage.org/kappa-architecture.com/
QUIZ
Trong các dạng Cohesion dưới đây, dạng nào là nên tránh "nhất" trong lập trình? (chỉ 1 lựa chọn)
A. Coincidental cohesion
B. Logical cohesion
C. Temporal cohesion
D. Sequential cohesion
Submit câu trả lời ở đây: https://links.grokking.org/questions/8
This week sponsor
Đượ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.
Góc tuyển dụng
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ất về Game Development Fresher 2019 nhé!
Quote
When debugging, novices insert corrective code; experts remove defective code.
Richard Pattis