_jin_nin_

9 марта 2020, Earth Planet

# Понедельник 64 твита

Все говорят code-split, lazy-load, SSR... всё это чтобы показать тривиальную страничку. А у нас бандлы меньше 100КБ… twitter.com/i/web/status/1…

10:04

Server 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:41

PascalCase:
* Традиционно для имён классов.
* МНого нажатий шифта вовремя.
* СлипшиесяСловаТрудноЧитать.
* Непонятк… twitter.com/i/web/status/1…

13:59

camelCase:
* Традиционно для имён переменных и полей
* Много нажатий шифтаВОвремя
* слипшиесяСловаТрудноЧитать
* Не… twitter.com/i/web/status/1…

14:05

kebab-case:
* Традиционно для имён в html, css, а также в именах файлов
* Редакторы не считают эти имена единым име… twitter.com/i/web/status/1…

14:08

snake_case:
* Традиционно в "олдскульных" языках (C, C++, Rust, Erlang, OCaml) и языках с упором на читаемость (Rub… twitter.com/i/web/status/1…

14:22

multiple cases:
* Разное именование одной сущности в разных местах
* Везде необходимы конвертации между стилями нап… twitter.com/i/web/status/1…

14:25
Сегодня с твитора аж жир капает twitter.com/nikitonsky/sta…

А ещё некомпетентность разработчика может быть прикрыта скрамом и другими гибкими методологиями.
А часто даже усугу… twitter.com/i/web/status/1…

Сегодня с твитора аж жир капает twitter.com/nikitonsky/sta…

14:32

Суровая правда о совместном использовании библиотек из CDN:
* Каждый сайт всё-равно грузит свою версию библиотеки.… twitter.com/i/web/status/1…

14:38

Слушайте что человек говорит. А не оценивайте как он это делает или что он из себя представляет. Пустить пыль в гла… twitter.com/i/web/status/1…

14:43

Сейчас популярна тема "микрофронтендов". И ладно бы для этого использовался $mol или Svelte. Но их пилят на чём при… twitter.com/i/web/status/1…

14:47

Версионирование библиотек:
* Хрен загрузишь несколько версий одной либы, когда надо
* Когда не надо они так и норов… twitter.com/i/web/status/1…

14:53

Типичный фронтендер:
* мыслит трендами
* катается на хайптрейне
* боится изучать что-то новое (а вдруг не пригодитс… twitter.com/i/web/status/1…

15:00

Разработчики обычно сидят в уютных офисах за 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

Война и Мир в сжатом виде - пол мегабайта.
Судя по объёмам бандлов, формочки на сайтах рисуют сплошь Львы Толстые. Не меньше.

19:39

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…

21:33

Всем привет,

Я Сергей (@_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:21

Youtube канал с миллионными просмотрами от слепого блоггера Molly Burke. Девица просто жжет!
.
.
.
youtube.com/user/MollyBurk…

7:21

Тифлострим на канале 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

6:41

Кто угадает, что значит красная горизонтальная черта? pic.twitter.com/EDhJAuTPsi

6:51

Системное тестирование (всей системы в сборе):

7:09

Модульные(единица кода) тесты:

7:20

Чтобы модульные тесты были полны - нужно ещё хотя бы проверить их интеграцию друг с другом, что кратно увеличивает… twitter.com/i/web/status/1…

7:23

Компонентные (единица поведения) тесты:

7:33

Забыл добавить:

7:41

Правильный TDD - и не TDD вовсе. pic.twitter.com/7x2OZrNMTt

8:17

В погоне за оптимизациями, важно всё время задаваться вопросом: стоит ли очередной маленький шажок к идеалу усложне… 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…

12:30

Изоляция - предотвращение доступа извне.
Инкапсуляция - привязка данным к функциям их обработки.
Абстракция - незав… twitter.com/i/web/status/1…

13:16

Простая задачка на 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…

16:44

Для реализации с минимумом ветвлений у меня получилось, что надо минимум 11 тестов.
У кого больше? pic.twitter.com/K5Aq4dStMb

16:54

Благодаря сортировке мы избавились от комбинаторного взрыва тесткейсов, так что достаточно проверить первый парамет… twitter.com/i/web/status/1…

18:32

Каждый класс эквивалентности даёт по 2 граничных условия:

-∞
0

δ
a + b - δ

a + b
+∞

Плюс NaN конечно же.

18:35

В классе эквивалентности "треугольник" надо проверить как вариант с true, так и с false. Итого - 11 тестов. pic.twitter.com/X9aa2lYjVf

18:37

Кодер выполняет задачу как поставили. Пробелы в ТЗ - не его проблемы.
Девелопер же выяснит все детали. Или же испол… twitter.com/i/web/status/1…

19:01

Падение теста на явно некорректном коде ничего не говорит о том, проверяет ли он хоть что-то в коде, похожем на корректный.

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:40

JavaScript гуру, способный поправить интерфейс и задеплоить проект.

Верстальщик железобетонных интерфейсов со знан… 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

Фронтендер должен...

...уметь быстро поднять проект в любом окружении. Docker в помощь.

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…

3:20

Чем проще, изолированнее и линейнее тест, тем проще его писать, понимать и переносить. Поэтому у нас нет никаких de… twitter.com/i/web/status/1…

4:45

Почему так странно? Никто же так не делает!
Зато у нас информативные стектрейсы, по которым сразу видно какой тест… twitter.com/i/web/status/1…

4:55

В погоне за "человекопонятностью" очень легко эту человекопонятность лишь потерять.

stackoverflow.com/questions/3261…

Подра… twitter.com/i/web/status/1…

5:22

Чем проще API, тем легче его освоить и сложнее запутаться. Поэтому assertion library у нас верх минимализма.
Поздра… twitter.com/i/web/status/1…

5:41

У нас есть 2 одинаково драматичные функции, лежащие в разных файлах. Как вы думаете, для чего? pic.twitter.com/iBnXgLG503

10:32
@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…

17:48

То же самое можно записать и куда короче.
view.tree - не более чем упрощённый синтаксис для описания классов.… twitter.com/i/web/status/1…

17:52

Single Responsibility Principle - красивая концепция, оторванная от реальности. Приводит ко кратному увеличению чис… twitter.com/i/web/status/1…

18:17

Open Closed Principle - фактически говорит "никогда не делай рефакторинг". Ну да, пусть кодовая база тухнет под гнё… twitter.com/i/web/status/1…

18:28

Liskov Substitution Principle - наивно полагает, что подтип может быть подставлен вместо надтипа где угодно. И это… twitter.com/i/web/status/1…

18:41

Interface Segregation Principle - такая структурная типизация для бедных. Каждой комбинации имя+сигнатура метода да… twitter.com/i/web/status/1…

18:57

Обожаю принципы, которые каждый понимает и реализует по своему. Но у кого ни спросишь - только он знает как оно на… twitter.com/i/web/status/1…

19:01

Dependency 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:56

CDD - 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 появилась документация и сайт
logux.io

Несколько первых пользователей и статья на… twitter.com/i/web/status/1…

19:35

# Четверг 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…

8:12

"The state of soft skills" от @frontendweekend
.
.
.
youtube.com/watch?v=N69EeX…

8:12

"Soft Skills для интровертов" от @dark_mefody и @Neesoglasnaja
.
.
.
youtube.com/watch?v=UE9aGH…

8:13

# Пятница 28 твитов

Don't Repeat Yourself - источник многих звездолётов. Но есть с ним и менее известная проблема - независимые части с… twitter.com/i/web/status/1…

5:21

You Aren't Gonna Need It - известное прикрытие для архитектурных раздолбаев. Ща побырому сделаем, а после нас хоть… twitter.com/i/web/status/1…

5:30

Keep 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:51

Make it in Germany

Все, что надо официально знать про Blue Card со ссылками на источники.
.
.
.
make-it-in-germany.com/en/visa/kinds-…

7:51

Surfin Birds

Блог об иммиграции в Германию от @igor_lkm и его супруги. Дизайн, конечно, идиотский, но контент на 5… twitter.com/i/web/status/1…

7:52

Работу можно искать в разных местах, вот мой список:

xing.com
linkedin.comtwitter.com/i/web/status/1…

7:52

Как правило процесс устройства на работу в Германии состоит из нескольких шагов (мой опыт):

7:52

Созвон с HR

Все стандартно - тех стэк, сильные стороны, языки, инструменты, дурацкие вопросы типа "вы занимаетесь… twitter.com/i/web/status/1…

7:53

Интервью по профилю

Тут все интереснее. Как правило час разговоров на технические темы: рассказать про проекты, ин… twitter.com/i/web/status/1…

7:53

Техническое задание

По результатам тех интервью присылают задачу с условиями вроде

7:54

Разговор с командой

Если прошли тест, могут пригласить в офис, поговорить с будущей командой, обсудить ваше решени… 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:55
Pay 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

bench.hyoo.ru/app/#sample=re…

Как бы быстро н… 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

8:55

Теперь этому классу мы можем добавить стилей.
Класс компонента - это аналог БЭМ-блока.
Имя вложенного компонента -… twitter.com/i/web/status/1…

11:40

Каждый компонент - это обычный класс, а вложенные компоненты лежат в его свойствах. Это позволяет использовать рефл… 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…

13:21

Хотел было воспользоваться для типизации 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…

8:03

Работать с дураками - себе дороже. И дурака ничему не научишь, и сам деграднёшь.
Работайте лишь умными людьми - тог… twitter.com/i/web/status/1…

8:34

Примечательно, что про мою токсичность плачут в основном те, кто разливаются желчью на весь Твиттер, стоит только п… 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:17

Vue:

14:07

Думаю пришла пора выкладывать карты на стол.
Эту неделю с вами был Дмитрий Карловский.
Начинал я лет в 10 с бейсика… twitter.com/i/web/status/1…

14:22

Работал и в стартапах, и на галерах, и в интерпрайзе. Как в больших проектах, состоящих из нескольких команд, так и… 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…

15:32

$mol - разработанный в MAM экосистеме фронтенд фреймворк для RAD разработки WEB приложений.
Он не имеет выделенного… twitter.com/i/web/status/1…

15:40

Куча готовых виджетов уже в комплекте. Можете их просто использовать, как угодно их кастомизировать под себя, или ж… twitter.com/i/web/status/1…

15:46

Из интересного, у нас есть самая шустрая библиотека для рисования графиков $mol_chart:
bench.hyoo.ru/app/#bench=htt…
Прич… twitter.com/i/web/status/1…

15:49

Ещё у нас есть голосовое управление. Попробовать его в деле можно в приложении, через которое я показываю слайды на… 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

16:19

Angular - прожорливый работник интерпрайза
React - шаткое нагромождение библиотек
Vue - мелкий любитель патчить обе… twitter.com/i/web/status/1…

16:25

Разумеется у нас своя система реактивности. Это типа 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…

18:16
@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

www.youtube.com

other