Preact+Signals, к сожалению, совсем не поддерживает реактивные классы
Классовые компоненты да, там с костылями только. Я и команда не пишем новый код на классовых компонентах, а в старом коде можно хелпер создать, который будет подписываться на сигнал и делать forceUpdate. Но это велосипед, поэтому ваша правда.
и завязывается на написание логики внутри компонента - этот подход не адаптировать под ViewModel и MobX.
Я делал ViewModel (правда там нет автоматической реактивности, нужно помечать поля). Реактивность работает за пределами preact, сигналы можно как угодно формировать, не обязательно в компонентах. А если такой сигнал уже подцепится в рендере компонента, то компонент автоматически становится observer компонентом.
т.е. в компонентах создаются сигналы через useSignal, а за пределами (в сторах) уже через signal.
Да, нет магии с makeAutoObservable, но на мой взгляд это только плюс, makeAutoObservable это код с кучей оверхеда.
Другой вопрос, что сигналы это примитивы, поэтому observable.deep там невозможен из коробки (но есть открытые решения).
сильная привязка к Preact
С React тоже отлично работает. А в SolidJS свои сигналы, которые очень похожи на преактовские.
В любом случае, в новых проектах проще SolidJS использовать. Preact+Signals хорош там, где уже есть react/preact приложение, или это проект на большую команду разработчиков, куда проще искать react разработчиков чем solidjs (да, при найме это оказывается важно, хотя обе технологии простые, но люди хотят строчку в резюме "работал с реактом").
Спасибо за статью и за то, что про перф что-то пишите, очень важная тема!
Меня смущает, что Painting так отличается. Если у вас одинаковое число элементов и одинаковые стили, то он должен +- быть равным, и Rendering тоже.
Я погонял локально ваш проект, и у меня всегда при перемещении по Page1 - Page 2 метрика Paiting на всех сборках близка к 5мс, а Rendering 15мс. Различий между фреймворками не заметил.
Плюс хочу добавить, что для меня супер сборка это Preact+Signals. Там перф ререндеров получается такой же, как с SolidJS. Если на них писать без использования useState/Callback/Memo, то можно вообще все приложение без ререндеров сделать (т.к. Preact если в div получает сигнал, то он не вызывает ререндер, а просто меняет атрибут элемента по изменению сигнала, по сути как в solid). Плюс совместимость с библиотеками React есть.
Хм, либо он есть, либо у него слишком частые ресканы. Когда я на компьютере сохраняю заметку, на телефоне она отображается где-то через 5 секунд. Довольно шустро.
Как я понял, имеется ввиду, что после покупки этой консоли, во время работы будешь ее играть (или хотеть играть), что скажется на объеме выполненных задач и бэклог распухнет.
Мне кажется, IvanTheCrazy писал не про вопросы из вашего поста, а про пример от пользователя kirillbelash93 про typeof на строку. Это действительно ужасный вопрос для собеседований.
Вопросы же из вашего поста часто встречаются в практике, лично меня ничего не смутило в них, на все можно +- ответить хоть как-то.
Классная штука, но в теории она может ухудшить метрики производительности TBT и TTI. Интересно было бы замерить в сравнении с base64. При большом числе картинок я бы подумал над тем, чтобы считать и рисовать канву в OffscreenCanvas, или вынес в ворклет на CSS Painting API (но тут в сафари беда).
Еще сравнение с скелетонами не совсем корректное, ведь скелетоны применяются тогда, когда еще нет никаких загружаемых данных, а у вас уже есть текст и этот хешик.
У меня ощущение, что это вы ответ ChatGPT скопировали? Надеюсь не обидно прозвучало :) Просто есть логические нестыковки, которые часто ChatGPT допускает. И все эти навыки будто притянуты за уши.
Вам всё это кажется отдалённым будущим, но я - пишу о реальных применениях прямо сейчас. Нравится, не нравится - это уже есть.
Если ваши джуны писали JSON файлики, SQL запросы для грепа логов, конкретные функции и возможно простые баш скрипты, то да, соглашусь с вами, эту работу легче в GPT отдать. Работу же в проекте так не сделать, т.к. никто джунам не дает задачу "напиши функцию", джунам описывают проблему, а они находят решение. И опять же, джуны не про "делай за меня рутину", они больше про "делай простые задачи и расти до мидла". Возможно вы говорите о стажерах.
Нравится, не нравится - это уже есть.
Такого вопроса не стоит. Если люди не соглашаются с вашим мнением, это не значит, что они не соглашаются с реальностью.
Мой жизненный опыт говорит, что в сеньоры редко попадают через долгое постепенное совершенствование. Чем круче специалист - тем быстрее он выходит на свой уровень.
Мы говорили о сантехниках. Старший сатнехник.
А сеньеры разработчики с меньше чем 4и лет опыта это отдельная тема для дискуссии.
Всё просто: никакой ответ не поможет. Если у человека есть талант, можно ему помогать, но не нужно тянуть. Если нет - можно и тянуть, но не стоит.
Причем тут талант? Вам задали понятный вопрос с описанием проблем, с которыми вы должны были столкнуться, а вы вместо конкретики начали отнекиваться "а никак".
PS: Я не пытаюсь называть ИИ бесполезным, он полезный и сильно повлияет на нашу работу. И выше я говорю о текущем уровне GPT. Но вот такие голословные заявления "а уже джуны нам не нужны" без какой-либо конкретики, к тому же еще с высказываниями "а никак. Нужен талант" вызывают только недоверие.
Помилуйте, какие призывы? Никто Вас ни к чему не призывает.
Я не про конкретный призыв, а ваш посыл.
Поинтересуйтесь, к примеру, что делается у художников-иллюстраторов.
Пока сложно говорить. Люди работают, кто-то использует ИИ для своей работы.
"Уходить в сантехники" - чем меньше нужны джуны, тем острее нужда в синьорах, так что уходить нужно именно туда. Если получается, конечно.
Потребуется очень много времени (от 4х лет), чтобы стать сеньером сантехником. За это время может с ИИ все устаканится, и будет понятно, какую роль в этом будут играть люди. Опять же, если многие потеряют работу, то и спрос на услуги сантехников будет ниже. Невозможно четко прогнозировать.
а никак.
Кстати, часто слышу такой ответ от людей, кто заявляет, что получают приличный профит от ИИ. Либо они не хотят делиться секретами, либо не всю правду говорят.
К чему призывает это предупреждение? Вы так говорите, как будто особо много вариантов будет в таком случае. Если оно правда доберется до мидлов, то большинство интеллектуальных/творческих рабочих мест тоже будут под угрозой. Такое число людей не смогут все вместе уйти в другие специальности, которые к тому же, тоже пострадают из-за наплыва желающих работать.
Единственное, что можно делать, это продолжать работать и следить за тенденцией. Уходить в сантехники с потерей зарплаты это преждевременно. В этой ситуации лучше быть сеньером айтишником, чем джуном сантехником.
А это же подтверждает слова musk_2003, т.к. непонятно, нужно ли будет столько таких специалистов, сколько сейчас программистов. Да и порог входа видится ниже чем для классических программистов.
Как пример, я пробовал ей дать задачу написать функцию, которая нарисует шестерню используя эвольвенту для зубьев, с указанными параметрами - модуль шестерни, количество зубьев, угол давления. Расписывал по разному, на английском языке. Каждый раз получалось что-то абсолютно неправильное, хотя задача нормально решается кодом на 50 строк, но в интернете очень мало готовых решений.
т.е. она понимает, как все параметры шестерни связанны между собой, но кодом представить это не может.
ммм, очень озадачил ваш комментарий, до последнего думал, что вы в конце напишите "это шутка".
Мой опыт мне показал, что ChatGPT допускает очень много ошибок, часто ломает свой же код после своих исправлений, не способен учитывать не базовые оптимизации (не когда нужно написать быстрый алгоритм, а когда оптимизировать работу всего кода). Очень много времени уходит на подсказки боту, что в какой-то момент бросаешь и делаешь сам.
Я не имею никакой предвзятости, и в истории ChatGPT у меня больше сотни больших диалогов. Пока только круто получается писать SQL запросы для грепа логов из всяких Hadoop HUE. Но в прод бы я его выводы не добавлял.
Может у вас задачи простые, не знаю даже. Если все так, как вы говорите, то уже можно заменять половину разработчиков.
Не, это плагины от стороннего автора на гитхабе.
https://github.com/ruslanlap/PowerToysRun-VideoDownloader
Классный обогреватель из моего компа получился :D
Классовые компоненты да, там с костылями только. Я и команда не пишем новый код на классовых компонентах, а в старом коде можно хелпер создать, который будет подписываться на сигнал и делать forceUpdate. Но это велосипед, поэтому ваша правда.
Я делал ViewModel (правда там нет автоматической реактивности, нужно помечать поля). Реактивность работает за пределами preact, сигналы можно как угодно формировать, не обязательно в компонентах. А если такой сигнал уже подцепится в рендере компонента, то компонент автоматически становится observer компонентом.
т.е. в компонентах создаются сигналы через useSignal, а за пределами (в сторах) уже через signal.
Да, нет магии с makeAutoObservable, но на мой взгляд это только плюс, makeAutoObservable это код с кучей оверхеда.
Другой вопрос, что сигналы это примитивы, поэтому
observable.deep
там невозможен из коробки (но есть открытые решения).С React тоже отлично работает. А в SolidJS свои сигналы, которые очень похожи на преактовские.
В любом случае, в новых проектах проще SolidJS использовать. Preact+Signals хорош там, где уже есть react/preact приложение, или это проект на большую команду разработчиков, куда проще искать react разработчиков чем solidjs (да, при найме это оказывается важно, хотя обе технологии простые, но люди хотят строчку в резюме "работал с реактом").
Спасибо за статью и за то, что про перф что-то пишите, очень важная тема!
Меня смущает, что Painting так отличается. Если у вас одинаковое число элементов и одинаковые стили, то он должен +- быть равным, и Rendering тоже.
Я погонял локально ваш проект, и у меня всегда при перемещении по Page1 - Page 2 метрика Paiting на всех сборках близка к 5мс, а Rendering 15мс. Различий между фреймворками не заметил.
Плюс хочу добавить, что для меня супер сборка это Preact+Signals. Там перф ререндеров получается такой же, как с SolidJS. Если на них писать без использования useState/Callback/Memo, то можно вообще все приложение без ререндеров сделать (т.к. Preact если в div получает сигнал, то он не вызывает ререндер, а просто меняет атрибут элемента по изменению сигнала, по сути как в solid). Плюс совместимость с библиотеками React есть.
А это перевод зарубежной статьи https://zenfamily.dental/csLearnDental.php Надо писать туда, иначе никогда не узнаем
Хм, либо он есть, либо у него слишком частые ресканы. Когда я на компьютере сохраняю заметку, на телефоне она отображается где-то через 5 секунд. Довольно шустро.
Как я понял, имеется ввиду, что после покупки этой консоли, во время работы будешь ее играть (или хотеть играть), что скажется на объеме выполненных задач и бэклог распухнет.
2003, последняя версия без Ribbon меню
Мне кажется, IvanTheCrazy писал не про вопросы из вашего поста, а про пример от пользователя kirillbelash93 про typeof на строку. Это действительно ужасный вопрос для собеседований.
Вопросы же из вашего поста часто встречаются в практике, лично меня ничего не смутило в них, на все можно +- ответить хоть как-то.
Нене, ютуб заблокировал блокировщики рекламы, а эти ребята заблокировали блокировку блокировщиков рекламы.
Классная штука, но в теории она может ухудшить метрики производительности TBT и TTI. Интересно было бы замерить в сравнении с base64. При большом числе картинок я бы подумал над тем, чтобы считать и рисовать канву в OffscreenCanvas, или вынес в ворклет на CSS Painting API (но тут в сафари беда).
Еще сравнение с скелетонами не совсем корректное, ведь скелетоны применяются тогда, когда еще нет никаких загружаемых данных, а у вас уже есть текст и этот хешик.
У меня ощущение, что это вы ответ ChatGPT скопировали? Надеюсь не обидно прозвучало :) Просто есть логические нестыковки, которые часто ChatGPT допускает. И все эти навыки будто притянуты за уши.
Безусловно.
Если ваши джуны писали JSON файлики, SQL запросы для грепа логов, конкретные функции и возможно простые баш скрипты, то да, соглашусь с вами, эту работу легче в GPT отдать. Работу же в проекте так не сделать, т.к. никто джунам не дает задачу "напиши функцию", джунам описывают проблему, а они находят решение. И опять же, джуны не про "делай за меня рутину", они больше про "делай простые задачи и расти до мидла". Возможно вы говорите о стажерах.
Такого вопроса не стоит. Если люди не соглашаются с вашим мнением, это не значит, что они не соглашаются с реальностью.
Мы говорили о сантехниках. Старший сатнехник.
А сеньеры разработчики с меньше чем 4и лет опыта это отдельная тема для дискуссии.
Причем тут талант? Вам задали понятный вопрос с описанием проблем, с которыми вы должны были столкнуться, а вы вместо конкретики начали отнекиваться "а никак".
PS: Я не пытаюсь называть ИИ бесполезным, он полезный и сильно повлияет на нашу работу. И выше я говорю о текущем уровне GPT. Но вот такие голословные заявления "а уже джуны нам не нужны" без какой-либо конкретики, к тому же еще с высказываниями "а никак. Нужен талант" вызывают только недоверие.
Я не про конкретный призыв, а ваш посыл.
Пока сложно говорить. Люди работают, кто-то использует ИИ для своей работы.
Потребуется очень много времени (от 4х лет), чтобы стать сеньером сантехником. За это время может с ИИ все устаканится, и будет понятно, какую роль в этом будут играть люди. Опять же, если многие потеряют работу, то и спрос на услуги сантехников будет ниже. Невозможно четко прогнозировать.
Кстати, часто слышу такой ответ от людей, кто заявляет, что получают приличный профит от ИИ. Либо они не хотят делиться секретами, либо не всю правду говорят.
К чему призывает это предупреждение? Вы так говорите, как будто особо много вариантов будет в таком случае. Если оно правда доберется до мидлов, то большинство интеллектуальных/творческих рабочих мест тоже будут под угрозой. Такое число людей не смогут все вместе уйти в другие специальности, которые к тому же, тоже пострадают из-за наплыва желающих работать.
Единственное, что можно делать, это продолжать работать и следить за тенденцией. Уходить в сантехники с потерей зарплаты это преждевременно. В этой ситуации лучше быть сеньером айтишником, чем джуном сантехником.
А это же подтверждает слова musk_2003, т.к. непонятно, нужно ли будет столько таких специалистов, сколько сейчас программистов. Да и порог входа видится ниже чем для классических программистов.
Чтобы не быть голословным: вот один из немногих примеров, которые в принципе запустились. https://codesandbox.io/s/blazing-darkness-mn8dw7?file=/src/index.js И это GPT-4.
В остальных случаях то переменную const пытается переопределить, то несуществующие методы появляются, то рисует просто круг.
Как пример, я пробовал ей дать задачу написать функцию, которая нарисует шестерню используя эвольвенту для зубьев, с указанными параметрами - модуль шестерни, количество зубьев, угол давления. Расписывал по разному, на английском языке. Каждый раз получалось что-то абсолютно неправильное, хотя задача нормально решается кодом на 50 строк, но в интернете очень мало готовых решений.
т.е. она понимает, как все параметры шестерни связанны между собой, но кодом представить это не может.
Про курс доллара не скажу, но конспект вашей статьи он выдумал из контекста подсказок, что вы ему дали. По вашему сообщению есть следующая информация
1) Это блог, значит его пишет какой-то автор а не СМИ.
2) Ссылка на конкретный материал, значит это статья.
3) Материал про судебную систему (см. ваш текст)
4) Упоминается AI и Китай (см. урл).
из этих данных следует весь его написанный текст.
Вот я скопировал урл текущей статьи хабра и попросил его описать мне ее.
и он все выдумал. ChatGPT (GPT 3.5)
ммм, очень озадачил ваш комментарий, до последнего думал, что вы в конце напишите "это шутка".
Мой опыт мне показал, что ChatGPT допускает очень много ошибок, часто ломает свой же код после своих исправлений, не способен учитывать не базовые оптимизации (не когда нужно написать быстрый алгоритм, а когда оптимизировать работу всего кода). Очень много времени уходит на подсказки боту, что в какой-то момент бросаешь и делаешь сам.
Я не имею никакой предвзятости, и в истории ChatGPT у меня больше сотни больших диалогов. Пока только круто получается писать SQL запросы для грепа логов из всяких Hadoop HUE. Но в прод бы я его выводы не добавлял.
Может у вас задачи простые, не знаю даже. Если все так, как вы говорите, то уже можно заменять половину разработчиков.