[PYTHON] Probleme und Gegenmaßnahmen bei der Entwicklung von Smartphone-App-Spielen Teil 2

Dies ist eine Fortsetzung von Probleme und Gegenmaßnahmen für die Entwicklung von Smartphone-App-Spielen Teil 1.

Ich weiß nicht, wer gerade welche Aufgabe erledigt

Ich bin derzeit der Leiter des Serverteams, aber das Problem ist die Verwaltung der Mitgliederaufgaben.

Aufgaben werden im Backlog verwaltet, indem Sie sich jeden Morgen das Gantt-Diagramm ansehen.

backlog_1.png

Selbst wenn Sie eine Basisaufgabe erstellen, lassen Sie die verantwortliche Person nicht zugewiesen und bitten Sie das Mitglied, das die Aufgabe beendet hat, die Aufgabe auszuführen, der die verantwortliche Person nicht zugewiesen ist.

Die erstellte Aufgabe wird den Mitgliedern zugewiesen und die folgenden Statusübergänge werden ausgeführt.

Status Erläuterung
Standard(rot) Der Status, in dem die Aufgabe erstellt wurde. Auch wenn die verantwortliche Person berührt wird, bleibt sie so wie sie ist
wird bearbeitet(Blau) 担当者がタスクを開始しだしたら、担当者がwird bearbeitetにする
Verarbeitet(Grün) 担当者がタスクを完了した場合、担当者がVerarbeitetにする
Erledigt 処理済みのものを、確認し、リーダがErledigtにする。担当者は実装した本人にし、変えない

Auf diese Weise können Sie überprüfen, welche Aufgabe das Mitglied später bearbeitet hat, indem Sie nach der verantwortlichen Person filtern. Dies ist für den Rückblick praktisch.

Zu erledigende Aufgaben werden vergessen

Zu beachten ist, dass alle Aufgaben, die ausgeführt werden müssen, im Backlog und im Gantt-Diagramm des Backlogs mit einem geeigneten Datum für die Zukunft abgelegt werden. Ich werde das niemals vergessen! Sollte sein.

Der Client sagt, dass auf dem Server ein Fehler vorliegt, aber ich weiß nicht, welche Art von Anfrage gestellt wurde

Ein häufiges Muster ist, dass der Client die App aufgrund einer Serverantwort zum Absturz gebracht hat (500 oder etwas kam zurück), aber überprüfen Sie es. In einigen Fällen, z. B. bei einem Bericht des Debuggers, tritt eine Zeitverzögerung auf, sodass es schwierig ist, die Anforderung zu ermitteln. Selbst wenn Sie eine ** Benutzer-ID ** erhalten, ist es schwierig, aus vielen Anfragen heraus zu suchen.

Das Folgende kann als Maßnahme dafür angesehen werden.

Ermöglichen Sie das Anzeigen von Anforderungen und Antworten für jede Benutzer-ID auf dem Verwaltungsbildschirm

Ursprünglich von anderen Teams verwendet, schien es praktisch zu sein, also habe ich es portiert und die Mitglieder des Teams gebeten, es zu verbessern.

Sie können die an den Server gesendeten Anforderungen nach Benutzer-ID und Suche eingrenzen. Außerdem wird die Verarbeitungszeit des Servers aufgezeichnet, sodass Sie Anforderungen mit langsamer Antwort filtern können.

api_res_1.png

Drücken Sie auf das geöffnete Menü, um den Inhalt der Anfrage und Antwort anzuzeigen.

api_res_2.png

Das Obige ist nützlich, da der Client die Anforderung und Antwort auch intuitiv sehen kann.

Ermöglichen Sie Sentry die Suche nach Benutzer-ID

Das Unternehmen nutzt Sentry als Service, um Ausnahmen abzufangen und aufzuzeichnen.

Beim Senden dieses Sentry-Protokolls kann die Benutzer-ID auch als benutzerdefinierte Metrik gesendet werden.

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())
    ...

Auf diese Weise können Sie den Fehler finden, indem Sie nach Benutzer-ID suchen.

Wenn eine Ausnahme auftritt, werden verschiedene Protokolle an Sentry gesendet und können wie folgt angezeigt werden.

sentry_1.png

sentry_2.png

Überprüfen Sie Fehler mit New Relic

Auch in New Relic [hier](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% Sie können die Benutzer-ID senden, indem Sie beispielsweise 9F% A5% E3% 82% 8A% E3% 81% 9F% E3% 81% 84) ausführen.

Ich möchte langsame APIs identifizieren und verhindern, dass sie veröffentlicht werden, bevor sie veröffentlicht werden

[Vorher geschrieben](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) Ich denke du solltest es benutzen.

Ich möchte sehen, ob die Leistung des Servers herauskommt

Ich denke, Sie sollten einen Belastungstest machen. Heuschrecke ist in Python geschrieben und es fühlt sich gut an. Ich werde das Know-how hier separat schreiben.

Ich möchte den Benutzer in der Produktionsumgebung in der Entwicklungsumgebung reproduzieren

Beim Testen in einer Entwicklungsumgebung möchten Sie möglicherweise dieselben Benutzerinformationen wie in einer Produktionsumgebung verwenden. Zum Beispiel wurde das Level erhöht oder die angegebene Einheit ist im Besitz.

Das Obige kann auf dem Verwaltungsbildschirm realisiert werden, und der Import / Export kann mit json erfolgen.

Recommended Posts

Probleme und Gegenmaßnahmen bei der Entwicklung von Smartphone-App-Spielen Teil 1
Probleme und Gegenmaßnahmen bei der Entwicklung von Smartphone-App-Spielen Teil 2
Probleme und Gegenmaßnahmen zum Überlaufen der Binärisierung von Otsu in Python
[Tipps] Probleme und Lösungen bei der Entwicklung von Python + Kivy
AM-Modulation und Demodulation mit Python Part 2
Lasttest der Smartphone-Spiel-App Iroha
Easy Raspberry Pi GUI App Entwicklung Anfänger Teil 1
[Python] Udemy Image Judgement AI App-Entwicklung Teil1
Easy Raspberry Pi GUI App Entwicklung Anfänger Teil 2