2011-02-11 3 views
4

Quel est le problème que je peux poser à quelques développeurs potentiels qui ne connaissent pas Zend Framework?Problème de programmation pour les développeurs potentiels de Zend Framework

Mon but est principalement de déterminer leur capacité à apprendre quelque chose de nouveau rapidement et par eux-mêmes (à savoir, le cadre). Il devrait être quelque chose qu'ils devraient normalement terminer dans quelques heures, mais que dans ce cas, puisqu'ils ne sont pas familiers avec le cadre, leur prendrait quelques heures de plus en raison de l'utilisation supplémentaire de lecture et de stackoverflow.com;), donc, quelque chose que je peux leur faire faire un week-end.

En outre, le problème devrait être très dirigé vers la partie View et Controller, car le travail frontal est principalement ce dont j'aurai besoin de leur part. (et le Zend Framework n'aide pas vraiment beaucoup avec Model). Le problème les obligerait probablement à faire un peu d'ajax, et généralement «joli, fonctionnel, mais pas très compliqué dans le backend».

Répondre

8

Pour moi, les compétences de base que chaque développeur ZF devrait avoir sont connectés à ceux-ci:

  1. Rédaction aide de vue personnalisée - il serait préférable, si elles devaient être namespace sur mesure, non Zend, car cela apprenez-leur comment enregistrer un chemin d'assistance dans View.
  2. Définissez clairement certaines classes de formulaires en utilisant Zend_Form (et combattez avec des décorateurs;). Peut-être même certains éléments de formulaire personnalisés, ce qui nécessitera également d'enregistrer le chemin d'assistance et le nouvel espace de noms - compétences de base.
  3. Ecriture d'un système ACL simple. Et là, vous pouvez vérifier comment ils le font - ce qui vous donne des informations sur leurs connaissances de l'architecture logicielle. Est-ce qu'ils implémentent en tant que plugin? Peut-être codé en dur dans index.php? Ou contrôleur personnalisé et méthode init ou preDispatch. Auth - Dans ZF ses 10-15 lignes, mais vous devez le rechercher :)
  4. Certains travaux de modèle db - simple. Deux, trois tables et les relations entre eux - il peut être plus simple table ACL: users, role, user_has_role. Utiliser la mise en page bien sûr et utiliser les aides à la vue de ZF pour ajouter des scripts et des styles.
  5. Définition de certaines routes personnalisées.
  6. Implémenter la mise en cache à un niveau.
  7. Comprendre comment fonctionne le bootstrap - pour la plupart de ces tâches, il sera plus facile d'utiliser Bootstrap et les ressources Bootstrap basées sur application.ini.

simple "app" qui couvrira presque toutes les compétences que pourrait ressembler à ça:

  1. simple base de données qui ont trois tables: user, role, has_role. Dans user colonne de la table created_at qui est automatiquement définie lorsque j'insère enregistrement. (couvre Zend_Db_Adapter, application.ini). App a trois modules/contrôleurs/pages - appelez ce que vous voulez.
    a) possibilité d'ajouter, de supprimer et de modifier l'utilisateur et les rôles. Typiquement CRUD. En outre, vous pouvez dire que la grille doit être côté frontend (jqGrid, DataTables etc.) en utilisant AJAX pour obtenir des données à partir de l'application. Là, vous allez vérifier si ils implémentent la sortie AJAX à leur propre , ou utilisent la fonctionnalité contextSwitch de ZF. (Couvre Zend_Db_Table_Abstract, les relations entre eux, la compréhension du modèle, Zend_Db_Select, vues et peut-être comme appendScript, aides de vue Zend_Form)
    b) Uploader pour les fichiers personnalisés - un tel stockage basé sur le Web. forme simple pour upload de fichiers et le tableau ci-dessous avec liste d'entre eux et la possibilité de télécharger (couvre la sécurité, pourrait couvrir Zend_Form et Zend_File_Transfer, Partials peut-être en vue si elles utilisent la même table que dans a))
    c) la page qui affichent 10 derniers tweets de celui que vous voulez de Twitter, qui doivent être mises en cache pour x heures (couvre Zend_Cache, puis Zend_ervice ou XML peut-être, JSON de connaissances -. dépend comment ils mettent en œuvre il)

En outre, l'application nécessite l'utilisateur de se connecter en utilisant le login et le mot de passe (vous pouvez dire, que l'enregistrement doit être une autre partie d'une application). Et pour prendre avantage du système ACL, utilisateur a accès uniquement à b) et c) (et registre cours/page de connexion;), mais admin à trois pages.

Et maintenant vous avez deux approches.
d'abord dit:

« Il doit être ZF Mais la forme doit être faite en utilisant Zend_Form et modèles en utilisant Zend_Db_Table_Abstract Pour auth vous devez utiliser Zend_Auth pour plugin de contrôleur frontal ACL et ainsi de suite ..... .

chemin deuxième dit:

« Il doit être ZF. Comment vous le faites en interne - il est tout à fait votre buisness -. Mais il faut travailler »

Lequel choisirez-vous, dépend de vos besoins :)

PS Personnellement, au processus de recrutement que j'utilise la deuxième approche. (parfois même sans préciser de cadre) - parce que comme je l'ai déjà dit, cela me montre la façon de penser des candidats - ce qui est aussi important: le candidat est un «bricoleur» qui veut tout faire par lui-même, malgré le fait déjà 10 solutions de ce type, ou plutôt RTFM personne, ou les deux.Lorsque vous avez à faire l'application et sur votre propre figure comment le faire, quels sont les composants à utiliser, il est plus créatif.Et après candidat faire une telle application, vous avez encore peut faire un examen du code et les montrer où Le processus pourrait être fait différemment - de cette façon, ils apprennent quelque chose de nouveau et peut-être que vous apprendrez quelque chose de leur approche :)

+0

Une telle bonne réponse! Est-ce que quelqu'un a l'impression de pouvoir faire mieux? – cambraca

+0

Combien de temps donneriez-vous aux candidats pour faire une telle application, en tenant compte du fait qu'ils doivent comprendre à partir de zéro comment fonctionne ZF? – cambraca

+0

Ha! Bonne question. Et la réponse est - autant qu'ils veulent! Je leur envoie des objectifs et je demande juste: "A quelle heure faites-vous cela?" S'il dit 5h, ok, alors donnez-lui autant de temps (bien sûr dans les limites du bon sens - 4 semaines n'est pas une réponse valable dans une application si simple que j'ai décrite;). Pourquoi cette approche? Parce que vous pouvez évaluer la compétence du candidat pour estimer le temps de son travail - ce qui est une compétence très souhaitable pour le développeur. PS. Mieux que vos gens ne voient pas cette discussion:] – singles

Questions connexes