Table des matières
pdfের সময় : 12 minutes

আপনার কোডবেস বাড়ছে। মডিউলের মধ্যে নির্ভরতাগুলি গুণগুণে বাড়ছে। আর্কিটেকচার ডকুমেন্টেশন লিখতেই পুরনো হয়ে যায়। আপনার Gradle বিল্ড যদি স্বয়ংক্রিয়ভাবে আসল কোডের গঠন থেকে আপ-টু-ডেট ডায়াগ্রাম তৈরি করতে পারত, কিভাবে হতো? ঠিক এটাই Graphify + PlantUML Gradle Plugin পাইপলাইনটি করে।graphify . --no-viz`Knowledge Graph নিষ্কাশন করে,./gradlew generateKnowledgeGraphDiagram`এটিকে PlantUML ডায়াগ্রামে রূপান্তর করে। শূন্য LLM, শূন্য ম্যানুয়াল, ১০০% নির্ধারিত।

টিক

[]

সমস্যা : ডায়াগ্রামগুলো কোডের পিছনে পড়েছে

কয়েক হাজার লাইনের বেশি যেকোনো প্রজেক্ট এই সিনড্রোমকে জানে :

  1. প্রজেক্টের শুরুতে আমরা একটি আর্কিটেকচার ডায়াগ্রাম আঁকে

  2. কোড বদলে যাচ্ছে, নির্ভরতাগুলি পরিবর্তিত হচ্ছে

  3. চিত্র একটি সাজসুসজ্জিত মিথ্যা হয়ে উঠে

  4. কেউ এটি আপডেট করে না কারণ এটি বিরক্তিকর

  5. নতুন আসন্নরা সেই উপর নির্ভর করে এবং ভুল করে

probleme diagrammes obsoletes

প্রশ্নটি হল না কি আমাদের ডায়াগ্রাম দরকার? — সবাই জানে যে হ্যাঁ। প্রশ্নটি হল :কে他们的 আপ-টু-ডেট রাখে?

উত্তর: কেউ না। যদি না তা স্বয়ংক্রিয় হয়।

সমাধান : একটি পাইপলাইন নিয়মিত জ্ঞান গ্রাফ → PlantUML

নিয়মটি সহজ: হাতে চিত্র আঁকে না, আমরা সেগুলোকোডের বাস্তব কাঠামো থেকে তৈরি হয়.

Failed to generate image: PlantUML preprocessing failed: [From <input> (line 8) ]

@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 প্লাগইন
^^^^^
 Syntax Error? (Assumed diagram type: component)

@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 প্লাগইন
(generateKnowledgeGraphDiagram)" as Plugin
component "KnowledgeGraphParser" as Parser
component "জ্ঞান গ্রাফ রেন্ডারার" as Renderer
component "PlantumlService
(যাচাই + PNG রেন্ডার)" as PS
collections "আরেখ/জ্ঞান-গ্রাফ/\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-এ, সবsomয় কোডের সাথে আপ-টু-ডেট

ধাপ ১ : 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

flagটি`--no-viz`HTML তৈরির প্রক্রিয়া অতিক্রম করে (Gradle পাইপলে অপ্রয়োজনীয়)। ফলাফলটি একটি ফাইল।`graphify-out/graph.json`শামিল :

  • বন্ধন: শ্রেণী, ফাংশন, ফাইল — তাদের ধরন ও সম্প্রদায়

  • কিনার: নোডের মধ্যে সম্পর্ক (EXTRACTED কোড থেকে, INFERRED LLM দ্বারা)

  • সম্প্রদায়: সংযুক্ত নোডের অটোম্যাটিক গোষ্ঠীসমূহ

স্ট্রাকচারের উদাহরণ`graph.json`
{
  "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}
  ]
}

সোর্স কোড (.kt, .java) tree-sitterによって স্থানীয়ভাবে বিশ্লেষণ করা হয়,অপ্রত্যাহার্য LLM. শুধুমাত্র ডকুমেন্টেশন ফাইলগুলো (.adoc, .md) প্রয়োজন হয় LLM কল সিমান্টিক এক্সট্র্যাকশনের জন্য. সুতরাং`--update`কোটলিন কোড চালু করা প্রায়ই তৎক্ষণিক হয়.

ধাপ 2 : Gradle প্লাগইন Knowledge Graph কে PlantUML-এ রূপান্তর করা হয়

পাইপলাইন আর্কিটেকচার

প্লাগইন`com.cheroliv.plantuml`একটি কাজ অন্তর্ভুক্ত করে`generateKnowledgeGraphDiagram`যে রূপান্তর করে`graph.json`PlantUML ডায়াগ্রামে একটি পদ্ধতির মাধ্যমেপুরোপুরি নিয়মনুসার:

architecture pipeline kg

অভ্যন্তরীণ উপকরণ

উপকরণ ভূমিকা

KnowledgeGraphParser

বিশ্লেষণ`graph.json`— সমর্থন করে ৩ ফরম্যাট : নেটিভ ग्राफिइ (nodes+links), legacy (communities), flat. সংখ্যাগত আইডিকে লেবেলে রূপান্তর করে।

KnowledgeGraphRenderer

নির্ধারিতভাবে একটিকে রূপান্তরিত করে`KnowledgeGraph`PlantUML কোডে। প্রকার অনুযায়ী গোষ্ঠী, প্যাকেজে কমিউনিটি, স্বয়ংক্রিয় লেজেন্ড

GenerateKnowledgeGraphDiagramTask

Gradle কাজ যা parse → render → validate → PNG কে সমন্বয় করে। Gradle বৈশিষ্ট্য ব্যবহার করে কনফিগারযোগ্য।

kgmodels.kt

ডেটা মডেল :`KnowledgeGraph`, KnowledgeGraphNode, KnowledgeGraphEdge, KnowledgeGraphCommunity, EdgeType.

PlantumlService

সিনট্যাক্স যাচাই + পিঁজি রেন্ডার (প্লাগিনের সব কাজে পুনরায় ব্যবহার করা হয়).

রেন্ডারিং নিয়ম

রেন্ডারার নিশ্চিত দৃশ্য সম্মতিসম্মিলন প্রয়োগ করে:

এজের ধরণ নোটেশন PlantUML অর্থ

নিষ্কাশিত

-→(অটুট রেখা, কালো)

উৎস কোড থেকে বের করা সম্পর্ক (নিশ্চয়তা)

অনুমানিত

..>(বিন্দুযুক্ত রেখা)

LLM দ্বারা অনুমানিত সম্পর্ক (বিশ্বাসের স্কোর)

অস্পষ্ট

--x(লাল পুঁচি চিহ্নিত রেখা)

অস্পষ্ট সম্পর্ক (যাচাই করতে হয়)

কমিউনিটি[] প্ল্যান্টিUML প্যাকেজের মতো রেন্ডার করা হয়, স্বয়ংক্রিয় রঙের প্যালেটের সাথে।

ধাপ ৩ : দৈনন্দিন ব্যবহার

সম্পূর্ণ ডায়াগ্রাম

# 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

বৈশিষ্ট্যের সম্পূর্ণ রেফারেন্স

স্বত্ব দোষ বিবরণ

plantuml.kg.community

(সকল)

কমিউনিটি নাম অনুযায়ী ফিল্টার (উপস্ট্রিং মিল)

plantuml.kg.edgeTypes

(সব)

কমা দিয়ে পৃথক করা किनार के প্রকার :`EXTRACTED`, INFERRED, AMBIGUOUS

plantuml.kg.minConfidence

0.0

এজের জন্য ন্যূনতম বিশ্বাস সীমা

plantuml.kg.maxNodes

(অসীম)

প্রদর্শনযোগ্য সর্বোচ্চ নোড সংখ্যা

plantuml.kg.nodeTypes

(সব)

নোডের ধরন কমা দিয়ে বিভক্ত (উদাহরণ.class, code)

plantuml.kg.outputDir

diagrams/knowledge-graph

ফাইলগুলির জন্য আউটপুট ডিরেক্টরি`.puml` et .png

গ্রেডেল ওয়ার্কফ্লোতে সম্পূর্ণ পাইপলাইন

ওয়ার্কফ্লো প্রকার

workflow complet

বিকাশ চক্রে একীকরণ

পাইপলাইনটি প্রকৃতপক্ষে বিকাশের মূল ধাপগুলো স্বাভাবিকভাবে একত্রিত হয়:

Failed to generate image: PlantUML preprocessing failed: [From <input> (line 5) ]

@startuml
skinparam backgroundColor #FEFEFE

state "উন্নয়ন" as dev
state "নিষ্কাশন
^^^^^
 Syntax Error? (Assumed diagram type: state)

@startuml
skinparam backgroundColor #FEFEFE

state "উন্নয়ন" as dev
state "নিষ্কাশন
graphify . --no-viz" as extract
state "উৎপাদন
./gradlew generateKnowledgeGraphDiagram" as generate
state "Commit
ভার্সনকৃত ডায়াগ্রাম" 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

প্র진ক্রমিক আপডেট

কোড পরিবর্তিত হলে, আমরা শূন্য থেকে পুরো গ্রাফটি পুনর্গঠন করি না :

# Mise à jour incrémentale (fichiers modifiés uniquement)
graphify . --update

# Puis régénérer les diagrammes
./gradlew generateKnowledgeGraphDiagram

--update`শুধুমাত্র পরিবর্তিত ফাইলগুলো Punar.extract করে (SHA256 দ্বারা সনাক্ত এ`graphify-out/cache/). Kotlin কোডের উপর, এটি প্রায় তৎক্ষণিক কারণ tree-sitter স্থানীয়ভাবে কাজ করে, কোনো LLM আহ্বান না করে।

ডগফুডিং: প্লাগইনটি নিজেই ডকুমেন্টেশন করে

PlantUML প্লাগইনটি প্রম্পটকে ডায়াগ্রামে রূপান্তর করে। এটি স্বয়ং কোডবেসের নোলেজ গ্রাফকে ও ডকুমেন্টেশন ডায়াগ্রামে রূপান্তর করতে পারে। dogfooding : প্লাগইন তার নিজের সেবা ব্যবহার করে।

Failed to generate image: PlantUML preprocessing failed: [From <input> (line 6) ]

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

package "সাধারণ পাইপলাইন
(ব্যবহারকারী → আকচিত্র)" as normal {
^^^^^
 Syntax Error? (Assumed diagram type: activity)

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

package "সাধারণ পাইপলাইন
(ব্যবহারকারী → আকচিত্র)" 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 "পাইপলাইন ডগফুডিং
(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,
একই PlantumlService
— শূন্য ডুপ্লিকেশন" as N

@enduml

সংযুক্ত Gradle টাস্ক :

কাজ LLM ? বর্ণনা

generateKnowledgeGraphDiagram

না

পরিবর্তন কর`graph.json`এ PlantUML (নির্ধারিত)

generateDiagramDocs

হ্যাঁ

কিছু তৈরি কর`.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 একটি শুদ্ধ ফাংশন।

determinisme vs llm

বাস্তবিক সুবিধা :

সুবিধা প্রভাব

পুনরুত্পাদনযোগ্যতা

একই`graph.json`→ একই نمودার। ঠিক আছে। প্রতিবার।

শূন্য খরচ

LLM কল না = tokens না = API বিল না.

শূন্য বিলম্ব

Parse + render নেমে ~100ms, 1-5 সেকেন্ড নয়।

সামঞ্জস্যপূর্ণ CI

কোন API কী প্রয়োজন নেই। ভেরিয়েবল LLM প্রতিক্রিয়ার কারণে কোন ফ্লাকি টেস্ট নেই।

ভার্সনযোগ্য

Le .puml`উত্পন্ন পাঠ্য. আমরা এটি পারি`diff, PR-এ রিভিউয়ার, Git-এ ভার্সন করা.

পাইপলাইন নিজের ডায়াগ্রামগুলো

লুপকে বন্ধ করতে, এখানে প্লাগইন দ্বারা তৈরি হওয়া পাইপলাইনের ডায়াগ্রাম দেওয়া হল:

pipeline sequence

প্রজেক্ট গবর্নেন্সে ইন্টিগ্রেশন

আমাদের প্রকল্পে, এই পাইপলাইনটি AI‑এজেন্টের জন্য EAGER/LAZY কনটেক্সট ম্যানেজমেন্ট কৌশলের অংশ। Knowledge Graph ম্যানুয়াল আর্কিটেকচার ডকুমেন্টেশনকে একটি স্ট্রাকচার্ড, কুয়েরিयोग্য এবং স্বয়ং আপডেটযোগ্য গ্রাফ দ্বারা প্রতিস্থাপন করে।

Failed to generate image: PlantUML preprocessing failed: [From <input> (line 11) ]

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

package "EAGER\n(সempre চার্জিত)" 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 — রণনীতি
^^^^^
 Syntax Error? (Assumed diagram type: component)

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

package "EAGER\n(সempre চার্জিত)" 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 — রণনীতি
(অনুরোধে)" as lazy_strat {
    [Méthodologies] as meth
    [Archives sessions] as sessions
}

package "LAZY — Graphify
(লক্ষ্য-নির্ধারিত কুয়েরি)" as lazy_graph {
    [graph.json] as gj
    [Queries\n(query/path/explain)] as queries
}

package "Pipeline PlantUML
(স্বয়ং-উৎপন্ন)" 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 কী এবং কোথায় তা পরিচালনা করে— কোডের গঠন, সম্পর্ক, লক্ষ্য অনুসন্ধান

_ সেশন কৌশলটি পরিচালনা করেকখন et le কিভাবে(শাসন, workflow, সীমা), Graphify পরিচালনা করেকি? et le কোথায়(কোডের গঠন, সম্পর্ক, লক্ষ্য করা কোয়েরি)। PlantUML পাইপলাইনটি পরিচালনা করেকি দিয়ে?(নির্ধারিত ডায়াগ্রাম, সংস্করণবद्ध, সর্বদা আপ-টু-ডেট) _

সেটআপ : ৫ মিনিটে চেকলিস্ট

# ধাপ অর্ডার

1

Graphify ইনস্টল করুন

uv tool install graphifyy

2

অপব্যাহনগুলো কনফিগার করুন

তৈরি`.graphifyignore`

3

নলেজ গ্রাফ এক্সট্র্যাক্ট করা

graphify . --no-viz

4

ডায়াগ্রামগুলো তৈরি করুন

./gradlew generateKnowledgeGraphDiagram

5

ফলাফলগুলোকে কমিট করুন

git add diagrams/knowledge-graph/

# 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/

�ঝুঁকি এবং নিরাময়

ফাঁস বর্ণনা শমন

অতidéষ্ট ঘন গ্রাফ

একটি বড় প্রকল্প শতাঙ্করো অপঠনযোগ্য নোড তৈরি করে

ব্য�্যবহার করা`-Pplantuml.kg.maxNodes=30`এবং সম্প্রদায় অনুযায়ী ফিল্টার করুন

বর্জন অতি বিস্তritos

বেশ বেশি ফাইল মধ্যে`.graphifyignore`গ্রাফের মান কমায়

শুধুমাত্র credentials এবং build বাদ দিয়ে শুরু করুন

তীরদের দিক

किनার INFERRED অস্পষ্ট দিক হতে পারে

ফিল্টার করুন`-Pplantuml.kg.edgeTypes=EXTRACTED`শুধুমাত্র নিশ্চিত সম্পর্কের জন্য

অপ্রচলিত গ্রাফ

কোড পরিবর্তিত হয় কিন্তু গ্রাফটি পুনর্নির্মিত হয় না

ব্যবহার করা`graphify . --update`নিয়মিতভাবে অথবা গিট হুক`graphify hook install`

আপডেট করা খরচ

অবক্রমিত আপডেট প্রায়ে বিনামূল্য (tree-sitter local)

শুধুমাত্র ডক্স (.adoc) LLM টোকেন ব্যবহার করা হয়

শেষে যা পাওয়া যায়

Failed to generate image: PlantUML preprocessing failed: [From <input> (line 10) ]

@startuml
skinparam backgroundColor #FEFEFE

rectangle "আগে" as avant {
    card "হাতে আঁকা নকশা\nসবসময় পুরনো\nকেউ আপডেট করে না" as av1 #FDEDEC
}

rectangle "পরে" as apres {
    card "স্বয়ংক্রিয়ভাবে তৈরি ডায়াগ্রাম
কোডের সাথে সর্বদা আপ-টু-ডেট
^^^^^
 Syntax Error? (Assumed diagram type: activity)

@startuml
skinparam backgroundColor #FEFEFE

rectangle "আগে" as avant {
    card "হাতে আঁকা নকশা\nসবসময় পুরনো\nকেউ আপডেট করে না" as av1 #FDEDEC
}

rectangle "পরে" as apres {
    card "স্বয়ংক্রিয়ভাবে তৈরি ডায়াগ্রাম
কোডের সাথে সর্বদা আপ-টু-ডেট
Git-এ সংস্করণবদ্ধ
নির্ধারিত এবং পুনরায় উৎপন্নযোগ্য" as ap1 #E8F8E8
}

avant --> apres : graphify . --no-viz\n+ ./gradlew generateKnowledgeGraphDiagram

@enduml

বাস্তবীয় সুবিধা :

লাভ বিস্তার

সদা আপ-টু-ডেট ডকুমেন্টেশন

ডায়াগ্রামগুলি বর্তমান কোডকে প্রতিফলিত করে, একটি ম্যানুয়াল স্ন্যাপশট নয়।

শূন্য রক্ষণাবেক্ষণের পরিশ্রম

ডায়াগ্রামগুলি প্রতিটি বিল্ডে পুন:সৃষ্টি হয়

প্রযুক্তিগত ঋণের হ্রাস

আর হাতে ডায়াগ্রাম রক্ষা করার দরকার নেই

নতুনদের জন্য বিজ্যুয়াল প্রেক্ষাপট

একটি নতুন ডেভেলপার ডায়াগ্রাম দেখে আর্কিটেকচার বুঝে

শম্ভাব্য শুক্ষ্ম টিউনিং

(সাবগ্রাফ → ডায়াগ্রাম) যুগলগুলি কৃত্রিম বুদ্ধিমত্তার প্রশিক্ষণের উদাহরণ।

স্বয়ংক্রিয় বৈধতা

`PlantumlService.validateSyntax()`প্রতিটি তৈরি করা ডায়াগ্রাম যাচাই করে

দ্রুত অনবোর্ডিং

৫ চিত্র = আর্কিটেকচারের পূর্ণ দৃশ্য

_ যে কোনও _pourquoi ধারণ করে, সে সব comment বर्दاشت করতে পারে। __

pourquoi : সবসময় আপডেট থাকা ডায়াগ্রাম। comment : Gradle পাইপলাইনে দুটি কমান্ড।

লিঙ্ক_groups

Articles connexes