Архив автора: admin

Варианты бутербродов для завтрака

Весенний паштет с редисом

Ингредиенты:

• Редиска — 1 пучок
• Яйцо — 3
• Сыр
• Соль
• Горчица
• Перец

Процесс готовки:

Сваренные вкрутую яйца мелко натереть. Мы рекомендуем варить яйца 7 минут и оставить на 3 минуты.

Добавьте сыр к тертым яйцам и нарезанному редису. Читать

8 привычек, которые сдерживают ваш потенциал разработчика

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

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

 

Промедление и плохое управление временем

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

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

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

 

Как избежать проволочек и улучшить управление временем

Чтобы преодолеть прокрастинацию и укрепить свои навыки управления временем, рассмотрите следующие практические шаги:

  • Устанавливайте четкие цели и приоритеты: начните с определения четких целей и приоритетов для ваших проектов. Когда вы знаете, что нужно сделать, становится легче эффективно распределять свое время.
  • Разбивайте задачи на более мелкие этапы: крупные проекты могут казаться непосильными, что приводит к прокрастинации. Разделите их на более мелкие, выполнимые задачи. Это не только делает работу менее сложной, но и позволяет вам легче отслеживать свой прогресс.
  • Устанавливайте реалистичные сроки: устанавливайте крайние сроки для каждой задачи, гарантируя, что они реалистичны и достижимы. Будьте дисциплинированы в соблюдении этих сроков.
  • Используйте методы управления временем: Изучите методы управления временем, такие как техника Помодоро (работайте в определенные промежутки времени с короткими перерывами) или матрица Эйзенхауэра (расставляйте приоритеты по срочности и важности), чтобы эффективно структурировать свой рабочий день.
  • Сведите к минимуму отвлекающие факторы: определите распространенные отвлекающие факторы в вашей рабочей среде, будь то шумное рабочее пространство или заманчивые социальные сети. Примите меры, чтобы свести к минимуму или устранить эти отвлекающие факторы в периоды сосредоточенной работы.

 

Игнорирование документации

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

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

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

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

 

Пренебрежение балансом между работой и личной жизнью

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

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

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

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

 

Страх неудачи и перфекционизм

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

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

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

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

 

Избегание сотрудничества

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

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

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

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

 

Придерживаться единого технологического стека

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

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

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

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

 

Пренебрежение программными навыками и общением

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

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

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

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

 

Не ищу обратной связи

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

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

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

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

 

Заключение

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

  • Прокрастинация и плохое управление временем: преодоление прокрастинации и освоение тайм-менеджмента могут повысить производительность, позволив вам добиться большего на пути разработки.
  • Игнорирование документации: Правильная документация является ключом к успеху проекта, позволяя вам и вашей команде эффективно понимать, поддерживать и развивать вашу работу.
  • Пренебрежение балансом между работой и личной жизнью: Поддержание здорового баланса между работой и личной жизнью необходимо для долгосрочного успеха и благополучия в быстро меняющемся мире разработки программного обеспечения
  • Страх неудачи и перфекционизм: Поймите, что совершение ошибок — это часть процесса обучения, и совершенство не должно быть врагом прогресса.
  • Избегая сотрудничества: используйте сотрудничество как способ учиться у других, получать свежие идеи и совместно создавать лучшие решения.
  • Придерживайтесь единого технологического стека: будьте открыты для изучения новых инструментов и технологий, поскольку универсальность может открыть двери для разнообразных проектов.
  • Пренебрежение программными навыками и коммуникацией: Развитие сильных программных навыков и эффективной коммуникации так же важно, как и техническая экспертиза в современных условиях совместной работы.
  • Не ищите обратной связи: Помните, что обратная связь — ценный ресурс для улучшения, помогающий вам определить сильные стороны и области для дальнейшего развития.

 

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



2023-09-28T06:48:50
Программирование

Как изменить типографику блоков Гутенберга в WordPress? –

Семейство шрифтов — один из важных факторов, определяющих эстетику вашего веб-сайта. Многие темы WordPress предлагают тысячи шрифтов Google, а также предоставляют возможность использовать системный стек или собственный стиль. Помимо использования семейства шрифтов для всего сайта, вам может быть интересно украсить лишь несколько текстовых элементов на вашей странице. Возможно, вы хотите изменить цвет выделения или добавить буквицу, чтобы первая буква была крупнее. В этой статье мы объясним, как изменить эти типографские настройки для блоков Гутенберга на вашем сайте WordPress.

Блоки Гутенберга

Есть два способа настроить параметры оформления отдельных блоков в WordPress:

  • Использование настроек Гутенберга по умолчанию для текстовых блоков.
  • С помощью блочного плагина.

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

1. Настройки оформления для блоков Гутенберга

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

Абзац с пользовательской типографикойАбзац с пользовательской типографикой

Перейдите к сообщению или странице, где вы хотите изменить настройки оформления, и нажмите на блок абзаца. На правой боковой панели перейдите на вкладку «Блокировать», где вы можете найти параметры изменения цветов, настройки оформления и расширенный раздел.

Настройки блока абзацев в ГутенбергеНастройки блока абзаца в Гутенберге Изменение размера шрифта

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

Нажмите значок «Установить нестандартный размер», расположенный чуть выше параметра XL. Появится поле и ползунок для установки пользовательского размера шрифта для вашего абзаца. Вы можете изменить единицу измерения CSS на px, em или em, щелкнув единицу измерения px, отображаемую в поле.

Установить собственный размер шрифтаУстановка пользовательского размера шрифта. Просмотр настроек скрытой типографики.

Нажмите на три вертикальные точки (называемые «Параметры типографики»), расположенные в правом конце заголовка «Типографика». Это покажет вам все скрытые настройки для настройки внешнего вида вашего текста.

Скрытые настройки типографики для блокаСкрытые настройки типографики для блока

Нажмите ссылку «Сбросить», расположенную рядом с «Размером шрифта», чтобы изменить размер текста на значение по умолчанию (в соответствии с вашей темой). Нажмите на все параметры в разделе «Инструменты» один за другим, чтобы включить их.

Проверьте все параметры типографикиПроверьте все параметры типографики

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

Все скрытые настройки показаныОтображаются все скрытые настройки. Изменение внешнего вида шрифта.

Если вы заметили верхнюю панель инструментов блока, на ней есть варианты выделения жирным шрифтом и курсивом. Вы также можете нажать на маленькую стрелку вниз (называемую «Дополнительно») и использовать дополнительные параметры, такие как выделение, зачеркивание, надстрочный индекс, нижний индекс и т. д. Однако вы не можете установить более светлый, полужирный курсив или черный курсив на панели инструментов блока. . Просто щелкните раскрывающийся список под опцией «Внешний вид» на правой боковой панели и выберите нужный стиль шрифта.

Выберите внешний вид стиля шрифтаВыберите внешний вид стиля шрифта. Настройка других параметров.

Как и внешний вид, вы можете установить следующие параметры:

  • Интервал между буквами — введите число, чтобы увеличить или уменьшить расстояние между буквами в выбранном блоке абзаца. Вы можете использовать такие значения, как 0,5, 1 или 1,5, и проверять изменения в реальном времени.
  • Оформление: выберите «Нет», «Подчеркивание» или «Зачеркивание».

Настройте интервал между буквами, буквицу и регистр буквНастройте интервал между буквами, буквицу и регистр букв

  • Регистр букв — выберите «нет», «прописные», «строчные» или «заглавные» параметры, чтобы изменить регистр букв.
  • Буквица – наконец, включите эту кнопку, чтобы первая буква отображалась крупной. Это идея для начального абзаца ваших статей.

Примечание: После настройки абзаца вы можете в любой момент нажать ссылку «Сбросить все», чтобы удалить все настройки.

Изменение цвета текста

Есть два способа добавить цвета в блок:

  • Цвета текста и фона – выберите опцию «Текст» или «Фон», отображаемую под заголовком «Цвет» на правой боковой панели. Откроется цветовая палитра, показывающая цвета вашей темы по умолчанию. Если вы не хотите использовать цвет темы, щелкните поле над цветовой палитрой, чтобы открыть палитру цветов.

Изменить цвета текста и фонаИзменить цвета текста и фона

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

Предварительный просмотр выбранного цветаПредварительный просмотр выбранного цвета и изменение кода

Аналогичным образом вы можете применить предпочитаемый цвет фона для абзаца. Если вы хотите удалить цвета, нажмите «Параметры цвета» (три вертикальные точки в конце заголовка «Цвет») и выберите параметр «Сбросить».

Сбросить параметры цвета и фонаСбросить параметры цвета и фона

Как вы можете видеть на скриншоте выше, цвет текста изменит цвет всего текста абзаца. Если вы хотите выделить только несколько слов в абзаце, выделите слова и нажмите маленькую стрелку на панели инструментов блока. Выберите опцию «Выделить», чтобы просмотреть палитру цветов. Отсюда вы можете установить цвета текста и фона, чтобы выделять только выбранные слова внутри блока абзаца.

Выделение текста и фона цветомВыделите текст и фон цветом с помощью расширенных настроек боковой панели

В разделе «Дополнительно» вы можете добавить собственные классы CSS и определить стили в разделе «Внешний вид > Настройка > Дополнительный CSS». Хотя это более технический характер, вы можете применять стили к нескольким блокам на одной странице. Узнайте больше о том, как добавить CSS на одну страницу в WordPress.

2. Использование блочных плагинов

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

Опция контейнера GenerateBlocksОпция контейнера GenerateBlocks

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

Варианты типографики спектровВарианты типографики спектров

3. Параметры типографики для классического редактора

Если вы все еще используете старый классический редактор или пользовательские типы сообщений, такие как WooCommerce, то возможности ограничены. Вы можете изменить цвет шрифта, сделать его жирным, курсивом и зачеркнуть текст с помощью редактора TinyMCE по умолчанию. Для получения дополнительных функций вам может потребоваться переключиться в режим «Текст» и добавить встроенные стили CSS к отдельным элементам.

Параметры оформления классического редактора TinyMCEПараметры оформления классического редактора TinyMCE

Заключительные слова

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



2023-09-27T21:32:33
Сайтостроение

Руководство для начинающих по отладке (JavaScript)

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

 

Но сначала, что такое отладка и как это будет применимо к вам?

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

 

Несколько советов, которые облегчат отладку вашего кода

  1. Сделайте свой код максимально выразительным или простым для понимания. Это может означать маркировку переменных и функций в соответствии с тем, что они выполняют (например, используя такие имена переменных, как firstName и lastName, а не string1 и string2). Это также может означать использование встроенных методов (таких как карта массива), которые подсказывают, какое возвращаемое значение следует ожидать.
  2. Аналогичным образом, старайтесь, чтобы ваши функции выполняли одну главную цель. Это уменьшит количество ошибок и упростит понимание вашего кода.
  3. Объявляйте переменные и функции только там, где они необходимы. Если переменные и функции доступны с помощью кода, которому они не нужны (например, если они были объявлены в глобальной области видимости без необходимости), отследить ошибки будет намного сложнее.
  4. По возможности избегайте изменений. Бывают случаи, когда вам захочется изменить состояние массива или объекта, но, когда это возможно, лучше всего обновить их неразрушающим образом (например, создав копии перед изменением). В связи с этим также безопаснее объявлять свои переменные с помощью const, если только вы уже не знаете, что будете переназначать переменную по всему вашему коду. Это предотвратит непреднамеренное изменение значения переменной и вместо этого может привести к полезной ошибке, подобной этой: Uncaught TypeError: Assignment to constant variable.
  5. Часто тестируйте свой код по мере его написания. Гораздо сложнее найти ошибку, когда вы работаете со многими непроверенными функциями одновременно.

 

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

 

Вывод на консоль

Вы можете проверить свои предположения по всему коду, используя инструкции console.log().

Допустим, у нас есть функция, предназначенная для получения массива учащихся и возврата нового массива, содержащего только учащихся, имена которых начинаются с ‘A’.

const allStudents = ["AndreyEx", "Max", "Alex", "Dasha", "Anna", "Dennis"];



function startsWithJ(array) {

  const aStudents = [];

  for (let i = 0; i < array.length; i++) {

    const currentStudent = array[i];

    const firstLetter = currentStudent[1];

    if (firstLetter === "A") {

      aStudents.push(currentStudent);

    }

  }

  return aStudents;

}



startsWithJ(allStudents); 

// => []

 

Когда мы запускаем нашу функцию с переданным массивом allStudents, она возвращает пустой массив. Это не то, чего мы ожидали — мы хотели, чтобы он возвращался ['AndreyEx', 'Alex', 'Anna']. Возможно, вы быстро поймете, где мы ошиблись, а возможно, и нет (и это нормально!). В любом случае, потерпите немного, пока мы добавим инструкции console.log() для отладки этой функции.

Одно из наших предположений относительно этого кода заключается в том, что он корректно обращается к каждому элементу в массиве allStudents. Мы можем использовать console.log() для печати имени каждого ученика в нашем исходном массиве, вот так:

const allStudents = ["AndreyEx", "Max", "Alex", "Dasha", "Anna", "Dennis"];



function startsWithJ(array) {

  const aStudents = [];

  for (let i = 0; i < array.length; i++) {

    const currentStudent = array[i];

    console.log(currentStudent); //ДОБАВЛЕНА СТРОКА

    const firstLetter = currentStudent[1];

    if (firstLetter === "A") {

      aStudents.push(currentStudent);

    }

  }

  return aStudents;

}



startsWithJ(allStudents);

// LOG: AndreyEx

//      Max

//      Alex

//      Dasha

//      Anna

//      Dennis 

// => []

 

Имя каждого учащегося корректно выводится на консоль, поэтому мы знаем, что наш цикл for настроен правильно. Давайте проверим другое предположение — что мы правильно проверяем первую букву имени каждого учащегося. Мы можем «видеть, о чем думает машина», когда получаем доступ к первой букве, печатая нашу переменную firstLetter.

const allStudents = ["AndreyEx", "Max", "Alex", "Dasha", "Anna", "Dennis"];



function startsWithJ(array) {

  const aStudents = [];

  for (let i = 0; i < array.length; i++) {

    const currentStudent = array[i];

    const firstLetter = currentStudent[1];

    console.log(firstLetter); //ДОБАВЛЕНА СТРОКА

    if (firstLetter === "A") {

      aStudents.push(currentStudent);

    }

  }

  return aStudents;

}



startsWithJ(allStudents);

// LOG: n

//      a

//      l

//      a

//      n

//      e 

// => []

 

Здесь мы видим, что наше предположение было неверным. Мы случайно проверяем вторую букву каждого имени, и поэтому firstLetter === 'A' это никогда не соответствует действительности. Нам нужно изменить firstLetter назначение на currentStudent[0] вместо currentStudent[1]. Вот наш окончательный результат:

const allStudents = ["AndreyEx", "Max", "Alex", "Dasha", "Anna", "Dennis"];



function startsWithJ(array) {

  const aStudents = [];

  for (let i = 0; i < array.length; i++) {

    const currentStudent = array[i];

    const firstLetter = currentStudent[0];

    if (firstLetter === "A") {

      aStudents.push(currentStudent);

    }

  }

  return aStudents;

}



startsWithJ(allStudents);

// => [ 'AndreyEx', 'Alex', 'Anna' ]

 

Хотя это довольно простой пример, использование console.log() для просмотра значений переменных, вызовов функций и т.д. Является допустимым способом отслеживания более сложного кода.

 

Отладчик узлов

Теперь мы переходим к инструментам отладки, которые позволяют нам «приостанавливать» наш код и внимательнее смотреть на то, что происходит на каждом шаге. Мы начнем с того, который предоставляется Node для терминала (убедитесь, что Node установлен!).

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

const allStudents = ["AndreyEx", "Max", "Alex", "Dasha", "Anna", "Dennis"];



function startsWithJ(array) {

  const aStudents = [];

  for (let i = 0; i <= array.length; i++) {

    const currentStudent = array[i];

    const firstLetter = currentStudent[0];

    if (firstLetter === "A") {

      aStudents.push(currentStudent);

    }

  }

  return aStudents;

}



startsWithJ(allStudents);

 

Когда мы запускаем это, мы получаем следующую ошибку:

const firstLetter = currentStudent[0];

TypeError: Cannot read properties of undefined (reading '0')

 

Аналогично использованию console.log(), мы выберем место в коде, куда мы хотим заглянуть внутрь и посмотреть, что происходит. В этом случае мы будем использовать debugger ключевое слово. Поскольку мы видим, что один из параметров currentStudent не определен, давайте поместим инструкцию debugger рядом с объявленной переменной currentStudent.

function startsWithJ(array) {

  const aStudents = [];

  for (let i = 0; i <= array.length; i++) {

    const currentStudent = array[i];

    debugger; //ДОБАВЛЕНА СТРОКА

    const firstLetter = currentStudent[0];

    if (firstLetter === "A") {

      aStudents.push(currentStudent);

    }

  }

  return aStudents;

}

 

Оттуда вы можете запустить отладчик с помощью команды node inspect index.js в вашем терминале (используйте имя вашего файла вместо index.js).

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

break in index.js:7

  5   for (let i = 0; i <= array.length; i++) {

  6     const currentStudent = array[i];

> 7     debugger;

  8     const firstLetter = currentStudent[0];

  9     if (firstLetter === "A") {

debug>

 

В приглашении debug давайте откроем REPL, выполнив команду repl. Оттуда мы можем проверить значения переменных, введя их имена в терминале. Мы начнем с проверки значения i и currentStudent.

debug> repl

Press Ctrl+C to leave debug repl

> i

0

> currentStudent

'AndreyEx'

 

В этом есть смысл! Мы находимся на нашей первой итерации цикла for, где i должно быть 0 и currentStudent должно быть ‘AndreyEx’ (первый ученик в нашем массиве allStudents). Пока все идет хорошо. Чтобы продолжить пошаговое выполнение кода к нашей следующей итерации, нажмите Ctrl + C для выхода из REPL и снова введите cont в приглашении debug.

Теперь, когда мы снова входим в REPL, мы должны быть на второй итерации нашего цикла for. Мы можем подтвердить это, снова проверив значения i и currentStudent.

debug> repl

Press Ctrl+C to leave debug repl

> i

1

> currentStudent

'Max'

 

Это тоже выглядит правильно. Мы собираемся быстро перейти к 6-й итерации нашего цикла for, где currentStudent должно быть ‘Dennis’.

debug> repl

Press Ctrl+C to leave debug repl

> i

5

> currentStudent

'Dennis'

 

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

debug> cont

break in index.js:7

  5   for (let i = 0; i <= array.length; i++) {

  6     const currentStudent = array[i];

> 7     debugger;

  8     const firstLetter = currentStudent[0];

  9     if (firstLetter === "A") {

debug> repl

Press Ctrl+C to leave debug repl

> i

6

> currentStudent

undefined

 

Но это не то, что произошло. Здесь отладчик узла показал нам, что в нашем цикле for осталась еще одна итерация, из-за чего i of 6 вышел за пределы. Вот почему currentStudent[0] было не определено — потому что нет currentStudent индекса равного 6. Мы можем исправить наш код, удалив = из нашего условия цикла for .

const allStudents = ["AndreyEx", "Max", "Alex", "Dasha", "Anna", "Dennis"];



function startsWithJ(array) {

  const aStudents = [];

  for (let i = 0; i < array.length; i++) {

    const currentStudent = array[i];

    const firstLetter = currentStudent[0];

    if (firstLetter === "A") {

      aStudents.push(currentStudent);

    }

  }

  return aStudents;

}



startsWithJ(allStudents);

// => [ 'AndreyEx', 'Alex', 'Anna' ]

 

Отладчик узлов — отличный инструмент для проверки и отладки вашего кода, особенно если вы не хотите усложнять свой код инструкциями console.log().

 

Отладчик Chrome Developer Tools

Инструменты разработчика Chrome предлагают другой инструмент отладки, который вы можете использовать, если к вашему файлу JavaScript подключен HTML-файл. Вы можете создать базовый HTML-файл, единственной целью которого является вложение вашего JS-файла. Мы прикрепили файл JS, включив следующую строку в свой HTML-файл:

<script type="text/javascript" src="index.js"></script>.

 

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

const allStudents = ["AndreyEx", "Max", "Alex", "Dasha", "Anna", "Dennis"];



function startsWithJ(array) {

  {const aStudents = [];

    for (let i = 0; i < array.length; i++) {

      const currentStudent = array[i];

      const firstLetter = currentStudent[0];

      if (firstLetter === "A") {

        aStudents.push(currentStudent);

      }

    }

  }

  return aStudents;

}



startsWithJ(allStudents);

 

Мы собираемся открыть HTML-страницу в Chrome, затем получить доступ к инструментам разработчика, нажав F12.

У Dev tools есть своя консоль, которая сразу показывает нам ошибку: Uncaught ReferenceError: jStudents is not defined. Это происходит в конце нашего кода, куда мы пытаемся вернуться jStudents. Точно так же, как и в случае с инструментом отладки узла, я собираюсь поместить в свой код инструкцию debugger, где мы хотим сделать паузу и рассмотреть поближе. Мы поместим ее в начало моей функции.

function startsWithJ(array) {

  {const aStudents = [];

    debugger; //ДОБАВЛЕНА СТРОКА

    for (let i = 0; i < array.length; i++) {

      const currentStudent = array[i];

      const firstLetter = currentStudent[0];

      if (firstLetter === "A") {

        aStudents.push(currentStudent);

      }

    }

  }

  return aStudents;

}

 

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

Если вы посмотрите направо, вы должны увидеть значения ваших переменных и информацию в стеке вызовов. Мы можем заглянуть сюда, чтобы увидеть, как меняются значения наших переменных (например aStudent) по мере выполнения кода. Вместо ввода cont в командной строке debug терминала, приятный пользовательский интерфейс инструмента отладки Chrome позволяет нам нажимать кнопки для пошагового выполнения кода.

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

Быстрая переадресация к последней итерации, aStudents назначена правильно ['AndreyEx', 'Alex', 'Anna']. Мы знаем, что наш цикл for работает должным образом. Но когда мы продолжим пошаговое выполнение каждой строки и выйдем из цикла for, вы заметите, что aStudents это исчезло с нашей вкладки scope. aStudents ранее была указана как переменная уровня блока, что предполагает, что она могла быть случайно объявлена в области видимости, к которой у нас больше нет доступа.

При более внимательном рассмотрении нашего кода мы можем видеть, что наш оператор return находится за пределами блока кода ({}), где был объявлен aStudents. Чтобы решить нашу проблему, мы можем поместить объявление переменной и оператор return в одну область видимости, удалив ненужное {}.

function startsWithJ(array) {

  const aStudents = [];

  debugger; //ДОБАВЛЕНА СТРОКА

  for (let i = 0; i < array.length; i++) {

    const currentStudent = array[i];

    const firstLetter = currentStudent[0];

    if (firstLetter === "A") {

      aStudents.push(currentStudent);

    }

  }

  return aStudents;

}



startsWithJ(allStudents);

// => [ 'Alex', 'Anna', 'Dennis' ]

 

Подведение итогов

Отладчик Chrome — наш личный фаворит из этих опций. Мы ценим, что нам не нужно вычищать кучу console.log(), когда мы закончим, и мы думаем, что это намного более интуитивно понятно в использовании, чем отладчик Node. Любой из этих способов допустим для отладки вашего кода. Возможно, вы даже захотите изучить возможность использования отладчика, встроенного в вашу среду разработки IDE.

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



2023-09-27T20:13:23
Программирование

Что необходимо учитывать перед походом к психологу

Обращение к психологу — важный шаг, который позволяет получить профессиональную консультацию и помощь в решении личных проблем. Записаться на консультацию к психологу в Перми https://natabykova.ru сегодня можно онлайн. Перед встречей со специалистом необходимо учесть несколько моментов, чтобы обеспечить максимальную эффективность сотрудничества. Читать

Как использовать ChatGPT для проверки кода

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

В этой статье мы рассмотрим, как использовать ChatGPT для проверки кода. Мы рассмотрим следующие темы:

  • Как получить доступ к ChatGPT
  • Как использовать ChatGPT для проверки кода
  • Преимущества и недостатки использования ChatGPT для проверки кода

 

Как получить доступ к ChatGPT

ChatGPT доступен в двух версиях: бесплатной и платной. Бесплатная версия ChatGPT доступна через веб-сайт OpenAI. Платная версия ChatGPT, ChatGPT Plus, доступна через подписку.

Чтобы получить доступ к бесплатной версии ChatGPT, выполните следующие действия:

  1. Перейдите на веб-сайт OpenAI.
  2. Нажмите кнопку «Начать».
  3. Создайте учетную запись OpenAI.
  4. Войдите в свою учетную запись.
  5. Нажмите кнопку «ChatGPT».

Чтобы получить доступ к платной версии ChatGPT, выполните следующие действия:

  1. Перейдите на веб-сайт OpenAI.
  2. Нажмите кнопку «ChatGPT Plus».
  3. Выберите план подписки.
  4. Оплатите подписку.

 

Как использовать ChatGPT для проверки кода

Чтобы использовать ChatGPT для проверки кода, выполните следующие действия:

1. Подготовьте свой код.

2. Скопируйте код в текстовое поле ChatGPT.

3. Нажмите кнопку «Проверить код».

ChatGPT выполнит следующие действия:

  •  Проанализирует ваш код на наличие синтаксических ошибок.
  •  Проверит ваш код на соответствие стандартам кодирования.
  •  Предложит улучшения вашего кода.

 

Преимущества и недостатки использования ChatGPT для проверки кода

Преимущества

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

Недостатки

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

 

Примеры использования ChatGPT для проверки кода

Вот несколько примеров того, как можно использовать ChatGPT для проверки кода:

  • Вы можете использовать для проверки кода перед его отправкой на репозиторий.
  • Вы можете использовать для проверки кода, который вы написали для работы над сторонней библиотекой.
  • Вы можете использовать для проверки кода, который вы написали для проекта, над которым работает ваша команда.

 

Заключение

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

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



2023-09-27T18:08:05
Машинное обучение