17 lines
1.2 KiB
Markdown
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.
|