Files

17 lines
1.2 KiB
Markdown

[English](Modernisation) | [Dansk](Modernisation-da) | **Bahasa Malaysia**
# Pemodenan
| Penyelesaian asal | Penyelesaian moden | Sebab |
| --- | --- | --- |
| Satu `main.py` | Lapisan dalam `src/scraping_python_org` (domain, application, infrastructure, presentation) | Peraturan perniagaan tidak bergantung pada Selenium; use case diuji dengan palsu (fake) |
| XPath mutlak yang panjang | Pemilih CSS `.event-widget li` | Pendek, mudah dibaca, tahan perubahan reka letak |
| Pembilang manual `c` | `enumerate` | Kod lebih sedikit, tiada ralat off-by-one |
| `detach=True` diikuti `driver.quit()` | Chrome headless dalam context manager yang sentiasa menutup | Tiada tetingkap pelayar tertinggal, berjalan tanpa desktop |
| `selenium` tanpa versi dalam `requirements.txt` | `pyproject.toml` dengan versi minimum | Pemasangan yang boleh diulang |
| Tiada ujian | Ujian unit dan ujian pelayar headless pada halaman tersimpan | Perubahan selamat |
| Tiada petunjuk jenis | `mypy --strict`, `ruff` | Ralat ditemui sebelum dijalankan |
**Apa yang anda peroleh:** pengikis yang boleh diubah dengan yakin; idea yang
sama seperti dalam pelajaran, tetapi dibina seperti projek sebenar.