2013-06-11 21 views
6

Tôi đang lập kế hoạch viết một trình soạn thảo biểu đồ dựa trên web. Nếu nó dành cho máy tính để bàn, tôi đã chọn Eclipse GEF làm nền tảng để xây dựng nó.Có phải d3 là một lựa chọn tốt để xây dựng một trình soạn thảo biểu đồ dạng tự do?

Đối với web, tôi đang xem xét d3.js, nhưng tôi hơi lo lắng rằng hầu như mọi ví dụ và bài viết mà tôi gặp phải trên d3 là để hiển thị dữ liệu và không thực sự cho một điểm tương tác và nhấp, chọn và kết nối, kéo và vẽ loại sử dụng.

Tôi vẫn có thể bắt buộc phải chỉnh sửa trình soạn thảo này, nhưng sau đó tôi tự hỏi liệu d3 có tiến triển theo những cách sẽ làm cho nó liên tục đau đớn để duy trì trình chỉnh sửa trong tương lai hay không.

Vì vậy, câu hỏi của tôi đối với cộng đồng là: từ quan điểm kiến ​​trúc phần mềm, d3 có phải là lựa chọn tốt để xây dựng trình chỉnh sửa biểu đồ dạng tự do không? Bạn có thể đưa tôi đến API, mã nội bộ d3, bài viết hoặc ví dụ chứng minh rằng một trình soạn thảo như vậy có thể đứng trong thời gian dài không?

+0

Điều này kêu gọi ý kiến, vì vậy hãy bỏ phiếu để đóng. –

+0

Chỉnh sửa để làm cho nó ít hơn của một câu hỏi ý kiến ​​đóng góp mở kết thúc với một câu hỏi có thể được "trả lời" một cách không rõ ràng. – Pradyumna

Trả lời

10

Nếu câu hỏi là "Có thể D3 giúp tôi với các tương tác SVG có liên quan đến việc tạo trình soạn thảo biểu đồ dựa trên web không?", Thì câu trả lời sẽ là "Có, một chút". Nhưng bạn đang thiết lập trên một dự án rất lớn, và D3 chỉ có thể giúp bạn với một số phần của nó.

Ví dụ về các lĩnh vực mà D3 có thể giúp ích:

Nói chung tôi nghĩ có lẽ bạn đang tìm kiếm một khuôn khổ cấp cao hơn, trừ khi bạn đang chuẩn bị để kiểm soát gần như mọi khía cạnh của những gì D3 làm.

Bạn nói đúng rằng hầu hết các phương pháp trợ giúp mà D3 cung cấp đều hướng đến việc trực quan hóa dữ liệu, nhưng nó cung cấp một lớp mỏng trên SVG có thể hữu ích cho một dự án có mục đích chung như bạn mô tả.

Là để cho dù D3 sẽ phát triển theo một hướng mà có thể làm cho nó ít phù hợp cho dự án này trong tương lai: chỉ @mbostock có thể biết chắc chắn, nhưng với thiết kế của API cho phép nó được sử dụng cho cả hai Thao tác nút SVG hoặc HTML, tôi nghĩ rằng nó an toàn để nói rằng nó sẽ vẫn ở mức khá thấp. Và bạn có thể đã từng thấy this example trước đây nhưng đó là minh hoạ tốt về sức mạnh của thư viện vượt ra ngoài biểu đồ & biểu đồ.

1

D3 là "chỉ" một khuôn khổ và vì vậy có thể được sử dụng cho hầu hết mọi thứ. Nó có âm thanh tuy nhiên như nó sẽ không được một sự phù hợp đặc biệt tốt cho những gì bạn đang cố gắng để làm. Đặc biệt, nó không giống như khái niệm chính của D3 - rằng mọi thứ đều được điều khiển bởi dữ liệu - sẽ có lợi ở đây.

+0

Đồng ý tổng thể, nhưng sẽ không hoàn toàn giảm giá "tất cả mọi thứ được thúc đẩy bởi các dữ liệu" phương pháp tiếp cận. Bạn phải render các sơ đồ hiện có bằng cách nào đó, và chúng là dữ liệu (các nút, hình dạng, kết nối, v.v.) – explunit