Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
>>1975607 Html/css там выучил. Про Js там слишком мало. Нужно будет вкупе с learn.js учить. Про остальные темы не скажу. Реакт учу по ютубу и документации
>>1975607 Главное что тебе нужно сделать - не сидеть здесь и не слушать советов местных нытиков и инцелов. Нашел себе среду конечно, в которой советов по развитию будешь спрашивать. Не важно где ты будешь получать знания, общий объем знаний, который тебе предстоит получить конечен. А вот получать каждый день дозу дизморали от местных дегенератов тебе точно не нужно, и дегенераты здесь самые настоящие, без какой-то иронии.
>>1976279 >>1975883 Нахер не нужно, т.к. для мат вычислений еще играет фактор удобства. Как сказали выше питон тупо удобнее, лучше поддерживается и имеет в разы больше фич/либ А есть хочешь обмазаться параллельными вычислениями то есть numba
анонсы, хочу с пыхи съехать на ноду 2 года коммерческкой разработки. решил по рофлу закинуть резюмеху на хх и там вот скинули тестовое довольно таки простое: нужно сделать аля микросервис для парсинга doc, docx документов и возвращать ответ в json в виде {"1": "первая страница", "2": "вторая страница"}. вопрос к знатокам: что лучше для этого юзать? пока вижу три стула: голая нода но тут возможны какие то проблемы + много кода, экспресс упростит мне какие то моменты но проблема в том что он давно уже не обновлялся, и Nest.js который имеет все из коробки, модный и молодежный, но оправданно ли его использование в такой мелкой хуйне + тут еще придется подзапарится с тайпскриптом. аноны, реквестирую ваши советы
>>1976621 нет, а стоит с него начинать? я просто думал для начала стоит выбрать инструмент который поможет мне развернуть хост ну и затем уже прокинуть роуты. а там уже буду в контексте реквеста парсить
Хули так сложно бля - https://ru.reactjs.org/docs/lifting-state-up.html Все было легко читаемо кроме этой главы, толи там примеры ебаные, с обосраными цельсиями/фаренгейтами, толи объясняют мудрено.
Есть более внятное объяснение всплытия событий? В теории понимаю что управляются с самых верхних пропсов, но примеров бы пощумать погуманнее чем в официальной доке.
>>1976676 Да я в курсе, прост ошибся в названии, не вслытие, а Подъём состояния, когда дочерние компоненты управляются родительскими компонентами. Суть не в этом. Есть статейки какие-нить по этой теме внятные?
>>1976615 Нахуй тебе с пыхи на ноду съезжать, совсем пизданулся что ли. Она еще медленнее чем пыха. Съезжай на си, плюсы, эликсир. Нода нужна как прост для генерации кэша страниц, например.
>>1976732 бабки + проекты в норм конторах. практика показывает что у бэк нод разрабов зп выше чем у пхп разрабов + требования меньше. алсо учитывай что пыха это в основном малый и средний бизнес из за чего денег толком нет, а все задачи сводятся к крудошлепству. и че значит медленнее ? читал что интерпритатор js работает быстрее чем пыховский.... + есть асинхронность из коробки
>>1976833 Угу, хуярить два колбэка строчными референсами, чтобы мутировать стейт, конечно же лучше, чем передавать колбэк конкретно объявленного скоупа.
Планирую писать индексер файлов для менеджмента пака картиночек&видео на ноде. Какие подводные? Мне пизда, или производительность и ресурсопотребление самого V8 не сильно отличается от традиционных языков, а блоат жрущий гигабайты рам это чисто браузерные рендереры?
Справедливо заметить, что фронт-то всё равно придётся для него делать, но я мечтаю не юзать для этого электрон, а чё-нить нативное, а там хуй знает.
>>1976980 Реакт это буквально одна функция для менеджмента дерева объектов и пара хелперов для неё. Всё остальное добавяешь отдельно и самостоятельно, включая рендер - react-dom, react-native, ink и т.д.
В javascript можно как-нибудь отлавливать то что делает псевдокласс :focus-within? Хочу onblur/onfocus функцию на контейнер пока внутри у него у какого-то элемента есть фокус. Пока что ничего умнее не предумал чем по :focus-within менять цвет и проверять его (пока он подсвечен этим цветом, значит какой-то элемент внутри в фокусе).
Фронтач, а что с этим ебучим реселектом мне надо в сторе хранить мусор, чтобы все работало? А как же принцип, что стор надо держать минимальным? Например, у меня есть список и мне его надо по фильтрам прогнать, вроде реселект как раз подходит, но мне в глобал стор теперь мусорную инфу о фильтрах сохранять приходиться.
Я правильно понял, что все эти вскукареки ректовских 18 летних сеньеров по поводу недопустимости делать style={{...}} и onClick={()=>{...}} это фантазии и шиза? Есть хоть одна статья с бенчмарками и сравнением?
>>1977413 style в jsx - нужен только для управления состояний стиля(тему с белой на черную поменять и т.д) Основной код должен находиться в css - так легче потом рефакторить всю аппу.
Тут речь ен про производительность а про DRY метод который FaceBook советует юзать
Анончик! Можешь за меня порадоваться. Я 2 месяца учил JS, 5 дней как учу React, сегодня дочитал доку. И решил сам сделать своими руками компонент. В итоге вот че получилось, анончик. Сам с нуля написал. И стили и код, (стили срисовывал с двача, юзал пипетку). Под капотом говно код с одним классом на 70 строк . По ходу обучения я понял что надо будет потом отрефакторить на чистые функции и декомпозировать это все. Пока вот так.
Ебал голову как новые посты в состояние записывать, почти весь день убил на это. В итоге нагугулил что в массив можно развертывать старый стейт, и новый стейт, одновременно.
Порадуйся за меня анончик! Я так рад. Впереди столько интересного!
>>1977328 Почитал про bubbling phase и родил: base_item_node.addEventListener("focusout", e => base_item_node.active(false)); base_item_node.addEventListener("focusin", e => base_item_node.active(true));
>>1976245 Бля, как же я проигрываю от того, что ещё три раза такая утечка памяти произошла, при том что не открывал более одной странички, то есть каноничный СПА экспириенс. Просто вся суть реакто-редукса спа говна, даже сраная дока не может удержаться от пожирания памяти.
>>1977724 Сам-то как думашь? С вебпаком ты сможешь не только среакт собирать. Хотя я уже 1000 пакетов в своём реактопроекте поставил из-за ватаги лоадеров/плагинов/пре-/постпроцессоров. Что впрочем в два раза ниже 2к у CRA.
Есть ли разница в плане скорости отправки запросов, если я отправляю их по очереди через await или одновременно внутри Promise.all()? Интуитивно кажется что второй вариант быстрее, но по факту ведь объем информации и скорость интернета одни и те же.
>>1977961 >одновременно внутри Promise.all() this^. У тебя кроме скорости интернета есть еще такая хуйня как установка коннекта, это если не сильно вдаваться в низкоуровневую хуйню. Так вот часто установка коннекта дороже чем передача твоих 5кб жсона
Если я вместо редукса буду использовать useReducer, где стейт - объект примерно такого вида: {state: [huita], addHuitaForm: {linkToHuita: "", descriptionOfHuita: "", huitaForShow: [JSX.Element] }}. И буду контекстом его туда-сюда гонять. В каком-то компоненте нужен state, в каком-то объект формы, в каком-то для рендера huitaForShow. Это норм будет? Сам редюсер будет, например, в App.
>>1978146 > совсем говна въебал? А что не так? У меня формируется элемент для рендера. Часть данных из базы, часть с левого сайта по апи, часть забивается пользователем, потом все собирается в массив и загоняется в стейт, чтобы без обновления страницы ре-рендерить элементы. SSRа нет. Есть идеи получше? >>1978160 Ну вот и посмотрим сразу. Проект - пет, что хочу то и кручу. Меня интересует больше использование единого стейта на все приложение без редукса. Это норм?
>>1978172 Ок, как мне организовать ререндеринг элемента без обновления страницы, кроме как засунуть элемент в стейт? Скажем есть список (корзина) куда динамически нужно добавлять элементы. И при этом это не строчка "говно на лопате", которую можно "просто" отрендерить, а карточка товара. Как тут обойтись без стейта? И почему статья такая древняя.
>>1978178 > И почему статья такая древняя. Потому что первая в гугле по запросу "jsx element in state" >ререндеринг элемента без обновления страницы Подключить реакт, внезапно, и желательно еще прочитать блять документацию от начала до конца, чтобы не воротить хуйни >>1978183 Тот факт, что ты хочешь сделать вот это все выдает в тебе незнание
Ответ на твой вопрос, как всё сделать: подключить Redux в идеале, если ты не хочешь делать с ним, то юзай Context API, оберни весь App в Context.Provider и передай туда глобальный стейт приложения с диспатчером от useDispatch, а когда надо будет что-то поменять, то useContext и диспатчишь какой-нибудь экшн Но как я сказал, лучше редакс, дабы не ебать себе всем этим мозг, разбирайся https://blog.logrocket.com/use-hooks-and-context-not-react-and-redux/#usecontext
>>1978189 >Подключить реакт, внезапно Нихуя себе, правда? Блять точно, ну пиздец, как я мог забыть реакт подключить, точно, сейчас подключу пойду. А каким образом реакт без стейта будет динамически обновлять компонент? Везде написано, что что бы что-то обновить на лету нужно это что-то сделать стейтом, не? >если ты не хочешь делать с ним, то юзай Context API, оберни весь App в Context.Provider и передай туда глобальный стейт приложения с диспатчером от useDispatch, а когда надо будет что-то поменять, то useContext и диспатчишь какой-нибудь экшн То есть сделать в точности до последнего символа кода то, что я и собирался сделать, и то что ты назвал "хуевый код"?
>>1978198 >без стейта будет динамически обновлять компонент? Везде написано, что что бы что-то обновить на лету нужно это что-то сделать стейтом, не? Ну, ты передаеь в компоненты через useContext значение из глобального стейта и обновив глобальный стейт, они тоже обновятся, магия да?
>>1978208 Подожди. Вот есть стейт, в стейте лежит массив каких-то данных, собранных хуй пойми откуда. Через useEffect при изменении этих данных происходит изменение списка элементов (который не является стейтом) blahblah.map, например, который возвращает уже JSX.Element. И в ретурне компонента рендрится список элементов, который не стейт. Так? Ок, пример с корзиной, если я уберу из стейта данные для какого-то товара, то на экране ведь не произойдет изменений, потому что список - не стейт. Произойдут изменения при обновлении страницы, но пока пользователь не нажмет F5 все будет как есть, а если он 2 раза удалит один и тот же айтем (которого уже нет), то скрипт вообще сфейлится.
>>1978213 >то на экране ведь не произойдет изменений, потому что список - не стейт. Произойдут изменения при обновлении страницы Сука, пиздуй читать документацию, а не фантазировать, что как работает.
>useContext >Accepts a context object (the value returned from React.createContext) and returns the current context value for that context. The current context value is determined by the value prop of the nearest <MyContext.Provider> above the calling component in the tree.
>When the nearest <MyContext.Provider> above the component updates, this Hook will trigger a rerender with the latest context value passed to that MyContext provider. Even if an ancestor uses React.memo or shouldComponentUpdate, a rerender will still happen starting at the component itself using useContext.
>>1978226 Ты заебал со своим контекстом блять. Его неделю назад добавили, представь что у тебя его нет нахуй, но есть необходимость изменять дом, и чтобы это мгновенно увидел пользователь.
>>1978234 Блять ну неужели нет никакого третьего пути? Без редукса и контекста? Чем так плохо засовывания JSX элемента в стейт? В той статье нихуя не написано кроме "пук пук это плохо пнтяненько". Я вот только что так сделал и заметил 0 негативных эффектов.
>>1978241 Блять, ну а если серьезно? Всегда все через контекст? А как блять ререндерили когда не было ни контекста, ни редукса. 16 версий же реакт как-то пропердел без этой хуйни.
>>1978244 Он был большинство времени реакта, есть путь как делать без этого всего: пробрасывание пропсов через все компоненты в нужный, так же и методы из послежднего компонента пробрасываешь вверх, но это настолько обосрамс и тонны лишнего кода, что охуеешь. Если у тебя неебаться вложенность (в крупных приложениях чаще всего, а не туду лист, где только 2 компонента List и Task) гугли react props drilling , that is the way
>>1978262 Бля, не, ну это совсем кал. Ну лан, только 2 путя, значит 2 путя. Я теперь буду пихать редукс в каждое приложение, т.к. не хочу ебаться с контекстом, уж лучше бойлерплейт каждый раз писать. Норм?
>>1978267 Я тебе еще раз говорю, ты щас как слепой котенок который мечится туда сюда, пытаясь дойти до миски с молоком, ты сначала глаза открой. Можешь скачать какой-нибудь полный курс по react/redux, где тебе сначала покажут реакт, а потом редакс и вообще почему так, а не иначе Ну и парарллельно читай документацию по реакту и редаксу, там немного В видео-курсах обычно пишут приложуху, вот напишешь параллельно преподу, вникая во все, а потом уже как будет понимание, как надо примерно делать идешь пилить свои корзины и интернет магазины >Я теперь буду пихать редукс в каждое приложение Ну если тебе нужен глобальный стейт доступ в который надо предоставить всем компонентам без ебли, то да, а если у тебя микроприложение, то можно обойтись пропсами или контекстом >уж лучше бойлерплейт каждый раз писать Если ты под бойлерплейтом понимаешь архитектуру проекта, то она примерно одинаковая, но там много подходов по разбиению кода. Имхо самый норм, это отдельную папку под store, а там под каждый раздел стора папочку с actions и reducers, можешь отдельно разбить actions и reducers без компонентов, но мне кажется это дрочево, т.к сразу видишь где какой объект стейта
>>1978278 >Можешь скачать какой-нибудь полный курс по react/redux, где тебе сначала покажут реакт, а потом редакс и вообще почему так, а не иначе >Ну и парарллельно читай документацию по реакту и редаксу, там немного Ты реально думаешь что я всем этим не занимался? В курсах так-то если что JSX в стейт пихают и в хуй не дуют, а в целых двух курсах, которые я смотрел, сказали, что контекст говно говна и нахуй не нужен. Я это как бы не сам придумал блять. А в доках просто огрызки инфы уровня: "как это работает". Ну ладно, я знаю как это работает дальше что? Никаких бест практис там нет, итого я с довольным ебалом совал в стейт JSX пока на сосаче не сказали, что так не делается.
>>1978287 >В курсах так-то если что JSX в стейт пихают и в хуй не дуют, а в целых двух курсах, которые я смотрел, сказали, что контекст говно говна и нахуй не нужен. Что за курсы такие мне даже интересны и где ты их откопал, где такое говорят >А в доках просто огрызки инфы уровня Отчасти соглашусь, для этого существуют статейки на Medium и прочее >Никаких бест практис там нет Опять же, статейки. В доке редакса есть recipes, полезный раздел очень >пока на сосаче не сказали Да это не на сосаче сказали, это само собой разумеется, я тебе кидал даже ссылку на доку, где написано что к чему Я даже никогда не видел в жизни, чтобы в стейт кидали компоненты, это полный нонсенс
>>1978303 >Что за курсы такие мне даже интересны и где ты их откопал, где такое говорят Ну там может не прямо дословно так, но типо всегда какая-то недосказанность присутствует. Типо тебе говорят что такое стейт и как и пользоваться, а потом это все так плавно в другую тему перетекает, и что вроде как никто не говорит "нет", но и да тоже не говорят. Но исходя из общего настроя возникает мысль "а хуле нет?". >для этого существуют статейки на Medium и прочее Эти статейки на медиум это отдельная тема. На 50 нахуй статей, написанных индусом, на высеров 49 написанных только для того чтобы показать десятка два новых местоимений вместо she\he, приходится только одна статья по теме, где реально все нормально показано. > я тебе кидал даже ссылку на доку Ты кидал ссылку на вебаркайв, что как бы говорит о том, что это все не так просто найти. В доках про это не слова, а специально это гуглить - нужно еще додуматься до того, что здесь может быть какая-то проблема.
>>1978312 >Ну там может не прямо дословно так, но типо всегда какая-то недосказанность присутствует Да, а ты что хотел? Поэтому параллельно курсу ты гуглишь каждую тему, читаешь доку и статьи по каждой теме, и задаешь вопросы в чатиках, где тебе подскажут. Самообразование as is >На 50 нахуй статей Хуй знает откуда ты это придумал, всегда все нормально расписано и гуглится за 5 сек >что это все не так просто найти А ты думал будет легко?
>>1978328 >Ряяяя шизойды на фрейзерном станке приехали шкварить швятой жабаскрипт ряяяяя я я себе с первого раза гугл в башку загрузил и писал идеальный код.
Анусы, кто в вебпаке разбирается, вот есть в нём модули, да, к ним лоудеры применяются, потом они все в код бандлятся и отправляются к юзеру исполняться в рантайме. Есть какой лоудер\плагин, чтобы модуль взять и исполнить во время билда, а в бандл, который юзеру отправиться, включить только его уже готовые экспорты?
>>1978562 Нет, я хочу, чтобы, допустим import x from 'x'; import y from 'y'; export default x() + parseint(y) + 3; Превратится в бандле в просто export default 22; Если x() + parseint(y) + 3 = 22. > попробуй гуглом Ну вот ищу execute module at build time, не находится что-то.
>>1978564 > Ну вот ищу execute module at build time, не находится что-то. Ты шо, инвалид? Свой лоадер делай, получай от ебабеля весь АСТ с потрохами и инегрировай. Так сделано, например, в Linaria, которая в build-time евалит выражения в своих стайлд компонентах. Смотри исходники Линарии, а именно extractor пекидж, pre-eval и всякие такие.
>>1978607 Мое говнорешение. Дохера циклов for, но че-то не вижу как это можно легче оптимизировать. break есть и вроде как не выдрачиваю итерации на максимум но все равно не укладываюсь https://pastebin.com/nxUvBtZ9
>>1978610 не ет параша, когда понял что книжки чиать вообще бессмысленно то все сразу стало получаться. Смотри видосы и сделай хотя бы туду лист с редакс + thunk + saga. И оп ты уже мидл
>>1978618 Я уже сделал пару петов на реакте, и читал доку, прошел пару курсов, щас вот на пути изучения роутера, и разных апи как встроеных так и внешних. Думал начать с этой книги углубленное изучение
(Там 20 небольших проектиков на js без фреймворков, весь код в наличии.)
Сейчас открываю проекты, либо стираю scrypt.js и пишу свой код, либо разбираю как сделано автором. Проектов мало, хотелось бы побольше подобной практики. Может кто подскажет где можно побольше такого найти? Самому не получается.
>>1978620 Книги обязательно читать после того как сделал первые шаги и написал свой туду лист. Они помогут устаканить знания и посмотреть на них с другой стороны. Хуже от книги не будет точно, на пикриле вполне ок книга (чем раньше ты освоишь основы функционального программирования, тем лучше - ты по-другому, с понимаем начнешь смотреть и на реакт, и на редакс, отпадут вопросы почему именно так, а не иначе).
А вот видосы как раз хуйня полная, они дают иллюзию что ты обучаешсья чему-то.
>>1978945 >Ну, вообще-то речь про проект пятилетней выдержки на 100к строк кода. Ну тогда очевидно, что каждый пук нужно корректно делать под redux way.
>Нет, нихуя не понятно. Это ты еще не видел что такое непонятно.
>>1978926 иди нахуй фразу "вьюкс это ридакс для вью" вообще надо в рамочку заключить, как экземпляр отборной чуши от человека который не понимает ничего
>>1979004 Суки! Блять, кто вас программировать учит? Хуй поймёшь, что написано, все буквы алфавита - m, c, S, b, B, c, i, b, R, a, A, x. Это какой-то быдлошифт очередной?
>>1979082 На каких ещё собеседованиях? Я фрилансер. За такой стиль, с этими А Б В Г Д, вас надо было сразу расстреливать из реактивных говномётов. Ты понимаешь, что это БЫДЛО-КОД? Тем более, алгоритмов поиска подстроки МОРЕ. Вспомнить тот же Ахо-Корасик, Рабин-Карп, КМП, тысячи их...
1) Вебпак позволяет импортить в коде любые файлы. Как донести это до vscode'а, чтобы в подсказх к импортам они были? 2) Semantic css или utility class'ы? Что на работе в реакте в ДСе чаще хотят видеть и делают?
>>1979117 У слов в английском может быть много значений, в зависимости от контекста. В данном случае тебе просто сказали, что не хватает знаний в реакте. Это не значит что ты совсем ничего не знаешь о реакте. Часто бывает, что ищут эксперта, а находят чувака со средними знаниями. Возможно там претендовало ещё 10 человек и ты просто ничем не выделился на их фоне. Либо работы слабоватые/либо мало опыта/либо мало мотивации.
Охуительно пидорастическая ассамблея придумала въебать тулкит в редукс. Вот раньше натуралы ебаные придумали блять отдельный файл для названий акшенов, отдельный для акшен криэйторов, отдельный для редюсеров. Все красиво импортируется когда надо и куда надо и отлично работает, и главное сразу понятно что кто и откуда. Уууу сука, угнетают блять. Теперь блять все нахуй в одном ебаном слайсе лежит. Мммм, охуенно. Я прочитал блять новую доку нахуй, эссеншиалс первую главу. Я нихуя не понял блять на что я вообще смотрю нахуй. Вот есть слайс. В слайсе reducers: {]. Но это блять акшен криейторс. А редюсер это та хуйня, которая невидимо в тайне от пользователя нахуй экспортируется в стор. Да блять вот такие порядки в анальном царстве. Охуенно. Написано, что логика в акшен креийторе плохо. Хуяк через строчку в туториале суют логику в акшен криейтор. "если чуть чуть, то можно" - пишет нам анальный клоун. Видимо сказывается старая привычка "если на пол шишечки, то не пидорас". А нет, подождите, это же редюсер, тогда можно логику. А нет, подождите, нельзя, это акшен криейтор. А нет, это снова редюсер, опять можно. А нет, подождите, вы натурал? Тогда вам нельзя пользоваться нашим охуительным тулкитом.
>>1979131 Забей, тулкит это просто хуйня для вкатышей, щас модно чтобы было "легко", это главный критерий выбора инструмента.
Тулкит руинит всю суть, которая заложеная в редаксе, а именно разделение экшнов и редьюсеров. Кроме того, внутри используется иммер для обновлений, что позволяет писать мутабельным синтаксисом, только это нахуй не всралось, потому что редакс это фп, к нему как минимум рамда приглается обычно.
Ребята, подскажите пожалуйста как быть. Прочитал я значит про питон, видео посмотрел, задачи для имбецилов порешал. Затем взялся за Джанго, там тоже по верхам прошелся. Само собой с таким набором везде пролетел в плане работы за еду, поэтому решил читать про джаваскрипт. Как думаете, теперь стоит забыть питон с джанго, чтобы не тратить время и заняться только дс? Просто пока я одно пытаюсь запомнить, без практики другое забываю, а тут ещё и хтмл нужно в голове постоянно держать.
>>1979160 Питон притянул к себе всех возможных макак со всех возможных сфер включая сис админов и тестеров, как никак не оринтирующаяся макака будешь сегодня смотреться неинтересным даже на подработках за еду Лучший вариант будет навалить черпаками тайпскрипта, ТС - волшебная палочка сегодня покрывающая 90%+ веб задач. С ТСа даже грейдиться некуда, только расширяться в ci\cd / системы / бд или пробовать такие же яйца в профиль по типу голанжека Как альтернатива - проперженные стандарты яв с сисярпами. Там у тебя хотя бы будет ориентир
>>1979184 А мне больше конструировать системы нравится и работать с TS, нежели возиться в скучных гридах, которые я забываю как используются уже через неделю и ничего не могу даже элементарного написать. мимо
Где можно заказы простенькие взять? У меня мотивации не хватает свои проекты за просто так делать. Я до этого на мотивации работал дохрена на другом языке, меня уже ничего не мотивирует, только бабки, это с учетом того, что я максимум что могу сделать, это скопировать с ютуба, получить опыт и денюжку. Но где мне заказы брать, или как это монитизировать я хз.
Есть шахматное поле, по которому ходит ладья. Надо случайным образом проделать в нём X дыр (т.е. убрать X клеток) так, чтобы поле не потеряло связность, т.е. чтобы ладья в принципе могла добраться из любой оставшейся клетки в любую. Есть идеи, каким более-менее эффективным алгоритмом можно этого добиться? Не делать же X раз поиск пути из каждой клетки в каждую.
>Надо случайным образом проделать в нём X дыр >каким более-менее эффективным алгоритмом можно этого добиться случайным епта
а вообще надо проверять не отгородит ли потенциальная дырка кусок поля, я думаю критерии отгораживания более-менее очевидны дырки не должны быть в ряд или касаться углами без промежутков
Всем привет. Пробую сделать сайт вопросник, типо аск.фм и подобных. Подскажите, нормально ли составил структуру базы данных? Просто вообще не шарю в базах данных, и не могу адекватно оценить норм или хуйня.
>>1979667 Спасибо. А если например при ответе на вопрос, создавать новую запись в answered questions и удалять аналогичную из pending questions.
Зато потом при заходе в профиль человека, вопросы будут подгружаться из таблицы с уже отвеченными вопросами. Так наверное быстрее, потому что чаще всего смотрят уже отвеченные вопросы, а не отвечают на висящие.
Скорее всего оно будет работать и так и так просто вопрос в оптимизации
Error: Objects are not valid as a React child (found: object with keys {CounterReducer}). If you meant to render a collection of children, use an array instead.
И указывает на ReactDOM.render в index.ts. Так стор и должен быть объектом??? ЧЯДНТ, уже вторые сутки сижу не могу понять
Сап двощь, как сделать женерик имплементацию женерик интерфейса? Мне высирает Cannot find name 'T', то есть если вписать какой-то конкретный тип то всё ок. Я понимаю что мне вообще проще от интерфейса тут отказаться и всю сигнаруту интерфейса прямо в функции определить, просто стало интерсно как это сделать, а в гугле нихуя не гуглится, или я пока не понял как это гуглить
>>1979718 >создавать новую запись в answered questions и удалять аналогичную из pending questions Слишком много логики на пустом месте. А если ты потом захочешь лойсы добавить к неотвеченым вопросам, то после ответа придется все эти лойсы обновить, не говоря о том что у лойса будет два поля - pendingQuestionId и answeredQuestionId
>>1979718 Я бы объеденил pending questions и answered questions в одну таблицу, сделал answer_date и answer_text как NULLABLE, это был бы неявный флаг статуса ответа, и селектил бы по answer_date IS NULL/IS NOT NULL
В связи с политикой Twitter в отношении навязывания JavaScript энтузиасты разработали Nitter - свободный фронтенд для Twitter, работающий без навязывания JavaScript, аналитики, трекеров и ресурсов на стороне Google, CloudFlare и прочих сторонних сервисов. Код проекта написан на языке Nim и распространяется под лицензией AGPLv3.
Подскажи анон, на скирне 2 варианта происходящего. Во время инициализцации импорт отрабатывает и подтягивается строка. Однако при написании как в варианте 1, при запуске функции template уже undefined. При этом вариант номер 2 работает. Разве не должен отработавший импорт в области видимости оставаться
Хочу попробовать писать в test driven development стиле. Чем лучше тестировать реакт+редукс приложуху? Jest? Что сейчас самое актуальное? Тайпскрипт, если что.
Не понимаю, чем вы тут занимаетесь? Смотрю вакансии, а там везде фронтенд. Вы чего там сайты делаете что-ли? В какой сфере ещё этот ебаный язык программирования можно использовать?
Объясните пожалуйста, что тут происходит? Это функция-декоратор. Применяется вот так например:
class SomeClass { @NormalizeNumberZero public integerValue: number = 0; }
Теперь, что не присваивай в это поле (строку, булев, число, бесконечность, аллаха...), всегда при обращении к нему или число или ноль. Я не понимаю эту магию.
>>1980709 Что именно непонятно? Я в декораторах особо не шарю, но конструкция 1 развернется +- в конструкцию 2, что эквивалентно конструкции 3. Ты просто определил кастомные геттеры и сеттеры для поля класса, в них и спрятана логика по преобразованию значений.
>>1980725 Предполагаю, чтобы "скрытно" (ключи-Symbol'ы по умолчанию non-enumerable) хранить значение в объекте. Зачем это нужно, правда, не до конца понимаю. Еще смущает необходимость нормализовать значение 2 раза - при чтении и при записи. По идее куда проще было бы хранить значение в замыкании и нормализовать его только при записи.
>>1980732 Как думаешь, если у меня натыкано подобных декораторов, может это влиять на производительность при большом количестве инстансов (50к+) объекта?
>смущает необходимость нормализовать значение 2 раза - при чтении и при записи С бека после десериализации пришло поле не 21 а "21", а в коде есть манипуляция SomeObject.value = value + 1, получится 211. Эти декораторы - лишь попытка нормализовать данные, похоже неудачная.
>>1980229 >When adding new properties to an Object, you should either: Use Vue.set(obj, 'newProp', 123), or Replace that Object with a fresh one. For example, using the object spread syntax
>>1980743 Если ты постоянно читаешь/пишешь в эти объекты, то импакт на перфоманс будет большой (насколько - не могу судить, надо конкретно измерять). >в коде есть манипуляция SomeObject.value = value + 1 Логичнее и быстрее было бы очистить и привести типы всех данных один раз (при получении с бэка), и затем работать с уже подготовленными данными. А в идеале вообще бы падать с ошибкой, если от API приходит говно.
Но дальше просто открывай доку testing library и начинай писать тесты, культуры тестирования в жопоскрипте отродясь не было, гайдов приличных нет, так что будешь все открывать сам.
>>1980931 Протекающие друг в друга тесты без возможности настроить глобальный beforeEach/afterEach для всех файлов, ебанутая и абсолютно ненужная система с изолированием каждого файла в отдельный псевдопроцесс по умолчанию, отвратительные репортеры. Первого уже хватило бы, чтобы это говно тестовым фреймворком называться не могло.
>>1981118 >Ууу, стили в прямо в коде Так наоборот же пиздато, не надо держать открытыми 20 модулей со стилями. Зашел в какой-нибудь CustomButton.jsx, а там и стили сразу, можно на ходу что-нибудь поменять.
>>1981126 а как делать? бем что ли использовать? не сильно разбираюсь, но в телеграмме стайледе проповедуют чуваки с очень обширным опытом работы, хорошим гитхабом
а про то что стайледы говно обычно слышал от чушек с пустым гитхабом
>>1981208 Даже если ты используешь css-in-js либу, то писать стили в том же файле, что и основную логику компонента - это моветон в любом случае. Но так да, лучше scss ничего не изобрели пока что.
>>1981140 Какие блять параллельные тесты, дурачина, ты понимаешь, что у тебя тесты друг в друга протекают нахуй и что ты это никак не решишь, потому что setup/teardown функционал работает только в пределах одного файла, а общего не завезли?
>>1981234 >тесты друг в друга протекают >setup/teardown функционал работает только в пределах одного файла, а общего
Просто хочу разобраться. Разве глобальные beforeAll/afterAll не способствуют нарушению изолированности тестов? Можно пример того, как это в джесте течет? На стак или ишью в гитхабе ссылку можно, не обязательно накидывать код самостоятельно.
И да, жест и так поверх жасмин раннера выполняется. Да и репортеры можно юзать кастомные. Казалось бы, что может пойти не так?
>>1981250 >Разве глобальные beforeAll/afterAll не способствуют нарушению изолированности тестов? Во-первых не beforeAll/afterAll, а beforeEach/afterEach, во-вторых нарушению изолированности тестов способствует как раз невозможность после каждого теста почистить то, чем он мог насрать в глобал скоуп(анмаунтнуть реакт компоненты, почистить storage и т.п). В джесте и аве ты такого сделать не можешь в принципе, их afterEach работает только на уровне отдельного файла и в глобальном конфиге его прописать нельзя, только городить в каждый файл, где он может быть нужен. >И да, жест и так поверх жасмин раннера выполняется. И? >Да и репортеры можно юзать кастомные Они все без исключения кал.
>>1981263 >чтобы у меня была стуктура БЭМ в проекте с помощью вебпака Если ты себе это сам придумал, то это нахуй не нужно. Если у тебя это кто-то требует, то пусть этот умник сам и хуячит эту структуру.
>>1981344 Потому что сначала браузер проходит по скрипту и генерит var, а потом начинает выполнять скрипт. А let и const генерятся только когда до них дойдет строчка.
>>1981344 >>1981354 Честно не понимаю кто задает такие вопросы. Если ты знаешь про переменные - значит ты прочитал про них в доке, а там все понятно написано.
Или ты где-то на улице услышал про них и пришел сюда уточнить? Или влепую копируешь чужой код и разбираешься на ходу? И то и то Бед практикс. Читай доку.
>>1981348 > сначала браузер проходит по скрипту и генерит var > let и const нет до тех пор пока до них не дошел скрипт, а var есть Так это уже компиляция получается?
поясните нахуя нужен жизненный цикл - вилл маунт, дид маунт и прочее. Я же могу и без них писать, типо у мення сразу будет рендер всей аппы. А эти штуки помогают типо оптимизировать рендер что бы он грузился поэтапно, это наверно нужно для больших проектов?
>>1981364 есть действия, которые тебе надо делать в определенный период времени, например при каждом создании компонента надо сделать какой-то апи запрос, он будет в маунте и т.д. в туториале должно быть
Парни, как готовите виртуализованные списки для строк разной высоты? Есть идея делать пререндер подобных строк на сервере и там же считать размеры, а на клиент отправлять готовые значения. Профит в том, что на клиенте мы к минимуму сведем перформанс-киллер вычисления. Подводные камни в том, что на клиенте в таком случае строки не будут адаптивными по ширине, иначе вся выгода сходит на нет.
Аноны подскажите плиз в чего щас лучше вкатываться, в какой язык программирования?сам в этом ноль,хотел бы найти учителя который будет вести,буду ему % от зп платить и в дальнейшим тоже
Ебать анонсы сегодня первый раз позвонила hr, спрашивала про всякую хуету, про друзей круг общения чем занимаюсь как пришел к вэбу, пыталась спросить за бэм, сказал что читал но нахуй не нужно тк нсть сталед компонентс и бутстрап, я обсерился? Еще сказала мол покажет мои высеры не гитхабе тимлиду, че делать если мне повторно позвонят? Я очкую
Посоны, туплю под вечер, с утра сижу за пекой, сложно думать. Помохите.
Задача такая.
есть textarea текст из нее мы отправлем в стейт {value: " " }
нужно поставить условие на setState если текст меньше 20 символов - отправь его в value " ", если текст больше 20 символов отправь его начала из 20 символов в value а остальную часть в bigValue: " "
Так вот как правильно строку попилить что бы она и туда и туда отправлялась? раньше был метод substr но он уже не используется вроде, то ли сплит нужен то ли че то такое, не могу сообразить и найти в гугле, кек
Кто-нибудь пользуется wsl? Yarn 20 пакетов уже полчаса ставит, после каждого шага выполняется linking dependencies на 20к+ хз чего (наверное тоже пакетов). Из-под git bash такой хуйни нет, все взлетает за 30 сек. Это норм блять?
>>1981816 У wsl io тормозное, это одна из причит почему ms запилила wsl2 Можешь еще обычной виртуалкой пользоватья как деды, оно шустрее будет, как ни странно.
>>1981436 Ты всерьёз там свои виртуальные списки пишешь? Бери либы и не еби мозги. Да и вообще точно тебе нужны виртуальные списки в вебе? На десктопах? Нет, ты хорошо подумол?
Рендером в другом окружении ты нихуя не добьёшься, шрифты на каждой машине по-разному рендерятся. А если дело не в шрифтах, то размеры итак легко считаются из стилей и нечего там ебаться. Вёрсткой можешь размеры привести к одному-двум вариантам. Дизайнерам скажи чтобы это говно перерисовали и тогда вообще динамика может уйти. Ну в крайнем случае считай gBCRом, по одному на элемент норм, обмажься рефами и мемоизацией если у тебя реакт.
5 лет кручу виртуальные списки на 256Мб устройствах
Есть 2 абсолютно идентичных конфига вебпака. Они лежат в папках проектов, которые абсолютно идентичны по своей структуре (исключая, офк, компоненты). Так вот. Один файл работает нормально, а второй срет в ебало миллиардом ошибок. Ошибки типа: Type '{ mode: "development"; output: { publicPath: string; }; entry: string; module: { rules: /etcetcetc/ is not assignable to type 'Configuration'. Object literal may only specify known properties, and 'devServer' does not exist in type 'Configuration'. Ну так а хуле бы нет? В этой папке хочу работать, а вот в той, сука, не хочу. Блять, еще раз: проекты создаются методом копипаста нахуй. Просто блять ни единого символа не может быть "не на месте".
почему тут такой трафик безумный по сравнению с другими языками? весь каталог забит JS. это один какой-то анон столько постит или действительно язык такой популярный?
>>1981951 > Очевидно у тебя путь сбивается Неочевидно. Я уже даже руками все переписал. Каждый конфиг файл, та же самая хуйня. Причем по соседству лежит 1 в 1 идентичный конфиг и прекрасно работает. Я хуй знает в чем тут проблема, пиздец, вместо программирования занимаюсь какой-то хуйней. Напоминает времена, когда я год сидел на линуксе и постоянно на ровном месте что-нибудь отваливалось\не работало и т.д. >>1982020 >Еще тс конфиг настрой одинаково и типы установи те же Все настроено, все типы стоят. Даже ради интереса удалял node_modules и заново делал yarn install. Результат предсказуем.
>>1982168 Помогло в конечном итоге вот так сделать в конфиг-файле: import { Configuration as WebpackConfiguration } from "webpack"; import { Configuration as WebpackDevServerConfiguration } from "webpack-dev-server";
Вручную импортировать интерфейсы и собрать один из двух. Ну то есть тупо вебпак ебалом тыкнуть в свой же собственный интерфейс. Почему так? Хуй его знает. Вот серьезно блять, выглядит как колдовство. Какой-то блять рациональной причины я найти не могу. Рядом лежит конфиг который прекрасно работает без этой хуйни. Единственная разница заключается в том, что там где работает, вебпак версии 5.24, а тут новый 5.28. Может сломали что-то? Хуй его знает. Но, что характерно, я вчера пробовал поставить версию 5.24 и это не помогло. Вот и думай блять. Хорошо что мне сейчас особо делать нехуй и я всякой хуйней страдаю. А если бы такой затык на галере случился, меня бы уволили нахуй, или долбоебом считали необучаемым, кек.
Кто-нибудь знает как пофиксить то, что вебпак видит конфиги, когда они просто так валяются в директории проекта, но не видит их, когда они лежат в /config?
>>1982236 окажется, что надо ещё расшарить нпм, препроцессоры и вебпак, разобраться со всякими плагинами к нему, а их штук 20 и у каждого есть своя документация. енжой
>>1981920 Почти все либы говно не удовлетворяют полностью запросам. Проблема начальная в том, чтобы корректно вычислить высоту контейнера/области прокрутки. Очевидно, что использование офскрин рендеринга с вычислением размеров через gBCR - это путь в могилу. Обычно идут на ухищрения и просят указать минимальную высоту строки, а реальную вычисляют уже по мере необходимости, заодно корректируя и высоту области прокрутки (что визуально может выглядеть очень заметно на небольших списках и элементах, чья высота разительно превосходит минимальную).
>>1982253 да поверхносто пройтись типа что это такое, чёза require, path, __dirname, __filename, типа нахуя мне оно нужно если я фронтендер а не бекендер
>>1982251 У меня всеми ts файлами занимается только babel с пресетом тайпскрипта. Без тс лоадера. Мне прямо ему пихать путь до tsconfig? В доках eslint-webpack-plugin я вообще не нашел даже малейшего намека на то, куда ему там путь до конфига пихать. Все выглядит так будто бы проще хуй забить, да в корень вывалить все 25 конфигов.
>>1982252 Тогда будет цирк заместо собесов, так как для работодателя "бэкенд на ноде" вообще ни о чём не говорит. А если говорит, то собеседовыватель будет перемалывать тебе косточки кишочками ноды и релевантного фреймворка. Чистый бэкенд на ноде - анал-карнавал похлеще фронта. Фронт хотя бы замыкается на вебпаке и его экосистеме, даже жикверик в него можно запихнуть, если очень надо. У ноды же фреймворки, как и плагины к ним, живут отдельной, не связанной друг с другом, жизнью.
>>1982262 Это как? Все что в лежит там в tsconfig, в eslintrc просто запихнуть внутрь webpack.config? >>1982263 А оно сразу разберется что там к чему? Можно просто все файлы слить в package.json?
>>1982267 Блять, я в первый раз слышу про то, что в package можно пихать Какие-то конфиги. Посмотрел сейчас у одного знакомого, да, точно блять, у него в package конфиги еслинта и байбеля. Пиздец, а я за каким-то хуем все раскладывал по 10ти отдельным файлам.
>>1982267 >Это как? Все что в лежит там в tsconfig, в eslintrc просто запихнуть внутрь webpack.config? У каждого лоадера есть поле `options` или что-то похожее, у бабелевских пресетов к лоадеру вроде как особый путь, там нужно лоадеровские доки читать, как запихивать в них конфиг. >А оно сразу разберется что там к чему? Можно просто все файлы слить в package.json? Не все, но всякие бабели/линтеры/пост-цсс умеют конфиги из него читать.
>>1982287 Может быть. Вопрос в том, что tsconfig нужен для вебпака. Чтобы указать там esModuleInterop и импортировать плагины по-человечески через import X from "...", а не import X = require("...") или как там по-другому делается.
>>1982289 Какой же пердолинг, чтобы собрать проект, нужно сначала собрать конфигурацию сборщика проектов, а для этого нужно сначала настроить другую конфигурацию другого сборщика других проектов
>>1982290 Ну а хуле сделаешь. Говорю же, мне эта хуйня линукс напоминает, где в системе каждый день какая-нибудь проблема ебанутая всплывает с которой никто нигде не знает что делать. tsconfig в моем случае нужен для того чтобы чекать типы + нормальный импорт модулей. Собирается все через пресет для бабеля. Но проблема в том, что tsconfig вообще какое-то влияние на проект оказывает только из корневой папки. Так-то похуй, но ведь хочется чтобы все конфиги лежали в специальной папке и все было красиво. Как ебалом в него вебпак тыкнуть я хуй знает.
>>1982260 > У ноды же фреймворки, как и плагины к ним, живут отдельной, не связанной друг с другом, жизнью. Ну разные фреймворки все равно никогда совместно не используются. Берется один и весь проект в рамках него одного делается. Ещё можно все разбить на микросервисы и тогда можно без проблем на каждом из них использовать свой какой хош фейерверк
>>1982291 ну так ты сам выбрал путь пердолинга. зачем тебе валидировать типы в конфиге вебпака? зачем его вообще писать на тс и пердолиться с этим потом? пиши конфиг на обычном жс, вебпак в рантайме сам все провалидирует. а код да, пиши на тс, в тс-лоадере указывай путь до того тсконфига, который нужен. >>1982320 да, потом ему нужно будет еще попердолиться и еще и в ide указать путь. это все вместо того, чтобы ПРОСТО положить все в корень (как делают просто все).
>>1982430 >ПРОСТО положить все в корень (как делают просто все). А ну ок, тогда нет смысла ебать себе мозги. >>1982433 Эх, жаль я тс-лоадером не пользуюсь.
>>1982436 а, извини, я немного перепутал твои посты с постами другого чувака.
повторюсь, если ты используешь babel-loader и @babel/preset-typescript, то он чихал на настройки в tsconfig.json, т.к. единственное, что делает @babel/preset-typescript - это просто вырезает типизацию, код он не транспилит никак.
но о каком тогда влиянии на проект ты говоришь? про тайпчекинг в консоли и IDE? в консоли ты можешь задать путь до конфиг-файла через параметр "-p", например "$ yarn tsc -p config/tsconfig.json", а вот как в ide настроить путь - хз, в каждой по-разному. насчет vscode даже не уверен, что это можно сделать.
либо у тебя есть вариант сделать 2 тсконфига - 1 в папке configs (на который ты будешь ссылаться во время сборки) и один в корне (для ide). в том, что лежит в корне нужно будет написать "{ "extends": "./configs/tsconfig" }". но тут есть такой момент, что files, include и exclude надо будет прописать в обоих файлах сразу (т.к. эти параметры не наследуются).
>>1982441 >но о каком тогда влиянии на проект ты говоришь? про тайпчекинг в консоли и IDE? Вебпак не работает с импортами типо import X from "..." без настроек из tsconfig. Да и похуй уже, я что-то из настроек перенес в package, что-то вынес в корень, терпимо получилось.
>>1982510 Нет не работает. Он начинает срать, что ему надо либо поставить флаг esModuleInterop, либо импортировать через const X = require("...") - но как только ты попробуешь это сделать, тебе в ебало прилетит следующая ошибка о том, что на этот раз в модулях неправильный экспорт.
>>1982513 кто именно начинает срать? вебпак или иде? если ты не используешь ts-loader >>>1982436 >Эх, жаль я тс-лоадером не пользуюсь. то вп ну никак не может тебе срать такими ошибками. скорее всего тебе это ide срет.
>>1982537 >то вп ну никак не может тебе срать такими ошибками. скорее всего тебе это ide срет Ну вебпак то он запускает не через бабельлол, а через ts-node
Задача. Файл(txt формат) или строку с hex цифрами преобразовать в бинарную строку или буфер и записать в файл(bin формат).
Пример строки: 759208514a19a35d454520c65751ada7e9dd2616c0ccfae77d706b6d751566e58c81b47a739f41e7 ccaa047c512fcd983a28f35f23fc379a32cdf1de40e626ede755173d884c9f04355d5032b227494d
День сидел-ковырял и в итоге не понял даже куда копать. Было бы плюсом сделать кроссплатформенный вариант. Но мне есть хоть какой-то пример будет очень хорошо. Заранее благодарю
Хорошо: есть несколько полей ввода, в которые уже подсунуты значения через v-model. Хотим изменить значение, например, второго поля из трёх. Как получить введенное значение поля по окончанию ввода?
>>1982611 Ну значит лепишь по watch на каждую model и дергаешь оттуда дебаунснутую функцию, параметром в нее передаешь что-нибудь для определения по какой model было изменение
Sass или postcss? Уже использую Сас, решил добавить для autoprefixer и cssnano добавить в вебпак postcss, а у него оказывается есть и плагины для nested и для переменных, вообще для всего. Нужен ли тогда мне Сас?
>>1982625 >>1982652 слушай, а эти hex-строки, это что вообще? дамп какой-то памяти? просто есть ощущение, что байтики перепутаны местами (в группах по 4 штуки байтики идут в обратном порядке, обрати внимание). как будто в первом случае данные были в big-endian, а во втором - в litte-endian-формате.
>>1982256 В последней реализации виртуального списка на текущем проекте мы высоту элементов задаём заранее. Ну прям метаинформацией хардкодом вместе с данными элемента. Это не сильно удобно в использовании, но зато компонент списка и написан просто и работает быстро (а это намного больше значит, даром что пятая уже попытка его написать), но у нас там рили специфика хардкорной производительности. Ну и элементы обычно типовые и вариаций размеров не так много. Если не так, то gBCR, какие варианты то ещё? Либо статически заранее, либо динамически – вот два стула. Высоту прокрутки и не считаем, просто напихиваем элементы в неё с абсолютным позиционированием.
>>1982654 hex-строки - просто случайно сгенерированные числа. После генерации, файл со строками должен преобразоваться в бинарник для прохожения батарей тестов.
В каком порядке должны эти байты быть понятия не имею - впервые погрузился в это "байтоебство"
>>1982652 У меня есть екзешник который делает такую работу, но только с фиксированным количеством цифр в каждой строке. С бинарником, сделанным этим же екзешником, я и сравниваю свой результат
Вообще нужно чтоб можно было сделать преобразование с заданным кол-вом цифр в строках.
>>1982537 >то вп ну никак не может тебе срать такими ошибками. Ой блять, на, смотри. Стоит вернуть tsconfig в корень все заводится с полпинка. Через терминал отдельный от вс кода все то же самое.
Я хуевый, поясните пожалуйста. Есть нищее апи для моего недвача /posts даёт все треды в json /posts/номер_треда/ даёт все посты в номер_треда треде в json
Я например загрузил все треды, высрал верстку на жсе, и хочу к ним приделать ссылки, чтобы можно было зайти внутрь треда. То есть откуда получать данные я знаю, но как мне сгенерить страничку, или хуй знает, чтобы у меня в адресной строке было примерно как на дваче, типа номер треда, чтобы можно было потом например ссылку на него дать? Алсо, делаю на ванилла JS, и хотелось бы узнать, можно ли на нем подобное высрать, или надо глубже погружаться.
Очевидно у тебя должен быть сервер, который этот запрос обработает и выдаст в ответ html страницу. А на самой странице уже можешь либо прямо на сервере пост рисовать, либо жсом дергать JSON АПИ.
>>1982962 Используй @change Это не совсем задержка, но аргумент для обработки можно передать в функцию как только пользователь переключится с поля ввода, кликнув на любой другой элемент \ пустое место.
Debounce в Vue нет, он реализуется сторонними плагинами и костылями, кому как нравится.
это блять шаблонизатор нахуй ещё сцсс а ещё там надо туда сюда нахуй получается из компонентов надо всё собирать в мейн, потом в бандл чё нахуй, ещё минифицировать и транспилировать а ещё это всё надо собрать и пердолиться в консольке
>>1983115 >>1983118 сам вебпак делает (практически) только одну вещь, разобраться с ним изи. но к вебпаку в комплекте идет здоровая экосистема, там да, придется поебаться.
Короче, я решил, что я все это в рот ебал, и переписал конфиг вебпака с тс на жс. В пизду блять. Каждую 0.0.0.0.1 версию будут разваливаться типы, придумывать какие-то костыли, писать интерфесы для конфига, короче я подумал и решил, что весь этот геморрой идет нахуй. Я хочу программировать, а не пердолиться с конфигами хуй его знает ради чего. Теперь проблема на пике. Линтер видит, что импорты в файле сделаны вот так: const X = require("...") и срет, что в ТС файле так делать нельзя. Но файл теперь не тс, а жс. Эта ошибка никак не влияет на работоспособность, она просто засирает вкладку problems и мешает отслеживать настоящие проблемы. Как можно это хуйню отключить или сделать так, чтобы эта немытая залупа свой грязный нос в мои конфиги не сувала?
>>1983265 Окей, новая проблема. Как мне сделать так, чтобы вебпак компилировал проект в продакшен моде и раскладывал файлы по разным папкам внутри build? То есть вместо того, чтобы все просто выкидывать в build, он например, js файлы клал в build/scripts, css в build/styles и т.д?
>>1983375 >Читай дальше опции к плагинам\лоудерам и самому вебпуку Я вот в упор такого не вижу и нагуглить не могу. Может ткнешь меня носом, а дальше я сам разберусь.
>>1983407 >output.filename Блять, ну так сразу и не скажешь, что поле filename отвечает за папку. У меня сейчас, условно, все css выкидывается в папку build в виде: [name].[hash].css, если я в поле filename для MiniCssExtractPlugin пропишу css/[name].[hash].css, то у меня все начнет складываться в папку /build/css/[name].[hash].css, так что ли? Если что, то так сразу хуй догадаешься, что это так работает, об этом нигде не написано, я думал для папки специальное свойство должно быть.
>>1983460 Если что, то там явно написано, что так можно указать папку выхода, только в разделе про ассеты. В остальных местах свойство filename используют только чтобы генерировать уникальное имя файла при компиляции. Специально читать всю огромную доку вебпака = быть ебанутым. Это инструмент который используется в чисто утилитарных целях, это не какой-то фреймворк, чтобы сидеть и неделями его изучать. Есть вопрос - ищешь что-то конкретное в доке - читаешь.
>>1983468 > чтобы сидеть и неделями его изучать Я уже третью неделю по часу-два в день настраиваю его. Уже настроил тс, бэйбл, ксс, саас, постксс... осталось еслинт наверное ещё и всё. пизедц.
>>1983472 а потом бах и 6 версия выходит, всё заново настраивать ))) >>1983468 Я сам почитал чутка и приуныл, решил видосов глянуть. Самое прикольное, что годной информации не так уж много, особенно по 5 вебпаку. Нет именно тут по некоторым вопросам ну типа pug + 5 webpack я ничего не нашёл
>>1983472 >осталось еслинт наверное ещё и всё. пизедц. Ты забыл минимизацию в продакшн моде. А еще вебпак у тебя не будет принимать картинки по-дефолту. А даже если ты настроишь его так, чтобы он их принимал, то все равно не примет, потому что картинки не ТИПИЗИРОВАНЫ. Чтобы типизировать картинки надо создавать отдельный файл с типами картинок (слава богу там 5 строчек), в котором они типизируются как модули. И куча подобного мелкого говна. Бтв, не повторяй моих ошибок, не пиши конфиг вебпака на тайпскрипте, каждый новый микроапдейт вебпака руинит твой конфиг просто нахуй и приносит увлекательную еблю с отваливающимися типами. Чтобы писать на препроцессоре\ксс с тайпскриптом (а еще лучше на препроцессоре с модульным ксс) тебе придется создавать файлы типов для сасс файлов. Делается это либо руками (заебно), либо модулем typed-scss-module. Ну и чтобы хорошо разбираться во всех этих use: /\.(ts|js)x?$/i советую сразу подучить регулярочки, не откладывать все это надолго. Ах да, простые картинки грузятся так: { test: /\.(jpg|png)$/, type: "asset" } А для svgшек нужен svgo-loader. Ну вроде все, с остальным сам ебись.
>>1983493 >Ты забыл минимизацию в продакшн моде Не знабыл, где надо уже стоит IN_DEV ? лоудер-для-дева : лоудер-для-прода >не будет принимать картинки по-дефолту Я уже поставил type asset'ы >потому что картинки не ТИПИЗИРОВАНЫ Уже создал types.ts с ambient module'ями вроде module '*.sccs' и остальных >не пиши конфиг вебпака на тайпскрипте Я уже >typed-scss-module В пизду, я просто прописал один ambient module и хуй с ними. >А для svgшек нужен svgo-loader Надо ещё вроде react-svg-loader, чтобы превращал svg'шки в компоненты, которые можно использовать как обычные.
>>1983564 Да, тоже проиграл. Кстати, нихуя оно не может перевернуть флаг (не нашёл Уэльса на клавиаутре, такшо las Whales son Brtainos). Ноду вообще пидорасит от флагов, я там нормальную строчку ввёл а отображается она как синтаксически не валидная.
Аноны, паршу с помощью JS адресс, например https://site.ru/order?cat=1&filter=2&page3, как получить цифру из параметра page? Она может быть любой длины, так что .slice("-1") не поможет
>>1983864 Тут как ты мог заметить страница идёт слитно, page3, мне нужно это 3 выдернуть, а может быть и не 3, а 100, и по сути тут получается строка, выдернуть нужно из строки, так что методы URL тоже бесполезны
>>1983866 Какая слитно, наркоман? `page` - поисковой параметр и если ты погуглишь методы URL, то узнаешь, как работать с поисковыми параметрами ссылок, а заодно как сконвертировать ссылку в этот объект. Ну или парси регулярками/методами строк, если любишь пердолиться.
>>1982656 Вспомнилось как впервые столкнулся с необходимостью в виртуальном списке. Выводил список 10000 и он мягко говоря не мог пробздеться, а у друга на маке вообще страница висла при попытке прокрутить. От результата виртуализации я просто охуел. Повезло, что все элементы фиксированной высоты и не пришлось ебаца. В тот день я излечился от преждевременной оптимизации жса.
Подскажите по гитфлоу. Вот я проект с нуля пилить начал, зделол инишиал коммит в мастер, запилил бранч "девелопмент". Проект с нуля, повторяю. Что мне дальше делать, для каждоый микрореализованной фичи пилить бранч "фичаХ", а потом мерджить ее с девелопментом, и когда наберется базовый функционал мерджить все в мастер и пушить? А все мои коммиты тоже запушатся?
>>1984060 Мелкие фичи можешь сразу в develop коммитить. Суть гитфлоу в релизных ветках: когда надо сделать релиз, форкаешь актуальный develop во временную релизную ветку, стабилизируешь её (фиксишь в ней все баги), потом мержишь одновременно в master и в develop, после чего удаляешь
>>1984075 >потом мержишь одновременно в master и в develop Всегда казалось это хуитой в гитфлоу, потому что мерж в мастер обычно делается кнопкой на гитхабе/лабе по аппруву пулл/мердж-реквеста, а прямые пуши в протектед бранчи запрещены.
Всем привет! Я вот хочу сделать типа такой интерфейс. Я учу бекэнд, но тут как я понимаю всё на фронтенде, а из бэка только данные загружаются. Не очень понимаю, с помощью чего такое делается вообще. Ну вот типа надо сделать таблицу, но вот эти полоски сами поверх таблицы как создавать? Просто как-то объединять ячейки в зависимости от полученных данных? Или есть какой-то способ создать какие-то отдельные элементы поверх таблицы, которые будут типа привязаны к ней? Или вообще это не таблица? Есть какие-нибудь идеи, что почитать?
>>1984166 Ну так это же должно типа двигаться вместе с таблицей. И плюс, если так размер указывать, то оно на разных размерах окна будет по-разному стоять, да?
>>1984171 Берется фреймворк для фронта, реакт например. Там уже прописывается логика рендера (как расставить полоски), исходя из данных полученный с сервера.
>>1984173 Ну я читал немного как фреймворки устроены, но они же энивей не создают никаких новых технологий как бы. В смысле, что энивей это как-то на html надо высрать. >>1984176 Да, посмотрел сейчас, типа можно сделать элемент относительно другого элемента. То есть какой-то ячейки например и он будет всегда к ней привязан. Почитаю, спс.
>>1984178 да, фреймворки это обычный html5 там просто удобно организована компонентность и реактивность, ты ровным счётом тоже самое можешь писать на чистом джаваскипте, но при сложном проекте тебе чтобы не запутаться придется сделать свой минифреймворк скорее всего - функции для генерации компонентов и что-нибудь такое
>>1984153 это довольно сложный интерфейс, сделай что-нибудь проще, например одну таблицу таблицу надо кстати делать дивами, советую использовать гриды
насчёт полосочек, судя по всему это отдельный див поверх таблицы, имеет ширину зависящую от числа дней умноженных на известную константу ширины клетки и прикрепленный поверх забронированной клетки
тебе может быть проще просто залить цветом нужные клетки
для фронта vue наверное будет проще реакта, да и чистого джс тоже создашь компонент клетка таблицы и будешь в него передавать пропами дату и бронировано или нет, в зависимости от чего меняется содержание и цвет, а сами эти компоненты гридами в таблицу выстроишь
>>1984215 Спасибо. Ну я думал делать сначала таблицу на каждый месяц, без скролла вбок, да.
>тебе может быть проще просто залить цветом нужные клетки Ну я тоже так думал, но что делать если в один день заезд и выезд? Надо типа разделить клетку на две клетки как-то и чтоб это всё не распидорасилось. Ну и эти полоски должны быть кликабельны. Ну и в перспективе, чтоб их можно было перетаскивать из одного номера в другой и растягивать в ширину.
>>1984244 с такими целями тебе придется фронт неплохо так подучить лол
алсо по минимуму кликабельность и залив части клетки сделать просто, а вот с полосками, их перетаскиванием, закреплением и т.п. придется помучиться, может либа есть такая впрочем
>>1984256 Ну это так, на будущее конечно. Я к тому просто, что если это делать объединением клеток, то уж наверняка не получится перетаскивание и растягивание потом.
>может либа есть такая впрочем Видел в жквери юай есть какая-то штука Draggable. Похоже, но я не особо изучал ещё.
>>1984267 там одного дрэга мало, надо ещё чтобы полосочка умела определять куда ее перенесли и насколько растянули короче может сразу либу для таких таблиц искать лол
>>1984315 Ну я же не какие-то дохуя элементов и эффектов хочу. Я понимаю, что то, что на картинке - это сложно со всеми функциями. Но я хочу хотя бы только такие полоски на таблице сделать. Это же не может быть прям рокет саенс. >>1984306 Ну я думал что-то типа координат будет у ячеек. Типа классы "day-1 room_105" или атрибут data. И типа можно получить из этого данные, где был клик и где произошло отпускание клавиши. Ну наверное всякие драггабл типа так и работают. ЖС же может получать данные о координатах курсора.
>>1984325 все проще, джс может обработать событие что курсор находится над другим элементом, координаты тоже знает
>я хочу хотя бы только такие полоски на таблице сделать это усложняет задачу по сравнению с закрашиванием клеток которое вообще просто сделать, ну ок
короче надо сделать компонент клетка внутри которого находится компонент полоска, в клетку пропами надо передавать ее содержимое и содержимое полоски, если передано содержимое полоски из клетки вырастет полоска, width клетки фиксированный, width полоски зависит от него и количества дней
гугли css grid, css position, z-index и читай туториал по vue, там тебя интересует v-for, лайфцикл в частности mounted, компоненты, может ещё v-if, для загрузки данных fetch апи
>>1983568 Если кому-то интересно, че тут вообще происходит: emoji британского флага состоит из двух символов (code points) юникода - "Regional Indicator Symbol Letter G" и "Regional Indicator Symbol Letter B". Отображение этих двух символов в виде флага - это решение каждой отдельной программы. Firefox на винде, например, у меня этого не делает. Инверсия этих двух символов дает, соответственно, BG и флаг Болгарии. Это, конечно, вопрос разумных настроек по умолчанию, но в общем случае библиотека не может принять правильное решение без контекста.
Кто-нибудь на постоянке юзал webgl в проде? Хочу отходить от заебавшего реакта во что-н свзяанное с графикой, на крайняк обработкой данный на видюхе, сейчас вот пилю простенькие системы частиц на webgl. Может поделитесь своей историей успеха работы с этой технологией.
>>1984549 Ок. Я походу туплю. В общем стоит геттер и сеттер на этом свойстве, которое возвращает другое свойство из прототипа. Если сеттер не использовался, то при обращении возвращает ошибку undefined в консоли.
Uncaught TypeError: Cannot read property 'backgroundColor' of undefined
Как проверить тут на undefined. Конструкции типа backgroundColor === undefined вызывают ошибку, т.к. обращение к несуществующему свойству. Через try/catch только ловить?
>>1984554 >Uncaught TypeError: Cannot read property 'backgroundColor' of undefined это значит не то что backgroundColor неопределен, а то, что неопределен твой sheetCell
и вообще окраску надо делать умловно подключая ксс стили или на худой конец через style а не напрямую в доме
>>1984523 Ну, редкая ниша. В типичном вебе нахуй не надо, остается только в ентерпрайзе. В коже ничего интересного на самом деле. Вебгл очень низкоуровневый, сам его ты вряд-ли будешь даже трогать, через лимбу какую-нибудь склрее.