Sobes.tech
Middle

Дебаггерді қолданбай кодты қалай түзетуге болады?

sobes.tech AI

AI-дан жауап

Дебаггерсіз негізгі түзету әдістері:

  • puts пайдалану арқылы аралық мәндерді және бағдарламаның орындалу барысын шығару.
  • Стандартты кітапхана Logger көмегімен файлға лог жазу.
  • Объект туралы ақпарат шығаратын әдістерді қолдану, мысалы, #inspect немесе #p.
  • Бағдарламаның белгілі бір шарттары немесе жағдайларын тексеру үшін қателерді пайдалану.
  • Қателер пайда болған кезде стек трассировка хабарламаларын оқу.

puts қолданудың мысалы:

# `puts` қарапайым мысалы
def calculate_sum(a, b)
  sum = a + b
  puts "a мәні: #{a}" # a айнымалысының мәнін шығару
  puts "b мәні: #{b}" # b айнымалысының мәнін шығару
  puts "Есептелген қосынды: #{sum}" # аралық нәтижені шығару
  sum
end

result = calculate_sum(5, 10)
puts "Нәтиже: #{result}"

Logger көмегімен лог жазудың мысалы:

# Лог жазу мысалы
require 'logger'

# Логгерді файлға шығару үшін құру
log = Logger.new('application.log')

def process_data(data)
  # Ақпаратты логқа жазу
  log.info("Деректерді өңдеу басталды: #{data}")
  processed_data = data.upcase
  # Өңделген деректерді жазу
  log.debug("Өңделген деректер: #{processed_data}")
  processed_data
rescue => e
  # Қателерді логқа жазу
  log.error("Деректерді өңдеу кезінде қате: #{e.message}")
  nil
end

process_data("кейбір енгізу")

p және inspect қолданудың мысалы:

# `p` және `inspect` қолдану
data = { name: "Alice", age: 30 }

p data # `inspect` қолданады, көрнекірақ шығару үшін
puts data.inspect # `inspect`-ті нақты қолдану

Қателерді пайдалану мысалы:

# Қателерді пайдалану арқылы тексеру
def divide(a, b)
  raise ArgumentError, "Бөлу нөлге болмайды" if b == 0
  a / b
end

begin
  result = divide(10, 0)
rescue ArgumentError => e
  puts "Қате орын алды: #{e.message}" # Қатты ұстап, өңдеу
end