Salut, Habrahabr! Dans cet article, je partagerai mon avis sur le développement de logiciels. Je suis dans les technologies de l'information il n'y a pas si longtemps, mais j'ai développé une forte attitude envers le développement, depuis les noms des commits jusqu'à la clarification des exigences de la tùche.
Développement
Changements homogĂšnes
Imaginez que vous obteniez une tùche dans laquelle vous devez d'abord développer une solution optimisée, puis l'utiliser au lieu de l'ancienne dans une douzaine de fichiers du projet. D'abord, obtenez l'évaluation que votre approche pour résoudre le problÚme est correcte, puis refactorisez. Décidez de tout faire à la fois - vous pouvez obtenir des commentaires critiques et des corrections sur la solution lors de la révision du code. Ensuite, vous devrez réécrire tous les fichiers dans lesquels vous avez appliqué le nouveau code.
Mise en Ćuvre des tĂąches
Ne rĂ©solvez pas le problĂšme avec un sabre, ne prenez pas de dĂ©cisions importantes Ă la hĂąte, mĂȘme s'il semble que votre approche est correcte. Suivez ces directives:
- Effectuez une analyse des implémentations existantes dans le projet ou sur le réseau, actualisez les principes et les modÚles de conception dans votre mémoire.
- Ne passez pas plus de 20 minutes à résoudre des problÚmes typiques ou trop complexes, ce n'est pas efficace. TrÚs probablement, si vous n'avez pas trouvé rapidement la bonne approche, la solution n'est pas évidente.
- Demandez l'aide de vos collÚgues, y compris des développeurs principaux.
- RĂ©solvez le problĂšme dans le cadre des sous-tĂąches Ă©tape par Ă©tape, ne sautez pas par-dessus - "Je ferai le difficile plus tard." Il se pourrait bien qu'il n'y ait pas de bonnes solutions, que les solutions existantes ne conviennent pas et que la tĂąche doive ĂȘtre revue.
- Résolvez le problÚme en commençant par les choses fondamentales, assurez-vous que les zones conceptuelles fonctionnent. Il peut s'avérer qu'individuellement, votre fonctionnalité est viable, et la connecter ensemble nécessitera des «béquilles» ou une autre approche intégrée, ce qui prendra plus de temps.
Demandes de tirage
Le titre
Le titre doit dĂ©crire la thĂšse des changements - ĂȘtre concis et concis. Suivez les rĂšgles de conception de l'en-tĂȘte:
- commencer par une majuscule
- sans point Ă la fin
- avoir une humeur impérative.
Ticket-295: Add base cat interface and British cat realization
La description
Cette section de la demande d'extraction doit ĂȘtre Ă©crite correctement dans une langue comprĂ©hensible pour un spĂ©cialiste non technique, divisĂ©e par la charge sĂ©mantique, et divulguer les modifications comme suit:
- le résultat en plusieurs phrases,
- ce qui a précédé les changements
- pourquoi et pourquoi il fallait le faire,
- qu'as-tu fait exactement
- comment avez-vous mis cela en Ćuvre.
The base cats interface was created to provide the common cats functionality and attributes. Also the realization of the British cats was created as the individual one. Our business-analytics have provided for product owner that they want to interact with cats on out platform too, not only with docs. So developers got the tasks to design and implement basic implementation of the cats interface to describe the common patterns of the interaction with it by user. Also the goal was to create one demo cat called British cats (British Shorthair) with its great noses.
Aide
Enfin, laissez des liens vers les sujets traités dans la demande de tirage. Si un autre développeur a besoin de mieux comprendre les changements, il pourra y regarder. Aussi quelques rÚgles:
- DĂ©crivez briĂšvement oĂč l'aide est dirigĂ©e
- si possible - jeter des liens complets,
- sinon, raccourcissez avec git.io et bit.ly ,
- faire une liste.
References: âą British cats â https://en.wikipedia.org/wiki/British_Shorthair âą Cats anatomy â https://en.wikipedia.org/wiki/Cat_anatomy
S'engage
Fusionner le commit
Lorsque vous travaillez sur de nouvelles modifications, vous le faites dans une branche de travail distincte. Les validations dans une branche de travail auto-documentent les modifications d'une ligne.
$ git log --oneline 4336d35 Create cats interface 7bc2ba9 Implement Persian cat realization 5f330fd Add Persian cat documentation ...
Lorsque vient le temps d'apporter ces modifications Ă la branche par dĂ©faut, cela se fait dans un gros commit avec un en-tĂȘte et une description complĂšte de ce qui a Ă©tĂ© fait et pourquoi. La bonne pratique de fusion des modifications consiste Ă utiliser l'interface Web des systĂšmes de stockage de code source comme
Github et
Gitlab .
$ git log --oneline d2ccf1a Ticket-299: Prevent cats graph be stopped unexpectedly (
Par conséquent, la branche par défaut est remplie de validations avec une description détaillée des modifications.
Ticket-299: Prevent cats graph be stopped unexpectedly There was a situation when cats graph is stopped unexpectedly without any verbose information and traceback. The socket connection between two web-servers (back-end and front-end) was successfully debugged and founded the socket library async latent behavior. Implemented: â Create handler for async socket connection as sync. The consumer doesnt specify a condition for ending the while loop and stream, so the application checker in Daphne cleans up the task if the protocol disconnects and the app doesnt handle it. So `channel_layer` is wrapped to `async_to_sync`. â Fix low latency between pushing the cats graph data and its output on the user interface. There was a high coupling between interface class that proxy via a few client to the realization. The separated cats graph message class was created. References: âą Socket channel layers â https://channels.docs.io/channel_layers.html âą Daphne handle_reply() â https://git.io/fgVzK Issue:
Suivez ces instructions lorsque vous effectuez des validations de fusion:
- tous les changements en un seul commit;
- le titre et les blocs de texte avec une charge sémantique différente sont séparés par une ligne vide;
- Décrivez les changements: pourquoi ils étaient nécessaires, quel problÚme ils résolvent;
- décrire chaque changement en détail sous forme de liste: entrer dans les détails et les conséquences,
- rendre votre décision évidente;
- Laisser des liens vers l'aide, la documentation, les forums, la discussion des problĂšmes;
- faire référence à des sujets ou tirer des demandes si vos modifications s'y rapportent;
- limiter la longueur des lignes dans le message Ă 72 caractĂšres.
Compétences générales
Communication écrite
Chaque jour, les dĂ©veloppeurs mĂšnent une communication Ă©crite sur des sujets techniques, sur des projets, des approches pour rĂ©soudre des problĂšmes, mais ne le font pas toujours bien. La personne avec qui vous communiquez ne lit pas vos pensĂ©es, ne pense pas de la mĂȘme maniĂšre que vous et ne se souvient pas des dĂ©tails du sujet de la proposition que vous menez. Comment ce processus peut-il ĂȘtre amĂ©liorĂ©:
- Suivez les rÚgles d'orthographe et de ponctuation afin de délimiter le texte en sens.
- Utilisez des sauts de ligne et laissez des lignes vides entre des blocs de texte sans rapport.
- Utilisez des listes pour mettre en surbrillance une séquence ou étiqueter des phrases.
- Utilisez des services pour partager une partie du code ou utilisez des outils d'entreprise: Pastebin , Github Gist , Partage de code ou, par exemple, le messager Slack a une fonction dans le chat de code ou d'extrait de texte .
- Mettez en surbrillance vos propres noms, mots importants et détails à l'aide du marquage intégré dans votre messager. Désormais, tout messager moderne prend en charge la sélection de texte par type.
- Soutenez votre discussion avec des liens vers de la documentation, des articles ou des articles de forum.
- N'Ă©crivez pas et ne montrez pas d'informations inutiles Ă l'interlocuteur. Par exemple, ne remplissez pas la capture d'Ă©cran qui vient d'ĂȘtre prise avec le nom au format de date Screen Shot 2018-06-23 Ă 12.17.31 AM si l'autre personne voit cette inscription. Examinez de plus prĂšs le Traceback lors de la discussion sur le processus d'enregistrement de l'utilisateur.jpg .
Responsabilité
Vous évoluez en tant que professionnel non seulement lorsque vous acquérez de nouvelles expériences et connaissances, mais aussi si:
- lors de la résolution de problÚmes, consultez des experts;
- votre travail peut ĂȘtre mieux fait - amĂ©liorer;
- vous pouvez faire un meilleur travail en tant que collĂšgue - parlez-en;
- vous ne savez pas quelque chose - reconnaissez-le et demandez de l'aide;
- Améliorez les processus, apportez de nouvelles choses et n'ignorez pas les problÚmes.
Merci d'avoir pris le temps de publier. Laissez des commentaires dans des messages privés ou des commentaires, je serai heureux de discuter.