in

Разработка ПО: решить любую проблему в 4 шага

Разработка ПО требует не только навыков программирования, но и умения решать проблемы в ходе разработки. Разбираемся, что делать, чтобы разобраться с любой проблемой в коде.

Разработка ПО: основные шаги при поиске проблем

Для решения проблем, связанных с разработкой ПО, можно выделить четыре этапа:

  • Определение проблемы;
  • Сбор информации;
  • Поиск потенциального решения;
  • Проверка решения.

Определение проблемы

Если мы говорим о проблеме при разработке ПО, будем иметь в виду проблему любого размера и масштаба:

  • Вы делаете что-то очень специфичное и не можете заставить часть кода работать так, как вы хотите.
  • Отладчик выдает странные ошибки, вы понятия не имеете что может быть не так;
  • Вы пытаетесь разобраться со старым кодом, о принципах работы которого знал только разработчик, который давно уволился;
  • Вы видите приложение в целом, но не представляете, как должна происходить разработка ПО в деталях, не видите компоненты приложения по отдельности;
  • Вы решаете, какой набор фреймворков/программ использовать для разработки проекта, но не можете выбрать лучший;
  • Вы знаете, что есть существует функция, которая может сделать то, что вам нужно, но не можете вспомнить как она называется.

В одних случаях понять и определить проблему проще, чем в других. К примеру, иногда ошибка простая и вы сразу понимаете, что допустили опечатку в синтаксисе. А иногда, ошибка полностью выбивает из колеи: программа просто делает не то, что вы от нее ожидаете.

Даже в тяжелом случае, попробуйте сформулировать проблему более точно, задав себе наводящие вопросы:

  • Что я пытаюсь сделать?
  • Что я уже сделал?
  • Что, по-моему, должна делать программа?
  • Что это на самом деле делает?

Сбор информации

Иногда люди пропускают прошлый шаг и сразу переходят ко второму:

  • Ищут решение на StackOverflow;
  • Копируют решения со Стека или какой-либо литературы, не понимая, что делает этот код.

И это не плохо, иногда такой способ решения проблем допустим. Но он должен быть лишь одним из инструментов в вашем ящике, а не единственным используемым решением.

Что еще должно быть в вашем наборе для решения проблем? Подумайте о той информации, которую вы ищете:

  • Если вы точно знаете, какую функцию, класс или метод API вы используете, сначала посмотрите, что пишут в соответствующей документации, чтобы убедиться, что вы правильно это делаете;
  • Если у вас возникли проблемы при использовании ПО с открытым кодом, загляните в исходники и посмотрите, как описана проблемная функция – возможно вы все-таки используете ее неправильно;
  • Чтобы получить общее представление о новой библиотеке или фреймворке, найдите подходящий туториал/краткое руководство;
  • Если вы не понимаете, почему часть кода написана конкретным образом, попробуйте заглянуть в историю комминтов – прошлые изменения или комментарии могут прояснить картину;
  • И, конечно, гуглите. Иногда вы точно знаете, что вам нужно, но не можете сформировать это в виде названия метода или функции, либо не можете вспомнить какие точно они принимают аргументы. В такой ситуации поисковик может оказаться лучшим решением, которое даст необходимую подсказку.

Если один из методов долгое время не помогает, переключитесь на другой. Многие разработчики сразу переходят в поисковые системы, но использование различных методик поиска информации поможет расширить кругозор и лучше понимать эту и будущие проблемы.

Поиск потенциального решения

Если вы застряли, начните с чего-нибудь, с чего угодно. Если конечный результат при этом изменился – это успех. Продолжайте менять код до тех пор, пока не придете к подходящему решению.

Если вы разбираетесь с незнакомым кодом, попробуйте менять его понемногу. Выводите результат работы функций и переменные в консоль, чтобы понять как именно код будет работать при тех или иных изменениях.

Проверяйте работу кода как можно чаще. Да вы будете отвлекаться на это и тратить время, но это намного лучше, чем писать часть программы много часов без тестов, а потом узнать что она не работает, и неизвестно в каком месте.

Проверка решения

Когда все работает, проверьте насколько хорошо. Это можно сделать вручную: попробуйте подстроить условия выполнения таким образом, чтобы воспроизвести баг, от которого вы избавились, подумайте, как ошибка может проявиться еще и поменяйте соответствующим образом код, чтобы убедиться в его исправности.

Этот процесс можно автоматизировать. Добавление автоматического теста, который подтвердит, что функция работает как и задумывалось или что ошибка больше не возникает поможет избежать непредвиденных проблем.

На основе тестов существует целый подход к разработке – разработка ПО через тестирование. Под каждое изменение, которое планируется в проекте сначала пишется тест, который покрывает возможные сценарии работы программы.

Как вы оцените нашу статью?

0 рейтинг
Upvote Downvote

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

NoSQL

NoSQL базы данных: методы работы с данными

код

Пять принципов хорошего кода для начинающих программистов