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.
Mae refactorio yn cynnig nifer o fanteision, gan gynnwys:
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'.
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'.
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.
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.
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.
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.
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.
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.
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.
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.
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.
© 2024 RailsInsights. All rights reserved.