Task: MIL-003#1 Task: MIL-003#2 Task: MIL-003#3 Task: MIL-003#4 Task: MIL-003#5 Task: MIL-003#6
48 lines
1.7 KiB
Markdown
48 lines
1.7 KiB
Markdown
# Pembangunan
|
|
|
|
🌐 [English](Development) · [Dansk](Development-da) · **Bahasa Melayu**
|
|
|
|
Sediakan projek dahulu ([Pemasangan](Install-ms)). Pilihan tambahan `dev` memasang pytest, ruff, mypy dan import-linter.
|
|
|
|
## Jalankan ujian
|
|
|
|
```bash
|
|
python -m pytest
|
|
```
|
|
|
|
## Jalankan semakan yang dijalankan oleh CI
|
|
|
|
```bash
|
|
python -m ruff check .
|
|
python -m mypy
|
|
lint-imports
|
|
```
|
|
|
|
## Bina dokumentasi sumber
|
|
|
|
```bash
|
|
doxygen Doxyfile
|
|
```
|
|
|
|
Buka `build/html/index.html`. Pasang Doxygen dari [doxygen.nl](https://www.doxygen.nl/) atau pengurus pakej anda.
|
|
|
|
## Cara pengendalian pengecualian berfungsi
|
|
|
|
`spell_word` (dalam `domain/spelling.py`) mencari setiap huruf dalam kamus di dalam blok `try`. Aksara yang tiada dalam abjad menimbulkan `KeyError`, yang ditukar oleh blok `except` kepada `InvalidWordError`. `generate_phonetic` (dalam `application/phonetic.py`) menangkap ralat itu, meminta pengguna memasukkan huruf sahaja dan bertanya semula sehingga perkataan itu sah.
|
|
|
|
## Susun atur kod
|
|
|
|
| Folder | Kandungan |
|
|
| --- | --- |
|
|
| `src/nato_phonetic_alphabet/domain/` | Peraturan ejaan, tanpa input dan output |
|
|
| `src/nato_phonetic_alphabet/application/` | Kes guna dan portnya |
|
|
| `src/nato_phonetic_alphabet/adapters/` | Pembaca CSV dan konsol |
|
|
| `src/nato_phonetic_alphabet/constants.py` | Semua pemalar program |
|
|
| `tests/` | Ujian pytest, mencerminkan `src/` |
|
|
|
|
Kebergantungan menghala ke dalam: adapter mengenali aplikasi, aplikasi mengenali domain. import-linter menguatkuasakannya.
|
|
|
|
## Pull request
|
|
|
|
Satu cabang dan satu pull request bagi setiap milestone; CI mesti hijau. Projek ini mengikut rangka kerja SQA dan QC dalam `framework/`; lihat `docs/` untuk pelan dan rekod semakan.
|