Trả lời: Rana Ashish (राणा आशीष), Lập trình viên, kỹ sư phần mềm, thằng hề của đời tôi.
Tôi sẽ mô tả duy nhất một chức năng của Facebook đó là “Like&Share”. Đây là một chức năng rất đơn giản, bạn nhìn thấy ảnh một em nào đó ngon lành thì bạn bấm “like” và “share”.
Hãy nói về các chi tiết kỹ thuật.
Thiết kế:
1. Thiết kế ngón tay cái cho một Like và đồng thời cũng thiết kế thêm một nút share.
2. Mỗi bài đăng phải có nút like và share ở cuối.
3. Khi có người bấm like hoặc share, thông báo sẽ được gửi đến cho người đăng bài.
4. Khi có ai đó like, bài đó sẽ được đẩy lên để hiển thị cho bạn bè đang theo dõi bạn.
5. Phải có bộ đếm số lượng like và share.
6. Lưu lại thông tin của những người đã bấm like và share.
7. Thiết lập riêng tư cũng cần được áp dụng, nếu chủ bài không muốn người lạ bấm like thì nó phải được ẩn đi.
8. Nếu đã bấm like, thì sẽ không bấm tiếp được nữa. Nhưng share thì có thể được bấm nhiều lần.
9. Nếu đã bấm like, thì nút like sẽ trở thành nút unlike.
10. Ở mỗi bình luận phải có nút like nhưng sẽ không có nút share.
Đây là một thiết kế cấp cao của một chức năng đơn giản là “Like&Share”, có thể sẽ không thể bao quát được hết những trường hợp kiểm thử diễn ra ở Facebook.
Nếu nói về mặt lập trình của “Like&Share” thì đây sẽ câu trả lời dài nhất trên Quora.
Tiếp theo là một vài sự thật thú vị:
1. Có khoảng 42 tính năng trên Facebook như kết nối những người bạn để cùng xem live stream. Chưa tính đến thuật toán nhận diện hình ảnh để gắn tên bạn bè.
2. Nhưng gì bạn đang thấy ở Facebook hiện tại không được tạo ra trong 1 ngày mà là cả 1 quá trình 13 năm lập trình liên tục.
3. “TheFacebook” được tạo ra bởi Mark Zuckerburg không còn chạy từ phòng ký túc xá nữa.
4. Facebook có 18,770 nhân viên (tính đến tháng 3/2017) chỉ để duy trì duy nhất một trang web.
5. Khi Facebook được tạo ra, nó chỉ có 1 máy chủ đặt tại phòng ký túc xá của Mark và phát triển thành 30,000 máy chủ chỉ trong vòng 4 năm từ lúc lên ý tưởng. Duy trì 1 máy chủ đã khó, duy trì 30,000 máy chủ thì chi phí sẽ vượt qua cả tưởng tượng của bạn.
6. Bảo mật của Facebook bá đạo đến nỗi mà nhóm hacker nổi tiêng “Anonymous” đã thử đột nhập và thất bại. Cùng nhóm đó là tác giả của rất nhiều vụ đột nhập và phát tán thông tin.
7. Facebook lưu trữ khoảng 300 triệu tỷ byte dữ liệu người dùng trên máy chủ. Toàn bộ những ghi chép về loài người, dưới tất cả những dạng ngôn ngữ (tính cả Latin và những ngôn ngữ cổ xưa khác) kể từ lúc lịch sử bắt đầu được ghi chép, có kích thước khoảng 50 triệu tỷ byte. Hãy nghĩ về điều này. Bạn có đủ tiền mua các thiết bị lưu trữ những dữ liệu này không?
Bạn có thể tạo ra một trang web chịu được tương tác của khoảng vài trăm nghìn người dùng, nhưng để chịu được hàng tỷ người dùng, thì bạn cần có nguồn lực. Rất nhiều nguồn lực.
Facebook không chỉ là một trang web mà còn là 1 công ty tỷ đô. Nó không bao giờ muốn thị trường của mình có đối thủ, bạn phát triển một ứng dụng để cạnh tranh thì họ sẽ mua lại bạn (giống như Whatsapp) hoặc họ sẽ cạnh tranh để chiếm lấy thị phần của bạn.
Tổng kết: Không một lập trình viên nào có thể tự mình tạo ra Facebook, một sản phẩm của gần 20,000 lập trình viên tài năng trong vòng 13 năm. Google thần thánh đã thử làm điều đó với Google+. Facebook giờ đã vượt quá tầm với của bất cứ lập trình viên nào cả về mặt kinh tế lẫn tinh thần.
