С целью упростить мою работу по поддержке кода я начал реорганизовывать его в несколько модулей и использовать веб-пакет.
Я хотел бы сохранить каждый файл для области, например, утилиту графические интерфейсы, функции, конфигурация и т. д. и их малость.
Я сомневаюсь, как можно реорганизовать некоторые модули, которые оба используют другие библиотеки.
Скажем, например, Я хочу использовать библиотеку макетов графа - я выберу 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 из библиотеки в одном файле и рендеринг в другом файле.
Советы по сохранению вещей организованы и чисты, но не сложны в управлении, ценятся.