Рефакторинг кода, чтобы избежать зависимости от окружностей при импорте модулей с Ecmascript 6 и веб-пакетом - PullRequest
0 голосов
/ 18 января 2020

С целью упростить мою работу по поддержке кода я начал реорганизовывать его в несколько модулей и использовать веб-пакет.

Я хотел бы сохранить каждый файл для области, например, утилиту графические интерфейсы, функции, конфигурация и т. д. и их малость.

Я сомневаюсь, как можно реорганизовать некоторые модули, которые оба используют другие библиотеки.

Скажем, например, Я хочу использовать библиотеку макетов графа - я выберу Vivagraph. js - и посмотрю на этот простой пример здесь:

https://github.com/anvaka/VivaGraphJS/blob/master/demos/tutorial_svg/02%20-%20Create%20Custom%20Node.html

, где здесь определяется «движок graphi c»:

var graphics = Viva.Graph.View.svgGraphics();

, а затем рендеринг:

var renderer = Viva.Graph.View.renderer(graph, {
                    graphics : graphics
                });

В моем приложении я расширил части Graphi c и UX. Например, с функциями, связанными с взаимодействием узлов, и с функциями, связанными с внешним видом.

Я мог бы сделать что-то вроде этого, чтобы разделить движок graphi c на один файл и сохранить график объект и рендеринг в другом файле (например, в главном приложении):

// customUI.js
import Viva from 'vivagraphjs'
import ux from 'customUX.js

var graphics = Viva.Graph.View.svgGraphics();


graphics.node(function(node) {
                // create the UI object for the node

                customUX( ui ).function( event) { // associate interaction to the node })

            })

// other instruction to make the graph rendering look nice 

export {graphics};

и

//main app.js

import Viva from 'vivagraphjs'
import {graphics} from 'customUI.js'

var graph = Viva.Graph.graph(); 

var renderer = Viva.Graph.View.renderer(graph, {
                    graphics : graphics
                });

Я боюсь дважды импортировать основную библиотеку (в данном случае Vivagraph) и сделать циркуляр зависимости, поэтому вместо упрощения кода я создаю грязную сборку.

Можете ли вы посоветовать лучший шаблон для рефакторинга кода?

Обратите внимание, я не ставлю цель стать мастером веб-пакета , Я имею в виду, что я также изучаю кривую обучения и время, чтобы подобрать новые инструменты для рефакторинга кода VS, немного улучшив созданную мной библиотеку. Если возможно, я бы хотел избегать дизассемблирования или импорта модулей используемых библиотек здесь и там - например, импортировать графическое ядро ​​c из библиотеки в одном файле и рендеринг в другом файле.

Советы по сохранению вещей организованы и чисты, но не сложны в управлении, ценятся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...