# Понедельник 64 твита
Все говорят code-split, lazy-load, SSR... всё это чтобы показать тривиальную страничку. А у нас бандлы меньше 100КБ… twitter.com/i/web/status/1…
10:04Server Side Rendering применяется для двух целей:
10:28Технологии, помогающие скрыть некомпетентность разработчиков:
10:39В мире SEO есть два главных заблуждения:
10:52Чтобы исключить неожиданности и упростить отладку хорошей практикой является идентичность кода исполняющегося на пр… twitter.com/i/web/status/1…
12:40Человек ленив. Между сложным правильным путём и лёгким неправильным он с большей вероятностью выберет неправильный.… twitter.com/i/web/status/1…
12:44Человек не идиот. Если делать продукт для идиотов - только идиоты им и смогут пользоваться. Не стоит тратить время… twitter.com/i/web/status/1…
12:51Если не видно разницы, то незачем делать больше. Такие оптимизации можно производить без спроса. Если же человек мо… twitter.com/i/web/status/1…
12:54Вместе люди способны на большее. Одно общее решение лучше, множества конкурирующих. А кооперация людей с разносторо… twitter.com/i/web/status/1…
12:57В каждой области может быть только один ответственный. Если формально ответственны несколько, то фактически не отве… twitter.com/i/web/status/1…
12:59Предлагая каждому участнику решение множества проблем совершенно бесплатно, сообщество в праве ожидать от него хотя… twitter.com/i/web/status/1…
13:01У каждой проблемы есть не всегда очевидная первопричина. Найдя её, стоит придумать такое решение, которое полностью… twitter.com/i/web/status/1…
13:05Если проблема не может быть решена полностью, стоит выбрать такое решение, чтобы та же ситуация уже не была проблем… twitter.com/i/web/status/1…
13:07При выборе решения стоит рассматривать наихудший сценарий развития событий и выбрать наилучшее решение для этого сл… twitter.com/i/web/status/1…
13:09Между высокоуровневой простотой использования и низкоуровневой гибкостью... лучше не выбирать, а строить удобные аб… twitter.com/i/web/status/1…
13:14Даже минимальная наценка помноженная на многие списания выливается в существенную сумму, которая может оказать фата… twitter.com/i/web/status/1…
13:16Если от чего-то допустимо отказаться в некоторых случаях, то стоит отказаться и в остальных. Незачем тратить ресурс… twitter.com/i/web/status/1…
13:21Минимизация:
13:38Минимизация:
- сложно поддерживать сворованный код
- уменьшение сжатого бандла максимум на 25%
Для 10МБ 25% - это… twitter.com/i/web/status/1…
13:41PascalCase:
* Традиционно для имён классов.
* МНого нажатий шифта вовремя.
* СлипшиесяСловаТрудноЧитать.
* Непонятк… twitter.com/i/web/status/1…
camelCase:
* Традиционно для имён переменных и полей
* Много нажатий шифтаВОвремя
* слипшиесяСловаТрудноЧитать
* Не… twitter.com/i/web/status/1…
kebab-case:
* Традиционно для имён в html, css, а также в именах файлов
* Редакторы не считают эти имена единым име… twitter.com/i/web/status/1…
snake_case:
* Традиционно в "олдскульных" языках (C, C++, Rust, Erlang, OCaml) и языках с упором на читаемость (Rub… twitter.com/i/web/status/1…
multiple cases:
* Разное именование одной сущности в разных местах
* Везде необходимы конвертации между стилями нап… twitter.com/i/web/status/1…
Сегодня с твитора аж жир капает twitter.com/nikitonsky/sta…
А ещё некомпетентность разработчика может быть прикрыта скрамом и другими гибкими методологиями.
А часто даже усугу… twitter.com/i/web/status/1…
Сегодня с твитора аж жир капает twitter.com/nikitonsky/sta…
14:32
Суровая правда о совместном использовании библиотек из CDN:
* Каждый сайт всё-равно грузит свою версию библиотеки.… twitter.com/i/web/status/1…
Слушайте что человек говорит. А не оценивайте как он это делает или что он из себя представляет. Пустить пыль в гла… twitter.com/i/web/status/1…
14:43Сейчас популярна тема "микрофронтендов". И ладно бы для этого использовался $mol или Svelte. Но их пилят на чём при… twitter.com/i/web/status/1…
14:47Версионирование библиотек:
* Хрен загрузишь несколько версий одной либы, когда надо
* Когда не надо они так и норов… twitter.com/i/web/status/1…
Типичный фронтендер:
* мыслит трендами
* катается на хайптрейне
* боится изучать что-то новое (а вдруг не пригодитс… twitter.com/i/web/status/1…
Разработчики обычно сидят в уютных офисах за 8-ядерными машинками с 16гб оперативки подключёнными к гигабитному опт… twitter.com/i/web/status/1…
15:08Микрофронтенды - это когда используемая технология настолько не эффективна, что для разработки одного приложения од… twitter.com/i/web/status/1…
15:13Виды фронтендеров:
15:34Наследование и композиция - два перпендикулярных понятия. И принцип подстановки Лисков - хороший индикатор, чтобы и… twitter.com/i/web/status/1…
16:08Когда решаются действительно важные архитектурные вопросы, то зачастую всем пофиг. Но самые жаркие дискуссии вспыхи… twitter.com/i/web/status/1…
16:30Часто разработчики думают лишь о 80% случаев использования, когда всё хорошо. Совершенно забывая, что оставшиеся 20… twitter.com/i/web/status/1…
16:49Где успешные и плетежеспособные люди могут встретить плохой интернет:
16:54Война и Мир в сжатом виде - пол мегабайта.
Судя по объёмам бандлов, формочки на сайтах рисуют сплошь Львы Толстые. Не меньше.
Critical CSS - это когда ты накопипастил столько одинаковых стилей, что вырезание всего, что не нужно для первого э… twitter.com/i/web/status/1…
20:21А давайте устроим челлендж: включаем на своих девайсах "Slow 3G" и идём спрашиваем "бизнес" приемлемо работает прил… twitter.com/i/web/status/1…
20:35Все слышали "преждевременная оптимизация - зло".
Многие поняли как "оптимизация - зло".
Мало кто знает: автор этих… twitter.com/i/web/status/1…
Всем привет,
Я Сергей (@_sergeikriger) - фронтенд разработчик из Германии и большой фанат доступного веба. По при… twitter.com/i/web/status/1…
7:11Просмотрел посты на канале за этот год - ребята жгут, конечно. Ощущение, что ошибся дверью. Хардкора на канале было… twitter.com/i/web/status/1…
7:12Я не считаю себя супер разработчиком, но за те 5 лет, что я работаю в индустрии, накопился кое-какой опыт, которым… twitter.com/i/web/status/1…
7:13Писать буду не очень много, потому что, во-первых, "кр. сестр. тлнт", а во-вторых, все давно сказано, чего повторят… twitter.com/i/web/status/1…
7:13Вот список тем на неделю:
7:14Сегодня говорим про доступность.
На этом канале какое-то время назад @ta_fokina очень здорово разобрала эту тему.… twitter.com/i/web/status/1…
7:18Доступность - это не фича, которую можно либо иметь, либо нет. Доступность - это естественное состояние сайта, когд… twitter.com/i/web/status/1…
7:18Доступность не должна быть бездумной - если Drag-end-Drop компоненты не доступны для незрячих по своей сути, найдит… twitter.com/i/web/status/1…
7:18Бизнес пока не готов активно двигаться в сторону доступности и это понятно - этой темы никогда не было на виду и ту… twitter.com/i/web/status/1…
7:19Я лично был свидетелем того, как несколько разработчиков ушли из компании, когда клиент попросил седлать большой и… twitter.com/i/web/status/1…
7:20Доступность - это часть профессии как JavaScript, React, flexbox, grid и еще тысяча вещей. Доступность надо учить,… twitter.com/i/web/status/1…
7:20Чтобы по настоящему понять важность доступного веба, пообщайтесь с людьми с разными ограничениями, посмотрите как о… twitter.com/i/web/status/1…
7:20Если не можете лично пообщаться с людьми с ограничениями, есть несколько ресурсов на эту тему. Важно быть в теме, к… twitter.com/i/web/status/1…
7:21Youtube канал с миллионными просмотрами от слепого блоггера Molly Burke. Девица просто жжет!
.
.
.
youtube.com/user/MollyBurk…
Тифлострим на канале tiflo.info - передача про незрячих и не только. Посмотреть на мир со стороны не з… twitter.com/i/web/status/1…
7:21Истории незрячих людей на канале @aliya_nurullina "Типичный незрячий". Много историй на разные темы, включая интерн… twitter.com/i/web/status/1…
7:22Вместо заучивания известных паттернов доступных интерфейсов, попробуйте поставить себя на место людей с ограничения… twitter.com/i/web/status/1…
7:22Есть мнение, что доступность нужно уметь "продать" бизнесу, чтобы получить на это бюджет.
Нет!
Доступность это ча… twitter.com/i/web/status/1…
7:22Вы (не начальник) должны быть инициатором доступной верстки. Вас наняли как специалиста, у вас экспертиза и нет нео… twitter.com/i/web/status/1…
7:22На первых порах доступность занимает какое-то время. Научитесь верстать доступные интерфейсы быстро и у бизнеса не… twitter.com/i/web/status/1…
7:23При оценке времени на разработку включайте туда время на доступность по умолчанию и умейте аргументированно объясни… twitter.com/i/web/status/1…
7:23Отвечать буду на только на конструктивные комменты, весь треш будет вежливо игнорироваться.
Если хотите что-то спр… twitter.com/i/web/status/1…
7:30@jsunderhood Общался со слабовидящим человек достаточно долгое время, пока он не переехал в другую страну. В больше… twitter.com/i/web/status/1…
Это да 👍
@jsunderhood Общался со слабовидящим человек достаточно долгое время, пока он не переехал в другую страну. В больше… twitter.com/i/web/status/1…
8:41
# Вторник 53 твита
Думаю все слышали про TDD. А кто-то так и живёт. Что вы делаете, когда написанный тест изначально зелёный? pic.twitter.com/AXXenw0xIr
Кто угадает, что значит красная горизонтальная черта? pic.twitter.com/EDhJAuTPsi
Системное тестирование (всей системы в сборе):
7:09Модульные(единица кода) тесты:
7:20Чтобы модульные тесты были полны - нужно ещё хотя бы проверить их интеграцию друг с другом, что кратно увеличивает… twitter.com/i/web/status/1…
7:23Компонентные (единица поведения) тесты:
7:33Забыл добавить:
7:41Правильный TDD - и не TDD вовсе. pic.twitter.com/7x2OZrNMTt
В погоне за оптимизациями, важно всё время задаваться вопросом: стоит ли очередной маленький шажок к идеалу усложне… twitter.com/i/web/status/1…
8:23Компонентные тесты так же известны под названием "социальные модульные тесты", что звучит так же глупо как "социаль… twitter.com/i/web/status/1…
8:49Чем меньше вы мокаете, тем больше уверенности в работоспособности. Однако, нестабильные API (такие как, например, р… twitter.com/i/web/status/1…
10:26В каком коде больше инкапсуляции?
class Twitter {
constructor( private butt : Butt ) {}
tweet() { this.bu… twitter.com/i/web/status/1…
Изоляция - предотвращение доступа извне.
Инкапсуляция - привязка данным к функциям их обработки.
Абстракция - незав… twitter.com/i/web/status/1…
Простая задачка на JS. Пользователь приложению даёт длины сторон треугольника, а оно возвращает true или false в за… twitter.com/i/web/status/1…
14:09Тестирование белого ящика требует обновлять тесткейсы после каждого изменения кода.
Тестирование же чёрного - може… twitter.com/i/web/status/1…
14:42Для простоты давайте положим, что у нас тайпскрипт, который не пускает на вход совсем уж треш.
15:51Исполнение тестов в том же порядке, в котором собирается код в бандл, позволяет довольно точно локализовывать пробл… twitter.com/i/web/status/1…
16:10Замерил у нас время исполнения компонентных тестов. 4мс на тест в среднем.
Для сравнения, ангуляровский TestBed тол… twitter.com/i/web/status/1…
Для реализации с минимумом ветвлений у меня получилось, что надо минимум 11 тестов.
У кого больше? pic.twitter.com/K5Aq4dStMb
Благодаря сортировке мы избавились от комбинаторного взрыва тесткейсов, так что достаточно проверить первый парамет… twitter.com/i/web/status/1…
18:32Каждый класс эквивалентности даёт по 2 граничных условия:
-∞
0
δ
a + b - δ
a + b
+∞
Плюс NaN конечно же.
18:35В классе эквивалентности "треугольник" надо проверить как вариант с true, так и с false. Итого - 11 тестов. pic.twitter.com/X9aa2lYjVf
Кодер выполняет задачу как поставили. Пробелы в ТЗ - не его проблемы.
Девелопер же выяснит все детали. Или же испол… twitter.com/i/web/status/1…
Падение теста на явно некорректном коде ничего не говорит о том, проверяет ли он хоть что-то в коде, похожем на корректный.
19:21Пока жопу разработчику прикрывает тестировщик, не ждите от первого ответственного отношения к качеству того, что он… twitter.com/i/web/status/1…
19:30Спустя несколько ретроспектив толковый разработчик и в тестировании разберётся и архитектуру поправит, чтобы меньше… twitter.com/i/web/status/1…
19:40Проверяет ли тест хоть что-то, определяется не прохождением или падением теста, а тем как тест написан. Если из код… twitter.com/i/web/status/1…
21:21Привет, сегодня говорим на темы около фронтенда.
Знать JS/CSS/HTML это must have для фронтендера, но чтобы комфорт… twitter.com/i/web/status/1…
6:38Опережу тех, кто уже подумал "ну началооооось..." и определю диапазон сегодняшней темы - это для тех, кто только-то… twitter.com/i/web/status/1…
6:39"Ээээ, хардкор давай, мясо с кровью, чтобы капало!.."
Сори, сегодня не про это. На сегодня тут 7,388 человек и, по… twitter.com/i/web/status/1…
6:39Если в компании нет привычки к менторству джунов, то часто человек пришел, поднаторел чуток в своей песочнице и не… twitter.com/i/web/status/1…
6:39Чтобы быть полезным для компании (особенно для маленькой), надо быть в меру универсалом, то есть уметь делать чуть… twitter.com/i/web/status/1…
6:40Быстрее, дальше, глубже… Ощущение, что это не разработка, а спорт, замедлился - проиграл. Отсюда стресс, чувство… twitter.com/i/web/status/1…
6:40Фронтенд - это индустрия со многими специализациями внутри. ЗНАТЬ ВСЕ И СРАЗУ не получится, лучше сконцентрироватьс… twitter.com/i/web/status/1…
6:40JavaScript гуру, способный поправить интерфейс и задеплоить проект.
Верстальщик железобетонных интерфейсов со знан… twitter.com/i/web/status/1…
6:40Дальше будет перечисление технологий/тем, которые хорошо понимать любому фронтендеру, от мидла и выше. Выбор основа… twitter.com/i/web/status/1…
6:40Фронтендер должен...
...знать Linux на уровне навигации, работы с файлами, поиска с find и grep, а также основную… twitter.com/i/web/status/1…
6:41Фронтендер должен...
...уметь доставать данные из наиболее ходовых баз. Пускай даже примитивными запросами типа
S… twitter.com/i/web/status/1…
6:41Фронтендер таки должен...
...знать Vim, ну хоть самые основы. Открыть/закрыть файл, передвигаться по документу, ск… twitter.com/i/web/status/1…
6:41Фронтендер не должен...
...падать в обморок от слов кластер и kubernetes и хотя бы смутно понимать, что это не наз… twitter.com/i/web/status/1…
6:41Фронтендер не обязан…
…писать на go или haskell, но должен понимать в чем разница между ними и основные области их применения.
6:41Фронтендер должен...
...знать bash на уровне сэкономить время на печатание комманд. Если сможете прокинуть параметры, еще лучше.
6:42Фронтендер должен...
...уверенно понимать процесс деплоя - куда что уходит, где хостится, как доходит до конечного пользователя.
6:42Фронтендер должен...
...уметь проследить HTTP запрос через все сервисы и знать какие данные откуда берутся.
6:42Фронтендер должен...
...уметь нарисовать схему системы (или ее части), в которой он работает. Без деталей, но чтоб… twitter.com/i/web/status/1…
6:42Фронтендер просто обязан…
…читать на английском. Смогли разобраться с Redux и GraphQL, умеете обращаться с webpack… twitter.com/i/web/status/1…
6:42Фронтендер должен…
…постоянно инвестировать в себя. Опыт показывает, что сотни потраченные на книги, курсы или пра… twitter.com/i/web/status/1…
6:43Фронтендер должен…
…уметь настроить (ну хоть примитивно) CI/CD на проекте. Свой же код будет легче не за факапить,… twitter.com/i/web/status/1…
6:43Парадоксально, но фронтендер не обязан…
...вести твиттер и уж точно наличие твиттера это не показатель успешности… twitter.com/i/web/status/1…
6:43Фронтендер не обязан…
...иметь собственные opensource проекты или контрибьютить в другие. Никто не спорит, что это… twitter.com/i/web/status/1…
6:44Продолжая предыдущий твит: можно ли быть неплохим разработчикам без участия в opensource проектах? Думаю, да.
6:44Кажется прошлая неделя всех не хило взбударажила - люди все еще спорят в комментах.
@_jin_nin_ вы просто $molодец 👍💪
11:30# Среда 39 твитов
Ну что ж, думаю самые нежные уже отписались, и можно постить теперь настоящую дичь с камел_кейсом и долларами.
3:11Человек не является джуном или сеньёром сам по себе.
Для себя я вывел следующую градацию полезности человека в реше… twitter.com/i/web/status/1…
Чем проще, изолированнее и линейнее тест, тем проще его писать, понимать и переносить. Поэтому у нас нет никаких de… twitter.com/i/web/status/1…
4:45Почему так странно? Никто же так не делает!
Зато у нас информативные стектрейсы, по которым сразу видно какой тест… twitter.com/i/web/status/1…
В погоне за "человекопонятностью" очень легко эту человекопонятность лишь потерять.
stackoverflow.com/questions/3261…
Подра… twitter.com/i/web/status/1…
5:22Чем проще API, тем легче его освоить и сложнее запутаться. Поэтому assertion library у нас верх минимализма.
Поздра… twitter.com/i/web/status/1…
У нас есть 2 одинаково драматичные функции, лежащие в разных файлах. Как вы думаете, для чего? pic.twitter.com/iBnXgLG503
@jsunderhood Извините за нескромный вопрос, зачем везде приписка $mol? $ сразу навевает у меня воспоминания о PHP,… twitter.com/i/web/status/1…
В MAM экосистеме всё, что начинается с $ - это Fully Qualified Names. По ним сборщик понимает что откуда брать. Это… twitter.com/i/web/status/1…
@jsunderhood Извините за нескромный вопрос, зачем везде приписка $mol? $ сразу навевает у меня воспоминания о PHP,… twitter.com/i/web/status/1…
11:06
Разгадка простая: один из этих фалов блекбоксится, что предотвращает остановку отладчика на кидаемых через него иск… twitter.com/i/web/status/1…
15:12Также $mol_fail_hidden используется например для rethrow исключений, кидания обещаний и прочих рядовых случаях.
В… twitter.com/i/web/status/1…
15:17Вся коммуникация у нас построена на концепции каналов. Каждое свойство - это некоторая функция, которая может высту… twitter.com/i/web/status/1…
16:53Делегировать ввод/вывод в/из канала удобно в другие объекты, чтобы связывать их вместе. Например, давайте заперсист… twitter.com/i/web/status/1…
16:59Обратите внимание на поле $ - это контекст окружения. Он доступен всем компонентам и наследуется через иерархию вла… twitter.com/i/web/status/1…
17:12$mol_test сразу даёт такой контекст окружения, где все внешние и нестабильные зависимости уже замоканы. Так что мы… twitter.com/i/web/status/1…
17:20А теперь что-то по сложнее:
17:26Компонент - это самый обычный класс.
В свойствах с Большой буквы лежат вложенные компоненты. Снова этот $mol_mem..… twitter.com/i/web/status/1…
То же самое можно записать и куда короче.
view.tree - не более чем упрощённый синтаксис для описания классов.… twitter.com/i/web/status/1…
Single Responsibility Principle - красивая концепция, оторванная от реальности. Приводит ко кратному увеличению чис… twitter.com/i/web/status/1…
18:17Open Closed Principle - фактически говорит "никогда не делай рефакторинг". Ну да, пусть кодовая база тухнет под гнё… twitter.com/i/web/status/1…
18:28Liskov Substitution Principle - наивно полагает, что подтип может быть подставлен вместо надтипа где угодно. И это… twitter.com/i/web/status/1…
18:41Interface Segregation Principle - такая структурная типизация для бедных. Каждой комбинации имя+сигнатура метода да… twitter.com/i/web/status/1…
18:57Обожаю принципы, которые каждый понимает и реализует по своему. Но у кого ни спросишь - только он знает как оно на… twitter.com/i/web/status/1…
19:01Dependency Inversion Principle - чудесный способ всех запутать. Вот у вас использование зависимости. Казалось бы ру… twitter.com/i/web/status/1…
19:07Если человек говорит вам, что он программирует по SOLID - попросите его снять скафандр и выйти из звездолёта. Как и… twitter.com/i/web/status/1…
19:13Привет!
3-й день на карантине и сегодня пару слов про конференции и митапы, как важную составляющую профессиональн… twitter.com/i/web/status/1…
6:54Какое-то время назад после одного успешного проекта на работе, понял, что есть чем поделиться с сообществом в теме… twitter.com/i/web/status/1…
6:55Я не считаю себя уж очень хорошим докладчиком. В моем случае талант (которого нет) относительно неплохо компенсируе… twitter.com/i/web/status/1…
6:55Если есть что рассказать, очень рекомендую выступить с докладом хотя бы раз. И опыт получите, и знаниями поделитесь… twitter.com/i/web/status/1…
6:55Как сказал мой коллега, который сам выступал на больших конференциях, если за 15 минут до выхода на сцену тебя потр… twitter.com/i/web/status/1…
6:55Если идёте на многофункциональную конференцию типа @RITFestRussia, очень советую не ограничиваться только фронтендо… twitter.com/i/web/status/1…
6:56Из последних спикеров, которых я слышал, но до которых мне как до луны, это Денис Мишунов (@mishunov), Вадим Макишв… twitter.com/i/web/status/1…
6:56Не зависимо от умения держаться на сцене и ораторских способностей, есть 2 качества, которые отличают хорошего док… twitter.com/i/web/status/1…
6:56CDD - Conference Driven Development ©
Выступление это очень хороший стимул углубить знания и чему-то научиться. В… twitter.com/i/web/status/1…
6:56Про Diversity на конференциях
Очень хорошо понимаю тему, но, по-моему, тут налицо подмена понятий.
Равный доступ… twitter.com/i/web/status/1…
6:57Я ЗА diversity и это ОЧЕНЬ ЗДОРОВО, что в программе конференций могут быть представлены совершенно разные спикеры и… twitter.com/i/web/status/1…
6:57А что, если дать возможность подаваться АБСОЛЮТНО ВСЕМ и выбирать ЛУЧШИЕ ЗАЯВКИ по качеству тем и по профессионализ… twitter.com/i/web/status/1…
6:57Те люди, с которыми встречался на конференциях, это, наверно, самое лучшее, что со мной случилось за последний год.… twitter.com/i/web/status/1…
6:58Небольшой тред про субтитры. Так как pitera11y_meetup про доступность, то и записи докладов тоже стараемся делать д… twitter.com/i/web/status/1…17:02
У моего @logux_io появилась документация и сайт19:35
logux.ioНесколько первых пользователей и статья на… twitter.com/i/web/status/1…
# Четверг 13 твитов
$mol компонент является плоским классом, а view.tree позволяет объявлять его лаконично и не теряя в наглядности иер… twitter.com/i/web/status/1…
16:53Привет!
В очередной день "околофронтендной" недели говорим про soft skills. Тема уже довольно хорошо исследована,… twitter.com/i/web/status/1…
8:08#1
Умение говорить "нет".
Например, простое умение отказаться от задачи, если она вне вашей компетенции.
8:09#2
Умение оценивать работу.
Знать свои возможности уметь точно оценить время на задачу и уровень сложности. Если в… twitter.com/i/web/status/1…
8:09#3
Умение слушать и слышать.
Не продавливать свою линию, а услышать оппонента и аргументированно либо согласиться,… twitter.com/i/web/status/1…
8:09#4
Умение находить компромисс.
Особенно помогает, когда вводишь начинающего разработчика в проект или при парном п… twitter.com/i/web/status/1…
8:09#5
Умение делать работу комфортной.
Если вместо недели на задачу нужно полторы (и они есть) - просите полторы. Глу… twitter.com/i/web/status/1…
8:10#6
Умение конструктивно спорить.
Не упираться лбом и повторять одно и тоже, а найти правильные слова для конкретно… twitter.com/i/web/status/1…
8:10#7
Умение видеть проблему целиком.
Не просто пилить свой модуль, а знать, что он делает для системы, в которой он… twitter.com/i/web/status/1…
8:11Как не смешно, но хорошая память тоже soft skill.
Босс: С этого дня на общие собрания запрещено приносить телефоны… twitter.com/i/web/status/1…
8:12Несколько ссылок по теме.
"Осознанное развитие и карьера" (очень интересно)
.
.
.
youtube.com/watch?v=47Ef2f…
"The state of soft skills" от @frontendweekend
.
.
.
youtube.com/watch?v=N69EeX…
"Soft Skills для интровертов" от @dark_mefody и @Neesoglasnaja
.
.
.
youtube.com/watch?v=UE9aGH…
# Пятница 28 твитов
Don't Repeat Yourself - источник многих звездолётов. Но есть с ним и менее известная проблема - независимые части с… twitter.com/i/web/status/1…
5:21You Aren't Gonna Need It - известное прикрытие для архитектурных раздолбаев. Ща побырому сделаем, а после нас хоть… twitter.com/i/web/status/1…
5:30Keep It Small and Simple, внезапно, единственный принцип, которым стоит руководствоваться. Потому, что всё гениальн… twitter.com/i/web/status/1…
5:54Так что насчёт челенжа? Или как травить человека в Твиттере, так время есть, а закатать рукава и покодить пару часо… twitter.com/i/web/status/1…
6:10Привет,
Сегодня говорим про работу в Германии - что, как, стоит ли. Сразу скажу, что в России разработчиком не раб… twitter.com/i/web/status/1…
7:50Если есть желание посмотреть мир, пожить еще где-то и посмотреть как живут люди, с профессией разработчика это не т… twitter.com/i/web/status/1…
7:50Есть мнение, что переезд заграницу это навсегда - уехал и с концами. А что если не "уехать", а "съездить", не "жить… twitter.com/i/web/status/1…
7:50Если уже есть и профессия, и опыт, то уехать работать в Германию не так сложно. Есть программа Blue Card, по которо… twitter.com/i/web/status/1…
7:50Чтобы получить Blue Card, нужно 2 вещи:
7:51По Blue Card есть кое-какие детали, которые надо знать. Тут обсуждать нет смысла, есть много отличных ресурсов по т… twitter.com/i/web/status/1…
7:51Make it in Germany
Все, что надо официально знать про Blue Card со ссылками на источники.
.
.
.
make-it-in-germany.com/en/visa/kinds-…
Surfin Birds
Блог об иммиграции в Германию от @igor_lkm и его супруги. Дизайн, конечно, идиотский, но контент на 5… twitter.com/i/web/status/1…
7:52Работу можно искать в разных местах, вот мой список:
xing.com
linkedin.com… twitter.com/i/web/status/1…
Как правило процесс устройства на работу в Германии состоит из нескольких шагов (мой опыт):
7:52Созвон с HR
Все стандартно - тех стэк, сильные стороны, языки, инструменты, дурацкие вопросы типа "вы занимаетесь… twitter.com/i/web/status/1…
7:53Интервью по профилю
Тут все интереснее. Как правило час разговоров на технические темы: рассказать про проекты, ин… twitter.com/i/web/status/1…
7:53Разговор с командой
Если прошли тест, могут пригласить в офис, поговорить с будущей командой, обсудить ваше решени… twitter.com/i/web/status/1…
7:54Разговор с командой (продолжение)
Был случай, когда после разговора с командой мне отказали, хотя тест сдал на отл… twitter.com/i/web/status/1…
7:54Интервью с начальником
Условия работы, контракт, планы на будущее и пр. Это и есть тот берег, на котором надо дого… twitter.com/i/web/status/1…
7:55Контракт
В Германии считается хорошим тоном обсуждать контракт до подписания, хотя в больших корпорациях они могут… twitter.com/i/web/status/1…
7:55Зарплата
Какую запросите, такую и дадут (в разумных пределах, конечно). Больше рыночной редко, если вы не гений, м… twitter.com/i/web/status/1…
7:55Pay inequality is a big problem in tech, especially for underrepresented groups like women and minorities. The best… twitter.com/i/web/status/1…
Недавно был интересный тред по зарплатам. Не знаю что на людей нашло, но все вдруг начали постить кто сколько получ… twitter.com/i/web/status/1…
Pay inequality is a big problem in tech, especially for underrepresented groups like women and minorities. The best… twitter.com/i/web/status/1…
7:56
В Германии не принято обсуждать зарплату с коллегами, а иногда это может быть и запрещено по контракту. Может запро… twitter.com/i/web/status/1…
7:56Чего в немецких компаниях нет, так это прямого фидбэка. То есть всегда "все отлично", а потом бах и куча претензий.… twitter.com/i/web/status/1…
7:57В Германии нет разделения на верстку и программирование. Там все фронтендеры и должны уметь и то, и это. Давно мечт… twitter.com/i/web/status/1…
7:57Недавно наткнулся на отличный канал Senior Software Vlogger про работу в Германии и не только. Там всего больше и п… twitter.com/i/web/status/1…
7:57На этом заканчиваю свою неделю на jsunderhood, спасибо всем, кто читал.
Буду проверять комменты до воскресенья веч… twitter.com/i/web/status/1…
7:58# Суббота 17 твитов
Порой начитаешься этих ваших Твиттеров и думаешь: ну его нафиг этот опенсорс. А потом читаешь отзывы тех, кто взял… twitter.com/i/web/status/1…
7:00$mol_jsx_view - Real DOM
ReactJS - Virtual DOM
$mol_view - Virtual Render
Как бы быстро н… twitter.com/i/web/status/1…
7:49Люди, не способные думать своей головой, очень любят повторять за авторитетами и ритуализировать свою работу. Тренд… twitter.com/i/web/status/1…
8:12Легко найти человека, способного слепить куличик из песка. Сложно найти человека, способного построить здание, чтоб… twitter.com/i/web/status/1…
8:30Чем больше компания, тем лучше у неё коммерческая поддержка и тем хуже некоммерческая.
compare.github.hyoo.ru/#projects=eige… pic.twitter.com/HY631ACGYu
Теперь этому классу мы можем добавить стилей.
Класс компонента - это аналог БЭМ-блока.
Имя вложенного компонента -… twitter.com/i/web/status/1…
Каждый компонент - это обычный класс, а вложенные компоненты лежат в его свойствах. Это позволяет использовать рефл… twitter.com/i/web/status/1…
11:47Ну и, собственно, вот такое не хитрое приложение у нас получилось. При этом мы не написали ни строчки HTML, CSS или… twitter.com/i/web/status/1…
11:51Реакт:
13:10Бандлы должны быть худыми и быстрыми. Нарезание их на кусочки лишь маскирует проблему, но не решает её.
Скажем нет… twitter.com/i/web/status/1…
Хотел было воспользоваться для типизации css-in-ts модулем csstype, но вы только гляньте какую чушь оно нагенериров… twitter.com/i/web/status/1…
14:28Добавим логики. Наследуемся от сгенерированного класса и переопределяем свойство, возвращающее список целей, в кото… twitter.com/i/web/status/1…
18:14В ответе от сервера может прийти любая балалайка. Поэтому давайте добавим валидацию по схеме. Заодно получим ещё и… twitter.com/i/web/status/1…
18:17Есть два варианта реализации связываний:
* Синхронизация (React, Angular, Svelte). В процессе синхронизации состоя… twitter.com/i/web/status/1…
18:52Какой смысл делать что-то похожее на #myUsualLib, если уже есть #myUsualLib?
Наивно полагать, то качественные изме… twitter.com/i/web/status/1…
19:19Свелт
20:09Ангуляр
20:52# Воскресенье 35 твитов
WebCmponents - мертворождённая технология:
* Коммуникация через DOM крайне медленная
* Никакой реактивности, всё ру… twitter.com/i/web/status/1…
Работать с дураками - себе дороже. И дурака ничему не научишь, и сам деграднёшь.
Работайте лишь умными людьми - тог… twitter.com/i/web/status/1…
Примечательно, что про мою токсичность плачут в основном те, кто разливаются желчью на весь Твиттер, стоит только п… twitter.com/i/web/status/1…
9:01Я пишу в основном про проблемы и недостатки, потому что про достоинства вам и так все уши промоют маркетинговым бул… twitter.com/i/web/status/1…
9:12При всей мои нелюбви к jQuery, у неё был очень правильный принцип "write less, do more". В какой-то момент что-то… twitter.com/i/web/status/1…
9:17Ладно, ребята, выдыхайте. Пришла пора выключать нейронку.
10:17Vue:
14:07Думаю пришла пора выкладывать карты на стол.
Эту неделю с вами был Дмитрий Карловский.
Начинал я лет в 10 с бейсика… twitter.com/i/web/status/1…
Работал и в стартапах, и на галерах, и в интерпрайзе. Как в больших проектах, состоящих из нескольких команд, так и… twitter.com/i/web/status/1…
14:27Из фреймворков глубоко ковырял как первый так и другой Angular, ExtJS, SAPUI5, React, Knockout, RxJS, MobX и, конеч… twitter.com/i/web/status/1…
14:32Пишу статьи о программировании вообще и фронтенде в частности. Обычно это лонгриды о необычных решениях наболевших… twitter.com/i/web/status/1…
14:38Иногда выступаю на митапах и конференциях. Глянуть выступления можно тут: github.com/nin-jin/slides…
Сам состою в ком… twitter.com/i/web/status/1…
14:45Из бэкенда работал с NodeJS + OrientDB. Очень понравилось. Хочу теперь свою Графовую СУБД запилить, но всё руки не… twitter.com/i/web/status/1…
14:52Разработал формат представления иерархичных данных Tree. Он одновременно и легко читаемый, и компактный, и простой… twitter.com/i/web/status/1…
14:56Сейчас работаю над одним амбициозным проектом. Когда кому-то говорю о нём - крутят у виска и говорят, что ничего не… twitter.com/i/web/status/1…
14:59Если вас (или кого-то из ваших знакомых) не пугают такие задачи, то у нас открыта вакансия в Москве.
Требования пр… twitter.com/i/web/status/1…
15:05@jsunderhood Так должен был начаться понедельник, а уже потом вот это вот все про фреймворки
Тогда мы бы не смогли вскрыть основную проблему фронтенда.
@jsunderhood Так должен был начаться понедельник, а уже потом вот это вот все про фреймворки
15:17
MAM - это инфраструктура для быстрой и ненапряжной разработки библиотек и приложений.
Порядок в репозитории, миними… twitter.com/i/web/status/1…
$mol - разработанный в MAM экосистеме фронтенд фреймворк для RAD разработки WEB приложений.
Он не имеет выделенного… twitter.com/i/web/status/1…
Куча готовых виджетов уже в комплекте. Можете их просто использовать, как угодно их кастомизировать под себя, или ж… twitter.com/i/web/status/1…
15:46Из интересного, у нас есть самая шустрая библиотека для рисования графиков $mol_chart:
bench.hyoo.ru/app/#bench=htt…
Прич… twitter.com/i/web/status/1…
Ещё у нас есть голосовое управление. Попробовать его в деле можно в приложении, через которое я показываю слайды на… twitter.com/i/web/status/1…
15:53Есть простой редактор с подсветкой синтаксиса. Попробовать его в деле можно на странице view.tree компилятора:… twitter.com/i/web/status/1…
15:56@jsunderhood Мде) pic.twitter.com/goLZDPOpXM
Обратите, кстати, внимание, что когда что-то пошло не так, приложение показало не белый экран смерти, а сообщение о… twitter.com/i/web/status/1…
@jsunderhood Мде) pic.twitter.com/goLZDPOpXM
16:06
Из крутых фич в $mol есть виртуальный рендеринг. Прикладной программист может даже не знать про её существование, н… twitter.com/i/web/status/1…
16:13Привет мир на разных фреймворках. Был бы тут Svelte - он бы всех уделал, конечно. pic.twitter.com/OKkwgP7Co0
Angular - прожорливый работник интерпрайза
React - шаткое нагромождение библиотек
Vue - мелкий любитель патчить обе… twitter.com/i/web/status/1…
Разумеется у нас своя система реактивности. Это типа MobX скрещенного с Saspense API, только круче. Тут не просто с… twitter.com/i/web/status/1…
16:40Я критикую Реакт не потому, что он меня покусал в детстве. А потому, что вижу, как все ломанулись по тупиковому пут… twitter.com/i/web/status/1…
16:54Если заинтересовались - домашняя страница $mol: github.com/eigenmethod/mol
Задать вопрос по $mol и MAM:… twitter.com/i/web/status/1…
17:07Попробуем похожую активность, но в телеге, а то твиттер вымораживает?
Каждый день случайный подписчик становится ру… twitter.com/i/web/status/1…
@jsunderhood @rage_monk @went_out Тогда нужно либо "сп, которая разбирается в технических деталях" — что дороговато… twitter.com/i/web/status/1…
Для классификации скриншотов много ума не надо.
Вы от кого таким способом защищаетесь-то? Стыдно что ли показать ош… twitter.com/i/web/status/1…
@jsunderhood @rage_monk @went_out Тогда нужно либо "сп, которая разбирается в технических деталях" — что дороговато… twitter.com/i/web/status/1…
20:24
Если запрос прошёл, но связь оборвалась твиттер оставляет форму открытой. Тыкаешься как тупой в кнопку "отправить",… twitter.com/i/web/status/1…
20:26Кстати, на тему длинных имён: github.com/eigenmethod/mo…
21:01# Ссылки
github.com
- https://github.com/nin-jin/HabHub/issues/18
- https://github.com/hyoo-ru/bench.hyoo.ru/issues
- https://github.com/eigenmethod/mol/tree/master/ambient
- https://github.com/eigenmethod/mol/tree/master/assert
- https://github.com/nin-jin/slides/tree/master/mol
- https://github.com/nin-jin/slides/blob/master/README.md
- https://github.com/hyoo-ru/notes.hyoo.ru
- https://github.com/nin-jin/slides/tree/master/orp#%D1%80%D0%B5%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9-%D1%80%D0%B5%D0%BD%D0%B4%D0%B5%D1%80%D0%B8%D0%BD%D0%B3
- https://github.com/eigenmethod/mol
- https://github.com/hyoo-ru/bench.hyoo.ru/tree/master/chart/rope
- https://github.com/zerkalica/lom_atom
- https://github.com/eigenmethod/mol/issues/285
www.youtube.com
- https://www.youtube.com/user/MollyBurkeOfficial
- https://www.youtube.com/watch?v=U1UjLN4I9fA
- https://www.youtube.com/watch?v=47Ef2flrXtQ
- https://www.youtube.com/watch?v=N69EeXBEjKg
- https://www.youtube.com/watch?v=UE9aGHgqQc0
other
- https://developers.google.com/search/docs/guides/dynamic-rendering#cloaking
- https://bench.hyoo.ru/app/#bench=https%3A%2F%2Fbench.hyoo.ru%2Fchart%2Frope%2F/sample=anychart~canvasjs~mol~hcharts/sort=update
- https://bench.hyoo.ru/app/#sample=react~tsx~mol/sort=fill/count=2000
- https://habr.com/ru/post/126818/
- http://foo.bar/
- https://stackoverflow.com/questions/32615713/tobetrue-vs-tobetruthy-vs-tobetrue
- https://notes.hyoo.ru/
- https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA
- https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%B4%D0%BE%D0%BA%D1%81_%D0%B2%D0%BE%D1%80%D0%BE%D0%BD%D0%BE%D0%B2
- https://en.wikipedia.org/wiki/KISS_principle
- https://compare.github.hyoo.ru/#projects=eigenmethod%2Fmol%2Csveltejs%2Fsvelte%2Cvuejs%2Fvue%2Cfacebook%2Freact%2Cangular%2Fangular
- https://qna.habr.com/q/427478
- http://tiflo.info/
- https://logux.io/
- https://www.make-it-in-germany.com/en/visa/kinds-of-visa/eu-blue-card/
- http://xing.com/
- http://linkedin.com/
- https://surfin-birds.ru/zakon-ob-immigraczii-kvalificzirovannyh-rabochih-fachkrafteeinwanderungsgesetz/