Эта статья является частью серии статей для новых разработчиков. Почему? Потому что я новый (5 месяцев) разработчик, и я хочу передать полученные знания. Черт возьми, даже если вы не новичок, что-то здесь может вам понравиться и помочь вашему рабочему процессу.
Я хочу поговорить о начале нового проекта. Это может быть рабочий проект или личный проект. Я кодирую на JavaScript, но это относится к любому языку программирования. Несмотря ни на что, это может быть ошеломляющим моментом. Вы думаете: «Я собираюсь сделать новое приложение», или вам говорят: «Создайте это новое приложение», и… что теперь?
Во-первых, если вы работаете с новым фреймворком или библиотекой, я хотел бы без зазрения совести добавить статью, которую я написал об изучении новых технологий, подобных этой. "Посмотри"!
Вернуться из другой статьи? Быстрый отказ от ответственности: в этой статье я упоминаю несколько популярных приложений, и эти компании никоим образом не поддерживают меня. Я просто пользуюсь их продукцией.
Отлично, давайте перейдем к совету!
Если уместно, почувствуйте, как будет выглядеть ваш конечный продукт.
Если в вашем проекте нет визуального дизайна, смело переходите к следующим частям.
Однако, если у вас будет пользовательский интерфейс для вашего проекта, сделайте дизайн. Если кто-то сделает это за вас, отлично! Если это личный проект, сделайте макет и переведите его в HTML и CSS. Жестко закодируйте все и посмотрите, как все это будет выглядеть и работать вместе. Я использую Codepen (или аналогичную альтернативу) для этого, потому что мне не нужно настраивать полную среду, чтобы иметь возможность быстро просмотреть простой сайт HTML/CSS, а версия «Pro» позволяет загружать ресурсы.
Я считаю, что это помогает мне по ряду причин. Во-первых, я визуальный ученик/человек. Глядя на что-то конкретное, обычно мои мысли не разлетаются в миллион направлений. Во-вторых, у вас достаточно работы по реализации функций с помощью кода, и вы не хотите беспокоиться о кодировании CSS по мере продвижения вперед поверх всего остального. Наконец, и подробнее об этом позже, это может помочь прояснить, что вы кодируете в первую очередь.
Большая картина против деталей
Необходимо сбалансировать размышления о проекте с точки зрения общих целей и мелких деталей реализации. Цель создания интерактивного веб-приложения разбивается на цели, связанные с конкретными отдельными функциями, и каждая из них разбивается на этапы реализации. Это много, чтобы отслеживать в вашем мозгу, и я, честно говоря, не рекомендовал бы это. Я лично разбиваю это, используя некоторые приложения для управления проектами.
Теперь, время отказа от ответственности, я тот человек, который пробовал больше систем планирования и знаменитых методов управления временем. Когда дело доходит до того, чтобы остаться на борту… Кажется, я никогда не смогу этого сделать. Но это история в другой раз. Ваша точная система будет основана на том, что работает для вас. Если вы это поняли, то отлично! Если нет, может быть, то, что я делаю, может привести вас в полезном направлении.
Сейчас я лично много использую Trello. Это популярный сайт/приложение для канбан-досок. Если вы не знаете об этом, зайдите на их сайт и посмотрите, что это такое! Я собираюсь привести пример того, как я использую его для текущего проекта.
Вот общая схема:
Это The Big Picture: туристическая информация Нью-Йорка (сайт). Списки и карточки — это детали. Поскольку в этом проекте несколько страниц, я составил список для каждой страницы, список «в процессе» и список «сделано». Объем описания для каждой карты в списке зависит от того, насколько много я думал о той или иной функции. Конечно, я обновляю такие вещи, прежде чем работать над этими функциями или по мере того, как ко мне приходит общая мудрость. Вам НЕнужно иметь полностью разработанный план, прежде чем вы начнете программировать проект.
Я повторю: вам не нужен полностью разработанный план, прежде чем вы начнете программировать. Он будетнеизбежно развиваться по мере того, как вы начнете работать. Нет жестко установленного порядка, в котором вам нужно работать, и детали будут добавлены или удалены в любое время.
Основной способ, которым я даю больше деталей и указаний для себя, — это контрольные списки в карточке Trello для функции. Вот как я разбиваю «Большую картину» на несколько меньших больших картинок для тех частей проекта, которые я в настоящее время продумал немного больше. Например:
«Форма поиска» теперь представляет собой общую картину, а детали — это детали реализации, найденные в моем контрольном списке. Казалось бы, небольшая и простая функция может состоять из множества движущихся частей. В общем, написание «Создать форму поиска» в качестве всего моего руководства оставило бы мне мало направлений для себя сейчас и моего будущего «я», возвращающегося к проекту после, скажем, длинных выходных.
И я даже иду дальше! Последний пункт в этом первом контрольном списке относится к соединению формы поиска и API для приложения. Когда мне придет время подумать об API для этого веб-приложения, я составлю еще один контрольный список и разобью этот элемент на более мелкие шаги (например, вызов API, анализ json, обработка ошибок и т. д.).
В принципе, мне очень нравится проверять вещи в контрольных списках.
Опять же, у вас может быть 100% другой способ делать вещи. Но главный вывод здесь таков: убедитесь, что вы разбиваете все на мелкие кусочки. Даже если вам кажется, что на планирование уходит много времени, это может помочь вам написать код и реализовать каждую функцию быстрее, как только вы начнете.
С чего начать?
Если вы уже знаете, как реализовать определенную функцию, и можете сделать это в самом начале проекта, начните с нее. Приятно начинать с чего-то, что вы знаете, и как только вы с относительной легкостью запустите это, вы сможете расслабиться и насладиться моментом счастья и отпраздновать эту маленькую победу. Начните с хорошей ноги и подкрепите этот позитивный импульс, потому что вы неизбежно застрянете и сердито уставитесь на свой текстовый редактор в какой-то момент позже в этом процессе.
Ничего знакомого в поле зрения, но у вас есть хороший контрольный список для одной или двух функций? Начните с этого. Наличие контрольных списков означает, что вы, вероятно, выполнили некоторые релевантные поисковые запросы в Google и продумали эти функции, так что идите в этом направлении.
Неужели, действительно застрял у стартовых ворот? В самом начале я упомянул, что наличие жестко закодированного пользовательского интерфейса (если применимо) может помочь вам понять, над чем работать в первую очередь. Условный рендеринг, события щелчка/мыши/клавиатуры и манипулирование DOM часто вносят изменения в ваш пользовательский интерфейс. Визуальная обратная связь об успешной реализации функции снова является отличным способом дать себе положительный отзыв и импульс, поэтому, возможно, взгляните на некоторые из этих функций, проработайте детали реализации и начните с этого!
Бесконечность не предел
Как только вы выйдете за пределы стартовых ворот, программирование станет игрой для решения проблем методом проб и ошибок. Вы застрянете, потратите много времени на гугление и будете ломать голову над тем, что упустили из виду, что ошибка была простой орфографической ошибкой. И, в конце концов, вы получите огромное удовольствие от того, что создали что-то!
Как всегда, оставьте комментарий, если вам есть что сказать об этой статье!