Обновить
50
Степанченко Александр@kellas

Fullstack web developer

Отправить сообщение

Действительно оно из лучших решений! А handy удобный инструмент для организации работы со спрайтами.
На деле представленные подходы можно и нужно комбинировать.
Картинки встречающиеся в приложении только один раз - инлайнить.
Используемые в нескольких местах картинки/иконки - брать из спрайта.
Статичные изображения не требующие модификации(ну типа лого в футере) - вставляем через обычный тег img
Что-то можно и в css через data-uri прописать.

Если по каким-то причинам не удается сменить цвет иконки через fill и store , можно заморочиться с фильтрами на css и подобрать любой цвет через hue-rotate, например

svg { filter: sepia() saturate(1000%) hue-rotate(0deg) }

Ну вот представь что у тебя так вставляется иконка в элемент списка.

В списке рендерится например 20 строк и вот у тебя в итоге в html коде 20 раз одно и то же содержимое SVG файла. Которое может быть достаточно объемным. Растет Dom сильно.

Использование спрайтов и символов решает эту проблему.

P.s. именно лого обычно лучше встраивать через тег img

Для тех кто ищет чем заменить тв: На Авито продают за 2-3к руб уже настроенные приставки на Android , типа mibox только уже со всем софтом для бесплатного просмотра онлайн и торрентов

Не сочтите за рекламу, первое что попалось в поиске https://www.avito.ru/moskva/audio_i_video/28gb_tv_pristavka_zte_s_4k_free_kino_tv_youtube_2148990885?utm_campaign=native&utm_medium=item_page_android&utm_source=soc_sharing

Сам когда-то баловался с домашним медиацентром , прикольно, но времени много нужно на все это. Кто хочет просто включить и чтоб работало, такие приставки на Android лучший вариант.

Если готовы оплачивать подписки на разные сервисы то можно и какой-нибудь Яндекс модуль взять или приставку от Сбера

IndexedDB - не либа и ни сколько не весит. Я привел в пример dexie как удобную обертку для IndexedDB. Есть другие способы работать с ней - https://habr.com/ru/post/569376/ и другие(наверняка более легковесные) обертки - https://github.com/jakearchibald/idb

Я вообще к тому, что все это уже есть давно нативно, еще до редакса было. Я понимаю еще какие-то движения в сторону "лучшей" реактивности, типа rxjs. Но зачем вот это простое хранение в памяти? Ну пишите сразу в localStorage и из него читайте или любой singleton класс можно сделать с геттерами и сеттерами, да хоть в window.DATA создайте объект и все туда пишите и тоже не нужно оборачивать ничего в провайдер контекста )))

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

Открою всем читателям "революционный" нативный стейт менеджер - indexedDB.
- один источник истины для всех вкладок с сайтом
- доступ к хранилищу из web/shared/service worker
- оффлайн режим
- индексация и моментальный поиск
- десятки тысяч записей без тормозов
- язык запросов(а-ля селекторы) почти как у mongo
- реактивность(при определенном подходе)
- вы можете создавать для одного домена много баз(сторов)
- инструмент отладки стора уже встроен в твой браузер(см. Application->Storage->IndexedDB )
- дружит с любыми фреймворками
- иммутабельней сотен троеточий!

Посмотрите сами https://dexie.org/

трямс - и стор готов

const db = new Dexie('MyDatabase');
db.version(1).stores({
	friends: '++id, name, age, avatar',
  keyval: 'key,value'
});

подписываемся на обновления коллеции

import { useLiveQuery } from "dexie-react-hooks";
import { db } from "./db";
  export function FriendList () {
    
    const friends = useLiveQuery(() => db.friends.where("age").between(18, 65).toArray(););
    
    return <>
        {friends?.map(friend =><div key={friend.id}>{friend.name}, {friend.age}<
       </div>)}
    </>;
  }


Ну и "экшон" если говорить понятиями редакса. add / put / bulkPut

await db.friends.add({
		name: 'Camilla',
		age: 25,
		avatar: await getBlob('camilla.png')
});
// ну или 
DB.friends.bulkPut( await (await fetch('/api/friends/')).json() )
Пример простого key value

const db = new Dexie(config.db.name)
db.version(config.db.version).stores({
  keyval   : 'key, value',
})

DB.keyval.put({ key:'currentChainId', value: ethApp.chainId })

где-то в воркере обновляем баланс при изменении id текущего пользователя

liveQuery(() => DB.keyval.get('currentAccount')).subscribe({
  next: () => {
    updateUserBalances()
  }
})

Ну на хабре формалистов нет - https://habr.com/ru/post/340052
тут все знают что нужно заказчику без всяких там тз и фидбеков )

С outline сервером можно использовать другие клиенты к shadowsocks - https://gist.github.com/eesheesh/e2da0e61a85e50ebf23651eb1921517f я так на androidtv подключался

Через docker как-то попроще запускать - https://github.com/dmirubtsov/ss-xray-docker/blob/master/example/docker-compose.yml

https://getoutline.org/ru/ - тоже shadowsocks, только другие порты использует в отличии от решения из статьи, не нужен домен, еще проще установка, еще проще с клиентскими приложениями. Есть так же публичные бесплатные сервера.

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

Попробуйте сделать предзаказы уже сейчас на новогодний бумажный выпуск.

К большому сожалению я не мог тогда в свои 12-20 лет покупать ваши журналы, да и не было их на прилавках моего города, надо было ещё где-то найти.

И сейчас очень хочется это вот как-то компенсировать )))

Ежегодный выпуск может быть классным подарком кому-то на НГ и стоить может прям сильно дороже.

Я раньше так же думал, наверно как раз в вашем возрасте )

Да it не для всех, но и такси не для всех, что не мешает успешно таксовать доброй части населения. Многие работают - потому что надо, переступая через себя и нормально работают, просто моральные силы черпают где-то за пределами работы которая им не нравится. У многих вайтишников выбор примерно такой:

  • Работать на нелюбимой работе с жёстким графиком и низкой зп , без перспектив

  • Работать на нелюбимой работе со свободным графиком и высокой ЗП с перспективой роста и востребованности зарубежем

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

Даже среди программистов , геймдеву, девопсу и верстальщику нужны разные личные качества. От сайтодела для успеха требуется вообще другое отношение к разработке чем от писателя нейросетей.

It проникло во все сферы жизни, спектр очень большой, люди нужны самые разные и усидчивые и откровенные раздолбаи , чтобы чик-чик и в прод зеолпиксель на тильде с заявкой в Битрикс24 и синхронизацией с 1с + Вацап бота и все до завтра )

Учитывая все это разнообразие, направлений, профессий, с уверенностью можно только сказать что it не подходит людям которые не мыслят своей жизни без ежедневного физического труда на свежем воздухе )

Можно так же планку до бесконечности задирать или хотя бы до своего уровня и гнобить новичков )

Нет в нашей сфере объективных метрик профессионализма человека, потому и столько сложностей у обоих сторон на собеседованиях. Остаётся сравнивать с другими лучше/хуже. Никакие дипломы, сертификаты не помогают.

Какую ты хочешь получить метрику, причем сразу о группе людей, а не об одном отдельно взятом специалисте?

Нормальная метрика - работают специалисты и похуже, то есть их не увольняют, то есть их присутствие в штате как-то видимо оправдано по мнению их работодателя. Их взяли на работу, они прошли испытательный срок и продолжают работать.

Я уже давно не преподаю, просто вот тебе как разработчик, которого иногда тоже зовут проводить интервью говорю, - нормальные ребята.

А других метрик, кроме вот такого просто мнения технических специалистов с большим опытом у бизнеса и нет )

Там очная форма. Получается студенты обучаются и практикуются больше 500 часов.

Посчитайте сами. 3 с хвостиком месяца, каждый будний день, минимум 8 часов.

Лично всему этому учил людей. Да, за 500 часов реально выучить все эти основы. ИБ разве что совсем поверхностно, на уровне - "не храните пароли в бд в открытом виде" ну и основные схемы авторизации пользователей и разграничения доступа.

Норм джуны получаются, на работе и похуже кадры попадались.

Я бы не стал доверять психологу у которого заказчик не я, а компания. То есть он решает в первую очередь проблемы компании / коллектива, путем влияния на мою психику. Каким-то зомбированием сотрудников попахивает )

Как вариант, если очень хочется, оплачивать сотрудникам расходы на психолога которого они сами себе найдут. Но думаю это не выгодно владельцам, потому что этот какой-то "левый" непонятно какой психолог, с высокой вероятностью предложит it-специалисту сменить работу при первых жалобах на неё.

Знакомые ситуации, интересные решения, спасибо большое за классный материал!

Вот тоже не понимаю этой какой-то привычки чисто экономить место на диске )

Тут важно понимать что дубликат_кода !== дубликат_функционала

И во многих частях проекта может быть дублирующийся одинаковый код служащий разным целям и выносить его в отдельный хелпер - усложнять себе рефакторинг в будущем из-за высокой связности.

Сколько таких Легаси проектов повидал, где почти каждый компонент зависит от пачки из ./Utils/ которые в свою очередь юзают ./Helpers , а тебе надо этот функционал плавно на новый фреймворк перетащить, частями, без переписывания с нуля, и никак не получается вытащить из проекта самодостаточный модуль не потянув за собой все зависимости

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

Так же и в коде для русскоязычных проектов, на уровня языка разделяются контент и управляющие конструкции / комментарии.

В использовании пары языков много плюсов

Если ты знаешь несколько языков, зачем ограничиваться одним

Немного автоматизации для этого всего:
- Сгенерировать набор иконок и файлы манифестов - https://realfavicongenerator.net/
- Скрипт для nodejs - https://www.npmjs.com/package/favicons
- Плагин к webpack - https://www.npmjs.com/package/favicons-webpack-plugin

К 2025 году искусственный интеллект заменит 85 миллионов рабочих мест, в том числе — творческих. Нейронные сети уже умеют рисовать картины, писать сценарии и создавать музыку, а их произведения продают на аукционах за огромные деньги.

Эти и подобные предсказания ошибочны. У каждой технологии есть свой предел/потолок. Кто-то просто предполагает что темпы повышения качества сохранятся или ускоряться, но так не происходит. Так же мыслили раньше с космосом - раз за 10 лет собрались и на луну слетали - значит через 30 уже во всю будем жить на марсе! До этого были чудесные предсказания развития механики, передвижные дома на рельсах, подвесные города на дирижаблях итп.
Увеличивать базу нейросетей и говорить о скорой замене человека, это то же самое что добираться до луны карабкаясь по дереву - можно рапортовать о прогрессе до самого конца дерева )

Интересно как в it-сфере обеспечение своей безопасности переносится на пользователей(компании). Как будто условный wannacrypt обстоятельство непреодолимой силы или какой-то природный катаклизм.

То есть вот как у нас с защитой автомобилей от поджёгов? - спойлер: все очень плохо! А что на счет защищенности супермаркетов от краж? Людей от убийств?

Вот только в других сферах полиция работает и пытается привлечь злоумышленников к ответственности, а не "плачет" о ненадежных замках и припаркованных не в том районе авто, раздавая листовки о безопасном перемещении по городу заполненному преступниками.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Фронтенд разработчик, Фулстек разработчик
Ведущий
Проектирование архитектуры приложений
Решение проблем
Разработка решений по интеграции
Проектирование информационных систем
Системная интеграция
Анализ требований
Системный анализ