Penulis : Luo Hao
Catatan : Dari peluncuran proyek hingga perolehan 8w+ bintang, kami telah menerima masukan bahwa bagian dasar (isi 15 hari pertama) sulit bagi pemula. Baru-baru ini, bagian dasar dari konten telah dibuat ulang menjadi sebuah proyek yang disebut "Python-Core-50-Courses". Bagian konten ini telah ditulis ulang dengan cara yang lebih sederhana dan populer dan dilengkapi dengan penjelasan video lihat gudang baru ini. Jika pengguna domestik lambat mengakses GitHub, mereka dapat mengikuti akun Zhihu saya Python-Jack . Kolom di atas "Belajar Python dari Awal" lebih cocok untuk pemula " "Analisis Data" dan lain sebagainya juga terus dibuat dan diperbarui. Semua orang dipersilakan untuk memperhatikan, menyukai, dan berkomentar.
Teman-teman yang ingin mendapatkan video pembelajaran dapat memindai kode QR di bawah ini untuk masuk ke program mini WeChat untuk melihat apakah ada konten yang cocok untuk Anda. Konten pembelajaran mesin yang dipikirkan semua orang dapat ditemukan di program mini, yang direkam untuk Anda oleh saya dan kolega saya.
Jika Anda menemui kendala yang sulit atau membutuhkan sumber belajar yang relevan selama proses pembelajaran, Anda dapat bergabung dengan grup komunikasi QQ berikut. Anda dapat bergabung dengan salah satu dari tiga grup tersebut. Mohon jangan bergabung dengan grup berulang kali, dan jangan memposting di grup. Iklan dan konten pornografi, vulgar, atau sensitif lainnya. Jika Anda kurang disiplin dan perlu membayar untuk belajar, Anda dapat menambahkan obrolan pribadi WeChat (jackfrued) saya dan mencatat nama serta kebutuhan Anda.
Video pendukung terus diperbarui di Douyin dan Bilibili. Teman-teman yang tertarik dapat mengikuti akun Douyin atau Bilibili saya. Saya baru saja membuka akun saya. Saya harap Anda dapat banyak mendukung saya.
"Pembelajaran Mesin dan Pembelajaran Mendalam" yang didesak oleh semua orang untuk diperbarui telah terhenti karena alasan pribadi dan perusahaan. Konten terkait akan diperbarui dalam waktu dekat. Terima kasih atas dukungan dan pengertian Anda yang berkelanjutan.
Sederhananya, Python adalah bahasa pemrograman yang “elegan”, “jelas” dan “sederhana”.
Kurva belajar yang rendah, bahkan non-profesional pun bisa memulai
Sistem open source dengan ekosistem yang kuat
Bahasa yang ditafsirkan, portabilitas platform yang sempurna
Bahasa yang diketik secara dinamis yang mendukung pemrograman berorientasi objek dan fungsional
Kode ini sangat terstandarisasi dan mudah dibaca
Python berguna dalam bidang berikut.
Pengembangan Backend - Python/Java/Go/PHP
DevOps - Python/Shell/Ruby
Akuisisi Data - Python/C++/Java
Perdagangan Kuantitatif - Python/C++/R
Ilmu Data - Python/R/Julia/Matlab
Pembelajaran Mesin - Python/R/C++/Julia
Pengujian otomatis - Python/Shell
Sebagai pengembang Python, ada banyak bidang pekerjaan yang dapat dipilih berdasarkan preferensi pribadi dan rencana karier.
Insinyur pengembangan back-end Python (server, platform cloud, antarmuka data)
Insinyur operasi dan pemeliharaan Python (operasi dan pemeliharaan otomatis, SRE, DevOps)
Analis data Python (analisis data, intelijen bisnis, operasi digital)
Insinyur penambangan data Python (pembelajaran mesin, pembelajaran mendalam, ahli algoritma)
Insinyur perayap Python
Insinyur pengujian Python (pengujian otomatis, pengembangan pengujian)
Catatan : Saat ini, analisis data dan penambangan data adalah arah yang sangat populer , karena baik industri Internet maupun industri tradisional telah mengumpulkan sejumlah besar data, dan semua lapisan masyarakat memerlukan analis data untuk menemukan lebih banyak wawasan bisnis dari data yang ada memberikan dukungan data untuk pengambilan keputusan perusahaan, yang disebut pengambilan keputusan berdasarkan data.
Beberapa saran untuk pemula:
Jadikan bahasa Inggris sebagai bahasa kerja Anda.
Latihan menjadi sempurna.
Semua pengalaman berasal dari kesalahan.
Jangan menjadi salah satu lintah.
Entah luar biasa atau keluar.
Pengantar Python - Sejarah Python/Kelebihan dan Kekurangan Python/Bidang Aplikasi Python
Bangun lingkungan pemrograman - lingkungan Windows/lingkungan Linux/lingkungan MacOS
Jalankan program Python dari terminal - Halo, dunia/fungsi print
/jalankan program
Menggunakan IDLE - Lingkungan Interaktif (REPL) / Tulis beberapa baris kode / Jalankan program / Keluar dari IDLE
Komentar - peran komentar/komentar satu baris/komentar multi-baris
Program dan Basis - Instruksi dan Program/Mesin Von Neumann/Biner dan Desimal/Oktal dan Heksadesimal
Variabel dan tipe - penamaan variabel/penggunaan variabel/fungsi input
/memeriksa tipe variabel/konversi tipe
Angka dan string - bilangan bulat/angka floating point/bilangan kompleks/string/operasi string dasar/pengkodean karakter
Operator - operator matematika/operator penugasan/operator perbandingan/operator logika/operator identitas/operator diutamakan
Kasus aplikasi - Ubah suhu Fahrenheit menjadi suhu Celsius / Masukkan jari-jari lingkaran untuk menghitung keliling dan luas / Masukkan tahun untuk menentukan apakah ini tahun kabisat
Skenario penerapan struktur cabang - kondisi/lekukan/blok kode/diagram alur
pernyataan if - if
/ if
- else
struktur sederhana/ if
- elif
- else
struktur/ if
bersarang
Kasus aplikasi - Otentikasi pengguna/Pertukaran satuan imperial dan satuan metrik/Menggulir dadu untuk memutuskan apa yang harus dilakukan/Mengonversi skor persentil ke sistem nilai/Mengevaluasi fungsi sepotong-sepotong/Memasukkan panjang tiga sisi dan menghitung keliling dan luas segitiga terbentuk
Skenario penerapan struktur loop - kondisi/lekukan/blok kode/diagram alur
while loop - struktur dasar/pernyataan break
/pernyataan continue
for loop - struktur dasar/tipe range
/struktur cabang dalam loop/loop bersarang/mengakhiri program lebih awal
Kasus aplikasi - Menjumlahkan 1~100 / Menentukan bilangan prima / Permainan menebak angka / Mencetak sembilan puluh sembilan tabel / Mencetak pola segitiga / Monyet memakan buah persik / Ratusan koin dan ratusan ayam
Kasus klasik: Permainan Judi Angka Narsisis/Ratusan Uang dan Seratus Ayam/Craps
Latihan soal: Deret Fibonacci/Bilangan Sempurna/Bilangan Prima
Peran fungsi - bau busuk kode/enkapsulasi modul fungsional dengan fungsi
Tentukan fungsi - kata kunci def
/nama fungsi/daftar parameter/pernyataan return
/panggil fungsi khusus
Memanggil fungsi - Fungsi bawaan Python/mengimpor modul dan fungsi
Parameter fungsi - parameter default/parameter variabel/parameter kata kunci/parameter kata kunci bernama
Nilai pengembalian fungsi - tidak ada nilai pengembalian / pengembalian nilai tunggal / pengembalian beberapa nilai
Masalah cakupan - cakupan lokal/cakupan bersarang/cakupan global/cakupan bawaan/kata kunci terkait cakupan
Menggunakan fungsi manajemen modul - konsep modul/menggunakan fungsi manajemen modul khusus/apa yang terjadi jika terjadi konflik penamaan (modul yang sama dan modul yang berbeda)
Penggunaan string - penghitungan panjang/operasi subskrip/pengirisan/metode umum
Penggunaan dasar daftar - tentukan daftar/gunakan tabel berikut untuk mengakses elemen/subskrip di luar batas/menambahkan elemen/menghapus elemen/memodifikasi elemen/slice/loop traverse
Operasi umum pada daftar - koneksi/salinan (menyalin elemen dan menyalin array)/panjang/sortir/mundur/pencarian
Hasilkan daftar - gunakan range
untuk membuat daftar angka/menghasilkan ekspresi/generator
Penggunaan tupel - tentukan tupel/gunakan nilai dalam tupel/modifikasi variabel tupel/tupel dan daftar konversi
Penggunaan dasar set - perbedaan antara set dan daftar/membuat set/menambahkan elemen/menghapus elemen/menghapus
Operasi umum pada himpunan - perpotongan/penyatuan/perbedaan/perbedaan simetris/subset/superset
Penggunaan dasar kamus - karakteristik kamus/membuat kamus/menambahkan elemen/menghapus elemen/mendapatkan nilai/menghapus
Operasi kamus umum - metode keys
/ metode values
/ metode items
/ metode setdefault
Latihan dasar - Efek tenda/Menemukan elemen terbesar dalam daftar/Skor rata-rata skor uji statistik/Deret Fibonacci/Segitiga Yang Hui
Kasus Komprehensif - Pemilihan Nomor Bola Warna Ganda/Tic-Tac-Toe
Kelas dan Objek - Apa itu kelas/Apa itu objek/Konsep berorientasi objek terkait lainnya
Tentukan kelas - struktur/properti dasar dan metode/konstruktor/penghancur/ __str__
str__metode
Menggunakan Objek - Membuat Objek/Kirim Pesan ke Objek
Empat pilar berorientasi objek - abstraksi/enkapsulasi/warisan/polimorfisme
Latihan dasar - menentukan kelas siswa/menentukan kelas jam/mendefinisikan kelas grafis/mendefinisikan kelas mobil
Properti - properti kelas/properti instance/pengakses properti/pengubah properti/penghapus properti/penggunaan __slots__
Metode di kelas - metode instan/metode kelas/metode statis
Kelebihan beban operator - __add__
/ __sub__
/ __or__
/ __getitem__
/ __setitem__
/ __len__
/ __gt__
/ __lt__
/ __le__
/ __ge__
/ __ge__ / __eq__
/ __ne__
__contains__
__repr__
Hubungan antar kelas (objek) - asosiasi/warisan/ketergantungan
Pewarisan dan polimorfisme - apa itu pewarisan/sintaks pewarisan/pemanggilan metode kelas induk/penggantian metode/penentuan tipe/pewarisan berganda/pewarisan berlian (pewarisan berlian) dan algoritma C3
Sistem penyelesaian gaji kasus yang komprehensif/sistem diskon buku otomatis/kategori skor khusus
Kembangkan program GUI menggunakan tkinter
Kembangkan aplikasi game menggunakan perpustakaan pihak ketiga pygame
Permainan "Bola besar memakan bola kecil".
Baca file - membaca seluruh file / membaca baris demi baris / jalur file
Tulis file - timpa/tambahkan/file teks/file biner
Penanganan pengecualian-pentingnya mekanisme pengecualian/ try
- except
blok kode/blok kode else
/ finally
blok kode/jenis pengecualian bawaan/tumpukan pengecualian/pernyataan raise
Persistensi data - Ikhtisar file CSV/Penerapan modul csv
/format data JSON/Penerapan modul json
Operasi lanjutan pada string - Karakter escape/string mentah/string multiline/ in
dan not in
operator/ metode is_xxx
/ metode join
dan split
/ metode terkait strip
/ modul pyperclip
/string yang tidak dapat diubah dan string variabel/ Penggunaan StringIO
Pengantar ekspresi reguler - peran ekspresi reguler/metakarakter/melarikan diri/quantifiers/pengelompokan/pernyataan lebar-nol/pencocokan serakah dan pencocokan malas malas/menggunakan modul re
untuk mengimplementasikan operasi ekspresi reguler (mencocokkan, mencari, mengganti, menangkap)
Menggunakan ekspresi reguler - modul re
/ fungsi compile
/ metode group
dan groups
/ metode match
/ metode search
/ metode findall
dan finditer
/ metode sub
dan subn
/ metode split
Kasus aplikasi - Gunakan ekspresi reguler untuk memvalidasi string masukan
Konsep proses dan thread - Apa itu proses / Apa itu thread / Skenario aplikasi multi-threading
Menggunakan proses - fungsi fork
/ modul multiprocessing
/kumpulan proses/komunikasi antar-proses
Menggunakan utas - modul threading
/ Kelas Thread
/ Kelas RLock
/ Kelas Condition
/Kumpulan utas
Dasar-Dasar Jaringan Komputer - Sejarah Perkembangan Jaringan Komputer/Model "TCP-IP"/Alamat IP/Port/Protokol/Konsep Terkait Lainnya
Mode aplikasi jaringan - mode "Client-Server" / mode "Browser-Server".
Akses sumber daya jaringan berdasarkan protokol HTTP - Ikhtisar API Jaringan/URL Akses/ requests
pustaka pihak ketiga/Parse data format JSON
Pemrograman jaringan Python - konsep soket/ modul socket
/ fungsi socket
/membuat server TCP/membuat klien TCP/membuat server UDP/membuat klien UDP
Email - Modul SMTP/POP3/IMAP/ smtplib
/ modul poplib
/ modul imaplib
Layanan SMS - Panggilan Layanan SMS Gateway
Gunakan Bantal untuk memproses gambar - membaca dan menulis gambar/sintesis gambar/transformasi geometris/konversi warna/efek filter
Membaca dan menulis dokumen Word - pemrosesan konten teks/paragraf/header dan footer/pemrosesan gaya
Membaca dan menulis file Excel - xlrd
/ xlwt
/ openpyxl
Struktur data umum
Penggunaan fungsi tingkat lanjut - "Warga negara kelas satu" / Fungsi tingkat tinggi / Fungsi Lambda / Cakupan dan penutupan / Dekorator
Pengetahuan berorientasi objek tingkat lanjut - "Tiga Pilar" / Hubungan antar kelas / Pengumpulan sampah / Properti dan metode ajaib / Pencampuran / Metaclass / Prinsip desain berorientasi objek / Pola desain GoF
Iterator dan Generator - Metode Ajaib Terkait/Dua Cara Membuat Generator/
Pemrograman serentak dan asinkron - multi-threading/multi-proses/asinkron IO/ async
dan awai
Gunakan tag HTML untuk membawa konten halaman
Render halaman dengan CSS
Menangani perilaku interaktif dengan JavaScript
Memulai dengan jQuery dan memperbaikinya
Memulai dengan Vue.js
Penggunaan Elemen
Penggunaan Bootstrap
Sejarah pengembangan sistem operasi dan gambaran umum Linux
Perintah dasar Linux
Utilitas di Linux
sistem file Linux
Aplikasi editor Vim
Variabel lingkungan dan pemrograman shell
Instalasi perangkat lunak dan konfigurasi layanan
Akses dan manajemen jaringan
Konten terkait lainnya
Ikhtisar database relasional
Pengantar MySQL
InstalMySQL
Perintah dasar MySQL
Membangun database dan tabel
Hapus dan ubah tabel
operasi penyisipan
operasi penghapusan
operasi pembaruan
Proyeksi dan alias
Saring datanya
Penanganan nilai nol
Hapus duplikat
menyortir
fungsi agregat
Kueri bersarang
Kelompok
tabel bergabung
produk kartesius
gabungan batin
koneksi alami
gabungan luar
fungsi jendela
Tentukan jendela
fungsi peringkat
fungsi akses
Buat pengguna
memberikan izin
Ingat izin
Tipe JSON
fungsi jendela
ekspresi tabel umum
melihat
Skenario penggunaan
Buat tampilan
Pembatasan penggunaan
fungsi
fungsi bawaan
Fungsi yang ditentukan pengguna (UDF)
proses
Proses penciptaan
Proses panggilan
rencana eksekusi
Prinsip pengindeksan
Buat indeks
Indeks biasa
indeks unik
indeks awalan
indeks komposit
Hal-hal yang perlu diperhatikan
Instal perpustakaan pihak ketiga
Buat koneksi
Dapatkan kursor
Jalankan pernyataan SQL
Ambil data melalui kursor
Komit dan kembalikan transaksi
Lepaskan koneksi
Tulis skrip ETL
Ekosistem Hadoop
Ikhtisar sarang
Persiapan
tipe data
Operasi DDL
Operasi DML
Permintaan data
Mekanisme kerja aplikasi web
Permintaan dan tanggapan HTTP
Ikhtisar kerangka Django
Mulailah dengan cepat dalam 5 menit
Konfigurasi basis data relasional
Gunakan ORM untuk menyelesaikan operasi CRUD pada model
Penggunaan latar belakang manajemen
Praktik terbaik model Django
Referensi definisi model
Memuat sumber daya statis
Ikhtisar Ajax
Menerapkan fungsi pemungutan suara menggunakan Ajax
Terapkan pelacakan pengguna
Hubungan antara cookie dan sesi
Dukungan kerangka Django untuk sesi
Operasi membaca dan menulis cookie dalam fungsi tampilan
Ubah header respons melalui HttpResponse
Gunakan StreamingHttpResponse
untuk menangani file besar
Gunakan xlwt
untuk menghasilkan laporan Excel
Gunakan reportlab
untuk menghasilkan laporan PDF
Gunakan ECharts untuk menghasilkan grafik front-end
Log konfigurasi
Konfigurasikan Django-Debug-Toolbar
Optimalkan kode ORM
Apa itu middleware
Middleware bawaan kerangka Django
Middleware khusus dan skenario penerapannya
Kembalikan data dalam format JSON
Render halaman dengan Vue.js
Ikhtisar REST
Memulai dengan perpustakaan DRF
Pisahkan pengembangan front-end dan back-end
Penerapan JWT
Gunakan CBV
halaman data
Pemfilteran data
Hukum pertama optimasi situs web
Menggunakan Redis untuk menyediakan layanan cache di proyek Django
Baca dan tulis cache dalam fungsi tampilan
Menggunakan dekorator untuk mengimplementasikan cache halaman
Menyediakan layanan caching untuk antarmuka data
Kontrol formulir unggah file dan pratinjau file gambar
Cara menangani file yang diupload di sisi server
Hukum kedua optimasi situs web
Konfigurasikan layanan antrian pesan
Gunakan Seledri untuk mengimplementasikan asinkronisasi tugas dalam proyek
Gunakan Seledri untuk mengimplementasikan tugas terjadwal dalam proyek
Pengujian unit dengan Python
Dukungan kerangka Django untuk pengujian unit
Gunakan sistem kontrol versi
Mengonfigurasi dan menggunakan uWSGI
Pemisahan dinamis dan statis serta konfigurasi Nginx
Konfigurasikan HTTPS
Konfigurasikan resolusi nama domain
Konsep web crawler dan bidang penerapannya
Diskusi tentang legalitas web crawler
Alat terkait untuk mengembangkan perayap web
Komposisi program perayap
Gunakan perpustakaan requests
pihak ketiga untuk mengimplementasikan pengambilan data
Tiga cara untuk mengurai halaman
Penguraian ekspresi reguler
Penguraian XPath
Penguraian pemilih CSS
multithreading
multi-proses
I/O asinkron
Instal Selenium
Muat halaman
Temukan elemen dan simulasikan perilaku pengguna
Penantian implisit dan penantian eksplisit
Jalankan kode JavaScript
Retakan anti-perayapan selenium
Siapkan browser tanpa kepala
Komponen inti tergores
Alur kerja yang buruk
Instal Scrapy dan buat proyek
Tulis program laba-laba
Tulis program middleware dan pipeline
File konfigurasi tergores
Tanggung Jawab Analis Data
Tumpukan Keterampilan Analis Data
Perpustakaan terkait analisis data
Instal dan gunakan anaconda
perintah terkait conda
Instal dan gunakan jupyter-lab
Instal dan mulai
Gunakan tip
Buat objek array
Properti objek array
Operasi indeks pada objek array
Indeks biasa
indeks mewah
indeks boolean
indeks irisan
Kasus: Menggunakan array untuk memproses gambar
Metode terkait objek array
Dapatkan statistik deskriptif
Metode terkait lainnya
Operasi susunan
Operasi array dan skalar
Array dan operasi array
Fungsi unary universal
fungsi biner umum
mekanisme siaran
Fungsi umum yang tidak banyak
vektor
Penentu
matriks
polinomial
Buat objek Series
Operasi pada objek Series
Properti dan metode objek Series
Buat objek DataFrame
Properti dan metode objek DataFrame
Membaca dan menulis data di DataFrame
Pembentukan kembali data
Penyambungan data
Penggabungan data
Pembersihan data
Nilai-nilai yang hilang
Nilai duplikat
Pencilan
pemrosesan awal
Data poros
Dapatkan statistik deskriptif
Penyortiran dan nilai header
Agregasi kelompok
Tabel pivot dan tab silang
Penyajian data
Hitung perbandingan tahun ke tahun
perhitungan jendela
Penentuan relevansi
Penggunaan indeks
indeks jangkauan
Indeks kategori
indeks bertingkat
indeks interval
indeks tanggal dan waktu
Instal dan impor matplotlib
Buat kanvas
Buatlah sistem koordinat
Menggambar grafik
Bagan garis
Plot sebar
diagram batang
diagram lingkaran
Histogram
plot kotak
Tampilkan dan simpan grafik
Grafik tingkat lanjut
bagan gelembung
grafik wilayah
grafik radar
diagram mawar
grafik 3D
Yg keturunan dr laut
diagram lingkaran
model proses perangkat lunak
Product Backlog (cerita pengguna, prototipe produk).
Rapat perencanaan (evaluasi dan penganggaran).
Pengembangan harian (pertemuan stand-up, teknik Pomodoro, pemrograman berpasangan, tes pertama, pemfaktoran ulang kode...).
Memperbaiki bug (deskripsi masalah, langkah-langkah untuk mereproduksi, penguji, penerima tugas).
Versi rilis.
Rapat tinjauan (Showcase, pengguna harus berpartisipasi).
Pertemuan retrospektif (membuat ringkasan siklus iterasi saat ini).
Individu dan interaksi atas proses dan alat
Perangkat lunak yang berfungsi melalui dokumentasi menyeluruh
Kerja sama pelanggan lebih diutamakan daripada negosiasi kontrak
Menanggapi perubahan lebih baik daripada mengikuti rencana
Analisis kelayakan (apakah akan dilakukan penelitian atau tidak) dan menghasilkan keluaran berupa “Laporan Analisis Kelayakan”.
Analisis persyaratan (penelitian tentang apa yang harus dilakukan), keluaran "Spesifikasi Persyaratan" dan diagram prototipe antarmuka produk.
Desain garis besar dan desain detail, diagram model konseptual keluaran (diagram ER), diagram model fisik, diagram kelas, diagram urutan, dll.
Pengkodean/Pengujian.
Sambungkan ke internet/pemeliharaan.
Model proses klasik (model air terjun)
Kerugian terbesar dari model air terjun adalah tidak dapat menerima perubahan permintaan. Produk tidak dapat dilihat sampai seluruh proses selesai, sehingga menyebabkan rendahnya semangat tim.
Pengembangan tangkas (Scrum) - pemilik produk, Scrum Master, pengembang - Sprint
Tambahan: Manifesto untuk Pengembangan Perangkat Lunak Agile
Peran: Pemilik produk (orang yang memutuskan apa yang harus dilakukan dan dapat membuat keputusan mengenai persyaratan), pemimpin tim (menyelesaikan berbagai masalah, berfokus pada cara bekerja lebih baik, dan melindungi pengaruh eksternal pada tim pengembangan), tim pengembangan (eksekutif proyek, Khususnya pengembang dan penguji).
Persiapan: kasus bisnis dan pendanaan, kontrak, visi, persyaratan produk awal, rencana peluncuran awal, pengambilan saham, membangun tim.
Tim tangkas biasanya terdiri dari 8-10 orang.
Estimasi beban kerja: Hitung tugas pengembangan, termasuk prototipe, desain Logo, desain UI, pengembangan front-end, dll., dan coba uraikan setiap pekerjaan ke dalam jumlah tugas minimum. Standar jumlah tugas minimum adalah waktu kerja tidak boleh lebih dari dua hari , lalu perkirakan waktu proyek secara keseluruhan. Posting setiap tugas di papan Kanban, yang dibagi menjadi tiga bagian: harus dilakukan (harus diselesaikan), sedang berlangsung (sedang berlangsung) dan selesai (selesai).
Pembentukan tim proyek
Komentar kode terlalu sedikit atau tidak ada komentar
Kode melanggar praktik terbaik bahasa
Pemrograman anti-pola (kode spageti, pemrograman salin-tempel, pemrograman ego,…)
Komposisi dan peran tim
Catatan: Terima kasih kepada Ibu Fu Xiangying karena telah membantu saya menggambar bagan organisasi perusahaan yang indah berikut ini.
Spesifikasi pemrograman dan tinjauan kode ( flake8
, pylint
)
Beberapa "konvensi" dalam Python (silakan merujuk ke "Konvensi Python-Cara Menulis Kode Pythonic")
Alasan yang mempengaruhi keterbacaan kode:
Pengantar alat pengembangan tim
Silakan merujuk ke "Masalah dan Solusi dalam Pengembangan Proyek Tim".
Kontrol versi: Git, Mercury
Manajemen cacat: Gitlab, Redmine
Alat loop tertutup yang tangkas: ZenTao, JIRA
Integrasi berkelanjutan: Jenkins, Travis-CI
Pengaturan cakupan topik
CMS (klien): situs web agregasi berita, komunitas tanya jawab/berbagi, situs web ulasan film/resensi buku, dll.
MIS (sisi pengguna + sisi manajemen): KMS, sistem penilaian KPI, HRS, sistem CRM, sistem rantai pasokan, sistem manajemen gudang, dll.
Backend aplikasi (terminal manajemen + antarmuka data): transaksi bekas, surat kabar dan majalah, e-commerce khusus, berita dan informasi, perjalanan, jejaring sosial, membaca, dll.
Jenis lainnya: Memiliki latar belakang industri dan pengalaman kerja, bisnis mudah dipahami dan dikendalikan.
Pemahaman kebutuhan, pembagian modul dan alokasi tugas
Pemahaman persyaratan: brainstorming dan analisis produk kompetitif.
Pembagian modul: Gambarlah peta pikiran (XMind). Setiap modul adalah simpul cabang, dan setiap fungsi spesifik adalah simpul daun (dinyatakan dengan kata kerja). Pentingnya, prioritas dan beban kerja node.
Alokasi tugas: Pemimpin proyek memberikan tugas kepada setiap anggota tim berdasarkan indikator di atas.
Mengembangkan jadwal proyek (diperbarui setiap hari)
modul | Fungsi | personil | negara | Menyelesaikan | jam kerja | Rencana dimulai | Awal yang sebenarnya | Rencana berakhir | akhir yang sebenarnya | Komentar |
---|---|---|---|---|---|---|---|---|---|---|
Komentar | Tambahkan komentar | Wang Dachui | sedang berlangsung | 50% | 4 | 2018/8/7 | 2018/8/7 | |||
Hapus komentar | Wang Dachui | Tunggu | 0% | 2 | 2018/8/7 | 2018/8/7 | ||||
Lihat komentar | Bai Yuanfang | sedang berlangsung | 20% | 4 | 2018/8/7 | 2018/8/7 | Diperlukan peninjauan kode | |||
Suara komentar | Bai Yuanfang | Tunggu | 0% | 4 | 2018/8/8 | 2018/8/8 |
OOAD dan desain basis data
Diagram kelas untuk UML (Bahasa Pemodelan Terpadu)
Membuat tabel melalui model (rekayasa maju). Misalnya, dalam proyek Django, Anda dapat membuat tabel dua dimensi melalui perintah berikut.
aplikasi python Manage.py makemigrations python kelola.py bermigrasi
Gunakan PowerDesigner untuk menggambar diagram model fisik.
Membuat model (rekayasa balik) melalui tabel data, misalnya dalam proyek Django, Anda dapat menghasilkan model melalui perintah berikut.
python kelola.py inspeksidb > app/models.py
Pengantar Docker
Instal Docker
Membuat container menggunakan Docker (Nginx, MySQL, Redis, Gitlab, Jenkins)
Membangun image Docker (penulisan Dockerfile dan instruksi terkait)
Orkestrasi container (penyusunan Docker)
Manajemen klaster (Kubernetes)
prinsip dasar
mesin InnoDB
Indeks penggunaan dan tindakan pencegahan
partisi data
optimasi SQL
Optimalisasi konfigurasi
Optimalisasi arsitektur
prinsip desain
pertanyaan kunci
Pertanyaan lainnya
Penulisan dokumen
Konfigurasi basis data (banyak basis data, replikasi master-slave, perutean basis data)
Konfigurasi cache (cache partisi, pengaturan kunci, pengaturan batas waktu, replikasi master-slave, pemulihan kegagalan (Sentinel))
Konfigurasi log
Pembuatan Profil dan Debug (Django-Debug-ToolBar)
Modul Python yang berguna (perhitungan tanggal, pemrosesan gambar, enkripsi data, API pihak ketiga)
Arsitektur yang tenang
Memahami arsitektur RESTful
Pedoman Desain API RESTful
Praktik terbaik RESTful API
Menulis dokumentasi antarmuka API
RAP2
YAPI
Penerapan kerangka Django-REST
Gunakan caching untuk mengurangi tekanan database - Redis
Gunakan antrian pesan untuk decoupling dan kliping puncak - Seledri + RabbitMQ
Jenis tes
Tulis pengujian unit ( unittest
, pytest
, nose2
, tox
, ddt
,...)
Cakupan tes ( coverage
)
Persiapan sebelum penerapan
Pengaturan kunci (SECRET_KEY / DEBUG / ALLOWED_HOSTS / cache / database)
HTTPS/CSRF_COOKIE_SECUR/SESSION_COOKIE_SECURE
Konfigurasi terkait log
Tinjauan umum perintah Linux
Instalasi dan konfigurasi layanan Linux umum
Penggunaan uWSGI/Gunicorn dan Nginx
Untuk aplikasi sederhana yang tidak memerlukan banyak penyesuaian, Gunicorn adalah pilihan yang baik. Kurva pembelajaran uWSGI jauh lebih curam daripada Gunicorn, dan parameter default Gunicorn sudah dapat disesuaikan dengan sebagian besar aplikasi.
uWSGI mendukung penerapan heterogen.
Karena Nginx sendiri mendukung uWSGI, Nginx dan uWSGI umumnya diterapkan bersama secara online, dan uWSGI adalah middleware WSGI yang berfungsi penuh dan sangat dapat disesuaikan.
Dari segi performa, Gunicorn dan uWSGI sebenarnya memiliki performa yang sama baiknya.
Perbandingan Gunicorn dan uWSGI
Menyebarkan lingkungan pengujian dan lingkungan produksi menggunakan teknologi virtualisasi (Docker)
Penggunaan AB
Penggunaan SQLslap
Penggunaan sysbench
Pengujian otomatis menggunakan Shell dan Python
Pengujian otomatis menggunakan Selenium
Selenium IDE
Selenium WebDriver
Kendali Jarak Jauh Selenium
Pengenalan alat pengujian Kerangka Robot
Model bisnis dan poin persyaratan
Desain model fisik
Masuk pihak ketiga
Pemanasan cache dan cache kueri
Implementasi keranjang belanja
Integrasi fungsi pembayaran
Penjualan kilat dan masalah oversold
Manajemen sumber daya statis
Solusi pencarian teks lengkap
Penyetelan basis data MySQL
Optimalisasi kinerja server web
Konfigurasi penyeimbangan beban Nginx
Keepalived mencapai ketersediaan tinggi
Penyetelan kinerja kode
multithreading
Asinkronisasi
Pengoptimalan akses sumber daya statis
penyimpanan awan
CDN
dasar-dasar komputer
Dasar-dasar piton
Terkait kerangka web
Masalah terkait reptil
analisis data
Terkait proyek