# oniichan-maulik/golang architecture

> Architecture diagram of the GitHub repository oniichan-maulik/golang, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/oniichan-maulik/golang
- Repository: https://github.com/oniichan-maulik/golang

## Overview

This repository is a collection of standalone Go learning examples, not a single application. Its principal workflow is to study or run an individual example and observe its output; the README describes the project only as a Go learning journey. The examples cover values, control flow, collections, and functions/types. They do not form a shared runtime pipeline. Source excerpts show one internal call, from the practice example’s main function to its sortSlice helper; other examples are independent.

Main entry points: [`practice/p.go`](https://github.com/oniichan-maulik/golang/blob/main/practice/p.go) (Practice runner)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_values["Values and data"]
  node_simple_values["Simple values<br/>[main.go]"]
  node_variables["Variables<br/>[variable.go]"]
  node_constants["Constants<br/>[constants.go]"]
  node_pointers["Pointers<br/>[pointers.go]"]
end

subgraph group_control["Control flow"]
  node_for_loop["For loops<br/>[for.go]"]
  node_if_else["If and else<br/>[ifelse.go]"]
  node_switch["Switch<br/>[switch.go]"]
  node_range["Range iteration<br/>[range.go]"]
end

subgraph group_collections["Collections"]
  node_arrays["Arrays<br/>[arrays.go]"]
  node_slices["Slices<br/>[slices.go]"]
  node_maps["Maps<br/>[maps.go]"]
end

subgraph group_functions["Functions and types"]
  node_functions["Functions<br/>[functions.go]"]
  node_closures["Closures<br/>[closure.go]"]
  node_variadic["Variadic functions<br/>[variadic.go]"]
  node_structs["Structs<br/>[structs.go]"]
  node_hello["Hello example<br/>[hello.go]"]
  node_practice_main["Practice runner<br/>[p.go]"]
  node_practice_sort["Slice sorting helper<br/>[p.go]"]
  node_largest["Largest value practice<br/>[largest.go]"]
  node_practice_struct["Struct practice<br/>[pstruct.go]"]
end

node_practice_main -->|"calls"| node_practice_sort

click node_simple_values "https://github.com/oniichan-maulik/golang/blob/main/simp%20values/main.go"
click node_variables "https://github.com/oniichan-maulik/golang/blob/main/variables/variable.go"
click node_constants "https://github.com/oniichan-maulik/golang/blob/main/constants/constants.go"
click node_pointers "https://github.com/oniichan-maulik/golang/blob/main/pointers/pointers.go"
click node_for_loop "https://github.com/oniichan-maulik/golang/blob/main/for.go"
click node_if_else "https://github.com/oniichan-maulik/golang/blob/main/if-else/ifelse.go"
click node_switch "https://github.com/oniichan-maulik/golang/blob/main/switch/switch.go"
click node_range "https://github.com/oniichan-maulik/golang/blob/main/range/range.go"
click node_arrays "https://github.com/oniichan-maulik/golang/blob/main/arrays.go"
click node_slices "https://github.com/oniichan-maulik/golang/blob/main/slices/slices.go"
click node_maps "https://github.com/oniichan-maulik/golang/blob/main/maps/maps.go"
click node_functions "https://github.com/oniichan-maulik/golang/blob/main/functions/functions.go"
click node_closures "https://github.com/oniichan-maulik/golang/blob/main/closures/closure.go"
click node_variadic "https://github.com/oniichan-maulik/golang/blob/main/variadic%20function/variadic.go"
click node_structs "https://github.com/oniichan-maulik/golang/blob/main/structs/structs.go"
click node_hello "https://github.com/oniichan-maulik/golang/blob/main/hello/hello.go"
click node_practice_main "https://github.com/oniichan-maulik/golang/blob/main/practice/p.go"
click node_practice_sort "https://github.com/oniichan-maulik/golang/blob/main/practice/p.go"
click node_largest "https://github.com/oniichan-maulik/golang/blob/main/practice/largest.go"
click node_practice_struct "https://github.com/oniichan-maulik/golang/blob/main/practice/pstruct.go"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_simple_values,node_variables,node_constants,node_pointers toneBlue
class node_for_loop,node_if_else,node_switch,node_range toneAmber
class node_arrays,node_slices,node_maps toneMint
class node_functions,node_closures,node_variadic,node_structs,node_hello,node_practice_main,node_practice_sort,node_largest,node_practice_struct toneRose
```

## Components

### Values and data

- [Simple values](https://github.com/oniichan-maulik/golang/blob/main/simp%20values/main.go): `simp values/main.go`
- [Variables](https://github.com/oniichan-maulik/golang/blob/main/variables/variable.go): `variables/variable.go`
- [Constants](https://github.com/oniichan-maulik/golang/blob/main/constants/constants.go): `constants/constants.go`
- [Pointers](https://github.com/oniichan-maulik/golang/blob/main/pointers/pointers.go): `pointers/pointers.go`

### Control flow

- [For loops](https://github.com/oniichan-maulik/golang/blob/main/for.go): `for.go`
- [If and else](https://github.com/oniichan-maulik/golang/blob/main/if-else/ifelse.go): `if-else/ifelse.go`
- [Switch](https://github.com/oniichan-maulik/golang/blob/main/switch/switch.go): `switch/switch.go`
- [Range iteration](https://github.com/oniichan-maulik/golang/blob/main/range/range.go): `range/range.go`

### Collections

- [Arrays](https://github.com/oniichan-maulik/golang/blob/main/arrays.go): `arrays.go`
- [Slices](https://github.com/oniichan-maulik/golang/blob/main/slices/slices.go): `slices/slices.go`
- [Maps](https://github.com/oniichan-maulik/golang/blob/main/maps/maps.go): `maps/maps.go`

### Functions and types

- [Functions](https://github.com/oniichan-maulik/golang/blob/main/functions/functions.go): `functions/functions.go`
- [Closures](https://github.com/oniichan-maulik/golang/blob/main/closures/closure.go): `closures/closure.go`
- [Variadic functions](https://github.com/oniichan-maulik/golang/blob/main/variadic%20function/variadic.go): `variadic function/variadic.go`
- [Structs](https://github.com/oniichan-maulik/golang/blob/main/structs/structs.go): `structs/structs.go`
- [Hello example](https://github.com/oniichan-maulik/golang/blob/main/hello/hello.go): `hello/hello.go`
- [Practice runner](https://github.com/oniichan-maulik/golang/blob/main/practice/p.go): `practice/p.go`
- [Slice sorting helper](https://github.com/oniichan-maulik/golang/blob/main/practice/p.go): `practice/p.go`
- [Largest value practice](https://github.com/oniichan-maulik/golang/blob/main/practice/largest.go): `practice/largest.go`
- [Struct practice](https://github.com/oniichan-maulik/golang/blob/main/practice/pstruct.go): `practice/pstruct.go`

## Connections

- Practice runner → Slice sorting helper: calls (evidence: `practice/p.go`)
