- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 15

Thema: Warum gelten die besten Programmierer, auch gleichzeitig als die besten Hacker?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo Waldgeist,

    Ein gutes Programm liefert für die erwarteten Daten die richtigen Resultate.
    Ein sehr gutes Programm verhält sich auch mit unerwarteten Daten definiert, vorhersehbar und sicher.

    Ein einfaches Beispiel:
    Code:
    INPUT "Alles löschen? (J/N)", A$
    IF A$ = "N" THEN Goto nicht löschen
    hier wird alles gelöscht
    Erwartet wird als Eingabe "J" oder "N"
    Das funktioniert bestens, so lange nur N und J gedrückt werden. Nun hat aber eine Tastatur noch eine Menge mehr Zeichen als nur diese beiden! Zudem ist die Gross/Klein-Schreibung auch noch zu beachten.
    Da A$ ein String ist, kann da auch mehr als 1 Zeichen drin stehen.
    Prellt das N gibt es eine Katastrophe, dann sind alle Daten weg!

    Eine bessere Variante:
    Code:
    INPUT "Alles löschen? (J/N)", A$
    IF A$ = "J" THEN Goto löschen
    hier wird NICHTS gelöscht
    Hier führt nur die Eingabe von "J" zum Löschen aller Daten, alle anderen Eingaben bewirken nichts.

    Noch besser:
    Code:
    INPUT "Alles löschen? (J/N)", A$
    IF A$ = "J" THEN Goto löschen
    IF A$ = "N" THEN Goto nicht löschen
    Falsche Eingabe verarbeiten
    Dies ist jetzt kein Schulbeispiel, sondern ich habe dies in der Praxis mehrfach erlebt.

    Je nach dem wie der Programmierer denkt, wählt er im Prinzip eine dieser Lösungen. Du darfst jetzt raten, welche ein sehr guter Programmierer wählt.
    Entsprechend geht man auch bein Hacken vor. Exploits findet man ausserhalb der vom Programm erwarteten Datenmenge.

    Es ist immer wieder Lustig zu testen, was bei Rechnern oder Formularen passiert, wenn man z.B. negative Zahlenwerte eingibt oder Buchstaben an der Stelle von Ziffern! Schon ein einfacher "U = I * R" kann sich lustig verhalten, wenn man negative Widerstandswerte oder 0 Ohm eingibt.
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.704
    Zitat Zitat von Peter(TOO) Beitrag anzeigen
    .. Ein sehr gutes Programm verhält sich auch mit unerwarteten Daten definiert, vorhersehbar und sicher ..
    Oh weh, ich habe das grade da und dort bei meinem Archie probiert. Ziemlich desaströs. Und dann bin ich auch noch über diese Site gestolpert :-/ . Da sehe ich, dass ich viel zu viel Kommentar schreibe und zu wenig aussagekräftige Namen
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    57
    Beiträge
    2.814
    Mit dem Fazit auf der Seite stimme ich nicht überein.
    Guter Code ist für mich robuster und effizienter Code. (habe da immer auch Assembler im Hinterkopf und nicht nur Hochsprachen)
    Gute Lesbarkeit ist schön und zu begrüßen.

    Bei den Kommentaren halte ich das bei Kleinprojekten die Ohne DevOps auskommen so das ich auch eher mal mehr kommentiere.
    Da ich meist selbst nciht mehr weis was ich vor 10-20 Jahren programmiert habe, hilft das doch oft schnell wieder in ein altes Projekt einzusteigen.
    Zu viel Kommentar ist halt tödlich beim lesen des Codes.
    Ich gehe auch oft hin und öffne oft die selbe Source 2 mal und blende einmal alle Komentare aus, damit ich die Strukturen besser erkenne (weil mehr auf einen Bildschirm passt)
    im zweiten Fenster lese ich dann was ich mir dabei mal gedacht habe.

    Bei größerne Produktionen mit Rapid Development oder gar DevOps tool Chains haben separate Komentarzeilen aber allerdings nichts mehr zu suchen, da die auch mal nicht mehr an der selben Stelle stehen können wie der ursprünglich Code.
    Oder aber der Code wurde so verändert das er nicht mehr zum Komentar passt. (wird so auch auf der Seite beschrieben)

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von White_Fox
    Registriert seit
    04.10.2011
    Beiträge
    1.473
    Naja...Recht haben die da schon. Ihr Fazit ist nicht falsch. Ich halte es aber für unvollständig.

    Code, der nicht zu lesen ist, ist meiner Meinung nach definitiv schlechter Code.
    Da es auf dieser Seite auch um Hochsprachen geht (Java), stellt sich die Frage nach der Effizienz kaum. Wer weiß schon genau, was der Kompiler da nachher aus dem Code bastelt? Mit sowas wie z.B. statischen Methoden hat man zwar eine begrenzte Möglichkeit, auf Speicherplatz zu optimieren, aber so richtig dolle ist das nicht. Im Prinzip bleibt da als Kriterium nur noch Lesbarkeit. Und das, was Peter schon angesprochen hat. Code, der keine undefinierten Zustände zuläßt.

    Assembler finde ich klasse, AVRs programmiere ich damit gerne. Und ja, man kann auch in ASM ganz vorzüglich gut verständlichen Code schreiben. Aber ganz ehrlich-ich bin heilfroh daß es für gewisse Probleme auch objektorientierte Hochsprachen gibt. Wer meint, Klassenprogrammierung sei umständlich, der hat meiner Meinung nach OOP nicht verstanden. Und wen interessiert es, ob auf einem Desktoprechner ein Programm ein oder zwei MB weniger braucht?
    Klar, man kann es auch in die Richtung wieder übertreiben und mit irgendeinem MS-Framework eine simple Messagebox auf 200MB aufblasen.

    Ich persönlich nehme ja lieber für jedes Problem das passende Werkzeug.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Zitat Zitat von oberallgeier Beitrag anzeigen
    Da sehe ich, dass ich viel zu viel Kommentar schreibe und zu wenig aussagekräftige Namen
    Ich erinnere mich noch an meine ersten BASIC-Dialekte, da waren für Variablen A..Z und A1..A9 bis Z1..Z9 zulässig
    Funktionen gabs gar nicht, nur Zeilennummer ....

    Assembler liessen maximal 5 Zeichen für Labels zu.

    Damals ging es nur kryptisch
    Da Zudem alle Label und Variablen global waren haben wir in den Kommentaren oft Tabellen erstellt, welche Variable was enthält und wo verwendet wird.

    Ich hatte aber auch schon katastrophale Projekte übernommen:
    Xyz_temp war eine temporäre globale Variable und Xyz, auch global, wurde als temporäre Variable für Berechnungen verwendet, Die Prozedur-Namen waren auch nicht besser!
    Ich habe da erst einmal 2 Tage lang fast alles neu gelabelt.

    Zudem war dieses C-Programm, mit über 2'000 Zeilen als einzelne Datei erstellt worden. Das nächste war dann, alles in überschaubare Module zu zerlegen. Zudem war alles global deklariert. Erstellt wurde das Programm von einer Software-Firma.

    Ich habe schon immer nach einem Objekt Orientierten Ansatz programmiert.

    Zu jedem Modul gibt es eine Header-Datei mit den globalen/öffentlichen Aufrufen, Datentypen und Konstanten. Alles Andere ist dann lokal in diesem Modul.
    Dies funktionierte dann auch schon mit jedem Macro-Assembler.

    Am Modul-Anfang habe ich dann eine Kommentarblock, welcher die global aufrufbaren Funktionen beschreibt.

    Seit etwa Mitte der 80er arbeite ich nur noch mit Versionskontroll-Systemen. Da sind dann noch ein paar automatische Versions-Informationen in diesem Kommentar-Block enthalten.

    Bewährt hat es sich auch, dass nie eine Programm-Version meinen Schreibtisch verlassen hat ohne eine eigene Versionsnummer zu erhalten. Man glaubt gar nicht auf welchen verschlungen Wegen, auch eine interne Alpha-Version, den Weg zu Kunden findet!
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    27.03.2017
    Beiträge
    41
    Ja Hacking ist schon etwas mit dem man sich wirklich explizit beschäftigen muss. Ein Freund von mir war mal in der Szene und der sagt auch, dass da die Entwicklungen so schnell voranschreiten, dass er schon nach ein paar Jahren außerhalb der szene gar keine Ahnung mehr hat.

  7. #7
    Das Thema klingt wie rhetorische Frage)))
    Leben ist Theater

  8. #8
    HaWe
    Gast
    Zitat Zitat von OlaffD Beitrag anzeigen
    Das Thema klingt wie rhetorische Frage)))
    allerdings!
    und dazu noch mit der "untergejubelten" Unterstellung, dass es tatsächlich stimmt, was in der Frage impliziert wird.
    Wer bitteschön ist es denn, der behauptet, daß angeblich die besten Programmierer auch gleichzeitig als die besten Hacker gelten?
    Behauptet das überhaupt jemand (außer dem OP) ?
    Gilt das wirklich als allgemein als bewiesene Tatsache, oder ist es nur eine Minderheitenmeinung oder nur eine Überspitzung, bestenfalls ein in den Raum geworfenes "Bonmot", um eine Pseudo-Diskussion anzustoßen?
    Nach dem Motto:
    Warum gelten die besten Autofahrer auch gleichzeitig als die besten Formel-1-Rennfahrer?
    Warum gelten die besten Deutschlehrer auch gleichzeitig als die besten Romanautoren?
    :-/

Ähnliche Themen

  1. Motorsteuerung (am besten IC) 7V 2A
    Von EarlGrey im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 18.03.2013, 16:15
  2. Wie bau ich meinen RP6 am besten.
    Von RP6 Neuling im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 1
    Letzter Beitrag: 02.01.2011, 12:24
  3. Wie fängt man am besten an ?
    Von RacerD im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 8
    Letzter Beitrag: 02.12.2006, 18:59
  4. Drehwinkelmessung ? Wie am besten ?
    Von Falko81 im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 01.05.2006, 19:15
  5. Wie am besten anfangen?
    Von Björn im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 9
    Letzter Beitrag: 11.02.2005, 20:35

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test