Table des matières
pather samay : 12 minutes

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

টিক

[]

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

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

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

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

  3. ডায়াগ্রামটি একটি সজোড় মিথ্যা হয়ে যায়

  4. কে এইটা আপডেট করে না, কারণ এইটা কষ্টকর

  5. নতুন লোকরা এটায় নির্ভর করে কাজ করেন এবং ভুল করেন।

probleme diagrammes obsoletes

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

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

সমাধান : একটি নিয়মিত পাইপলাইন Knowledge Graph → PlantUML

নিয়মটি সহজ: হাতে ডায়াগ্রাম আঁকে বদলে, আমরা তাদেরকোডের প্রকৃত কাঠামো থেকে উৎপন্ন করে.

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

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

actor Développeur
component "গ্রাফিফাই
^^^^^
 Syntax Error? (Assumed diagram type: sequence)

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

actor Développeur
component "গ্রাফিফাই
(pip install graphifyy)" as Graphify
collections "graphify-out/graph.json
(জ্ঞান গ্রাফ)" as KGJSON
component "PlantUML Gradle প্লাগইন\n(generateKnowledgeGraphDiagram)" as Plugin
component "KnowledgeGraphParser" as Parser
component "জ্ঞান গ্র্যাফ রেন্ডারার" as Renderer
component "PlantumlService
(যাচাই + পিএনজি রেন্ডার)" 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 dans diagrams/knowledge-graph/, গিট-এ সংস্করণबंधিত, সবসময় কোডের সাথে আপ টু ডেট。

ধাপ ১: Graphify ইনস্টল কর এবং Knowledge Graph বের কর

ইনস্টলেশন

Graphify একটি Python টুল যা আপনার কোডবেস বিশ্লেষণ করে এবং একটি কাঠামোগত জ্ঞান গ্রাফ নির্মাণ করে :

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

নালেজ গ্রাফ নিষ্কাশন করা

graphify . --no-viz

ফ্ল্যাগ`--no-viz`HTML জেনারেশনটি স্কিপ করুন (Gradle পাইপলাইনে অপ্রয়োজনীয়)। ফলাফলটি একটি ফাইল`graphify-out/graph.json`Shamīl :

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

  • মাছের কাঁটানোডের মধ্যে संबंध (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`Kotlin কোডে প্রায় তৎক্ষণিক।

ধাপ ২ : গ্রেডল প্লাগইন নোলেজ গ্রাফটি প্লান্টউএমএলে রূপান্তর করে

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

প্লাগইন`com.cheroliv.plantuml`একটি কাজ অন্তর্ভুক্ত করে`generateKnowledgeGraphDiagram`যে রূপান্তর করে`graph.json`প্ল্যান্টইউএমল ডায়াগ্রামে ভাবেসম্পূর্ণরূপে నిర్ధారಿತ :

architecture pipeline kg

ভিতরের উপাদান

কম্পোনেন্ট ভุมিকা

KnowledgeGraphParser

পার্স`graph.json`— সমর্থন করে ৩ ফরম্যাট : graphify natif (nodes+links), legacy ()communities), flat. সংখ্যात्मक ID-কে লেবেলে সমাধান করে.

KnowledgeGraphRenderer

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

GenerateKnowledgeGraphDiagramTask

Gradle টাস্ক যা পার্স → রেন্ডার → বৈধতা যাচাই → PNG তৈরি করে। Gradle বৈশিষ্ট্যসমূহের মাধ্যমে কনফিগারযোগ্য।

kgmodels.kt

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

PlantumlService

সিনট্যাক্স যাচাই + PNG রেন্ডারিং (প্লাগইনের সমস্ত কাজে পুনঃব্যবহারযোগ্য).

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

রেন্ডারার ডিটারমিনিস্টিক ভিজ্যুয়াল কনভেনশন প্রয়োগ করে:

কেৰের ধরন নোটেশন PlantUML অর্থ

নিষ্কাশিত

-→(সরাসর রেখা, কালো)

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

অনুমানিত

..>(ডটেড লাইন)

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

অস্পষ্ট

--x(লাল চকচক রেখা)

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

সমুদয়গুলোকে স্বয়ংক্রিম রঙ প্যালেট সহ PlantUML প্যাকেজের মতো প্রদর্শিত করা হয়।

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

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

# 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 "Extraction
^^^^^
 Syntax Error? (Assumed diagram type: state)

@startuml
skinparam backgroundColor #FEFEFE

state "বিকাশ" as dev
state "Extraction
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`পুন:\\বের\\কORE\\শুধুমাত্র\\সংশোধিত\\ফाइल_groups\\(SHA256\\द्वारा\\शनाक्ता\\erte`graphify-out/cache/) Kotlin কোডে এটি প্রায়ৎক্ষণিক, কারণ tree-sitter স্থানীয়ভাবে কাজ করে এবং কোনো LLM আহ্বান না করে।

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

PlantUML প্লাগইন প্রম্পটগুলোকে ডায়াগ্রামে রূপান্তর করে। এটি בנוסף নিজের propre codebase-ের Knowledge Graphকে ডকুমেন্টেশন ডায়াগ্রামে রূপান্তর করতে পারে। এটি 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 "Pipeline Knowledge Graph
(নির্ধারিত, 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 "Pipeline Dogfooding
(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

কেন এটি নির্ধারিত (এবং কেন এটি Barrow)

পাইপলাইনের মূল পয়েন্ট`generateKnowledgeGraphDiagram`:সে কোনো LLM কল করে না. পরিবর্তন`graph.json`PlantUML একটি শুদ্ধ ফাংশন।

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

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

rectangle "নির্ধারিত পাইপলাইন
(generateKnowledgeGraphDiagram)" as det {
^^^^^
 Syntax Error? (Assumed diagram type: activity)

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

rectangle "নির্ধারিত পাইপলাইন
(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 "Pipeline LLM
(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
  Même entrée → même sortie
  Pas de latence réseau
  Pas de coût en tokens
  Reproductible en CI
end note

note bottom of llm
  Même entrée → sortie variable
  Latence réseau (1-5s)
  Coût en tokens
  Nécessite une clave API
end note

@enduml

বাস্তব সুবিধাগুলো :

লাভ প্রভাব

প্রত্যাবৃত্তিমূলকতা

একই`graph.json`→ একই চিত্র। সঠিকভাবে। প্রতিবার।

শূন্য খরচ

LLM কল নেই = টোকেন নেই = API বিল নেই।

শূন্য লেটেন্সি

Parse + render ~100ms-এ নেয়, ১-৫ সেকেন্ড না।

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

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

সংস্করণযোগ্য

Le .puml`টেক্সট জেনারেট করা হয়েছে। এটা করা হয়.`diff, PR-এ রিভিউয়ার, Git-এ সংস্করণ করা।

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

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

pipeline sequence

প্রকল্প গভর্নেন্সে ইন্টিগ্রেশন

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

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

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

package "উৎসাহী
(সবসময় চার্জিত)" as eager {
^^^^^
 Syntax Error? (Assumed diagram type: activity)

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

package "উৎসাহী
(সবসময় চার্জিত)" 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 "পাইপলাইন 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 কেমন(শাসন, কর্মপ্রবাহ, সীমা), Graphify এটি পরিচালনা করেকি et le কোথায়(কোডের গঠন, সম্পর্ক, লক্ষ্য করা কোয়েরি)। প্ল্যান্টুএমল পাইপলাইনটি পরিচালনা করেকি দিয়ে(নির্ণեյ ডায়াগ্রাম, সংস্করণযোগ্য, সর্বদা আপ-টু-ডেট) (output nothing)

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

</think> (No text provided to translate) ধাপ অর্ডার

1

Graphify installation korun

uv tool install graphifyy

2

ব্যাখ্যাগুলি কনফিগার করুন

সৃষ্টি করা`.graphifyignore`

3

Knowledge Graph নিষ্কাশন করুন

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/

পাতাল এবং শमन

পাঁজ বিবরণ প্রশমন

অতিঘন গ্রাফ

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

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

অতিরিক্তভাবে বিস্তৃত বর্জন

অনেক বেশি ফাইল এর মধ্যে`.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 6) ]

@startuml
skinparam backgroundColor #FEFEFE

rectangle "আগে" as avant {
    card "হাতে আঁকা ডায়াগ্রাম
এই সব সময় অপ্রচলিত
^^^^^
 Syntax Error? (Assumed diagram type: activity)

@startuml
skinparam backgroundColor #FEFEFE

rectangle "আগে" as avant {
    card "হাতে আঁকা ডায়াগ্রাম
এই সব সময় অপ্রচলিত
কেউ এই ডায়াগ্রামগুলো আপডেট করে না" as av1 #FDEDEC
}

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

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

@enduml

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

লাভ বিস্তার

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

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

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

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

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

ডায়গ্রামগুলো হাতে বজায় রাখার দরকার আর নেই

নতুনদের জন্য ভিজ্যুয়াল কনটেক্সট

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

পটেনশিয়াল ফাইন-টিউনিং

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

স্বয়ংক্রিয় যাচাই

`PlantumlService.validateSyntax()`প্রতিটি উত্পন্ন ডায়াগ্রাম পরীক্ষা করে

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

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

_ যে ব্যক্তির একটি _কেন আছে, সে সকল কীভাবে সহ্য করতে পারে। __

কেন : সর্বгда আপডেট থাকা ডায়াগ্রাম। comment : দুটি কমান্ড یک Gradle পাইপлайনে।

লিংক

Articles connexes