Graphify को Gradle वर्कफ़्लो में इंटीग्रेट करें : Knowledge Graph से PlantUML आरेख तक एक ही कमांड में
प्रकाशित: 19 April 2026
- समस्या: डायग्राम हमेशा कोड के पीछे हैं
- समाधान : एक निर्धारित पाइपलाइन Knowledge Graph → PlantUML
- स्टेप 1: Graphify स्थापित करें और Knowledge Graph निकालें
- चरण 2 : ग्रैडल प्लगिन नॉलेज ग्राफ को PlantUML में बदलता है
- चरण 3 : दैनिक उपयोग
- पूर्ण पाइपलाइन एक Gradle वर्कफ़्लो में
- डॉगफ़ूडिंग: प्लगइन स्वयं का दस्तावेज़ बनाता है
- यह निर्धारित क्यों है (और यह क्यों मायने रखता है)
- पाइपलाइन के स्वयं के आरेख
- परियोजना शासन में एकीकरण
- स्थापना : 5 मिनट की चेकलिस्ट
- जाल और निवारण उपाय
- अंत में हमें क्या प्राप्त होता है
- लिंक
आपका कोडबेस बढ़ रहा है। मॉड्यूल के बीच निर्भरताएँ बढ़ रही हैं। आर्किटेक्चर दस्तावेज़ लिखे जाने से पहले ही अप्रचलित हो जाता है। और यदि आपका Gradle बिल्ड automatiquement कोड की वास्तविक संरचना से अद्यतन आरेख उत्पन्न कर सके ? यह ठीक वही है जो Graphify + PlantUML Gradle Plugin पाइपलाइन करता है :`graphify . --no-viz`Knowledge Graph को निकालता है,`./gradlew generateKnowledgeGraphDiagram`इसे PlantUML आरेखों में बदल देता है। शून्य LLM, शून्य मैनुअल, 100% निर्धारित।
समस्या: डायग्राम हमेशा कोड के पीछे हैं
कुछ हजार लाइनों से अधिक लंबा कोई भी प्रोजेक्ट इस सिंड्रोम से परिचित होता है :
-
हम प्रोजेक्ट की शुरुआत में एक आर्किटेक्चर डायग्राम बनाते हैं
-
कोड विकसित हो रहा है, निर्भरताएँ बदल रही हैं
-
दियाग्राम सजावटी झूठ बन जाता है
-
कोई इसे अपडेट नहीं करता क्योंकि यह थकाऊ है
-
नए आए लोग इस पर निर्भर करते हैं और गलतियाँ करते हैं
@startuml
skinparam backgroundColor #FEFEFE
skinparam ActivityBackgroundColor #FDEDEC
skinparam ActivityDiamondBackgroundColor #FFF3CD
start
:आर्किटेक्चर डायग्राम निर्मित\n(हाथ से);
:कोड विकसित हो रहा है\n(नई कक्षाएँ, नई निर्भरताएँ);
:अप्रचलित आलेख\n(अब कोड को नहीं दर्शाता);
if (Qui met à jour ?) then (Personne)
:झूठी दस्तावेज़ीकरण;
note right: नए डेवलपर\nइस पर निर्भर हैं... और गलतियाँ करते हैं
else (Quelqu'un)
:मैनुअल अपडेट\n(2-3 घंटे का काम);
note right: पहले से ही अप्रचलित\nअगली PR के लिए
endif
stop
@enduml
प्रश्न यह नहीं है कि faut-il des diagrammes ? — हर कोई जानता है कि हाँ. प्रश्न यह है :कौन उन्हें अपडेट रखता है ?
जवाब: कोई नहीं. जब तक यह स्वचालित नहीं है.
समाधान : एक निर्धारित पाइपलाइन Knowledge Graph → PlantUML
सिद्धांत सरल है : हाथ से आरेख बनाने के बजाय, हम उन्हेंकोड की वास्तविक संरचना से उत्पन्न.
@startuml skinparam backgroundColor #FEFEFE skinparam componentStyle rectangle actor Développeur component "Graphify\n(pip install graphifyy)" as Graphify collections "graphify-out/graph.json\n(ज्ञान ग्राफ)" as KGJSON component "PlantUML Gradle प्लगइन\n(generateKnowledgeGraphDiagram)" as Plugin component "KnowledgeGraphParser" as Parser component "KnowledgeGraphRenderer" as Renderer component "PlantumlService\n(सत्यापन + रेंडरिंग PNG)" as PS collections "आरेख/knowledge-graph/\n(.puml + .png)" as Output Développeur --> Graphify : graphify . --no-viz Graphify --> KGJSON : संरचना\n की स्रोत कोड निकालता है Développeur --> Plugin : ./gradlew generateKnowledgeGraphDiagram Plugin --> Parser : parse(graph.json) Parser --> Plugin : KnowledgeGraph\n(नोड + किनारे + समुदाय) Plugin --> Renderer : render(graph, filters) Renderer --> Plugin : कोड PlantUML\nनिर्धारित Plugin --> PS : validateSyntax + generateImage PS --> Output : .puml + .png note bottom of Plugin पाइपलाइन DÉTERMINISTE कोई कॉल नहीं LLM पुनरुत्पादनशील परिणाम end note @enduml
दो कमांड। बस यही।
# Étape 1 : extraire le Knowledge Graph
graphify . --no-viz
# Étape 2 : générer les diagrammes PlantUML
./gradlew generateKnowledgeGraphDiagram
परिणाम? फ़ाइलें`.puml` et .png`में`diagrams/knowledge-graph/, Git में वर्ज़न किए गए, कोड के साथ हमेशा अद्यतन.
स्टेप 1: Graphify स्थापित करें और Knowledge Graph निकालें
स्थापना
Graphify एक पायथन टूल है जो आपका कोडबेस विश्लेषण करता है और एक संरचित ज्ञान ग्राफ़ बनाता है :
# Méthode recommandée
uv tool install graphifyy && graphify install --platform opencode
# Alternative avec pip
pip install graphifyy && graphify install --platform opencode
अपवादों को कॉन्फ़िगर करें
फ़ाइल बनाएँ`.graphifyignore`परियोजना की जड़ पर व्यापारिक तर्क का हिस्सा न होने वाली फ़ाइलों को बाहर करने के लिए :
# Secrets — JAMAIS dans le graphe
*-context.yml
*.env
# Fichiers générés
build/
.gradle/
# Tests fonctionnels
src/functionalTest/
Knowledge Graph निकालें
graphify . --no-viz
झंडा`--no-viz`यह HTML जनरेशन को छोड़ देता है (Gradle पाइपलाइन में अनुपयोगी)। परिणाम एक फ़ाइल है।`graphify-out/graph.json`شامل :
-
गाँठें: क्लासेस, फ़ंक्शन, फ़ाइलें — उनके प्रकार और समुदाय के साथ
-
किनारे: नोड्स के बीच संबंध (EXTRACTED कोड से, INFERRED LLM द्वारा)
-
समुदाय: जुड़े नोड्स के स्वचालित समूह
{
"nodes": [
{"id": "0", "label": "LlmService", "file_type": "code", "community": 0},
{"id": "1", "label": "ApiKeyPool", "file_type": "code", "community": 0},
{"id": "2", "label": "PlantumlService", "file_type": "code", "community": 1}
],
"links": [
{"source": "1", "target": "0", "relation": "uses", "confidence": "EXTRACTED", "weight": 0.9},
{"source": "0", "target": "2", "relation": "calls", "confidence": "INFERRED", "weight": 0.7}
]
}
|
स्रोत कोड ( |
चरण 2 : ग्रैडल प्लगिन नॉलेज ग्राफ को PlantUML में बदलता है
पाइपलाइन वास्तुकला
प्लगइन`com.cheroliv.plantuml`एक कार्य को एकीकृत करता है`generateKnowledgeGraphDiagram`जो बदलता है`graph.json`PlantUML डायग्रामों के तरीके सेपूरी तरह से निर्धारित:
@startuml
skinparam backgroundColor #FEFEFE
participant "Gradle" as G
participant "GenerateKnowledgeGraphDiagramTask" as Task
participant "KnowledgeGraphParser" as Parser
participant "KnowledgeGraphRenderer" as Renderer
participant "PlantumlService" as PS
collections "graphify-out/graph.json" as JSON
G -> Task : निष्पादित
Task -> JSON : पढ़ें
Task -> Parser : parse(graph.json)
Parser --> Task : KnowledgeGraph\n(नोड्स + किनाराएँ + समुदाय)
Task -> Renderer : render(graph, filters)
Renderer --> Task : code PlantUML\n(निर्धारित)
Task -> PS : validateSyntax(plantumlCode)
alt syntaxe valide
Task -> PS : generateImage → .png
else syntaxe invalide
Task -> Task : .puml फ़ाइल को चेतावनी के साथ सहेजें
end
@enduml
आंतरिक घटक
| घटक | भूमिका |
|---|---|
|
पार्स`graph.json`— 3 प्रारूपों का समर्थन करता है : graphify स्वदेशी ( |
|
एक निर्धारित रूप से बदलता है`KnowledgeGraph`PlantUML कोड में। प्रकार के अनुसार समूह, पैकेज में समुदाय, स्वचालित लीजेंड। |
|
Gradle टास्क जो आर्केस्ट्रेट करता है: parse → render → validate → PNG। Gradle गुणों के माध्यम से कॉन्फ़िगर किया जा सकता है। |
|
डेटा मॉडल:`KnowledgeGraph`, |
|
सिंटैक्स सत्यापन + PNG रेंडरिंग (प्लगिन के सभी कार्यों द्वारा पुन: उपयोग किया जाता है). |
रेंडरिंग के नियम
रेनडरर निर्धारित दृश्यात्मक सम्मेलन लागू करता है :
| किनारे का प्रकार | नोटेशन PlantUML | अर्थ |
|---|---|---|
निकाला |
|
स्रोत कोड से निकाला गया संबंध (निश्चितता) |
निष्कर्षित |
|
LLM द्वारा अनुमानित संबंध (विश्वास स्कोर) |
अस्पष्ट |
|
अस्पष्ट संबंध (जाँचने के लिए) |
समुदायों को PlantUML पैकेज के रूप में प्रस्तुत किया जाता है, जिसमें स्वचालित रंग पैलेट होता है।
चरण 3 : दैनिक उपयोग
पूर्ण आलेख
# Générer le diagramme du Knowledge Graph complet
./gradlew generateKnowledgeGraphDiagram
Sortie : diagrams/knowledge-graph/knowledge-graph-full.puml+.png
समुदाय द्वारा फ़िल्टर
# Une seule communauté
./gradlew generateKnowledgeGraphDiagram \
-Pplantuml.kg.community=community_0
# Limiter le nombre de noeuds (lisibilité)
./gradlew generateKnowledgeGraphDiagram \
-Pplantuml.kg.community=community_0 \
-Pplantuml.kg.maxNodes=15
किनारा प्रकार द्वारा फ़िल्टर करें
# Uniquement les relations certaines (EXTRACTED)
./gradlew generateKnowledgeGraphDiagram \
-Pplantuml.kg.edgeTypes=EXTRACTED
# Relations certaines + inférées
./gradlew generateKnowledgeGraphDiagram \
-Pplantuml.kg.edgeTypes=EXTRACTED,INFERRED
नोड के प्रकार और विश्वास द्वारा फ़िल्टर करें
# Uniquement les classes de code
./gradlew generateKnowledgeGraphDiagram \
-Pplantuml.kg.nodeTypes=code
# Seuil de confiance minimum (pour les INFERRED)
./gradlew generateKnowledgeGraphDiagram \
-Pplantuml.kg.minConfidence=0.7
कस्टम आउटपुट डायरेक्टरी
./gradlew generateKnowledgeGraphDiagram \
-Pplantuml.kg.outputDir=docs/architecture
गुणों का पूर्ण संदर्भ
| संपत्ति | दोष | विवरण |
|---|---|---|
|
(सभी) |
नाम से समुदाय फ़िल्टर करें (उप-स्ट्रिंग मिलान) |
|
(सभी) |
विराम चिह्न से अलग किए गए किनारों के प्रकार :`EXTRACTED`, |
|
|
किनारों के लिए न्यूनतम विश्वास सीमा |
|
(असीमित) |
नोड्स को दिखाने के लिए अधिकतम संख्या |
|
(सभी) |
विराम चिह्नों द्वारा अलग किए गए नोड्स के प्रकार (उदाहरण`class`, |
|
|
फ़ाइलों के लिए आउटपुट निर्देशिका`.puml` et |
पूर्ण पाइपलाइन एक Gradle वर्कफ़्लो में
वर्कफ़्लो प्रकार
@startuml
skinparam backgroundColor #FEFEFE
skinparam ActivityBackgroundColor #E8F4FD
skinparam ActivityDiamondBackgroundColor #FFF3CD
skinparam ActivityBorderColor #2C3E50
start
partition "EXTRACTION" {
:ग्राफ़ीफ़ाई . --no-viz;
note right: स्रोत कोड का विश्लेषण करें\ntree-sitter (स्थानीय, बिना LLM के)
:graphify-out/graph.json;
note right: नोड्स + किनारियां\n+ समुदाय
}
partition "परेशानRATION" {
:./gradlew generateKnowledgeGraphDiagram;
note right: पाइपलाइन निर्धारितीय\nparse → रेन्डर → सत्यापन → PNG
if (Filtres actifs ?) then (Oui)
:फ़िल्टर लागू करें\n(community, edgeTypes,\nmaxNodes, nodeTypes);
else (Non)
:पूरा आरेख;
endif
:आरेख/knowledge-graph/\nज्ञान-ग्राफ़-full.puml\nज्ञान-ग्राफ़-full.png;
}
partition "INTÉGRATION" {
:git add diagrams/knowledge-graph/;
:गिट कमिट;
note right: संस्करणबद्ध आरेख\nहमेशा अद्यतन कोड के साथ
}
stop
@enduml
विकास चक्र में एकीकरण
पाइपलाइन विकास के मुख्य चरणों में स्वाभाविक रूप से एकीकृत होती है:
@startuml skinparam backgroundColor #FEFEFE state "विकास" as dev state "Extraction\ngraphify . --no-viz" as extract state "उत्पादन\n./gradlew generateKnowledgeGraphDiagram" as generate state "Commit\nआरेख संस्करणित" as commit [*] --> dev dev --> extract : संशोधित कोड extract --> generate : graph.json अद्यय generate --> commit : .puml + .png जेनरेटेड commit --> dev : रीपो में डायग्राम note right of extract क्वासी तात्कालिक कोड Kotlin (tree-sitter, LLM नहीं) end note note right of generate निर्धारी LLM नहीं पुनरावृत्ति योग्य परिणाम end note @enduml
वृद्धिशील अद्ययन
जब कोड बदलता है, हम पूरे ग्राफ़ को शून्य से फिर से नहीं बनाते :
# Mise à jour incrémentale (fichiers modifiés uniquement)
graphify . --update
# Puis régénérer les diagrammes
./gradlew generateKnowledgeGraphDiagram
|
|
डॉगफ़ूडिंग: प्लगइन स्वयं का दस्तावेज़ बनाता है
PlantUML प्लगिन प्रॉम्प्ट को आरेख में बदलने के लिए मौजूद है। वह अपने propre कोडबेस का ज्ञान ग्राफ भी दस्तावेज़ीकरण आरेखों में बदल सकता है। यह dogfooding है: प्लगिन अपनी स्वयं की सेवा का उपभोग करता है।
@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle
package "सामान्य पाइपलाइन\n(उपयोगकर्ता → आरेख)" as normal {
[Fichier .prompt] as prompt
[LlmService\n+ ApiKeyPool] as llm1
[ProcessPlantumlPromptsTask] as task1
[Diagramme PNG] as out1
prompt --> task1
task1 --> llm1
llm1 --> out1
}
package "पाइपलाइन ज्ञान ग्राफ़\n(नियतात्मक, कोई LLM नहीं)" as kg {
[graphify-out/graph.json] as kgjson
[KnowledgeGraphParser] as parser
[KnowledgeGraphRenderer] as renderer
[PlantumlService] as ps
[Diagramme PNG\n(documentation du plugin)] as out2
kgjson --> parser
parser --> renderer
renderer --> ps
ps --> out2
}
package "पाइपलाइन डॉगफूडिंग\n(LLM → प्लगइन का दस्तावेज़ीकरण)" as dogfood {
[GraphifyPromptAdapter] as gpa
[Fichiers .prompt\nauto-générés] as auto_prompt
[LlmService\n+ ApiKeyPool] as llm2
[ProcessPlantumlPromptsTask] as task2
[Diagramme PNG\n(documentation LLM)] as out3
kgjson --> gpa
gpa --> auto_prompt
auto_prompt --> task2
task2 --> llm2
llm2 --> out3
}
note "वही LlmService, वही ApiKeyPool,\nवही PlantumlService\n— शून्य डुप्लिकेशन" as N
@enduml
Gradle से संबंधित कार्य :
| कार्य | LLM ? | विवरण |
|---|---|---|
|
नहीं |
parivartit kar`graph.json`में PlantUML (निर्धारित) |
|
हाँ |
जनरेट करो`.prompt`ग्राफ़ से, उन्हें LLM के माध्यम से (dogfooding) से संसाधित किया जाता है |
# Documentation déterministe (rapide, pas de LLM)
./gradlew generateKnowledgeGraphDiagram
# Documentation LLM (plus riche, consomme des tokens)
./gradlew generateDiagramDocs
यह निर्धारित क्यों है (और यह क्यों मायने रखता है)
पाइपलाइन का मुख्य बिंदु`generateKnowledgeGraphDiagram`:वह कोई LLM नहीं बुलाता. परिवर्तन`graph.json`→ PlantUML एक शुद्ध फ़ंक्शन है.
@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle
rectangle "Pipeline DÉTERMINISTE\n(generateKnowledgeGraphDiagram)" as det {
[graph.json] as json
[KnowledgeGraphParser] as parser
[KnowledgeGraphRenderer] as renderer
[PlantUML code] as puml
json --> पार्स करनाr : पार्स करना
parser --> renderer : KnowledgeGraph
renderer --> puml : render (शुद्ध फ़ंक्शन)
}
rectangle "Pipeline LLM\n(processPlantumlPrompts)" as llm {
[.prompt] as prompt
[LlmService] as llmSvc
[ChatModel] as model
[PlantUML code] as puml2
prompt --> llmSvc
llmSvc --> model : API कॉल
model --> puml2 : अनिर्धारित उत्तर
}
note bottom of det
एक ही एंट्री → एक ही एग्ज़िट
नेटवर्क लेटेंसी नहीं
टोकन की कोई लागत नहीं
CI में पुनरावृत्ति योग्य
end note
note bottom of llm
एक ही इनपút → चर आउटपुट
नेटवर्क विलंब (1-5s)
टोकन में लागत
API की कुंजी आवश्यक है
end note
@enduml
वास्तविक लाभ :
| फायदा | प्रभाव |
|---|---|
पुनरावृत्ति |
समान`graph.json`→ समान आरेख। सही है। हर बार। |
शून्य लागत |
कोई LLM कॉल नहीं = कोई टोकन नहीं = कोई API बिल नहीं। |
शून्य विलंब |
Parse + render लगभग 100ms लेता है, 1-5 सेकंड नहीं। |
संगत CI |
API कुंजी आवश्यक नहीं है. चर LLM प्रतिक्रिया के कारण कोई अस्थिर परीक्षण नहीं. |
संस्करणयोग्य |
Le |
पाइपलाइन के स्वयं के आरेख
लूप को बंद करने के लिए, यहाँ प्लगइन द्वारा उत्पन्न किया जाने वाला पाइपलाइन आरेख है :
@startuml
skinparam backgroundColor #FEFEFE
participant "विकासकर्ता" as Dev
participant "Gradle" as G
participant "GenerateKnowledgeGraphDiagramTask" as Task
participant "KnowledgeGraphParser" as Parser
participant "KnowledgeGraphRenderer" as Renderer
participant "PlantumlService" as PS
collections "graphify-out/graph.json" as JSON
collections "diagrams/knowledge-graph/" as Out
Dev -> G : ./gradlew generateKnowledgeGraphDiagram
G -> Task : निष्पादित करें
Task -> JSON : पढ़ना
Task -> Parser : parse(graph.json)
Parser --> Task : KnowledgeGraph
alt filtres actifs
Task -> Task : फ़िल्टर लगाएँ\n(community, edgeTypes, maxNodes…)
end
Task -> Renderer : render(graph, filters)
Renderer --> Task : कोड PlantUML
Task -> PS : validateSyntax()
alt valide
Task -> PS : generateImage()
PS --> Out : .puml + .png
else invalide
Task -> Out : .puml (चेतावनी के साथ)
end
@enduml
परियोजना शासन में एकीकरण
हमारे प्रोजेक्ट में, यह पाइपलाइन AI एजेंट के लिए EAGER/LAZY संदर्भ प्रबंधन रणनीति में एकीकृत है। नॉलेज ग्राफ़ मैनुअल आर्किटेक्चर दस्तावेज़ीकरण को एक संरचित, क्वेरी करने योग्य और स्वचालित रूप से अद्यतन किए जाने वाले ग्राफ से बदल देता है।
@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle
package "EAGER\n(हमेशा लोडेड)" as eager {
[PROMPT_REPRISE.adoc\n(contexte session)] as pr
[INDEX.adoc\n(vue d'ensemble)] as idx
[GRAPH_REPORT.adoc\n(~50 lignes)] as gr
}
package "LAZY — Stratégie\n(मांग पर)" as lazy_strat {
[Méthodologies] as meth
[Archives sessions] as sessions
}
package "LAZY — Graphify\n(लक्षित क्वेरी)" as lazy_graph {
[graph.json] as gj
[Queries\n(query/path/explain)] as queries
}
package "Pipeline PlantUML\n(स्वचालित रूप से बनाया)" as puml {
[generateKnowledgeGraphDiagram] as kgTask
[generateDiagramDocs] as ddTask
[Diagrammes PNG] as diagrams
}
Agent --> eager : सत्र की शुरुआत में पढ़ा
Agent ..> lazy_strat : यदि प्रकार पहचाना जाता है तो चार्ज किया जाता है
Agent ..> lazy_graph : यदि संरचनात्मक आवश्यकता
kgTask --> diagrams : निश्चयवादी
ddTask --> diagrams : के माध्यम से LLM
note right of gr
Knowledge Graph का सारांश
ईश्वर नोड्स + समुदाय
ECOSYSTEM_OVERVIEW को बदलें
(225 लाइनें → 50 लाइनें)
end note
@enduml
दो प्रणालियों का संयोजन पूरक है:
-
रणनीति कब और कैसे को प्रबंधित करती है— शासन, वर्कफ़्लो, संग्रहण
-
Graphify QUOI और OÙ को प्रबंधित करता है— कोड संरचना, संबंध, लक्षित प्रश्न
_ सत्र रणनीति प्रबंधित करती हैजब et le कैसे(शासन, वर्कफ़्लो, सीमाएँ), Graphify इसे प्रबंधित करता हैक्या et le कहाँ(कोड की संरचना, संबंध, लक्षित क्वेरी). PlantUML पाइपलाइन इसे प्रबंधित करती हैक्या के साथ?(निर्धारित आरेख, संस्करणित, हमेशा अद्यतन) _
स्थापना : 5 मिनट की चेकलिस्ट
| # | चरण | आदेश |
|---|---|---|
1 |
Graphify इंस्टॉल करें |
|
2 |
अपवादों को कॉन्फ़िगर करें |
बनाना`.graphifyignore` |
3 |
Knowledge Graph निकालें |
|
4 |
डायग्राम्स बनाएँ |
|
5 |
परिणामों को कमिट करें |
|
# Script complet en 5 commandes
uv tool install graphifyy
cat > .graphifyignore << 'EOF'
*-context.yml
*.env
build/
.gradle/
EOF
graphify . --no-viz
./gradlew generateKnowledgeGraphDiagram
git add graphify-out/GRAPH_REPORT.adoc graphify-out/graph.json diagrams/knowledge-graph/
जाल और निवारण उपाय
| जाल | विवरण | शमन |
|---|---|---|
बहुत घना ग्राफ |
एक बड़ा प्रोजेक्ट सैकड़ों अपठनीय नोड्स उत्पन्न करता है |
उपयोग करना`-Pplantuml.kg.maxNodes=30`और समुदाय द्वारा फ़िल्टर |
बहुत व्यापक अपवाद |
बहुत सारी फ़ाइलों में`.graphifyignore`ग्राफ़ का मूल्य कम करता है |
सिर्फ credentials और build को बाहर रखना शुरू करें |
तीरों की दिशा |
किनारों INFERRED की दिशा अस्पष्ट हो सकती है |
फ़िल्टर द्वारा`-Pplantuml.kg.edgeTypes=EXTRACTED`केवल कुछ संबंधों के लिए |
अप्रचलित ग्राफ़ |
कोड बदलता है लेकिन ग्राफ़ को पुनः नहीं बनाया जाता |
उपयोग करना`graphify . --update`नियमित रूप से या git हुक`graphify hook install` |
संशोधित लागत |
इन्क्रीमेंटल अपडेट लगभग निःशुल्क हैं (ट्री‑सिटर स्थानीय) |
केवल दस्तावेज़ ( |
अंत में हमें क्या प्राप्त होता है
@startuml
skinparam backgroundColor #FEFEFE
rectangle "पहले" as avant {
card "हाथ से बनाए गए आरेख\nसदैव अप्रचलित\nकोई उन्हें अद्यतन नहीं करता" as av1 #FDEDEC
}
rectangle "बाद" as apres {
card "स्वचालित रूप से उत्पन्न आरेख\nकोड के साथ हमेशा अद्यतित\nGit में संस्करणित\nनियतात्मक और पुनरुत्पादनीय" as ap1 #E8F8E8
}
avant --> apres : graphify . --no-viz\n+ ./gradlew generateKnowledgeGraphDiagram
@enduml
वास्तविक लाभ :
| लाभ | विवरण |
|---|---|
हमेशा अद्यतन दस्तावेज़ |
डायग्राम वर्तमान कोड को दर्शाते हैं, एक मैनुअल स्नैपशॉट नहीं |
शून्य रखरखाव प्रयास |
डायग्राम प्रत्येक बिल्ड पर पुन: बनते हैं |
तकनीकी ऋण में कमी |
अब डायग्राम को मैन्युअली बनाए रखने की आवश्यकता नहीं है |
नए के लिए दृश्य संदर्भ |
एक नया डेवलपर आर्किटेक्चर को देखकर समझता है |
Fine-tuning संभाव्य |
जोड़े (उप-ग्राफ़ → आरेख) एआई प्रशिक्षण के उदाहरण हैं |
स्वचालित सत्यापन |
`PlantumlService.validateSyntax()`प्रत्येक उत्पन्न आरेख की जाँच करता है |
तेज़ ओनबोर्डिंग |
5 आरेख = वास्तुकला का पूर्ण दृश्य |
_ जिसके पास एक _pourquoi है, वह सभी comment को सह सकता है। __
क्यों pourquoi : हमेशा अप-टू-डेट डायग्राम। कैसे comment : Gradle पाइपलाइन में दो कमांड।
लिंक
-
fg कमांड का सुपर टिप्स— पिछला लेख टर्मिनल वर्कफ़्लो पर