Мемоизация
Это метод оптимизации программного кода, основанный на запоминании результатов выполнения функций. Предотвращает необходимость повторного выполнения одних и тех же вычислений.
Ключевая идея мемоизации заключается в создании кэша, где хранятся результаты вызовов функций. Когда функция вызывается, сначала проверяется, есть ли уже результат для данных аргументов в кэше. Если результат найден, он возвращается из кэша, что существенно сокращает время выполнения. В случае, если результата нет, функция выполняется в обычном режиме, а ее результат затем сохраняется в кэше.
#JavaScript #memoize
Это метод оптимизации программного кода, основанный на запоминании результатов выполнения функций. Предотвращает необходимость повторного выполнения одних и тех же вычислений.
Ключевая идея мемоизации заключается в создании кэша, где хранятся результаты вызовов функций. Когда функция вызывается, сначала проверяется, есть ли уже результат для данных аргументов в кэше. Если результат найден, он возвращается из кэша, что существенно сокращает время выполнения. В случае, если результата нет, функция выполняется в обычном режиме, а ее результат затем сохраняется в кэше.
#JavaScript #memoize
👍14🆒2❤1👌1
Всем привет, ночью вернулся с Домбая. Первый день были закрыты все трассы из-за непогоды, второй день только самый первый спуск открыли. Снега было много, не успевали расчищать. Перед выездом пришлось 2 часа раскапывать машины.
Поездка назад вымотала, была плохая видимость и гололед, из-за снега смогли выехать только вечером. 8 часов на машине дались тяжело.
Прикладываю к посту две красивые фотографии с поездки.
Поездка назад вымотала, была плохая видимость и гололед, из-за снега смогли выехать только вечером. 8 часов на машине дались тяжело.
Прикладываю к посту две красивые фотографии с поездки.
👍11😍4🎉2🐳2❤1
Многим начинающим специалистам необходима практика, и участие в проекте Reactify Teams может привлечь большое количество желающих. Наша цель — сформировать не одну, а несколько команд. Хочется сделать все качественно. Я стремлюсь не просто свести вместе начинающих, а активно участвовать в проектах.
Моей задачей будет координация всех процессов: я буду распределять задачи, проводить код-ревью и поддерживать команды, однако без непосредственного участия в написании кода. В этих проектах я возьму на себя руководство командами, разработку архитектуры и выполнение задач девопса. Мне предстоит настраивать проекты, продумывать архитектуру, выбирать библиотеки и подходы, а также участвовать в созвонах.
Основной сложностью может стать подбор участников, особенно важно найти бекенд-разработчиков. В случае нехватки бекендеров, мне придется взять на себя эту роль, что, в свою очередь, приведет к уменьшению количества команд.
В январе мы начнем с одной пилотной команды. Этот тестовый проект поможет мне разработать план работы и структуру взаимодействия в командах, а также методы распределения задач. По завершении проекта участники этих команд будут распределены в новые группы. Они уже будут знать, что делать, и у них будет роль Middle-Reactify разработчиков. На них также будут возложены часть организационных задач. Это просто супер опыт. Джун в роли Мидла, +100 к уверенности и мотивации.
#teams
Моей задачей будет координация всех процессов: я буду распределять задачи, проводить код-ревью и поддерживать команды, однако без непосредственного участия в написании кода. В этих проектах я возьму на себя руководство командами, разработку архитектуры и выполнение задач девопса. Мне предстоит настраивать проекты, продумывать архитектуру, выбирать библиотеки и подходы, а также участвовать в созвонах.
Основной сложностью может стать подбор участников, особенно важно найти бекенд-разработчиков. В случае нехватки бекендеров, мне придется взять на себя эту роль, что, в свою очередь, приведет к уменьшению количества команд.
В январе мы начнем с одной пилотной команды. Этот тестовый проект поможет мне разработать план работы и структуру взаимодействия в командах, а также методы распределения задач. По завершении проекта участники этих команд будут распределены в новые группы. Они уже будут знать, что делать, и у них будет роль Middle-Reactify разработчиков. На них также будут возложены часть организационных задач. Это просто супер опыт. Джун в роли Мидла, +100 к уверенности и мотивации.
#teams
🔥19🫡3👍2
Реклама на канале
Изначально я не планировал продавать рекламу, но понимаю, что это может стать дополнительным источником дохода для развития канала. Деньги можно вложить в аренду сервера для Reactify Academy или продвижение канала. Кроме того, в будущем каждому проекту в Reactify Teams потребуется свой хостинг или сервер.
Когда я изучал Frontend, я подписывался на множество каналов: с тестами, теорией, задачами, подборками. Я наполнял свою жизнь программированием и до сих пор подписан на множество каналов, где черпаю идеи и учусь новому. Эти каналы интересны мне лично, и я уверен, что многие из вас тоже на них подписаны.
Мне поступало много предложений о рекламе, но я отказывался. Единственный раз я сделал исключение для канала друга. В конечном итоге, это ваш выбор — подписываться на эти каналы или нет. Я планирую тщательно фильтровать предложения и не заспамливать вас рекламой.
Возможно, нет ничего плохого в том, чтобы иногда размещать рекламу подобных каналов. Как вы считаете?
Изначально я не планировал продавать рекламу, но понимаю, что это может стать дополнительным источником дохода для развития канала. Деньги можно вложить в аренду сервера для Reactify Academy или продвижение канала. Кроме того, в будущем каждому проекту в Reactify Teams потребуется свой хостинг или сервер.
Когда я изучал Frontend, я подписывался на множество каналов: с тестами, теорией, задачами, подборками. Я наполнял свою жизнь программированием и до сих пор подписан на множество каналов, где черпаю идеи и учусь новому. Эти каналы интересны мне лично, и я уверен, что многие из вас тоже на них подписаны.
Мне поступало много предложений о рекламе, но я отказывался. Единственный раз я сделал исключение для канала друга. В конечном итоге, это ваш выбор — подписываться на эти каналы или нет. Я планирую тщательно фильтровать предложения и не заспамливать вас рекламой.
Возможно, нет ничего плохого в том, чтобы иногда размещать рекламу подобных каналов. Как вы считаете?
👍24💯3😱1🤝1🫡1
Стоимость GitHub
Коллега на работе скинул ссылку на сайт, где на основе аналитики вашего профиля в GitHub дается цена вашему аккаунту.
Большинство моих репозиториев закрыты. Так как это личные проекты. Поэтому вышло не густо😅 Думаю 250-300 баксов заработал бы при открытии репозиторием.😎
Присылайте ваши результаты, посмотрим у кого дороже😄
https://github-worth.vercel.app/
Коллега на работе скинул ссылку на сайт, где на основе аналитики вашего профиля в GitHub дается цена вашему аккаунту.
Большинство моих репозиториев закрыты. Так как это личные проекты. Поэтому вышло не густо😅 Думаю 250-300 баксов заработал бы при открытии репозиторием.😎
Присылайте ваши результаты, посмотрим у кого дороже😄
https://github-worth.vercel.app/
🤣9😁4👌3
Множественные циклы
Иногда необходимо написать сложную логику, где нужно выполнить определенные действия с элементами массива, например, отсортировать, преобразовать и отфильтровать их.
Программирование - это достаточно творческая деятельность. Одну и ту же задачу можно решить по-разному. Как я подбираю слова для написания этого текста, так же и в программировании необходимо подбирать решения.
Важно продумывать, как лучше написать код и как его оптимизировать. Важно избегать множественных циклов. Конечно, бывают задачи, в которых необходимо использовать несколько циклов. Но в основном, все можно свести к одному циклу. Да, это не будет так элегантно, как применение готовых методов подряд, например:
Но в таком случае мы дважды проходимся по массиву. Возможно, стоит создать функцию, которая выполнит все это за один цикл.
#JavaScript #array #loop
Иногда необходимо написать сложную логику, где нужно выполнить определенные действия с элементами массива, например, отсортировать, преобразовать и отфильтровать их.
Программирование - это достаточно творческая деятельность. Одну и ту же задачу можно решить по-разному. Как я подбираю слова для написания этого текста, так же и в программировании необходимо подбирать решения.
Важно продумывать, как лучше написать код и как его оптимизировать. Важно избегать множественных циклов. Конечно, бывают задачи, в которых необходимо использовать несколько циклов. Но в основном, все можно свести к одному циклу. Да, это не будет так элегантно, как применение готовых методов подряд, например:
const newArray = [1, 2, 3, 4].filter(num => num > 2).map(num => num + ' класс');
Но в таком случае мы дважды проходимся по массиву. Возможно, стоит создать функцию, которая выполнит все это за один цикл.
#JavaScript #array #loop
👍12😁3👌2❤1💯1
Трудоустройство
Перед Новым годом компании прекращают найм сотрудников. Это связано с рядом факторов: завершение финансового года, планирование бюджета на следующий год, а также с сезонными отпусками сотрудников отдела кадров и управленцев, принимающих решения. Например, в крупной IT-компании может быть приостановлен процесс набора новых сотрудников в декабре, чтобы сфокусироваться на завершении текущих проектов и годовом планировании.
После Нового года ситуация часто меняется. Компании с новым бюджетом и обновленными планами начинают активно искать новых сотрудников. Это открывает перед соискателями новые возможности. В январе и феврале количество вакансий в IT обычно увеличивается, и компании более открыты к найму новых специалистов.
На данный момент вакансий в Москве на должность Frontend Разработчик - 1501. В октябре было 1860.
После Нового года у вас будут повышенные шансы найти работу. Приведите в порядок резюме, пополните список навыков, закрепите знания.
#job
Перед Новым годом компании прекращают найм сотрудников. Это связано с рядом факторов: завершение финансового года, планирование бюджета на следующий год, а также с сезонными отпусками сотрудников отдела кадров и управленцев, принимающих решения. Например, в крупной IT-компании может быть приостановлен процесс набора новых сотрудников в декабре, чтобы сфокусироваться на завершении текущих проектов и годовом планировании.
После Нового года ситуация часто меняется. Компании с новым бюджетом и обновленными планами начинают активно искать новых сотрудников. Это открывает перед соискателями новые возможности. В январе и феврале количество вакансий в IT обычно увеличивается, и компании более открыты к найму новых специалистов.
На данный момент вакансий в Москве на должность Frontend Разработчик - 1501. В октябре было 1860.
После Нового года у вас будут повышенные шансы найти работу. Приведите в порядок резюме, пополните список навыков, закрепите знания.
#job
🫡11❤3🔥3💯1
Отбор в Reactify Teams
Reactify Teams создан для практики, а не для начального обучения. В рамках этой программы не будут проводиться уроки. Мы сосредоточимся на практике и получении опыта работы в команде. Участникам предстоит участвовать в code review, они получат советы и помощь, но основы объясняться не будут. Обучение в полном объеме не предусмотрено, так как мне не удастся заниматься обучением более чем 10 участников в каждой команде, а команд будет несколько.
Хотелось бы избежать обид, но важно понять, что участники должны обладать примерно одинаковым уровнем навыков. Это критично для того, чтобы никто не ожидал других и не замедлял общий процесс. Не требуется быть высококлассными разработчиками, но базовые навыки создания приложений обязательны. Если вы уже учились, ищете работу и имеете несколько проектов в портфолио, то вы подходите.
Если вы можете создать простое ToDo-приложение на каком-либо фреймворке, то скорее всего вы подходите. Если вы специализируетесь на бэкенде и умеете создавать сервер с простыми CRUD-операциями, то вы также подходите.
В будущем мы планируем организовать практику и для новичков, которые только освоили основы и умеют создавать простые сайты с использованием HTML, CSS и JavaScript. Но это будет немного позже.
Мы проведем отбор в первую команду. Я еще продумываю этот процесс. Возможно, будет небольшое собеседование, тестовое задание, тесты или я просто изучу ваш GitHub.
#teams
Reactify Teams создан для практики, а не для начального обучения. В рамках этой программы не будут проводиться уроки. Мы сосредоточимся на практике и получении опыта работы в команде. Участникам предстоит участвовать в code review, они получат советы и помощь, но основы объясняться не будут. Обучение в полном объеме не предусмотрено, так как мне не удастся заниматься обучением более чем 10 участников в каждой команде, а команд будет несколько.
Хотелось бы избежать обид, но важно понять, что участники должны обладать примерно одинаковым уровнем навыков. Это критично для того, чтобы никто не ожидал других и не замедлял общий процесс. Не требуется быть высококлассными разработчиками, но базовые навыки создания приложений обязательны. Если вы уже учились, ищете работу и имеете несколько проектов в портфолио, то вы подходите.
Если вы можете создать простое ToDo-приложение на каком-либо фреймворке, то скорее всего вы подходите. Если вы специализируетесь на бэкенде и умеете создавать сервер с простыми CRUD-операциями, то вы также подходите.
В будущем мы планируем организовать практику и для новичков, которые только освоили основы и умеют создавать простые сайты с использованием HTML, CSS и JavaScript. Но это будет немного позже.
Мы проведем отбор в первую команду. Я еще продумываю этот процесс. Возможно, будет небольшое собеседование, тестовое задание, тесты или я просто изучу ваш GitHub.
#teams
👍19🔥2❤1👌1💯1
Руслан Куянец | Reactify pinned «Навигация Посты про Reactify Teams: #teams Посты про Reactify Academy: #academy»
Какой будет порядок консолей?
Anonymous Quiz
18%
1, 2, 3, 4
48%
1, 4, 3, 2
11%
1, 3, 4, 2
24%
1, 2, 4, 3
Обучение
Вообще я хочу сделать полный цикл развития в Reactify. Обучаться с 0 до Джуна в Reactify Academy, после этого практиковаться и получать опыт в Reactify Teams.
Еще хочу в следующем году привлекать авторов/опытных разработчиков в Reactify. Для того чтобы сделать как можно больше команд нужны опытные наставники, которые будут помогать мне. А так же вести лекции, проводить собесы, проверять знания, писать статьи и мини курсы на платформу.
Хочу большое IT сообщество. Следующий год будет насыщенным. Всего добьемся🤞
#teams #academy
Вообще я хочу сделать полный цикл развития в Reactify. Обучаться с 0 до Джуна в Reactify Academy, после этого практиковаться и получать опыт в Reactify Teams.
Еще хочу в следующем году привлекать авторов/опытных разработчиков в Reactify. Для того чтобы сделать как можно больше команд нужны опытные наставники, которые будут помогать мне. А так же вести лекции, проводить собесы, проверять знания, писать статьи и мини курсы на платформу.
Хочу большое IT сообщество. Следующий год будет насыщенным. Всего добьемся🤞
#teams #academy
🔥28👍2🫡1
Операторы в JavaScript
Операторы в программировании — это символы или набор символов, которые указывают компьютеру выполнить определённые математические, логические или операции сравнения над данными. Они являются фундаментальными элементами языков программирования, позволяя управлять данными и переменными в программе.
Арифметические Операторы:
Используются для выполнения обычных математических операций, таких как сложение (+), вычитание (-), умножение (*), деление (/), и нахождение остатка от деления (%).
Операторы Сравнения:
Позволяют сравнивать значения. Включают в себя равенство (== или === в некоторых языках), неравенство (!= или !==), больше (>), меньше (<), больше или равно (>=), меньше или равно (<=).
Логические Операторы:
Применяются для формирования логических выражений. Основные логические операторы – это И (&&), ИЛИ (||), и НЕ (!).
Операторы Присваивания:
Используются для присвоения значений переменным. Простое присваивание происходит через оператор =, а также существуют операторы комбинированного присваивания, такие как +=, -=, *= и т.д.
Унарные Операторы:
Это операторы, которые применяются к одному операнду. Примеры включают инкремент (++), декремент (--), и унарный минус, который меняет знак числа.
Тернарный Оператор:
Уникальный оператор, который принимает три операнда. Обычно используется как короткая форма для выражения if-else. Структура выглядит так: условие ? выражение1 : выражение2.
Операторы Разделения:
В некоторых языках программирования, таких как JavaScript, операторы разделения (...) позволяют расширять элементы итерируемых объектов (например, массивов) в местах, где ожидается несколько аргументов или элементов.
#JavaScript
Операторы в программировании — это символы или набор символов, которые указывают компьютеру выполнить определённые математические, логические или операции сравнения над данными. Они являются фундаментальными элементами языков программирования, позволяя управлять данными и переменными в программе.
Арифметические Операторы:
Используются для выполнения обычных математических операций, таких как сложение (+), вычитание (-), умножение (*), деление (/), и нахождение остатка от деления (%).
Операторы Сравнения:
Позволяют сравнивать значения. Включают в себя равенство (== или === в некоторых языках), неравенство (!= или !==), больше (>), меньше (<), больше или равно (>=), меньше или равно (<=).
Логические Операторы:
Применяются для формирования логических выражений. Основные логические операторы – это И (&&), ИЛИ (||), и НЕ (!).
Операторы Присваивания:
Используются для присвоения значений переменным. Простое присваивание происходит через оператор =, а также существуют операторы комбинированного присваивания, такие как +=, -=, *= и т.д.
Унарные Операторы:
Это операторы, которые применяются к одному операнду. Примеры включают инкремент (++), декремент (--), и унарный минус, который меняет знак числа.
Тернарный Оператор:
Уникальный оператор, который принимает три операнда. Обычно используется как короткая форма для выражения if-else. Структура выглядит так: условие ? выражение1 : выражение2.
Операторы Разделения:
В некоторых языках программирования, таких как JavaScript, операторы разделения (...) позволяют расширять элементы итерируемых объектов (например, массивов) в местах, где ожидается несколько аргументов или элементов.
#JavaScript
👍15👌3❤1🎉1💯1
Цели
Столько дел, что просто не хватает времени на все идеи. Приходится пересматривать планы. Я отложил свое приложение, которое делал в одиночку в течение года, до лучших времен. Единственное, после праздников нужно запустить готовую версию и перенести базу данных с прошлого приложения, чтобы существующие клиенты могли продолжать пользоваться новой версией.
Действительно, заниматься разработкой приложения в одиночку — это долго и неэффективно. Я хочу получить опыт в Reactify Teams. Через полгода я вернусь к своей идее, но уже с командой. Для меня это ценный навык — собирать и управлять командой, участвовать в процессах создания продукта. Поэтому участие в команде бесплатное. Все честно, и мне, и вам — опыт. Хотя многие разработчики берут за это деньги.
Сейчас кажется, что мне нужно сосредоточиться на развитии Reactify Academy и Reactify Teams, а также на ведении YouTube и Telegram каналов. Важно быть активным членом IT-сообщества, и это поможет мне достигнуть моих целей.
Моя цель не в заработке денег на обучении, курсах и т.д. Я хочу создавать IT-продукты, которыми будут пользоваться миллионы людей. Все, что я заработаю здесь, пойдет на реализацию этой цели.
#teams #academy
Столько дел, что просто не хватает времени на все идеи. Приходится пересматривать планы. Я отложил свое приложение, которое делал в одиночку в течение года, до лучших времен. Единственное, после праздников нужно запустить готовую версию и перенести базу данных с прошлого приложения, чтобы существующие клиенты могли продолжать пользоваться новой версией.
Действительно, заниматься разработкой приложения в одиночку — это долго и неэффективно. Я хочу получить опыт в Reactify Teams. Через полгода я вернусь к своей идее, но уже с командой. Для меня это ценный навык — собирать и управлять командой, участвовать в процессах создания продукта. Поэтому участие в команде бесплатное. Все честно, и мне, и вам — опыт. Хотя многие разработчики берут за это деньги.
Сейчас кажется, что мне нужно сосредоточиться на развитии Reactify Academy и Reactify Teams, а также на ведении YouTube и Telegram каналов. Важно быть активным членом IT-сообщества, и это поможет мне достигнуть моих целей.
Моя цель не в заработке денег на обучении, курсах и т.д. Я хочу создавать IT-продукты, которыми будут пользоваться миллионы людей. Все, что я заработаю здесь, пойдет на реализацию этой цели.
#teams #academy
👍17🔥6💯2❤1
Отличие || и ?? в JavaScript
В программировании операторы || и ?? играют разные роли, хотя оба они используются в контексте работы с значениями, которые могут быть неопределенными или иметь значение "по умолчанию".
Оператор || (Логическое ИЛИ)
Обычно используется для установки значения по умолчанию в тех случаях, когда левый операнд является "ложным":
false, 0, "", null, undefined, NaN
Оператор ?? (Оператор нулевого слияния):
Так же используется для установки значения по умолчанию, только под ложными подразумеваются:
null, undefined
Отличия операторов
Основное отличие между этими операторами заключается в их поведении при работе с различными "ложными" значениями. Оператор || реагирует на любое ложное значение, в то время как ?? реагирует только на null или undefined.
Это делает ?? более предсказуемым при работе с возможными "пустыми" значениями, так как он не считает такие значения, как 0, false, или пустую строку (""), равными null или undefined.
#JavaScript
В программировании операторы || и ?? играют разные роли, хотя оба они используются в контексте работы с значениями, которые могут быть неопределенными или иметь значение "по умолчанию".
Оператор || (Логическое ИЛИ)
Обычно используется для установки значения по умолчанию в тех случаях, когда левый операнд является "ложным":
false, 0, "", null, undefined, NaN
Оператор ?? (Оператор нулевого слияния):
Так же используется для установки значения по умолчанию, только под ложными подразумеваются:
null, undefined
Отличия операторов
Основное отличие между этими операторами заключается в их поведении при работе с различными "ложными" значениями. Оператор || реагирует на любое ложное значение, в то время как ?? реагирует только на null или undefined.
Это делает ?? более предсказуемым при работе с возможными "пустыми" значениями, так как он не считает такие значения, как 0, false, или пустую строку (""), равными null или undefined.
#JavaScript
👍14💯7🔥6🎉1
Проверка значений на истинность или ложность в JavaScript
При работе с JavaScript, одной из ключевых задач является проверка значений на истинность или ложность. В этом контексте часто возникает вопрос: использовать ли Boolean() функцию или же применять более прямой подход через преобразование типов.
Использование Boolean()
Функция Boolean() в JavaScript используется для преобразования любого значения в булевый тип (true или false). Это явный способ проверки, позволяющий легко понять, что происходит в коде.
Прямое Преобразование Типов
Можно также применять прямое преобразование типов. Это делается с помощью логических операторов, таких как ! (логическое НЕ). Двойное использование !! эффективно преобразует значение в его булевый эквивалент.
Выбор между !! И Boolean()
✅ Boolean() является более явным и легко читаемым, особенно для начинающих разработчиков.
✅ В некоторых командах предпочитают использовать Boolean() для единообразия кода.
🟰 В большинстве случаев разница в производительности между этими двумя подходами незначительна, но в высоконагруженных системах прямое преобразование может быть чуть быстрее.
#JavaScript
При работе с JavaScript, одной из ключевых задач является проверка значений на истинность или ложность. В этом контексте часто возникает вопрос: использовать ли Boolean() функцию или же применять более прямой подход через преобразование типов.
Использование Boolean()
Функция Boolean() в JavaScript используется для преобразования любого значения в булевый тип (true или false). Это явный способ проверки, позволяющий легко понять, что происходит в коде.
Прямое Преобразование Типов
Можно также применять прямое преобразование типов. Это делается с помощью логических операторов, таких как ! (логическое НЕ). Двойное использование !! эффективно преобразует значение в его булевый эквивалент.
Выбор между !! И Boolean()
✅ Boolean() является более явным и легко читаемым, особенно для начинающих разработчиков.
✅ В некоторых командах предпочитают использовать Boolean() для единообразия кода.
🟰 В большинстве случаев разница в производительности между этими двумя подходами незначительна, но в высоконагруженных системах прямое преобразование может быть чуть быстрее.
#JavaScript
👍8🔥1😁1🤝1