Es scheint, dass Sie nur "Merkmale" sagen müssen - und der Holivar wird beginnen. Wir haben schon vor ein paar Wochen versehentlich damit angefangen . Und dann haben wir beschlossen, es herauszufinden. Was ist es mehr? Eine Möglichkeit, die Codeduplizierung zu reduzieren. Eine schnelle Möglichkeit, Funktionen zu implementieren. Standardimplementierung der Schnittstelle. Oder ein uraltes Übel?
Betrachten Sie mit Beispielen - diesen Mittwochabend auf YouTube . Und unten sehen Sie die Positionen der Sendeteilnehmer.
Wie es sein wird. Wir werden etwas in der Nähe einer Debatte arrangieren: eine Reihe von Runden, Gegner, einen Moderator. Und für die Position stimmen, die Sie mögen.
Valentin Udaltsov (Autor des Pykh-Kanals ) wird ein leidenschaftlicher Gegner von Eigenschaften sein. Roman Pronsky ( PHP-Digest ) - Gastgeber. Nun, der Rest der Jungs wird den guten Namen der Eigenschaften verteidigen.
Kirill Nesmeyanov, Entwickleranwalt bei SpiralScout, Mitglied des PHP Russia Programming Committee
- Was ist los mit den Eigenschaften?
- Ja, bei ihnen ist alles "so": Dies ist ein Werkzeug - benutze es richtig. Nägel mit einem Mikroskop zu hämmern ist nicht viel Klugheit. Das Problem sind diejenigen, die versuchen, sie dorthin zu schieben, wo sie nicht sollten, und dann sagen sie: "Na ja, das ist alles, ich gehe besser zum Frontend . "
- Warum möchten Sie darüber sprechen?
- Weil nicht jeder versteht, für welche Aufgabenbereiche die Merkmale erfunden wurden. Aus irgendeinem Grund werden sie normalerweise als Mittel angesehen, um Klassen physisch aufzuteilen. Es ist Zeit aufzuhören!
- Können Sie innerhalb von 2 Stunden online Ihre Position ändern?
- Nein.
Sergey Zhuk, Teamleiter bei Skyeng, Moderator des Podcasts "Between Brackets"
- Was ist los mit den Eigenschaften?
- Wie bei jedem Tool sollte sich das Merkmal im Arsenal des Entwicklers befinden. Es lohnt sich jedoch, es richtig zu verwenden: Zum Beispiel, um einige Hilfsmethoden zwischen nicht verwandten Klassen in Bibliotheken zu teilen, bei denen wir Benutzern die Möglichkeit geben möchten, die Funktionalität ohne Vererbung oder DI zu erweitern.
Natürlich können Merkmale undicht werden. Und um mich nicht in den Fuß zu schießen, habe ich drei Regeln für mich festgelegt:
- Jedes Merkmal muss eine entsprechende Schnittstelle haben.
- Ein Merkmal muss völlig autark sein: Alles, was es verwendet, muss in sich selbst deklariert werden.
- Eigenschaften sollten so klein wie möglich sein. Idealerweise eine Methode, ein Merkmal.
- Warum möchten Sie darüber sprechen?
- Viele Entwickler lehnen diese PHP-Funktion entschieden ab. Es wäre interessant, mit ihnen zu streiten. Bisher sieht es für mich so aus: "Ich habe versucht, Git-Rebase -> mein Repository durcheinander zu bringen -> Git-Rebase ist böse . "
- Können Sie innerhalb von 2 Stunden online Ihre Position ändern?
- Ja.
Ivan Leschev, Entwickler bei BotHelp.io
- Was ist los mit den Eigenschaften?
- Alles ist in Ordnung, nur jemand weiß nicht, wie man sie richtig kocht.
- Warum möchten Sie darüber sprechen?
- Es ist interessant, Beispiele für gutes und schlechtes Design zu sehen.
- Können Sie innerhalb von 2 Stunden online Ihre Position ändern?
- Wahrscheinlich nein als ja.
Alexander Dubovskoy, CTO bei Radon, aktives Mitglied der Drupal-Community
- Was ist los mit den Eigenschaften?
- Es ist wie es ist. Es ist nur ein Hammer, der auf den Finger geschlagen werden kann.
Holyvar erstreckt sich von mindestens Anthony Ferrara 2011 Artikel sind Merkmale der neuen eval . Aber dann gab es nur wenige schöne Beispiele, für die Sie jetzt problemlos zu Symfony-Komponenten wechseln können. Das gleiche LockableTrait ist furchtbar praktisch und verständlich, warum und warum)
- Warum möchten Sie darüber sprechen?
- Alle architektonischen Streitigkeiten sind interessant. Zumindest werden Sie neue Sichtweisen hören und herausfinden, was Sie sonst noch lesen können.
- Können Sie innerhalb von 2 Stunden online Ihre Position ändern?
- Nein.
ps
Nikita Popov: Ich mag Eigenschaften nicht besonders. Ich bin seit PHP 5.5 an der Entwicklung beteiligt und sie wurden in 5.4 hinzugefügt. Wenn ich damals gewesen wäre, wären sie sicherlich nicht hinzugefügt worden.
pps Wenn es eine großartige Geschichte darüber gibt, wie Eigenschaften alle gerettet oder verwöhnt haben, teilen Sie sie bitte am 23. Dezember im Stream mit . Und auf jeden Fall - verbinden Sie sich.