Krautkanal.com

Veröffentlicht am 2014-11-19 23:01:32 in /prog/

/prog/ 6074: Bernd, ich habe da mal eine.. nachdem ich an dem Grani...

bergmartin Avatar
bergmartin:#6074

Bernd, ich habe da mal eine..
nachdem ich an dem Granit des Wissens geknabbert habe, wundere ich mich:

Achtung! Das Weiterlesen der Frage könnte bei manchen zu plötzlichen, heftigen Analschmerzen führen!


1. Wie kommen diese ganzen tollen Projekte wie Dropbox, Steam, Google Chrome etc. zustande? Das kann man schlecht nur mit der C++ Standard Library machen. Meine, an welcher Abstraktionsebene setzt man an? Welche Gedanken liegen dort zugrunde? Welche Werkzeuge werden benutzt? Wie könnten die Entwürfe für sowas aussehen? Für einen Verweis auf Literatur, wäre ich dankbar!


Ferner suche ich nach einem Platz im Internet, wo ihr Programmierrelatives Zeug lurkt. Ohne "ich Gott, du nix" Mentalität.

commoncentssss Avatar
commoncentssss:#6075

Man überlegt sich zuerst, an welcher Abstraktionsebene man ansetzen will.

karlkanall Avatar
karlkanall:#6076

Ganz einfach, du nimmst irgendein Tool und programmierst drauflos. Wenns nicht klappt nimmst du ein anderes. Je mehr Erfahrung du hast, in desto weniger Sackgassen läufst du.

alagoon Avatar
alagoon:#6077

>>6074
Schwer zu beantworten, ohne deinen Wissensstand zu kennen. Ich fang mal mit der Basis an. Umfassend werden deine Fragen von einer Ausbildung zum Fachinformatiker/Anwendungsentwicklung(IHK) abgedeckt aber bei einem Informatik-Studium(bsc) bekommst du auch das Nötigste mit.

>an welcher Abstraktionsebene setzt man an?
Auf einer möglichst Hohen. Man unterteilt das Projekt in Funktionen (GUI, Datenhaltung, HTML-Renderer, Webserver) und sucht sich Bibliotheken, die den Ansprüchen (Lizenz, Wartung, etc.) entsprechen. Und wenn es keine gibt, dann baut man sie.

>Welche Gedanken liegen dort zugrunde?
Entwurfsmuster "design patterns" und Projektmanagement wären grundlegende Stichworte und stehen der Programmierung in Umfang und Relefanz kaum nach.
Bernd folgt privat meist der von >>6076 beschriebenen evolutionären Prototypisierung.

>Welche Werkzeuge werden benutzt?
Vim natürlich! Und dann z.B. Kot-Verwaltung (git), Fehler-/Merkmalsverfolgung (trac), Visualisierung (dia, latex) usw.
Der Entwicklungs-Stapel trägt entscheidend zur Effizienz bei. Diverse Konzerne verkaufen auch Komplette Systeme, z.B. Visual Studio.

>Wie könnten die Entwürfe für sowas aussehen?
Man kann mit einer Anforderungsanalyse "Pflichtenheft" beginnen, die dann z.B. mit Beziehungskrebs (ER-Modell), Klassendiagrammen und halt allem möglichen, was UML so her gibt, gefüllt wird.

>Platz im Internet, wo ihr Programmierrelatives Zeug erlauert
stackoverflow.com ist tohl, erscheint aber eh in jeder halbwegs guten Gurgelsuche. Darüber hinaus nutze ich hauptsächlich offizielle Dokumentationen.

chrstnerode Avatar
chrstnerode:#6088

>>6077
danke Bernd!

>Und wenn es keine gibt, dann baut man sie.

Wie würde man denn eine z.B. GUI Bibliothek bauen? GDI+ wrappen und mit callbacks versehen ? Oder eine Bibliothek für Netzwerkkommunikation mit Winsock etwa?

Bernd hat drauf hingewiesen, dass er mit vim arbeitet, es sei mir verziehen, dass ich auf Windows schreibe ^^ !

Ich würde meine Programmierprofs fragen, aber wenn ich bei denen mit meinen ASM oder WinAPI fragen antanze, zucken sie nur mit den Schultern.

Ich versuche mit unified process zu proggen, natürlich sehr stark vereinfacht, aber ich glaube selbst das schafft bisschen mehr Klarheit.

Ich will die Basis kennen, so tief einsteigen, dass es mir aus den Ohren hängt, nicht nur ein Code Affe sein.

Da ist aber viel "Ich" in dem Text, ich muss egomanisch sein oder so :D

murrayswift Avatar
murrayswift:#6089

>>6088
> Wie würde man denn eine z.B. GUI Bibliothek bauen
Wenn du Anfänger bist? Gar nicht. Ganz schlechte Idee, weil du als Anfänger nicht weißt was benötigt wird.

vicivadeline Avatar
vicivadeline:#6092

>>6088
>vim
Du musst kein Vim nutzen, dein Entwicklungs-Stapel ist nur als Faktor deiner Effizienz relefant. (Und für dein Seelenheil.)

>GUI Bibliothek bauen
Bei einer GUI-Bibliothek würde ich auch mit den Schultern zucken, da ich keine Erfahrungen habe.
Aber generell ist eine Bibliothek nur ein Programm, das seine Funktionalität eben anderen Programmen, statt dem Nutzer direkt zur Verfügung stellt.
Du könntest schauen, wie man so ein Fenster auf einer niederereren Ebene erstellt und mit Farben bemalt und dann eine Funktion bereitstellen, die einen Text annimmt und daraus ein Dialogfenster oder eine anklickbare Dateiliste so machen tut.

>tief einsteigen
Der Markt ist vor allem breit gefächert, ich halte es daher für nützlich die wichtigsten Programmierparadigma zu durchdringen und breit gefächerte Erfahrung zu sammeln.

>nicht nur ein Code Affe sein
Dann solltest du auf Meister studieren, damit du den Kot der Affen verhökern kannst. Ist aber Geschmackssache.

robinlayfield Avatar
robinlayfield:#6103

Das Stichwort ist "Softwaretechnik" (oder Besatzersprache "Software Architektur" und "Software Engineering").

Ich kenne mich damit nicht aus, aber es gibt Haufenweise "Bibeln". Die Wohl bekannteste ist die "Gang of Four".