Tranche d'expérience personnelle: développement, pull demandes, commits, compétences logicielles


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 (#301) 82a921a Ticket-295: Add base cat interface and british cat realization (#293) ... 

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: #56 

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.

Source: https://habr.com/ru/post/fr416545/


All Articles