[JAVA] Gorigori SIer SE bemühte sich bis zur Veröffentlichung in der ersten persönlichen Entwicklung

Es ist wie die Fortsetzung von. Das letzte Mal schrieb ich die Geschichte "Ich habe versucht, einen Webdienst zu erstellen". Bei dem, den ich geschrieben habe, dachte ich, aber die meisten Einführungen von Webdiensten enthalten nicht viele SIer-Elemente. Was die vorherige Absicht betrifft, höre ich manchmal eine Stimme, die sagt: "SIer wirft sie nur an BP und programmiert nicht", anstatt den Webdienst selbst anzusprechen. SE programmiert also und es ist wie ein Webdienst Ich wollte Ihnen ein experimentelles Ergebnis zeigen, dass es so aussehen würde, wenn Sie es machen. Legen Sie beiseite, ob es ein Erfolg oder ein Misserfolg war. Ich habe jedoch das Gefühl, dass ich nur "Ich habe das gemacht" geschrieben habe, daher werde ich den Entwicklungsprozess grob beschreiben und hoffe, dass er hilfreich sein wird.

Es ist wirklich rau. Nicht modern. Es fühlt sich an wie ein Lesematerial. Es ist ein "Gedicht" -Tag.

1. Motivation

Dieses Mal war "was ich machen möchte" der Katalysator für meine Entwicklung. Es ist gut, durch Nachverfolgung systematisch von Grund auf zu lernen, aber welche Funktionen sind für "was Sie machen möchten" und welche Technologie für diese Funktionen erforderlich? Während ich darüber nachdachte, vergaß ich die Zeit und sie wurde immer mehr geformt. Ich denke jedoch nicht, dass "was ich machen möchte" so einfach herauskommt, deshalb denke ich, dass es gut ist, verschiedene Leute zu fragen "was ich will". Wenn Sie es "was Sie machen wollen" machen, denke ich, dass sich Ihre Hände frei bewegen werden.

2. Entwicklungsumgebung

Womit sollen wir in diesem Sinne beginnen ... Ich stellte mir eine Produktionsumgebung vor. Ich habe keine moderne Erfahrung. "Nun, es ist meine erste persönliche Entwicklung, ist es in Ordnung, einen Server zu haben? Also Apache Tomcat für den Web / AP-Server und MySQL für die DB, aber diesmal ist es MariaDB, die ihn nicht berührt hat!" Mögen. Der Rest ist die Sprache. Wie ich bereits geschrieben habe, habe ich Vue für das Frontend und Java (Spring Boot) für das Backend ausgewählt, um mit unerfahrenem Vue und erfahrenem Java ausgewogen zu lernen. Und der Herausgeber. Ich habe Erfahrung mit C # und Java und habe sie in meiner Arbeit mit Visual Studio und Eclipse verwendet. Ich habe keine Visual Studio-Lizenz. Nach meiner Erfahrung mache ich mir Sorgen, dass Eclipse beim Start schwer und manchmal moosig ist. Ich habe mich für VS Code entschieden, weil VS Code, den ich oft sehe, leicht ist und für Java einfach zu verwenden scheint. Es gibt keine spezielle Versionskontrolle für die Quellversion. Es gibt keinen Container.

3. Starten Sie die Entwicklung mit Java

Zuerst habe ich über den Anmeldebildschirm angefangen zu machen. Erstens ist der Anmeldebildschirm ... nicht sehr interessant. Ich habe es mit der Funktion von Spring Boot implementiert.

Als nächstes die Grundlagen von SIer, dem Hauptwartungsbildschirm. Das erste, was SIer erstellt, um die Entwicklung zu lernen, ist das Bild eines Massenbildschirms. Da ich Erfahrung habe, ist die Implementierung vorerst abgeschlossen. Zu diesem Zeitpunkt habe ich noch nichts dekoriert. Ich zeigte Yome den Anmeldebildschirm und den Massenmenschenbildschirm und sagte: "Ich könnte das tun." Die Reaktion war so etwas wie "Wie viele Stunden verbringst du so?" Es scheint, dass die Wirkung des Erscheinungsbilds stärker war als die Funktion. Das hat meine Motivation gesenkt. An diesem Punkt stellte ich Vue vor,

Ich bin eine unerfahrene Vue-Person. (Ich behandle einfaches JavaScript so wie es ist) Es ist eine Bibliothek, und es fühlt sich an, als würden Sie irgendwo eine Datei ablegen und darauf verweisen? Das habe ich mir gedacht. Zum Lernen mag es so sein, aber als ich Node.js und Vue CLI installierte und ein Projekt aus Vue CLI erstellte, kam etwas anderes heraus, als ich mir vorgestellt hatte. Sich alleine bewegen ... Mein Vue-Level.

4. Entwicklungsablauf

In meiner Arbeit schreibe ich Spezifikationen, lasse sie überprüfen und dann erneut überprüfen ... aber diesmal habe ich das nicht im Detail getan. Als SIer habe ich alles von "Anforderungsdefinition-> externes Design-> internes Design-> Implementierung-> verschiedene Tests-> Release" erlebt, also habe ich möglicherweise verschiedene Dinge in meinem Kopf getan. Der Fluss dieses Mal ist für jede Funktion ・ Notiz des Bildschirmbildes ・ Notiz des Bildschirmübergangsdiagramms ・ DB-Tabellenentwurfsnotiz Ich habe es gemacht. Und sie sind gerade nicht zur Hand. Es ist verloren. Bei der Übernahme des Geschäfts muss gesagt werden: "Es gibt keine Spezifikation. Bitte beachten Sie die Quelle." Selbst wenn sich das Bildschirmbild oder der Bildschirmübergang geändert hat, wurde es innerhalb der Funktion geschlossen, sodass der Effekt gering war. Als sich das Tabellenelement änderte, war der Effekt auf andere Funktionen groß und es gab viele Probleme, sodass ich etwas genauer darüber nachdachte. Ich hätte es tun sollen ... jetzt denke ich.

5. Plötzlich API

Jetzt haben wir zwei Ausführungsumgebungen, Node.js und Tomcat. Heutzutage hat sich das Image der Konvertierung des Backends in die REST-API verfestigt. Zum Zeitpunkt der Entwicklung habe ich das Vue-Projekt in das Java-Projekt eingefügt und sowohl Node.js als auch Tomcat gestartet. In der Produktionsumgebung habe ich die in der Kriegsdatei enthaltene erstellte Vue-Datei erstellt und alles auf Tomcat abgelegt.

6. Starten Sie die Entwicklung mit Vue + Java (Spring Boot)

Erstellen Sie den Anmeldebildschirm und den Massenmenübildschirm mit Vue + Spring Boot (REST API) neu. Als ich hier gesucht habe, gab es verschiedene Möglichkeiten, so dass ich dort nicht stecken blieb.

Ich habe Element zuerst zur Validierung verwendet, aber als ich versuchte, serverseitige Fehler zu behandeln, funktionierte es nicht, und so wechselte ich zu Vee Validate. Ich mache etwas mit Vee Validate.

Der Ablauf der Implementierung war im Allgemeinen Routine. Bildschirmerstellung (Vue) → Tabellenerstellung (DB) → Repository-Klassenerstellung (Java) → Serviceklassenerstellung (Java) → Controller-Klassenerstellung (Java) → REST-API-Zugriffsteilerstellung (Vue) → Bildschirmanpassung (Vue) Es fühlt sich an, als würde man dies für jede Funktion wiederholen.

Übrigens habe ich in meiner Erfahrung als SIer nur eine Weile mit einem Designer zusammengearbeitet und habe wenig Designkenntnisse. Das Finish ist also beim Design unbeschreiblich.

7. Erstellung anderer Funktionen

Die Erstellung jeder Funktion basierte auf Erfahrungen und Dienstleistungen, die voller Welt sind. Die ausschließliche Kontrolle wurde fein durchgeführt ... Es gab auch viele Websites, auf denen ich gelernt habe, wie man Chat implementiert, ohne auf die Dienste zu verweisen, die in der Welt überfüllt sind. Da es jedoch viele einfache Chats gibt, habe ich darüber nachgedacht, ob die Mitglieder online sind, die Löschfunktion und die Anzeige von Symbolen.

Als ich versuchte, die Funktion zum späteren Löschen der Chat-Nachricht zu implementieren, stellte sich heraus, dass sie aufgrund der Struktur der Tabelle nicht gelöscht werden konnte. Zu diesem Zeitpunkt überprüfte ich die Struktur der Tabelle in Bezug auf den Chat, sodass der Einflussbereich groß war. Ich dachte, es wäre in Ordnung, die Nachricht später zu löschen, aber ich dachte auch, dass die Struktur der Tabelle bis zu einem gewissen Grad hätte berücksichtigt werden müssen.

Ich habe es Yome oft gezeigt, aber er sagte etwas ziemlich Hartes. Besonders das Design und die Bedienbarkeit. Sagst du so viel Über. Nun, das ist es, was den Benutzern wichtig ist. Ich bin dankbar, dass es einige Teile gibt, die sich verbessert haben, während sie darauf hingewiesen wurden, dass es keinen Körper oder Deckel von Yome gibt.

8. Negativ nähern

Während der Entwicklung kommt er von Zeit zu Zeit. "Wer wird diesen Service nutzen ...?" Es wird ein großer Schatten und hüllt den Blick in Dunkelheit. Kritik "Es ist ein verdammter Dienst" Bewertung "kann nicht verwendet werden" Überprüfen Sie "zu viele Fehler" Negative Bewertungen laufen in meinem Kopf herum. Und ich möchte anhalten und alles wegwerfen. Die unfertigen Apps, die auf halbem Weg angehalten und unbeaufsichtigt gelassen wurden, werden überall schlafen.

In einem solchen Fall kann es notwendig sein, die Belohnung aus Sicht des Benutzers wiederzugewinnen, aber ich bin dem Spaß am Programmieren entkommen. Wenn ich mich dann ruhig fühle, kehre ich zur Perspektive des Benutzers zurück. Ich konnte meine Motivation halten, indem ich sie wiederholte.

9. Aufgabenverwaltung zur Synchronisierung zwischen Benutzern, die Probleme haben

Ich dachte, ich möchte eine Funktion hinzufügen, um die Bildschirme von Benutzern mit WebSocket wie Chat mit der Aufgabenverwaltung zu synchronisieren, und dachte mir, dies mit Vue.Draggable + WebSocket zu realisieren, aber eine subtile, nein, ziemlich besorgniserregende Ist vorgefallen.

Etwas über Vue.Draggables seltsame Bewegungen mit symptomatischer Therapie

Die Bewegung ist subtil. Immerhin machte ich mir zwei Tage Sorgen und schaffte es, sie mit einer symptomatischen Behandlung loszuwerden.

10. Vorbereitung zur Veröffentlichung

Der Server verwendete AWS EC2. Zuerst habe ich eine Instanz der kostenlosen Stufe verwendet, aber da der Speicher zu klein war und die Leistung beeinträchtigte, habe ich die Spezifikation etwas verbessert, selbst wenn sie bezahlt wurde. Studiengebühr, Studiengebühr ... Richten Sie hier einfach den DB- und Web / AP-Server ein und setzen Sie das erstellte Modul darauf.

Nachdem ich alle Funktionen erstellt hatte, begann ich, die für die Veröffentlichung erforderliche Domäne zu erwerben und in HTTPS zu konvertieren. Ich habe mich gefragt, ob etwas schwierig sein würde, aber der Erwerb der Domain und die Konvertierung zu HTTPS waren unter AWS problemlos möglich. Es scheint, dass die .com-Domain etwa 1.000 Yen pro Jahr kostet ... Wir haben Bequemlichkeit vor kostenlos gesetzt.

Wenn Sie bereit sind, lassen Sie es uns einfach wissen. Dieses Mal habe ich es auf dem SNS angekündigt, wo ich ein Konto habe. Als ich dachte, dass das Drücken dieser Taste mich benachrichtigen würde, war es ein ziemlicher Fingerziehzustand.

11. Nach der Veröffentlichung

Es gibt keinen großen Unterschied. Manchmal bekomme ich einen bitteren Kommentar und versinke ... Ich denke, es ist ziemlich schwierig, sie dazu zu bringen, es zu benutzen. Ich habe nicht entschieden, was ich in Zukunft tun soll. Ich denke, es ist am wichtigsten, nachdem es veröffentlicht wurde.

12. Schließlich

Ich werde es entwickeln! Es ist ungefähr so von der Entscheidung zur Veröffentlichung. Es gibt nur wenige technische Elemente, aber es ist ein Gedicht. Was ich darüber nachdachte, war, dass selbst wenn ich dachte: "Oh, das wird definitiv nicht gelöst werden!", Es höchstens innerhalb einer Woche erledigt sein wird. Es wird unerwartet gelöst. Es ist solide, aber ich kann es mir in der Badewanne oder Toilette vorstellen.

Wenn ich es tue, taucht immer die Frage "Wer wird diese Art von Service nutzen ...?" Auf. Ich glaube nicht, dass jemand es tatsächlich benutzt. Aber ich denke, es ist wichtig, es zu erleben, bis es einmal veröffentlicht wird. Wenn es nicht funktioniert, können Sie es einfach erneut erstellen. Ich bin keine geistig starke Person mit einem brüchigen Herzen, aber ich bin verbeult, aber bereit, mich vorwärts zu bewegen. Also, auch wenn Sie noch nie eine öffentliche App erstellt haben, warum probieren Sie es nicht aus?

Recommended Posts

Gorigori SIer SE bemühte sich bis zur Veröffentlichung in der ersten persönlichen Entwicklung
Gorigori SIer SE hat versucht, durch persönliche Entwicklung einen Webdienst zu erstellen