Kerangka Materi
Hari 1 – Dasar-dasar Kuat dan Alat Bantu Pengembangan Python
Fitur Modern Python serta Sistem Tipe
- Pemahaman dasar sistem tipe, penggunaan generik, Protocols, serta TypeGuard
- Konsep dataclass, jenis dataclass yang tak dapat diubah, serta ringkasan alat attrs
- Mekanisme pencocokan pola (PEP 634+) dan penerapannya secara idiomatik
Kualitas Kode serta Alat Bantu Pengembangan
- Alat pengatur format kode serta pemeriksa gaya: black, isort, flake8, ruff
- Pemeriksaan tipe statis menggunakan MyPy dan pyright
- Pemanfaatan hook pre-commit serta pengembangan alur kerja efektif
Manajemen Proyek dan Pengemasan Paket
- Mengelola ketergantungan dengan Poetry serta lingkungan virtual
- Struktur pengarsipan, titik akses eksekusi, serta praktik penomoran versi yang baik
- Cara membangun serta mengunggah paket ke PyPI maupun repositori privat lainnya<\/li>
Hari 2 – Pola Desain dan Praktik Arsitektur
Pola Desain dalam Python
- Pola kreasi: Factory, Builder, Singleton (versi yang sesuai dengan konteks Python)
- Pola struktural: Adapter, Facade, Decorator, Proxy
- Pola perilaku: Strategy, Observer, Command
Prinsip-Prinsip Arsitektur<\/p>
- Penerapan prinsip SOLID dalam pengembangan aplikasi Python
- Konsep Arsitektur Hexagonal/Clean serta batasan-batasnya
- Teknik penyuntikan ketergantungan dan manajemen konfigurasi yang efektif
Modularitas serta Penggunaan Ulang Komponen
- Cara merancang kode aplikasi maupun pustaka secara terpisah
- Pembentukan antarmuka API yang stabil serta penggunaan penomoran versi semantik
- Penanganan konfigurasi, data rahasia, dan pengaturan khusus lingkungan
Hari 3 – Konkurensi, Pemrograman Asinkron, serta Optimalisasi Kinerja
Konsep Konkurensi dan Paralelisme
- Fondasi dasar threading serta pengaruh GIL terhadap kinerja program
- Pemanfaatan multiprocessing serta kelompok proses untuk tugas yang membutuhkan sumber daya komputasi tinggi
- Kapan sebaiknya kita menggunakan concurrent.futures dan kapan harus beralih ke multiprocessing
Pemrograman Asinkron dengan asyncio
- Mekanisme async/await, cara mengendalikan event loop serta pembatalan operasi
- Cara merancang pustaka asinkron serta integrasinya ke dalam kode sinkron
- Pola interaksi berbasis I/O, teknik pengaturan batasan laju pemrosesan, serta pencegahan beban berlebih
Analisis Profil dan Optimisasi Kode
- Peralatan profiling: cProfile, pyinstrument, perf, serta memory_profiler
- Cara mengoptimalkan bagian kode yang sering digunakan, termasuk penggunaan ekstensi C atau alat Numba secara tepat
- Pengukuran latensi, volume pemrosesan data, serta pemanfaatan sumber daya sistem
Hari 4 – Pengujian, Proses CI/CD, Pengamatan Sistem, dan Penerapan Aplikasi
Strategi Pengujian serta Otomatisasi
- Pengembangan tes unit menggunakan pytest beserta alat bantu pembuat konfigurasi uji
- Teknik pengujian berbasis aturan menggunakan Hypothesis dan kontrak fungsi
- Metode pembuatan mock, manipulasi kode dinamis (monkeypatching), serta pengujian kode asinkron<\/li>
Proses CI/CD, Rilis Produk, serta Pengamatan Sistem
- Pengintegrasian skrip tes serta pengecekan kualitas dalam platform GitHub Actions/GitLab CI
- Cara membangun kontainer yang seragam menggunakan Docker beserta metode pembangunan multi-stage
- Teknik pengamatan aplikasi: pencatatan log terstruktur, pengukuran dengan Prometheus, serta jejak pemrosesan sistem
Keamanan Sistem, Penguatan Aplikasi, serta Praktik Terbaik
- Pemeriksaan ketergantungan, penjelasan mengenai SBOM, serta pendeteksian kerentanan secara otomatis
- Kebijakan pengkodean yang aman dalam validasi input dan pengelolaan data rahasia
- Peningkatan keamanan lingkungan eksekusi: batasan sumber daya, hak akses pengguna, serta perlindungan kontainer sebagai lingkungan kerja
Proyek Akhir dan Evaluasi Terakhir
- Aktivitas tim: merancang serta membangun layanan sederhana dengan mengadopsi konsep-konsep pelatihan
- Pengujian, verifikasi tipe, proses pengemasan, serta pembentukan pipeline CI untuk proyek tersebut
- Penilaian akhir, evaluasi kode secara objektif, dan penyusunan rencana perbaikan yang spesifik bagi peserta
Kesimpulan serta Langkah Selanjutnya
Persyaratan
- Pengalaman mengkodekan Python yang memadai pada tingkat menengah ke atas
- Memahami konsep pemrograman berorientasi objek serta pengujian dasar
- Biasa menggunakan baris perintah serta alat Git
Target Peserta
- Pengembang Python senior
- Insinyur perangkat lunak yang bertanggung jawab atas kualitas dan struktur kode Python
- Lead teknis serta insinyur DevOps atau MLOps yang bekerja dengan basis kode Python
Testimoni (2)
semuanya sempurna
Florin Vrincianu
Kursus - Python Programming Fundamentals
Diterjemahkan Mesin
Latihan praktis yang terkait dengan materi benar-benar membantu untuk memahami lebih dalam setiap topik. Selain itu, gaya memulai kelas dengan kuliah dan dilanjutkan dengan latihan praktis sangat baik dan membantu untuk mengaitkannya dengan materi yang telah disampaikan sebelumnya.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Kursus - Introduction to Data Science and AI using Python
Diterjemahkan Mesin