3 điểm bởi GN⁺ 2024-03-04 | 1 bình luận | Chia sẻ qua WhatsApp

Những ý tưởng mới của Observable Framework

  • Observable Framework là một trình tạo trang web tĩnh, biên dịch sự kết hợp giữa Markdown và JavaScript thành các trang tương tác tải rất nhanh.
  • Cung cấp máy chủ hot reloading cho phép chỉnh sửa và lưu tệp theo thời gian thực để có thể thấy ngay các thay đổi trong trình duyệt.
  • Khi hoàn tất công việc, có thể chuyển đổi thành các tệp tĩnh để triển khai lên máy chủ hoặc triển khai trực tiếp lên nền tảng chia sẻ của Observable.

JavaScript bên trong Markdown

  • Các khối mã trong Markdown có gắn thẻ js sẽ được thực thi dưới dạng JavaScript trong trình duyệt của người dùng.
  • Biến đặc biệt now cung cấp thời gian hiện tại tính bằng mili giây kể từ epoch và được cập nhật liên tục.
  • Observable Framework hợp nhất Markdown và JavaScript vào một tài liệu văn bản duy nhất để tạo ra tài liệu tương tác.

Mọi thứ vẫn mang tính phản ứng

  • Observable Framework duy trì tính phản ứng của Observable notebook và tự động làm mới khi các ô khác mà nó phụ thuộc thay đổi.
  • Điều này đặc biệt hữu ích khi làm việc với dữ liệu đầu vào từ biểu mẫu và giúp dễ dàng thêm tính tương tác theo thời gian thực vào tài liệu.

Chỉ bao gồm phần mã được sử dụng

  • Observable Framework triển khai lazy loading trong chế độ phát triển để chỉ tải phần mã đang được sử dụng.
  • Khi build và triển khai ứng dụng, chỉ mã thư viện được tham chiếu mới được tải tự động từ CDN jsdelivr.

Bộ nhớ đệm dữ liệu tại thời điểm build

  • Framework build dữ liệu dashboard tại thời điểm build thông qua cơ chế data loader và đóng gói chúng vào các tệp tĩnh.
  • Data loader là các script có thể được viết bằng bất kỳ ngôn ngữ lập trình nào, chạy tại thời điểm build và lưu đầu ra thành tệp.

So sánh với Observable notebook

  • Observable Framework tái sử dụng các ý tưởng và mã của Observable notebook, nhưng được cấu thành từ một tệp văn bản duy nhất và hoàn toàn là mã nguồn mở.
  • Sử dụng JavaScript tiêu chuẩn và có thể check in vào Git với định dạng tệp đơn giản hơn.

Thay đổi trong chiến lược

  • Observable Framework cho thấy sự thay đổi chiến lược của công ty Observable theo hướng nghiêng nhiều hơn về không gian công cụ dành cho nhà phát triển.
  • Cùng với sự tôn trọng đối với công nghệ của Observable notebook, Observable Framework cũng giải quyết các vấn đề từng hạn chế việc sử dụng vì tính chất độc quyền của nền tảng và các giới hạn của tài khoản miễn phí.

Ý kiến của GN⁺

  • Observable Framework là một công cụ mới để xây dựng trực quan hóa dữ liệu và dashboard, có tiềm năng mang lại khả năng cộng tác và hiệu quả tốt hơn cho các nhà phát triển.
  • Nền tảng này giúp dễ dàng tạo ra các tài liệu và dashboard tương tác hỗ trợ việc ra quyết định dựa trên dữ liệu, nên sẽ hữu ích cho cả nhà khoa học dữ liệu lẫn nhà phát triển.
  • Tuy nhiên, thành công của Observable Framework sẽ phụ thuộc rất nhiều vào mức độ được cộng đồng nhà phát triển chấp nhận và mức độ tích hợp với các công cụ hiện có.
  • Những dự án khác cung cấp tính năng tương tự gồm có Jupyter Notebook và R Shiny; việc so sánh với chúng có thể giúp hiểu rõ hơn các ưu và nhược điểm của Observable Framework.
  • Khi áp dụng Observable Framework, cần cân nhắc các yếu tố như khả năng tương thích với pipeline dữ liệu hiện có, tối ưu hiệu năng và hỗ trợ từ cộng đồng.

1 bình luận

 
GN⁺ 2024-03-04
Ý kiến Hacker News
  • Observable Framework được ví như "Avengers: Endgame" trong vũ trụ điện ảnh của Mike Bostock.

    • Được mô tả là sự kết hợp của d3, Observable, Observable Plot, HTL và bổ sung thêm các ý tưởng mới.
  • Một vấn đề khi dùng Observable Framework là vai trò của nó như một nguồn tài nguyên ví dụ cho d3.

    • Vì được thiết kế để chỉ chạy trong framework đó nên không thể sao chép và dán nguyên trạng đoạn mã.
    • Bản thân d3 vốn không dễ sử dụng và có vấn đề tương thích giữa các phiên bản, nhưng trên trang có thể tìm thấy những đồ họa ấn tượng.
  • Có nhắc đến việc có thể xuất bản Observable Framework lên GitHub Pages một cách dễ dàng.

    • Cung cấp liên kết tới một ghi chú có các bước xuất bản và một mẫu GitHub Action.
  • Chia sẻ trải nghiệm hoàn thành dự án đầu tiên bằng Observable notebook.

    • Đã tốn khá nhiều công sức để học nhiều công cụ khác nhau như Observable Plot, Arquero, học lại một phần JavaScript và tích hợp với trình mô phỏng dựa trên Rust.
    • Nhờ Markdown và tính phản ứng, notebook cho cảm giác thực sự dùng được.
    • Nó giải quyết các vấn đề quản lý phiên bản và sự rối rắm dựa trên trạng thái do định dạng tùy biến của Jupyter và việc thiếu tính phản ứng.
    • Cũng từng thử tích hợp Observable với Quarto, nhưng cảm giác còn chưa hoàn chỉnh và rời rạc.
    • Đây là một trải nghiệm vui và đầy hứng khởi khi viết và chia sẻ notebook, và họ sẽ tiếp tục dùng nó như công cụ lựa chọn đầu tiên.
  • Chia sẻ trải nghiệm tích cực về Observable Framework.

    • Việc thiết lập các biểu đồ tương tác và vẽ dữ liệu được nói là cực kỳ đơn giản.
    • Bày tỏ mong muốn Python data loader có thể được cấu hình để dùng virtualenvs.
  • Có câu hỏi được đặt ra về việc liệu có nên chuyển từ Jupyter notebook sang Observable hay không.

  • Giải thích rằng nếu trong khối mã có gợi ý nội dung js thì nó sẽ được chạy ngay trong trình duyệt của người dùng.

    • Để hiển thị mã, cần dùng gợi ý js echo.
    • Nêu ra vấn đề phải quản lý việc thực thi khi tích hợp renderer vào ứng dụng hiện có.
  • Observable được nói là tích hợp tốt với REST API của ClickHouse, và ví dụ truy vấn cơ sở dữ liệu theo thời gian thực rất thú vị.

    • Vì ứng dụng cần có tính tương tác nên họ hy vọng việc nạp trước và lưu đệm dữ liệu không phải là lựa chọn duy nhất.
  • Đã thiết lập Codespace devcontainers với môi trường Node và Python được cấu hình tự động để có thể nhanh chóng thử và vọc Framework ngay trong trình duyệt.

  • Có ý kiến cho rằng Observable đang tự giới hạn tệp người dùng khi chỉ hỗ trợ JavaScript.

    • Dù JavaScript là ngôn ngữ thiết yếu cho hiển thị tương tác trong trình duyệt, nó vẫn bị đánh giá là kém thuận tiện hơn Python hay R cho khoa học dữ liệu và phân tích dữ liệu.