Intégrer Graphify dans un workflow Gradle : du Knowledge Graph au diagramme PlantUML en une commande
شائع شدہ: 19 April 2026
- المسئلة : ہمیشہ کُوڈ سے پیچھا ڈائاگرامات
- حل: ایک یقینی پائلائن Knowledge Graph → PlantUML
- مرحلہ 1: Graphify انسٹال کریں اور Knowledge Graph نکالیں
- مرحلہ 2 : Gradle پلاگین Knowledge Graph کو PlantUML میں بدل دیتا ہے
- مرحلہ 3 : روزانہ استعمال
- Gradle workflow میں مکمل پائپ لائن
- ڈاگفوڈنگ : پلاگائن خود خود کو دستاویز بناتا ہے
- کیوں یہ محدد ہے (اور کیوں یہ اہم ہے)
- خود کے پائپ لائن کے ڈائاگرام
- پروجیکٹ گورننس میں شامل ہونا
- تیارکاری: 5 منٹ کی چیک لِسٹ
- فخوں اور تخفیف کے اقدامات
- آخر میں کیا حاصل ہوتا ہے
- روابط
آپ کی کوڈ بیس بڑھ رہی ہے۔ ماڈیولز کے درمیان وابستگییں ضاہر ہوتی جاتی ہیں۔ معماری کی ڈاکيومینٹیشن لکھنے سے پہلے ہی پرانے ہو جاتی ہے۔ اور اگر آپ کا Gradle build automatiquement ڈائجرام بنā sake, جو کوڈ کی اصل ساخت سے اپ‑ٹو‑ڈيٹ ہو؟ یہی точно Graphify + PlantUML Gradle Plugin pipeline karta hai :`graphify . --no-viz`Knowledge Graph نکال دیتا ہے,`./gradlew generateKnowledgeGraphDiagram`یہ PlantUML ڈائاگرام میں تبدیل کرتا ہے۔ صفر LLM، صفر دستیاب، 100% حتمی۔
المسئلة : ہمیشہ کُوڈ سے پیچھا ڈائاگرامات
کسی بھی منصوبے جو ہزاروں سطر سے زیادہ ہوتا ہے، اس سندرم کا سامنا کرتا ہے :
-
ہم پروיקט کے ابتداء میں معماریت کا ڈائگرام بناتے ہیں
-
کود تبدیل ہو رہا ہے، انحصارات بدل رہے ہیں
-
ڈیگرام بنتا ہے زینت کا جھوٹ
-
کسی نے اسے آپ ڈیٹ نہیں کیا کیونکہ یہ پریشان کن ہے
-
نئے داخل ہونے والے اس پر مبنی رہتے ہیں اور غلطی کرتے ہیں
@startuml
skinparam backgroundColor #FEFEFE
skinparam ActivityBackgroundColor #FDEDEC
skinparam ActivityDiamondBackgroundColor #FFF3CD
start
:Diagramme d'architecture créé\n(manuellement, à la main);
:Le code évolue\n(nouvelles classes, nouvelles dépendances);
:Diagramme obsolète\n(ne reflète plus le code);
if (Qui met à jour ?) then (Personne)
:Documentation mensongère;
note right: Les nouveaux développeurs\nse basent dessus... et font des erreurs
else (Quelqu'un)
:Mise à jour manuelle\n(2-3 heures de travail);
note right: Déjà obsolète\nà la prochaine PR
endif
stop
@enduml
سوال یہ نہیں ہے کیا ڈائگرامز لازمی ہیں؟ — سب جانتے ہیں کہ ہاں۔ سوال یہ ہے :کون انھیںمحدث رکھتا ہے؟
جواب: کوئی نہیں۔ سिवائے اس کے کے یہ خودکار ہو۔
حل: ایک یقینی پائلائن Knowledge Graph → PlantUML
اصول سادہ ہے: ہاتھ سے diagram بنانے کی جگہ، ہم ان کوکوڈ کی حقیقی ڈھانچے سے پیداہوا.
@startuml skinparam backgroundColor #FEFEFE skinparam componentStyle rectangle actor Développeur component "Graphify\n(pip install graphifyy)" as Graphify collections "graphify-out/graph.json\n(Knowledge Graph)" as KGJSON component "PlantUML Gradle Plugin\n(generateKnowledgeGraphDiagram)" as Plugin component "KnowledgeGraphParser" as Parser component "KnowledgeGraphRenderer" as Renderer component "PlantumlService\n(validation + rendu PNG)" as PS collections "diagrams/knowledge-graph/\n(.puml + .png)" as Output Développeur --> Graphify : graphify . --no-viz Graphify --> KGJSON : extrait la structure\ndu code source Développeur --> Plugin : ./gradlew generateKnowledgeGraphDiagram Plugin --> Parser : parse(graph.json) Parser --> Plugin : KnowledgeGraph\n(noeuds + arêtes + communautés) Plugin --> Renderer : render(graph, filters) Renderer --> Plugin : code PlantUML\ndéterministe Plugin --> PS : validateSyntax + generateImage PS --> Output : .puml + .png note bottom of Plugin Pipeline DÉTERMINISTE Aucun appel LLM Résultat reproductible 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 ایک Python اَalat ہے جو آپ کے codebase کا تجزیہ کرتا ہے اور ایک منظم علم کا گراف بناتا ہے :
# 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 : Gradle پلاگین Knowledge Graph کو 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 : execute
Task -> JSON : read
Task -> Parser : parse(graph.json)
Parser --> Task : KnowledgeGraph\n(noeuds + arêtes + communautés)
Task -> Renderer : render(graph, filters)
Renderer --> Task : code PlantUML\n(déterministe)
Task -> PS : validateSyntax(plantumlCode)
alt syntaxe valide
Task -> PS : generateImage → .png
else syntaxe invalide
Task -> Task : save .puml avec warning
end
@enduml
اندرونی اجزاء
| جز | رول |
|---|---|
|
پارس کریں`graph.json`— تین فارمٹس سپورٹ کرتا ہے: نیٹیف گرافی ( |
|
ایک کو ڈیٹرمنسٹ طور پر تبدیل کرتا ہے`KnowledgeGraph`پلنٹ یو ایم کے کوڈ میں. قسم کے حسب گروپ، پیکجوں میں کوميونیٹیز، خودکار لیجند۔ |
|
Gradle کام جو منظم کرتا ہے: parse → render → validate → PNG. Gradle properties کے ذریعے قابلِ تنظیم. |
|
ڈیٹا ماڈلز :`KnowledgeGraph`, |
|
نحوی تصدیق + PNG رینڈر (پلاگїн کے تمام کاموں میں دوبارہ استعمال ہوتا ہے). |
rendering کے قواعد
renderer بصری deterministic conventions لاگو کرتا ہے:
| کنار کی قسم | نوٹیشن PlantUML | معنی |
|---|---|---|
نقل کردہ |
|
سورس کوڈ سے نکالا گیا رابطہ (یقین) |
نتیجہ نکالا |
|
استنتاج کردہ رابطہ LLM کے ذریعے (اعتماد کا امتیاز) |
مبہم |
|
مبہم رابطہ (جانچ کے لیے) |
کمیونٹیز PlantUML پیکیج کے طور پر render (دکھائی) جاتی ہیں، جس میں خودکار رنگ پالیٹ ہوتی ہے۔
مرحلہ 3 : روزانہ استعمال
مکمل ڈائاگرام
# Générer le diagramme du Knowledge Graph complet
./gradlew generateKnowledgeGraphDiagram
خروج :`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`, |
|
|
Edges کے لیے حد أدنى اعتماد |
|
(لامحدود) |
نمائش کے لیے زیادہ سے زیادہ نوڈز |
|
(تمام) |
گہنچوں کے انواع کما سے الگ (مثلاً`class`, |
|
|
فائلوں کے لیے آؤٹ پٹ ڈائریکٹری`.puml` et |
Gradle workflow میں مکمل پائپ لائن
ورک فلو کی قسم
@startuml
skinparam backgroundColor #FEFEFE
skinparam ActivityBackgroundColor #E8F4FD
skinparam ActivityDiamondBackgroundColor #FFF3CD
skinparam ActivityBorderColor #2C3E50
start
partition "EXTRACTION" {
:graphify . --no-viz;
note right: Analyse le code source\ntree-sitter (local, pas de LLM)
:graphify-out/graph.json;
note right: Noeuds + arêtes\n+ communautés
}
partition "GÉNÉRATION" {
:./gradlew generateKnowledgeGraphDiagram;
note right: Pipeline déterministe\nparse → render → validate → PNG
if (Filtres actifs ?) then (Oui)
:Appliquer filtres\n(community, edgeTypes,\nmaxNodes, nodeTypes);
else (Non)
:Diagramme complet;
endif
:diagrams/knowledge-graph/\nknowledge-graph-full.puml\nknowledge-graph-full.png;
}
partition "INTÉGRATION" {
:git add diagrams/knowledge-graph/;
:git commit;
note right: Diagrammes versionnés\ntoujours à jour avec le code
}
stop
@enduml
ترقیاتی سیکل میں شامل
پاپ لائن ترقی کے اہم مراحل میں ذاتی طور پر شامل ہوتا ہے :
@startuml skinparam backgroundColor #FEFEFE state "Développement" as dev state "Extraction\ngraphify . --no-viz" as extract state "Génération\n./gradlew generateKnowledgeGraphDiagram" as generate state "Commit\ndiagrammes versionnés" as commit [*] --> dev dev --> extract : Code modifié extract --> generate : graph.json à jour generate --> commit : .puml + .png générés commit --> dev : Diagrammes dans le repo note right of extract Quasi instantané sur du code Kotlin (tree-sitter, pas de LLM) end note note right of generate Déterministe Pas de LLM Résultat reproductible end note @enduml
انکریمنٹل اپ ڈیٹ
جب کڈ بدل جاتا ہے، تو ہم gesamte graf سے sıfr سے دوبارہ بناتے نہیں ہیں :
# 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
مرتبطہ گریڈل ٹاسک:
| کام | LLM ? | تفصیل |
|---|---|---|
|
نہیں |
بدل`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 "DÉTERMINISTE پائپ لائن\n(generateKnowledgeGraphDiagram)" as det {
[graph.json] as json
[KnowledgeGraphParser] as parser
[KnowledgeGraphRenderer] as renderer
[PlantUML code] as puml
json --> parser : parse
parser --> renderer : KnowledgeGraph
renderer --> puml : render (fonction pure)
}
rectangle "LLM پائپ لائن\n(processPlantumlPrompts)" as llm {
[.prompt] as prompt
[LlmService] as llmSvc
[ChatModel] as model
[PlantUML code] as puml2
prompt --> llmSvc
llmSvc --> model : API call
model --> puml2 : réponse non-déterministe
}
note bottom of det
ایک ہی ان پٹ → ایک ہی آؤٹ پٹ
نیٹ ورک لیٹنسی نہیں
ٹوکنز کی کوئی لاگت نہیں
CI میں ریپروڈیوس ایبل
end note
note bottom of llm
ایک ہی ان پٹ → متغیر آؤٹ پٹ
نیٹ ورک لیٹنسی (1-5s)
ٹوکنز کی قیمت
API کی (clave API) کی ضرورت ہے
end note
@enduml
ملموس فوائد :
| فائدہ | اثر |
|---|---|
قابلیت تکثیر |
بھی`graph.json`→ ایک ہی نمشہ. بالکل. ہر بار. |
صفر لاگت |
کسی LLM کے کال نہیں = نہ ٹوکنز = نہ_API بِل |
صفر لاٹنسی |
Parse + render تقریباً 100ms ملتا ہے، 1-5 ثوانی نہیں۔ |
مطابق CI |
کلی API کی ضرورت نہیں۔ متغیر LLM کے جواب کی وجہ سے فلیکی ٹیسٹ نہیں۔ |
ورژن کرنے کے قابل |
Le |
خود کے پائپ لائن کے ڈائاگرام
لوپ کو بند کرنے کے لیے، یہ پائپ لائن کا ڈائیگرام ہے جس طرح یہ پلگ ان سے پیدا ہوگا:
@startuml
skinparam backgroundColor #FEFEFE
participant "Développeur" 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 : execute
Task -> JSON : read
Task -> Parser : parse(graph.json)
Parser --> Task : KnowledgeGraph
alt filtres actifs
Task -> Task : appliquer filtres\n(community, edgeTypes, maxNodes…)
end
Task -> Renderer : render(graph, filters)
Renderer --> Task : code PlantUML
Task -> PS : validateSyntax()
alt valide
Task -> PS : generateImage()
PS --> Out : .puml + .png
else invalide
Task -> Out : .puml (avec warning)
end
@enduml
پروجیکٹ گورننس میں شامل ہونا
ہماری پروجيٽ میں، یہ پائپلاین EAGER/LAZY کنٹیکسٹ منیجمنٹ کی ایک استراتژی کے طور پر اے اے آجینٹ کے لیے شامل ہے۔ نالوج گراف (Knowledge Graph) ہینڈ‑میکڈ آرکیٹچر ڈاکمیونٹی کی جگہ ایک منظم، قابل کوئری اور خود‑آپ ڈیٹ ہونے والا گراف لے لیتی ہے۔
@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle
package "EAGER\n(toujours chargé)" 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(sur demande)" as lazy_strat {
[Méthodologies] as meth
[Archives sessions] as sessions
}
package "LAZY — Graphify\n(requêtes ciblées)" as lazy_graph {
[graph.json] as gj
[Queries\n(query/path/explain)] as queries
}
package "Pipeline PlantUML\n(auto-généré)" as puml {
[generateKnowledgeGraphDiagram] as kgTask
[generateDiagramDocs] as ddTask
[Diagrammes PNG] as diagrams
}
Agent --> eager : Lit en début de session
Agent ..> lazy_strat : Charge si type détecté
Agent ..> lazy_graph : Query si besoin structurel
kgTask --> diagrams : Déterministe
ddTask --> diagrams : Via LLM
note right of gr
Condensé du Knowledge Graph
God nodes + communautés
Remplace ECOSYSTEM_OVERVIEW
(225 lignes → 50 lignes)
end note
@enduml
دو نظاموں کی شادی مکمل ہے :
-
استراتژی کس کی اور کیسے کی مدیریت کرتی ہے— حکمرانی, کام کی ترتیب, محفوظ کرد
-
Graphify کیا اور کہاں کا انتظام کرتا ہے— کد کی ساخت، رابطے، ہدف شدہ کوئری
_ سیشن کی اسٹریٹیجی اسےmanage کرتی ہےکب et le کیسے(حاکمرانی, workflow, حدود), مناجمنٹ کرتا ہےکیا et le کہاں(کوڈ کی ساخت, روابط, هدف کے کوئرئیز). PlantUML پائلائن یہ manage karti haiکسی کے ساتھ(حتمی ڈائاگرام، ورژنڈ، ہمیشہ اپ ڈیٹ). _
تیارکاری: 5 منٹ کی چیک لِسٹ
| # | مرحلہ | آرڈر |
|---|---|---|
1 |
Graphify کو انسٹال کریں |
|
2 |
الاستثناءات کو سيتاپ Karachi |
بنانا`.graphifyignore` |
3 |
Knowledge Graph نکالیں |
|
4 |
ڈائگرامات بنائیں |
|
5 |
نتائج کو Submit کریں |
|
# 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 کو buiten کرنے سے شروع کریں |
تیروں کی سمت |
INFERRED کنارے مبہم سمت رکھ سکتے ہیں |
فیلٹر حسب`-Pplantuml.kg.edgeTypes=EXTRACTED`صرف یقینی تعلقات کے لیے |
قدیمی گراف |
کد تبدیل ہوتا ہے مگر گراف دوبارہ بنا نہیں جاتا |
استعمال`graphify . --update`معمولاً یا گٹ ہُک`graphify hook install` |
آپ ڈیٹ کردہ لاگت |
اضافاتی اپ ڈیٹس تقریباً مفت ہیں (tree-sitter مقامی) |
صرفڈاکس ( |
آخر میں کیا حاصل ہوتا ہے
@startuml
skinparam backgroundColor #FEFEFE
rectangle "پہلے" as avant {
card "ہاتھ سے بنے ہوئے ڈایاگرام\nہمیشہ پرانے\nکوئی بھی انہیں اپ ڈیٹ نہیں کرتا" as av1 #FDEDEC
}
rectangle "بعد میں" as apres {
card "خودکار طریقے سے تیار کردہ ڈایاگرام\nہمیشہ کوڈ کے ساتھ اپ ٹو ڈیٹ\nGit میں ورژن شدہ\nڈیٹرمینسٹک اور قابلِتکrar (reproducible)" as ap1 #E8F8E8
}
avant --> apres : graphify . --no-viz\n+ ./gradlew generateKnowledgeGraphDiagram
@enduml
واقعی فائدے :
| منافع | تفصیل |
|---|---|
ڈاکیومینٹیشن ہمیشه محدث |
ڈیگرامات موجودہ کوڈ کو ظاہر کرتے ہیں، دستی سناپشاٹ نہیں۔ |
صفر نگاہی کا محنت |
ڈیاگرام ہر بنڈ پر دوبارہ تیار ہو جاتے ہیں |
تقنی قرض کی کسر |
اب diagrammat کو ہاتھ سے محفوظ یا اپ ڈیٹ کرنے کی ضرورت نہیں |
نئے کے لیے بصری سیاق |
ایک نئے ڈیولپر ڈائاگرامات دیکھ کر آرکیٹیکچر سمجھتا ہے |
فائن-ٹنیوگ کا امکان |
جفت (زیر-گراف → ڈائگرام) AI کے تربیت کے مثال |
خودکار تصدیق |
`PlantumlService.validateSyntax()`ہر پیدا کیا گیا ڈئیاگرام جانچتا ہے |
جلدی آئین بورڈنگ |
5 ڈائگرامز = معماری کا مکمل نظر |
_ جس کے پاس ایک _کیوں ہو، وہ تمام کسی طرح کو برداشت کر سکتا ہے۔ __
pourquoi : diagramمہ ہمیشہ اپ ڈیٹ. comment : گرادیل پائپ لائن میں دو فرمان.
روابط
-
کامند fg کے بہترین ٹپس— پیشگی مضمون ٹرمینل کے workflow کے بارے میں