Бизнес/Программирование/9 шагов для решения задачи разработки

9 шагов для решения задачи разработки

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

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

Основы Скрама

В моей команде мы работаем по методологии Agile ScrumДля тех, кто не знаком с процессом, вот краткое объяснение.

Scrum — это процесс работы над созданием продукта, который итеративно разрабатывается путем разбивки всех новых запросов на большие функции (известные как эпики) на небольшие куски, называемые рабочими элементами.

В каждом проекте обычно работает команда из пяти-девяти человек (оптимально семь), которые работают над согласованным набором элементов в течение определенного периода времени, называемого спринтом.

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

У вас есть ваш предмет, теперь с чего начать?

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

Переходя от тестирования к разработке, у меня не было большого опыта работы с модульными тестами или разработкой через тестирование (TDD). Хотя я знал, что использовать TDD и писать модульные тесты было хорошей идеей, мне не было поручено применять эти знания на практике. Так что, имея возможность как новичок, я обычно совершал ошибку, сразу приступая к написанию кода.

Основы модульного тестирования и TDD

Хотя это и не ожидается, наша команда пытается использовать TDD. В этой системе вы пишете модульные тесты, чтобы увидеть, дает ли ваш код правильный результат для бизнес-логики, которую вы пытаетесь сопоставить.

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

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

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

Управление временными ограничениями с помощью TDD

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

Тем не менее, TDD очень трудно придерживаться, когда вы ограничены во времени (что почти всегда). Я действительно хотел попробовать придерживаться этой техники, но постоянно сталкивался с проблемой времени.

Я думаю, что использование TDD было хорошим шагом в правильном направлении для изучения того, как подходить к задаче разработки, но я чувствовал, что некоторые моменты упущены. Это уже предполагает, что у вас есть полное представление о том, что вы делаете, и это может быть не так. Возможно, вы даже обнаружите, что после того, как вы сядете и прочитаете этот пункт самостоятельно, у вас появятся более глубокие вопросы, которые раньше не обсуждались. Из-за этого я решил обратиться за советом к кому-то старше и мудрее.

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

Вот совет, который я получил за 9 простых шагов.

1. Какова ваша цель?

Чтобы установить цель, вам нужно сделать три вещи:

  • Четкое понимание вашего рабочего элемента
  • Выясните, что требуется бизнесу от этого изменения
  • Оцените ценность этого изменения для бизнеса

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

2. Обсудите лучший способ достижения цели с другими

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

Во что бы то ни стало, попытайтесь преодолеть трудности самостоятельно, но помните о времени, которое вы тратите на это. Вы не должны и не должны взваливать всю работу на себя. Неважно, какой у вас уровень опыта, не бойтесь просить о помощи или обращаться к всезнающему Google.

3. Разбейте свою цель на задачи и задачи

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

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

4. Найдите похожие существующие модульные тесты и запустите их.

Подумайте о текущей функциональности продукта, который вы улучшаете.

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

5. Напишите свой новый тест

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

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

6. Решить задачу с минимальным количеством кода

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

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

7. Пройдите тест…

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

Пройдитесь по каждой строке, проверяя значение каждой переменной, свойства и оператора return.

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

8. …Затем проведите рефакторинг кода

Теперь, когда ваш тест пройден, вы можете расширить свое решение, чтобы оно стало более эффективным.

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

Все это потребует различных тестов.

9. Вернитесь к шагам 7–9.

Повторите шаги с 7 по 9, чтобы убедиться, что изменения, внесенные в код, не приведут к сбою теста. Если это не удается, отладьте тест, чтобы выяснить, почему.

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

Вот и все! Легко, верно?

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

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

Ниже Вы можете высказаться по теме или оставить свои вопросы - узнайте больше информации!
10 советов, как стать лучшим программистом

10 советов, как стать лучшим программистом
Против мнения
Не нравится
Нейтрально
Нравится
Поддерживаю
Против мнения
Не нравится
Нейтрально
Нравится
Поддерживаю

Хотите развиваться в карьере программиста? Вот советы от экспертов о том, как добиться успеха в сфере технологий.Кв...
Самоучка
Против аккаунта
Не нравится
Нейтрально
Нравится
Поддерживаю
Вот как алгоритмы будут развиваться сами

Вот как алгоритмы будут развиваться сами
Против мнения
Не нравится
Нейтрально
Нравится
Поддерживаю
Против мнения
Не нравится
Нейтрально
Нравится
Поддерживаю

Google заимствует подход у Дарвина, чтобы совершить сейсмический скачок в области автоматического машинного обучения.&nb...
Самоучка
Против аккаунта
Не нравится
Нейтрально
Нравится
Поддерживаю
Что происходит с вашими данными, когда вы умираете?

Что происходит с вашими данными, когда вы умираете?
Против мнения
Не нравится
Нейтрально
Нравится
Поддерживаю
Против мнения
Не нравится
Нейтрально
Нравится
Поддерживаю

Хорошая новость: ваши данные принадлежат вам. Плохие новости? Это верно только пока вы живы.Что не дает мне сп...
Самоучка
Против аккаунта
Не нравится
Нейтрально
Нравится
Поддерживаю
После смерти вы можете воскреснуть в виде чат-бота. Это проблема))

После смерти вы можете воскреснуть в виде чат-бота. Это проблема))
Против мнения
Не нравится
Нейтрально
Нравится
Поддерживаю
Против мнения
Не нравится
Нейтрально
Нравится
Поддерживаю

Эксперты по этике говорят, что футуристическая технология может открыть «целую банку червей».Никто не знает, куда мы поп...
Самоучка
Против аккаунта
Не нравится
Нейтрально
Нравится
Поддерживаю
person Опубликовал(а): Аноним - 39
Оцените статью:
person group filter_1
Ширина охвата темы
0
0
0
Глубина
0
0
0
Оценка автору
0
0
0

Чтобы увидеть комментарии, или написать свой, авторизуйтесь.

ВНИМАНИЕ: факты и мнения, высказанные в этой статье, являются личным мнением автора. BeText.ru не несет никакой ответственности за точность, полноту, пригодность или достоверность любой информации в этой статье.