platon on frontend

@platononfrontend Like 0
Is this your channel? Confirm ownership for additional features

@platonkorzh о фронтенде и мэмасах
Channel's geo & Language
Russian, Russian


Channel's geo
Russian
Channel language
Russian
Category
Technologies
Added to index
19.06.2018 13:52
advertising
Telegram Analytics
Subscribe to stay informed about TGStat news.
TGStat Bot
Bot to get channel statistics without leaving Telegram
SearcheeBot
Your guide in the world of telegram channels
72
members
~0
avg post reach
~1
daily reach
N/A
posts per day
N/A
ERR %
0.05
citation index
Recent posts
Deleted
With mentions
Forwards
platon on frontend 6 Jun 2018, 17:12
platon on frontend 29 May 2018, 13:21
минутка саморекламы

13 июня, я и Юрий Чайковский будем выступать на митапе компании TEAM International Ukraine.
будем рассказывать как мы организовывали девелопмент на больших проектах.

я расскажу как мы строили CMS систему, как разрабатывали библиотеку компонентов, настраивали процессы работы с дизайнерами и продукт овнерами.

Юра расскажет что-то похожее но про Telenor.

если кому интересно, вот форма регистрации — https://docs.google.com/forms/d/e/1FAIpQLSd6EcrcnYROosNhU6D5KLeM78Of1vwbUwmQULbcy1HdvG3MTw/viewform
How to Set Up Development on Enterprise Projects?
13 червня запрошуємо вас на зустріч, присвячену JavaScript. Поговоримо про те, як організувати девелопмент на великих проектах і дізнаємося про технічні рішення, які успішно застосовують наші спікери, працюючи над своїми проектами. У цей вечір послухаємо доповіді: #1 Платон Корж, Senior Front-end Engineer at TEAM International Тема: UI framework for CMS #2 Юрій Чайковський, Software Architect at Telenor Тема: Digital Transformation in International Scale 🌟Місце проведення: TEAM International (вул. Ярослава Мудрого, 23 ) 🌟День і час: 13 червня, 19:00-21:00 🌟Реєстрація доступна за посиланням: Вартість: до 12 червня - 150 грн., в день заходу (на місці) - 200 грн. Оплата доступна на карту: 4149 6293 9227 5699 - Охотніченко Тетяна (прохання надіслати скрін оплати на team.international.ua@gmail.com).
Read more
platon on frontend 21 May 2018, 09:35
​​помните кучу статей что экосистема ноды сломана, та и ваще кому это надо?

так вот, теперь есть security audits для npm модулей. и по чуть-чуть все налаживается.
комманда npm audit отправляет dependencies, devDependencies, bundledDependencies и optionalDependencies на специальный сервачек, который проверяет их на наличие известных уязвимостей. npm audit так же запускается после npm install.
Read more
platon on frontend 14 May 2018, 15:00
messageformat — отличный инструмент для локализации приложенией.

начнем с простого

MessageFormat = require('messageformat')
const mf = new MessageFormat('en')
const message = mf.compile('This is a message.')

message() // "This is a message."

как бе ниче сверхъестественного, но, давайте посмотрим дальше

MessageFormat = require('messageformat')
const mf = new MesssageFormat('en')
const selectMessage = mf.compile(
`{ GENDER, select,
male {He}
female {She}
other {They}
} liked this.`
)

selectMessage({ GENDER: 'male' }) // 'He liked this.'
selectMessage({ GENDER: 'female' }) // 'She liked this.'
selectMessage({}) // 'They liked this.'

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

SEL1, select,
other {
{ PLUR1, plural,
one {1}
other {
{ SEL2, select, other {Deep in the heart.} }
}
}
}
}

https://messageformat.github.io/messageformat/page-guide
Read more
platon on frontend 14 May 2018, 12:26
минутка рекламы

Всем привет, друзяшки черепашки есть сладкая реакт мидл вакансия, все как в силиконовой долине теслы и печеньки
darya.rusetska@tech-stack.io
platon on frontend 11 May 2018, 14:06
спасибо Kat Marchán и npm команде за npx — npm package binaries executor.

теперь вместо ./node_modules/.bin/jest можно писать npx jest.
но на этом бенефиты не заканчиваются.

допустим вы хотите проверить как ваш проект соберется на новой версии вебпака — npx webpack@4.
npx загрузит webpack 4 во временное хранилище и выполнит его.

npx отлично работает со всякими там генераторами типа create-react-app или webpack-cli.

npx create-react-app my-react-app
npx webpack-cli init

в общем, удобно.
Read more
platon on frontend 17 Apr 2018, 15:55
platon on frontend 13 Apr 2018, 10:42
>There are only two kinds of languages: the ones people complain about and the ones nobody uses.

наткнулся я тут на дивную статью — "How to escape async/await hell", если коротко, то чувак говорит что данный код не оптимальный:

await smth1();
await smth2();

и мол можно еще писать вот так —

Promise.all([smth1(), smth2()])

и у меня в голове прозвучало заветное, — "емана, а что кто-то этого не знал?". так вот, давайте разберемся.

1. async function определяет асинхронную функцию которая возвращает AsyncFunction. AsyncFunction отличается от Function тем, что всегда создается в глобальной области видимости, и при запуске получает доступ только к своим локальным переменным и к глобальным переменным.

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

???????
profit.
Read more
platon on frontend 12 Apr 2018, 09:52
в дивное время живем, нода поддерживает HTTP/2 push!

html>


Awesome Unicorn!



This is an awesome Unicorn!



обычно, браузер после загрузки html пойдет грузить awesome.css и unicorn.png, но не сегодня:

(const asset of ['/static/awesome.css', '/static/unicorn.png']) {
// stream is a ServerHttp2Stream.
stream.pushStream({':path': asset}, (err, pushStream) => {
if (err) throw err;
pushStream.respondWithFile(asset);
});
}

мы можем вместе с index.html "запушить" awesome.css и unicorn.png.
кроме того, чуваки из гугл сделали h2-auto-push, который может анализировать паттерны запрашиваемых данных и само настраивает пуш.

детальнее можно читнуть тут — https://medium.com/the-node-js-collection/node-js-can-http-2-push-b491894e1bb1
Read more
platon on frontend 10 Apr 2018, 11:31
что мне нравится в 4м бутстрапе, так это utilities — я не знаю как я жил до этого.

.d-xl-block
.d-md-inline-flex
.w-100
.text-xl-left

...и еще куча всего

никакая булма и рядом не стояла. я теперь в каждый проект их пихаю 👦.
platon on frontend 5 Apr 2018, 11:47
Know Your Menus
platon on frontend 5 Apr 2018, 11:08
нашел тут цикл статей, в которых чуваки разбирают исходный код vue.js. ничего сложного, но как чтиво перед сном пойдет :)

https://medium.com/@oneminutejs/a-deep-dive-in-the-vue-js-source-code-fd9638c05c05
platon on frontend 3 Apr 2018, 13:16
я помню, учась в институте, мы все сидели на фаерфоксе, но плевались бо он сильно много памяти отжирал.
потом появился хром, и все дружно на него пересели. и как-то фф ушел на второй план. хром правда батарейку жрет как не в себя, но все остальное было просто прекрасно.

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

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

— WebAssembly
— A-Frame and WebVR
— Common Voice
— Темная тема для Devtools
— Крутой редактор для CSS
— Не жрет так память
— Не жрет батарею

и самое огненное — можно запретить сайтам показывать нотификации. детальнее можно читнуть в этой статье:

https://medium.com/swlh/calling-all-web-developers-heres-why-you-should-be-using-firefox-983f012d4aec
Read more
platon on frontend 28 Mar 2018, 21:22
platon on frontend 28 Mar 2018, 21:22
ветер с ног сдувает
platon on frontend 28 Mar 2018, 21:21
​​я тут давно не писал, но вы не думайте, я о вас не забыл, просто поехал в холодную исландию в отпуск 🙂
вот делюсь фоточками.
platon on frontend 21 Mar 2018, 18:12
не ну а шо — A blazing fast CSS-in-GQL™ library:

{
typography {
fontSize: scale {
l
}
fontWeight: weight {
bold
}
}
marginLeft: spacing {
xl
}
color: colors {
green
}
}

т.е, вы пишите код на graph ql, который потом компилится в ксс. еще и blazing fast.
мир сошел с ума.

репа — https://github.com/braposo/graphql-css
демка — https://codesandbox.io/s/jq22wyqm3
Read more
platon on frontend 19 Mar 2018, 20:13
​прям не терпится с вами поделиться, наткнулся на статью "Making WebAssembly even faster: Firefox’s new streaming and tiering compiler" в мозилла хакс. в чем суть:

чуваки из мозиллы запилили стриминг компилер для веб сборок в ФФ. обычно, когда идет запрос на файл сетевой уровень скачивает его в ArrayBuffer а потом передает его в js engine. вместо этого, ФФ позволяет компилить веб сборку по частям по мере загрузки. в статье описывают бешенные приросты производительности от такого подхода.

так же запилили многоуровневый компилятор: компилер уровня 1 компилит код "абы работало" — главное чтобы компиляция была быстрой. потом, в фоне, компилер 2 делает все опцимизации как надо и делает хот-своп байт кода.

????
профит.
Read more
platon on frontend 19 Mar 2018, 19:40
смотрите че нашел — https://twitter.com/RReverser/status/975767900895219712

речь идет о смарт пайплайнах(пропозал): '%21' |> decodeURI вместо decodeURI('%21').
в более общем виде expression |> function.

ну не знаю, как по мне сахар который не нужен. мир еще от async/await не отошел, а тут пайплайны.
platon on frontend 19 Mar 2018, 12:47
кста, у меня появилась идея сделать свой graphql с блекджеком и шлюхами.
мне нравится сама идея описывать только те данные что нужны в отображении на уровне апи.
но в данный момент нет норм реализаций этой идеи.

в смысле, большинство туториалов что я смотрел говорят сделайте select \* from \* а мы там сами смапим данные. и я такой штоооо? этоже прямо противоречит идеям graphql. либо тотже самый graphql js дает доступ к AST и дальше мол сами там делайте че хотите, не удобно же.

так вот, а почему бы просто не сделать sql-подобный синтаксис? меня прет Jira Query Language и AdWords Query Language.
мы можем просто парсить строку типа currentUser/?select name, profile_image_small и на бекенде мы получаем ['name', 'profile_image_small'] и дата сорс currentUser.

да, придется добавить валидацию, туда-сюда, но зато сортировка и пагинация сама напрашивается take 10 skip 5, или limit 5,10 order by created_dt. и тож нет проблем с версионированием.

в общем, если выпадет шанс обязательно попробую этот велосипед.
Read more