Ich habe am JJUG CCC 2019 Herbst teilgenommen.
Hat zum ersten Mal seit einem halben Jahr mit Java an der Veranstaltung teilgenommen! !!
Grundkenntnisse in objektorientierter Programmierung in Java
Material des Präsentators
- Objektorientiertes Denken kann auf die Softwareentwicklung angewendet werden
- Herr Masudas Engagement für objektorientierte Programmierung
- Modularität
- Teilen Sie das Programm nach Typ (Werttyp)
--Machen Sie ein Modul mit einer Form
- Naht
- Entwicklungsmethode, die die Nähte einer Reihe von Aktivitäten beseitigt
- Worte, die ich mit nach Hause nehmen soll
--Art
- Kapselung
- Zwei Modi
--Modus 1
- Verwenden Sie nur vordefinierte Typen
- Nur Standardbibliotheken und integrierte Typen
- Typ Verbraucher
--Modus 2
- Definieren Sie Ihren eigenen Typ
- Formenbauer
――Was ist eine objektorientierte Verbesserung der Programmierkenntnisse?
- Übergang von Modus 1 zu Modus 2
--Klassendesignfähigkeiten
- Fähigkeiten zum Entdecken und Verbessern einzigartiger Typen
--Zusammenfassung
--Kapseln Sie die konzeptionelle Sache des Typs in eine Klasse
- Geben Sie der Klasse eine Definition des Wertebereichs und eine Definition der Funktionsweise der Werte
Impressionen
Es war völlig anders als ich vorher dachte, aber es war ziemlich interessant
13: 30-14: 15 Öffnen! Domain-gesteuerte Designtür
[Präsentationsmaterial (nicht verfügbar)](nicht verfügbar)
Überblick
Was ist ein domänengesteuertes Design?
Wie gut ist es
Wie soll ich das machen (Hier war es zu schnell, um sich Notizen zu machen)
Memo, als ich hörte
--Motivation
――Warum domänengesteuertes Design?
--Was ist nicht domänengesteuertes Design?
- Verlieren Sie sich in der Code-Gesamtstruktur
- Streuungsbezogene Implementierungen
- Zweck
――Der Software-Benutzer und der Code sind verbunden
- Praxis zur Verbesserung der Wartbarkeit, nicht der Entwicklungsgeschwindigkeit
--Was ist domänengesteuertes Design?
--Was ist eine Domain?
- Was ist der Umfang der Software?
- Domäne und Code sind über ein Modell verbunden
- Es wird eine iterative Entwicklung sein
- Strom des Wissens
- Domänenexperte
--Arbeiter
- Menschen, die wissen, was wichtig ist
- Personen, die sich bei der Entscheidung für eine Domain mit Entwicklern beraten
- Entwickler müssen mit Domain-Experten sprechen
--Verwenden Sie die allgegenwärtige Sprache
――Wörter, die jeder verstehen kann
- Verständnis unter Verwendung der Sprache der anderen Partei
- Tiefes gegenseitiges Verständnis
- Komponente
»Es ist zu früh, um sich eine Notiz zu machen. ..
- Zu einem tiefen Modell
――Ich kann nicht von Anfang an alles erfassen
――Die Gesprächskraft ist wichtig
- Fangen Sie die momentanen Nuancen ein
- Ich hasse Refactoring nicht
--Zusammenfassung
――Was ist domänengesteuertes Design? Praktiken zum Üben des Alltäglichen
Impressionen
Es war interessant, weil es eine Geschichte gab, die zu "Grundkenntnissen der in Java erlernten objektorientierten Programmierung" führte.
Es gab viele Punkte, mit denen ich nicht Schritt halten konnte, weil es zu schnell war.
14: 30-15: 15 Wiedereinführung in JUnit
Material des Moderators
Memo
――Warum Testcode schreiben
- Weil Regressionstests möglich sind
--Hohe Zuverlässigkeit
――Verlassen Sie keine Persönlichkeit
- Bestätigen Sie den Abschluss des Debugs zur Laufzeit
――Debak macht Spaß
――Psychologische Schäden treten auf, wenn Menschen auf Fehler hinweisen. .. .. ..
- Testtipps
- Schreiben Sie zuerst den Test
- Wird nach Bestätigung des Testfehlers implementiert
- Wird nach Garantie des Ausfalls implementiert
- Geben Sie einen beschreibenden Testnamen an
- Schreiben Sie den Testnamen auf Japanisch
- Alle Teammitglieder müssen fließend Japanisch sprechen
- Überschreiben Sie die Behauptung nicht
――Schreiben Sie in mäßig organisierten Einheiten
--Verwenden Sie assertAll nach Bedarf
- Seien Sie nicht zu speziell in Bezug auf die Berichterstattung
- Testen Sie keinen bewährten Code
- Getter und Setter müssen nicht getestet werden
Impressionen
Ich hatte das Gefühl, dass die erste Hälfte für Anfänger und die zweite Hälfte wichtig war
Derzeit wurde es nicht für Test First entwickelt, daher wollte ich es verbessern.
Ich möchte besonders an UI-Tests arbeiten.
16: 45-17: 30 Ein Beispiel für die Abkehr von dem riesigen Legacy-System bei Name.com, mit dem das dritte Jahr der neuen Absolventen konfrontiert war
Material des Präsentators
Memo
--Was ist ein Legacy-System?
- Verhalten wie beabsichtigt
- Der interne Code ist kompliziert und schwer zu pflegen
- Hohe Wartungskosten
- Probleme beim Abbruch von Legacy-Systemen
- Keine Dokumentation zu Spezifikationen (Spezifikationen)
- Einige Teile sind kompliziert und schwer zu korrigieren (Implementierung)
- In reinem Java implementiert
- Implementierung, die schwer zu verstehen ist
- Definieren Sie durch Rohabfrage
- Informationen zur festen Einstellung
- Die Klassenverantwortung ist nicht eindeutig
- Kein Unit-Testcode (Test)
- Lösungen
- Keine Dokumentation zu Spezifikationen (Spezifikationen)
- Teile alles zusammen im Wiki
- Lassen Sie detaillierte Code-Informationen auf magische Weise git
- Einige Teile sind kompliziert und schwer zu korrigieren (Implementierung)
- In reinem Java implementiert
- Auswahl von JDK
- Rahmenauswahl
- Auswahl der Web-API-Architektur
- Implementierung, die schwer zu verstehen ist
- Prävention der Persönlichkeit durch Durchführung von Codeüberprüfungen
- Standardimplementierung gemäß dem Framework
- Definieren Sie durch Rohabfrage
- Einführung des Rahmens
- Informationen zur festen Einstellung
- Vereinheitlichen Sie die Einstellungsinformationen auf YALM
- Klassenverantwortung
- Erklärung der Verantwortlichkeiten für jede Schicht
--Design, das andere Module nicht beeinflusst
- Kein Unit-Test-Code
- Einführung von JUnit
- Einführung von Mockito
--Für die Zukunft
- Die strikte Einhaltung von Regeln und die regelmäßige Wartung sind erforderlich
- Andernfalls wird es ein Vermächtnis
Impressionen
Ich schaue oft auf das interne System, aber es ist oft schwierig, die Implementierung zu verstehen.
Ich habe das Gefühl, dass es viele Möglichkeiten gibt, Legacy-Systeme zu bekämpfen. (Reparaturen werden bald durchgeführt ...)
Ich werde es als Referenz für den Kampf verwenden! !!
Eindrücke von der gesamten Veranstaltung
Ich habe einen Vortrag für Anfänger besucht, konnte aber oft nicht mit der Menge an Informationen Schritt halten.
→ Ich möchte, dass Sie die Informationsmenge eingrenzen, z. B. die Anzahl der Folien begrenzen
Ich war überrascht, dass das Mittagessen wunderschön war
→ Es war köstlich. Vielen Dank.
Ich wollte auch von Gradle hören
→ Der erste Schritt für diejenigen, die Gradle vollständig verstehen, um nichts zu verstehen
Ich möchte mich auf das Testen der Benutzeroberfläche konzentrieren
← Ich bin jetzt interessiert