Wie kann ich meine objektorientierte Programmierung verbessern?

7

Ich verstehe prozedurale Programmierung (gut, wer nicht) und will ein gutes Verständnis von OOP und danach funktional. Ich bin nur ein Hobby, also werde ich ein Alter und einen Tag brauchen, aber es macht Spaß.

Hat jemand Ideen, was ich tun kann, um zu helfen? Projektideen? Beispiel gut dokumentierter Code, der ihre?

ist

Ich verwende derzeit C ++, aber C # sieht viel besser aus.

    
Silvanus 13.12.2009, 23:14
quelle

12 Antworten

9

Es gibt einige großartige OOP-Bücher von Head First für Objektorientierte Analyse und Design und Objektorientierte Entwurfsmuster .

    
Chris Fulstow 13.12.2009 23:25
quelle
6

Ich würde empfehlen, hauptsächlich mit einer stark typisierten Sprache wie C # oder Java zu arbeiten, da so viele Entwurfsmuster und allgemeine OOP-Prinzipien auf starke Typisierung ausgerichtet sind ( GOF , Refactoring , Uncle Bob ). Ruby ist wunderbar, aber viele allgemeine OOP-Prinzipien wie das Codieren von Interfaces werden nicht angewendet.

Verbringen Sie etwas Zeit mit Onkel Bobs SOLID Prinzipien. Gehen Sie langsam vor und achten Sie besonders auf die einfache Verantwortung. Wenn Sie von Onkel Bob nichts anderes bekommen, holen Sie sich SRP in Ihrem Kopf und wenden Sie es früh und oft an.

Ich mag auch Onkel Bobs Idee von Code-Katas. Ich würde empfehlen, die Bowling-Spiel-Kata durchzugehen.

    
Dave Sims 14.12.2009 00:02
quelle
5

Ich empfehle Ihnen Object Thinking von David West . Es gibt sehr wenig Code in dem Buch, aber viel darüber reden, wie man modelliert.

Ein paar Dinge, von denen ich mir gewünscht hätte, dass jemand mir gesagt hätte, als ich angefangen habe, sind:

  1. Beim Modellieren von Objekten sollten Sie sich mehr auf das Verhalten als auf die Form der Daten konzentrieren.
  2. Obwohl viele OO-Tutorials reale Dinge wie Tiere und Fahrzeuge modellieren, sind viele der Dinge, die wir in OO-Software modellieren, Konzepte und Konstrukte (Dinge, die in der realen Welt keine physische Repräsentation haben).
Daniel Auger 13.12.2009 23:39
quelle
4

Um wirklich mit objektorientierter Programmierung vertraut zu werden, gibt es ein paar Dinge, die Sie tun können.

  1. Zwingen Sie sich, ein wirkliches Problem mit Objekten zu modellieren. Erstellen Sie Klassen, um die Objekte darzustellen, und Methoden, um Dinge darzustellen, die sie ausführen können.

  2. Verwenden Sie eine Sprache und / oder ein Framework, das OOP wirklich zu Ihnen zwingt. Erst als ich eine Java-Klasse belegte und Swing stark verwendete, habe ich OOP wirklich gemunkelt. Ich habe vor kurzem nicht viel mit C # gespielt, aber ich denke, entweder C # oder Java wäre ein guter Weg zu gehen.

Benson 13.12.2009 23:26
quelle
2

Versuche Smalltalk zu lernen - der beste Weg, deine OO-Programmierung zu verbessern.

    
Larry Watanabe 14.12.2009 00:31
quelle
2

eine Grundidee für die Grundlagen Nachdem ich, der beste Weg ist, mit gutem Beispiel zu lernen. Laden Sie beliebte Open-Source-Projekte herunter und durchsuchen Sie sie. Einige Projekte, von denen ich viel gelernt habe:

Mike Valenty 14.12.2009 00:44
quelle
1

Ich habe vor kurzem von PHP zu C # konvertiert und liebe jede Minute davon! Ich würde sagen, Sie finden ein neues Projekt mit einer flexiblen Zeitleiste und tauchen einfach ein. Holen Sie sich auch ein paar Bücher, insbesondere zu OOP-Konzepten und Designmustern.

    
Colin O'Dell 13.12.2009 23:32
quelle
0

Es hängt davon ab, welche Sprachen Sie kennen. Persönlich würde ich irgendeine Art von OO-Skriptsprache empfehlen. IE PHP oder Python, ich glaube, das wird Ihnen helfen, halb reibungslos Übergang.

    
Woot4Moo 13.12.2009 23:28
quelle
0

Ich denke, Sie können über Test Driven Development forschen. Dadurch orientieren Sie sich automatisch an den Regeln objektorientierter Prinzipien. Dies ist der praktische Weg, aber es funktioniert. Sie können diesen Prozess auch unterstützen, indem Sie teorische Themen wie SOLID-Prinzipien und Entwurfsmuster lernen. Das Lesen des Quellcodes großer Projekte ist auch eine gute Idee, um Ihre objektorientierten Fähigkeiten zu verbessern.

    
Sessiz Saat 30.12.2009 13:38
quelle
0

Ein Ratschlag, den ich mir vor langer Zeit gewünscht hätte, ist:

  

Übernehmen Sie die Vererbung nicht.

Dies ist eine wirklich einfache Falle für einen Anfänger (imho), da es eines der großen Konzepte in OOP ist, über die alle reden.

Grundsätzlich sollten Sie die Vererbung nur dort verwenden, wo es wirklich wirklich Sinn macht - Datentypen, einige Widget-Hierarchien, Dinge, bei denen die Beziehung ist-so offensichtlich ist, dass irgendjemand sie benutzt hätte. Andernfalls sollten Sie Objekte in andere Objekte einfügen und aufrufen, um die Funktionalität (Zusammensetzung) zu ändern.

Seien Sie nicht versucht, einfach eine Menge abstrakter Methoden zu definieren und sie mehrfach zu überschreiben, um sie anders zu implementieren, wenn Sie eine einzelne Klasse haben und ein Konstruktorobjekt injizieren können, das eine Schnittstelle implementiert, die Sie aufrufen, um die variablen Funktionen auszuführen das hättest du sonst in die abstrakten Methoden gesteckt. Dies wird zu viel einfacherem und wiederverwendbarem Code führen (meiner Erfahrung nach) und auch testbarer.

    
DaveC 30.12.2009 13:52
quelle
0

Um deine objektorientierten Fähigkeiten zu beherrschen, brauchst du viel Übung .

Versuchen Sie in "Objektbegriffen" für alles, was Sie mit Code tun, zu denken.

Übernehmen Sie es:

  • in Ihrer serverseitigen Sprache
  • Halten Sie Ihr Java Script-Code-Objekt orientiert
  • Denken Sie daran, Ihren CSS-Code leicht wiederverwendbar zu halten und wenig Doppelzüngigkeit zu enthalten.
ep3static 31.12.2009 15:09
quelle
0

Lesen Sie Bertrand Meyers OOSC2 . Es ist wahrscheinlich das beste Buch über OO-Programmierung überhaupt.

    
CesarGon 31.12.2009 15:26
quelle

Tags und Links