Skip to content

Instantly share code, notes, and snippets.

View chrisryana's full-sized avatar
🐢
медленно но верно иду к цели

Chris Ryana chrisryana

🐢
медленно но верно иду к цели
  • Kashira, Moscow region
View GitHub Profile
@chrisryana
chrisryana / usefull.js
Last active March 12, 2024 13:38
Полезные функции на чистом js
// Пример зачем нужен throttle https://webdevkin.ru/posts/frontend/kak-ispolzovat-throttle-i-debounce
function throttle(fn, ms) {
let lastTime;
return function throttled() {
let timeSinceLastExecution = Date.now() - lastTime;
if(!lastTime || (timeSinceLastExecution >= ms)) {
fn.apply(this, arguments);
lastTime = Date.now();
}
};
@chrisryana
chrisryana / compose.js
Last active March 20, 2020 15:09
Обёртка для hoc
const compose = (...hocs) => WrappedComponent => hocs.reduce((acc, hoc) => hoc(acc), WrappedComponent)
@chrisryana
chrisryana / useful.md
Last active June 21, 2024 21:24
Список полезных ресурсов ☕️

Полезные ресурсы для Frontend-разработчика

  • Онлайн-конвертер видео в gif
  • Screentogif – сервис для записи экрана в gif со следящим курсором (пример на хабре)
  • Google Earth Studio – имитация аэросъемки, позволяет делать ролики, снятые будто в полете над Землей или даже из космоса
  • Generated Photos – генератор аватарок пользователей
  • SlidesGo – Бесплатные Google Слайды и PowerPoint шаблоны
  • Shields – цветные бэйджики для GitHub
  • Blobmixer – онлайн сервис для создания трехмерных объектов с заголовком. Можно выбирать из 16 объектов с разной формой, цветом и текстурой. Объекты можно настраивать и добавлять им разные эффекты
  • GetMentor – найти ментора по любому направлению и
@chrisryana
chrisryana / shouldComponentUpdate.js
Created March 20, 2020 17:13
React 1 перерисовка компонента в 16мс
// Решение проблемы производительности при событиях скролла, перетаскивания, изменениях размеров окна браузера и пр.
// Этот способ обеспечивает 60fps, т.е. одна перерисовка на 16 мс
constructor(props) {
super(props);
this.lastUpdate = +new Date();
this.updateTimer = null;
}
shouldComponentUpdate(nextProps, nextState) {
@chrisryana
chrisryana / pasteImage.md
Last active May 24, 2024 11:50
Добавление изображений в readme

📝Вставка изображений в Readme.md

В этом кратком руководстве вы узнаете, как создать отдельную ветку в своем репозитории для размещения скриншотов и демонстрационных картинок для использования в файле Readme.md master-ветки.

1. Клонируйте репозиторий

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

2. Создайте новую ветку

Мысли о "потом" и "сразу".

Тратить минуту каждый день лучше, чем тратить целый день каждый месяц

Потом никогда не наступает, его просто не существует. Всегда все нужно делать сразу. Сразу удалять скриншоты с рабочего стола, которые ты только что отправил коллеге в телеграме. Сразу сортировать по папкам нужные закладки в браузере. Это поможет быстро ориентироваться в них, когда накопится много. Сразу удалять ненужные закладки из браузера. Представь, ты открываешь список закладок чтобы открыть нужную страницу. И тут твое внимание привлекает странная иконка со странным названием. Ты открываешь эту закладку и не понимаешь, зачем она тебе нужна какую информацию ты хотел сохранить. А может наоборот это ценная информация, например статья о чистоте кода в Javascript, но ты каждый день используешь эти приемы в работе и вызубрил их наизусть.

@chrisryana
chrisryana / clearSecurityAlerts.md
Last active April 15, 2020 16:17
Если достали security alerts

Как убрать предупреждения о безопасности в репозитории

Предупреждения об угрозе связаны с файлом package-lock.json. Можно просто добавить этот файл в .gitignore или:

1. Склонируйте репозиторий на компьютер

git clone https://github.com/username/repo.git

  • username – логин на гитхабе
  • repo – название репозитория
@chrisryana
chrisryana / selectionWithoutBreaks.js
Last active April 28, 2020 17:32
Полезная функция когда надо скопировать из блочного элемента
// функция убирает переносы строк при копировании из блочных элементов
// пригождалась при попытке копировать из ячейки таблицы библиотеки react-virtualized
// и вставить в инпут поиска
onSelection = () => {
const selectionParams = document.getSelection();
if (selectionParams !== null) {
const selectionText = selectionParams.toString();
const selectionWithoutBrakes = selectionText.replace(/\n/, ' ');
const div = document.createElement('div');
@chrisryana
chrisryana / readlist.md
Last active April 16, 2024 13:57
Интересно почитать
@chrisryana
chrisryana / followlist.md
Last active February 28, 2021 17:10
Те, кого интересно послушать, почитать, посмотреть

Интересно следить 👀