Wie kann ich meine „fortgeschrittenen“ PHP-Kenntnisse weiter verbessern? (schnell) [geschlossen]

74

Ich arbeite seit Jahren mit PHP und habe ein sehr gutes Verständnis der Sprache erlangt. Ich habe viele fortgeschrittene und nicht so fortgeschrittene Systeme entwickelt, die sehr gut funktionieren.

Das Problem, auf das ich stoße, ist, dass ich nur lerne, wenn ich einen Bedarf für etwas finde, das ich vorher noch nicht gelernt habe. Dies veranlasst mich, nach Lösungen und anderem Code zu suchen, der das Problem behandelt, und so etwas über eine neue Funktion oder Struktur zu lernen, die ich zuvor noch nicht gesehen habe. Auf diese Weise habe ich viele meiner besseren Techniken gelernt (z. B. das Lernen von Kursen, die von Amazon, Google oder anderen großen Unternehmen angeboten werden).

Das Hauptproblem dabei ist das Konzept, etwas nicht lernen zu können, wenn man nicht weiß, dass es existiert. Zum Beispiel habe ich mehrere Monate programmiert, um etwas über die empty()Funktion zu lernen , und ich habe einfach die Zeichenfolgenlänge strlen()überprüft, um nach leeren Werten zu suchen.

Ich beginne jetzt damit, immer größere Systeme aufzubauen, und habe angefangen, Blogs wie highscalability.com zu lesen, und habe MySQL-Replikations- und Serverdaten für die Skalierung untersucht. Ich weiß, dass die Struktur Ihres Codes sehr wichtig ist, damit vollständige Systeme funktionieren.

Nachdem ich kürzlich einen Blog über die Struktur von reddit gelesen hatte, stellte ich die Frage, ob es Standard- oder "akzeptierte Systeme" gibt.

Ich habe mich mit Frameworks befasst (ich habe Kohana verwendet, was ich bedauert habe, aber entschieden, dass PHP-Frameworks nichts für mich sind) und ich bevorzuge meine eigene Funktionsbibliothek, anstatt ein Framework zu haben.

Meine derzeitige Struktur ist eine Mischung aus WordPress, Kohana und meinem eigenen Wissen.

Die Möglichkeiten, die ich als potenziell vorteilhaft ansehen kann, sind:

  • Blogs lesen
  • Lesen Sie die Tutorials
  • Arbeite mit jemand anderem
  • Ein Buch lesen

Was wäre der beste Weg, um ein sehr guter Systementwickler zu werden?

Kerry Jones
quelle

Antworten:

115

Jeder, der PHP-Programmierer werden möchte, nimmt immer nur das erste Wort und ignoriert das zweite vollständig.

Während "Programmieren" viel wichtiger ist als "PHP", sollte man als PHP-Profi in erster Linie Programmierer sein.

Also würde ich für den letzten stimmen - Bücher lesen. Nicht auf PHP, sondern auf der Programmierung im Allgemeinen. Grady Boochs , Martin Fowlers und sogar die alten Donald Knuths .
Es wäre auch schön, sich einige andere Sprachen wie Java oder Python anzuschauen. Nicht zu ihnen wechseln, sondern von ihnen lernen.

Ihr gesunder Menschenverstand
quelle
26
Das ist richtig. Aber was meinst du mit "anderen Sprachen"? Warum sollte ein Webprogrammierer über Dinge Bescheid wissen müssen, die nur für Desktopanwendungen spezifisch sind? Es verwirrt mich immer wieder, warum die Antwort auf "in einer bestimmten Sprache besser werden" immer darin besteht, "eine andere Sprache zu lernen" und so viele positive Stimmen erhält. Ist die Antwort darauf, besser Italienisch zu sprechen, um Latein zu lernen? Einige Leute würden ja sagen, aber meiner Meinung nach lohnt es sich nicht, eine andere Sprache zu lernen, die Sie nicht nur verwenden, um indirekt das "Erlernen" der anderen Sprache zu erleichtern.
Lotus Notes
10
Und entschuldigung für den doppelten Beitrag, aber ich kann nicht bearbeiten. Das OP bat speziell um fortgeschrittene PHP-Kenntnisse. Vielleicht bin ich nur naiv, aber die einzigen Dinge, die Sie wirklich frei zwischen Programmiersprachen übertragen können, sind Entwurfsmuster (die Sie auf Wunsch in reinem PHP lernen können), Algorithmen (sehr situativ für die Webprogrammierung) und allgemeine bewährte Verfahren. Ich finde, dass die meiste Zeit damit verbracht wird, eine Sprache zu "lernen", um die spezifischen Bibliotheken herauszufinden, ob Standard oder nicht. Das einzige wirkliche Problem ist, dass Programmierer, die eher mit PHP als mit einer Sprache wie C ++ oder Java beginnen, Schwierigkeiten haben, OOP zu verwenden.
Lotus Notes
4
@Byron: Der letzte Satz in Ihrem zweiten Kommentar widerspricht dem Rest, den Sie sagen.
Stagas
2
Ich möchte auch hinzufügen, dass Sie, wenn Sie sich einige andere Sprachen wie Ruby ansehen, schnell in Betracht ziehen könnten, von PHP zu wechseln :) Ich bin an der gleichen Stelle wie Sie und denke jetzt ernsthaft darüber nach, PHP aufzugeben.
Tom
22
@Byron Durch das Lernen von Englisch wurde ich mir meiner Muttersprache Deutsch bewusster. Durch das Japanischlernen wurden mein Englisch und meine Grammatikkenntnisse insgesamt erheblich verbessert. Das Erlernen von Javascript erweiterte mein Denken über Funktionen und Objekte und das Ausprobieren in Haskell und Ruby zeigt mir viele interessante Konzepte, die meine PHP-Fähigkeiten widerspiegeln. Ich würde also definitiv argumentieren, dass das Lernen von etwas anderem Ihre "Hauptsprache" verbessert. Das Studium der lateinischen Sprache würde sicherlich Ihr Verständnis der meisten europäischen Sprachen verbessern.
Täuschung
28

Ich bevorzuge meine eigene Funktionsbibliothek, anstatt ein Framework zu haben

Sie bezeichnen eine "Funktionsbibliothek" und ein "Framework" als unterschiedliche Konzepte (gut!). Warum also nicht versuchen, den Einsatz ein wenig zu erhöhen und diese Funktionsbibliothek in ein Framework umzuwandeln? Wohlgemerkt, dies ist eine großartige Möglichkeit zu lernen, aber nicht die beste Möglichkeit, marktfähige Fähigkeiten zu erwerben;)

Es ist auch eine großartige Möglichkeit, falsch zu lernen. Bevor Sie beginnen, müssen Sie einige Nachforschungen anstellen.

Die "must have" -Funktionen

Es gibt bestimmte Funktionen, die fast alle Frameworks haben, und es gibt einen Grund dafür. Erforsche sie; Finden Sie heraus, warum sie vorhanden sind und welche Variationen sie haben. Wählen Sie aus, welche Implementierungen Sie in Ihr Framework aufnehmen möchten.

Funktionen von Nicht-PHP-Plattformen, die Sie verstehen und emulieren möchten

Ich habe keine Ahnung, was dich interessiert, also höre ich dort auf.

Veröffentlichen Sie es!

Dieser Teil ist wichtig, weil Nathan Recht hat : Ihre Arbeit muss von anderen Menschen gesehen, herausgefordert, kritisiert und korrigiert werden. Lassen Sie diese Lampe nicht unter einem Scheffel - sie muss gesehen werden. Setzen Sie es auf Google-Code oder SourceForge oder so, und wenn die Leute sich die Mühe machen, es ernst zu nehmen, müssen Sie es ernst nehmen. Sie müssen Unit-Tests und Regressionstests durchführen. Sie müssen die Versionskontrolle verwenden. Sie müssen es gut kommentieren, mit einem großen /* header comment */Rand oben in jeder Datei und nützlichen Dokumenten generierenden Kommentaren für jede Klasse und jedes Mitglied davon.

Zusammenfassung

Wenn Sie dies alles tun, können Sie (auf hohem Niveau) mehr über andere Plattformen erfahren. Sie können definitiv als PHP-Entwickler "ding 40". Sie können mehr über Unit-Tests erfahren. über Regressionstests. Sie können lernen, wie man effektiv dokumentiert.

Garantiert wird Ihr Framework "eigenwillig und wahrscheinlich blöd", aber Sie können viel lernen, wenn Sie es schreiben. Denken Sie daran, dass das Framework kein Produkt ist. Es ist eine Art Reise.

Richard JP Le Guen
quelle
Nur aus Gründen der Argumentation;)
Richard JP Le Guen
Ha, danke Richard. Leider sind wir momentan unterbesetzt und arbeiten an 3-4 großen Systemen gleichzeitig, sodass ich keine Zeit habe, ein tatsächliches Framework zu erstellen. Während ich die Vorteile und Gründe dafür klar erkennen kann, gehe ich auch auf die Idee ein, das Rad nicht neu zu erfinden. Anstatt meine eigenen zu machen, sehe ich mich eher in einem anderen Rahmen graben und ihre Tugenden und Laster finden.
Kerry Jones
@ Nathan - np ... danke, dass du dich auf die Requisiten konzentriert hast und nicht auf meine -1: S
Richard JP Le Guen
@RJPLG - Meh. Raue Menge hier! Die Kommentatoren zu Perl-Fragen sind klassischer: P
Nathan
Ich stimme dem in vielerlei Hinsicht zu. Sie werden besser, wenn Sie es versuchen und scheitern. Zeitraum.
FredTheWebGuy
18
  1. Schauen Sie sich die versteckten Funktionen von PHP und den vordefinierten Schnittstellen von PHP an
  2. Lerne verschiedene Sprachen. Lernen Sie Sprachen, die eine steilere Lernkurve als PHP haben. Jedes Mal, wenn ich auf die Vorteile anderer Sprachen gegenüber PHP hinweise, wird mir PHP-Bashing vorgeworfen, meistens Menschen, die offensichtlich nie wirklich eine andere Hochsprache beherrschen. Aber ich gehe das Risiko ein. Ich schlage Ruby, Python, Pearl und haXe vor (als streng typisiertes Gegenstück). Versuchen Sie anschließend, Ihr neues Wissen auf PHP anzuwenden. Oder entfernen Sie sich einfach von PHP, falls Sie nicht zurückkehren möchten (was meiner Meinung nach nicht unwahrscheinlich ist).
  3. Lerne mit Kritik umzugehen. Ihre Reaktion auf Nathans Post hat ganz klar gezeigt, dass Sie noch nicht damit umgehen können. Er hat absolut recht.
    • Wenn ich mir jetzt mein erstes PHP-Framework anschaue, muss ich sagen, dass es ziemlich beschissen war. Zu der Zeit fand ich es großartig (und es ist immer noch besser als viel Produktionscode, den ich bereits bereitgestellt gesehen habe). Trotzdem hatte es viele Mängel. Wenn Sie kein totales Genie sind, werden Ihre ersten Frameworks nur schrecklich aussehen, wenn Sie einige Jahre später auf sie zurückblicken (vorausgesetzt, Sie entwickeln sich weiter).
    • Tatsächlich wird jedes Framework, das Sie erstellen, im Laufe der Zeit schlechter aussehen (vorausgesetzt, Sie hören nicht auf, sich weiterzuentwickeln). Aus diesem Grund können Sie genauso gut verfügbare Frameworks verwenden und sich mehr auf die Anwendungsentwicklung konzentrieren. Wenn das von Ihnen verwendete Framework Einschränkungen aufweist, sollten Sie einen Beitrag leisten, anstatt ein weiteres PHP-Framework zu schreiben.
    • Der Zeitpunkt, an dem Sie sich für das Schreiben eigener Frameworks entscheiden (nicht nur zum Spaß / Lernen, sondern auch für die Bereitstellung in der Produktion), liegt darin, dass Ihre Anforderungen die anderen Frameworks übertreffen und nicht, wenn Sie die Idee, mit einem zu arbeiten, einfach nicht mögen. Es ist ein häufiger Fehler, den ich selbst gemacht habe. Aber jetzt kann ich sagen, ich habe daraus gelernt. Aber wenn Sie um Rat fragen (was ich damals leider nicht getan habe), erhalten Sie Antworten wie diese.
    • Sie lernen viel durch die Arbeit mit Code, den Sie nicht selbst geschrieben haben. Sie greifen nicht nur Konzepte auf, die von Frameworks gefördert werden, über die andere viel nachdenken, sondern lernen auch, produktiv, flexibel, in der Lage zu sein, im Team zu arbeiten und die Arbeit zu erledigen (und dabei einigermaßen gute Ergebnisse zu erzielen).
    • Ich nehme an, Sie können nicht wirklich glauben, dass Sie besser sind als jedes Team eines PHP-Open-Source-Projekts, sonst würden Sie fragen. Überwinde das hartnäckige instinktive Bedürfnis, das Rad eines jungen Entwicklers neu zu erfinden, und werde erwachsen, um Probleme anzugehen, die noch niemand angegangen ist.
  4. Erfahren Sie, was der Unterschied zwischen einer Komponentenbibliothek und einem Framework ist. Da Sie der Meinung sind, dass Sie ein Framework durch "Ihre eigene Funktionsbibliothek" ersetzen können, haben Sie wahrscheinlich nicht verstanden, worum es bei Frameworks geht. Schauen Sie sich die Abhängigkeitsinversion , die Inversion der Steuerung und die Abhängigkeitsinjektion an .
  5. Erfahren Sie mehr über Software-Design. Schauen Sie sich OO-Prinzipien wie SOLID und GRASP an .
  6. Probieren Sie verschiedene Paradigmen aus. AOP, funktionale Programmierung. Verbessern Sie Ihre OO-Kenntnisse mithilfe von Sprachen mit stärkerer Objektorientierung wie Ruby, Objective-C oder Smalltalk.
  7. Schauen Sie sich PHP-Frameworks wie Flow3, Symfony, PHP Igniter und CakePHP an. Ich habe bereits darauf hingewiesen, warum ich denke, dass Sie dies tun sollten.
  8. Wie in einem anderen Kommentar von mir erwähnt, sollten Sie andere Speicher als RDBMs in Betracht ziehen. SQL und OOP passen wirklich nicht gut zusammen. Schauen Sie sich OODBMS, verschiedene Datenbankabstraktionsschichten, Schlüsselwertspeicher, Dokumentenspeicher wie CouchDB und MongoDB an, verteilt Caching-Server als Memcache usw.
back2dos
quelle
11

Hier einige Gedanken:

  • Probieren Sie verschiedene Dinge aus. Eine neue Sprache lernen. Manchmal, wenn Sie diese andere Sprache lernen, werden Sie in beiden Fällen besser.

  • Tragen Sie zu einem Open-Source-Projekt bei.

  • Hohe Skalierbarkeit und PHP / MySQL sind keine Freunde. Es gibt heutzutage Technologien, die genau dafür gebaut wurden. node.js und Redis, um ein paar zu nennen.

  • Beantworten Sie Fragen in SO. Die Probleme anderer Menschen können dazu führen, dass Sie über den Tellerrand hinaus denken und den Versuch, zu helfen, verbessern. Außerdem tun Sie jemandem etwas Nettes an.

  • [werde versuchen, hier hinzuzufügen, wenn ich an etwas anderes denke, das ich gerade beim Kaffeetrinken aufgewacht bin: D]

Stagas
quelle
10
Ich bin mit der hohen Skalierbarkeit nicht einverstanden und PHP / MySQL sind keine Freunde, zum Beispiel verwendet Adobe MySQL und Facebook PHP. Es sei denn, Sie meinten die Kombination von ihnen zusammen? Aber das bezweifle ich immer noch. Alles andere ist großartig
Kerry Jones
1
@ Kerry: Was ist dein Punkt? Die US Navy verwendet Windows 2000 .: D PHP funktioniert schlecht und deshalb funktioniert Facebook im HipHop: developer.facebook.com/blog/post/358 . Der Punkt ist, dass es immer billiger ist, neue Server zu kaufen, als Ihre App für eine bessere Plattform neu zu schreiben. Wenn Sie jedoch eine App von Grund auf neu schreiben, sollten Sie sich Zeit nehmen, um eine gute Plattform auszuwählen. SQL stammt aus dem Jahr 1974 und Adobe AS3 ist nur ein Java-Modell aus den 90er Jahren. Versuchen Sie, neue Technologien und Ansätze zu eröffnen und zu nutzen. Besonders wenn du gut werden willst.
back2dos
11
Es ist schwer, diesen Rat zum Nennwert von jemandem mit einem Benutzernamen von @ back2dos anzunehmen: p
Kzqai
2
@ back2dos - aber der Hauptbereich der Marine sind keine Computer. Facebook ist. Sie haben über 60.000 Server und haben ihren Code mehrfach umgeschrieben. Sie hatten die Möglichkeit, von PHP / MySQL zu wechseln, und das taten sie nicht. Ja, sie verwenden HipHop, aber sie schreiben in PHP. Das bedeutet nicht, dass HipHop nicht von Anfang an implementiert werden kann.
Kerry Jones
3
@ back2dos - Ich habe diesen Beitrag nicht gelesen, weil ich zahlreiche andere gelesen habe. Habe ich jemals gesagt, dass Facebook mehr Computer hat als die Marine? Nein, ein guter Weg, um mir Worte in den Mund zu stecken. Auch wenn Sie lächerliche Anschuldigungen und Behauptungen aufstellen (wie PHP und Piloten ... es gibt keine Möglichkeit, dass ein Pilot in 0,0001 Sekunden reagieren kann, wo PHP leicht Berechnungen durchführen kann), sehe ich auch einen großen Mangel an Referenzen und viel Flammen. Yahoo!, YouTube und Wikipedia verwenden alle PHP. Dies sind einige der am häufigsten frequentierten Websites im Internet.
Kerry Jones
3

Lernen Sie, das, was Sie bereits wissen, anders zu machen. Beispiele:

  • in einer anderen Sprache
  • auf einer anderen Plattform
  • parallel / verteilt
  • durch ein Framework (ja, Sie haben entschieden, dass sie "nicht für Sie sind" - versuchen Sie es vielleicht mit einem anderen, sie unterscheiden sich manchmal sehr voneinander)
Piskvor verließ das Gebäude
quelle
3

Vielleicht sollten Sie sich noch einmal mit Frameworks befassen. Ich würde vorschlagen, dass Sie sich das Zend Framework ansehen, da es eher einer Bibliothek von Komponenten ähnelt, die Sie nach Belieben verwenden können, und nicht wirklich eine starre Struktur auferlegt, der Sie folgen müssen (wie z einige andere Frameworks tun dies), obwohl es ein (ziemlich vernünftiges) Projektlayout vorschlägt. Ein guter Ausgangspunkt wäre das Überleben des tiefen Endes .

Dinge, die Sie noch nicht erwähnt haben und die sich als nützlich erweisen könnten (insbesondere bei größeren Projekten):

wimvds
quelle
Wird Zend die Geschwindigkeit reduzieren? Die meisten Frameworks reduzieren es DRASTISCH (ich habe mir Benchmarks angesehen und sogar diejenigen, die sich im Vergleich zu solchen ohne Frameworks der Geschwindigkeit rühmen, waren viel langsamer)
Kerry Jones
Wenn Sie das automatische Laden verwenden, wird die Geschwindigkeit verringert. Wenn Sie viele verschiedene Komponenten verwenden, verringert sich die Geschwindigkeit. Die Flexibilität (und Standardisierung, nicht nur für Sie, sondern auch für zukünftige Mitarbeiter / Kollegen), die Sie gewinnen, überwiegt jedoch die Nachteile der Verwendung eines Frameworks imho. Natürlich müssen Sie das selbst entscheiden. Bei Bedarf können Sie Ausgabestücke einfach zwischenspeichern. Das Schöne an Zend ist jedoch, dass Sie anstelle der gesamten Enchilada nur die gewünschten / benötigten Komponenten in Ihren Apps verwenden und diese nach Belieben mit anderem Code mischen können.
Wimvds
2
Übrigens: Die Verwendung eines Opcode-Caches (XCache, Zend Optimizer et al.) Kann die Geschwindigkeit Ihrer Skripte drastisch erhöhen, wenn Sie sich Gedanken über die Geschwindigkeit machen (obwohl Sie natürlich mehr Ressourcen verbrauchen - Speicher / Festplatte) ...
wimvds
3

Einfach: mach es . Bedürfnisse werden dich lernen lassen. Finden Sie einen Weg, sich an immer weiter fortgeschrittenen Projekten zu beteiligen, sei es kommerziell oder Open Source. Es gibt keine andere Möglichkeit, etwas wirklich zu lernen.

Halil Özgür
quelle
3

Ich würde mich Diskussionsrunden anschließen und versuchen, die Probleme anderer zu lösen. Manchmal gibt es ziemlich herausfordernde Fragen, die Sie zu Recherchen zwingen. Wenn Sie es nicht beantworten können, können Sie auf jemanden warten, der es kann, und dann etwas lernen.

Lernen Sie von Frameworks. Ich rolle auch meine eigenen, da die meisten Frameworks da draußen ziemlich langsam sein können. Obwohl schnell genug für die meisten Websites da draußen.

Ich würde auch empfehlen, sich die PHP-Bibliothek von Facebook anzusehen. Sie machen dort einige interessante Sachen.

Brent Baisley
quelle
Danke für den letzten Satz.
Kerry Jones
2

Das Beste, was Sie tun können, ist, ein Buch über effiziente Algorithmen zu kaufen . Im Leben eines jeden Informatikstudenten kommt eine Zeit, in der er diese studieren muss. Die Probleme, die dort diskutiert / gelöst werden, sind Abstraktionen von fast jedem Problem der realen Welt, mit dem Sie jemals konfrontiert werden könnten.

Abgesehen davon ist das Lesen von Blogs darüber, wie andere es gemacht haben, vollkommen in Ordnung, da es Ihnen hilft zu verstehen, wie Sie die Prinzipien effizienter Algorithmen praktisch anwenden (und vielleicht sogar implementieren).

Grüße.

aefxx
quelle
Kannst du ein gutes Buch empfehlen?
Shyam
2

Über die Zusammenarbeit mit anderen Entwicklern kann nicht genug gesagt werden. Ich kenne vor allem 3 Entwickler, 2 mit denen ich täglich zusammenarbeite und die mich mit ihrem Wissen umhauen. Ich frage sie nach ihrer Meinung zu allem, was ich tue, nicht weil ich meine eigenen Ideen errate, sondern weil ich andere Ideen hören möchte, insbesondere von Leuten, die ich als Entwickler respektiere. Ich lerne mehr von diesen Menschen als jedes andere Mittel. Wenn Sie keinen Zugriff auf andere leitende Entwickler haben, posten Sie auf jeden Fall in SO- oder anderen Entwicklerforen und fragen Sie die Leute nach ihrer Meinung. Sie werden im Allgemeinen keine neuen Techniken / Methoden / Funktionen lernen, es sei denn, Sie sehen, dass sie verwendet werden (woher wissen Sie, wonach Sie suchen müssen, wenn Sie nicht wissen, dass es sie gibt?)

Nehmen Sie auch, wie bereits erwähnt, an einer Betriebssystem-App teil. Gehen Sie zu sourceforge und suchen Sie ein Projekt, das einen Entwickler benötigt. Oder laden Sie eine App herunter und versuchen Sie, ein Plugin dafür zu schreiben (ich schreibe ein Plugin für Invision 3.0 atm und lerne ein paar Dinge.)

Hoffentlich hilft das.

Christian
quelle
1

Lesen Sie den Code anderer Leute. Sie haben jetzt Ihre eigene Bibliothek, können jedoch beim Lesen der Quelle anderer Anwendungen einige Informationen erhalten. Dann fragen Sie sich das Warum. Sei der Blogschreiber statt der Leser. Betonen Sie außerdem mehr den Programmierer als die Sprache. Schauen Sie sich lieber Lösungen an, die ein Problem bereits lösen, und versuchen Sie, sie mit Ihrem eigenen Wissen zu replizieren. Viel Glück und viel Spaß!

Shyam
quelle
1
Für die Mehrheit und was andere Leute nicht verstehen, ist, dass meine Funktionsbibliothek auf Kohana & WordPress basiert und sehr selten meine eigenen Funktionen sind. Ich habe so ziemlich jede Seite der Seiten und Strukturen von WordPress durchgesehen, also stimme ich Ihnen zu :)
Kerry Jones
1
Ich war in der gleichen Situation wie Sie (ich denke, die meisten Programmierer waren es, mit Ausnahme der, die mit einem 500-Pfund-Handbuch in ihrem Gehirn geboren wurden). Ich wurde „besser“, indem ich die CodeIgniter-Quelle las und verstand, was weiter vor sich ging. Vor allem, weil es auf Leistung ausgerichtet ist. Gutes Urteilsvermögen entsteht durch Erfahrung, Erfahrung durch Schreiben von Code und Lesen anderer (es ist wie das Lesen eines Buches und das Verstehen des Humors zwischen den Zeilen).
Shyam
1

Der Ansatz, den Code anderer Programmierer zu betrachten, ist definitiv ein guter Weg, um "gute" oder "schlechte" Praktiken zu lernen. Nachdem Sie anderen Code gelesen haben, entwickeln Sie ein "Gefühl" für guten Code.

Ich empfehle auf jeden Fall Frameworks wie Zend Framework, Symfony, CakePHP oder Agavi, da sich viele Mitwirkende diesen Code ansehen und ihn ständig weiterentwickeln, um die "ideale" Lösung zu finden (die natürlich nie erreicht wird ...);) Sie können immer noch machen die Entscheidung, eigene Klassen zu entwickeln, anstatt die, die das Framework bietet ...

Mit einem so langen PHP-Hintergrund könnten Sie einen Beitrag zu einem Open Source-Framework leisten. Gespräche mit anderen Entwicklern bringen Sie schneller voran.

Das Zeigen Ihres Codes für andere und das Bitten um konstruktives Feedback hat den gleichen Effekt. Sie wissen nie, wie gut Sie sind, bis Sie Ihre Fähigkeiten mit anderen vergleichen. Immer konstruktiv. Dies wäre ein natürlicher Prozess, wenn Sie zu einem Open-Source-Framework beitragen würden. ;)

Du tust
quelle
0

Sie sollten mit Beispielen arbeiten und mit ihnen arbeiten, wenn Sie sie erweitern, damit Sie lernen, wie Sie Beispiele erweitern, indem Sie sie funktionaler machen und mehr Funktionen bereitstellen.

Es ist jedoch gut, etwas zu erstellen, das Sie bisher in PHP gelernt haben. Um mehr zu üben, sollten Sie so etwas wie ein Buchungssystem usw. erstellen. Früher oder später können Sie mehr erweitern, indem Sie mehr lernen, wenn Sie mehr in PHP lernen, was dazu führt, dass Ihre Entwicklung viel besser wird.

MacMac
quelle
0

Sie können Ihr Unternehmen fragen, ob es Ihnen eine Zend PHP-Zertifizierungsprüfung zahlen kann. Wenn Sie für diese Prüfung studieren, müssen Sie PHP gut kennen und trainieren, indem Sie einen Großteil der Dokumentation, den Zend-Studienführer und auch das Training mit Scheinprüfungen lesen. Es ist eine sehr effiziente Art der Verbesserung und sieht in einem Lebenslauf ziemlich gut aus.

greg0ire
quelle
Wäre das nicht zielgerichteter als die Sprache?
Shyam
2
Ich spreche von der PHP-Zertifizierung, nicht von der ZF-Zertifizierung. Ich habe es bestanden und es gab keine einzige Frage zum Framework.
Greg0ire
-11

"meine eigene Funktionsbibliothek" == "ein [eigenwilliges und wahrscheinlich blödes] Framework".

Ich empfehle Symfony zu lernen, da die Entwickler anscheinend konsequent danach streben, alles nach "Best Practices" zu machen ... aber Sie könnten wahrscheinlich viel von jedem der gängigen Frameworks lernen.

Schreiben Sie kein eigenes Framework. Bitte.

Nathan
quelle
1
Zu beurteilen, was ich getan habe, bevor Sie eine Vorstellung davon haben, was beleidigend und eigenwillig ist.
Kerry Jones
2
Je weniger Ihr Code (oder Ihre Ideen) von anderen Personen gesehen, herausgefordert, kritisiert und korrigiert wurde, desto weniger wahrscheinlich ist es, dass sie so großartig sind, wie Sie denken.
Nathan
6
Was für eine dumme Antwort. Es ist nichts Falsches daran, ein eigenes Framework zu schreiben. Ich habe es mit einem Freund gemacht, nur weil wir Zeit hatten und hatten. Wir verwenden jetzt unser eigenes Framework für unsere Apps und können uns darin recht schnell entwickeln. Es ist nicht so, dass irgendetwas falsch daran war, eine andere FW zu verwenden, nur dass wir unsere eigene erstellen wollten. so haben wir es gemacht. Ich persönlich bin als Entwickler sehr gewachsen, indem ich auch daran teilgenommen habe, und habe MVC viel besser verstanden.
Christian
3
Wenn niemand sein eigenes Framework geschrieben hätte, hätten wir keine Frameworks - das heißt, Sie sollten wahrscheinlich erst beginnen, wenn Sie viel Erfahrung mit der Verwendung mehrerer anderer Frameworks für viele weitere Anwendungen
gesammelt haben
2
Ich kann buchstäblich nicht glauben, wie dumm diese Kommentare sind. Dies ist die richtige Antwort. Die Frage war: "Wie kann ich meine" fortgeschrittenen "PHP-Kenntnisse weiter verbessern?" und die richtige Antwort lautet: "Lernen Sie, indem Sie beobachten, wie dies in einem ausgereiften Rahmen geschieht, in dem bewährte Verfahren angewendet werden".
Calumbrodie