Ruby Refaktorálása

Ruby Refaktorálása

EÖTVÖS LORÁND TUDOMÁNYEGYETEM INFORMATIKAI KAR KOMPUTERALGEBRA TANSZÉK Ruby refaktorálása Sebestyén Gábor programtervező matematikus Témavezető Dr. Kovács Attila Budapest, 2010 Tartalomjegyzék Bevezető................................................................................................................................. 4 Mi a Ruby? ............................................................................................................................ 7 A Ruby rövid története...................................................................................................... 7 A futtatási környezetről röviden........................................................................................ 8 A Ruby nyelv alapjai......................................................................................................... 9 Kommentek..................................................................................................................... 10 A változók........................................................................................................................10 Operátorok ...................................................................................................................... 12 Vezérlési szerkezetek ......................................................................................................13 Ciklusok...........................................................................................................................16 Break, redo és next.......................................................................................................... 18 Iterátorok......................................................................................................................... 18 A yield parancs................................................................................................................ 20 Blokkok........................................................................................................................... 20 Típusok............................................................................................................................ 21 Stringek.......................................................................................................................21 Számok........................................................................................................................23 Tömbök.......................................................................................................................24 Hash táblák..................................................................................................................26 Tartományok............................................................................................................... 27 Reguláris kifejezések.................................................................................................. 29 Minta alapú helyettesítések ........................................................................................30 Kivétel kezelés ................................................................................................................31 A retry parancs............................................................................................................ 33 Kivételek kiváltása - a raise metódus..........................................................................33 A catch-throw szerkezet..............................................................................................34 Ruby, az objektum-orientált nyelv....................................................................................... 35 Minden objektum!........................................................................................................... 35 Modulok...........................................................................................................................36 Osztályok ........................................................................................................................ 37 Öröklődés.........................................................................................................................38 Objektumok .................................................................................................................... 38 Származás megadása ...................................................................................................... 39 A self és a super kulcsszavak .....................................................................................39 Osztály és példány változók............................................................................................ 40 Osztály szintű konstansok .............................................................................................. 42 Korlátozások és láthatósági körök megadása ................................................................. 42 Objektum változók és metódusok láthatóságának szabályozása ...............................42 Private ........................................................................................................................ 43 Protected..................................................................................................................... 44 Bővítés mixinekkel ......................................................................................................... 44 Üzenetek avagy metódusok ............................................................................................ 45 Osztály metódus deklarálása ......................................................................................45 Példány metódus deklarálása...................................................................................... 47 Metódus átnevezése aliasszal .....................................................................................47 2 Operátor átdefiniálás, túlterhelés ............................................................................... 47 Dinamikus bővítés .......................................................................................................... 48 Objektum bővítése, módosítása ................................................................................. 50 A refaktorálás bemutatása egy példán keresztül...................................................................52 A refaktorálásról röviden................................................................................................. 52 Egy példa......................................................................................................................... 53 A kiindulópont................................................................................................................. 54 A Movie osztály.......................................................................................................... 54 A Rental osztály.......................................................................................................... 54 A Customer osztály.....................................................................................................55 A refaktorálás első lépése................................................................................................ 58 A statement metódus szétszedése és újraépítése ........................................................58 1. lépés, blokk kiemelése metódusba (Extract Method) ............................................59 2. lépés, metódus átnevezése (Rename Method) ....................................................... 61 3. lépés, az amountFor metódus átmozgatása a Rental osztályba (Move Method) ..62 4. lépés, az amountFor(...) kifejezés kifejtése (Inline)................................................63 5. lépés, a totalAmount temporáris változó kiiktatása ............................................... 65 6. lépés, a törzsvásárlói pontok kiszámításának kiemelése metódusba (Extract Method).......................................................................................................................66 7. lépés, a teljes ár kiszámolásának kifaktorálása önálló metódusba (Extract Method) .....................................................................................................................................68 8. lépés, a teljes ár kiszámolásának kifaktorálása önálló metódusba (Extract Method) .....................................................................................................................................69 9. lépés, bevezetjük a HTML alapú kiszámlázást.......................................................70 Egy refaktoráló eljárás megvalósítása .................................................................................72 Az eljárás rövid ismertetése.............................................................................................72 Motiváció ................................................................................................................... 72 Az eljárás elvi lépései ................................................................................................ 72 Támogató eszközök ........................................................................................................ 73 JRuby AST támogatás ................................................................................................73 A RadRails keretrendszer............................................................................................73 Node Provider............................................................................................................. 74 Node

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    107 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us