Back to timeline
Issue #373 Đọc 11 phút

Mô hình dữ liệu là cốt lõi của sản phẩm mới

Ông thậm chí còn viết hẳn một cuốn sách lấy tên chính là câu nói này. Trong mắt Wirth, cấu trúc dữ liệu quan trọng ngang hàng với thuật toán, còn ngôn ngữ lập trình chỉ là thứ yếu.

Mô hình dữ liệu là cốt lõi của sản phẩm mới

Ảnh bìa

Khu di tích Huyền Tuyền Trí tại thành phố Tửu Tuyền, tỉnh Cam Túc mới mở cửa năm nay. Đây từng là một trạm dừng chân trên Con đường Tơ lụa thời nhà Hán, dành cho khách đi lại giữa vùng Tây Vực. Trong số hơn 80.000 thẻ tre nhà Hán còn tồn tại ở Trung Quốc, có tới hơn 30.000 thẻ được tìm thấy tại trạm dừng này. (via)

Mô hình dữ liệu là cốt lõi của sản phẩm mới

(1)

Niklaus Wirth, nhà khoa học máy tính lỗi lạc và là cha đẻ của ngôn ngữ Pascal, từng để lại một câu nói kinh điển:

Thuật toán + Cấu trúc dữ liệu = Chương trình

Ông thậm chí còn viết hẳn một cuốn sách lấy tên chính là câu nói này.

Trong mắt Wirth, cấu trúc dữ liệu quan trọng ngang hàng với thuật toán, còn ngôn ngữ lập trình chỉ là thứ yếu. Nếu cấu trúc dữ liệu sai, chương trình cầm chắc thất bại. Ngược lại, khi cấu trúc dữ liệu đúng, cách giải quyết vấn đề thường sẽ tự hiện ra một cách rõ ràng.

(2)

Gần đây tôi có đọc được một bài viết cũng ủng hộ quan điểm này. Tác giả còn tiến thêm một bước khi khẳng định rằng: Mô hình dữ liệu không chỉ là cốt lõi của chương trình, mà còn là linh hồn của mọi sản phẩm mới.

Cấu trúc dữ liệu quyết định hình thái của sản phẩm. Đôi khi chỉ cần thay đổi mô hình dữ liệu, bạn sẽ có ngay một sản phẩm hoàn toàn mới. Những ví dụ dưới đây thực sự rất gợi mở.

(3)

Ban đầu, các phần mềm chat đều lấy con người làm trung tâm. Hai hoặc nhiều người kết nối lại tạo thành một cuộc hội thoại.

Mô hình dữ liệu này xoay quanh người dùng. Nếu mọi thành viên rời đi, cuộc hội thoại coi như kết thúc.

Thế rồi Slack ra đời. Mô hình dữ liệu của nó đã thay đổi: Cốt lõi không còn là con người mà là chủ đề. Mỗi chủ đề là một “vỏ chứa” (container) chứa mọi cuộc thảo luận liên quan, hay còn gọi là các kênh (channel).

Dù mọi người có rời đi, kênh đó vẫn tồn tại. Toàn bộ ngữ cảnh của chủ đề không hề mất đi. Thành viên mới tham gia có thể xem lại toàn bộ lịch sử thảo luận trước đó. Chính nhờ thay đổi nhỏ trong mô hình dữ liệu này, Slack đã đánh bại các đối thủ và trở thành lựa chọn hàng đầu cho giao tiếp nội bộ doanh nghiệp.

(4)

Hãy nhìn vào Notion và Google Docs. Cả hai đều dùng để soạn thảo văn bản, nhưng mô hình dữ liệu lại khác biệt hoàn toàn.

Google Docs dùng mô hình truyền thống, lấy từng tệp văn bản làm trung tâm.

Trong khi đó, cốt lõi của Notion không phải là văn bản mà là Trang (Page). Một trang là một vỏ chứa, nơi bạn có thể kết hợp nhiều khối nội dung và tài liệu khác nhau để hiển thị cùng nhau.

Figma và Photoshop cũng tương tự. Tâm điểm của Photoshop là hình ảnh, mọi chỉnh sửa đều thuộc về một bức ảnh cụ thể.

Nhưng với Figma, cốt lõi chính là Không gian làm việc (Workspace). Một bản thiết kế là một không gian làm việc chứa được nhiều hình ảnh, nơi nhiều người có thể cùng tham gia và để lại bình luận.

(5)

Tóm lại, chỉ cần một thay đổi nhỏ trong mô hình dữ liệu là có thể tạo ra một sản phẩm mới, mở ra một thị trường hoàn toàn khác. Nếu sản phẩm của bạn đang quá giống với những gì đã có, hãy thử suy nghĩ xem liệu có thể thay đổi mô hình dữ liệu hay không.

Tin tức công nghệ

  1. Điện miễn phí tại Úc

Úc đã lắp đặt một lượng khổng lồ các tấm pin năng lượng mặt trời, dẫn đến một rắc rối mới: Điện dư thừa quá nhiều vào ban ngày. Chính phủ đang dự định tung ra kế hoạch miễn phí tiền điện vào buổi trưa, khi ánh nắng mạnh nhất. Các công ty điện lực sẽ phải cung cấp ít nhất 3 giờ dùng điện miễn phí mỗi ngày cho mọi người. Nếu bạn có pin lưu trữ, bạn thậm chí có thể dùng điện miễn phí cả ngày.

  1. Quảng cáo AI phủ kín tàu điện ngầm New York

Gần đây, các ga tàu điện ngầm ở New York đồng loạt xuất hiện quảng cáo về một thiết bị AI. Đó là một chiếc dây chuyền AI có giá 129 USD, cho phép người đeo trò chuyện trực tiếp với nó.

Công ty này đã chi gần 1 triệu USD mỗi tháng cho quảng cáo, nhưng sau một tháng rưỡi chỉ bán được 3.100 sản phẩm, thu về chưa đầy 400.000 USD. Một khoản đầu tư lỗ nặng, nhưng CEO của họ vẫn rất lạc quan. Anh tin rằng khi sản phẩm lên kệ tại Walmart, doanh số sẽ tăng vọt vì mọi người đều cần một “người bạn đồng hành AI” để cải thiện trí tuệ cảm xúc.

  1. “Ô bắt gió” khổng lồ tại Nội Mông

Một chiếc “ô bắt gió” lớn nhất thế giới vừa thử nghiệm thành công việc bung và thu ô tại Nội Mông. Với diện tích lên tới 5.000 mét vuông, nó hoạt động giống như một chiếc diều khổng lồ bay ở độ cao trên 300 mét để thu hoạch năng lượng gió rồi truyền qua dây cáp kéo máy phát điện dưới mặt đất.

  1. Spatial Personas trên Vision Pro

Hệ điều hành VisionOS 2 mới của Apple vừa bổ sung tính năng Spatial Personas. Bằng cách sử dụng camera bên trong và thuật toán Gaussian Splatting, hệ thống có thể biến ảnh chân dung 2D thành một hình đại diện 3D sống động.

Khi gọi điện, bạn sẽ thấy đối phương như đang lơ lửng trước mặt với biểu cảm và cử động thời gian thực. Tính năng này hỗ trợ tới 5 người cùng lúc, mở ra viễn cảnh chúng ta có thể thực sự “gặp mặt” nhau trong không gian ảo.

Bài viết

  1. Lời kêu cứu của một lập trình viên Iran (Tiếng Anh)

Một lập trình viên Iran tạo ra công cụ tạo avatar AI nhưng không thể bán ra quốc tế vì lệnh trừng phạt của Mỹ. Anh chia sẻ trên GitHub về hoàn cảnh bế tắc khi không thể sử dụng Stripe, PayPal hay các dịch vụ đám mây như AWS, GCP, Azure, khiến sản phẩm của anh không thể mang lại thu nhập dù vợ anh phải làm việc vất vả từ sáng sớm đến tối muộn.

  1. Tôi ghét việc chụp ảnh màn hình code (Tiếng Anh)

Một lập trình viên kêu gọi khách hàng đừng gửi ảnh chụp màn hình khi gặp lỗi nữa. Việc này khiến anh không thể copy code để kiểm tra, thay vào đó hãy gửi link dẫn đến mã nguồn.

  1. Dùng ảnh thay chữ có giúp tiết kiệm Token không? (Tiếng Anh)

Bài viết kiểm chứng xem liệu việc chuyển Prompt từ văn bản sang hình ảnh có giúp tiết kiệm Token không. Kết quả là bản thân Prompt thì tiết kiệm được, nhưng mô hình lại tốn nhiều Token hơn để hiểu ngữ cảnh, nên tổng cộng không hề rẻ hơn.

  1. Hình minh họa chi tiết về thuật toán Dijkstra (Tiếng Trung)

Dijkstra là thuật toán kinh điển để tìm đường đi ngắn nhất giữa hai điểm. Bài viết giải thích từng bước một cách trực quan qua hình ảnh.

  1. Trải nghiệm Web Monetization API (Tiếng Anh)

Trình duyệt có một API thử nghiệm cho phép khách truy cập quyên góp trực tiếp cho chủ trang web. Đây là bài báo cáo về quá trình dùng thử nó.

  1. So sánh chi phí các plugin AI cho lập trình (Tiếng Anh)

Bài viết so sánh chi phí thực tế giữa Augment Code (dùng Claude Sonnet 4.5 cố định) và Kilo Code (cho phép tự cấu hình mô hình riêng).

Công cụ

  1. MagicMirror²

Ứng dụng bảng thông tin có thể dùng cho màn hình hiển thị hoặc gương thông minh.

  1. btop

Bản nâng cấp của lệnh htop, hiển thị thông tin hệ thống một cách chi tiết và đẹp mắt trong Terminal.

  1. DroidDock

Ứng dụng Mac giúp kết nối và quản lý file trên điện thoại Android.

  1. RedisFX

Giao diện đồ họa (GUI) nhẹ nhàng cho Redis, viết bằng JavaFX chạy trên JVM.

  1. Pingap

Server Reverse Proxy viết bằng Rust tương tự nginx, tích hợp sẵn nhiều plugin bảo mật và quản lý lưu lượng.

  1. Alle

Nền tảng quản lý email tập trung, triển khai trên Cloudflare Workers và hỗ trợ xử lý email bằng AI.

  1. gocron

Hệ thống quản lý tác vụ định kỳ (cron job) cho Linux viết bằng Go, có giao diện web để thay thế crontab truyền thống.

  1. markdown-it-ts

Bản viết lại bằng TypeScript của thư viện parse Markdown nổi tiếng markdown-it.

  1. TUIOS

Một trình quản lý cửa sổ ngay bên trong Terminal, cho phép quản lý nhiều phiên làm việc cùng lúc.

  1. XMSLEEP

Ứng dụng tạo tiếng ồn trắng (white noise) nguồn mở cho Android.

Liên quan đến AI

  1. Davia

Công cụ nguồn mở dùng AI để biến toàn bộ kho mã nguồn thành một bộ tài liệu trực quan.

  1. VoidMuse

Plugin AI hỗ trợ IDEA và VS Code, mã nguồn mở phục vụ mục đích giảng dạy cách phát triển trợ lý lập trình.

  1. UPage

Nền tảng xây dựng website trực quan dựa trên mô hình lớn, một lựa chọn thay thế nguồn mở cho Lovable.

  1. Pair Translate

Plugin trình duyệt hỗ trợ dịch thuật bằng cách kết nối với các mô hình AI hoặc dịch vụ bên thứ ba.

  1. DatasetLoom

Ứng dụng Web giúp xây dựng dữ liệu huấn luyện cho các mô hình đa phương thức.

  1. Cordys CRM

Hệ thống quản lý khách hàng (CRM) tích hợp AI nguồn mở.

Tài nguyên

  1. stickertop.art

Trang web tổng hợp những bức ảnh chụp laptop được dán đầy sticker.

  1. Trực quan hóa kiểu dữ liệu TypeScript

Giải thích các kiểu dữ liệu trong TypeScript bằng hình ảnh sinh động.

  1. Tỷ lệ sử dụng tiền mặt của các quốc gia

Thống kê tỷ lệ dùng tiền mặt năm 2025. Trung Quốc là một trong những nước thấp nhất với chỉ 10%.

Hình ảnh

  1. Đề thi đầu vào của MIT

Đây là đề thi môn đại số trong kỳ thi nhập học của MIT năm 1869 (năm Đồng Trị thứ 8 thời nhà Thanh).

  1. Chữ tượng hình Ai Cập cổ đại

Một lập trình viên Iceland nhờ chuyên gia dịch câu “hello world” sang chữ tượng hình Ai Cập cổ. Vì người Ai Cập cổ không có khái niệm “thế giới” (world), câu này được dịch sát nghĩa thành “Chào mừng toàn bộ lục địa”.

Trích dẫn

Công ty càng lớn, sản phẩm càng dễ trở nên phức tạp

Có hai lý do chính khiến các công ty lớn thường tạo ra những sản phẩm cực kỳ phức tạp.

Thứ nhất, càng nhiều người tham gia, sản phẩm càng rắc rối vì ai cũng muốn để lại dấu ấn cá nhân. Ở các tập đoàn lớn, việc đóng góp tính năng mới là con đường dẫn đến thăng tiến. Ngay cả khi tính năng đó là thừa thãi và vô dụng chỉ sau vài tháng, người tạo ra nó vẫn được khen thưởng. Vì thế, mọi người luôn sốt sắng thêm thắt các tính năng mới.

Thứ hai, quy mô càng lớn, khách hàng càng nhiều, công ty càng phải đối mặt với vô vàn yêu cầu cụ thể. Nhân viên bán hàng hay hỗ trợ khách hàng sẽ liên tục thúc giục bạn thêm tính năng này, yêu cầu kia. Trừ khi bạn có tầm nhìn cực kỳ vững vàng để từ chối những gì không phù hợp với triết lý sản phẩm, nếu không bạn sẽ bị cuốn vào vòng xoáy thêm thắt vô tận.

Trong thực tế, lập trình viên tại các công ty lớn chịu nhiều áp lực và hiếm khi có lập trường riêng. Họ phải làm hài lòng cấp trên và cân bằng giữa các bộ phận, kết quả cuối cùng là một phần mềm khổng lồ và rối rắm.

Phát ngôn

  1. Khác với API thông thường là một cam kết không thể dễ dàng thay đổi, giao diện MCP chỉ dành cho mô hình lớn gọi. Vì mô hình lớn sẽ đọc quy tắc sử dụng một cách linh hoạt mỗi lần, nên chúng ta có thể thay đổi server MCP bất cứ lúc nào mà không gặp vấn đề gì. — Steve Krouse

  2. Nếu bạn chỉ cho mọi người thấy vấn đề, đồng thời đưa ra giải pháp, họ sẽ cảm động và bắt tay vào hành động. — Bill Gates

  3. 25% đá trên bề mặt Trái Đất là đá cacbonat, phần lớn hình thành từ xác các sinh vật hữu cơ. Điều này có nghĩa là rất nhiều khối đá hiện nay từng là những sinh thể sống. — Suy nghĩ về cái chết

  4. Những người đang tung hô lập trình bằng AI liệu có nhận ra rằng AI chắc chắn sẽ mang lại một lượng khổng lồ mã nguồn rác và những khoản “nợ hiểu biết” không? — Độc giả Hacker News

  5. Gần đây tôi tự hỏi, nếu AI có thể dịch ngôn ngữ của chúng ta thành mã nguồn có thể chạy được, liệu chúng ta còn cần đến các ngôn ngữ lập trình nữa không? — Lập trình không phụ thuộc ngôn ngữ

(Hết)