Web Overflow 🇺🇦
4.42K subscribers
380 photos
40 videos
3 files
518 links
Затишний блог про веб-розробку і не тільки 💛

Чат: @web_overflow_chat
Співпраця: @web_overflow_support
Автори: @lluchkaa & @anastasiia_tarasenko
加入频道
Ребят, кто еще не видел, вышло новое обновление create-react-app 5.0.

Если вы еще не делали eject, будет довольно просто обновиться на 5 версию. Всё, что нужно поправить - версия react-scripts в package.json. Тут у вас уже будет webpack 5 версии, который скорее всего вам будет нужен, если ваш проект еще собирается жить какое-то время.

Подробнее обо всех изменениях можно узнать тут: читать статью.

#tips #советы
👍3
Ребят, поздравляем вас с наступающим Новым Годом! Желаем побольше интересных проектов, добрых заказчиков и поменьше багов!

Спасибо, что вы с нами! Дальше только лучше 💛
2👍2🎉2🔥1🤩1
Я надеюсь все живы, здоровы и хорошо отметили Новый Год. Если да, тогда ловите ещё один часто задаваемый вопрос на собеседованиях: что такое паттерны проектирования? Какие Вы знаете и какие использовали?

Практически на каждом собеседовании у меня спрашивали этот вопрос. Почему? Потому что это действительно важно знать, когда проектируешь или пишешь сложный функционал. Паттерны я выучила еще в университете. Тогда преподаватель нам порекомендовал очень простую книгу, которую я изучила, пока ехала в поезде домой. Это книга Андрея Будая “Дизайн-паттерны - просто, как двери” (прикрепила в посту, одно но, она походу есть только на украинском). Лучшего объяснения я нигде не встречала.

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

Да, когда ты на бекенде, у тебя тут очень много примеров, где можно их использовать. Из моего опыта, на фронте я юзала, например, singleton для логгера, сервисов (на ангуляре), observer на том самом ангуляре (библиотека RxJs), медиатор для сложного функционала и другие.

После книги, мой фаворит по изучении паттернов - сайт https://refactoring.guru/ru/design-patterns .

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

#interview #собеседование
2👍2🔥2
Генераторы - это то, что редко используется (чистая правда, возможно они вам никогда и не понадобятся), но все же, я думаю, можно уделить им немного внимания. Плюс, это не займет у вас много времени.

Ниже прикреплю статью, где можете ознакомится с их работой.

В личном опыте хорошее применение генераторов я встречал в Redux Saga.

Читать статью

#article #статья
🤩3👍21
React-toastify

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

Читать документацию

#library
🔥32🤩2
Будущее уже наступило и скоро программы будут сами писать новые программы…

Сегодня будет чуть-чуть про ИИ и то, как он поможет в разработке. Нашумевший Github Copilot еще в стадии разработки, но он уже доступен для технического preview, которого я жду уже больше полгода.

Для тех, кто не знает, что это такое, Github Copilot - ваш ИИ, который поможет в написании кода при помощи уже существующего публичного кода (например, из StackOverflow или публичных репозиториев Github). Все, что вам нужно сделать - написать объявление функции или комментарий, в котором опишете что функция должна сделать, и бинго - Copilot предложит вам реализацию. Звучит очень просто и круто.

Мне уже не терпится попробовать, но даже сейчас уже есть разные мысли. Безусловным плюсом является скорость, так как сильно сокращается время на не сильно специфические задачи. Также почти всегда код будет работать (но только не в твоем проекте), так как система будет подбирать лучшие решения. Кстати, если подобранное решение вам не нравится, всегда можно посмотреть следующее, система подгрузит множество разных. Непонятно только, что будет с вашим кодом, не начнет ли Copilot учится и на нем (все мы знаем какая приватность сегодня).

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

Открыть сайт

#article #статья
👍3🤩3
У меня плохая новость - праздники, отпуска закончились, нужно приступать к работе.

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

1. Вы не можете всё знать.
Это нормально, что вы не знаете все методы массивов, строк, не можете наизусть написать регулярное выражение. Намного важнее, как вы мыслите, какой у вас опыт, с чем вы работали, как вы общаетесь. Поэтому не нужно сразу теряться, если вы что-то забыли или не знаете.

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

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

4. Самое главное - это честность!
Всегда отвечайте честно. Если чего-то не знаете, стоит прямо об этом сказать. Не набивайте себе цену — это видно (даже если вы уверенны в обратном).

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

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

#experience #опыт
3👍3🔥2
Как работает прототипное наследование?

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

Все объекты в JavaScript имеют свойство prototype, которое является ссылкой на другой объект. Когда происходит обращение к свойству объекта, и если свойство не найдено в этом объекте, то механизм JavaScript просматривает прототип объекта, затем прототип прототипа и т.д. До тех пор, пока не найдет определенное свойство на одном из прототипов или до тех пор, пока он не достигнет конца цепочки прототипов. Такое поведение имитирует классическое наследование, но на самом деле это скорее делегирование, чем наследование.

Почитать поподробнее можно здесь - читать статью

#interview #собеседование
2🤩2
Какой output у этого кода?
Anonymous Quiz
46%
10 4
26%
10 3
10%
9 4
17%
10 0
6😱4👍2🤩1
Некоторое время назад я немножко подучил Docker. С его помощь я запускал свои или уже готовые контейнеры.

Что это значит и что такое контейнеры?

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

Звучит немного сложновато, но если немножко посидеть, все станет понятно. А вот что действительно может пригодится - запуск контейнеров с сервисами, которые нужны вам на время. Реальная ситуация - Насте надо было поставить на время Postgres. Для меня хорошим решением был именно Docker. Мы поставили базу нажав пару кнопок, а после использования просто удалили его.

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

Открыть документацию

#article #статья
👍3
Как я выбираю библиотеку?

Ставлю ту, что первая в гугл поиске. Шутка.

А может нету необходимости ставить библиотеку? Знаю я таких деятелей, что для суммы чисел массива ставят новую библиотеку. Не надо так.

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

Гуглим library1 vs library2 после чего находим хорошую статью на StackOverflow, Medium или др. Там можно будет почитать о преимуществах каждой, посмотреть графики и сравнения.

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

И в конце еще парочка советов:
- Всегда следите за версиями, обновляйтесь, но запускайте тесты, перед тем, как что-то запушить.
- Участвуйте в разработке open-source проектов. Самый простой способ - открыть вкладку Issues на GitHub и отфильтровать по label = good first issue.

А на последок интересное видео в связи с последними событиями.

Смотреть видео

#tips #советы
3🔥3
Почему не стоит использовать moment.js?

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

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

Но, вернемся к нашему вопросу - почему все таки не стоит использовать moment.js?

Moment.js создает собственный объект для работы с датами. Это немного усложняет работу и приводит к многим багам, особенно, если вам принципиально, чтобы на входе и на выходе был объект Date.

Изменяемость (mutable) — еще одна трудность, с которой можно столкнуться при работе с moment.js. Например, иногда значения даты могут неожиданно изменяться, поскольку объекты даты moment.js меняют свое собственное состояние.

Отличной альтернативой moment.js есть библиотека date-fns. В своем нынешнем проекте я ее использую и пока что (аминь) проблем не было, в отличии от moment.js, который я использовала раньше. Также могу заметить, что date-fns намного быстрее, он использует объект Date, а не создает свой, и самое главное - он иммутабельный (то есть, не будет неожиданно изменять ваши объекты, а будет создавать новые).

Больше о сравнении moment.js и date-fns можно почитать здесь - читать статью

Читать документацию moment.js

Читать документацию date-fns

#interview #собеседование
👍4🔥3🤩3