14 điểm bởi GN⁺ 2024-02-16 | 1 bình luận | Chia sẻ qua WhatsApp

Công bố Observable Framework

  • Ra mắt Observable 2.0: trình tạo trang tĩnh mã nguồn mở cho phép xây dựng các ứng dụng dữ liệu, bảng điều khiển và báo cáo nhanh, đẹp.
  • Mục tiêu là truyền đạt dữ liệu một cách hiệu quả; notebook của Observable phù hợp với việc khám phá dữ liệu tạm thời nhưng không phù hợp cho dashboard và ứng dụng.
  • Với Observable Framework, có thể xây dựng các ứng dụng dữ liệu tốt nhất, đồng thời kết hợp JavaScript ở frontend với nhiều ngôn ngữ khác nhau ở backend.

Vượt ra ngoài notebook 📓

  • Observable 2.0 phản ánh kinh nghiệm tích lũy qua nhiều năm.
  • Tính nhẹ và khả năng cộng tác của notebook tính toán rất lý tưởng cho việc khám phá dữ liệu và trả lời các câu hỏi tức thời, nhưng đó không phải là giao diện được tối ưu cho mọi công việc.
  • Notebook bị giới hạn bởi bố cục một cột, mật độ thông tin trực quan thấp và giao diện trình soạn thảo luôn hiển thị; những giới hạn này phù hợp cho việc học và thử nghiệm nhưng không thích hợp cho trình bày.
  • Ứng dụng dữ liệu thúc đẩy sự thấu hiểu chung, được các nhóm sử dụng thường xuyên hơn và giữ được giá trị theo thời gian.

Quy trình làm việc tốt hơn cho nhà phát triển 👩‍💻

  • Phát triển hiện đại diễn ra theo cách dựa trên tệp, và các tệp có khả năng tương tác lẫn nhau.
  • Nhà phát triển có thể dùng trình soạn thảo văn bản ưa thích, hệ thống quản lý mã nguồn, hệ thống code review, chạy unit test và linter, đồng thời tự động hóa CI/CD.
  • Observable Framework áp dụng cú pháp JavaScript thuần và sử dụng ES import hiện đại thay cho require, giúp việc học và chia sẻ mã dễ dàng hơn.

Trải nghiệm người dùng tốt hơn 😍

  • Không chỉ trải nghiệm nhà phát triển mà cả trải nghiệm người dùng cũng quan trọng; giá trị của công cụ sáng tạo nên được đánh giá bằng chất lượng của sản phẩm tạo ra.
  • Framework cung cấp các thiết lập mặc định và tiện ích để bắt đầu nhanh, đồng thời có thể tùy chỉnh khi cần.
  • Kiến trúc dữ liệu của Framework tăng tốc ứng dụng bằng cách tính toán trước dữ liệu.

Kiến trúc dữ liệu tốt hơn

  • Trực quan hóa dữ liệu đòi hỏi sự chuẩn bị dữ liệu cụ thể, và phần lớn công việc nằm ở khâu chuẩn bị dữ liệu.
  • Nhà phát triển muốn sử dụng nhiều ngôn ngữ, thư viện và nguồn dữ liệu khác nhau, xử lý trước dữ liệu ngoại tuyến, đồng thời tận dụng đồ họa tương tác bằng JavaScript trong trình duyệt.
  • Data loader của Framework tính toán các ảnh chụp dữ liệu tĩnh tại thời điểm build để tăng tốc độ tải trang, đồng thời chạy trên máy chủ nên có thể kiểm soát bảo mật và quyền riêng tư.

Lời cảm ơn

  • Nhờ sự hỗ trợ, phản hồi và động viên từ cộng đồng mà họ đã đi được đến đây, và họ rất vui khi được chia sẻ Observable Framework.
  • Nếu muốn tìm hiểu thêm về Framework, nên đọc tài liệu hoặc ghé thăm diễn đàn.

Ý kiến của GN⁺:

  • Observable Framework có vẻ sẽ mang lại đổi mới cho việc phát triển các ứng dụng web lấy dữ liệu làm trung tâm. Đặc biệt, việc xử lý dữ liệu trước thông qua data loader là một tính năng quan trọng có thể cải thiện đáng kể trải nghiệm người dùng.
  • Cách tiếp cận của Observable nhằm cung cấp công cụ hữu ích cho cả nhà phát triển lẫn người dùng rất phù hợp với văn hóa phát triển hiện đại coi trọng cộng tác và hiệu quả.
  • Là mã nguồn mở và có sự linh hoạt khi hỗ trợ nhiều ngôn ngữ cùng công cụ, đây được kỳ vọng sẽ là một lựa chọn hấp dẫn đối với cộng đồng nhà phát triển.

1 bình luận

 
GN⁺ 2024-02-16
Ý kiến trên Hacker News
  • Tin ra mắt Observable Framework

    • Observable Framework là một công cụ mã nguồn mở mới để phát triển ứng dụng dữ liệu.
    • Khuyến nghị xem báo cáo ví dụ phân tích web log trong dashboard nội bộ.
    • Sử dụng kỹ thuật “biểu diễn mọi thứ bằng đồ thị” để thu được insight giúp tối ưu máy chủ và kiểm soát lưu lượng.
    • Cũng chia sẻ một dashboard kiểu truyền thống để trực quan hóa mức độ chấp nhận của thư viện trực quan hóa mã nguồn mở mới có tên Observable Plot.
    • Cùng với việc ra mắt Observable Framework, Observable lại được cung cấp miễn phí cho người dùng cá nhân (bao gồm notebook riêng tư và database connector).
  • Các đặc điểm của Observable Framework

    • Observable Framework sử dụng 100% cú pháp JavaScript thuần.
    • Có thể dùng runtime phản ứng của Observable mà không cần cú pháp đặc biệt.
    • Có thể dùng static ES import từ npm hoặc module cục bộ, và khai báo nhiều biến cấp cao nhất trong code block.
    • Có thể hiển thị nội dung lên trang bằng cách gọi hàm display(…) tích hợp sẵn.
    • Việc dùng cú pháp thuần giúp tăng đáng kể khả năng tương tác.
    • Đang tìm cách đưa các cải tiến này sang Observable notebook trong tương lai gần.
  • Ứng dụng của khái niệm “file đối lập với app”

    • Trong phần công bố có nhắc đến khái niệm “file đối lập với app”.
    • Có thể tạo trực quan hóa dữ liệu và dashboard phức tạp bằng cách dùng code block trong file Markdown.
    • Khả năng tương tác này rất thú vị.
    • Đã thử chỉnh sửa một trang Observable trong Obsidian và xác nhận là hoạt động tốt.
  • Đánh giá tích cực về cách tiếp cận của Observable

    • Cách tách Observable khỏi observablehq.com là rất tuyệt.
    • Giúp mọi phóng viên dễ dàng tạo blog động và dựa trên thông tin.
    • Người sáng lập Observable từng có thành tích tạo ra các trực quan hóa dữ liệu ấn tượng tại NYTimes.
    • Những công cụ như vậy giúp trao lại quyền cho nhà báo và cho phép chuyển dịch khỏi các công ty đáng ngờ.
    • Svekyll là một trình tạo trang tĩnh lấy cảm hứng từ Jekyll, dành cho những ai muốn dùng Svelte cho blog.
  • Nhiều ý tưởng khác nhau về Observable Framework

    • Data loader là script có thể xuất dữ liệu (như JSON) ra standard output.
    • File Markdown có chứa các khối ```js được thực thi.
    • Một sự tái tạo của Observable notebook nhằm tránh cú pháp tùy chỉnh.
    • Những điểm này rất quan trọng.
  • Yêu cầu về việc sử dụng Observable Framework

    • Thích sự phân tách rõ ràng giữa việc tải/chuẩn bị dữ liệu và hiển thị.
    • Đề nghị có ví dụ đơn giản và tài liệu triển khai rõ ràng hơn.
    • Giả định rằng đa số mọi người sẽ thích triển khai qua GitHub Actions, và đề nghị thêm ví dụ file triển khai đơn giản nhất vào tài liệu thay vì các file triển khai phức tạp.
    • Đề xuất về việc có thể dùng giao diện kết nối với kho GitHub và build/triển khai khi có thay đổi hay không.
  • Câu hỏi về Observable Framework

    • Hỏi liệu tính linh hoạt về ngôn ngữ ở data loader/backend có được áp dụng cho frontend/UI hay không, hay mô hình hiện tại vẫn là dùng ngôn ngữ tùy chọn cho việc tải dữ liệu còn dashboard thì xây bằng observablejs/observable plot.
    • Xét đến việc ObservableJS được Quarto hỗ trợ, hỏi liệu có thể kỳ vọng Observable Framework tích hợp với Quarto hay không, hay các phiên bản Quarto mới nhất với tính năng dashboard sẽ trở thành đối thủ của Framework.
    • Đã thấy so sánh với Evidence.dev và cũng cảm nhận sự tương đồng trong trải nghiệm phát triển xoay quanh Markdown, nhưng nhớ rằng Evidence chọn Apache Echarts làm thư viện biểu đồ chính. Suy nghĩ về ưu nhược điểm của Echarts so với ObservableJS/Plot.
  • Quá trình phát triển mang tính lịch sử của Observable

    • Nếu nhìn lại lịch sử của Observable, ban đầu họ là một công ty tạo trình tạo trang tĩnh cho dashboard, sau đó cố gắng đưa khoa học dữ liệu đến các quản lý cấp trung nhưng khó tìm được product-market fit, rồi cuối cùng tập trung vào một công cụ đơn giản và thanh lịch cho exploratory programming, trực quan hóa dữ liệu và soạn thảo tài liệu tương tác trong JavaScript.
  • Các câu hỏi bổ sung về việc dùng Observable Framework

    • Hỏi cách đạt được tương tác nếu muốn tạo plot/bảng chỉ lấy và hiển thị một phần dữ liệu tại một thời điểm từ file cơ sở dữ liệu Sqlite/Duckdb trên máy chủ bằng slider/filter.
    • Nếu Observable Framework cung cấp frontend, hỏi liệu có thể dùng bất kỳ thư viện xác thực nào để tạo website có tùy chọn đăng nhập và đăng ký hay không.
    • Nếu là trang web tĩnh, hỏi liệu người dùng có thể dùng Dev Tools để tải xuống file dữ liệu phía sau phần trực quan hóa mỗi khi xem biểu đồ hay không.
    • Hỏi thời điểm phát hành các tương tác của Plot (zoom, pan, chú giải tương tác, brush).
    • Khi có các file parquet, sqlite, csv lớn thì CI/CO qua GitHub hay Vercel là không khả thi, nên hỏi liệu có kế hoạch cung cấp dịch vụ hosting để lưu các file này và tạo runtime hay không.
  • Quan sát về các ý tưởng tương tự

    • Đang phát triển một công cụ rất giống (dù ở vài khía cạnh thì rất khác) tại rysana.com.
    • Ý tưởng này xuất hiện theo làn sóng gần như không cần điều phối, giống như khi phép vi tích phân lần đầu được phát minh.
    • Dù đã có nhiều nền tảng kỹ thuật đi trước, điều thú vị là bước nhảy cụ thể sang một “ứng dụng” Markdown một file dùng nhiều ngôn ngữ khác nhau đang xảy ra đồng thời.