maxpfrontend
2.42K subscribers
24 photos
186 links
Это канал о фронтенде.

Сайт: http://bit.ly/react-ru (есть расписание)
VK: http://bit.ly/vk-react
YouTube: http://bit.ly/react-youtube (записи вебинаров и стримов)
Twitch: http://bit.ly/react-twitch (стримы)
Twitter: http://bit.ly/twitter-react
Download Telegram
to view and join the conversation
Сегодня не могу пройти мимо новой вакансии на Elm. Я бы сказал "так должно выглядеть тестовое задание", а именно - ребята взяли реальную задачу из своей системы, убрали лишние сущности и оставили осязаемый для разработки кусок. Посмотреть можно здесь https://github.com/GlobalWebIndex/challenge-elm/

язык вакансии английский, позиция - удаленка)

Так же, мекка Elm разработчиков, компания NoRedInk наконец-то открыла позицию инженера (мне кажется я целый год этого ждал) - но он fullstack 🙂 А это значит, знаний опять не хватает и нужно учиться дальше. Тем не менее, можете глянуть требования - https://www.noredink.com/job_post?gh_jid=123595 (как по мне, достаточно суровые)

Так или иначе, что я могу сказать на сегодня, 1 октября 2020 года:
- английский must have
- Elm - живой, бодрый и прекрасный (в Ру по прежнему тяжело с этим)
- typescript react / react-native / flutter - работы валом
- учиться нужно постоянно 🙂

Ваш кэп 🎓

P.S. посмотрел классное видео из 2012 года (язык EN) - https://jamesclear.com/great-speeches/inventing-on-principle-by-bret-victor (после того, как кончится возня с рисованием дерева, потихонечку начинает отваливаться челюсть от темы выступления)

P.P.S. так же, я шпионом ворвался на марафон для начинающих JS разработчиков. Окунулся в проблемы новичков, кому смог - помог в чатике. Выводы по таким марафонам уже были сделаны в статье https://vc.ru/hr/89485-v-programmisty-ya-b-poshel-pust-menya-nauchat , а именно: марафон, это для тех, кто уже умеет бегать (то есть уже знает тему, по которой будет марафон, хотя бы на уровне знакомства). Куча людей отвалились сразу же на первом задании с установкой git, далее часть отъехала когда получила первое задание по js и затем большой кусок умер на ключевом слове this.
Привет отдыхающим 🛏

Если понаблюдать за elm вакансиями, то можно заметить, что часто требуется fullstack разработчик. С чем это связано? Я думаю, причины следующие:

- Уже опытные бэкэнд разработчики (python, ruby), для своих проектов, выбирают Elm как "спасение" от безбашенного фронтенда на JavaScript в наше время;
- Уже опытные бэкэнд разработчики, адепты ФП (функционального программирования) (Elixir, Haskell) тем более, выбирают Elm, так как на раз-два разбираются в языке;
- опытные фронтенд-разработчики, начавшие писать в функциональном стиле на JS, а затем, вошедшие в мир ФП с головой с помощью Elm, легче въезжают в Elixir/Haskell и тем самым эволюционируют в fullstack, а когда увольняются - вот оно, освободившееся место для fullstack разработчика 🙂

Выводы для себя я сформировал еще год назад: elm, он другой. Он толкает тебя в бездну новых знаний. А если сможешь выкарабкаться, то помимо стабильного фронтенда, он еще и открывает тебе путь в функциональный мир, где пасутся такие популярнейшие языки как Haskell или Elixir.

Чтобы не быть голословным, прикладываю ссылку на вакансии - https://hackmd.io/@b1hdcBB2Qmu9KtH_ycT20Q/ryAD44kvD (сегодня в номере языки: англ, немецкий и итальянский)
📺Немного новостей:

1) сегодня приехала первая релеватная вакансия с hh.ru на Elm (https://hh.ru/vacancy/40522173) несмотря на то, что hh в домене .ru - вакансия на англ) ждем первую русскоязычную вакансию дальше…

в elm-jobs канале за ноябрь - 5 вакансий, активность есть.

в elm сообществе без изменений (активность на прежнем уровне). Новостей от создателя языка нет.

2) Набирает популярность такой css продукт как - https://tailwindcss.com/ , интересная статья про то зачем и почему, от создателя - https://adamwathan.me/css-utility-classes-and-separation-of-concerns/ (англ). В статье рассказано как автор двигался от одного подхода к другому. Как говорят на “dtf.ru” и подобных ресурсах - “аж олдскулы свело” от упоминания БЭМ… Были времена 🙂 Если кто не знает, я начинал работать верстальщиком. А до этого писал сайты на CMS Joomla и один проект был даже на Microsoft FrontPage.

3) Чтобы я порекомендовал подучить перед новым годом или может на каникулах? Думаю здесь без измений:
- flutter для мира мобильного;
- react/vue/angular и даже svelte - если нужна работа;
- elm, если хочется чего-то новенького;
- верстка (html/css) - если нужна первая работа в IT;

Не забвыаем про бэкэнд, там тоже раздолье для обучения! Считаю, что rust молодой и перспективный, python - мамонт, который не вымрет, к тому же прекрасно подходит для изучения программирования.
👨‍💻На работе приехала задача (эм, отчеты с фильтрацией/настройками), где данные нужно получать от GraphQL сервиса.

До этого не работал с GraphQL, года 3 назад(?) поигрался с руководством и отложил. Первые впечатления положительные, так как GraphQL это снова про “типизацию”, и заодно еще про получение только необходимой порции данных.

Разумеется, GraphQL отлично дружит с другими типизированными инструментами, в том числе и TypeScript! Можно автоматически генерировать типы для ваших запросов, вкусно. Опять же “разумеется”, в Elm все еще веселее в этом направлении.

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

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

А если показать код не дадут, то проведу вебинар по GraphQL

Всех с наступлением зимы! ❄️
Привет, предлагаю поучаствовать в ежегодном опросе
https://stateofjs.com/?source=stateofjs

Так же, давайте разберем интересный момент.
На странице есть секция про переводы, в которой над русским переводом работали 2 человека (по крайней мере они указаны).

В итоге, у ребят есть:
- вклад в опен-сорс (перевод тоже вклад, к тому же когда некоторые автоматические инструменты или HR, которые не в теме, ищут по гитхабу, для них все равно что вы там коммитили, главное вклад)
- реклама их профилей

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

Вывод: принимайте участие в проектах, которые вам по силам.
Сегодня в номере:
- https://davidwalsh.name/
- https://kentcdodds.com/
- https://wesbos.com/

Почему? Потому что все эти ресурсы были представлены в опросе выше, делаем выводы => ресурсы популярны.

📍davidwalsh.name читал давно, судя по дате году эдак в 2014м. Статья, которая не раз спасала меня в то время на собеседованиях - как написать свою debounce функцию (https://davidwalsh.name/javascript-debounce-function)

📍У Kent C Dodds есть годный сайт по тестированию ( https://testingjavascript.com/ ), слишком дорого, чтобы купить его для “проверить”, но по отзывам и маркетингу - годнота.

📍А вот, у Wes Bos я покупал курс по реакту в свое время, чтобы подсмотреть как он рассказывает, какие фишки использует в редактировании видео и так далее.

У меня есть доступ в платный слак. Давайте подсмотрим на цифры!

- general (канал куда заходят все те, кто кликнул по ссылке в письме после оплаты) - 60.124 человека

Далее идут каналы, которые относятся к курсам. Они все доступны поиском в слаке:
- react-for-beginners 31.111
- master-gatsby (один из его последних курсов, похоже не выстрелил) - 2.968
- beginner-javascript - 12.132
- advanced-react - 14.595

Во все каналы, кроме general, можно присоединиться свободно, лишь бы был доступ к основному.

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

Таким образом, закончу этот несколько несвязанный пост следующей истиной: можно купить курс для джуна, не стоит покупать курс для миддла, невозможно купить курс на сеньора

👋
Получил “добро” на демо кода и процесса.
Так, телега тут не дает нормально все в одном сообщении указать.
Суть:
- релиз первой таблицы уже близок
- вторую таблицу я делал на 90% следуя подсказам в терминале, это реальное “вау”, которое перевешивают непопулярность Elm.

ну и главное, посмотрим на GraphQL, который можно использовать хоть с react, хоть с чем угодно.

Будем смотреть реальный (не идеальный, разумеется) код 🤫
Базовый курс по JS! Налетай, пока есть места (платно).
Forwarded from JavaScript.Ninja News (Illya Klymov)
Коллеги, период зимней ковидной и постковидной спячки проекта JavaScript.ninja успешно завершен. Мы полны сил и энергии, чего и Вам желаем.

И начинаем нашу зимнюю серию курсов с набора на базовый курс. Все детали и тестовое задание можно найти по адресу http://javascript.ninja
Мне очень нравится честность этого проекта (js ninja). Вы посмотрите сами (там гугл док по ссылке курса), ребята берут группы с ревью всего 48 человек, а с zoom созвонов - всего 12!

И с новым годом всех! 🎄
Привет, сегодня наткнулся на старую книгу по webpack, которую обновляют! В онлайне бесплатно, поэтому если вам скучно и хочется разобраться с webpack 5 (на англ, разумеется) - https://survivejs.com/webpack/foreword/

а так же maintance: https://survivejs.com/maintenance/preface/
и про react https://survivejs.com/react/introduction/ (еще не обновлено на свежий релиз как в случае с webpack)
Удобный cheatsheet для jest - https://devhints.io/jest
Вообще, jest вижу на сегодня почти как стандарт в индустрии юнит тестирования. Не обязательно его использовать с react.
Плюсы - отличная документация, большие возможности
Минусы - слишком жирный 🙂 тесты запускаются медленно, но прогоняются быстро.

Конкретно в данный момент, пишу тесты на jest для работы с датами (у нас legacy библиотека, известная всем кто работал с датами - moment).

пример теста:

```
describe(`Group by ${GroupByPeriod.DAY}`, () => {
it(`dayOfYear 68 (2021-03-09)`, () => {
const pickerRange = {
startsAtUTC: '2021-03-08T21:00:00.000Z',
endsAtUTC: '2021-05-05T20:59:59.999Z',
};
const p = {
...params,
payload: {
employeeId: 'employee-1',
period: GroupByPeriod.
DAY,
startsAt: '2021-03-09',
...pickerRange,
},
};

const expected = {
employeeId: p.payload.employeeId,
startsAtForDict: p.payload.startsAt,
startsAt: pickerRange.startsAtUTC,
endsAt: '2021-03-09T20:59:59.999Z',
};

expect(
makeStartEndDatesWithTimeZone(p)).toEqual(expected);
});
});

```

Как видите, никакого "реакта" тут нет. Все тесты всегда сводятся к тому, что мы запустили настоящую функцию (в моем случае makeStartEndDatesWithTimeZone) и ждем ожидание (expected).

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

если перевести на русский, в тесте выше я проверяю, что дата старта и дата окончания, то что я ожидаю.

---
Итого:
Разница между тестом expect(add(1,3)).toBe(4) (якобы тестируем функцию сумма (add)) и портянкой выше, лишь в том, что у меня "ожидание" расписано в несколько строк. Отсюда можно сделать вывод, что сам по себе юнит-тест, это легкая конструкция. Обычно все проблемы только с первичной настройкой.
Всем привет, мы ищем коллегу уровня middle+ / senior

Описание вакансии здесь (там же форма для заявки), но я могу его перефразировать и немного рассказать о нас.

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

⚙️ По тех.стэку:
- бэк: ruby, elixir.
- фронт: js/ts, react (redux, redux-loop, redux-saga, react-hooks), elm (0.18, 0.19)

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

👷‍♂️ Что предстоит делать?
- пилить новые фичи (предпочтительно typescript+react, elm под вопросом, в будущем может попробуем rescript или что-нибудь еще)
- поддерживать текущий код и фиксить баги (и на js и на elm)
- работать над дизайн системой (недавно к нам присоединился сильный UX-дизайнер)
- тестировать код (!). У нас нет тестировщиков, тестируем сами + пишем авто тесты (unit и e2e)

Если в двух словах: много легаси, есть свежее, есть свобода выбора инструментов.

🇩🇪 Вакансия предполагает, что вы переедете жить в Германию, предпочтительно в Мюнхен. Так же можно в Берлин и в исключительных случаях на удаленку.

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

🍴Вилка 65000-75000 euro в год (gross)

Если интересно, подавайте заявку по ссылке выше (нужно резюме на англ), и черканите мне в личку имя фамилию.
Всем привет, готовлю материал по тестированию... Наткнулся на отличный гайд по unit-тестам в js, но на англ - https://github.com/mawrkus/js-unit-testing-guide