{"id":"https://openalex.org/W2513351985","doi":null,"title":"Refactoring in Ruby","display_name":"Refactoring in Ruby","publication_year":2009,"publication_date":"2009-10-09","ids":{"openalex":"https://openalex.org/W2513351985","mag":"2513351985"},"language":"en","primary_location":{"id":"pmh:oai:cds.cern.ch:1518301","doi":null,"is_oa":false,"landing_page_url":"http://cds.cern.ch/record/1518301","pdf_url":null,"source":{"id":"https://openalex.org/S4306402195","display_name":"CERN Document Server (European Organization for Nuclear Research)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I67311998","host_organization_name":"European Organization for Nuclear Research","host_organization_lineage":["https://openalex.org/I67311998"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":null},"volume":null,"type":"article","is_traditional":true,"indexed_in":[],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":null,"display_name":"W. C. Wake","orcid":null,"observed_orcids":[]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"W. C. Wake","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]},{"author_position":"last","author":{"id":"https://openalex.org/A5083206649","display_name":"Kevin Rutherford","orcid":null,"observed_orcids":[]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Kevin Rutherford","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.0,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9531000256538391,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9531000256538391,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10430","display_name":"Software Engineering Techniques and Practices","score":0.03840000182390213,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T12490","display_name":"Software Engineering and Design Patterns","score":0.0020000000949949026,"subfield":{"id":"https://openalex.org/subfields/3303","display_name":"Development"},"field":{"id":"https://openalex.org/fields/33","display_name":"Social Sciences"},"domain":{"id":"https://openalex.org/domains/2","display_name":"Social Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/refactoring","display_name":"refactoring","score":0.9259999990463257},{"id":"https://openalex.org/keywords/ruby-programming-language","display_name":"Ruby programming language","score":0.847000002861023},{"id":"https://openalex.org/keywords/code-smells","display_name":"code smells","score":0.8999999761581421},{"id":"https://openalex.org/keywords/legacy-software","display_name":"legacy software","score":0.9129999876022339},{"id":"https://openalex.org/keywords/test-driven-development","display_name":"test-driven development","score":0.9990000128746033},{"id":"https://openalex.org/keywords/code-duplication","display_name":"code duplication","score":0.6629999876022339},{"id":"https://openalex.org/keywords/class-design","display_name":"class design","score":0.6639999747276306},{"id":"https://openalex.org/keywords/object-oriented-design","display_name":"object-oriented design","score":0.6240000128746033},{"id":"https://openalex.org/keywords/software-maintainability","display_name":"software maintainability","score":0.6809999942779541},{"id":"https://openalex.org/keywords/dynamic-programming-languages","display_name":"dynamic languages","score":0.48399999737739563}],"concepts":[{"id":"https://openalex.org/C152752567","wikidata":"https://www.wikidata.org/wiki/Q116877","display_name":"Code refactoring","level":3,"score":0.9922100305557251},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6930693984031677},{"id":"https://openalex.org/C2778202681","wikidata":"https://www.wikidata.org/wiki/Q8034663","display_name":"Workbook","level":2,"score":0.6840308904647827},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.5908854603767395},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5800716876983643},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.48368674516677856},{"id":"https://openalex.org/C105446022","wikidata":"https://www.wikidata.org/wiki/Q445962","display_name":"Legacy system","level":3,"score":0.4322337508201599},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.4137086868286133},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.09573885798454285},{"id":"https://openalex.org/C121955636","wikidata":"https://www.wikidata.org/wiki/Q4116214","display_name":"Accounting","level":1,"score":0.0},{"id":"https://openalex.org/C144133560","wikidata":"https://www.wikidata.org/wiki/Q4830453","display_name":"Business","level":0,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"pmh:oai:cds.cern.ch:1518301","doi":null,"is_oa":false,"landing_page_url":"http://cds.cern.ch/record/1518301","pdf_url":null,"source":{"id":"https://openalex.org/S4306402195","display_name":"CERN Document Server (European Organization for Nuclear Research)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I67311998","host_organization_name":"European Organization for Nuclear Research","host_organization_lineage":["https://openalex.org/I67311998"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":null},{"id":"mag:2513351985","doi":null,"is_oa":false,"landing_page_url":"https://openlibrary.org/books/OL24094521M/Refactoring_in_Ruby","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":["https://openalex.org/W2279489951","https://openalex.org/W2612650101","https://openalex.org/W7005656038","https://openalex.org/W7095181086","https://openalex.org/W7215594804","https://openalex.org/W4251809272","https://openalex.org/W7024193775","https://openalex.org/W7162809682","https://openalex.org/W3092826096","https://openalex.org/W6908673450"],"abstract_inverted_index":{"The":[0,87,113],"First":[1],"Hands-On,":[2],"Practical,":[3],"All-Ruby":[4],"Refactoring":[5,43,165],"Workbook!":[6],"Refactoringthe":[7],"art":[8],"of":[9,13,160,241],"improving":[10],"the":[11,17,26,35,39,49,140,158,238,263],"design":[12,79,175,190],"existing":[14],"codehas":[15],"taken":[16],"world":[18],"by":[19],"storm.":[20],"So":[21],"has":[22],"Ruby.":[23],"Now,":[24],"for":[25,38,72],"first":[27],"time,":[28],"theres":[29],"a":[30,85,128],"refactoring":[31,110,123],"workbook":[32,114],"designed":[33,119],"from":[34,182],"ground":[36],"up":[37],"dynamic":[40],"Ruby":[41,45,57,150,167],"language.":[42],"in":[44,111,124,166,184],"gives":[46],"you":[47,53,90,107,155,170,178,269],"all":[48],"realistic,":[50],"hands-on":[51],"practice":[52,122],"need":[54],"to":[55,65,94,120,135,156,194,209,249,266],"refactor":[56,95,270],"code":[58,67,99,130,174,187,202,247],"quickly":[59],"and":[60,74,92,100,105,137,198,214,219,234,251,258],"effectively.":[61],"Youll":[62],"discover":[63],"how":[64,93],"recognize":[66],"smells,":[68],"which":[69],"signal":[70],"opportunities":[71],"improvement,":[73],"then":[75],"perfect":[76],"your":[77,185,246],"programs":[78],"one":[80],"small,":[81],"safe":[82],"step":[83],"at":[84],"time.":[86],"book":[88],"shows":[89],"when":[91],"with":[96,116,254],"both":[97],"legacy":[98],"during":[101],"new":[102],"test-driven":[103],"development,":[104],"walks":[106],"through":[108],"real-world":[109],"detail.":[112],"concludes":[115],"several":[117],"applications":[118],"help":[121,169],"realistic":[125],"domains,":[126],"plus":[127],"handy":[129],"review":[131],"checklist":[132],"youll":[133,142],"refer":[134],"again":[136],"again.":[138],"Along":[139],"way,":[141],"learn":[143],"powerful":[144],"lessons":[145],"about":[146],"designing":[147],"higher":[148],"quality":[149],"softwarelessons":[151],"that":[152,192],"will":[153,168],"enable":[154],"experience":[157],"joy":[159],"writing":[161],"consistently":[162],"great":[163],"code.":[164],"Recognize":[171,222],"why":[172],"poor":[173],"occurs,":[176],"so":[177],"can":[179],"prevent":[180],"it":[181],"occurring":[183],"own":[186],"Master":[188],"better":[189],"techniques":[191],"lead":[193],"more":[195],"efficient,":[196],"reliable,":[197],"maintainable":[199],"software":[200],"Fix":[201],"thats":[203],"too":[204],"long,":[205],"large,":[206],"or":[207,224],"difficult":[208],"follow":[210],"Ferret":[211],"out":[212],"duplication,":[213],"express":[215],"each":[216],"idea":[217],"once":[218,221],"only":[220],"missing":[223],"inadequately":[225],"formed":[226],"classes":[227,233],"Simplify":[228],"overly":[229],"complex":[230],"relationships":[231],"between":[232],"their":[235],"subclasses":[236],"Achieve":[237],"right":[239],"balance":[240],"responsibilities":[242],"among":[243],"objects":[244],"Make":[245],"easier":[248],"test":[250],"change":[252],"Cope":[253],"incomplete":[255],"library":[256],"modules,":[257],"fix":[259],"runaway":[260],"dependencies":[261],"Learn":[262],"next":[264],"steps":[265],"take":[267],"after":[268]},"counts_by_year":[],"updated_date":"2026-09-29T14:09:16.559479","created_date":"2016-09-16T00:00:00"}
