PHP modern itu indah dan produktif

Hampir 8 bulan yang lalu, saya pindah dari proyek python / java ke proyek php (saya ditawari kondisi yang bodoh untuk menolak), dan tiba-tiba saya tidak merasakan sakit dan keputusasaan yang dikhotbahkan oleh mantan pengembang PCP. Dan inilah yang saya pikirkan tentang ini.



Apa itu apa?


Untuk mulai dengan, izinkan saya memberi tahu Anda pengalaman pengembangan saya dan pengalaman alat dalam bahasa lain, sehingga Anda memahami apa yang saya bandingkan.

Python Ketika datang ke proyek-proyek dengan python (paling sering di Django), kami mendapatkan platform yang memungkinkan Anda untuk dengan mudah dan mudah membangun fungsionalitas, membangun server rest-api, melakukan sharding sistem, dan lainnya. Logika kerangka kerja ini sangat jelas dan mudah. Bahkan pengembang yang sepenuhnya hijau dapat, dalam beberapa jam, menuliskan blozik kecil dengan panel admin. Ditambah dokumentasi Django adalah salah satu kualitas tertinggi yang pernah saya lihat. Untuk semua ini, ditambahkan sintaksis python, yang membantu menerapkan pola-pola tertentu dengan cukup elegan. Jika kita pindah dari Django ke Tornado / aiohtpp / Twisted / Flask, dll., Maka rasa sakit itu dimulai, karena kode di dalamnya jauh lebih tidak menyenangkan daripada di Django.

Jawa Jika kita berbicara tentang Java, misalnya, Spring, maka ini adalah sistem yang menyebabkan sakit anal karena memaksa Anda untuk mengkonfigurasi semua yang dapat dikonfigurasi. Ambang entri sangat tinggi, sejumlah besar nuansa yang perlu Anda ingat, ditambah sintaks Java itu sendiri memaksa Anda untuk menulis konstruksi yang sangat produktif (berlaku untuk semua proyek di Jawa keenam). Tetapi sebagai hadiah, kami mendapatkan sistem yang sangat andal dan fleksibel sehingga lebih dari selusin programmer dapat bertahan hidup dengan tangan yang sangat biasa-biasa saja.

Adapun PHP


Sebelum mulai bekerja, saya membaca buku: Matt Zandra - objek PHP, templat dan teknik pemrograman, dan memastikan bahwa PHP, secara umum, tanpa rasa sakit tertentu, memungkinkan Anda untuk menerapkan pola pengembangan tertentu. Yaitu dalam PHP Anda dapat menulis kode yang benar, yang tidak akan berbeda jauh dari apa yang kita dapatkan di Python / Java.

Zend Framework 1


Proyek layanan internal menemui saya Zend Framework 1 di PHP 5.3. Saya harus segera mengatakan bahwa banyak keputusan pada platform ini terlihat sangat kontroversial, dan bahasa PHP 5.3 memiliki keterbatasan dalam menetapkan jenis pengembalian fungsi (metode), namun, Anda dengan cepat memahami di mana letak, bagaimana apa yang dilemparkan, dan bagaimana yang terbentuk.

Sebagai contoh, jika kita mempertimbangkan Zend Forms, maka mereka praktis melakukan pekerjaan yang sama dengan bentuk klasik di Django. Sintaks untuk membangun kueri dalam DB Zend DB Table tidak menyebabkan negatif, dan itu jelas bekerja.

Yaitu secara harfiah dalam 2-3 hari saya dapat sepenuhnya memahami dan mulai menulis kode yang melakukan apa yang diminta dengan cara yang sepenuhnya memadai.

Symfony 3.4


Setelah 3 bulan, saya dipindahkan ke proyek lain di Symfony 3.4 dan PHP 7.1 - dan ini hanya bom. Saya terus terang merasa bahwa mereka memberi saya pena Django, di mana mereka menambahkan keandalan sistem dari Jawa.

  • Mesin template Ranting - klon lengkap Jinja dari Django.
  • Doctrine ORM - analog dari Hibernate
  • Penjelasan Symfony - analog dekorator dari Python
  • Auto-wiring Symfony - bahkan lebih jelas daripada DI di Spring
  • Konfigurasi kerahasiaan yang jelas
  • Konstruksi yang nyaman untuk klien-klien APi lainnya.
  • Ejaan yang nyaman untuk suatu pekerjaan untuk mahkota (dalam hal ini, itu disebut perintah konsol dalam simfoni)
  • Debugger dan asisten konsol yang nyaman.

Plus, bahasa PHP 7.1 itu sendiri sudah memungkinkan menentukan jenis kembali, membuat kait multi pengecualian dan nishtyaki lainnya. Dan katakan saja bahwa benar-benar ketidaknyamanan dari bekerja dengan alat ini hilang. Dan di beberapa tempat semuanya bekerja lebih nyaman.

Satu-satunya kekurangan lemak adalah kurangnya dokumentasi. Yaitu kasus-kasus yang paling sederhana ditunjukkan dalam dokumentasi, dan segala sesuatu yang lebih menarik sudah memerlukan penggalian sumber-sumber symfony, yah, kerangka kerja ini secara mengejutkan tidak sepopuler di Google seperti yang kita inginkan.

Oleh karena itu, saya sama sekali tidak mengerti mengapa orang meludah ke arah PHP ketika ia bekerja dan cukup keren.

Apakah ada perbedaan?


Saya juga ingin mencatat hal tersebut sehingga setelah Anda bekerja pada 3-4 kerangka kerja web modern, Anda memahami bahwa semuanya bekerja dengan cara yang sama di mana-mana. Nama dan implementasinya berbeda, dan konsep umumnya adalah 1 banding 1. Oleh karena itu, katakanlah, jika Anda bekerja pada Django, kemudian mentransfer ke php Symfony / .Net CORE MVC dimungkinkan tanpa terlalu banyak kesulitan selama beberapa bulan.

PS: kalau saya masih buta dan bodoh, silakan berkomentar.

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


All Articles