Ceci est une suite de Problèmes et contre-mesures pour le développement de jeux d'applications pour smartphone, partie 1.
Je suis actuellement responsable de l'équipe serveur, mais le problème est la gestion des tâches des membres.
Les tâches sont gérées sur le backlog en consultant le diagramme de Gantt chaque matin.
Même si vous créez une tâche de base, laissez le responsable non affecté et demandez au membre qui a terminé la tâche de mettre en œuvre la tâche qui n'est pas affectée au responsable.
La tâche créée sera attribuée aux membres et les transitions d'état suivantes se produiront.
statut | La description |
---|---|
Défaut(rouge) | État dans lequel la tâche a été créée. Même si le responsable est touché, il reste tel quel |
En traitement(Bleu) | 担当者がタスクを開始しだしたら、担当者がEn traitementにする |
Traité(vert) | 担当者がタスクを完了した場合、担当者がTraitéにする |
Terminé | 処理済みのものを、確認し、リーダがTerminéにする。担当者は実装した本人にし、変えない |
En faisant ce qui précède, vous pouvez vérifier quelle tâche le membre a traitée ultérieurement en filtrant par responsable, ce qui est pratique pour regarder en arrière.
Pour rappel, toutes les tâches à effectuer sont inscrites sur le backlog et sur le diagramme de Gantt du backlog avec une date appropriée dans le futur. Je n'oublierai jamais cela! Devrait être.
Un modèle courant est que le client a planté l'application (500 ou quelque chose est revenu) en raison d'une réponse du serveur, mais vérifiez-le. Dans certains cas, comme un rapport du débogueur, il y a un décalage dans le temps, il est donc difficile de savoir quelle demande. Même si vous obtenez un ** ID utilisateur **, il est difficile de rechercher à partir de nombreuses requêtes.
Les éléments suivants peuvent être considérés comme des mesures à cet effet.
Celui qui était à l'origine utilisé par d'autres équipes semblait pratique, alors je l'ai porté et j'ai demandé aux membres de l'équipe de l'améliorer.
Vous pouvez restreindre les demandes envoyées au serveur par ID utilisateur et effectuer une recherche. Il enregistre également le temps de traitement du serveur, vous pouvez donc filtrer les demandes avec une réponse lente.
Appuyez sur le menu ouvert pour voir le contenu de la demande et de la réponse.
Ce qui précède est utile car le client peut également voir intuitivement la demande et la réponse.
La société utilise Sentry en tant que service pour détecter et enregistrer les exceptions.
Lors de l'envoi de ce journal Sentry, l'ID utilisateur peut également être envoyé sous forme de métrique personnalisée.
class ErrorHandleMiddleware(object):
...
def process_exception(self, request, exception):
if not self._can_emit(exception):
return
data = self._gen_data(request)
if getattr(request, 'device_id', None):
tags = {'device_id': request.device_id}
else:
tags = None
client.captureException(data=data,
tags=tags,
exc_info=sys.exc_info())
...
Cela vous permet de trouver l'erreur en recherchant par ID utilisateur.
Lorsqu'une exception se produit, divers journaux sont envoyés à Sentry et peuvent être vus comme suit.
Également dans New Relic [ici](http://qiita.com/wapa5pow/items/0a4132c62d807286af9d#%E3%82%B1%E3%83%BC%E3%82%B93-%E4%BE%8B%E5%A4% 96% E3% 81% 8C% E7% 99% BA% E7% 94% 9F% E3% 81% 97% E3% 81% 9F% E3% 81% A8% E3% 81% 8D% E3% 81% AB% E3% 81% 9D% E3% 81% AE% E3% 83% 97% E3% 83% AC% E3% 82% A4% E3% 83% A4% E3% 83% BCid% E3% 81% 8C% E7% Vous pouvez envoyer l'ID utilisateur en faisant quelque chose comme 9F% A5% E3% 82% 8A% E3% 81% 9F% E3% 81% 84).
[Écrit avant](http://qiita.com/wapa5pow/items/e3ef018af270cc2ad014#%E3%82%B1%E3%83%BC%E3%82%B91-%E3%82%A2%E3%83% 97% E3% 83% AA% E3% 82% B1% E3% 83% BC% E3% 82% B7% E3% 83% A7% E3% 83% B3% E3% 81% AE% E5% BF% 9C% E7% AD% 94% E3% 81% 8C% E9% 81% 85% E3% 81% 84% E3% 81% 91% E3% 81% A9% E3% 82% 82% E3% 81% A3% E3% 81% A8% E6% 97% A9% E3% 81% 8F% E3% 81% AA% E3% 82% 89% E3% 81% AA% E3% 81% 84% E3% 81% 8B) Je pense que tu devrais l'utiliser.
Je pense que vous devriez faire un test de charge. locust est écrit en python et ça fait du bien. J'écrirai ici le savoir-faire séparément.
Lors du test dans un environnement de développement, vous souhaiterez peut-être utiliser les mêmes informations utilisateur que dans un environnement de production. Par exemple, le niveau a été augmenté ou l'unité spécifiée est en possession.
Ce qui précède peut être réalisé sur l'écran de gestion, et l'importation / exportation peut être effectuée avec json.
Recommended Posts