Что такое состояния системы и в чем их особенность
Одна из краеугольных тем в программировании — это состояния системы. Тема глубокая, повсеместная, и ее понимание может сильно изменить взгляд на некоторые вещи. Разберемся с ней на примере страницы курса в Хекслете. Откройте для примера этот курс. https://ru.hexlet.io/courses/js-ddd
На этой странице есть описание курса, состав уроков, отзывы, справа видно цену, кнопку и какую-то другую полезную информацию. Как вы думаете, насколько сложно создать такую страницу? На первый взгляд несложно. Но самое интересное начинается, когда мы начинаем задумываться о том, какие состояния возможны на этой странице.
Возьмем кнопку справа. Что у вас отображается там прямо сейчас? Например, надпись «Зарегистрироваться». Но если залогиниться, то будет уже что-то другое. Причем это другое тоже будет зависеть от того, вступал ли я в этот курс или нет, платил ли я за него или нет.
Все это называется состояниями, и особенность состояний в том, что их нужно программировать. Каждое новое состояние любого элемента на странице — это дополнительная работа, условие в коде «если это, то сделай вот это», дополнительная поддержка кода и дополнительное тестирование.
Кнопка, о которой мы говорим, имеет пять состояний! Это значит, что даже для банальной проверки того, как она выглядит, нужно проделать множество действий. А кроме кнопки на странице множество других элементов. Если уроки пройдены, то они отмечаются как пройденные. Если пользователь вступил в курс, у него добавляется сверху блок, который показывает статистику прохождения этого курса.
Суммарно все это может приводить к десяткам состояний на одной странице. С точки зрения сроков разработки, стоимости поддержки и сложности тестирования, изначальная оценка вырастает сразу в несколько раз как минимум. А может, даже на порядок.
Помимо самих состояний каждый переход из одного состояния в другое — это программный код: вступление в курс, оплата курса, регистрация. Все это процессы, которые переводят состояния элементов на той же странице курса. И, конечно же, других страницах сайта.
С состояниями связана еще одна забавная история. Профессиональные программисты видят многие состояния буквально сразу, как только им обозначили задачу. Из-за этого те, кто с ними работают, недоумевают — как простая на первый взгляд задача внезапно занимает месяц разработки.
Одна из краеугольных тем в программировании — это состояния системы. Тема глубокая, повсеместная, и ее понимание может сильно изменить взгляд на некоторые вещи. Разберемся с ней на примере страницы курса в Хекслете. Откройте для примера этот курс. https://ru.hexlet.io/courses/js-ddd
На этой странице есть описание курса, состав уроков, отзывы, справа видно цену, кнопку и какую-то другую полезную информацию. Как вы думаете, насколько сложно создать такую страницу? На первый взгляд несложно. Но самое интересное начинается, когда мы начинаем задумываться о том, какие состояния возможны на этой странице.
Возьмем кнопку справа. Что у вас отображается там прямо сейчас? Например, надпись «Зарегистрироваться». Но если залогиниться, то будет уже что-то другое. Причем это другое тоже будет зависеть от того, вступал ли я в этот курс или нет, платил ли я за него или нет.
Все это называется состояниями, и особенность состояний в том, что их нужно программировать. Каждое новое состояние любого элемента на странице — это дополнительная работа, условие в коде «если это, то сделай вот это», дополнительная поддержка кода и дополнительное тестирование.
Кнопка, о которой мы говорим, имеет пять состояний! Это значит, что даже для банальной проверки того, как она выглядит, нужно проделать множество действий. А кроме кнопки на странице множество других элементов. Если уроки пройдены, то они отмечаются как пройденные. Если пользователь вступил в курс, у него добавляется сверху блок, который показывает статистику прохождения этого курса.
Суммарно все это может приводить к десяткам состояний на одной странице. С точки зрения сроков разработки, стоимости поддержки и сложности тестирования, изначальная оценка вырастает сразу в несколько раз как минимум. А может, даже на порядок.
Помимо самих состояний каждый переход из одного состояния в другое — это программный код: вступление в курс, оплата курса, регистрация. Все это процессы, которые переводят состояния элементов на той же странице курса. И, конечно же, других страницах сайта.
С состояниями связана еще одна забавная история. Профессиональные программисты видят многие состояния буквально сразу, как только им обозначили задачу. Из-за этого те, кто с ними работают, недоумевают — как простая на первый взгляд задача внезапно занимает месяц разработки.
ru.hexlet.io
Курс «JS: Предметно-ориентированное проектирование»: обучение онлайн
На этом курсе вы изучите предметно-ориентированное программирование. Вы узнаете больше об инверсии зависимостей и репозиториях. В итоге научитесь использовать шаблон Service Lay...
👍7❤1🔥1🥰1💩1
Поговорим о рынке ИТ?
В сегодняшнем интервью вместе с Артемом Зыза, менеджером продукта в Хабр Карьере, поговорим о там, как обстоят дела на рынке ИТ, на рынке джунов и почему на карьерных сайтах стала чаще появляться позиция интерна и чем она отличается от джуниора.
Приятного просмотра!
https://youtu.be/yaDRgP8XQUw
В сегодняшнем интервью вместе с Артемом Зыза, менеджером продукта в Хабр Карьере, поговорим о там, как обстоят дела на рынке ИТ, на рынке джунов и почему на карьерных сайтах стала чаще появляться позиция интерна и чем она отличается от джуниора.
Приятного просмотра!
https://youtu.be/yaDRgP8XQUw
👍2🔥1💩1
Черная Пятница в Хекслете подходит к концу, остается не так много времени успеть приобрести профессии со скидками!
PHP-разработчик, Аналитик данных: скидка до 120 000 рублей;
Frontend-разработчик, Python-разработчик, Java-разработчик: скидка 30 000 рублей;
Fullstack-разработчик: скидка 86 000 рублей;
Инженер по тестированию: скидка 15 000 рублей.
Чтобы воспользоваться скидкой, необходимо оставить заявку до 30 ноября.
PHP-разработчик, Аналитик данных: скидка до 120 000 рублей;
Frontend-разработчик, Python-разработчик, Java-разработчик: скидка 30 000 рублей;
Fullstack-разработчик: скидка 86 000 рублей;
Инженер по тестированию: скидка 15 000 рублей.
Чтобы воспользоваться скидкой, необходимо оставить заявку до 30 ноября.
❤3💩1
Скоро декабрь (уже завтра 🥶). Самое время рассказать, какие в Хекслете будут вебинары для начинающих разработчиков.
Для всех участников мы подготовили новогодние подарки!
6 декабря — Мастер класс: Тестировщик с нуля: как им стать и найти первую работу?
18 декабря — (New) Онлайн-профориентация: Старт IT карьеры для новичков в 2024 году
19 декабря — Онлайн-практикум: Профессия «Frontend-разработчик»: как стартануть в IT с нуля
21 декабря — Вводный урок: Java: инструкция по применению
25-26 декабря — Интенсив: Python-разработчик: основы за 2 дня
Для всех участников мы подготовили новогодние подарки!
6 декабря — Мастер класс: Тестировщик с нуля: как им стать и найти первую работу?
18 декабря — (New) Онлайн-профориентация: Старт IT карьеры для новичков в 2024 году
19 декабря — Онлайн-практикум: Профессия «Frontend-разработчик»: как стартануть в IT с нуля
21 декабря — Вводный урок: Java: инструкция по применению
25-26 декабря — Интенсив: Python-разработчик: основы за 2 дня
❤3👍1💩1
PHP — один из самых популярных языков для веб-разработки. В рейтинге языков программирования TIOBE на ноябрь 2023 года PHP занимает седьмое место.
Рассказываем, в чем особенности языка PHP, его преимущества и недостатки, почему он до сих пор не теряет актуальности, что нужно знать, чтобы программировать на РHP.
Изучить PHP в Хекслете: https://ru.hexlet.io/link/5X5Fyh
Рассказываем, в чем особенности языка PHP, его преимущества и недостатки, почему он до сих пор не теряет актуальности, что нужно знать, чтобы программировать на РHP.
Изучить PHP в Хекслете: https://ru.hexlet.io/link/5X5Fyh
👍8🤯2💩1
Давайте окунемся в структуру Подготовительных курсов Хекслета и раскроем подробнее, что скрыто за фразой “закрытый telegram-канал”.
На протяжении 14 дней курса наши студенты общаются в чате, задают вопросы наставнику, присылают домашние задания и получают фидбек по своим проектам.
После окончания Подготовительного курса каждый студент не только уходит с сертификатом о прохождении программы, но и небольшим проектом, проверенным и одобренным наставником.
Потоки подготовительных курсов стартуют каждый месяц. В декабре даты следующие:
7 декабря: Frontend-разработчик
12 декабря: Java-разработчик
13 декабря: Python-разработчик
Присоединяйтесь: вы тоже можете попробовать себя в разработке или уже до конца года подготовиться к обучению профессии!
На протяжении 14 дней курса наши студенты общаются в чате, задают вопросы наставнику, присылают домашние задания и получают фидбек по своим проектам.
После окончания Подготовительного курса каждый студент не только уходит с сертификатом о прохождении программы, но и небольшим проектом, проверенным и одобренным наставником.
Потоки подготовительных курсов стартуют каждый месяц. В декабре даты следующие:
7 декабря: Frontend-разработчик
12 декабря: Java-разработчик
13 декабря: Python-разработчик
Присоединяйтесь: вы тоже можете попробовать себя в разработке или уже до конца года подготовиться к обучению профессии!
👍5🔥3❤1💩1
Хотите попасть в IT без технического бэкграунда, но пугает перспектива изучать программирование и математику?
Мало времени на получение новой профессии, и нужно обучиться компетенциям и трудоустроиться в короткие сроки?
Ответы на все вопросы вы можете получить на нашем бесплатном мастер-классе «Тестировщик с нуля: как им стать и найти первую работу?».
6 декабря, 19:00 по (мск)
Мало времени на получение новой профессии, и нужно обучиться компетенциям и трудоустроиться в короткие сроки?
Ответы на все вопросы вы можете получить на нашем бесплатном мастер-классе «Тестировщик с нуля: как им стать и найти первую работу?».
6 декабря, 19:00 по (мск)
❤2👍2🔥1💩1
Что такое парное программирование и как его проводить
Парное программирование — это совместная работа двух программистов. Такая техника регулярно используется профессиональными разработчиками.
Парное программирование работает так: один программист пишет код, а второй находится у него за спиной или виртуально, если программисты не сидят рядом. Один разработчик смотрит на код другого, если надо — дает подсказки и указывает на ошибки.
Но разве это не трата времени? В чем преимущество парного программирования? На самом деле это эффективная техника, которая дает много плюсов:
Фокусировка. Программисты доводят задачу до конца не отвлекаясь. Хотя с непривычки достаточно тяжело продержаться хотя бы час.
Скорость принятия решений. Два программиста быстрее находят баги и принимают сложные архитектурные решения. То, что у одного может занять часы и дни, у двух программистов занимает считанные минуты. Не всегда, но значительно чаще, чем по одиночке.
Взаимное обучение. Сюда входит все — начиная от эффективного использования кода, заканчивая какими-то приемами программирования. Парное программирование — лучший способ распространять знания в команде. Особенно эффективно это работает в паре «новичок-опытный».
Последний пункт для нас особенно важен. Обучение работает эффективнее всего в парах даже для двух новичков. Новички часто имеют пробелы в базовых концепциях и у разных людей эти пробелы в разных местах. Там, где один будет тупить часами, второй найдет проблему сразу, потому что прочитает сообщение об ошибке.
Кстати, парное программирование применяется и на собеседованиях — читайте об этом в нашей статье.
Вот несколько правил парного программирования:
1. До начала работы важно убедиться, что у разработчиков совпадают взгляды на стандарты кодирования. Иначе несовпадение может спровоцировать ненужные споры.
2. Не стоит проводить парное программирование, если задача слишком легкая и понятная для обоих. Или же если задача слишком сложная и требует постоянного чтения документации или анализа.
3. Пока один пишет, второй наблюдает, а не занимается своими делами.
4. Пары должны меняться ролями каждые 20 минут.
5. Поначалу лучше ограничиваться 1-2 часами парного кодинга.
6. Посмотрите видео с лучшими практиками от Atlassian.
Расскажите про свой опыт парного программирования: насколько он удачный?
Парное программирование — это совместная работа двух программистов. Такая техника регулярно используется профессиональными разработчиками.
Парное программирование работает так: один программист пишет код, а второй находится у него за спиной или виртуально, если программисты не сидят рядом. Один разработчик смотрит на код другого, если надо — дает подсказки и указывает на ошибки.
Но разве это не трата времени? В чем преимущество парного программирования? На самом деле это эффективная техника, которая дает много плюсов:
Фокусировка. Программисты доводят задачу до конца не отвлекаясь. Хотя с непривычки достаточно тяжело продержаться хотя бы час.
Скорость принятия решений. Два программиста быстрее находят баги и принимают сложные архитектурные решения. То, что у одного может занять часы и дни, у двух программистов занимает считанные минуты. Не всегда, но значительно чаще, чем по одиночке.
Взаимное обучение. Сюда входит все — начиная от эффективного использования кода, заканчивая какими-то приемами программирования. Парное программирование — лучший способ распространять знания в команде. Особенно эффективно это работает в паре «новичок-опытный».
Последний пункт для нас особенно важен. Обучение работает эффективнее всего в парах даже для двух новичков. Новички часто имеют пробелы в базовых концепциях и у разных людей эти пробелы в разных местах. Там, где один будет тупить часами, второй найдет проблему сразу, потому что прочитает сообщение об ошибке.
Кстати, парное программирование применяется и на собеседованиях — читайте об этом в нашей статье.
Вот несколько правил парного программирования:
1. До начала работы важно убедиться, что у разработчиков совпадают взгляды на стандарты кодирования. Иначе несовпадение может спровоцировать ненужные споры.
2. Не стоит проводить парное программирование, если задача слишком легкая и понятная для обоих. Или же если задача слишком сложная и требует постоянного чтения документации или анализа.
3. Пока один пишет, второй наблюдает, а не занимается своими делами.
4. Пары должны меняться ролями каждые 20 минут.
5. Поначалу лучше ограничиваться 1-2 часами парного кодинга.
6. Посмотрите видео с лучшими практиками от Atlassian.
Расскажите про свой опыт парного программирования: насколько он удачный?
👍7🔥2💩2
Всем параноикам в этом чате привет!
У нас новое видео, в котором мы разбираемся:
🤖 что такое AdTech и какие специалисты там работают
🤖 чем занимаются аналитики данных в рекламных сервисах
🤖 правда ли, что нас постоянно подслушивают для таргетированной рекламы
🤖 технические особенности разработки маркетинговых продуктов
Спикер – Евгения Глайзер, Senior Data Analyst в Criteo
Приятного просмотра!
https://youtu.be/qAeFZ6IcCHw
У нас новое видео, в котором мы разбираемся:
🤖 что такое AdTech и какие специалисты там работают
🤖 чем занимаются аналитики данных в рекламных сервисах
🤖 правда ли, что нас постоянно подслушивают для таргетированной рекламы
🤖 технические особенности разработки маркетинговых продуктов
Спикер – Евгения Глайзер, Senior Data Analyst в Criteo
Приятного просмотра!
https://youtu.be/qAeFZ6IcCHw
🔥5💩3