Große Programmierwörter oder -phrasen

TaschenschutzWenn ich mit einigen außergewöhnlichen Programmierern zusammenarbeite, finde ich mich oft in Besprechungen mit Architekten, Leads und Entwicklern wieder, die (glaube ich) gerne große Wörter oder Sätze herauswerfen, um Produktmanagern oder ihren Kunden Angst zu machen.

Es ist eines dieser Dinge, die Programmierer gerne tun. Hier sind zehn von ihnen mit einer sehr einfachen Beschreibung (die zweifellos den Zorn der Entwickler überall auf sich ziehen wird, wenn ich ihre Terminologie zu Tode hacke meine einfachen Auto-Metaphern):

  1. Abstraktion - Dies erfordert einen schwierigen Prozess oder eine schwierige Funktion und gliedert sie im Grunde genommen logisch auf… entweder nach Hierarchie (A gehört zu B, B gehört zu C usw.) oder nach Merkmal oder Funktion (Farbe, Größe, Gewicht usw.). Die Abstraktion erleichtert die objektorientierte Programmierung, indem die Funktionalität logisch organisiert wird. Um mein Auto zu bauen, baue ich einen Rahmen, einen Motor und eine Karosserie separat.
  2. Missbilligung - Dies bedeutet, dass im System ein alter Code vorhanden ist, der möglicherweise verbleibt, aber auslaufen muss. Wenn Code veraltet ist, verweisen Programmierer nicht auf den Code oder verwenden neueren Code, bis alle Verweise auf den alten verwiesen sind. Zu diesem Zeitpunkt sollte er entfernt werden. Wenn es sich um eine Funktion handelt, die nicht mehr verfügbar ist, können Sie sie manchmal für eine Weile behalten, indem Sie Ihre Benutzer warnen, dass sie nicht mehr verfügbar ist. Ich bekomme eine neue Stereoanlage mit neuer Verkabelung, aber ich lasse die alte Verkabelung und benutze sie nicht.
  3. Verkapselung - Dies ist der Prozess des Organisierens Ihrer Programmierfunktionen innerhalb eines übergeordneten Elements, wenn die Funktion keine anderen Teile des Systems erreicht. Wenn Sie über Millionen von Funktionen verfügen, möchten Sie, dass diese in den Bereichen, in denen sie tätig sind, effizient organisiert sind und funktionieren, anstatt sie global verfügbar zu haben. Die unterstützende Mechanik des Motors habe ich im Motorraum verstaut… Den Ölfilter lege ich nicht auf die Rückbank.
  4. Erbe - Dies ist die Fähigkeit, die Eigenschaften eines anderen gemeinsamen Codes (einer Klasse) zu übernehmen, um ihn für neue Funktionen wiederzuverwenden, ohne ihn neu schreiben zu müssen. Vererbung ist eine weitere gute objektorientierte Entwicklungspraxis. Mein Autositz kann verwendet werden, um ein Kind oder einen Erwachsenen zu tragen - wer auch immer darin sitzt.
  5. Normalisierung - Dies ist die Methode, um Daten effizienter in einer Datenbank zu organisieren, indem Referenzen erstellt werden. Ein Beispiel wäre, wenn ich den ganzen Tag Ampeln aufzeichnen müsste… rot, gelb und grün. Anstatt jeden Datensatz mit Rot, Gelb und Grün zu schreiben, schreibe ich 1, 2 und 3 und erstelle dann eine weitere Tabelle mit 1 = Rot, 2 = Gelb und 3 = Grün. Auf diese Weise nehme ich nur einmal Rot, Gelb und Grün auf. Jede meiner Autotüren hat den gleichen Türgriff. Ein Griff, der an 4 verschiedenen Stellen anstelle von 4 verschiedenen Griffen verwendet wird.
  6. Objektorientierten - In modernen Programmiersprachen ist dies eine Entwurfsmethode, mit der Sie bestimmten Code nach Funktionen in Teilen schreiben und dann wiederverwenden können. Ein Beispiel wäre, wenn ich nach einer gültigen E-Mail-Adresse suchen wollte. Ich könnte die Funktion einmal erstellen und sie dann überall in meiner Anwendung verwenden. Mein Auto hat 18-Zoll-Felgen, die von denselben oder anderen Herstellern für andere Autos verwendet werden können.
  7. Polymorphie - Dieser ist schwer zu erklären, aber im Grunde ist es die Fähigkeit, Code zu entwickeln, der dynamisch für andere Situationen verwendet werden kann. Mit anderen Worten, es kann einzigartige und dynamische Funktionen einfach durch die Art und Weise erben, auf die es verweist. Dies ist ein sehr effizientes Entwicklungsmittel. Ich kann die Steckdose meines Autos verwenden, um mein Telefon aufzuladen oder meine Reifenpumpe mit Saft zu versorgen.
  8. Rekursion - Dies ist eine Methode, bei der sich der Code selbst referenziert. Manchmal ist es effizient und beabsichtigt, aber manchmal kann es dazu führen, dass Ihre Anwendungen außer Kontrolle geraten. Ich klicke auf Suchen auf meiner Auto-Stereoanlage und sie durchläuft die Radiosender. Es endet nie, geht einfach weiter.
  9. Refactoring - Dies ist der Prozess des Umschreibens von Code, um das Verfolgen oder Organisieren zu erleichtern, aber nicht unbedingt zusätzliche Funktionen hinzuzufügen. Ich baue meinen Motor um.
  10. Serverorientierte Architektur (SOA) - Nehmen Sie die objektorientierte Programmierung und wenden Sie sie auf große Systeme an, auf denen Sie ganze Systeme haben können, die bestimmte Funktionen ausführen. Möglicherweise verfügen Sie über ein Kundenbeziehungsmanagementsystem, das mit einem E-Commerce-System spricht, das mit einem Versandsystem usw. spricht. Ich ziehe mit meinem Auto einen Anhänger, um Gegenstände von einem Ort zum anderen zu transportieren. Ich benutze eine Anhängerkupplung (XML), um sie zu verbinden.

Mir ist klar, dass meine Metaphern nicht immer perfekt auf den Punkt gebracht wurden. Ich hoffe, sie haben ein bisschen geholfen!

Einige Ratschläge, wenn Sie diese Worte bei Ihrem nächsten Treffen mit einem Entwickler hören … laufen Sie nicht zurück zu Ihrem Platz und schlagen Sie sie nach Wikipedia werden sie zuschauen. Nicht zucken, sie werden angreifen. So tun Sie es… wie in Gedanken versunken aus dem Fenster blicken und dann mit einem neugierigen Blick zurückblicken oder sich am Kinn kratzen. Warten Sie, bis sie ihre Erklärung mit weiteren Informationen verfolgen.

... Sie sehen zu.

8 Kommentare

  1. 1

    LOL du hast es wirklich geschafft Doug 🙂 Versuchst du uns aus dem Geschäft zu bringen? Sie wissen verdammt gut, dass wir darauf vertrauen, dass diese Konzepte nicht verstanden werden und daher unseren Weg mit Kunden haben. Jetzt müssen wir einen Weg finden, um sie durchzubrennen Vereinigung diese Schlagworte, um eine riesige Phrase zu kreieren, die so aussehen könnte:

    Nun, Sie wissen, dass die Funktion, die Sie einfügen möchten, auf mehrere Objekte abstrahiert werden kann, die die Funktionalität kapseln und über einen serviceorientierten Architekten kommunizieren.

  2. 5

    Als Softwareentwickler kann ich diesen Beitrag zu schätzen wissen. Wir sind aber gar nicht so schlecht 😉 Ich würde die Leute nie mit so einem Techno-Gelaber dämpfen

    Lassen Sie mich versuchen, noch ein paar Worte für Sie zu finden.

Was denken Sie?

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.