DjangoCon Europe 2019. Apakah kuda poni Anda mati?

gambar

Dari 9-14 April , Konferensi Eropa 2019 DjangoCon diadakan di Kopenhagen. Penuh harapan dan aspirasi, saya tiba di acara ini, dan pergi dalam kekacauan yang mendalam. Dalam artikel ini saya akan mencoba menyampaikan kesan saya tentang konferensi dan mengomentari perubahan sikap yang tajam terhadap Django.
Penafian: artikel berisi intoleransi, penilaian kategoris dan kritik yang tidak dapat dibenarkan.

Halo semuanya, saya Maxim, saya tinggal di Austria, di Tyrol. Saya seorang guru di GeekBrains dan salah satu pemilik proyek winePad, seorang kolektor dan penjual data teknis minuman beralkohol. Ini biasanya data pada anggur.

Tentang proyek winePad
Kami memiliki database paling akurat di Eropa. Ini karena semua anggur dalam basis data diverifikasi secara pribadi oleh para ahli kami. Secara singkat tentang pekerjaan kami: Buk. Dan terkadang itu terjadi dengan keras: ketika 40 persetujuan sehari, keesokan paginya saya tidak selalu yakin bagaimana saya sampai di rumah. Ya, atau saya tidak ingat di mana mobil itu diparkir.

Proyek ini dimulai pada 2012 dengan Django 1.4 / Python 2.7 di server, dan dengan Jquery di klien + JsonRPC server. Sekarang set teknologi telah meningkat. Bagaimanapun, kami benar-benar bertemu dengan Django.

Saya bergabung dengan proyek ini pada 2015, mengambil alih tongkat estafet dari pengembang Tyrolean. Dari kualitas rambut yang buruk bergerak di mana-mana.

Kisah para gembala Tyrolean, dengan kualifikasi ulang yang tajam sebagai programmer, saya akan tinggalkan di belakang layar. Jika Anda melihat solusinya, saya yakin Anda tiba-tiba ingin membunuh semua orang yang menyebut dirinya "programmer Tyrolean".

Pada Februari 2019, menjadi jelas: pengembangan proyek tidak mungkin dilakukan dengan serangkaian teknologi saat ini. Mencari jawaban, saya memutuskan untuk pergi ke DjangoCon 2019, yang diadakan di Kopenhagen tepat waktu. Apa yang saya inginkan dari konferensi:

  1. Belajar dari para profesional, lihat apa yang bisa saya tingkatkan dalam pekerjaan saya.
  2. Terjun ke dunia solusi baru untuk platform saya.
  3. Nongkrong dengan kutu buku Django yang sama seperti saya. Masuk, begitulah, dalam sebuah pesta.
  4. Pahami apa yang salah dengan Django. Sejak 2016, muncul pikiran bahwa saya kehilangan sesuatu. Saya tidak bisa mengerti apa.

Apa yang datang dari semua ini:



Hari nol


Pada hari Selasa sore, sebelum dimulainya konferensi, sebuah pertemuan Django Girls diadakan - ini adalah inisiatif DjangoFoundation untuk mempromosikan Django ke massa perempuan. Dari jam 5 sore, pendaftaran dimulai. 3-inch floppy disk bertindak sebagai lencana, siapa pun dapat menulis semua yang mereka inginkan ke floppy disk (ha ha), drive USB hadir.

Pada semua hari konferensi, ada bir kerajinan dalam jumlah tak terbatas berlabel "Django-pony merah muda," dari tempat pembuatan bir kecil setempat. Di satu sisi itu keren, di sisi lain ... bir biasa-biasa saja. Aula didekorasi dengan kuda terbang merah muda dari semua ukuran.



Dari simbolisme yang tidak mencolok dan rasa keterlibatan dalam komunitas para penggembala kuda, ada aftertaste khusus yang menggembirakan. Saya bertemu Russell Keith-Magee , pengembang lama Django. Semua yang datang ke konferensi ini bergantung pada solusi perangkat lunaknya.



Ketika membeli tiket, saya harus setuju untuk mematuhi aturan konferensi tentang keterbukaan, toleransi, kritik konstruktif dan rasa hormat terhadap preferensi seksual peserta. Dengan menyetujui ini, saya tidak curiga apa yang dapat menyebabkan ...

Di sini saya pertama kali belajar tentang aturan Pacman: jika orang lain mendekati lingkaran percakapan, para peserta dalam percakapan HARUS minggir dan memberi ruang bagi teman bicara baru. Secara umum, adalah mungkin untuk memukul dan makan keripik (dalam jumlah berapa pun), berkenalan dengan spesialis yang tiba, bergabung dengan percakapan apa pun, menarik penyelenggara.

Subjektivitas dan kurangnya toleransi
Banyak peserta mengenakan pakaian yang tidak rapi, sepatu sobek, berbau aneh, dan tampak berenang. Visi ini tidak banyak berubah di hari-hari berikutnya. Aneh bagi saya untuk melihatnya.

Di malam hari saya berjalan di sekitar Kopenhagen.



Kota yang menyenangkan di tepi laut yang dingin, Peter ingat sedikit. Mereka berlebihan dengan sepeda, tetapi Anda dapat memaafkan segalanya untuk restoran ikan. Sangat enak.

Dalam tiga hari pertama konferensi, laporan disampaikan di aula untuk 500 orang (ada 377 peserta). Secara paralel, ada bengkel di aula terpisah . Sebagian besar laporan direkam dalam video, Anda dapat menontonnya di YouTube . Tidak ada siaran lokakarya. Daftar dan deskripsi laporan dan lokakarya di sini . SEMUA lokakarya, tanpa kecuali, dipersiapkan dengan sangat buruk, sebagaimana dicatat oleh peserta lain.

Selama istirahat banyak makanan dan kopi ditawarkan. Dalam hal ini, konferensi dipersiapkan dengan baik. Sponsor berdiri, sebagian besar SDM, diam-diam berdiri di lobi. Saya tertarik mengobrol dengan headhunter Skandinavia.

Hari pertama


Membuka kuliah tentang situasi dengan DjangoProject


Secara singkat: bantu siapa yang bisa.



Workshop GraphQL


JSON untuk yang malas. Hidup tidak akan menjadi lebih baik jika semua orang mulai menggunakan notasi kueri yang berbeda.

Hidup lebih bahagia


Django REST Wrapper, mulailah menulis 4 baris kode alih-alih 6.

Lokakarya tentang pindah ke versi baru kode tanpa menghentikan server


Kisah operasi jantung sepuluh bulan dengan kode 100 model. Proyek ini dibuat tiga kali:

  1. Dengan model lama.
  2. Dengan model lama dan baru dan kemungkinan beralih online.
  3. Tanpa model dan sakelar lama.

Panjang dan mahal.

Karena lokakarya ini, saya melewatkan tiga kuliah, dua berbicara dengan baik, saya akan melihat dalam catatan:

  • 750.000 permintaan tarik.
  • Django web-security-header.

Setelah istirahat dengan tangki kopi berikutnya ada kuliah tentang DJANGO-ORM . Speaker - Sigurd Ljodal. Ini adalah pengembang ORM saat ini, kegiatannya dapat dilihat di repositori Django.



Laporan itu bermanfaat, tetapi itu membuat saya kesal. Di satu sisi, ORM-Django baru telah matang banyak. Sigurd, di sisi lain, menggunakan fitur queryset.query tidak terdokumentasi dalam contohnya. Dalam percakapan berikutnya dengan Sigurd, saya tersadar bahwa dia, seperti kebanyakan pengembang Django, tidak benar-benar tahu metode queryset.query .

"Mengapa kamu menggunakannya dalam contoh!" Saya bertanya. "Yah ... seperti itu ..." jawab Sigurd.

Setelah semua laporan, ada pembicaraan kilat. Laporan lima menit untuk mereka yang secara spontan ingin berbicara. "Petir" sebagian besar menarik, tetapi lima menit tidak cukup. Tujuan pembicara adalah untuk menarik, dan kemudian orang dapat bertanya.

Beberapa truk bir dan percakapan panjang setelah pembicaraan kilat ... Hari pertama berakhir.

Hari kedua


Workshop: Bootstrap Django


Itu tidak berhasil.

Pengenalan gambar, pembelajaran mesin dengan Django


Tidak ada pelatihan, penggunaan sumber daya eksternal, tiang tembok dalam pengakuan, gambar lucu dalam contoh. Tidak ada yang lain selain kesenangan.

Workshop Pengenalan Gambar


Semuanya berfungsi, dan gambarnya ditemukan di antara 10 lainnya. Tetapi kecepatan pekerjaan mencoret segalanya. 20 detik untuk persiapan, 30-40 detik untuk pencarian. Saya berpikir: satu kali pencarian di proyek kami untuk gambar akan memakan waktu bertahun-tahun. Dan kami memiliki puluhan ribu permintaan seperti itu per hari. Solusi yang diusulkan tidak cocok untuk saya.

Pengujian perubahan visual


Pekerja front-end mungkin membantu.

SQL-Alkimia vs Django-ORM


Speaker Gleb dari DjangoStars. Saya setuju dengan ide itu, tetapi saya masih akan menerapkan beberapa hal melalui metode DJANGO-ORM. Hal utama yang saya lihat di mana dimungkinkan untuk menerapkan alkimia dalam proyek saya.



Lokakarya: jalur permintaan / respons penuh melalui pipa makanan Django


Itu berguna untuk menyegarkan pengetahuan. Pengembang Django, ingat: yang Anda lakukan hanyalah mengonfigurasi aplikasi WSGI.

Lalu saya mendapat ide untuk berbicara tentang "kilat". Saya membuat presentasi dan melewatkan beberapa laporan.

Laporan Dokumentasi Proyek Ilahi


Dari kepala tim dokumentasi RedHat.



Saya melompat untuk berterima kasih kepada pembicara. Dia dengan jelas menjelaskan mengapa saya harus berhenti dan mulai mendokumentasikan proyek saya. Pada saat bersyukur, saya menyentuh lengannya. Apa yang dimulai di sini !!! Ini adalah rubah kutub. Saya pikir mereka akan memenjarakan saya. Semua biaya penalti verbal untuk perilaku yang tidak pantas dalam kaitannya dengan peserta lain dalam konferensi.

Pentadani dengan ZAP


Aplikasi akan mencoba semua metode yang dikenal untuk memecahkan situs yang ditentukan.



Saya segera ingin mencoba meretas proyek saya.

Petir lebih berguna daripada pada hari pertama.

Alexander (DjangoStars) berbicara tentang pengaturan opsi penyimpanan




Wrapper Story untuk Model Fields


Vrapper memonitor jenis nilai yang dikembalikan.

Laporkan tentang menginstal bertopik bukannya menampilkan data klien pribadi


Berguna pada tahap pengembangan, pengujian dan penebangan. Di era undang-undang perlindungan data universal, patut dipertimbangkan. Sayangnya, penulis tidak menjawab mengapa ia menemukan kembali dekorator @sensitive_variables . Tampaknya dia sama sekali tidak membaca dokumentasi.

Laporkan penggunaan variabel dengan cakupan dalam satu utas


Saya telah menggunakan solusi ini untuk waktu yang lama. Saya hanya bisa mengatakan bahwa penggunaan variabel global di Django adalah karena kurangnya keterampilan dan kurangnya pengetahuan tentang arsitektur.

Setelah dua hari konferensi, saya kecewa: beberapa laporan bermanfaat dalam tiga hari. Sangat sedikit tentang Django, sangat banyak tentang solusi asing dan tidak perlu. WTF ??? Dan bahkan Kopenhagen tidak meyakinkan saya.



Air di kanal-kanal itu bersih. Terlihat di bagian bawah. Apakah Anda melihat sesuatu di sana juga?


Hari ketiga yang brilian


Hari ini melunasi semua penderitaan, menghilangkan keraguan dan membawa kesedihan lebih. Saran saya adalah mempelajari semua yang Anda temukan tentang laporan hari ketiga. Suntikan pengetahuan yang begitu keren jarang ditemukan.

Laporan Pembunuhan Victoria


Gadis itu mengatakan pada jari alasan hukum tentang perlindungan data pengguna. Saya mengerti alasan yang mendasari munculnya hukum semacam itu. Masalah dengan perlindungan data, serta masalah dengan isolasi listrik, dapat secara tidak sengaja membunuh seseorang.

Menggunakan GeoDjango dengan Contoh


Dari penulis dokumentasi GeoDjango. Kecantikan



Saya sudah merencanakannya di proyek. Sekarang saya tahu cara mengimplementasikan ini.

Elastic Group Architect tentang produk perangkat lunak perusahaan


Ini termasuk elasticsearch.



Saya menyukai contoh bagaimana menanamkan grafik aktivitas pengguna di panel admin Django.

Siklus penuh membuat bidang model Anda sendiri




Saya menyukainya: Saya memiliki beberapa bidang saya, tetapi saya kehilangan banyak dalam proses pembuatannya.

Sistem Plugin Django


Plugin menyala dan mati dengan cepat, memeriksa untuk dimasukkan melalui ... sinyal. Solusi terlalu eksotis untuk digunakan. Setelah naik saus "lihat bagaimana lagi yang bisa Anda lakukan."

Kemudian saya berpidato tentang elasticsearch dan pergi ke bengkel. Lalu saya ketinggalan dua laporan dan kehilangan waktu.

Tetapi apa yang terjadi setelahnya dapat diceritakan berulang kali dalam warna. Setiap kali pemahaman yang lebih dalam tentang esensi dari apa yang didengar datang.

Mendesain Ulang Proyek Django Anda


Cepat atau lambat, pengembang menemukan rekomendasi: Model Fat, Tampilan kurus, Templat bodoh (templat bodoh, tampilan tipis, model tebal).



Saya ObjectManager sendiri: memilih objek hanya dalam metode ObjectManager dan dalam metode QuerySet yang dihasilkan oleh ObjectManager .

Hanya sedikit orang yang meninggalkan redistribusi kode ini. Laporan tersebut berisi contoh-contoh tentang penghapusan maksimum dependensi dan abstraksi lengkap dari logika bisnis.



Ini adalah pelajaran yang solid bagi para pengikut gaya kanonik pemisahan kode. Resistensi terhadap perubahan. Kemandirian keputusan ... Semua itu harus dalam produk yang berkualitas. Di akhir laporan, disediakan literatur yang akan membantu mewujudkan hal ini.



Sangat membantu.

Lalu ada pidato dan penutupan bagian resmi DjangoCon.

Dan kemudian ada laporan yang menjawab semua pertanyaan saya dan mengkonfirmasi perasaan saya.

Garis Besar Desain Ulang Django


Pembicara - Tom Christie, pencipta kerangka Django REST . Dalam slide, Tom memberi tahu dan menunjukkan dalam contoh kode mengapa Django (dan, sebagai akibatnya, DRF) tidak lagi memiliki peluang pengembangan. Ya, Anda dapat memperbaiki bug, ya Anda dapat menambahkan flicker atau meningkatkan ORM. Bentuk umum Django masih tetap tidak berubah.



Ketika Tom berkata, "Saya sama sekali tidak berpikir bahwa mungkin untuk membangun sistem yang sangat cepat dengan Python," orang-orang terdiam.



Tom kemudian menunjukkan contoh kode tentang bagaimana menyelesaikan masalah asinkron dalam proyek Django dan masalah apa yang akan terjadi.



Untuk ORM asinkron, Ariadne dan driver DB asinkron yang belum selesai disebutkan. Untuk template Jinja dan mengulang kode template.



Laporan tersebut dengan jelas menguraikan bahwa untuk membuat kerangka kerja yang siap untuk teknologi modern dari Django, Anda perlu menulis ulang semua yang ada di Django. Dan lebih disukai dalam bahasa lain. Jelas bahwa Django berada di jalan buntu, cantik, nyaman, dan ketinggalan jaman 10 tahun.

Saya sangat berterima kasih kepada Tom bahwa dia tidak meninggalkan saya, dan menunjukkan pilihan untuk mengembangkan di mana
Pilihannya adalah bagaimana cara memotong Django lebih lanjut, jika Anda belum siap untuk melemparkan kuda mati ini. Perpustakaan, cara mengintegrasikan, cara menguji. Starlet, SQLAlchemy, Jinja-templates, dll., Lihat slide untuk lebih jelasnya.

Opsi apa yang harus dilakukan selanjutnya bagi mereka yang ingin turun. Tidak ada solusi "seperti di Django". Ada ulasan analog, kecepatan, kompleksitas, prospek yang ada. Saya sudah mencoba GO yang disebutkan, saya hampir menyukainya.

Pada titik terang, saya memberanikan diri untuk menelepon untuk memotong Django lebih jauh. Hanya setelah pidato Tom Christie - panggilan itu terdengar sangat tidak meyakinkan.



Dua hari berikutnya terdiri dari sprint . Mereka yang tetap bekerja dengan Django: mereka membuka pesan kesalahan dan memperbaikinya.



Setelah pengeditan berhasil, Anda bisa berlari dan menggedor gong ke seluruh aula. Frekuensi booming adalah setiap 5-7 menit.

Untuk bersenang-senang, apa yang terjadi pada sprint
Saya melihat salah satu suntingan yang disetujui: memperbaiki kesalahan dengan mengubah angka menjadi string. ( # 30363 - Jangan gunakan notasi eksponensial untuk desimal kecil ) file Django / utils / numberformat.py
Dan saya merasa sangat sedih:
  • Hasil edit berisi kesalahan tipe kembali.
  • Dua rekursi yang tidak perlu telah ditambahkan ke kode.
  • Penulis tampaknya tidak mengerti cara kerja Decimal .
  • Tes tidak memeriksa semua kasus batas dan tipe data yang dikembalikan.

Saya menulis ulang kode dan pergi untuk menyetujui pengeditan sebelumnya, dan berkata: Anda memiliki kesalahan di sini! Dan dia memilih strategi yang salah: programmer tidak begitu suka ketika seseorang berbicara tentang kesalahan mereka, terutama tentang yang diperiksa dan disetujui.

Akan lebih baik untuk menampilkan laporan bug. Tentu saja, mereka menjawab saya bahwa seharusnya begitu. Tidak ada yang terlibat dalam pemeriksaan jenis dalam python dan, secara umum, python adalah bahasa tanpa pengetikan yang ketat. Dan karena itu, nak, kamu pergi ke hutan, ada banyak hal tanpa kamu. Saya tidak mengharapkan sikap buta huruf untuk mengedit kode, dan kekebalan untuk menunjukkan kesalahan.

Dari sini muncul satu masalah lagi, mengapa Django adalah apa adanya: seringkali orang memperbaiki kesalahan yang tidak memahami algoritma atau ide. Itulah sebabnya kesalahan baru muncul, metode kurva seperti QuerySet.as_manager , GROUP_BY tidak dapat GROUP_BY dalam permintaan dengan base_sort=True (tidak memeriksa, dapat memperbaikinya), atau solusi tidak logis, seperti dengan formet dan AdminModelForm di AdminModelForm .

Selain sprint, ada beberapa lokakarya, saya menyukai tayangan ulang tentang ZAP. Kami berhasil mendengus situs, dan lubang keamanan ditemukan.

Dan di Kopenhagen, sementara itu, cuaca sangat dingin dan cerah.


Saya mengunjungi Christiania, berjalan melewati kanal-kanal dan memandangi putri duyung kecil.







Saya meninggalkan rumah dalam pikiran. Saya ingin melihat fitur-fitur baru di Django ... tetapi saya menemukannya di tempat lain. Saya ingin menyampaikan bahwa ada solusi cepat dan benar ... dan gagal (Saya akan memberi tahu Anda tentang bug). Saya ingin memasuki dunia profesional ... tetapi ada sesuatu yang salah yang saya bayangkan. Pengetahuan membawa kesedihan. Hal utama adalah saya tahu ke mana harus pergi selanjutnya.



PS Keputusan tentang proyek saya dibuat saat winePad tetap di Django.
PPS Saya terbuka untuk membahas konferensi dan Django. Tanyakan apakah tidak jelas.
PPPS Dari 20 Juni 2019 di GeekBrains, kursus Django saya dimulai di Departemen Pengembangan Python, saya pasti akan menyebutkan poin-poin penting yang saya pelajari di konferensi.

Source: https://habr.com/ru/post/id448700/


All Articles