(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5LHNRP9'); Ruby 3.0. Ruby og minna þekktar aðferðir til persónuverndar – The Codest
The Codest
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Iðnaðargreinar
    • Fjártæknifyrirtæki og bankastarfsemi
    • E-commerce
    • Adtech
    • Heilbrigðistækni
    • Framleiðsla
    • Flutningar
    • Bifreiða
    • Internet hlutanna
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
Aftur ör Farðu aftur
2019-09-03
Hugbúnaðarþróun

Ruby 3.0. Ruby og minna þekktar aðferðir til stjórnunar persónuverndar

The Codest

Tomasz Szkaradek

Þróunarskipulagsarkitekt

Ein af ástsælustu eiginleikum Ruby er afar sveigjanleg setningagerð hennar. Persónulega elska ég Ruby fyrir hversu margar möguleikar við höfum til að skilgreina flokka og eiginleika þeirra, og um það mun ég fjalla í þessari grein.

Hér er tómt.

Grunnlausnir

Segjum að við séum að nota class Foo sem hefur eina almenna aðferð og eina einkaaðferð:

class Foo
  def bar
    :awesome
  end
​
  private
​
  def baz
    :something_private
  end
end

Allt er frábært, við sjáum slíka lausn í nánast hverju verkefni. Hlaup Foo.new.baz mun valda villunni NoMethodError (einkaaðferðin ‘baz’ kölluð fyrir #) og það var einmitt það sem við ætluðum að gera. Hvað gerist ef við reynum að breyta sniðinu fyrir vistun og bæta við private sem forlið í flokksskilgreiningunni?

class Foo
  def bar
    :awesome
  end
​
  private def baz
    :something_private
  end
end

Eins og þú sérð eftir að hafa keyrt kóði, þetta virkar reyndar! Hvers vegna getum við komist inn í sýnileika aðferðarinnar áður en við framkvæmum hana? Vegna þess að þegar aðferð er skilgreind skilar `def` nafni aðferðarinnar sem tákni. Þetta tjáning er ekki aðeins hluti af málfarinu, heldur de facto aðferð sem er afleiðing `Module`-flokksins og meðhöndlar þetta tákn sem rök. Fyrir frekari upplýsingar, sjáðu skjölin. í þessum hlekk. Þar sem þetta byrjaði svo auðveldlega með private, skulum við reyna að breyta sýnileika private-aðferðarinnar.

class Foo
  def bar
    :awesome
  end
​
  private def baz
    :something_private
  end
​
  public :baz
end

Hvað mun gerast eftir að kóðanum er keyrt?

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

Árangur! Aðferð okkar við grunnlínur varð opinber vegna þess að við gerðum hana sýnilega tvisvar. Auðvitað gildir sama aðgerð um einingarnar.
​
Frábært, en hvar fær það? okkur?
​
Þessi virkni gefur okkur mikið, því við getum frjálslega breytt sýnileika aðferðar á meðan við skilgreinum hana, eða jafnvel breytt sýnileika aðferða þegar við erfum þær.

Nú skulum við líta á hvað Rúbín 2.7 getur gert varðandi að breyta sýnileika aliasa og aðgangsbreyta.

class Foo
  private attr_accessor :awesome_variable
end

Því miður fáum við villu þar sem einkametóði gerir ráð fyrir táknum og attr_accessor. Kóðinn skilar nil og þess vegna er þessi aðferð ekki samhæfð einkanotkun í Ruby 2.7. Hvaða valkosti höfum við?

  1. Við getum notað attr_accessor undir lykilorðinu private til að láta það virka, þ.e. við fáum villu þegar við reynum að vísa til frábær_breytilegfrábær_breytileg aðferð.
class Foo
  private
​
  attr_accessor :awesome_variable
end
  1. Önnur kosturinn er að framkvæma einkavaðferðina á aðferðum sem búið er til af eiginleiki_eiginleiki; í þessu tilfelli verðum við líka að muna að setja setterinn þar inn.
class Foo
  attr_accessor :awesome_variable
​
  private :awesome_variable, :awesome_variable=
end

Vandamál með eiginleiki_ * Aðferðirnar eru ekki einu hindranirnar. Við getum lent í sömu erfiðleikum þegar við viljum búa til einkannaf.

class Foo
  private alias :bar, :awesome_bar
end

Ruby 3.0 og fyrirtækið okkar

Sem betur fer kynnir Ruby 3.0 mikla breytingu þar sem sýnileikaraðferðir geta tekið fylki sem rök og aðferðir eins og alias og attr_* geta endurstillt fylkið með nöfnum þeirra aðferða sem hafa verið skilgreindar. Þú getur lesið meira hér.

Nú skulum við skoða nokkur dæmi í nýjustu euba og athuga hvort breytingarnar hafi í raun verið gerðar og hvernig við getum notað þær.
​
Í fyrsta dæminu skulum við nota private fyrir framan attr-aðgangaraðila:

class Foo
  private attr_accessor :awesome_variable
end

Slík köllun mun ekki valda villum við greiningu setningarfræðinnar og, sem skiptir máli, frábær_breytilegur ogawesome_variable =aðferðir verða einkaaðferðir.
​
alias-aðferðin gerir það sama og áður; hún skilar nú einnig tákni sem nafni nýrrar aðferðar og gerir hana sýnilega.

class Foo
  private alias :bar, :awesome_bar
end

Áhugaverð staðreynd er að við getum einnig kafað dýpra í frekari aðferðir, t.d. hið frábæraprent-einingu má kalla á milli private og attrlesari; það er mikilvægt að slík aðferð skili fylki með nöfnum aðferðanna sem eru til hægri í tjáningunni.

class Module
  def awesome_print(names)
    puts names
    names
  end
end
class Foo
  private awesome_print attr_reader :awesome_bar
end 

Yfirlit

Vonandi finnur þú þessa grein gagnlega! Ef fleiri fréttir berast um Ruby 3.0, lestu meira. hér.

Gleðilega forritun!

Tilboð fyrir Ruby-þróunaraðila

Lesa meira:

Þegðu og taktu peningana þína #1: Falinn kostnaður og raunveruleg sveigjanleiki í vöruþróunarferli

CTO áskoranir – stækkun og vöxtur hugbúnaðarafurða

Tengdar greinar

Myndskreyting af heilbrigðisforriti fyrir snjallsíma með hjartatákni og hækkandi heilsufarsgrafík, merkt með The Codest-merkinu, sem táknar stafræna heilsu og HealthTech-lausnir.
Hugbúnaðarþróun

Heilbrigðis-hugbúnaður: gerðir og notkunartilvik

Tólin sem heilbrigðisstofnanir treysta á í dag líta ekkert út eins og pappírsskjöl frá fyrri áratugum. Heilbrigðisforrit styðja nú heilbrigðiskerfi, sjúklingameðferð og nútímalega heilbrigðisþjónustu á klínískum og...

THECODEST
Yfirlitsmynd sem sýnir hnignandi súlurit með uppstrekktri ör og gullmynt sem táknar kostnaðarhagkvæmni eða sparnað. The Codest-merkið birtist í efra vinstra horni með slagorðinu "In Code We Trust" á ljósgráum bakgrunni.
Hugbúnaðarþróun

Hvernig á að stækka þróunarteymið án þess að fórna gæðum vörunnar

Ertu að stækka þróunarteymið þitt? Lærðu hvernig á að vaxa án þess að fórna gæðum vörunnar. Þessi leiðarvísir fjallar um merki um að kominn sé tími til að stækka, uppbyggingu teymisins, ráðningar, forystu og verkfæri—og hvernig teymið getur...

THECODEST
Hugbúnaðarþróun

Búðu til vefumsóknir sem þola framtíðina: innsýn frá sérfræðiteymi The Codest

Uppgötvaðu hvernig The Codest skarar fram úr við að búa til stigstækar, gagnvirkar vefumsóknir með nýjustu tækni, sem bjóða upp á hnökralausa notendaupplifun á öllum kerfum. Lærðu hvernig sérfræðiþekking okkar knýr fram stafræna umbreytingu og viðskipti...

THECODEST
Hugbúnaðarþróun

Topp 10 hugbúnaðarþróunarfyrirtæki í Lettlandi

Kynntu þér fremstu hugbúnaðarþróunarfyrirtæki Lettlands og nýstárlegar lausnir þeirra í nýjustu grein okkar. Uppgötvaðu hvernig þessir tækniforingjar geta hjálpað til við að efla fyrirtækið þitt.

thecodest
Lausnir fyrir fyrirtæki og vaxtarfyrirtæki

Grunnatriði í Java hugbúnaðarþróun: Leiðarvísir að árangursríkri útvistun

Kannaðu þessa ómissandi leiðbeiningu um árangursríka outsourcing Java hugbúnaðarþróun til að auka skilvirkni, afla aðgangs að sérfræðiþekkingu og tryggja árangur verkefna með The Codest.

thecodest

Gerðu þig áskrifanda að þekkingargrunni okkar og vertu upplýstur um sérfræðiþekkingu upplýsingatæknigeirans.

    Um okkur

    The Codest – Alþjóðlegt hugbúnaðarþróunarfyrirtæki með tæknimiðstöðvar í Póllandi.

    Bretland - Höfuðstöðvar

    • Skrifstofa 303B, 182-184 High Street North E6 2JA
      Lundúnir, England

    Pólland - staðbundin tæknimiðstöðvar

    • Fabryczna skrifstofugarður, Aleja
      Herbergi 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsjá, Pólland

    The Codest

    • Heim
    • Um okkur
    • Þjónusta
    • Case Studies
    • Vitið hvernig
    • Starfsferilmöguleikar
    • Orðabók

    Þjónusta

    • Það er ráðgjafi
    • Hugbúnaðarþróun
    • Bakendaþróun
    • Framhliðþróun
    • Staff Augmentation
    • Bakhliðaráþróunaraðilar
    • Skýjaverkfræðingar
    • Gagnaverkfræðingar
    • Annað
    • Gæðatryggingartæknimenn

    Auðlindir

    • Staðreyndir og goðsagnir um samstarf við utanaðkomandi hugbúnaðarþróunaraðila
    • Frá Bandaríkjunum til Evrópu: Af hverju ákveða bandarísk sprotafyrirtæki að flytja til Evrópu?
    • Samanburður á tæknifjarkerfisþróunarmiðstöðvum: Tech Offshore Europe (Pólland), ASEAN (Filippseyjar), Eurasia (Tyrkland)
    • Hvert eru helstu áskoranir CTO-a og CIO-a?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Höfundarréttur © 2026 af The Codest. Öll réttindi áskilin.

    is_ISIcelandic
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech lvLatvian lt_LTLithuanian is_ISIcelandic