Mengapa Django dipilih di Tinkoff Magazine

Kami di "Python Junior Podcast" - podcast bagi mereka yang ingin lebih memahami Python - mencoba berkontribusi dalam segala hal dengan keinginan untuk belajar. Kami mengundang para ahli, mengajukan pertanyaan rumit, mendapatkan kiat tentang apa dan bagaimana belajar untuk pengembang Python pemula, atau untuk pemula, atau tidak Python - apa pun bisa terjadi.

Hari ini kami menyampaikan kepada Anda versi teks percakapan kami dengan Arseny Gabdullin, pengembang majalah Tinkoff, tentang topik laporannya di masa depan tentang Moscow Python Conf ++ , tetapi tanpa spoiler.

Meskipun saya selalu mengatakan bahwa orang pergi ke konferensi, bukan untuk belajar, ada banyak manfaatnya bagi mereka. Seperti di podcast kami.



Percakapan yang terlibat:

  • Grigory Petrov, penginjil dari MoscowPython, kepala komite program Moscow Python Conf ++;
  • Arseny Gabdullin, pengembang majalah Tinkoff, pembicara di MoscowPython Conf ++;
  • Zlata Obukhovskaya, ketua tim Nvidia, penginjil MoscowPython, anggota komite program Moscow Python Conf ++;
  • Valentin Dombrovsky, co-organizer dan co-founder dari MoscowPython,

Valentin Dombrovsky: Arseny, laporan Anda tanpa spoiler - apa yang akan Anda sampaikan kepada kami di konferensi?

Bagaimana Arseny menjadi pengembang di TJ


Arseny Gabdullin: Faktanya, kita akan berbicara bersama dengan mitra Vadim Goncharov, kepala pengembangan kita. Itu dari sisi bisnis, dan saya dari sisi pengembangan. Kita akan berbicara tentang bagaimana melakukan proyek-proyek media menggunakan Python, apa manfaatnya bagi bisnis dan media, bagaimana kita pindah dari WordPress ke Django, apa yang kita lakukan sekarang, masalah dan kesuksesan apa yang kita miliki, dan apa rencana kita untuk masa depan.

Valentin Dombrovsky: Mari kita mundur satu langkah. Katakan padaku apa yang kamu lakukan, dan bagaimana kamu berakhir di organisasi yang luar biasa seperti Tinkoff? Apa yang membawamu ke sana? Jalur profesional Anda?

Arseny Gabdullin: Saya tinggal dan belajar sebagai sosiolog di St. Petersburg. Saya memiliki spesialisasi yang aneh "Informatika-sosiolog" - tampaknya seorang peneliti, tetapi entah bagaimana terhubung dengan pengembangan dan dengan sistem informasi untuk penelitian sosial. Untuk sementara saya membuat basis data dan sistem informasi untuk mendukung studi kasus. Dalam sosiologi, Python sering digunakan. Pada saat yang sama, saya membuat semua jenis situs di WordPress - itu terjadi.

Kolektif terkait WordPress keluar


Grigory Petrov: Tidak perlu malu. Segala sesuatu terjadi dalam hidup.

Zlata Obukhovskaya: Ya, semuanya terjadi.

Valentin Dombrovsky: Nah, sekarang mereka akan kembali mengatakan bahwa kita meracuni spesialis PHP.

Zlata Obukhovskaya: Grisha, apakah Anda membuat situs WordPress?

Grigory Petrov: Tentu saja!

Zlata Obukhovskaya: Dan saya membuat situs web di WordPress.

Valentin Dombrowski: Dan saya melakukan situs WordPress. Saya bahkan tidak mengembangkan Python, tetapi saya membuat situs web di WordPress.

Arseny Gabdullin: Ya, saya masih muda, saya butuh uang. Kemudian di beberapa titik saya dipanggil ke tim outsourcing yang melakukan TJ. Kemudian kami tidak memiliki pengembang di negara bagian, semuanya jauh. Saya mulai dengan beberapa tugas kecil, kemudian menjadi semakin banyak. Kemudian pada akhirnya mereka mengatakan kepada saya - apakah Anda ingin bergabung dengan tim, ke negara bagian, ke Moskow? Saya berpikir dan berdagang Petersburg untuk Majalah Tinkoff.

Valentin Dombrowski: Lalu itu WordPress?

Arseny Gabdullin: Ya.

Valentin Dombrovsky: Artinya, migrasi Anda ke Python terjadi langsung dalam proses kerja?

Arseny Gabdullin: Saya menulis sebelumnya dengan Python, tetapi pada dasarnya mereka adalah sistem sosiologis untuk sains, dan pengembangannya ada di WordPress.

Pada 2016, T - F hanyalah tema WordPress. Kami memiliki beberapa artikel, dan itu adalah solusi yang sangat cocok. Sampai titik tertentu, WordPress sudah cukup untuk mata. Kemudian, pada akhir 2016, saya menyarankan untuk mencoba pindah ke Django, karena sejumlah masalah telah menumpuk yang perlu ditangani.

Lakukan percobaan dengan pengeras suara di Moscow Python Conf ++ terdekat


Grigory Petrov: Ngomong-ngomong, tentu saja, ini tidak lazim dilakukan, pertama-tama Anda harus mengadakan konferensi, kemudian dua bulan kemudian untuk mengumpulkan umpan balik dari para pembicara. Nuh tidak bisa menahannya. Pada konferensi ini, kami melakukan percobaan untuk pertama kalinya - kami sedang mempersiapkan pembicara dari awal . Kami tidak hanya mengundang Arseny bersama Vadim. Pertama, mereka berpartisipasi untuk pertama kalinya dalam percobaan ini. Dan ini akan menjadi pertama kalinya selama keberadaan sistem saya, ketika kami mengadaptasinya untuk kisah dua pembicara pada saat yang sama.

Tahukah Anda seperti apa kisah dua pembicara biasanya? Sangat menyedihkan: satu orang mengatakan, memberi tahu, memberi tahu, yang kedua dengan ekspresi sedih di wajahnya berdiri di yang pertama di belakang punggungnya. Kemudian mereka hampir tidak berganti tempat.

Semuanya akan salah dengan kita. Arseny dan Vadim akan dengan mulus mentransmisikan cerita dari satu ke yang lain. Sekarang semuanya sudah siap, kami bertiga sudah menjalankan kinerja. Itu menyenangkan.
Arseny, bagikan kesan pertama Anda tentang workshop kami. Mereka, saya pikir, sangat berharga sekarang, karena Anda dan Vadim belum tampil. Anda berada di tengah perjalanan, tetapi laporannya sudah siap. Bagaimana Anda menyukai bengkel? Seberapa gila, rumit, tidak biasa ini - bagaimana hal ini cocok dengan pengalaman Anda sebelumnya?

Arseny Gabdullin: Kami sangat menikmati persiapan dengan Vadim. Setiap kali kami menutup laptop, kami berpikir: "Keren sekali!" Pendekatan yang sangat keren dalam porsi kecil, tetapi teratur. Setiap kali Anda menyadari bahwa Anda telah membuat beberapa kemajuan, tetapi secara keseluruhan perjalanan jauh telah ditempuh.

Sistem yang menarik adalah prinsip yang tampaknya sederhana di jantung pidato, tetapi pada saat yang sama Anda segera memahami bagaimana semuanya terhubung dan bagaimana itu akan bekerja di masa depan. Tentu saja, saya tidak pernah tampil bersama dengan seseorang di atas panggung. Sangat menarik untuk dicoba - Saya tidak tahu apa yang akan terjadi. Semoga semuanya berjalan lancar.

Grigory Petrov: Ini akan menjadi baik, sistem tidak gagal. Sangat senang mendengarnya. Selain Arseny dan Vadim, kami memiliki sebelas laporan lagi dalam persiapan. Sebagian besar dari dua bulan sebelum konferensi selesai. Itu artinya saya reasuradur paranoid - sebulan sebelum konferensi, dan laporannya sudah siap.

Valentin Dombrovsky: Kami hanya mendapat waktu setengah tahun di antara konferensi, Moscow Python Conf ++ terakhir adalah pada bulan Oktober.

Grigory Petrov: Hari ini kami memiliki semacam smalltalk dengan pembicara untuk audiens kami.
Podcast Python Junior diposisikan untuk pengembang pemula, meskipun saya akan memberitahu Anda sebuah rahasia bahwa tidak hanya junior yang mendengarkan kami.

Arseny Gabdullin: Menurut rumor, Guido Van Rossum terkadang terlihat.

Valentin Dombrowski: Teks dalam bahasa Inggris termasuk - sangat bagus!

Apakah Django cocok sebagai kerangka media online pada tahun 2019


Grigory Petrov: Katakan padaku, Arseny, dari pengalaman Anda - untuk pengembang pemula - seberapa puas Anda dengan Django. Memang, pada prinsipnya, Django awalnya diposisikan sebagai kerangka kerja untuk bisnis penerbitan, yaitu majalah. Tapi itu sudah lama sekali. Web telah banyak berubah sejak saat itu, dan Anda baru-baru ini mulai menggunakan Django untuk Tinkoff Magazine. Katakan padaku, apakah kamu kecewa? Seperti apa Django untuk sistem penerbitan pada tahun 2016 dan selanjutnya? Apa pendapat pribadi Anda?

Valentin Dombrovsky: Pada saat yang sama, tanpa spoiler! Nah, kalau hanya sedikit.

Arseny Gabdullin: Tahun lalu kami bekerja di DevOps, kami memiliki tim insinyur hebat yang membuat kami infrastruktur super secara langsung. Mereka umumnya cukup skeptis terhadap Python, dan khususnya Django. Kami memiliki ping pong yang konstan.

Zlata Obukhovskaya: Mereka tidak perlu membuat majalah sendiri.

Arseny Gabdullin: Ya, omong-omong. Mereka terbiasa melakukan layanan perusahaan, sekarang mereka melakukan segalanya di Node.js. Mereka hanya terbiasa mengangkat semuanya hingga Node.js, tetapi saya telah meyakinkan banyak orang bahwa Anda dapat melakukannya dengan baik dalam Python dan Django. Tapi, saya tekankan, ada banyak ide tentang memblokir permintaan - lagipula, inilah sifat sinkron dari Django, yang tidak bisa diulang . Ini adalah puncaknya.

Mengenai bekerja dengan ORM, saya percaya bahwa ini untuk proyek-proyek besar, di mana ada banyak hubungan, di mana semuanya berubah dan Anda perlu memiliki kerangka kerja di mana domain data akan ditata, Django sangat nyaman. Kami sekarang beralih ke menggunakan Django sebagai API, yang memang dimaksudkan untuk, yaitu, untuk mendistribusikan data.

Berapa lama proyek konten berjalan baik di Django REST Framework?


Zlata Obukhovskaya: Anda menggunakan DRF, Anda perlu membicarakannya.

Arseniy Gabdullin: Ya, DRF adalah standar de facto . Ada model Django, di atas DRF - kebahagiaan (sampai titik tertentu).

Zlata Obukhovskaya: Sampai titik apa?

Arseny Gabdullin: Sampai saat ketika hubungan bersarang yang rumit dimulai. Dalam jurnal kami, sistem publikasi itu kompleks, tetapi agak linier. Kami melakukan layanan lain untuk bank di Django - Tinkoff Help, yang tumbuh dari majalah. Semuanya jauh lebih rumit di sana, karena desainer dan produk telah datang dengan hierarki produk dan bagian yang sangat kompleks. Di beberapa titik, kami menemukan fakta bahwa sulit untuk diterapkan di REST, sulit untuk diserialisasi dan sulit untuk memastikan kinerja. Anda bisa, tetapi Anda perlu menghabiskan banyak waktu dan menghasilkan langkah-langkah yang tidak jelas untuk optimasi.

Zlata Obukhovskaya: Yaitu, segera setelah tiga langkah bergabung dimulai - oke, bukan tiga langkah bergabung, tetapi sesuatu yang lebih dalam, mungkin sudah sulit.

Arseny Gabdullin: Tepat.

Zlata Obukhovskaya: Ternyata bantuan proyek Tinkoff akan lebih baik untuk menulis ulang ke teknologi lain. Ada ide apa yang bisa digunakan? Dari sudut pandang pribadi Anda?

Valentin Dombrovsky: Perkenalkan kami sedikit, apa itu Bantuan Tinkoff?

Arseniy Gabdullin: Ini adalah layanan perbankan murni - informasi tentang produk bank. Tetapi untuk waktu yang lama dia tinggal di dalam sebuah majalah. Itu agak absurd, karena dia tidak ada hubungannya dengan majalah. Tetapi kami sudah memiliki platform penerbitan yang berfungsi, menetapkan proses produksi, dan melakukan layanan terpisah pada waktu itu tidak pada tempatnya dan di luar waktu.

Valentin Dombrovsky: Yaitu, secara de facto di Tinkoff mereka menggabungkan, secara kasar, proyek konten: majalah dan bantuan dibuat pada platform yang sama.

Arseny Gabdullin: Itu adalah eksperimen. Kami melakukan Bantuan seperti bagian kecil di majalah, dan kemudian tumbuh, dan menjadi jelas bahwa dia sudah tinggal di majalah. Kemudian kami membawanya ke layanan terpisah.

Valentin Dombrovsky: Dan ke platform teknis baru?

Jika bukan Django, lalu apa


Zlata Obukhovskaya: Saya punya pertanyaan: jika tidak Django - lalu apa? Apa alternatifnya?

Arseny Gabdullin: Kita semua mencintai Node.js, kami dibujuk untuk melakukan Node.js. Kami menolak, tidak ada keinginan untuk bekerja dengan data di Node.js. Ya, tentu saja ada kinerja, asinkron, dan banyak lagi. Tapi mari kita tetap akan menata data dalam model.

Zlata Obukhovskaya: Lalu Python asinkron ternyata?

Arseny Gabdullin: Ya, jika Anda ingin menulis dengan Python, saya pikir ini secara langsung merupakan penyelamatan.

Valentin Dombrowski: Di sini kemudian pertanyaannya adalah - Node.js versus Python - siapa yang akan mengalahkan siapa. Jika kita berbicara tentang kebiasaan orang, ini adalah satu hal, tetapi masih dalam usecase, di mana yang terbaik? Grisha, Node.js atau Asynchronous Python?

Grigory Petrov: Hanya Anda ...

Zlata Obukhovskaya: Mereka membuka kotak Pandora secara praktis!

Tentang latar belakang perkembangan sinkron dan asinkron dalam Python


Grigory Petrov: Saya telah mengatakan ini beberapa kali dan akan mengatakannya, karena ini adalah prinsip dasar yang disiarkan dengan sangat baik dari podcast PythonJunior - halo, jones dan semua orang!

Pemrograman asinkron secara umum - Event Loop di Python 3.7 dan di Node.js 11 - sangat mirip.

Tetapi ada lapisan sejarah. Node.js beralih dari JavaScript, yang beralih dari browser. Pada prinsipnya, browser tidak mampu memblokir operasi di JS, karena kalau tidak halaman akan diblokir, itu tidak akan bergulir.

Kami tidak dapat mengizinkan JavaScript untuk memblokir gulir halaman kami yang ditampilkan oleh browser. Karena itu, JavaScript pada awalnya adalah panggilan balik. Kami tidak dapat melakukan sesuatu di sana segera, misalnya, membuka beberapa penyimpanan lokal atau database. Kita bisa memulai operasi, menentukan panggilan balik, dan setelah beberapa saat, ketika browser melakukan operasi, panggilan balik dipanggil. Selalu begitu.

Ketika mereka datang dengan Node.js, paradigma ini bahwa semuanya asinkron adalah callback yang mulus berubah menjadi Node.js dan bertindak sangat baik dalam paradigma asinkron ketika ada satu utas, dan ada banyak, banyak hal tingkat rendah di bawah kap saat itu dari waktu ke waktu panggilan balik ke laporan utas ini.

Ketika setelah bertahun-tahun async dan menunggu tiba di JavaScript, sama seperti di Python, teka-teki itu terjadi. Sekarang aplikasi Node.js terlihat seperti async-coroutine, dan di dalam menunggu, menunggu, menunggu semua yang Anda bisa.

Python salah. Python awalnya bukan embeddable, tetapi bahasa aplikasi di mana lengkap, sistem yang dijalankan pengguna dibuat: penghancur nomor, server, dll. Ketika semua sistem ini ingin membuka file, itu adalah operasi pemblokiran. Python secara historis karena GIL nyaman untuk berkembang biak dan dikalikan dengan utas.

Jika kami di Python ingin melakukan sesuatu secara paralel, kami mengambil kumpulan utas dan dikalikan dengan utas - ada kebahagiaan! Lalu datanglah Event Loop.

Apa yang Python menyerah pada paradigma utas demi Event Loop?


Mengapa mereka mulai meninggalkan paradigma aliran menuju EventLoop?

Jauh lebih mudah bagi pengembang untuk menyembunyikan semua mesin pemblokiran di bawah tenda dan hanya mengelola hasil operasi asinkron dalam satu utas.

Ini benar-benar nyaman - jauh lebih nyaman daripada meluncurkan seribu utas dan menunggu mereka secara bersamaan. Plus, stream itu sendiri tidak gratis, meluncurkannya, beralih di antara mereka untuk sistem operasi adalah beban.

Ketika Python pindah dari utas ke Event Loop, ternyata semua pustaka yang ada memblokir. Di Node.js, JavaScript, semua pustaka yang ada awalnya non-pemblokiran, sementara di Python mereka awalnya memblokir. Oleh karena itu, asyncio yang luar biasa ini pada dasarnya memberikan dua primitif yang bisa kita tunggu: operasi jaringan dan timer.

Bekerja dengan file, database, pipa, penghancur angka, NumPy, mengubah ukuran gambar - semua ini di pustaka sinkron lama. Dan untuk menggunakannya, kita perlu membuat thread pool sendiri, memulai sendiri, membuat masa depan, melemparkannya kembali ke aliran dengan Event Loop - secara umum, itu adalah hal yang menyedihkan. Pustaka baru dan segar seperti asyncpg mencoba menyelesaikannya.

Asynchronous Python masih sangat muda.

Dia tidak memiliki warisan yang begitu sukses seperti Node.js, dan karena itu dia belum matang. Namun, bahasanya sendiri sangat kuat. Oleh karena itu, jika ada tim pengembang Python, maka meskipun memiliki batasan pemuda pemrograman async di Python, pengembang Python yang berpengalaman akan dapat membuat solusi produktif yang tidak akan kalah dengan kecepatan Node.js. Tetapi pada saat yang sama, karena fakta bahwa Python tahu lebih baik daripada Node.js, solusinya akan lebih baik dan dikembangkan lebih cepat, kode lebih bersih, dukungan lebih murah.

Apakah sulit untuk menulis solusi asinkron dengan Python dari awal


Zlata Obukhovskaya: Faktanya, tidak ada yang melarang menulis driver asinkron Anda sendiri untuk repositori baru yang modis.

Grigory Petrov: Ya untuk Anda.

Zlata Obukhovskaya: Dan siapa yang tidak?

Grigory Petrov: Setiap pengembang lebih rendah dari pengembang senior. Solusi asinkron sangat sulit untuk ditulis. Mereka gagal di tempat yang tak terduga. Arseny, mengatakan sulit untuk melakukan hal-hal ini.

Arseny Gabdullin: Asynchrony? Tidak biasa

Zlata Obukhovskaya: Apakah Anda menggunakan asinkron di suatu tempat di Tinkoff? Mungkin beberapa orang saat makan malam menceritakan kisah sedih atau, sebaliknya, lucu tentang menggunakan asinkron?

Arseny Gabdullin: Sebagian besar layanan kami didukung oleh Node.js. Di sana, asynchrony tertanam dalam DNA. Kami juga memiliki, misalnya, layanan suara, yang banyak di antaranya bekerja dengan Python. Sejujurnya, saya tidak tahu bagaimana sebenarnya mereka mengimplementasikan semua ini, tapi saya pikir asynchrony dicapai melalui multithreading. Secara umum, dalam API yang sangat dimuat, ini bukan Node.js lagi, tapi setidaknya beberapa Scala. Dan mereka melakukan beban kerja yang sangat tinggi di C ++, tapi sekali lagi, ditambah multi-threading.

Tentang alat pemrograman yang sempurna


Grigory Petrov: Ada satu hal yang ingin saya bicarakan. Kisah indah bahwa ada alat yang ideal untuk menyelesaikan masalah, sayangnya, hanyalah dongeng. Selama bertahun-tahun, menggunakan bahasa yang sama, kerangka kerja, pengembang mengembangkan banyak pola. Pola-pola ini sangat memperluas kekuatannya sebagai pengembang, seberapa banyak ia dapat menjaga objek tetap fokus. Ketika seorang pemain catur belajar bermain catur selama bertahun-tahun, setelah bertahun-tahun ia mulai melihat papan sebagai kombinasi dari potongan-potongan yang akrab dan akrab.

Jika, misalnya, pengembang Python telah memprogram dalam Python selama 5-10 tahun, ia mungkin pengembang yang berpengalaman, berbentuk T, tahu Go, Node.js, dll. Tetapi karena fakta bahwa ia memiliki pengalaman hebat dalam menggunakan Python, ia secara khusus dan tim Python akan menulis layanan lebih cepat dan lebih cepat, yang akan lebih mudah untuk dikembangkan dan dipelihara daripada di Node.js dan bahkan di Go. Hanya karena alat yang sudah dikenal selama bertahun-tahun memberikan bonus besar untuk semua sisi penulisan kode.

Tentu saja, ada kasus yang merosot - tentu saja. Tetapi dalam kasus umum, untuk sebagian besar tugas ini memang demikian. Atau tidak? Berdebat dengan saya.

Zlata Obukhovskaya: Ini bisa diperdebatkan, tentu saja, karena jika pengembang memiliki kaki panjang dari huruf T, tidak ada yang mencegahnya dari menulis kode yang terlalu jenuh dengan fitur-fitur khusus dari bahasa, yang tidak akan ada yang mengerti nanti. Tapi dia mengerti - dia keren!

Grigory Petrov: Mereka mengatakan bahwa pengembang yang berpengalaman, sebaliknya, menulis kode sederhana.

Zlata Obukhovskaya: Lain kali kami akan membawa beberapa pengembang berpengalaman dari berbagai teknologi ke studio, memberi Anda senjata, dan meninggalkannya selama satu jam.

Valentin Dombrovsky: Saya sarankan masing-masing dari mereka membaca kode yang lain dan melihat apa yang terjadi. Itu akan menjadi pertempuran!

Zlata Obukhovskaya: Mari selesaikan argumen filosofis ini dan kembali ke Django. Saya sangat tertarik dengan pendapat Arseny, tetapi bagaimana jika tidak Django? Tentang hal-hal asynchronous yang sarat muatan, kami sedikit memahami. Dan untuk tugas-tugas seperti membuat majalah, menerbitkan sistem media, adalah Django benar-benar solusi terbaik. Kenapa bukan Flask?

Valentin Dombrovsky: Apakah ini pilihan terbaik dari sudut pandang Anda, atau ada yang lain?

Arseny Gabdullin: Saya percaya bahwa Django adalah pilihan terbaik untuk media.

Valentin Dombrovsky: Apa saja pilihannya? Mungkin hal lain dipertimbangkan?

Arseny Gabdullin: Ada opsi untuk dilakukan di tumpukan bank, yaitu, gunakan praktik terbaik yang ada di area admin Tinkoff. Ada varian kerangka PHP karena kami memiliki PHP - untuk tetap dalam paradigma yang sama. Tidak ada pilihan yang lebih khusus. Tetapi kami ingin mempertahankan sirkuit kami, yaitu tidak terikat pada siklus pengembangan perbankan, karena masih memiliki karakteristik mereka sendiri.

Zlata Obukhovskaya: Yaitu, apakah Python dan media adalah Django?

Arseny Gabdullin: Saya kira begitu. ORM memecahkan .

Zlata Obukhovskaya: Tetapi ada juga ORM dan tidak terkait dengan Django.

Arseny Gabdullin: Tampaknya ya. SQLAlchemy, misalnya.

Valentin Dombrowski: PonyORM.

Zlata Obukhovskaya: Tapi peewee masih digunakan dalam produksi.

Arseny Gabdullin: Tapi tetap saja, Django awalnya dikembangkan, menurut saya, untuk proyek-proyek terstruktur yang sedemikian kompleks, terkait dengan data, dengan hubungan antara data, dan ini dibaca tepat dalam DNA model kami, dalam konstruksi logika.

Kekhususan pengembangan di bank


Grigory Petrov: Selebihnya kita akan belajar dari laporan. Mengambil kesempatan ini, saya juga ingin mengajukan pertanyaan yang tidak terkait dengan Python.

Dalam masyarakat kita, ada kecenderungan untuk meromantisasi institusi yang sangat diatur seperti, misalnya, pemerintah, kedokteran, bank: β€œBank ?! Uang itu ada di sana! Mungkin ada penembak senapan mesin di pintu masuk, sistem akses empat tingkat, mata Sauron dipasang di atap ”, dll. Bagi Anda, sebagai pengembang yang sebelumnya bekerja di bank dan kemudian mulai bekerja di bank, apakah ada kekhasan bekerja di bank?

Di sini, omong-omong, sangat beruntung bahwa Anda tidak bekerja pada inti keuangan yang diatur, tetapi pada layanan infrastruktur terkait. Jadi, di luar pengembangan inti, apakah pekerjaan di bank memiliki spesifik yang lucu, atau hanya perusahaan IT biasa, tetapi alih-alih suka di jejaring sosial, apakah kita beroperasi dengan uang?

: , - , IT- .

: vc.ru, , , , . , -, - .., . . .
IT- ?

: . , , . .

Moscow Python Conf ++


: , Moscow Python Conf ++ , , . ? ? ?

: β€” . , : Β« , , PostgreSQL 10 Β».

β€” - -, , . , , .

: ? , - , - , ?

: , . , , .

: , Django β€” !

: Django.

: , , Django β€” . .

: , .

: , 24 , Python Core Developer, , - . , .

: Moscow Python Conf++.

: Python- 5 . . , , . Ayo ikut!

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


All Articles