Пришла беда откуда не ждали
Обычный
#ai
Обычный
ChatGPT
отлично справляется с задачей реверс инжиниринга и переводит сбилженный и минифицированный JS
обратно в исходник (React
в данном примере)#ai
Glama – MCP Hosting Platform
I was curious about how a component was implemented in a minified JavaScript file and used ChatGPT to reverse engineer the component.
This media is not supported in your browser
VIEW IN TELEGRAM
Лидом разработки
Он - одна из причин успеха редактора
Вот
#vscode #designpatterns
VS Code
является швейцарец Erich Gamma
- один из авторов легендарной, вышедшей более 30 лет назад книги Design Patterns: Elements of Reusable Object-Oriented Software
("Gang of four")Он - одна из причин успеха редактора
Вот
Erich
рассказывает, на каком JS
фреймворке написан VS Code
и почему.#vscode #designpatterns
Чтобы сделать работу в SOHO комфортной, полезно иметь Мини ПК как локальный сервер
На нем можно не только крутить
Для сравнения, открываем небольшой
Тот же самый удаленно:
То есть, нагрузка распределяется очень неплохо, и на ноуте с 16Gb памяти можно запускать несколько экземпляров
Я пожадничал и взял Мини ПК на
Итого, качественный сетап фулстека: ноут - $400, мини ПК - $200, хороший большой основной монитор- $250, монитор попроще - $150, всякая периферия. За всё около $1000.
Ну или бэушный макбук можно взять за эти же деньги...
#minipc #vscode
На нем можно не только крутить
Linux
, базу данных, вебсервер, docker
и другие сервисы, но и работать из VS Code
в режиме Remote Development
(по SSH
). Это сильно разгружает основной комп/ноут.Для сравнения, открываем небольшой
Vue 3
проект локально:- RAM: 2000Mb, CPU: 10%-50%
Тот же самый удаленно:
- RAM: 600Mb, CPU: 10%-20%
То есть, нагрузка распределяется очень неплохо, и на ноуте с 16Gb памяти можно запускать несколько экземпляров
VS Code
и работать вполне комфортно (помним про профили).Я пожадничал и взял Мини ПК на
Ryzen 7
, в результате часто слушаю работу вентиляторов. Сейчас бы не задумываясь купил Intel N100
- он бесшумный и мощи хватало бы. 16Gb памяти - оптимальноИтого, качественный сетап фулстека: ноут - $400, мини ПК - $200, хороший большой основной монитор- $250, монитор попроще - $150, всякая периферия. За всё около $1000.
Ну или бэушный макбук можно взять за эти же деньги...
#minipc #vscode
Как выяснилось, за последний год в мире
Вышел в open source
По функционалу с большим отрывом лидирует
Мир устал от жирного, жадного и неповоротливого online-only
#hoppscotch #yaak #bruno #api #tauri #postman
API
клиентов случилась почти что революцияВышел в open source
Yaak
(React
, Tauri
), релизнулся и активно развивается вполне достойный Bruno
(Next.js
, Tauri
) и наконец-то появилась десктопная версия Hoppscotch
(Vue 3
, Tauri
). Hoppscotch
пока в альфа версии, но вполне хорошо работает и решены проблемы с прокси для запросов. Дистрибутив занимает всего 10Мб (у Yaak
120Mb, у Bruno
- 40Mb). На скриншоте, сколько они отъедают памяти в холостом режиме. Ну и просто какой-то бенефис Tauri
.Yaak
и Bruno
полностью оффлайновые, поэтому их UI
работает очень быстро, Hoppscotch
синхронизирует данные в облаке, поэтому есть небольшая задержка, но в целом хорошо.По функционалу с большим отрывом лидирует
Hoppscotch
, за ним - Bruno
Мир устал от жирного, жадного и неповоротливого online-only
Postman
-a. Попробуйте эти клиенты и забудьте Postman
как страшный сон.#hoppscotch #yaak #bruno #api #tauri #postman
Поделитесь ссылками на ресурсы, где можно черпать вдохновение для дизайна сайта
Допустим, есть уже костяк сайта - с хедером, сайдбаром, какими-то элементами. Хочется его одеть во что-нибудь красивое и готовое.
Умеренное, гармоничное, с продуманной цветовой палитрой, типографикой, размерами по золотому сечению и всем остальным. Чтобы было сделано профессионалом, короче.
#webdesign
Допустим, есть уже костяк сайта - с хедером, сайдбаром, какими-то элементами. Хочется его одеть во что-нибудь красивое и готовое.
Умеренное, гармоничное, с продуманной цветовой палитрой, типографикой, размерами по золотому сечению и всем остальным. Чтобы было сделано профессионалом, короче.
awwwards
и подобные ресурсы превратились в сайто-свалку, где что-то приличное уже не найти#webdesign
В
Одна - основная, вторая (не
Также в ней можно экспортировать
#tip
SFC
можно иметь две script
секции Одна - основная, вторая (не
setup
) - например, для экспорта TypeScript
типов:<!-- UserProfileComponent -->
<script lang="ts">
export interface UserProfileProps{
username: string,
// etc...
}
</script>
<script setup lang="ts">
defineProps<UserProfileProps>()
</script>
Также в ней можно экспортировать
provide/inject
ключи.#tip
Вы задумывались, почему c
Ведь
Этот факт обычно используется сторонниками
На самом деле, это продуманное поведение, дающее больший и более гибкий функционал.
Это позволяет, например, получив заголовки не ожидая всего ответа решить - нужен тебе этот ресурс или нет, и за-абортить запрос.
Или определить, какой контент принимать после получения заголовков.
#fetch #axios
fetch
-ем нужно два раза ждать?const response = await fetch(url);
const data = await response.json();
Ведь
JSON.parse()
- синхронныйЭтот факт обычно используется сторонниками
axios
в свою пользу.На самом деле, это продуманное поведение, дающее больший и более гибкий функционал.
fetch()
резолвит свой промис как только получит все заголовки (HTTP headers
), а непосредственно body
ждет уже response.json()
Это позволяет, например, получив заголовки не ожидая всего ответа решить - нужен тебе этот ресурс или нет, и за-абортить запрос.
Или определить, какой контент принимать после получения заголовков.
#fetch #axios
Ликбез от @vuejs_ru и
Ref:
- позволяет удобно и просто перезаписать переменную целиком:
- может быть использован с примитивами (string, number, boolean и т.д.);
- представляет из себя геттер и сеттер в случае с примитивами (без Proxy);
- в случае с объектами просто вызывает
- обязательно имеет контейнер, в котором хранит значение (.value), о котором нельзя забывать.
Reactive:
- работает только с непримитивными значениями (объекты и массивы);
- использует Proxy и глубокую реактивность по умолчанию;
- не может быть просто перезаписан целиком по аналогии с
- удобен для группировки связанных значений в общий объект (чтобы не создавать отдельные независимые переменные для связанного состояния);
- поддерживает ref unwrapping (https://vuejs.org/guide/essentials/reactivity-fundamentals.html#additional-ref-unwrapping-details), а значит в него можно положить другие ref’ы, и они раскроются (не нужно будет писать лишний .value) внутри объекта;
- иногда может быть удобнее в типизации - для него не нужно использовать отдельный тип
В общем случае можно просто использовать
Полезные ссылки:
1. https://vuejs.org/guide/essentials/reactivity-fundamentals.html
2. https://vuejs.org/guide/extras/reactivity-in-depth.html#how-reactivity-works-in-vue
3. https://stackoverflow.com/questions/61452458/ref-vs-reactive-in-vue-3/65262638#65262638
Artyom Tuchkov
ref
и reactive
позволяют создать реактивную переменную, но имеют некоторые отличия:Ref:
- позволяет удобно и просто перезаписать переменную целиком:
example.value = 123
, при этом сохранив реактивность;- может быть использован с примитивами (string, number, boolean и т.д.);
- представляет из себя геттер и сеттер в случае с примитивами (без Proxy);
- в случае с объектами просто вызывает
reactive
и передает обработку ему;- обязательно имеет контейнер, в котором хранит значение (.value), о котором нельзя забывать.
Reactive:
- работает только с непримитивными значениями (объекты и массивы);
- использует Proxy и глубокую реактивность по умолчанию;
- не может быть просто перезаписан целиком по аналогии с
ref
, потому что потеряется реактивность;- удобен для группировки связанных значений в общий объект (чтобы не создавать отдельные независимые переменные для связанного состояния);
- поддерживает ref unwrapping (https://vuejs.org/guide/essentials/reactivity-fundamentals.html#additional-ref-unwrapping-details), а значит в него можно положить другие ref’ы, и они раскроются (не нужно будет писать лишний .value) внутри объекта;
- иногда может быть удобнее в типизации - для него не нужно использовать отдельный тип
MaybeRef<T>
, как в случае с обычным ref
(например, если хочется иметь объект, который может быть как реактивным, так и нет, то типизация и работа с reactive
будет в целом выглядеть удобнее).В общем случае можно просто использовать
ref
, если это кажется проще, но про reactive
тоже полезно помнить, потому что его особенности могут рано или поздно пригодиться.Полезные ссылки:
1. https://vuejs.org/guide/essentials/reactivity-fundamentals.html
2. https://vuejs.org/guide/extras/reactivity-in-depth.html#how-reactivity-works-in-vue
3. https://stackoverflow.com/questions/61452458/ref-vs-reactive-in-vue-3/65262638#65262638
vuejs.org
Vue.js
Vue.js - The Progressive JavaScript Framework