Comment améliorer notre productivité lors du démarrage de nouveau projet à l'aide de Delphi? P>
Pour moi, je crée un projet de modèle, y compris l'écran SPLASH, le module de données primaire avec composant par défaut et toutes les sous-roues au courant des données (Ouvrir, Fermer, la requête, la valeur par défaut lorsque vous avez échoué à Ouvrir DB, etc.), et enregistrez le modèle dans mon dépôt. (J'utilise toutes mes propres cadres et une unité dans le projet, de sorte que tout soit toujours créé automatiquement lorsque je choisis: Nouveau projet et en choisissant mon modèle.) P>
questions: p>
Pardonnez-moi si cette question a été posée auparavant. P>
9 Réponses :
Pour les applications plus importantes, la clé de la productivité consiste à fonctionner à un niveau d'abstraction plus élevé que le module de données et la base de données. p>
La base de données a un petit ensemble de types. Dans votre domaine, vous aurez probablement des mappages par défaut des types de domaine aux types de base de données. Vous aurez également des validateurs et des formateurs pour eux. Vous aurez des rapports, des filtres et des recherches par défaut (Windows, panneaux, requêtes SQL) pour vos entités de domaine. Vous aurez un contrôle d'accès basé sur un rôle à eux. P>
Regardez le développement dirigé sur le domaine. P>
Définition de la plage exact d'applications que vous souhaitez faire est une bonne première étape. L'amélioration de la productivité est presque toujours liée à la spécialisation. Les outils généraux ne sont qu'un très petit centile de productivité. Je préférerais rechercher (ou faire) des cadres spécialisés dans ma ligne de travail si je voulais vraiment augmenter la productivité. P>
Je n'utilise pas de gexperts ou un autre plugin. Je ne bénéficie pas grandement (être capable de grep tout simplement bien sur la ligne cmdline) dans la productivité et tout accident qui peut être évité en raison de problèmes dans le plugin est alors un pré. P>
J'ai utilisé Modelmaker avec Delphi. C'est vraiment un bon outil qui vous permet de dessiner des objets, puis peut générer du code en fonction des modèles que vous écrivez. p>
Il peut accélérer des choses lorsqu'il y a un certain nombre de classes similaires dans le projet. p>
pour Q1: em> Utilisez des bibliothèques matures qui vous font pour vous le travail GRUNT: DevExpress -or- TMS pour UI (JEDI'S JVCL est également très bon), FastrerPort pour la notification. Choisissez également un bon cadre de connectivité (cela dépend de votre db back-end) afin d'avoir de nombreuses tâches quotidiennes résolues à OOTB. En outre, si vous connaissez OPF, consultez InstantObjects. J'ai entendu dire que c'est très gentil. p>
pour Q2: em> Voir les oms de cnpack.org P>
En outre, il vous aidera à construire lentement votre propre cadre spécialisé / ensemble d'outils. Pas quelque chose de très grand mais comme un moyen rapide d'avoir fait certaines choses à votre guise. Essayez toujours de concevoir une réutilisation, même si cela prend un peu plus longtemps au début. P>
pour Q2: em> Gexperts est utile. La recherche Grep est particulièrement pratique, bien que la recherche / remplacement puisse causer des effets secondaires impairs (insérez des caractères qu'il ne devrait pas!). p>
Je sais que vous avez mentionné la source gratuite / open source, mais Castalia est très bon. Les méthodes de refactorisation fonctionnent bien et j'aime la surbrillance structurelle, ce qui facilite beaucoup plus facilement le fonctionnement avec le code (j'utilisais à l'origine Codérush pour cela, mais il est allé que Visual Studio). La pile de signets est également pratique pour aller de retour rapide par le code. P>
En outre, si vous êtes une équipe, recherchez des moyens d'améliorer votre processus de développement. En plus d'utiliser Delphi comme langue de mise en œuvre, quelles sont vos méthodes de gestion de projet? Quel système de gestion de code source utilisez-vous? Quel est votre système de construction? Utilisez-vous des méthodes de test automatisées? c. p>
Lorsque j'ai introduit Scrum dans un employeur précédent, nous avons eu une amélioration presque immédiate de 50% de la productivité de l'équipe. Alors vérifiez les différentes méthodologies agiles. P>
Pour une réutilisabilité réelle, essayez de penser aux interfaces et d'essayer de la boîte noire autant que possible. Les modèles sont partout, les recherchent et les mettent en pratique. p>
Lorsque vous traitez avec des objets, utilisez autant que possible l'abstrait ou une interface plutôt qu'une implémentation concrète. Veillez simplement à ce que cela soit trop loin. Trop d'abastrations peuvent ajouter de la complexité et faire du débogage plus fort. p>
Les unités contenant vos règles commerciales doivent être utilisées par votre interface graphique. Les unités contenant des règles commerciales ne doivent jamais utiliser elles-mêmes directement des unités d'interface graphique. p>
Un de mes gros gains de réutilisabilité de ces dernières années a déplacé dans une couche orm (j'utilise TIOPF ) Pour séparer mes objets métier de la base de données. P>
À titre d'exemple, j'ai un dB persisté, des objets de messagerie filetés de fond. Pour les ajouter à une autre application, j'ajoute les unités requises et ajouter quelques lignes de configuration (mappage de table / champ). De même, j'ai des objets utilisateur, des listes de recherches génériques etc. peut être ajoutée à différents projets pour le prix de la configuration initiale. Cela fonctionne sur différentes bases de données sans modification autre que la configuration. P>
TIOPF est mon orje de choix (lire mon aperçu ici ) mais Il y a de nombreux autres. P>
Quand je pose des questions telles que ceci sur "Quelle est la meilleure chose à faire ou à utiliser", ils sont rapidement supprimés du site par les modérateurs. P>
À mon avis, vous avez raison d'utiliser le modèle d'échantillon. Aussi @john Thomas est correct. Mais vous pouvez aller au-delà: p>
TFRAME code> pour chaque module de votre application et réservez une place dans l'écran principal pour les charger. Créez un objet de cette image en mémoire uniquement lorsque l'utilisateur clique sur son menu. De cette façon, votre système devient plus rapide et plus de mémoire économique; Li>
- réutilisez ces images en créant des cadres de base avec la fonctionnalité courante et la mise en page et ils créent de nouveaux cadres descendants de celui-ci. Li>
ol>
Juste génial! p>