[JAVA] [Buchbesprechung] Warum objektorientiert machen, 2. Auflage

"Warum objektorientiert machen, 2. Auflage" https://www.amazon.co.jp/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%A7%E3%81%AA%E3%81%9C%E3%81%A4%E3%81%8F%E3%82%8B%E3%81%AE%E3%81%8B-%E7%AC%AC2%E7%89%88-%E5%B9%B3%E6%BE%A4-%E7%AB%A0/dp/4822284654)

Überblick

Ein Einführungsbuch zur Objektorientierung (OOP). Ich denke, dass das Einführungsbuch für Leute ist, die tatsächlich Programme für Arbeit oder Hobbys schreiben.

Als ein Merkmal des Einführungsbuches, das OOP erklärt ・ Das Tier ist eine Superklasse, der Hund ist eine Unterklasse und der Topf ist eine Instanz. ・ Bedeutet, die Realität so auszudrücken, wie sie in der Software ist Während es viele Bücher gibt, die die Erklärung betonen, die den einfachen Zugang in solchen Analogien betont, ist dieses Buch __ "OOP spiegelt nicht die gesamte Realität wider, es ist eines der Mittel, um den PC einen Teil der Arbeit übernehmen zu lassen" __ __ "Der Mechanismus des Programms und die Denkweise (Allzweckorganisation) zur Einbeziehung der realen Welt in das Programm sind unterschiedlich" __ Ich erkläre OOP ruhig mit einer solchen Haltung.

Während in der ersten Hälfte die Geschichte des Übergangs von Maschinensprache → Assemblersprache → Hochsprache → strukturierte Sprache und die Grenzen der groß angelegten Entwicklung mit ihnen angesprochen wurden, Es werden die Punkte beschrieben, die die Schwachstellen kompensierten, die durch die strukturierte Programmierung durch die Erstellungsfunktion "Wiederverwendete Teilegruppe" wie Klassenbibliothek und Framework von OOP nicht abgedeckt werden konnten. Die spezifische Rolle dieser Funktion ist -Kombinieren von Variablen und Unterprogrammen __

Im mittleren Teil wurde ein Kapitel dem Mechanismus von Speicher und Instanz in OOP gewidmet, und der statische Bereich, der Heap-Bereich, der Stapelbereich usw. wurden auf leicht verständliche Weise erläutert. Danach wurde hier über die Wiederverwendung von Teilen und Ideen geschrieben, die von OOP hervorgerufen wurden. ・ Klassenbibliothek ·Rahmen ·Komponente ・ Entwurfsmuster Wurde erklärt. Bis zu diesem Punkt war die Erklärung relativ nah am "Programm", aber von diesem Punkt an, Geschäftsanalyse und Anforderungsdefinition Es wird eine Geschichte sein, die sich der Verbindung zwischen "Upstream-Prozess" und OOP bewusst ist. weil ・ Klassifizierung ・ Polymorphismus ・ Vererbung Dies liegt daran, dass selbst wenn diese Idee auf das Programmdesign angewendet werden kann, sie nicht auf die reale Welt angewendet werden kann, wie sie ist. Daher wurde set Theorie als Mittel verwendet, um die reale Welt und die Software-Welt erfolgreich zu verbinden (ich habe es in der Mathematik der High School gemacht). Dies liegt daran, dass die Beziehung zwischen einer Klasse und einer Instanz eine Menge und ein Element ist. Auch wenn sich die OOP-Klasse und die Mengenlehre stark unterscheiden, ist der natürlich angewendete Fluss ebenfalls kurz. Im nächsten Kapitel geben wir einen Überblick über UML als Mittel, um die Organisation der realen Welt auszudrücken, und als Mittel, um Software in zwei Dimensionen auszudrücken.

Letztendlich verlängern die erweiterten Hardwarefunktionen die Lebensdauer der Anwendung. Die Strukturdefinition der gesamten Software wird mit dem Punkt erläutert, dass Wartbarkeit und Wiederverwendbarkeit wichtig geworden sind. Zu diesem Zweck ist es aufgrund starker Kondensation und schwacher Kopplung erforderlich, mit sehr unabhängigen Teilen zusammenzusetzen. Es wird geschrieben, dass zwei Techniken erforderlich sind: die Neuordnungstechnik im Upstream-Prozess und die Programmiertechnik im Downstream-Prozess. Bisher wurde OOP geschrieben, Im nächsten Kapitel wird der Übergang der Entwicklungsumgebung um OOP beschrieben. Beginnend mit der Wasserfallentwicklung wurden iterative Entwicklungsprozesse (typischerweise RUP und XP) geboren. Fördern Sie eine ähnliche Entwicklungsmethode mit der letztgenannten Eigenschaft, indem Sie sie als agile Entwicklung bezeichnen. Wie die Geschichte. Und als praktische Methode, um sie zu fördern, ・ Testfahrtentwicklung ・ Refactoring ・ CI Scheint verbessert und verbreitet worden zu sein.

Abschließend werde ich einige Schlagwortechnologien wie aspektorientierte (AOP), agentenorientierte und serviceorientierte Technologien nach OOP vorstellen sowie einen Überblick und eine grundlegende Erklärung der funktionalen Sprachen, die in den letzten Jahren Aufmerksamkeit erregt haben. Wurde vorgestellt.

Impressionen

Der Autor hat in dem Buch wiederholt gesagt, dass "Software keine direkte Widerspiegelung der realen Welt ist". Es kann sein, dass viele Leute denken, dass es "die reale Welt so widerspiegelt, wie sie ist", und ich war fest davon überzeugt, dass wir vorsichtig mit Missverständnissen umgehen sollten.

Auf dem Weg gab es ein Kapitel, in dem Gedächtnis und Instanzen erklärt wurden, aber ich persönlich fand es sehr leicht zu verstehen, und ich dachte, es sei ein guter Ausgangspunkt für eine etwas tiefere Forschung.

Vor langer Zeit hörte ich von meinen Senioren, dass "Objektorientierung eine kollektive Theorie ist". Zu dieser Zeit kam der Stift nicht so weit. Die Erklärung in diesem Buch, dass "jedes Objekt auf der Welt zu einem Objekt geworden ist, das durch Mengenlehre in Klassen und Instanzen organisiert werden kann, und dass sich die Objektorientierung zu kognitiver Theorie und Philosophie entwickelt hat", ist leicht zu verstehen, __ Mengenlehre. Ich frage mich, ob __ der Punkt ist, um __real world __ in den Mechanismus von __objektorientierten Programmen __ zu integrieren.

Auf der anderen Seite kann es in Bezug auf UML und vorgelagerte Prozesse nach der mittleren Phase möglicherweise nicht zu diesem Punkt kommen, es sei denn, Sie haben es tatsächlich getan. Gleiches gilt für das letzte Kapitel über funktionale Sprachen. und umgekehrt Als ich es las, nachdem ich es leicht gemacht hatte, fühlte ich, dass es mir in den Sinn kam. Ich denke, es ist ein gutes Buch als Gelegenheit für Menschen, die es als Job berührt haben, von einem oberflächlichen Verständnis zurückzublicken und in eine tiefere Welt einzutreten. Das Level ist jedoch auch für Anfänger leicht zu lesen und bedeutet nicht unbedingt, dass Sie es erst verstehen können, wenn Sie in den Upstream-Prozess eintreten. Ich fühlte mich gut ausbalanciert.

Auch wenn es nützlich ist, um zum ersten Mal historische Übergänge und Konzepte als Lesematerial kennenzulernen, ist es kein Handbuch, das speziell die Programmierung und das Schreiben von UML beschreibt.

Recommended Posts

[Buchbesprechung] Warum objektorientiert machen, 2. Auflage
Warum ist es nicht validiert! ?? (einzigartig: wahre Ausgabe)