Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
>>2248518 Факт. Все другие языки существуют только для того, чтобы быть скомпилированными в JavaScript и запущенными в браузере. Но зачем писать на чем-то другом, когда можно сразу писать на JavaScript?
Так пацаны, думаю апгрейднуть комп (собрать новый). Что может заставить вебшторм работать максимально быстро? Вот у меня например запущен бек локально на дотнете, запущен сборщик, открыт большой проект, при приминении изменений у меня с момента начала пересборки и до отображения в браузере проходит 10-15 секунд. Если я куплю себе все эти новомодные процы с 10 ядрами, какой-нибудь -i9-10900kf, будет у меня 64+гб оперативки быстрой, и например ссд через M.2 разъем какой-нибудь, у меня это все говно может начать заметно быстрее работать? Или я в итоге просто получу себе мощный комп для игорей, но работать в работе он будет так же? Что вообще максимально бустит работу в IDE с каким-нибудь тайпскриптом в большом проекте?
>>2248708 Мало смех У меня очень древний проц, так что это очень даже новомодно для меня ты че ахуел, проц 40к стоит, что тогда там новомодным считается сейчас?
Ни то, ни другое не работает. Одновременно тоже. Визуально и в dom текст заменяется, но при нажатии кнопки отправки текст отправляется старый. В чем причина и как фиксить?
>>2248714 Да я рофлю просто над фактом, что ты назвал проц 2-летней давности новомодным, еще бы свежим назвал. А так-то у меня у самого i7 8-го поколения, он уже пожилой считай.
>>2248723 Забыл эту строку вставить, она у меня была. Тоже не работает. Не удивительно - у textarea же нет атрибута value. Вот с <input type="text"> такое работает.
>>2248725 Так это, вроде, очевидно из того, что я написал. Хочу, чтобы текст в textarea:focus заменялся не только визуально. Он заменяется визуально, я жду кнопку "отправить" и отправляется старый текст. А надо, чтобы отправлялся новый.
>>2248741 У меня там переменная стояла и я когда заменял ее, то забыл кавычки проставить.
>>2248735 >>2248739 Там проект очень большой и много говна крутится. У меня обычно довольно быстро все обновляется, сейчас i7, 16гб оперативки и ssd самсунговский, какие там цифры у всего этого я не ебу, в целом работает-то все нормально, но хочется чтобы это всё летало, вот открыл проект, указал типы, тебе идеешка сразу же дает подсказки без задержек, сохранил код, и оно максимально быстро в браузере отразилось за секунду. Но я не знаю реально ли такое вообще, даже если я максимально быструю пеку соберу
>>2248744 Вот так это выглядит. Но если вручную дописать что-то, то уже работает нормально. Хотя хуй знает, тут, на сосаче, тоже textarea, но отправка постов уже нормально работает... Может, дело в каких-то атрибутах?
>>2248794 Стандарт - в первую очередь художественное произведение без имплементации. Так что давай показывай как там в условном V8 реализована поддержка `HTMLTextAreaElement.value`.
Всё ещё ищу идеи для проекта который пиздато бы смотрелся на гите. Есть идеи? Тут вообще подумал, что можно было бы с парой анонов скооперироваться и сделать говняк вместе
Решаю 6kyu на кодворсе. Дальше вообще чот никак. Только пару 5kyu осилил, но они, видимо, не считаются, так как слишком изи по сравнению с остальными. Какой kyu надо решать, чтоб с уверенностью пиздовать на джуна? Ну понятно, что по одним задачкам судить глупо, но вообще в среднем хоть на что ориентироваться?
>>2248838 У меня тоже кризис, но я решил найти тестовое задание в открытом доступе, которое понравится и выполнить его, ну естественно с хорошей версткой и всяким таким.
>>2248857 >Какой kyu надо решать, чтоб с уверенностью пиздовать на джуна? Никакой. Тебе надо знать технологии, либы/фреймворки и уметь их применять в разработке. В реальности кейс, когда тебе надо оптимизировать алгоритм один на тысячу.
Анончики, давно написал гавнину https://github.com/webPrsnr/js-markdown-notes, что-то по типу ту-ду листа, только с поддержкой md разметки. Решил по-тихоньку переписать эту говно. Вышло менее говняно, сугубо мое личное мнение. Однако нашел баг, над которым вот уже где-то часик ебусь. Дело в том, что в качестве бд выступает localStorage. Есть один метод rmvNoteFromLocalStorageNotes(id) удаления заметки по айдишнику (с помощью .filter() прохожусь по всему массиву и возвращаю массив без id). Вот создаю я значит заметки (каждая заметка имеет свой айдишник) и при попытке удалить первый элемент (с айдишником 1) удаляются все заметки (если же удаляю какой-нибудь другой элемент то все норм). В чем может быть проблема? Ну и в целом можете весь код обосрать, хочется ревью моего кода услышать
>>2248898 Код хуйня, непонятные классы с названиями, в целом хуево читается. База данных должна быть абстрактным классом с конкретными имплементациями, одной из которых будет локалсторадж бд. Это каксамое очевидное улучшение, в остальном оценивать нечего, всё слишком хуево.
>>2248898 1) не чейни тернарники, не оценят и рефакторить такое в будущем сложнее 2) нет смысла делать в конструкторе Id+1, лучше на фронте это сделать при мапинге Поставь логеры в метод ремува и на стор и посмотри что происходит
Пока что это не код, анон, а просто набор не пойми чего.
Почитай про принципы S.O.L.I.D. в Википедии, поможет переработать. Пока самое очевидное решение - сосноль.лог везде где выполняется код и смотри где у тебя расхождение.
А так можешь уже смело идти на реакт-сеньор позицию, 1.5К долларов, они примерно такое пишут, я устал пометки о профнепригодности ставить.
>>2248941 >1 Магические константы без комментарием, которые почему-то инициируются в теле компонента через let вместо const >2 ассеты и тесты в перемешку с исходным кодом >Компоненты не типизированы Надо типизировать через React.FC >Именования CSS классов не по методологиям Ты либо закатывайся в БЭМ, либо юзай css модули/jss/ scoped стили >3 Тут вообще пиздец Один компонент экспортируется имиенованным экспортом, второй дефолтным. Постоянно повторяется имя компонента в пути, потому что ты не называешь файл экспорта компонента как index.ts >4 Проиграл с этой хуйни. Нахуя тут в JSON преобразовывать? Не настроен единый конфиг для формтирования. В итоге у тебя в одном файле отсупы табом, в соседнем - пробелом. >export function $(query: string): HTMLElement | null { >return document.querySelector(query); Пиздец. Вот тебе реально настолько сложно пару символов написать, что ты готов проебать хоть какую-то типизацию на этом методе?
>>2248951 > Проиграл с этой хуйни. Нахуя тут в JSON преобразовывать? Как правильно сравнивать два объекта? Тупа перебирать все ключи и сравнивать рекурсивно?
>>2248951 Большое спасибо! >2 Ассеты и тесты так cra пихает, нужно в отдельные директории? >4 Это на случай если элементы массива объекты, читал что можно так сравнить. Не очень понял про проебать типизацию
>>2248975 По существу - у тебя вообще не должно появляться потребности сравнивать объекты, тем более в глубину. Если у тебя такая потребность возникла - у тебя ошибка в проектировании.
По факту, если тебе вдруг действительно очень хочется посравнивать объекты - то только рекурсивный дип обход. Но ты ахуеешь предусматривать все нюансы - что будешь делать с неперечисляемыми свойствами? Должны ли учитываться прототипы при сравнении? И тысяча тыясча подобны нюансов.
Короче говоря, ты обосрался еще раньше того, как тебе понадобилось сравнивать объекты.
>>2248927 В принципе может и нормально кнопки дивами размечать, но не так, как у тебя. И визуала не хватает минимального, т.е. более плавные анимации и какой-нибудь спиннер прикрути, чтобы было понятно, что нажатие случилось и надо просто ждать.
>>2249027 Вроде понял, потому что она записывается в свойство constructor прототипа только что созданного объекта, и поэтому функция gimeX есть, но недоступна.
Подскажите пожалуйста, как продолжить работу с текущими изменениями, если твой последний коммит еще не смерджили? Создавать ветку из своей текущей ветки?
Памахите,уже не знаю че еще сдлеать,чтобы эта сволочь заработала как надо Нужен набор ячеек с помощью кнопок запилить все в один блок по порядку я и так могу Либо сделать один пустой блок под цифры,куда записывать цифры посредством создания элемента ,назначению ему цифры и высстроить в ряд с помощью appendChildб а разделителем будет допустим созданный p?
>>2248962 >create-react-app Мнение не учитывается. >>2248967 >Как правильно сравнивать два объекта? obj1 === obj2 >>2248968 >Ассеты и тесты так cra пихает, нужно в отдельные директории? Да. И cra не используй. >Это на случай если элементы массива объекты, читал что можно так сравнить. А не надо писать код, где тебе надо сравнивать объекты по их внутренностям. Присваивай каждому объекту UUID или его аналог и сравнивай непосредственно их между собой. >Не очень понял про проебать типизацию Посмотри, какой тип возвращает querySelectorAll и сравни с вовзращаемым значением функции $.
>>2249235 npm fund введи и увидишь, кому нужны деньги, сможешь отправить пожертвование. Пакеты разрабатывают не всегда крупные конторы с огромным финансированием, иногда это кто-то один разрабатывает и на поддержку надо деняк. А то протухнет пакет и будешь руками сидеть какой-нибудь is-odd писать.
test = [[один массив с символами], [другой массив с символами],]
Как лучше всего провести поиск по test и найти совпадение по нужному символу?
Пробовал через IndexOf, но он не ищет через "массив массивов". А мне хочется всю эту толпу однообразных с небольшим различием массивов в один запихнуть, удобства ради.
>>2249472 >>2249458 >>2249430 всё пацаны я разобрался, это пример ебанутый на mdn был, там ваще было: /w+a+\b/. Но чтобы получить такой же результат, достаточно было просто /w+a/
>>2249481 кстати интересно если ли сейчас что-то такое, я в 2 частях был и подобной хуйни не было. только байки о том, что какие-то там челы в другой призыв ебались по обоюдке
Я сделал этот импорт с помощью вебпака. Чтоб вебпак вставил содержимое двух файлов в главный.
В результате после вебпака я вижу в результирующем файле такую штуку как: const MyBadSingleton_0 = (MyBadSingleton); Показано внизу приложенного скрина, красным выделил.
Объясните, плес, что дают эти скобки круглые (MyBadSingleton)? Мне кажется или они нихуя не дают?
Я попробовал сделать так консоль лог: const MyBadSingleton_0 = (MyBadSingleton); console.log(MyBadSingleton_0); И потом попробовал сделать так, то есть без скобок: const MyBadSingleton_0 = MyBadSingleton; console.log(MyBadSingleton_0);
И результат консоль лога никак не изменился. Тогда зачем круглые скобки?
>>2249661 >Ему поебать что там у тебя. Он оборачивает выражение в скобки по шаблону. Спасибо огромное, а то я просто понять не мог, это что-то значит или нет, эти скобки.
>Когда перестанешь страдать хуйней с транспайлерами и начнешь писать ванильный жс код? Я пытался в браузере посмотреть этот код с импортами. И браузер не дал этого сделать. Сказал, что CORS policy запрещает вам импортировать хуй знает что.
>>2249633 Где-то в сентябре начала, посмотрел курс от Минина, но только до момента, когда он начинает объяснять Redux, попробовал себя в написании хоть чего-то, сделал какое-то подобие мессенджера на Web-сокетах, и не дописал парочку интерфейсов для некоторых API, потом посмотрел еще несколько часовых роликов для начинающих и сделал то, что показал вам, дня за три сделал. Ну и справку я еще всю прочитал, но она совсем небольшая же... Занимался я периодически, но не каждый день, иногда и не каждую неделю, и мне кажется, что я совершенно ничего еще не знаю, не уверен, что про меня можно сказать, что я что-то учил
>>2248824 >Если тебе это не интересно, вкатываться смысла нет. 90% и среди вкатунов, и среди работающих в айти занимаются этим ради бабок. Если тебе повезло быть тем, кому интересно этим заниматься, то молодец, возьми с полки пирожок. А вот со своей демотивацией иди нахуй
>>2249700 Откуда мне знать. Я вообще хуже всех. У меня гитхаб с 2016 года зарегистрирован. А я до сих пор не вкатился. А мои старые одногруппы с технической шараги уже в 2015 году работали разработчиками. Так что я хуже всех.
>>2249702 А ты пробовал искать работку? Меня вот психолог убедила зарегистрироваться на hh и меня даже позвали на предварительное собеседование с HR, а потом дали задание сверстать табличку на React, а это как раз была первая неделя, как я с ним познакомился, естественно все получилось так плохо, что меня не взяли, но в душе появилась надежда, что я еще смогу
Не знал где спросить, спрошу здесь.. Давным давно вкатывался в JS, но перед этим учил HTML и CSS. Но все это было галопом по европам, короче говоря, суть я помню, но деталей нихуя, к примеру, верстать прям как профи я так и не научился. Потом какой-то черт меня понес в ДЖАВУ ЕБАНУЮ и я словил дичайший депрессняк с нее (в основном из-за ебаного спринга ебать его в жопу) и с моих попыток вката в айти (наверное попытка вката в джаву была ошибкой). В общем, пытаюсь начать сначала, но в этот раз двинуть в сторону ноды и тайпскрипта/реакта. Но в этот раз осознанно и не галопом. 1) Короче говоря, есть ли смысл такого действа? 2) И второй вопрос. Есть ли смысл покупать тренажеры HTML академи? я вроде слышал что в JS нужно быть прежде всего сильным версталой, прежде чем двигать дальше. Ну и когда-то смотрел их курсы по верстке, мне вроде зашло.
(алсо, от себя хочу добавить, все таки частичка позитива во мне осталась, ибо после попыток разобраться в этом говно-спринге ебаном, есть надежда что нода с каким-нибудь фреймворком зайдет проще).
>>2249708 Кто-то перегорает, кто-то нет. Глупо полагать, что каждому человеку нравится его работа. И если в то, что относительно многим нравится аутировать в какие-то свои пет-проекты, я еще готов поверить, то рабочий процесс и само по себе обучение явно большинству в тягость.
>>2249716 Тренажёры академии можно бесплатно на Новогоднем челендже с 1 по хуй знает какое, наверное, по 9 января проходить. А ещё там можно попытаться выиграть базовый интенсив по хтмл, цсс.
В прошлый раз в Новогодней битве приз был профессия фроненд-разработчик. А сейчас приз обеднел дохуя. Прошлый раз там какой-то олд приз выиграл, на сайте академии есть пост с его рассказом, как он побеждал. Он тупо сел и 16 часов ебашил очки в битве. И победил.
Ты можешь сейчас также попробовать. Первого января начать очки в их челендже по беспределу фармить. Если тебе, конечно, вообще нужен этот базовый интенсив хтмл, цсс. Многим базовый не нужен.
Меня в прошлом году в Новогодней битве быдло тёлки и подростки жёстко опустили. Там короче арена. В ней соревнуешься, кто быстрее код для задачки наберет. И по скорости меня быдло тёлки и подростки побеждали в разы. Мне стыдно и до сих пор плохо от этого факта.
Кстати победивший олд на арене не выступал. Он только на тренажерах очки хуячил 16 часов без перерыва.
>>2249727 >Ты можешь сейчас также попробовать. Первого января начать очки в их челендже по беспределу фармить. Если тебе, конечно, вообще нужен этот базовый интенсив хтмл, цсс. Многим базовый не нужен. Чел, интенсивы эти мне нахуй не нужны, я могу их с торрентов спиздить. Я вообще насколько котируется этот HTML academy в плане всего что касается верстки и до JS (не включая, там как я понял Кантор золотой стандарт)?
>>2249733 Чисто технически как писать хтмл, цсс - хтмлакадемия неплоха. Но там дизайнерские моменты умалчиваются. То есть как резиново адаптивить вёрстку в разных случаях жизни там умалчивается. Предлагается по отдельности покупать за тонны денег их проекты и навыки, где описывается как и почему в этом проекте-навыке и что было свёрстано.
>>2249761 в гугле не систематизировано. Помню когда только начинал, хтмл академи мне прям зашел. Но я растерял все полимеры. Вот хочу наверстать. Поэтому и спрашиваю про их тренажеры.
>>2249716 Не трать время. Во фронт обывалам сейчас нереально вкатиться. Конкуренция дикая. Если так долго вкатываешься, и тебя швыряет по разным темам, то шансы свои против гигазумеров 200iq ты сам понимаешь какие. Поинтересуйся статистикой по откликам на одну вакансию по стажировке в разных направлениях и сравни с фронтом (чтобы не думал, что я тебя пытаюсь наебать или задизморалить)
>>2249768 Я их прошел все, кроме тех, где надо верстать с флоатами и отправлять сайт на проверку и валидацию. В принципе, очень полезная штука, но т.к. я много там экспериментировал, гораздо полезнее было бы открыть, например, doka.guide, начать верстать и уже самостоятельно ставить свои эксперименты. В общем и целом прикольно.
>>2249801 Крутил сегодня их полдня, чото не спасает. У меня не происходит мутаций как таковых, в том компоненте который я хочу отслеживать. У меня картинки грузятся поочереди, и этот компонент уезжает вниз. Мне надо знать на сколько
>>2249845 Там сложная динамически создаваемая страница, и мне надо у одного из многих компонентов отследить когда (куда) он уезжает на перерисовке.
Страница формируется в зависимости от прав пользователя и ебилона фильтров.
Строго говоря я не ебу когда и сколько к нему на морду поедет, да это и не особо мне нужно. Я точно знаю что один из компонентов в конце загрузки уедет вниз, и вот мне надо знать на сколько.
Аноны, прошу, помогите советом. Я тупой и медленно обучаемый, особенно когда речь идёт об обучении без ментора/препода. Предвкушая простые истины о том, что я ленивый хуесос - я не просто ленивый, у меня реально диагностированные беды с башкой, и я действительно стараюсь их преодолеть и вкатиться, несмотря на них. Очевидно, денег на препода у меня нет, и придётся осваивать всё самому. Некоторое время назад пытался вкатиться через бесплатный курс html-академии и learn javascript. Дошёл в итоге примерно до классов, и на том моменте окончательно перегорел, и вот уже 2 месяца не притрагивался к Кантору, и естественно всё напрочь забыл, да так, что учиться придётся по сути заново. И так я точно не вкачусь.
Теперь основной вопрос. Сильно ли менее эффективным и продуктивным будет вкат через практически чистую практику? То есть начать с каких-то видео на ютубе, где делают простейшие проекты на js, повторять за автором, попутно гугля всё непонятное и осваивая на практике; затем пытаясь сделать уже что-то своё, а не повторять, продолжая гуглить всё непонятное; перед собесами полирнуть имеющуюся базу знаний при помощи "топ вопросов на собеседовании на позицию junior" и просто теории?
>>2249859 Так послушай сюда, я бы посоветовал тебе прочитать статьи на mdn в оригинале, например, все туторы по жс отсюда: https://developer.mozilla.org/en-US/docs/Web/JavaScript Если что-то не понятно, то ты это гуглишь и смотришь видео (всё на английском). Английский для чтения мдн ты освоишь достаточно быстро, потому что во всех доках одни и те же слова повторяются
>>2249872 Дрочи консольку постоянно, т.е. прям в браузере нажимаешь ф12 и тестишь всякие методы какие интересно, практика там есть в некоторых разделах. По поводу видосов: можно глянуть для общего развития как делают приложения на реакте, на ваниле нахуй не надо. Обучающие видосы смотри только если не понял на мдн тему >>2249880 Я его тоже читал, но сложилось впечатление, что мдн лучше в плане туториалов. Можно и то, и то читать. И + чел сказал, что Кантора он уже читал
>>2249900 Приложения пишутся на фреймворках же. Т.е. смысл смотреть как делать приложение на ваниле? Ну тоже для общего развития если только, но это уже advanced подготовка
Сап, аноны, подскажите, насколько сложно сьебаться зарубеж будучи фронтендером? Особенно Канада интересует, но можно и в Европе что-нибудь. Я сейчас Джуниорю, паралельно учусь в вузе на 3 курсе, но вуз максимально заебал со своими пердежными преподами и с устаревшей программой, только ради переката и терплю
Ребят, нид хелп в выборе инструмента для реализации. Есть проект на реакте, в рамках которого нужно визуализировать некий линейный график, каждая вершина которого должна быть перетаскиваемой, реагирующей на остальные события и кастомизируемой (то есть внешний вид не точка, а какая-то НЕХ, которую задизайнит дизайнит). Есть ли в реакте и джиЭсе подходящие либы для подобного?
>>2249913 реакт это просто код на жс, естесна нужно знать жс малый, я ваще говорил про то что нужно забить на видосы, где приложуху делают на чистом жс без библиотек и фреймворков
>>2250076 Не прав в том что слишком обобщаешь личный опыт. Есть куча мелких контор, где нет никакого hr фильтра. Может чела бы устроила работа в такой конторе. Если тебя такое не устроит, то не значит другого не устроит.
>>2250081 >куча мелких контор, где нет никакого hr фильтра В такой гавношараге он во-первых сам через неделю заплачет и убежит звать маму. Хотя скорее выкинут за то что >Я тупой и медленно обучаемый В мелких конторах нет времени на раскачку и прочий онбординг, ты должен сесть и хуярить
>>2250094 Чел, как будто никто в мелких галерах не работал, кроме тебя... Работал я одно время джуном, какую то большую хрень почти год пилил, потом ее выкинули. Разумеется эта задача выполнялась параллельно с другими более мелкими задачами.
>>2250126 Сидеть жопой на кресле в тепле в окружении воспитанных анальников это стрессовая среда? Расскажи еще про стрессовые среды. Хуячить на морозе на стройке с орущим полубухим прорабом лучше?
>>2249821 >У меня картинки грузятся поочереди, и этот компонент уезжает вниз. Шиз, тебе не следить за этим элементом надо, а навесить на твои картинки реальную ширину и высоту через атрибут или css, что бы контент не съезжал. Это прямо база фронта, знать надо.
Созрел вопрос про ООП в реакте. Смотрите, допустим есть простой класс Task. Принимает имя таски и внутри есть метод rename который меняет это имя. Например: class Task { name: string; constructor(name: string) { this.name = name } rename(newName: string) { this.name = newName } }
И из этих экземпляров мы делаем массив. И потом отображаем как обычно - через map. И вот мы решили что хотим переименовать таску. Запускаем метод rename на нужной таске и имя изменилось. Но реакт не видит это изменение. Даже если засунуть этот массив в useState. Но если мы изменим нужную таску в массиве самостоятельно, а не через её собственный метод, то реакт это заметит и отрисует изменения. Вопрос: что я делаю не так? Где я проебался?
>>2250412 So? ООП в реакте не нужен, ты про это? Я вот как раз пытаюсь понять, либо я криво понимаю ООП, либо я криво его вкорячиваю в реакт, либо они просто не особо совместимы.
>>2250317 Психиатр не лечит, а только снимает симптомы. Человеки пока еще не додумались как лечит психические заболевания, максимум будешь до конца жизни жрать нлп + ад. >>2250364 Репозитории на гитхабе посмотри. >>2250394 Иди читай доку реакта с самого нуля.
>>2250486 > Иди читай доку реакта с самого нуля. Спасибо за ценный совет. Я уже второй год как пишу на реакте. И понимаю что он не сравнивает стейт вглубь. Мне интересно как к нему ООП применить. В доке этого нет. Если нечего сказать - пройди мимо, а не пукай в лужу
>>2250641 Поясняй или это все таки твои штаны? >>2250643 Почему два анона сверху поняли мой вопрос и дали дельные советы, а ты никак не можешь понять его суть? Проблема не в том, что рендер не происходит, а в том что я не понимаю как ООП прикрутить к реакту чтобы это было не ущербно. Причем тут вообще hoc?
Ананасы,как решить проблему сопоставления цифр и индексов блоков,ведь список потомков начинается с нуля,а блоки с 1 Добавить в массив блоков в начале пустой элемент?
>>2250796 >Когда считываешь детей родителя,массив начинается с 0? >С 1 начинаются имена блоков Что ты подразумеваешь под блоками? В JS нет такого понятия
Ребят, а как гуглить вот эту правильную стилизацию кода (на React), как правильно называть файлы и раскидывать по папкам, как правильно стилизовать код, чтоб не зачмырили опытные товарищи?
>>2250892 >как правильно называть файлы и раскидывать по папкам, как правильно стилизовать код, чтоб не зачмырили опытные товарищи? Так, как тебе удобно. С опытом придет понимание, с чем удобно работать, а с чем - нет.
Допустим у меня есть Реакт/Редукс, например форма где вытаскивется из бэка лист, я не понимаю, должен ли хранить это всё через стейт с редукторами, либо хранить это исключительно локально, для это конкретной формы?
Если я храню это только в рамках этой формы, то там же архитектура идёт по пизде.
Если я всё делаю унифицировано через редукторы и стейт, то там же это всё будет храниться в стейте.
>>2251102 Что за графический гит? Гитхаб десктоп что ли? Никто этим не пользуется, только новички и только кому на каких-нибудь курсах показали. Может версталы какие в веб-студиях мелких не умеют в консоль, но там может и гитхаба нет никакого.
>>2251102 Большинство через консоль. Но у меня все равно стоит сурстри. Через него удобнее просматривать историю, ветки и делать некоторые операции. Вроде ребейза. Но запускаю реально раза 2 в год. А так все через терминал прям в вскоде.
>>2251605 Следует. Пространство непрерывно --> между любыми двумя точками пространства найдется третья --> промежуток между двумя точками оказался разделен на два промежутка средней точкой --> пространство делимо. >реальности бесконечности существовать не может Находясь в макроскопическом приближении, бесконечность существует (просто потому что планковский масштаб, на котором обнаруживается дискретность пространства и времени, несоизмерим с макроскопическими величинами, а значит, пренебрежимо мал в сравнении с любой макроскопической величиной, до какой бы мы не доделились). А вот в планковском масштабе да, появляется дискретность и бесконечность пропадает. Поскольку речь идет о макроскопических явлениях, то говорить о бесконечно большом количестве промежуточных состояний позволительно и никакой ошибкой не является, а ошибку здесь как раз ты допускаешь, поскольку не понимаешь диалектику микро- и макромира.
>>2251639 >Тут же логическая ошибка и путаница между реальностью и математикой. Из непрерывности никаким образом не следует бесконечная делимость. Давай тогда сначала поинтересуемся, какое у тебя представление о непрерывности? >Еще раз, ты не понимаешь, что такое "бесконечность". Бесконечность это не "дохуя" и не "в охулиард раз больше". Бесконечность - это quantity without identity, т.е потенциал. Сколько ты не возьмешь из бесконечности вещей, в ней всегда потенциально будут еще вещи. И как таковая она может существовать только на бумаге, потому что в реальности у всего есть identity, т.е строго определенная ограниченная сущность, никая вещь не может быть "всем одновременно и ничем конкретно". Еще раз - ты зачем-то ищешь расхождение между математическим конструктом и реальностью, в то время как я тебе говорю про понятие бесконечности. Чувствуешь разницу?
>>2251678 Ты говоришь о какой-то абстрактной бесконечности с вакууме. Я тебе говорю про понятие бесконечности, которое для макроскопического приближения подходит, для микроскопического не подходит.
>>2251128 Список из базы данных для страницы - это локально делать или через редукс? Я условно понимаю, что чекбокс на форме логина - это всё таки локальные данные и прогонять через редукс не надо. Везде вижу два подхода - на одном на каждый пук делают дисптач, на другом - в стейте храниться минимум данных, но где же тогда ваша архитектура в таком подходе будет?
>>2251777 Опять же, если у тебя этот список надо использовать в одном компоненте - то храни локально. Если же в двух и более - контекст и/или редакс. >о. Везде вижу два подхода - на одном на каждый пук делают дисптач Палю тебе годноту: описывай всю логику через диспчетчеры/стейт внутри контекста и заверни их в хук. Лучше еще никто не придумал.
Как вы с алгоритмами разбираетесь? Нужно ли математику подтягивать? Я читаю "Грокаем алгоритмы", пока в самом начале, все более менее понятно, но это теория, легкая книжка, да еще и начало (без подсказок не вспомнил бы что такое логарифм и факториал).
>>2251846 Достаточно знать все существующие структуры данных. Когда тебе нужно эффективно с ними работать, ты идешь и разбираешь конкретнве алгоритмы, под конкретные структуры.
>>2251882 А разбирать алгоритм по О, доказывать конкретное решение - это не нужно?. У меня просто школьные знания непрофильного класса. На codewars это не станет сильной проблемой, например?
>>2251906 Разумеется понимать что такое алгоритмическая сложность нужно, ровно как и то, какие преимущества у каждой из структур данных, когда какую нужно принимать, и уметь применять эту эрудицию и анализ. А не просто по списку заучить что там есть. Но это все не математика, а информатика. Математика применяется уже в конкретных импементациях алгоритмов по работе с конкретными структурами - сортировки, обходы, поиск, вставки и так далее. И под каждую структуру полезнее и оптимальнее изучать\подбирать алгоритм по фатку. Заранее почти нет смысла все это изучать.
Да, открываешь википедию, и там они все перечислены. И по связным страницам тоже. И в категориях тоже. И читаешь как русскую, так и английскую.
В программировании (вообще), как и в любой инженереии, важна эрудиция - то есть широта твоих познаний, чтобы ты мог под конкретную проблему знать что именно тебе туту нужно, или что именно подошло бы. Грубо говоря знать что ИСКАТЬ. А не помнить все и всегда.
То же самое относительно все возможных проткоолов, апи библиотек, самих библиотек, языков, фрфеймворков, и прочего прочего прочего. Ты должен быть в курсе, чтобы когда понадобиться смогу найти и изучить под конкретную проблему, а не бегать с идиотскими воросами по тредам на дваче, потому что не в стостоянии сформулировать список клучевых слов.
Самый важный навык, без которого ты программисом не станешь никогда - это способность самообучаться и самостоятельно искать и находить информацию.
И если ты задаешь вопрос кому-то, вместо того, чтобы найти ответ сам - это триггер твоей неспособности в этот самый поиск и самообучение.
Читайте книги, читайте статьи, читайте ветки комментариев 5-10-20-30 летней давности на форумах. Интернет просто кишит информацией. Не тратьте время на то, чтобы задать вопрос, который уже тысячу раз обсосан и получить на него в лучшем случае нерелевантный ответ, а в большинстве своем посыл нахуй. Пойдите - и найдите эти ответы сами.
>>2251846 Куда вы лезете? Остановитесь! Прежде, чем все эти факториалы писать, научитесь хотя бы тестами покрывать свои программы. А то блять, им факториалы нужны, а проверять корректность работы программы не нужно. Научитесь вначале:
1) Дебаггингу. 2) Написанию тестов. 3) Написанию документации. 4) Принципам как работают линтеры. 5) Как работать с гитом (CI/CD, Git flow и т.д.)
А потом уже можно говорить про какие-то алгоритмы и прочее.
>>2251906 >А разбирать алгоритм по О, доказывать конкретное решение Бля, ты бы лучше научился пользоваться ПРОФАЙЛЕРОМ. Не всегда имеет смысл всё оптимизировать. Что-то нормально работает и так. Нубы концентрируются на малозначительных аспектах. Например: у тебя есть какая-то функция, которая отрабатывает за 5 миллисекунд. Допустим ты пишешь супер-пупер алгоритм, который работает в 2 раза быстрее. Итог: ты сэкономил 2,5 миллисекунды. ВАУ, ПИЗДЕЦ вот уж экономия так экономия.
Зачастую, оптимизация селекторов/замена библиотек на более легковесные даёт гораздо больше выхлопа, чем знание/применение О-нотаций.
>>2251909 >И если ты задаешь вопрос кому-то, вместо того, чтобы найти ответ сам - это триггер твоей неспособности в этот самый поиск и самообучение. Сразу видно задрипанного асоциального омежку, травмированного СНГшной системой образования. У нормальных людей нет проблемы если что задать вопрос и получить помощь, это называется кооперация и работа в команде.
>>2251921 >А разбирать алгоритм по О Не нужно, во-первых реальные математические алгоритмы ты не пишешь, если не математик, во-вторых ты вряд ли за всю свою карьеру столкнешься с проблемой оптимизации на уровне алгоритма. >доказывать конкретное решение "Доказать" в математическом смысле никакую программу нельзя, даже в случае с алгоритмом, ты не доказываешь программу, ты доказываешь алгоритм и делаешь это на бумажке. Как только алгоритм покидает бумажку и оказывается в компьютере, то все твои манядоказательства не стоят нихуя, потому единственный способ проверить работоспособность реальной программы - это выполнить ее и посмотреть на результат.
Фронтачи, а useEffect — это таск или микротаск? А как вообще соотносится внутреннее флоу рендера в реакте (все эти маунты) с евентлупом и рендером браузера?
>>2252122 Еще и не запрещает проводить вот такие операции, а высирает NaN без всяких ошибок. Потом этот NaN можно совать как number в функции и тоже никаких проблем. Кто-то где-то косякнет в глубинах кода и потом ищи-свищи, когда код формально работает и никаких проблем. Вот это понимаю типизайшн.
>>2252229 >Какова ваша позиция по поводу TypeScript? Хз, если честно. У меня смешанные чувства к нему. Если использовать для несложных приложений - то там пойдёт, всё классно. Но как только начинаешь использовать для парсинга длинных апи - к примеру приходит ответ от github'а, там 500 полей и всё это нужно распарсить. Ты начинаешь всё это описывать, это такооой геморрой. Ты тратишь больше времени на описание типов, чем на реальное написание кода.
Особенно бесполезен typescript в тестах. Если я специально хочу подсунуть функции неверный результат, скажем, вместо string передать null. Он такой пишет, типа... ожидалось string, а получили null. Я такой думаю "бля, чувак, да я знаю что там должен быть string! Я просто хочу проверить как функция обработает null!" Приходится забивать такие места //@ts-ignore. А если в тестах подгружаются json-данные в качестве mock'ов, то задолбаешься это всё приводить. Опять везде ставишь //@ts-ignore. В итоге, получается говнокод, нужно отключать typescript для тестов.
На мой взгляд, рационально typescript использовать там, где строгие типы действительно нужны. Типа, в опен-соурс библиотеках. Или в серьёзных финансовых приложениях. Ну а если это простое приложение, то там тебе по барабану, какой тип выведется на экран, что string, что number. Можно без задней мысли обычный propTypes использовать. Опять же, если какая-то длинная колбаса приходит с API, то там логичнее взять библиотеку для валидации, типа joi. У него функционал помощнее, он может сам приводить типы, если нужно. А typescript'у пока пинка не дашь, он сам тебе типы не приведёт...
>>2252336 >Ты начинаешь всё это описывать, это такооой геморрой Куда пизже потом ебаться с этми полями, гадая что куда приходит. Вот это тру экспириенс настоящего Мужика блять
У кого-нибудь возникали проблемы с типизацией данных через Typescript в Redux-saga (и вообще нужна ли редукс сага в 2к22м?)? Без тайпскрипта все работает как надо, с тайпскриптом не хочет диспатчить тот экшн, что летит в воркер. Уже заебался, хз че делать вообще. Туториалов по TS + Redux-saga толком нет, в том числе и в официальной доке.
>>2252122 Что не так? Хочешь число, значит явно указывай тип у z , тогда получишь ошибку на этапе компиляции >>2252162 Тут тоже все нормально. NaN это число.
Проиграл с дебила. ТС и сделан для того чтобы не писать такие тесты. Если у тебя всё таки она может получить null, значит указываешь типа аргумента string | null и уже после тестируешь.
Просто дегроды часто пишут function someFun(x: string): unknown { ... }
А потом где нибудь в коде у них вызов вида:
const x: any = null; someFun(x);
И после этого бегут кричать РЯЯЯ ТАЙПСКРИПТ ХУЙНЯ НЕ СПАС ОТ ОШИБКИ!!
>>2252424 Зачем это тестировать, долбоебина? Как этот тип там появится? Просто магическим образом? Если у тебя такая вероятность существует, то тебе не тесты писать нужно, а код менять, включая стрикт мод у тс, запрещая неявные any, добавляя ассерты которые будут выбрасывать исключения, если ожидал получить x, а получил y.
>>2252278 >Внедрять/переписывать кто будет? У меня сейчас есть один единственный модуль в подчинении. Ну там файликов 10 js Весь этот модуль - отдельная директория в репозитории. Я могу какбы невзначай заливать в git скомпилированный TS->JS файлы и никто не заметит разницы.
А при увольнении сказать правду, что был коммерческий опыт с TS
>>2252444 >Как этот тип там появится? По апи прилетят. Я тестирую как сработает приведение типов, если что-то неожиданное прилетит/я опечатаюсь/etc. Это лично моё мнение, никому не навязываю, не хочешь - не тестируй.
>>2252470 Для апи есть ассерты. Если опечатаешься, то получишь ошибку на этапе компиляции. Тестируй что хочешь, главное не лезь со своим мнением в тред для новичков, а то ведь они примут за истину и начнут повторять твои тупые высеры.
Пацаны, че у вас спрашивали на собесах самое сложное, когда вы на ждунов устраивались? Сколько заняло времени от обучения до аплая? И нужно ли на все вопросы прям ответить чтобы тебя взяли на работу?
>>2252229 Тайпскрипт делает любой проект больше туду листа нечитабельным неподдерживаемым говном, где ты для любого изменения половину времени дрочишь типы, чтобы конпелятор перестал ругаться на абсолютно бессмысленную хуйню. Единственная причина, почему он стал популярен - это потому что жс-мартышки не умеют писать тесты, а любой код без тестов через месяц написания превращается в легаси, которое страшно трогать - это известный факт в программировании. Мартышки это конечно заметили, и заметили говняное качество своего кода, но вместо того, чтобы решать проблему отсутствия культуры тестирования, начали искать обходные пути и почему-то решили, что уж если ввести типизацию, то точно все исправится. Но только типы тесты не заменяют и уверенности в работоспособности программы не дают. Поэтому теперь мартышки на том же месте, что и раньше, но теперь кроме рантайм багов им нужно ебаться еще и с конпелятором.
Надеюсь тут кто-нибудь шарит за яваскрипт, нужно мнение, целый день голову ломаю.
Что больше кушает ресурсов, постоянный вызов функции с .bind в классе или же постоянный вызов метода с передачей класса в качестве аргумента? .bind просто оставляет адрес области вызова, передача аргумента в жс дается через референс, можно сказать тоже обычная строка адреса. Поэтому хз.
В отладчике моззилы так и не понял куда смотреть чтобы получить нужную инфу, но вроде память не зависает поэтому чистильщик делает свое дело, хотя при определенной передачи аргумента класса и у меня все висло.
>>2252482 >любой проект больше туду листа нечитабельным неподдерживаемым говном Наоборот же. Типы сильно ускоряют работу, потому что ты знаешь что туда должно приходить и не надо чекать доки и код функций. Если тебе в масштабе это усложняет работу, мартышка - это ты. Представляю тогда какая у вас там каша без тс. Ну я не говорю сейчас про ФПшников, там всегда нечитабельное говно. Ну они вообще в своей отдельной касте опущенных, с ними никто серьезно не считается, так что похуй.
Почему Nextjs так слабо распространен? Это же охуенная штука, устраняюшая все косяки Реакта? Все оптимизировано и летает, удобный роутинг, всякие приколюхи прям из коробки.
>>2252538 Тебе не дебаггер могилы смотреть надо, а дебаггер движка на котором мозила работает. В хроме это в8, у них даже есть для этого специальные отладчики которые тебе всё покажут и расскажут. Я ставлю на то что класс передавать в виде аргумента производительнее, так как bind это лишний вызов метода
>>2252539 Типичное заблуждение типомартышки, которая думает, что программа ограничивается типами данных, которыми она оперирует. С чего ты решил, что указание типов на принимаемые функцией аргументы могут тебе дать хоть какое-то представление о том, что эта функция делает и для чего служит? Если ты это представление не получил из названия самой функции и названий ее аргументов, то добавление перед этими переменными сигнатуры "int" никаким образом дело не улучшит, все равно нужно либо лезть в тело функции, либо в документацию, и ты шизик, если думаешь иначе.
>>2252540 Не, сейчас потестил варианты, в моем случае разницы нет, все равно отсылка к области делается так или иначе, это неизбежно. class Poke { setStart () { let obj = this; function start (obj) { window.requestAnimationFrame(() => start(obj)); }
>>2252573 Судя по твоему коду-ты вообще не понимаешь, что происходит, когда происходит тот или иной вызов. Ты пишешь код не приходя в сознание абсолютно.
>>2252539 Ожидание: >Типы сильно ускоряют работу, потому что ты знаешь что туда должно приходить Тайпскрипт проект: >value?: string | number | string[] | number[] | boolean | undefined;
>>2252482 >вместо того, чтобы решать проблему отсутствия культуры тестирования Ты сперва научи объяснять кабану, что он будет тратить деньги и время на тесты и потом хоть обпишись
>>2252583 Ой, как ты "научил кабана", что он будет тратить деньги на твое писание типов? Давно заглядывал в файлики с тайпдефинишенами, где лежат сотни строк напечатанного ручками кода, которого в обычном жсе бы и близко не было? Как же ты перед кабаном оправдывался, что вместо работы заполняешь эти файлы, а не пишешь бизнес-логику? А правильный ответ заключается в том, что процесс разработки - это дело разработчиков и идти он должен всегда на их усмотрение, хоть типами ты обмазываешься, хоть тестами. Бизнес нужно только знать сроки, за сколько ты сделаешь, и если его эти сроки устраивают и ты их выполняешь, то хоть в жопу там ебитесь.
>>2252587 Выполню без типов за неделю. На поддержку и фикс багов будет уходить минимум месяц ежегодно. Выполню с типами за две недели. На поддержку и фикс багов будет уходить от 0 до 3 дней ежегодно.
Даже кабан разницу поймёт и начнет топить за типизацию
>>2252590 Манюнь, наличие типизации или её отсутствие никак не влияет на необходимость написания тестов. Отличие лишь в том, что твоё нетипизированное дерьмо вообще не может функционировать без тестов., в то время как типизация позволяет свисти их наличие к минимуму
>>2252594 Наличие тестового покрытия уничтожает нужду в типизации, потому что тебе не нужно знать, сходится ли твоя программа по манятипам, если ты знаешь, что вся бизнес-логика внутри этой программы работает. Вот наличие типизации как раз не влияет на нужду тестов, тебе нужно писать все те же самые тесты, потому что программа - это не набор типов, которыми она оперирует и "конпелятор не заругался" никаким образом не переводится в "программа работает как надо".
>>2252595 Ага, а потом получаем дебилов и их тесты вида «а вдруг мне null передадут в метод». Будешь хуячить обработки всех возможных случаев, лишь бы типизацию не вводить? Ну поздравляю, теперь пользы от отсутствия типизации нет, так как написание программ стало ещё дороже и медленнее. Это ещё если исходить из твоего манямирке в котором каждый кейс покрыт тестом и на любой функционал у тебя сразу же пишется интеграционный тест.
>>2252566 Функция же может в себя принимать только string, int, bool? А если там сложный обьект?
>>2252580 Кто так вообще пишет? У тебя "?" есть, зачем добавлять undefined? Если у тебя одна переменная столько разных типов принимать может - что то идет не так.
>>2252573 Ты с С# пришел? Че за перенос строки для скобки? Ты реально поехавший. Какой смысл у этого кода кроме рекурсивного (почти) вызова 3 методов друг в друге? От этого и зависвает.
>>2252580 Тайпскрипт проект программиста, а не жс макаки: >function hasData(value: unknown): value is DtoWithData { return “data” in value && value.data !== undefined; }
>>2252603 >Ага, а потом получаем дебилов и их тесты вида «а вдруг мне null передадут в метод» Но ведь ты и есть такой дебил, если думаешь, что тестирование - это проверки на null, а не описание правил бизнес-логики. Типичный тайпскрипт шизик, который в жизни не написал ни одного теста и думает, что без типизации код и тесты к этому коду будут выглядеть как на пике1, а не как на пике2. Точнее не думает, это слишком дебильно даже для него, а просто пытается подменять в виде соломенного чучела, потому что других аргументов у него нет. А теперь скажи мне манька, зачем мне на втором пике проверки типов? Если кто-то туда захочет передавать непонятно что, то это его проблемы, а не мои, и его обязанность написать тесты под свой код и проверить, что он работает.
>>2252604 >А если там сложный обьект? >Если у тебя одна переменная столько разных типов принимать может - что то идет не так. Ответил на свой же вопрос. Что такое "сложный объект", если не "переменная, принимающая кучу разных типов"?
>>2252604 >ты с С# Че, так палевно? Все же +- по пср12.
>ты поехавший какой смысл рекурсия Ладно, я понял что в этом треде дальше первого курса никто веба не знает. Особенно этот >>2252579 хуесос только срать и может на дваче. В этом коде 2 подхода к функционалу, которые по итогу не сильно в корне отличаются по природе, из-за общего дизигна. И они прекрасно работают, к твоему сведению. Мне нужно было понять что эффективнее по сути. Плохо работал промежуточный вариант, но он и не должен был работать, я уже понял.
О, сразу зоопарком и макаками повеяло. Макака не работает в команде где каждый стремится помогать друг другу и не перекладывает ответственность на других, макака живет по закону джунглей. В итоге получаем каскад багов и толпу взмыленных макак которые не могут найти источник и говорят, что его возникновение невозможно, ведь у них «БИЗНИС ЛОГИКА ПАКРЫТА ТЕСТАМИ!!!»
>>2252620 Но ведь это ты макака, которая перекладывает ответственность на других, если на полном серьезе считаешь, что "я передаю undefined в функцию, которая не принимает undefined и получают рантайм ошибку" - это не твоя проблема, а проблема человека, писавшего функцию.
>>2252620 >которые не могут найти источник и говорят, что его возникновение невозможно, ведь у них «БИЗНИС ЛОГИКА ПАКРЫТА ТЕСТАМИ!!!» Ты не писал тесты, и не работал в окружении, где бизнес-логика реально покрыта тестами, иначе бы такой хуйни не порол. Баг в таком окружении в 99% случаев находится и фиксится за пять минут - ты добавляешь тест, который воспроизводит нужный сетап, смотришь что он действительно выбивает ошибку, фиксишь эту ошибку в коде, прогоняешь остальные тесты, чтобы убедиться, что твои фиксы ничего не поломали и можно деплоить на прод.
А, ну то есть ты помнишь тело каждой функции проекта и что она принимает/не принимает? Или бегаешь и смотришь её имплементацию, тратя каждый раз время, вместо того чтобы писать с типизацией? Эффективность макаки эз из
>>2252634 Разумеется я не помню тело каждой функции проекта и не знаю, что она делает. И ты не знаешь, потому что то, что она делает не определяется принимаемыми типами, и из них это не вывести никаким образом. Так что это очередная подмена понятий с твоей стороны и попытка абсурдно заявить, что "если я знаю типы аргументов, то я знаю, что функция делает и как ей пользоваться".
>>2252630 Не перестаю проигрывать с животного. Ты не сделал проверку на undefined, передал этот undefined в функцию, из за этого возник баг. О, смотрите, макака уже пишет тест который убеждается в том, что у нас присутствует проверка на undefined. В это время господа с типизацией даже и не думают о таких багах и тестах, потому что на этапе компиляции поняли, что в этом месте нужна проверка на undefined и добавили её. Теперь, макакен, объясни, в чём выигрыш отсутствия типизации? В том что нужно всегда исходить из того, что на проекте работают машины, а не люди и у них в мозг встроен аналог статического анализатора? Что такое макака, опять начнёшь кричать что кроме тебяникто тестовые писал, поэтому типизация не нужна?
>>2252640 >Ты не сделал проверку на undefined, передал этот undefined в функцию, из за этого возник баг. О, смотрите, макака уже пишет тест который убеждается в том, что у нас присутствует проверка на undefined. Отсылаю тебя к >>2252640 потому что ты: >Типичный тайпскрипт шизик, который в жизни не написал ни одного теста и думает, что без типизации код и тесты к этому коду будут выглядеть как на пике1, а не как на пике2.
>>2252618 Тут вебмакаки и сидят, никто вручную не пишет анимации. Ты пытался сделать чтобы анимацию можно было .start()/.finish() в любом месте? Попробуй start засунуть в какой нибудь setTimeout чтобы не блокировала поток.
>>2252636 Так с чего ты взял, что функция «не принимает undefined”, макакен? Ты ведь пишешь, что передача того что функция не принимает - вина того кто передаёт, вот я тебя и спросил как ты определяешь, что именно функция принимает? Тестами ты такое не покрываешь, имплементации не знаешь. У меня явно указан тип того что принимает функция, при этом мне даже обращать внимание не нужно на это, так как в случае ошибки компилятор сообщит об этом. У тебя то откуда такая информация взялась? Почувствовал что не принимает, потому что ты у мамы молодец?
>>2252642 Ну что и следовало ожидать. Аргумент макаки «ты тестов не писал». Как это влияет на отсутствие описанных багов, макака конечно же не скажет. Будет ссылаться на манямирок и его таинственную бизнес логику, которая покрыта тестами, твёрдо и четко. При этом сам выше написал, что в процессе фикса багов добавляются тесты, как же так, противоречие получается, ну ничего, главное спиздануть что типизация не нужна.
>>2252645 >Тестами ты такое не покрываешь, имплементации не знаешь. Если работа с несколькими типами данных - это часть логики функции, то очевидна эта логика должна быть покрыта тестами. И лучше ты мне скажи, какое шестое конпеляторское чувство тебе даст понять, что именно делает функция doSomething(x: undefined | string | number), если в нее передать undefined и правильно ли в твоем случае его передавать? Неужто тебе для этого придется лезть в тело функции и смотреть, что она делает? Или о ужас, выполнять написанный тобой говнокод и смотреть на результат, чем тесты и занимаются?
>>2252612 Есть разница между магической всемогущей переменной и обьектом, где все четко распределно. Особенно как потом работать с этим.
>>2252611 Ну нихуя ты молодец, написал тест, показывающий что сама функция работает правильно. Осталось не обосраться дальше в процессе обращения к ней в самом приложении. Ну да, напишешь тоже тесты для этого. Но насколько больше времени это займет? Кстати, если функция работает над разными типа данных и возвращает результат на основе этих типов. Во всех адекватных языках (и в ts) для этого есть дженерики. А ты каждый раз вспоминать будешь? Неэффективная трата времени.
>>2252647 О, спешите видеть, макакен переобувается буквально в воздухе. Теперь оказывается тесты с 1 пика >>2252611 всё таки нужны, сенсация. Теперь главное каждый раз посмотреть что там за тесты, либо пробежаться по телу чтобы понять «работа с несколькими типами данных - это часть логики функции» или нет. > какое шестое конпеляторское чувство тебе даст понять, что именно делает функция doSomething(x: undefined | string | number)
Манюнь, в этом и суть, мне не нужно в это вникать. Я со спокойной душой передаю в эту функцию undefined и получаю нужный результат. А если я передам в неё неправильный тип, то сразу получу ошибку, в то время как макака вроде тебя узнаёт об этом только после запуска тестов.
К примеру у меня залогинился юзер с cookies, которые expire через два часа, при логине бэк вернул мне объект для юзера из базы, с найстроками и так далее, я юзаю этот объект дальше в моем приложении (через стейт), где мне хранить этот объект на фронте? Если я храню его в localStorage, то получается у него закончиться доступ, а объект останется и я буду думать что он до сих залогинен.
>>2252648 >Осталось не обосраться дальше в процессе обращения к ней в самом приложении. Ну да, напишешь тоже тесты для этого. Напишу, разумеется. Ведь единственный способ точно знать, что твой код действительно делает то, что должен - это выполнить его и посмотреть на результат, т.е протестировать. Других нет и быть не может. >Но насколько больше времени это займет? Этой займет ровно столько времени, сколько требует написание работающего кода. Неработающий же код я могу написать за 0 секунд. >Кстати, если функция работает над разными типа данных и возвращает результат на основе этих типов. Во всех адекватных языках (и в ts) для этого есть дженерики. А ты каждый раз вспоминать будешь? Вспоминать что? При работе с любой функцией первостепенное значение имеет то, что функция делает с передаваемыми ей данными, а не тип этих данных. Если ты не знаешь, что именно она делает, то знание "ну я хотя бы поддерживаемый тип передаю" тебе не даст абсолютно нихуя в конечном итоге.
>>2252649 >Теперь оказывается тесты с 1 пика 2252611 (You) всё таки нужны, сенсация С чего ты взял, шиз? Почему ты решил, что работа с разными типами данных - это исключительно выкидывание рантайм ошибок(которые и так выкидываются, если ты попробуешь сложить undefined)? Уже устал от твоих соломенных чучел. >Манюнь, в этом и суть, мне не нужно в это вникать. Я со спокойной душой передаю в эту функцию undefined и получаю нужный результат Какой "нужный результат"? Ты не знаешь, что получаешь и что эта функция делает внутри. Ты знаешь тип, который пришел, и тип, который ушел. Все. Других знаний у тебя нет, и результат ты судить не можешь, пока не выполнишь код или не залезешь в тело функции.
>>2252652 Загружай кеш при этом делая каждый раз запрос, на беке валидируй истечение и в таком случае не возвращай данные. Клиентам нельзя доверять.
>>2252653 Ты про runtime говоришь, я говорю про сам процесс написания. Типы сразу покажут ошибку, тебе же придется дополнительно запускать для этого.
>Вспоминать что? Результат выполнения функции для того что ты ей передал. К этому времени ты уже уверен что функция работает правильно, потому что написал тест который выше) Так же?
>>2252656 >и так выкидываются если ты попробуешь сложить undefined Ясно. Иди нахуй. > результат ты судить не можешь, пока не выполнишь код или не залезешь в тело функции. У меня есть тип возвращаемого значения, этого достаточно для того чтобы продолжать писать код и не лезть на каждый чих в тела вызываемых методов и функций. Видишь как круто с типизацией, а ты и не знал.
>>2252660 Т. е. строишь логику так, что этот объект кэшируется и время жизни кэша привязано к значению кукис. В итоге в каждом месте где этот объект используется ты делаешь запрос, вот только он выполняется если кэш протух, иначе берётся значение из кэша.
>>2252663 >Типы сразу покажут ошибку, тебе же придется дополнительно запускать для этого. Во-первых, типы показывают только ошибки при несхождении типов, а тесты показывают ошибки в бизнес-логике, и схождение по типам абсолютно не имеет значения, если твоя бизнес-логика работает как надо, потому что ты пишешь программу для выполнения этой логики, а не для удовлетворения конпелятора. Во-вторых, ты так же должен запускать конпелятор, чтобы тебе "показало ошибку", даже если он встроен в IDE, и настроить запуск теста при изменении соответствующего файла - это дело пяти минут. >Результат выполнения функции для того что ты ей передал. ...который ты должен так же вспоминать в тайпскрипте, потому что типы тебе этого знания магическим образом не дают. Почему тайпскриптеры в каждом предложении так любят подменять "я знаю сигнатуру функции" на "я знаю, что функция делает внутри" и их нужно каждый раз тыкать в это ебалом?
>>2252672 >function sum(x: BigInt, y:BigInt): string { ... } Я знаю что функция складывает два больших числа и возвращает результат в виде строки. >function sum(x, y) { ... } Ну вроде что то складывает, но это не точно.
>>2252679 >Типы - большое ускорение работы с твоей бизнес логикой. Ничем не обоснованное заявление. >Показывает ошибки как eslint, я же не в блокноте пишу. Которых их показывает каким образом, как думаешь? Примерно можешь почувствовать? >Дают, лол. Я же сказал про дженерики. Еще раз: знание типов, которые принимает/возвращает функция не транслируется в знание того, что это функция делает.
>>2252683 >Я знаю что функция складывает два больших числа и возвращает результат в виде строки. В виде какой строки? Обычной с числами? Отформатированной? В строке лежат только числа или еще добавлено что-то? Почему функция sum возвращает строку, она что, ебанутая? И еще миллион вопросов, которые возникнут у любого нормального человека, который наткнется на такой говнокод, но тайпскрипт-шизик просто глупо улыбнется и пройдет дальше, ведь он же знает, что там строка, а значит знает все.
какой положняк по стейт-менеджерам реакта в реально крупных (где в стейте пара десятков объектов по 200 ключей в каждом) приложениях? Все тот же редакс и поделки на его основе?
>>2252691 >какой положняк по стейт-менеджерам реакта в реально крупных (где в стейте пара десятков объектов по 200 ключей в каждом) приложениях? Положняк не хранить в глобальном стейте 2000 записей, потому что это наверняка говонкод и проеб архитектуры. Глобальное - означает доступное отовсюду, стейт - означает, что эти записи постоянно меняются. Зачем тебе 2000 постоянно меняющихся записей, доступных отовсюду?
>>2252686 >Ничем не обоснованное заявление. Личный опыт. У других поспрашивай, то же самое скажут.
>что это функция делает. Это троллинг тупостью? То что она делает превращается в результат, который имеет тип. И этот тип ты видишь в момент ввода названия функции, без необходимости смотреть имплементацию. Ну это самый базовый пример. Есть куча других приятных мелочей типо тех же дженериков.
>>2252698 >Личный опыт. У других поспрашивай, то же самое скажут. То есть ты просто пукнул "бля буду" без попытки обосновать, так и запишем. >То что она делает превращается в результат, который имеет тип. И этот тип ты видишь в момент ввода названия функции, без необходимости смотреть имплементацию Твой брат-тайпскритер уже дал дебильный пример, который как он думал, должен был что-то доказать. Попробуй за него ответить, каким шестым чувством ты там определишь, что лежит в строке и что функция сделала, зная только тип: >>2252690
>>2252697 Я согласен, что там процентов 50 это нахуй не нужная инфа или дубль существующей, но вот остальные 50 процентов реально нужны в приложении. Там эти зачения используется в огромном количестве компонентов (их в проекте около 600).
>>2252690 > В виде какой строки? Манюнь, ну написано же string, это обычная строка. Т. е. обычный результат сложения, но в виде строки, что тут удивительного? > Обычной с числами? Отформатированной? Видишь в кого тебя превратило отсутствие типизации. Ты шиз который видит везде подвох и хочет залезть в детали чтобы успокоить шизу. Для того чтобы выделить отформатированную строку от обычной в тс есть следующее: >type FormattedString = string; Охуеть как удобно, да? И самое главное гадать не надо! > В строке лежат только числа или еще добавлено что-то? А вот сайд эффекты это вообще плохо, независимо от типизации. Ну я не удивлён что ты этого не знаешь, ты ведь даун без типизации.
>>2252704 >Т. е. обычный результат сложения, но в виде строки, что тут удивительного? Так а как ты это узнал, не заглядывая в имплементацию? Конпелятор нашептал? А этот конпелятор он сейчас с нами, в треде? >А вот сайд эффекты это вообще плохо, независимо от типизации Погугли, что такое сайд-эффект, шиз.
>>2252704 >Ты шиз который видит везде подвох и хочет залезть в детали чтобы успокоить шизу At first I was like: >ДА КАК ТЫ БЕЗ ТИПОВ ПОЙМЕШЬ ЧТО ТАМ НАГОВНОКОДИЛИ ВНУТРИ, НЕ ПРИНИМАЕТ ЛИ ФУНКЦИЯ SUM ОБЪЕКТ И НЕ ВОЗВРАЩАЕТ ЛИ ОНА DATE??? But then: >ну и что, что я не знаю, что лежит в строке, я же не шиз, мне не нужны постоянные сомнения в чужом коде
>>2252700 >без попытки обосновать Сейчас специально для тебя буду писать огромные примеры с замерами, делать мне нехуй.
>>2252700 Логично что там будет результат сложения в виде строки наподобии '13' Если бы там было что то другое - мы бы сделали для этого тип и при дальнейшнем использовании этого уже сразу понимали. Пока ты бы лез в имплементацию.
>>2252706 Пока писал ответ увидел твой новый пост, я засмеялся с него. Ну это уже дурка. Тут мы определили это по названию и отстуствию специальных типов. Вот более правильный пример:
function processOrder(id: number): Invoice {}
Вот тут мы сразу видим что надо передать цифру и что вернется обьект с определенными свойствами. Не заглядывая в имплементацию.
>>2252706 По возвращаемому типу, долбоебина тупорылая. Если бы это была отформатированная строка, то в коде было бы следующее: >function sum(x: BigInt, y: BigInt): FormattedString {…}
>>2252721 >Логично что там будет результат сложения в виде строки наподобии '13' Каким образом это логично? Если я вижу функцию sum, которая вместо числа возвращает строку, то первая моя мысль "нахуя и что она там делает внутри, наверняка же не просто сложение и тайпкаст, иначе бы возвращала число", т.е залезть в имплементацию и посмотреть. Может у тайпскрипт-шизов мозг уже по-другому начал работать, но это ваши проблемы. >Тут мы определили это по названию и отстуствию специальных типов. То есть ты расчитываешь, что на каждую отформатированную строку все будут добавлять новый тип? Это болезнь такая? >function processOrder(id: number): Invoice {} Смотри, делаю магию: function createOrderInvoice(orderId) Хммм, что же эта функция принимает и что она возвращает? Типов нет, вообще не понять абсолютно.
>>2252706 > Погугли, что такое сайд-эффект, шиз. Это когда ты в строку-результат сложения добавляешь что то дополнительное, что к этому результату не относится, т. е. > В строке лежат только числа или еще добавлено что-то?
>>2252730 >Это когда ты в строку-результат сложения добавляешь что то дополнительное, что к этому результату не относится, т. е. Ответ неправильный, гугли еще. Бля, и вот это чучело, которое полгода назад вкатилось и до сих пор не разобралось в базовых понятия, пиздит про типизацию и тесты. Иди-ка ты нахуй.
>>2252727 Нет, лучше конечно каждый раз в детали имплементации лезть, чем один раз добавить нужный тип и забыть о деталях, лол. Ну ты своими вопросами совсем дно пробил, надеюсь ты троллишь, не верю что бывают настолько тупые люди.
>>2252725 >Может у тайпскрипт-шизов мозг уже по-другому начал работать Это у тебя он дефектно работает, как у всех жс-шизов.
>То есть ты расчитываешь, что на каждую отформатированную строку все будут добавлять новый тип? В таком случае логично сделать класс для работы с этим и enum (или дочерний класс в зависимости от сложности) для каждого типа форматирования. Все будет с типами и красиво. У тебя вообще нет представления как делать архитектуру? Представляю какой говнокод ты пишешь у себя. Надеюсь, ты еще только вкатываешься и просто начитался всяких шизиков в интернете, и никто больше в этом дерьме не разбирается.
>function createOrderInvoice(orderId) Жс макаки уже типы в названия вписывают. Ну что угодно только бы не работать с ними нормально, пиздец... Не забудь в имплементацию Invoice заглянуть потом.
>>2252741 >В таком случае логично сделать класс для работы с этим и enum (или дочерний класс в зависимости от сложности) для каждого типа форматирования Проиграл. Вместо того, чтобы просто возвращать строку с нужным форматированием, тайпскрипт-шиз наплодит десяток глобальных типов для каждого варианта и будет заставлять всех остальных в них копаться вместо писания кода. Продуктивность и удобство. >У тебя вообще нет представления как делать архитектуру? Ты не знаешь, что такое архитектура программы, если думаешь, что она имеет хоть малейшее отношение к типам. >Жс макаки уже типы в названия вписывают Действительно, зачем давать нормальное название функции и ее аргументам, которое будет отражать назначение этой функции и то, что она делает, ведь можно написать processData(x: number): Order {}, а остальное конпелятор на ухо нашепчет.
>>2252745 >нужным форматированием Каким? Изменена пара символов? Italic? Переведена в Json? Ну я понимаю что для вас это всё одной строкой будет и вы большую часть времени тратите на выяснение того что конкретно. Но адекватные люди делают по другому.
>Ты не знаешь, что такое архитектура программы Ну правильнее было бы сказать структура. Хотя одно понятие входит в другое, а ты просто доебываешься до слов, хотя сам все прекрасно понимаешь, иди нахуй.
>а остальное конпелятор на ухо нашепчет. Ага, а ты дальше вспоминай какие там поля были в Invoice :) С минимальными подсказками в IDE. Ну да, можно jsdoc сделать и prop-types, но не проще типы написать?
>>2252761 Потому что обработчики и обсерверы не клонируются. >отвалились все обработчики,кроме 1го Потому что он у тебя на одном из элементов-родителе стоит.
>>2252482 >Тайпскрипт делает любой проект больше туду листа нечитабельным неподдерживаемым говном
Любой проект становится гавном из-за неправильной архитектуры и закладывания грязного кода как базу. TS + "чистый код" + тесты выдаст охуенно поддерживаемый проект через год и через три
>>2252827 >выдаст охуенно поддерживаемый проект через год и через три ага конечно поэтому через два года выйдёт новая версия тупого скрипта и все бросятся переписывать свое говно с нуля
>>2252841 >>2252843 Это вариант, который проиграл в видовой борьбе. Сейчас может пригодиться для переписывания легаси, но может и есть долбоебы, которые его тянут.
>>2248514 (OP) Хочу сделать полноценную игру (метроид) на жс. Насколько я в жопе? Думаю делать в браузере, без серверной части. Либо специально для этого изучать электрон. Либо не быть долбоебом, взать изучить сишарп, юнити и сделать все не через жопу Что скажете?
>>2253027 Я вижу, что не всегда это требуется. Но с другой стороны я не понимаю, вот, например, приду я на работу. Буду лабать на реакте и typescript. А что же тогда с SEO? Как поисковики будут это дело искать. А ещё без SSR это же будет Client side rendering, то есть пользователю придется ждать пока мой огромный бандл жс к нему придет по интернету.
И в общем я запутался, с одной стороны я не могу освоить SSR - это слишком сложно и надо углубляться в тему кэширования у сервера.
А если без него, то я не понимаю как тогда моё поделие на реакте будет работать.
В 2к21 году clinet side rendering не считается зашкварным?
А ещё я боюсь, что если я не шарю в Gatsby.js и next.js, то тогда придется на потенциального бэкендера перекладывать часть ответственности за генерацию статики, например, заставлять его делать, скажем, на РНР шаблоны под мою верстку. Вместо того, чтоб я делал статику сам на Gatsby.
Короче, я запутался и перестал понимать, что происходит.
>>2253055 >В 2к21 году clinet side rendering не считается зашкварным? Нет. Времена, когда с клиента сдували пылинки и оптимизровали все подряд давно прошли. В 2к22 посетитель ресурса - это терпила, который будет ждать загрузку столько, сколько надо. Вкладываться в дополнительную оптимизацию кабан будет только в совсем крайних случаях.
>>2253115 Ну сам подумай, что лучше выглядит - когда в опенспейсе все сидят программируют синхронно как пловцы или в разнобой, каждый по-своему? Очевидно первое, поэтому не задавай глупых вопросов.
>>2253102 >ну а как по нажатию кнопки создать новый массив элементов button.addEventListener('click' , ()=> { const arr = []; arr.push(document.createElement('div')); })
>>2253102 >как по нажатию кнопки создать новый массив элементов тогда? Читай оппост. >Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». И приложи ссылку на песочницу, где есть примерный вариант твоей проблемы.
Когда врубаю инспектор для проверки адаптивности в файрфоксе, на страницу будто бы добавляется width=device-width, а его вообще нет на странице. Как фиксить?
>>2253312 Потому что ты пытаешься заучить, а надо просто понять. Там простейший ориентированный граф. Все равно, что понять кто кому сестра брат дядя кум тетя отчим зять теща, если понимаешьк ак устроены принципы генеалогического древа.
Тебе всегда будет сложно (и в итоге ничего не получится), пока ты заучиваешь, а не изучаешь.
>>2253081 Да. У меня мозги кипят от того как в js всё завернуто с этими прототипами, которые еще и создаются неявно и сами ссылки друг на друга проставляют. Я не просто удивляюсь, я НЕ ПОНИМАЮ.
>>2253064 >arr.__proto__ === Array.prototype дает true потому что "прототип" массива, который содержится в свойстве прото или лучше его брать через метод getPrototypeOf, так вот этот прототип действительно равен свойству prototype конструктора Array, а prototype это объект, в котором содержатся все методы функции-конструктора, которые он передаёт своим инстансам-объектам. Это равенство - результат построения прототипичной цепочки в джаваскрипте, а именно: Child-constructor.prototype = Object.create(Parent-constructor.prototype);
>>2253320 Ты же вот понимаешь, что если у тебя есть сестра,а нее есть муж, то он тебе шурин? А если у тебя есть жена, то твоя мать твоей жене свекровь, а жена твоей матери сноха?
А там еще больше правил, кто кому приходитс. В жс же их буквально 2. У каждого объекта есть архетип и прототип. Все. Архетип - это то чем характеризуется его набор Internnal Property (есть простый объекты, примитивы, прокси, вызываемые объекты (которые могут быть конструкторы, стрелочные, es5-функции, функции-методы, boun-функции, не суть) - у каждого архетипа свой набор Internal свойств, из которых вытекает специфика их поведения.
И есть прототип (а у каждого прототипа еще прототип - так получается цепочка) из которой складывается наследование.
Все. Архетип с Internal проперти отвечает за специфику поведения реализованную Рантаймом, Цепочка наследования прототипов отвечает за специфику поведения реализованную пользователем (тобишь программистом).
Всего два правила - Архетип, и прототип. Не больше, не меньше.
Единственное там не употребляется термин Архетип, а просто рассматривается каждый из ни в виде набора Internal Property. Но вот каждый такой набор - это и есть архетип.
Отличия архетипа от прототипа в том, что Internal Property - собственные.
С Новым Годом, мужики! Решаю задачки на Edabit. Решил задачку(пик 1) с помощью обычной арифметики(пик 2), но также обнаружил решение с помощью рекурсии(пик 3), которую пытаюсь освоить.У меня возникли сложности с пониманием как она работает в данном случае. Прошу расписать логику как это дело с 3го пика работает(для тупых), пожалуйста. Всем добра.
>>2253385 >пишу на жс с момента его появления в 95-97 году Что по твоему мнению, само хуевое, что происходило с языком за весь твой опыт? Мимо миддл, пишу на жс 3 года
>>2253391 Почитай про стек вызовов, cоздай сниппет в хроме и медитируй пошагово над выполнением кода, как функция создает свою копию в стеке вызовов и передает туда переменные.
>>2253410 Спасибо анончик. Вот такого способа наяривания логики в сниппете для наочности мне не хватало в учебных материалах. Теперь буду знать в какую сторону воевать с подобными вопросами.
>>2253064 В общем, я понял. Любой литерал который мы объявляем имеет два свойства, __proto__ и prototype. prototype это его личное свойство, значение этого свойства - объект, куда можно записывать свои переменные и функции __proto__ же содержит в себе ссылку на prototype родителя и используется для подтягивания уже переменных и функций объявленных в родителе, реализует то самое prototype chain.
В чем причина хайпа вокруг Vue? Посмотрел тут краш курс. Понравилось, что многие вещи идут из корлбки и не надо тянуть всякие левые библиотеки, которые постоянно устаревают или теряют актуальность. Понравился стейт менеджер за то, что куда более минималистичен чем редакс. В остальном профитов не заметил. Код в компонентах нагруженный, скобки в скобках в скобках, логика с разметкой и стилями свалены в одну кучу. В чем прикол тогда? Есть немало людей, что дропают реакт в пользу вью.
>>2253580 > В остальном профитов не заметил Гланый профит это то, что в отличии от реакта вью не ререндерит полностью все дочернее древо у обновившегося компонента, поэтому можно говнокодить без потерь производительности. Ну и без лишней мозгоебли с зависимостями как реакте.
>>2253580 >Код в компонентах нагруженный, скобки в скобках в скобках, логика с разметкой и стилями свалены в одну кучу. Ну так хуярь все на jsx, вью официальную поддержку для дурачков вроде тебя осуществляет. >логика с разметкой и стилями свалены в одну кучу. в твоем хуякте точно также логика и разметка свалена в одну кучу, и стили тоже (если ты используешь jss или scoped).
>>2253580 Просто ты живёшь в восточной части России, а в Китае вью намного популярней рякта. Переезжай в Москву, европейский город в Мордоре, или учи вуй.
>>2253583 >как такое же говно со снежинками как в бэ побыромо сделать? Создаешь n-ое количество элементов-снежинок, задаешь им background, position: fixed и радиус бордера чтоб они стали крглыми, потом через animation задаешь чтоб они меняли свою позицию
>>2253583 Пидарасы, нахуя вы это делаете, дебилоиды блядь обоссанные? Каждый год какой-нибудь пидор где-нибудь приделает это мельтешащее говно! Сука, в ебло себе муравьёв лучше насыпь, пусть они у тебя по глазам ползают, а не у нормальный людей, пидор блядь, и ты, и твой поехавший обу!
Судари фронтендеры, подскажите, заебался я, почему у меня на ютубе не получается динамически добавить свою кнопку, чтобы она нормально выравнивалась по вертикали? Там кнопки через svg задаются, я png сделал. И вложил это всё в button с классом ytp-button. Почему вообще эта button куда-то вниз уехала? Почему остальные не уезжают? Моя кнопка, как и остальные, отображается с display: inline-block. Размеры такие же. Я хз, что не так.
Стоит ли откликаться на вакансию где есть 1-2 технологии про которые я ничего не знаю или работодатель не всегда подразумевает что нужно знать всё из списка?