2.5 KiB
type, number, status, started, finished, hours-planned, hours-logged, tags
| type | number | status | started | finished | hours-planned | hours-logged | tags | ||
|---|---|---|---|---|---|---|---|---|---|
| sprint | 1 | planned | 20 | 0 |
|
Sprint 1 — Rust core via vls
Theme
Learn 80% of everyday Rust syntax by writing a real tool: viexp ls, a better ls.
App deliverable
viexp ls [PATH] with: colored entries by type (dir/symlink/exec/image/archive), human sizes
(1.4 K, 2.1 M), --sort name|size|mtime, --hidden toggle, --long (perms, dates),
--json (for tests), ≥10 unit tests, clippy clean.
Rust focus — the vital 20%
Variables & shadowing, scalar types, functions, if let/match, loops & labels, Vec,
String vs &str, structs + methods, enums + match exhaustiveness, Option/Result,
the ? operator, modules & use, #[cfg(test)] + #[test].
Resources: Rust Book ch. 1–6, 7 (modules), 9 (errors) — in English only; rustlings
exercises intro…functions…if…quiz1…enums…options…errors1-3.
Practice drills (20–30 min each — target ≈2 per day in week 1, features in week 2+)
- D1 —
read_dir→ print bare names; handle theResultwith?andanyhowatmain. - D2 —
FileEntrystruct: name, is_dir, is_symlink, size, mtime; build withmetadata(). - D3 — Human size formatting fn + unit tests (B→K→M→G boundary values).
- D4 — Sorting: implement 3 comparators,
--sortflag parsing (no clap yet —std::env). - D5 — Colors: ANSI escape codes by hand (no crate) — learn what crates hide from you.
- D6 —
--hiddenfilter (dotfiles) + tests. - D7 —
--longview: permissions string (rwxr-x---), date formatting. - D8 — Refactor into
src/entry.rs,src/render.rs,src/cli.rs— modules &pub. - D9 —
--jsonoutput via serde; golden-file test. - D10 — Adopt
clapfor flags (derive API) — your first "big" crate. - D11 — rustlings: enums + options + errors tracks.
- D12 — Review week: read your own code, note 3 things clippy taught you.
English focus
README usage section; draft article "Why build a file manager in Rust" (150–200 words is enough).
Session rhythm (45 min)
5 min review → 30 min drill → 10 min DevLog + ErrorJournal.
Definition of done
viexp ls ~/is nicer thanlsfor your own eyes- ≥10 tests green, clippy clean, CI green
- Article draft published in
docs/articles/ - Retro filled; Sprint-2 milestone issues created