Bagaimana saya menyerah Ruby demi Python saat mengerjakan backend



Kami menerjemahkan artikel untuk Anda oleh Benoit Zen, pengembang perangkat lunak di Sqreen. Benoit bekerja pada layanan web backend dan baru-baru ini beralih dari Ruby ke Python.

Pada 2008, ketika saya masih belajar sebagai pengembang perangkat lunak, dua teman saya memutuskan untuk mendirikan sebuah perusahaan, menamakannya Feedbooks. Tujuan mereka adalah membuat buku elektronik berkualitas tinggi yang dapat ditemukan dan diunduh siapa pun dengan cepat (jika diinginkan, bagikan dengan teman). Proyek ini disajikan kepada mereka sebagai perpustakaan samizdat digital.

Situs web, yang akan menjadi wajah layanan, harus cepat, efisien, dan mudah dikelola. Sekitar waktu itu, video demo Ruby on Rails "Cara Membuat Blog dalam 15 Menit" muncul, setelah itu para pendiri memutuskan untuk bekerja dengannya.

Skillbox merekomendasikan: kursus praktis dua tahun, "Saya seorang Pengembang Web PRO . "

Kami mengingatkan Anda: untuk semua pembaca "Habr" - diskon 10.000 rubel saat mendaftar untuk kursus Skillbox apa pun menggunakan kode promo "Habr".


Beberapa minggu kemudian mereka membutuhkan bantuan, dan mereka menoleh ke saya.

Seperti banyak pengembang generasi saya, saya bekerja dengan PHP dan Mysql, terkadang bahkan menambahkan bagian saya ke CMS open source. Semuanya sangat akrab bagi saya dalam tugas, kecuali, pada kenyataannya, Ruby. Saya bahkan belum pernah mendengarnya (jangan lupa, kita berbicara tentang 2008, catatan oleh penerjemah). Secara umum, saya mulai bekerja dengan Ruby dan menghabiskan sepuluh tahun berikutnya dengan Ruby.

Kenapa Ruby?


Faktanya adalah bahwa ini adalah bahasa yang sangat ekspresif. Pembuat utamanya berangkat untuk membuat programmer senang ketika bekerja dengan Ruby. Dan dia berhasil. Hampir semua elemen di sini adalah objek. Mesin virtual Ruby menerjemahkan sintaks menjadi pernyataan nyata. Itu terus membaik, sehingga kode yang dihasilkan menjadi lebih baik dengan setiap versi baru. Ruby mudah untuk dianalisis, dimodifikasi, atau bahkan dibuat antarmuka khusus.

Pada intinya, Ruby on Rails adalah rangkaian DSL dan infrastruktur untuk membangun aplikasi web yang digerakkan oleh model dengan mudah. Hari ini sangat disesuaikan dan baik untuk membuat aplikasi di mana logika bisnis dan pemodelan akan memainkan peran penting.

Di perusahaan Sqreen saya, saya bekerja dengan Ruby di backend. Tapi kemudian, cukup cepat, keputusan datang untuk menggunakan Python.

Cinta Ruby, tetapi beralihlah ke Python, mengapa?


Pertama, backend kami adalah sekelompok layanan, beberapa di antaranya terbuka untuk dunia, beberapa tidak. Hal pertama yang dilihat klien adalah situs statis perusahaan yang dibuat menggunakan Jekyll. Kemudian bilah alat terbuka - ini adalah aplikasi Bereaksi dinamis. Panel bekerja dengan API khusus, kami menyebutnya "backend untuk antarmuka eksternal". Dia adalah yang utama kami.

Awalnya, diputuskan bahwa kami tidak akan menulis API dalam berbagai bahasa, karena kami ingin semuanya sesuai dengan logika dan model bisnis tertentu. Selain itu, pada awal perjalanan, kami menyadari bahwa setidaknya backend untuk agen harus mudah diukur untuk mendukung basis pelanggan yang berkembang.

Sayangnya, Rails terlalu lambat. Tentu saja, dia bukan satu-satunya, ada banyak microframes untuk Ruby, termasuk Sinatra yang terkenal.

Tapi kami masih memutuskan untuk memilih Python. Ada dua alasan utama. Pertama, panduan kami telah terbiasa dengannya, karena banyak produk yang sebelumnya dikembangkan dengan Python. Kedua, kami membutuhkan analisis data yang mendalam, yang tidak dilakukan dengan baik oleh Ruby. Dan pilihannya jelas.

Memulai dengan Python


Pada tahap ini, saya hampir tidak memiliki pengalaman dengan Python - sebelumnya saya menulis di atasnya hanya skrip kecil yang membantu keseluruhan implementasi proyek. Saya harus cepat menguasai dan mempercepat segala sesuatu dalam pengembangan API tempat kami bekerja. Untungnya, komponen dasar tidak bergantung pada bahasa yang Anda gunakan: HTTP / HTML / JSON / REST - semuanya tetap sama. Kemampuan aplikasi untuk berkomunikasi dengan web di tingkat yang lebih rendah diimplementasikan di Ruby menggunakan Rack . Ternyata, banyak Rack diambil dari Python, jadi itu tidak terlalu sulit untuk bekerja.

Tapi bagaimana dengan bahasa? Ruby adalah bahasa berorientasi objek, Python juga berorientasi objek. Namun tetap saja, perbedaan antara kedua bahasa itu signifikan. Jadi, Ruby menjelaskan blok menggunakan kata kunci, dengan Python, spasi digunakan untuk ini. Saya harus membiasakan diri dengannya, dan saya lebih suka jalur Ruby dengan begin / rescue / end. Namun, Python memungkinkan Anda untuk menulis kode yang lebih efisien yang bekerja dengan cepat.

Apa yang saya lakukan secara pribadi untuk dengan cepat memahami sintaksis Python? Hal utama - saya mulai berlatih dengan Python Koans , ini adalah proyek open source yang memungkinkan Anda untuk belajar Python, memberikan tes unit yang semakin kompleks.

Python Koans memperkenalkan berbagai fitur bahasa, dokumentasi di sini sangat rinci.

Selain itu, saya juga mempelajari dokumentasi Python - ini sangat komprehensif dalam bahasa ini. Bahasa ini dibagi menjadi beberapa modul, yang masing-masing dilengkapi dengan penjelasan terperinci. Ini termasuk jawaban mengapa modul itu ada, masalah apa yang coba dipecahkannya, dan bagaimana mengimplementasikan semua ini.

Saran bagi mereka yang ingin beralih ke Python


Jika Anda adalah pengembang Ruby yang mempertimbangkan untuk beralih ke Python, lakukan saja, Anda mungkin menyukainya. Benar, Anda harus ingat bahwa sebelum mulai membuka peluang baru, Anda harus menguasai banyak fitur bahasa. Titik awal yang baik adalah tutorial dan dokumentasi interaktif. Selain itu, pelatihan harus didukung oleh latihan, ada baiknya segera mulai menerapkan aplikasi nyata.
Skillbox merekomendasikan:

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


All Articles