Je travaille dans un environnement où nous avons de nombreux projets avec des délais stricts sur les livrables. Nous parlons même directement aux clients, donc faire les travaux rapidement et est un must.
Mon problème est que j'écrirais toujours du code pour la première solution qui me vient à l'esprit, ce que je pensais bien sûr le mieux à ce moment-là. Cependant, cela finit toujours par être laid et je me rendrais compte plus tard qu'il existe de meilleures façons de le faire, mais je ne peux pas me permettre de changer en raison de contraintes de temps.
Existe-t-il des astuces pour rendre mon code efficace tout en le livrant à temps?
self-improvement
Gladysbixly
la source
la source
Réponses:
Si le code doit être maintenu, expliquez que du temps supplémentaire est nécessaire pour rendre le code plus maintenable, ce qui leur fera économiser de l'argent sur le backend. En d'autres termes, faites du code maintenable une exigence.
S'ils ne se soucient pas de cela, je ne pense pas que vous ayez besoin de faire quelque chose de différent, à part vous améliorer tout le temps et faire de votre mieux pour incorporer les meilleures pratiques dans la mesure du possible.
la source
D'accord, cela peut sembler un peu fou, mais je jure que cela fonctionne. Ce n'est pas seulement pour la programmation, c'est une recette pour augmenter la créativité, la concentration et la mémoire:
Avant de vous en rendre compte, vous constaterez une nette amélioration de la productivité de votre programmation et de la qualité des solutions (sans parler des améliorations dans d'autres domaines).
Sources:
la source
C'est contre-intuitif, mais vous devez probablement ralentir. Lorsque vous implémentez la première solution qui vous vient à l'esprit, vous créez beaucoup de travail supplémentaire par la suite. Par "sur la route", je veux dire dès la fin de l'après-midi. Les problèmes que vous vous créez ne prennent pas des mois à se développer. Considérez vos options. Tapez moins et réfléchissez plus. Même dans un court projet, vous constaterez que moins de codage peut réellement vous accélérer.
Si vos clients se regroupent dans des secteurs spécifiques, essayez de créer des projets qui ont des composants réutilisables. Ne pas écrire de code est plus rapide que de l'écrire.
Du point de vue de votre client, cela sent un peu comme " Rapide, bon et pas cher, choisissez deux ". Bien sûr, nous voulons tous ce que nous désirons immédiatement, mais vos clients doivent déterminer si cela est le meilleur à long terme. Essayez d'articuler les compromis et aidez-les à prendre de bonnes décisions.
la source
Chercher un autre emploi.
Vous constaterez qu'après environ 6 mois. à une année où vous ne serez pas fier du travail que vous avez accompli. De plus, vous n'aurez pas passé de temps à vous renseigner sur les nouvelles techniques, technologies ou cadres - donc après un an, vous n'aurez pas pu suivre les nouvelles technologies. Vous serez un pire programmeur par rapport au marché après un an que vous ne l'étiez au début.
Si trop de temps passe (disons quelques années ou plus), vous aurez beaucoup de mal à être embauché n'importe où, sauf pour ces types d'emplois rapides où le code de qualité n'est pas apprécié, seulement la vitesse.
Cela dit, en tant qu'expérience d'apprentissage «dans le monde réel», il y a quelque chose à dire pour l'environnement au rythme rapide, mais je dirais que environ 6 mois. est assez. Au-delà de cela, vous devriez chercher à vous connecter avec quelques recruteurs et à chercher un meilleur endroit. Vous serez beaucoup plus heureux, honnête.
la source
Pour vos clients, l'efficacité du code n'est peut-être pas aussi critique et peut être assez coûteuse. De nos jours, le temps passé à créer du code doit permettre d'économiser des heures de CPU pour justifier une heure de votre temps. Pour la plupart des programmes, l'efficacité n'est pas si critique. Même pour ceux où il se trouve, la plupart du code n'a pas besoin d'être aussi efficace. Étant donné le choix, ma préférence serait pour une solution facile à maintenir plutôt que pour un code plus efficace et plus difficile à maintenir.
Prendre le temps de planifier votre codage avant de commencer peut vous donner le temps d'évaluer des solutions et d'envisager d'autres approches. Cela devrait vous faire gagner du temps dans le codage et les tests. J'ai trouvé qu'un code souvent plus simple est plus efficace.
Disposez le code proprement en utilisant autant de lignes que nécessaire. Un code complexe peut confondre l'optimiseur et peut entraîner un code plus lent. Les compilateurs modernes sont très bons pour optimiser le code, faites-lui confiance pour faire son travail.
Acceptez que suffisamment bon est assez bon. Lorsque vous proposez des approches plus efficaces, notez-vous. Si vous avez du temps, comparez quelques-unes de vos conceptions les plus efficaces avec celles que vous avez mises en œuvre. Essayez-les dans le petit (juste le code effectué) ainsi que dans le grand (le programme qui les utilise). Cela vous donnera une idée du moment où une approche plus efficace est appropriée.
Beaucoup de gens considèrent l'optimisation prématurée comme une mauvaise approche. Sa mise en œuvre peut être coûteuse. Malheureusement, de nombreuses optimisations prématurées ne sont en fait pas aussi efficaces que le code qu'elles ont optimisé. Pour optimiser correctement le code, vous devez instrumenter le code avant et après le changement pour voir si vous avez vraiment amélioré l'efficacité.
Étudiez les techniques qui vous aident à écrire du code plus propre avec un faible couplage et une cohésion élevée. Dans de nombreux cas, la réduction de la complexité augmente l'efficacité. Les techniques qui vous aident à minimiser les bogues que vous devez corriger pendant le développement vous aideront à livrer plus rapidement. Cela peut vous libérer du temps pour tester d'autres approches.
la source
Robert a couvert les aspects les plus importants.
J'ai travaillé dans de tels environnements, où le code ne vit pas (ne peut pas) vivre plus de six mois. Il y a quelques règles générales auxquelles je peux penser:
la source
Dans la phase de conception, parlez à vos collègues .
Discutez de votre conception et de la façon dont vous voulez le faire, et demandez-leur d'examiner vos décisions. Si et quand vous êtes tous d'accord sur ce qui est intelligent, vous avez un design beaucoup plus sonore.
la source
Entraine toi. Entrainez-vous à écrire un bon code jusqu'à ce qu'il devienne une seconde nature. Ensuite, entraînez-vous à coder plus rapidement. Ensuite, entraînez-vous mieux à coder. Et quand vous avez terminé ... entraînez-vous un peu plus.
la source
Non, ce n'est pas votre problème. C’est une vertu. Il fait la chose la plus simple qui pourrait fonctionner. Mais cela ne fonctionne que lorsqu'il est combiné avec une refactorisation. C'est un processus continu: faire la prochaine chose la plus simple qui pourrait éventuellement fonctionner, encore et encore, afin que votre système soit toujours une expression de votre compréhension actuelle de l'espace de la solution.
Votre problème est que vous avez une direction qui ne comprend pas le véritable coût du cycle de vie des systèmes logiciels. 90% de ce coût est la maintenance, pas la mise en œuvre initiale. Les tests et la refactorisation sont nos meilleurs outils pour réduire le coût total du cycle de vie d'un système logiciel. Si vos managers ne vous permettent pas de faire ces choses, ils sont irresponsables et doivent être recyclés. Ou vous devez trouver un nouvel emploi.
Enfin: comme je l'ai déjà dit *, vous devez apprendre à dire non .
* Comment coder sur un planning très serré?
la source
S'ils fixent la portée et le temps, tout ce que vous pouvez faire pour respecter le délai est la qualité de la goutte.
Si possible, laissez tomber la qualité externe, visible par les parties prenantes, ne compromettez pas la qualité interne, des choses qui nuisent à votre habitabilité dans la base de code.
Je ne pense vraiment pas que l'amélioration de soi va vous aider un peu dans cette situation. Si quoi que ce soit, désolé de le dire, c'est généralement de l'affirmation de soi.
Essayez de mettre un pied dans la porte lorsque le travail est estimé. Comment votre patron peut-il estimer le temps qu'il vous faut pour faire quelque chose?
Apportez des choix à votre patron et / ou client. Trop souvent, ce sont les développeurs eux-mêmes qui choisissent d'abandonner la qualité sans rien communiquer. Les projets / travaux en retard sont très courants et généralement «gérés». Agissez à temps, avertissez les gens si vous voyez venir un délai non respecté.
Ils ne peuvent pas réduire la portée ou déplacer la date limite si vous ne leur dites rien.
Si vous allez faire un compromis sur la qualité sous quelque forme que ce soit, essayez de laisser leur décision. Donnez-leur du poids les uns contre les autres.
Certaines choses que VOUS seul pouvez décider. Si vous arriviez à le faire fonctionner. Mais c'est très difficile à maintenir. Peut-être n'êtes-vous pas sûr que cela fonctionne dans tous les cas. Ne dites à personne que vous avez terminé. Refais-le. Très souvent, c'est une décision que vous seul pouvez prendre. Soit parce que le problème prend beaucoup de temps à articuler, soit que vous avez un responsable non technique.
Parfois, cela fait partie de votre éthique de travail, voudriez-vous simplement recoudre un patient sans vous laver les mains parce qu'il n'y a pas de temps?
Surtout, souvenez-vous: il n'y en a pas plus tard.
la source
Je suis un développeur .Net travaillant sur des applications Web.
Ce que j'ai commencé à faire, c'est -
S'il s'agit de code C #, j'essaie d'abord d'écrire ce code dans LinqPad (si possible).
S'il s'agit de code Javascript, j'écris d'abord ce code et le teste dans jsfiddle / jsbin (si possible).
J'ai trouvé que cela aide à la qualité du code mais ne me ralentit pas (et dans plusieurs cas, je l'ai trouvé plus rapide).
la source