Rails Insights

Refactoring Cod Ruby: Ymarferion Gorau

Mae refactorio cod yn broses hanfodol i wella ansawdd a chynnal cynheliaeth cod yn y byd datblygu meddalwedd. Mae'n cynnwys newid strwythur y cod heb newid ei ymddygiad allanol. Mae'r erthygl hon yn archwilio ymarferion gorau ar gyfer refactorio cod Ruby, gan ei gwneud yn haws i ddeall, cynnal, a datblygu.

Pam Mae Refactorio yn Hanfodol?

Mae refactorio yn cynnig nifer o fanteision, gan gynnwys:

  • Gwell Darllenadwyedd: Mae cod cliriach yn haws i'w ddeall gan dîm datblygu.
  • Gwell Cynheliaeth: Mae cod sy'n cael ei refactorio yn llai tebygol o gynnwys namau a phroblemau.
  • Hyblygrwydd: Mae'n haws i wneud newidiadau yn y dyfodol pan fydd y cod wedi'i strwythuro'n dda.
  • Perfformiad Gwell: Gall refactorio arwain at welliannau yn y perfformiad, er nad yw hyn bob amser yn wir.

Ymarferion Gorau ar gyfer Refactorio Cod Ruby

1. Defnyddio Enwau Clir a Chryno

Mae enwau da yn hanfodol i greu cod darllenadwy. Mae'n bwysig defnyddio enwau sy'n disgrifio'n glir beth mae'r newidyn neu'r dull yn ei wneud.

def calculate_area(radius)
  Math::PI * radius ** 2
end

Yn y cod uchod, mae'r enw 'calculate_area' yn egluro'n glir beth yw'r swyddogaeth. Mae'n well na 'calc' neu 'area'.

2. Cadw at Ddulliau a Chynlluniau Codio

Mae dilyn dulliau a chynlluniau codio yn helpu i sicrhau bod y cod yn gyson. Mae hyn yn cynnwys defnyddio'r un strwythurau a'r un arferion ar draws y prosiect.

class Circle
  attr_accessor :radius

  def initialize(radius)
    @radius = radius
  end

  def area
    Math::PI * radius ** 2
  end
end

Mae'r dosbarth 'Circle' yn dilyn dulliau da, gan gynnwys defnyddio 'attr_accessor' i greu getter a setter ar gyfer 'radius'.

3. Torri Cod Hir i Fannau Bach

Mae cod hir yn anodd ei ddeall a'i gynnal. Mae'n well torri cod hir i fannau llai sy'n gwneud un peth yn dda.

def calculate_circle_area(radius)
  Math::PI * radius ** 2
end

def calculate_rectangle_area(length, width)
  length * width
end

Mae'r ddwy swyddogaeth uchod yn gwneud un peth yn dda, sy'n gwneud y cod yn haws i'w ddeall a'i gynnal.

4. Defnyddio Dulliau a Chymhwyso

Mae defnyddio dulliau a chymhwyso yn helpu i leihau dyblygu cod. Mae'n well defnyddio dulliau i rannu cod sy'n cael ei ddefnyddio sawl gwaith.

def calculate_area(shape)
  case shape
  when :circle
    calculate_circle_area(radius)
  when :rectangle
    calculate_rectangle_area(length, width)
  else
    raise "Shape not recognized"
  end
end

Mae'r dull 'calculate_area' yn defnyddio 'case' i ddelio â gwahanol fathau o siapiau, gan leihau dyblygu.

5. Defnyddio Testau Uned

Mae testau uned yn hanfodol i sicrhau bod y cod yn gweithio fel y disgwylir. Mae'n bwysig creu testau cyn ac ar ôl refactorio.

require 'minitest/autorun'

class TestCircle < Minitest::Test
  def test_area
    circle = Circle.new(5)
    assert_in_delta 78.54, circle.area, 0.01
  end
end

Mae'r prawf uned uchod yn sicrhau bod y dull 'area' yn dychwelyd y canlyniad cywir.

6. Defnyddio Gemau a Chymhwyso

Mae gemau fel 'Rubocop' a 'Reek' yn helpu i gadw at safonau codio a chanfod problemau yn y cod. Mae'n bwysig eu defnyddio fel rhan o'r broses refactorio.

# Gemfile
gem 'rubocop', require: false
gem 'reek', require: false

Gallwch ddefnyddio'r gemau hyn i wirio ansawdd y cod a chanfod unrhyw faterion sy'n gysylltiedig â darllenadwyedd a chynheliaeth.

7. Cadw at Ddeddfau a Chynlluniau

Mae deddfau fel 'Single Responsibility Principle' (SRP) yn helpu i sicrhau bod pob dosbarth a swyddogaeth yn gwneud un peth yn dda. Mae'n bwysig dilyn y rheolau hyn wrth refactorio.

class Rectangle
  def initialize(length, width)
    @length = length
    @width = width
  end

  def area
    @length * @width
  end
end

Mae'r dosbarth 'Rectangle' yn dilyn y SRP, gan fod yn gyfrifol am gyfrifo ardal rectangl yn unig.

8. Gweithredu Newidiadau Bach

Mae'n well gwneud newidiadau bach yn hytrach na newid mawr ar unwaith. Mae hyn yn helpu i leihau'r risg o ddiffygion a phroblemau.

def calculate_area(shape)
  if shape.is_a?(Circle)
    shape.area
  elsif shape.is_a?(Rectangle)
    shape.area
  else
    raise "Shape not recognized"
  end
end

Mae'r dull 'calculate_area' yn cael ei newid yn raddol i dderbyn gwahanol fathau o siapiau, gan leihau'r risg o gamgymeriadau.

9. Gweithredu Adborth

Mae'n bwysig derbyn adborth gan aelodau eraill o'r tîm. Gallant ddarparu persbectif newydd a chynnig syniadau ar sut i wella'r cod.

10. Dileu Cod Anghyfannedd

Mae'n bwysig dileu unrhyw god nad yw'n cael ei ddefnyddio mwyach. Mae hyn yn helpu i leihau cymhlethdod a chynyddu darllenadwyedd.

# Dileu cod nad yw'n cael ei ddefnyddio
def unused_method
  # Cod nad yw'n cael ei ddefnyddio
end

Mae dileu'r dull 'unused_method' yn gwneud y cod yn haws i'w ddeall a'i gynnal.

Casgliad

Mae refactorio cod Ruby yn broses bwysig sy'n helpu i wella ansawdd y cod a'i gynheliaeth. Trwy ddilyn ymarferion gorau, gallwch greu cod sy'n hawdd ei ddeall, ei gynnal, a'i ddatblygu. Cofiwch fod refactorio yn broses barhaus, felly peidiwch â bod yn ofnus i wneud newidiadau pan fydd angen.

Gyda'r awgrymiadau a'r enghreifftiau a gynhelir yn yr erthygl hon, byddwch yn gallu gwella eich sgiliau refactorio a chreu cod Ruby o ansawdd uchel.

Published: August 13, 2024

© 2024 RailsInsights. All rights reserved.