window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = Fenster if (w.LeadBooster) { console.warn('LeadBooster existiert bereits') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Ruby 3.0. Ruby und weniger bekannte Methoden zur Kontrolle der Privatsphäre - The Codest
Der Codest
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Branchen
    • Fintech & Bankwesen
    • E-commerce
    • Adtech
    • Gesundheitstechnik
    • Herstellung
    • Logistik
    • Automobilindustrie
    • IOT
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
Pfeil zurück ZURÜCK
2021-01-28
Software-Entwicklung

Ruby 3.0. Ruby und weniger bekannte Methoden zur Kontrolle der Privatsphäre

Der Codest

Tomasz Szkaradek

Architekt für Entwicklung

Eine der beliebtesten Eigenschaften von Ruby ist seine sehr flexible Syntax. Ich persönlich liebe Ruby für die vielen Möglichkeiten, die wir bei der Definition von Klassen und ihren Eigenschaften haben, und genau das werde ich in diesem Artikel besprechen.

Grundlegende Lösungen

Nehmen wir an, dass wir die Klasse Foo verwenden, die eine öffentliche und eine private Methode hat:

Klasse Foo
  def bar
    :geil
  end

  private

  def baz
    :etwas_privat
  end
end

Alles ist großartig, wir sehen eine solche Lösung in praktisch jedem Projekt. Laufen Foo.new.baz wird den Fehler verursachen NoMethodError (private Methode 'baz' wurde für # aufgerufen) und das ist es, was wir tun wollten. Was passiert, wenn wir versuchen, das Speicherformat zu ändern und private als Präfix in die Klassendefinition einzufügen?

Klasse Foo
  def bar
    :geil
  end

  private def baz
    :irgendwas_privat
  end
end

Wie Sie sehen können, wird nach der Ausführung der Codefunktioniert es tatsächlich! Warum können wir die Sichtbarkeit der Methode eingeben, bevor wir sie ausführen? Weil def bei der Definition einer Methode den Namen der Methode als Symbol zurückgibt. Dieser Ausdruck ist nicht nur ein Teil der Syntax, sondern de facto eine Methode, die von der Klasse Module abgeleitet ist und dieses Symbol als Argument behandelt. Weitere Informationen finden Sie in der Dokumentation unter diesem Link. Da es so einfach mit private angefangen hat, wollen wir versuchen, die Sichtbarkeit der privaten Methode zu ändern.

Klasse Foo
  def bar
    :geil
  end

  private def baz
    :irgendwas_privat
  end

  öffentlich :baz
end

Was geschieht nach der Ausführung des Codes?

irb(main):012:0> Foo.new.baz
=> :irgendwas_privat

Erfolg! Unsere Basismethode wurde öffentlich, weil wir sie zweimal sichtbar gemacht haben. Der gleiche Vorgang gilt natürlich auch für die Module.
​
Großartig, aber was bringt uns das?
​
Diese Funktionalität ist sehr nützlich, da wir die Sichtbarkeit einer Methode bei der Definition frei ändern können, oder sogar die Sichtbarkeit von Methoden ändern können, wenn sie geerbt werden.

Schauen wir uns nun an, was Ruby 2.7 in Bezug auf die Änderung der Sichtbarkeit von Aliases und Accessors leisten kann.

Klasse Foo
  private attr_accessor :awesome_variable
end

Leider erhalten wir einen Fehler, da die private Methode Symbole und attr_accessor erwartet. Der Code gibt null zurück und somit ist diese Methode nicht mit der privaten Verwendung in Ruby 2.7 kompatibel. Was sind also unsere Optionen?

  1. Wir können attr_accessor unter dem private-Schlüsselwort verwenden, damit es funktioniert, d.h. wir werden einen Fehler erhalten, wenn wir auf die genial_variabel genial_variabel Methode.
Klasse Foo
  private

  attr_accessor :awesome_variable
end
  1. Die zweite Möglichkeit besteht darin, die private Methode bei Methoden auszuführen, die von attr_attribut; in diesem Fall müssen wir auch daran denken, den Setter dort einzutragen.
Klasse Foo
  attr_accessor :awesome_variable

  private :awesome_variable, :awesome_variable=
end

Probleme mit dem attr_ * Methoden sind nicht die einzigen Hindernisse. Die gleiche Schwierigkeit tritt auf, wenn wir einen privaten Alias erstellen wollen.

Klasse Foo
  private alias :bar, :awesome_bar
end

Ruby 3.0 und unser Geschäft

Glücklicherweise führt Ruby 3.0 eine große Änderung ein, da die Sichtbarkeitsmethoden Array als Argument nehmen können und der Methoden-Alias attr_ * das Array mit den Namen der definierten Methoden zurücksetzen kann. Sie können mehr lesen hier.

Schauen wir uns nun einige Beispiele im neuesten euba an und prüfen, ob die Änderungen tatsächlich vorgenommen wurden und wie wir sie nutzen können.
​
Im ersten Beispiel verwenden wir private vor attr accessor:

Klasse Foo
  private attr_accessor :awesome_variable
end

Ein solcher Aufruf verursacht keine Fehler beim Parsen der Syntax und, was wichtig ist, die genial_variabel undawesome_variable =Methoden werden privat.
​
Die Alias-Methode tut dasselbe, nur dass sie jetzt auch ein Symbol als Namen der neuen Methode zurückgibt und sie sichtbar macht.

Klasse Foo
  private alias :bar, :awesome_bar
end

Interessant ist, dass wir uns auch mit weiteren Methoden befassen können, z.B. mit der genialenprint-Modul kann zwischen private und attr aufgerufen werdenLeser; es ist wichtig, dass eine solche Methode ein Array mit den Namen der Methoden zurückgibt, die auf der rechten Seite des Ausdrucks stehen.

class Modul
  def awesome_print(Namen)
    setzt Namen
    Namen
  end
end
Klasse Foo
  private awesome_print attr_reader :awesome_bar
end 

Zusammenfassung

Ich hoffe, Sie finden diesen Artikel nützlich! Falls es weitere Neuigkeiten zu Ruby 3.0 gibt, lesen Sie bitte weiter. hier.

Viel Spaß beim Codieren!

Angebot für Ruby-Entwickler

Lesen Sie mehr:

Halt die Klappe und nimm dein Geld #1: Versteckte Kosten und echte Agilität im Produktentwicklungsprozess

CTO-Herausforderungen - Skalierung und Wachstum von Softwareprodukten

Ähnliche Artikel

Software-Entwicklung

Zukunftssichere Web-Apps bauen: Einblicke vom The Codest-Expertenteam

Entdecken Sie, wie sich The Codest bei der Erstellung skalierbarer, interaktiver Webanwendungen mit Spitzentechnologien auszeichnet, die nahtlose Benutzererfahrungen auf allen Plattformen bieten. Erfahren Sie, wie unsere Expertise die digitale Transformation und...

DAS SCHÖNSTE
Software-Entwicklung

Top 10 Softwareentwicklungsunternehmen in Lettland

Erfahren Sie in unserem neuesten Artikel mehr über die besten Softwareentwicklungsunternehmen Lettlands und ihre innovativen Lösungen. Entdecken Sie, wie diese Technologieführer Ihr Unternehmen voranbringen können.

thecodest
Enterprise & Scaleups Lösungen

Grundlagen der Java-Softwareentwicklung: Ein Leitfaden für erfolgreiches Outsourcing

Entdecken Sie diesen wichtigen Leitfaden zum erfolgreichen Outsourcing der Java-Softwareentwicklung, um die Effizienz zu steigern, auf Fachwissen zuzugreifen und den Projekterfolg mit The Codest voranzutreiben.

thecodest
Software-Entwicklung

Der ultimative Leitfaden für Outsourcing in Polen

Der Anstieg des Outsourcings in Polen wird durch wirtschaftliche, bildungspolitische und technologische Fortschritte angetrieben, die das IT-Wachstum und ein unternehmensfreundliches Klima fördern.

TheCodest
Enterprise & Scaleups Lösungen

Der vollständige Leitfaden für IT-Audit-Tools und -Techniken

IT-Audits gewährleisten sichere, effiziente und gesetzeskonforme Systeme. Erfahren Sie mehr über ihre Bedeutung, indem Sie den vollständigen Artikel lesen.

Der Codest
Jakub Jakubowicz CTO & Mitbegründer

Abonnieren Sie unsere Wissensdatenbank und bleiben Sie auf dem Laufenden über das Fachwissen aus dem IT-Sektor.

    Über uns

    The Codest - Internationales Software-Unternehmen mit technischen Zentren in Polen.

    Vereinigtes Königreich - Hauptsitz

    • Büro 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokale Tech-Hubs

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polen

      Der Codest

    • Startseite
    • Über uns
    • Dienstleistungen
    • Fallstudien
    • Gewusst wie
    • Karriere
    • Wörterbuch

      Dienstleistungen

    • IT-Beratung
    • Software-Entwicklung
    • Backend-Softwareentwicklung
    • Frontend-Softwareentwicklung
    • Staff Augmentation
    • Backend-Entwickler
    • Cloud-Ingenieure
    • Daten-Ingenieure
    • Andere
    • QS-Ingenieure

      Ressourcen

    • Fakten und Mythen über die Zusammenarbeit mit einem externen Softwareentwicklungspartner
    • Aus den USA nach Europa: Warum entscheiden sich amerikanische Start-ups für eine Verlagerung nach Europa?
    • Tech Offshore Development Hubs im Vergleich: Tech Offshore Europa (Polen), ASEAN (Philippinen), Eurasien (Türkei)
    • Was sind die größten Herausforderungen für CTOs und CIOs?
    • Der Codest
    • Der Codest
    • Der Codest
    • Privacy policy
    • Website terms of use

    Urheberrecht © 2025 von The Codest. Alle Rechte vorbehalten.

    de_DEGerman
    en_USEnglish sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek de_DEGerman