74 votes

Comment augmenter mes connaissances « avancé » de PHP plus loin ? (rapidement)

Je travaille avec PHP depuis des années et a obtenu une très bonne maîtrise de la langue, créé de nombreuses avancées et des systèmes avancés qui fonctionnent très bien.

Le problème, je suis en cours d'exécution, c'est que j'apprend que lorsque je trouve un besoin de quelque chose que je n'ai pas appris avant. Cela m'amène à chercher des solutions et d'autres du code qui gère le problème, et je vais donc apprendre à propos d'une nouvelle fonction ou de la structure que je n'avais pas vu avant. C'est de cette façon que j'ai appris beaucoup de mes meilleures techniques (telles que l'étude des classes par Amazon, Google ou d'autres grandes entreprises).

Le principal problème c'est le concept de ne pas être en mesure d'apprendre quelque chose si vous ne savez pas qu'il existe. Par exemple, il m'a fallu plusieurs mois de programmation, d'apprendre à propos de l' empty() de la fonction, et simplement, je voudrais vérifier la longueur de la chaîne à l'aide de strlen() pour vérifier les valeurs vides.

Je suis maintenant en construire de plus grandes et de plus grands systèmes, et j'ai commencé à lire des blogs comme highscalability.com et de la recherche sur la réplication MySQL et le serveur de données pour la mise à l'échelle. Je sais que la structure de votre code est très important de faire le plein de systèmes de travail.

Après la lecture d'un récent blog sur le reddit de la structure, il m'a fait me remettre en question si il y a une norme ou "accepté systèmes".

J'ai regardé dans les cadres (j'ai utilisé Kohana, j'ai regretté, mais a décidé que les frameworks PHP n'étaient pas pour moi) et je préfère ma propre bibliothèque de fonctions plutôt que d'avoir un cadre.

Ma structure actuelle est un mélange entre WordPress, Kohana et de mes propres connaissances.

Les façons que je peux voir comme étant potentiellement bénéfiques sont:

  • Lire des blogs
  • Lire les tutoriels
  • Travailler avec quelqu'un d'autre
  • Lire un livre

Ce serait le meilleur moyen(s) pour "obtenir au prochain niveau" le niveau d'être un très bon système de développeur?

115voto

Tout le monde qui veut être un programmeur PHP, prend toujours seuls le premier mot et ignore complètement la deuxième.

Alors que la "programmation" est bien plus important que "PHP", pour être un PHP professionnel, on doit être un programmeur en premier lieu.

Donc, j'avais à voter pour le dernier des livres de lecture. Pas sur PHP, mais sur la programmation en général. Grady Booch's, Martin Fowleret même le vieux Donald Knuth'.
Il serait également bon de prendre un coup d'oeil à certains autres langages, comme Java ou Python. De ne pas basculer vers eux, mais pour apprendre d'eux.

28voto

Richard JP Le Guen Points 13306

Je préfère ma propre bibliothèque de fonctions plutôt que d'avoir un cadre

Vous vous référez à une "bibliothèque de fonctions" et "d'un" cadre " comme des concepts distincts (bon!) donc pourquoi pas essayer de monter la barre un peu et tourner à la bibliothèque de fonctions dans un cadre? Vous l'esprit, ce est une excellente façon d'apprendre, mais pas le meilleur moyen d'avoir des compétences monnayables ;)

C'est aussi une excellente façon d'apprendre de mal donc, avant de commencer, vous devez faire quelques recherches.

Le "must have" caractéristiques

Il ya certaines caractéristiques presque tous les cadres ont, et il y a une raison à cela. Recherche; savoir pourquoi ils sont présents et ce que leurs variations sont; choisir les implémentations vous souhaitez inclure dans votre cadre.

  • Orientée objet (c'est la clé de pourquoi vous voulez écrire un cadre plutôt que de simplement en utilisant votre bibliothèque de fonctions)
  • L'utilisation de Modèles (check-out et commencez à vous demander pourquoi tant de nombreux cadres de l'utilisation du Contrôleur d'Application , par opposition à l'Avant du Contrôleur... et il y a certaines plates-formes qui utilisent la Page de Contrôleurs?
  • De base de la structure MVC
  • URLs Propres

Caractéristiques de non-PHP plates-formes que vous voulez comprendre et à les imiter

Je n'ai aucune idée de ce qui vous intéresse donc je vais m'arrêter là.

Publier!

Cette partie est importante, parce que Nathan est bon: votre travail doit être vu, contesté, critiqué et corrigé par d'autres personnes. Ne laissez pas que la lampe sous le boisseau - il besoin d'être vu; mettez-les sur Google code ou sourceforge ou quelque chose, et si les gens vont à la peine de regarder à ça au sérieux, vous devez le prendre au sérieux; vous avez besoin de maintenir des tests unitaires et des tests de régression; vous devez utiliser le contrôle de version; vous devez commenter bien, avec un gros /* header comment */ en haut de chaque fichier et utile doc-générer des commentaires pour chaque classe et les membres de celle-ci.

Résumé

Si vous faites tout cela, vous pouvez apprendre (de haut niveau) sur d'autres plates-formes. Vous pouvez certainement "ding 40" en tant que développeur PHP. Vous pouvez en apprendre davantage sur les tests unitaires; sur les tests de régression. Vous pouvez apprendre au sujet de documenter de manière efficace.

Garantie de votre cadre sortira "idiosyncrasiques et probablement sucky", mais vous pouvez apprendre beaucoup de l'écriture. Il suffit de garder à l'esprit que le cadre n'est pas un produit, c'est un voyage... de toutes sortes.

18voto

back2dos Points 13253
  1. Regardez dans les fonctions cachées de PHP et PHP prédéfinies interfaces
  2. Apprendre différentes langues. Apprendre les langues qui ont un plus raide de la courbe d'apprentissage de PHP. Tout le temps je l'ai souligné les avantages des autres langages PHP, je suis accusé de PHP bashing, la plupart des gens qui de toute évidence n'a jamais vraiment maîtrisé un autre langage de haut niveau. Mais je vais prendre le risque. Je suggère de Ruby, Python, de Perles et de haXe (à titre strictement tapé homologue). Une fois que vous l'avez fait, essayer d'appliquer vos nouvelles connaissances en PHP. Ou tout simplement se déplacer loin de PHP, dans le cas où vous ne voulez pas revenir en arrière (ce qui je pense n'est pas rare d'arriver).
  3. Apprendre à composer avec critisizm. Votre réaction à Nathan post a montré très clairement que vous ne pouvez pas traiter avec elle encore. Il est tout à fait juste.
    • En regardant mon premier framework PHP maintenant, je dois dire que c'était assez merdique. À l'époque, je pensais que c'était super (et c'est toujours mieux qu'un lot de production de code que j'ai déjà vu déployé). Encore, il avait de nombreux défauts. Sauf si vous êtes un génie, votre première cadres il suffit de regarder terriblement si vous regardez en arrière sur eux quelques années plus tard (en supposant que vous évoluer).
    • En fait n'importe quel cadre vous allez créer sera pire au fil du temps (en supposant que vous ne cessez pas d'évolution). Pour cette raison, vous pourriez tout aussi bien utiliser des cadres et de se concentrer plus sur le développement d'application. Si le framework que vous utilisez a des limites, envisager de contribuer plutôt que d'écrire encore un autre framework PHP.
    • Le point dans le temps pour choisir l'écriture de vos propres cadres (pas juste pour le plaisir/l'apprentissage, mais pour un déploiement en production), c'est quand vos exigences dépasser ce que les autres cadres offrent et pas quand vous n'aimez pas l'idée de travailler avec un. C'est une erreur commune, qui je l'ai fait moi-même. Mais maintenant je peux le dire, j'ai beaucoup appris de lui. Mais si vous demandez des conseils (que je n'ai malheureusement pas le temps), vous obtiendrez des réponses comme celles-ci.
    • Vous apprenez beaucoup de travail avec le code que vous n'avez pas à écrire vous-même. Non seulement avez-vous ramasser des concepts promus par des cadres d'autres mis beaucoup de pensée dans, mais vous devez aussi apprendre à être productif, flexible, capable de travailler en équipe et à faire le travail (tout en obtenant de bons résultats).
    • Je suppose que vous ne pouvez pas vraiment pense que vous êtes mieux que toute l'équipe de PHP projet open source là-bas, sinon vous pouvez demander. Obtenir sur le têtu instinctif besoin de réinventer la roue tout jeune développeur a et grandir jusqu'à s'attaquer à des problèmes personne n'a encore abordé.
  4. Apprendre, quelle est la différence entre une bibliothèque de composants et d'un cadre. Puisque vous pensez que vous pouvez remplacer un cadre avec "votre propre bibliothèque de fonctions", vous n'avez probablement pas entendu, ce qui est le point de cadres. Jetez un oeil à l' inversion de la dépendance, l'inversion de contrôle et l'injection de dépendance.
  5. Apprendre à propos de la conception de logiciels. Regardez OO principes comme SOLIDE et SAISIR.
  6. Essayez différents paradigmes. L'AOP, de la programmation fonctionnelle. Améliorer votre OO compétences en utilisant les langues avec plus de l'orientation de l'objet, tels que Ruby, Objective-C ou Smalltalk.
  7. Regarder des frameworks PHP comme Flow3, Symfony, PHP allumeur et CakePHP. Je l'ai déjà souligné pourquoi je pense que vous devriez le faire.
  8. Comme indiqué dans un autre commentaire de la mine, vous devriez envisager d'autres stockages de Sgbdr. SQL et de la programmation orientée objet vraiment ne vont pas bien ensemble. Jetez un oeil à OODBMS, les différentes couches d'abstraction de base de données, clé-valeur des magasins, document de magasins comme CouchDB et MongoDB, distribue la mise en cache des serveurs memcache, etc.

11voto

stagas Points 1289

Voici quelques idées:

  • Essayer différentes choses. Apprendre une nouvelle langue. Quelques fois dans le processus d'apprentissage de cette langue, qu'en fait vous rend meilleur sur les deux.

  • Contribuer à un projet open-source.

  • Une haute évolutivité et PHP/MySQL ne sont pas des amis . Il y a des technologies qui sont aujourd'hui de construire juste pour ça. node.js et Redis pour n'en nommer que deux.

  • Répondre à des questions. Les problèmes des autres peut vous faire penser à l'extérieur de la boîte et à vous améliorer dans le processus d'essayer de vous aider, et vous aussi faire quelque chose de gentil pour quelqu'un.

  • [ allons essayer d'ajouter ici, si je pense à autre chose je viens de me réveiller de boire du café :D ]

3voto

Piskvor Points 46986

Apprendre à faire ce que vous savez déjà... d’une manière différente. Exemples :

  • dans une autre langue
  • sur une plate-forme différente
  • en parallèle et distribué
  • un cadre institutionnel (Oui, vous avez décidé qu’ils « ne sont pas pour vous » - peut-être essayer un autre, ils sont parfois très différents les uns des autres)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X