Это копия, сохраненная 28 февраля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в Ад.
Для программирования на HTML https://jsfiddle.net/
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: что я хочу получить, что я для этого делаю, что я вместо этого получаю. Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Руководство для вката:
https://pastebin.com/9yRADC0s
Ну я яитаю хтмл ксс
Вчера получил оффер на джуна реакт. Но сейчас меня волнует вопрос - часто ли джуны верстают? Просто я верстаю очень медленно и с полноценной поддержкой от стэковерфлоу. Да и хотелось бы узнать примерные задачки джуна. Компания продуктовая. Не ДС.
Да я думал меня не возьмут даже, я на половину вопросов только ответить смог и пузырек написал еле как. Так что уже с грустью уходил. А тут позвонили и говорят мы вас берем.
Ну, значит на месте узнаешь.
Че спрашивали-то?
Сейчас забавная ситуация. Норм мидлов и синиоров почти нет на рынке, а джунов просто дохуя. Так что или сиди года полтора по 6 часов в день учи и вкатыайся на мидла на 100+к , или просто забей. Вакансий для джунов мало и это в основном такое дно, что ты просто охуеешь.
Все верстают. Чем больше новых фич тем больше верстки
Бамп, завтра уже собес ааааа первый в жизни. В дс две вакансии на ноде, если обосрусь то идти будет не куда.
Переизбытка мидлов никогда и не было.
Html/css развивается, очень много новых классных возможностей, много всего теперь можно без программирования и костылей решать, выучи верстку. Хотя бы интерактивные курсы кокодемии пройди все, там подписка 300р месяц на все курсы.
Способ сортировки списков. Чаще всего используется когда нужно отсортировать массив на собеседовании
На хабре недавно про это была статья. Пережиток прошлого скорее всего. Ну и вообще в программировании плохо без логического мышления, а алгоритмы прекрасно показывают уровень развития логики.
>>Что за пузырёк?
Ебать пиздец нахуй.
>>Пережиток прошлого скорее всего.
Алгоритмы сортировки
Ебать вы тут программисты.
Вообще это довольно грустно конечно.
Ну я же не в программисты вкатываюсь, а в реактомартышку. Что ты там сортировать мне предлогаешь? Есть Array.prototype.sort же.
Это маркетолух этой параши.
Ну так они превращаются и остаются работать. Или еще дольше работать и выо фриланс. А долбоебы и ноют, что нету мидлов. Так мидлам и работа не нужна, она у них уже есть. Сеньерам тем более.
У тебя частота обновления монитора 60 кадров в секунду. Если укладываешься в 16 мс, то дальнейший рост производительности бессмыслен.
Так я жс только учу.
Так парни есть вопрос. Стажируюсь в JS. Написал тестовое задание, все вроде норм, но наставник говорит не используй delete. Есть объективные причины почему этого не стоит делать?
Без кнопки обойтись проще) А вот писать каждый раз велосипед для удаления свойства из объекта сложнее
Тебе же не поле нужно удалить, а получить объект без поля. Ну и создай объект без поля
Че делать нужно?
На этом хоббе можешь и деньги больше чем 200р в день делать.
Ой да копейки, на самом деле, но я рад что хотя бы забрался в эту сферу, в моем городе с 200к населения, такой работы считай нет. 25к, для человека без опыта работы программистом, нормально. Обещают что зарплата будет подниматься с ростом скила.
Это как бы синонимы, можно создать, можно удалить получится одно и тоже, только в одном случае это 1 строчка, в другом строчки 3. Это оправдано?
Реальная фирма не цыгане.
Я прочитал конечно статью на хабре сейчас. Но проблема разве не в том что лучше там где нужна копия объекта, а не ссылка, создавать копию, а не бороться потом с проблемой мутаций?
Конечно. Тебе похоже это поле вообще не нужно, помоги мне понять, зачем оно в объекте появилось в первую очередь?
Нет, не одно и тоже.
Так сложилось исторически, добро пожаловать в легаси прямо с порога. Используй const и не выебывайся
Сам-то понял, что написал?
Это просто корзина магазина тестового сайта. Объект ассоциативный массив, id товара ключ, внутри запрос с БД, с названием, описанием, ценой и т. д. Удаляем товар он удаляется в объекте.
Но вопрос не в конкретном примере. Потому что, оператор есть, значит должен быть повод почему не использовать его.
Потому что так заведено. Ебаная ты обезьяна, я сейчас тебя водой оболью. Ты деньги получать хочешь, или об операторах рассуждать? Если первое, то закрой ебало и забудь о существовании delete. Диды говно жрали и ты жри.
Облазил весь инет, диды нормально юзают delete, не юзают только когда нужно совместимость с древними браузерами, и когда нужно больше скорости, obj[key]=undefined работает на порядок быстрее, но не удаляет свойство полностью.
Если тебе нужен ассоциативный массив то возьми Map, у delete нет применений
Скажите, почему эту хуйню нельзя поправить? Вреда же явно не нанесет. Вот просто взять и сделать, чтобы 0.1 + 0.2 было бы, блядь, равно 0.3. Разве такая хуйня не может приве5ти к хуевым последствиям?
Это всего лишь потребует больше памяти и больше времени для операций. Опционально нужно будет поменять процессор. Потом правда 1 поделишь на 3 и память закончится
>learn.javascript
как основной учебник + задачи
>мдн
справочник посмотреть методы массива, или почитать про какой нибудь апи, можно использовать как учебник, но примеры кода выглядят сложнее и менее понятны чем кантор
>w3
энциклопедия для задротов, у всех в закладках, почитают как нибудь потом, но не в этот раз
да не особо много воды
Джигиты, насколько адекватно использовать флекс и грид в одном проекте?
Надо выполнить функцию перед закрытием вкладки.
>Нахуй let и var
диды писали вар который хуй кладет на скоуп, потом это говно кое как стандартизировали и высрали лет
ну так и учи жабу/котлету
Окей, спасибо!
Переписал вот так, теперь вообще нихуя не работает, даже ошибку не выдает.
openModal() тоже на всякий случай прикреплю.
Используй spread операторы. Таким образом ты не мутируешь объект. т.е чтобы удалить свойство достаточно сделать
const data = {prop_to_remove: 1, usefull_prop: 2};
const {prop_to_remove, ...rest} = data;
console.log(rest);
console.log(data);
Выполни в браузере и ты удивишься
У тебя элемент не существует, у которого ты поле дергаешь.
мимо ни строчки не писал на этом дерьме
,,,
Ты ебанутый, какой порядок пропертей в объекте? Иди прочитай разницу между массивом и объектом, на работу его взяли и он про операторы тут рассуждает, ну охуеть теперь.
Хоть бы догадался в консоли браузера взять тот же пример, поменять местами проперти и чекнуть результат, прежде чем так обсираться.
>на работу его взяли
сукин сын, жулик ! я сейчас же обзвоню все конторы с хх, и скажу, что у них работает жулик !
Я уже обзваниваю сорок минут как.
Ситуация ни разу не смешная. Берут на работу человека, который базовых типов языка не знает. Да, можно постоянно повторять, что не стыдно чего-то не знать и стыдно не спросить, но вот опция прочитать первую страницу любого справочника по языку или тупо за минуту проверить механизм работы структуры в девтулсах почему-то забывается. Ну да, это ведь думать придется, проще же трудоустроиться а там видно будет, что непонятно - мидлов дерну, у них же дохрена времени на меня.
А потом, сука, на ревью такие волосатые велосипеды разгребать приходится, что просыпается нейрофизиологический интерес к автору кода.
Ладно, простите, долго копил огонь в отверстии просто.
> проще же трудоустроиться а там видно будет, что непонятно - мидлов дерну, у них же дохрена времени на меня
А хуле нет? Ты думаешь, люди идут на работу ни ради денег, а чтобы всем показать, как они хорошо языки знают?
А, ну раз ради денех, то можно и коллег подоебывать с элементарными вопросами с первой страницы гугла. Варианта с интересом к профессии (даже ради тех же денех) у нынешних вкатывальщиков нет, понятно.
Интерес есть конечно, но как бы кушать тоже хочется. И штаны с кроссовками новыми купить.
Ты ее все равно правильно не сделаешь потому что нет четкого определения что там семантика а что нет, есть целые блядь сука нахуй ВИДЕО КУРСЫ какой из стулов выбирать артикль или сектион. Юзай див и не парься, пока тебе сеошники прямо не скажут для семантики поставить нужный тег в нужном месте.
Ты так говоришь, как будто зайдя в гугл или на мдн вместо вопроса коллеге тебя лишают зарплаты. Хорош пиздеть.
article можно вырвать из страницы, вбросить на другую, и он выглядеть будет нормально. Типа "увеличить хуй сейчас [ссылка]". section часть страницы, которую вырвать нельзя. Типа "альтернативные способы увелечения хуя".
Это не удаление свойства, ведь свойство prop_to_remove осталось у объекта data. А твои const не позволят записать ссылку на новый объект без ненужных свойств. Т. е. вообще не понятно зачем ты это высрал и как это отвечает на поставленный вопрос.
Не могу осилить цсс ебаный, хуйня кривая получается, сколько в реальной работе придется верстать?
А где в постановке задачи говорится. что нужно именно удалить свойство и именно у оригинального объекта, и почему копия объекта без ненужного свойства не выполняет эту поставленную задачу, мм?
delete не юзают по нескольким причинам:
1. Дроч на иммутабельность
2. Кривая работа в ие
В дроче на иммутабельность, при его избыточности на петпрожектах есть здравое зерно на больших проектах с командой разрабов - безопаснее создать новый объект в нужной тебе конфигурации и работать с ним, чем надеяться, что код другой макаки не упадет от сайд-эффекта твоего кода в виде пропавшего свойства в объекте.
Блять учу неделю и уже понимаю что цсс это все, хтмл тупо текст в тегах, основную часть времени это дроч ксс
>А где в постановке задачи говорится. что нужно именно удалить свойство и именно у оригинального объекта,
Это следует из определения оператора delete:
>The JavaScript delete operator removes a property from an object;
>и почему копия объекта без ненужного свойства не выполняет эту поставленную задачу, мм?
Потому что у целевого объекта остается целевое свойство, очевидно.
>delete не юзают по нескольким причинам:
У тебя есть словарь ключ-значение, как ты собрался удалять ключи без delete? Будешь каждый раз при удалении создавать копию объекта? Тогда поздравляю, ты только что породил очередную порцию говнокода.
Какой же все таки джаваскрипт охуительный язык, пиздец просто!
Ты знаком с grid и flexbox? Там вообще изи всё делается
Какого хуя ты только что придумал что в задаче нужно именно удалять свойство у начального объекта? Прочитай изначальный пост, там про то, что ментор наказал не использовать оператор delete. Значит, задача решается другими способами. Какими - расписали выше, с вероятными обоснованиями почему так.
>Какого хуя ты только что придумал что в задаче нужно именно удалять свойство у начального объекта?
Скотина тупорылая, оператор delete только это и может сделать. Если ты его используешь, но твоей задачей не является "удалить свойство у определенного объекта", значит ты его используешь не по назначению.
>Значит, задача решается другими способами.
Какая задача, дебил? В том то и дело, что "сказал не использовать" ничего не говорит и нужно знать конкретную ситуацию в которой он использовал оператор delete, а дальше можно уже сделать вывод, либо ментор пуганый дебил вроде тебя, который при виде delete срёт в штаны и начинает нести бред про иммутабельность, либо это он использовал delete не по назначению, а ментор не стал заморачиваться и сказал "не используй delete".
И именно про "чтобы удалить свойство достаточно сделать" ты написал в своём посте. Если тебе нужно удалить свойство, то достаточно использовать delete. Если тебе нужна копия объекта без определенных свойств, то можно воспользоваться spread оператором, как в твоём примере.
насколько я знаю в этом учебнике 3 книжки
>прототипное наследование
меньше слоев абстракции, по сути объект может иметь ссылку на родителя а может и не иметь, можно юзать конкатенации, но множественного наследования как в крестах тут нет, нельзя присосатся к нескольким родятелям.
- посоны, батя грит не использовать делит, как быть?
- использовать делит
охуенно, жвач на острие-шуе
>батя говорит не носить розовое, потому что вырос с установкой - розовое == пидор
>носи розовое
>РЯЯЯ НО ВЕДЬ СКАЗАЛИ НЕ НОСИТЬ ЗНАЧИТ НУЖНО ГОВОРИТЬ ПАЧИМУ ЕМУ НЕ НОСИТЬ!!! КАКТЫСМЕИЩ!!
Проиграл с малолетки.
>прототипное наследование
Нигде не используется. Там где нужен ООП-js используют TypeScript, а через пару годиков и в js классы до ума доведут.
>call, apply, прокси
Понимание с опытом приходит.
Тебе не читать нужно, а писать код. Материала с https://learn.javascript.ru/ вполне достаточно для того чтобы начать это делать. Уже после практики можешь еще какую-нибудь книгу прочитать.
>оператор delete только это и может сделать
Спасибо, кэп. Осталось всего ничего - не использовать его, согласно условию из изначального поста.
>либо ментор пуганый дебил вроде тебя, который при виде delete срёт в штаны и начинает нести бред про иммутабельность
Назвать аргументы бредом != опровергнуть их.
>это он использовал delete не по назначению, а ментор не стал заморачиваться и сказал "не используй delete"
Но ведь ты же сам написал, что делит только удалять и умеет, как его можно использовать не по назначению?
Впрочем, судя по последующим постам, не удивлюсь, если тот сверхразум таки справился с этим.
Никакого пиитета перед иммутабельностью не испытываю, выше писал про главную причину дроча на нее на больших проектах с командой. Это банально снижает риски для проекта в условиях, когда на нем трудятся десятки макак.
>>73630
Да, да, боевые аналогии. Вот только не послушав батю максимум, что случится - он наорет на тебя, а вот с работы за необучаемость и привнесение трудноотлавливаемых багов (это же жс, детка) вполне могут попросить на мороз.
>согласно условию из изначального поста.
Какому условию? Которое ты нафантазировал? Человек спросил "почему не использовать delete", ты привел пример создания копии объекта без определенных свойств, т. е. пример, который к оператору delete никак не относится, потому что у него другое предназначение.
>Но ведь ты же сам написал, что делит только удалять и умеет, как его можно использовать не по назначению?
Тебе нужен объект X, который будет обладать определенными свойствами объекта Z, вместо того чтобы создать копию объекта Z не изменяя его, ты удаляешь эти свойства у объекта Z и создаешь из него объект X.
>Это банально снижает риски для проекта в условиях, когда на нем трудятся десятки макак.
Так и при чём тут delete? Снижает риски осознание того, что удаление свойства объекта может повлиять на код, который обращается к этому свойству, а не запрет на использование каких-либо операторов или конструкций.
>У тебя есть словарь ключ-значение, как ты собрался удалять ключи без delete?
С помощью Reflect.deleteProperty
Если компания продуктовая и ты на фуллтайме, то не похуй ли с какой скоростью ты верстаешь?
>Ну да, это ведь думать придется, проще же трудоустроиться а там видно будет,
Не проще.
Трудоустроится совсем не проще. Это я тебе как javascript-ninja, знающий все тонкости языка, но без работы, говорю.
>Какому условию? Которое ты нафантазировал?
>наставник говорит не используй delete
Я уже хз как тут изъясняться.
>ты привел пример создания копии объекта без определенных свойств
Начнем с того, что у тебя сломан детектор и пост с кодом писал другой анон.
>который к оператору delete никак не относится, потому что у него другое предназначение
...и дающий на практике тот же эффект, что и удаление проперти.
Тут ты возразишь, что нет, не тот же - ведь в исходном объекте проперти осталось.
Что ж, давай разберем по частям варианты:
1) Если объект пришел к тебе из чужого кода, тебе с вероятностью 99% не нужно удалять в нем проперти - хер его знает куда ссылка на этот объект была отправлена еще и что с ним делается после выполнения твоего кода. Удаляя в нем проперти ты неиллюзорно можешь сломать код, который находится в километре от места правки и был написан год назад другим стажером. "Понимать надо" - аргумент на петпрожекте, но не для галеры, которая набирает джунов на проект с большой кодовой базой.
Если на проекте нет ts (а его у них нет), то образовавшийся баг потом еще и будет сложно локализовать.
2) Если объект был создан в скопе кода того долбоеба, то я совершенно не против делита (вопрос только нахрена он в свой же объект засунул ненужное проперти). Пусть он так и ответит своему ментору, что на дваче в холиваре сцепились дед с батей и разрешили ему делитать проперти.
Земля ему, как говорится, пухом.
>...и дающий на практике тот же эффект, что и удаление проперти.
Так неправда же. Удали своим методом проперти у инстанса класса, какого-нибудь. У тебя на выходе новый объект, и не являющийся инстансом того же класса, который был изначально. Эффект совершенно иной. даже семантика разная. Оператор - удаляет свойство. Ты создаешь объект без свойства.
мимо другой анон
О, твиттер-синьоры пожаловали. Добро пожаловать, в это сложно поверить, но тут посты больше 200 символов бывают. В том посте следующее за процитированным предложение разбирает эту ситуацию.
>наставник говорит не используй delete
Ну и? На этом пост заканчивается? Нет, за этим следует:
>Есть объективные причины почему этого не стоит делать?
Так почему ты решил, что условие именно "не использовать"? Как раз наоборот, человек хочет использовать и не видит объективных причин кроме "наставник сказал".
>Начнем с того, что у тебя сломан детектор и пост с кодом писал другой анон.
Так если ты встреваешь в цепочку постов, то отвечай за того анона, потому что цитировал изначально я его пост.
>1)
>2)
Зачем ты пытаешься натянуть сову на глобус и приводишь примеры в которых delete использовался бы не по назначению?
Тебе уже привели подходящий пример:
ты работаешь с объектом внутри которого какой-либо словарь, у него есть два метода:
getValueOrDefault(key){
return searchKey in someDic ? someDic[searchKey] : someDic["NotFoundValue"];
}
И:
removeKey(key)
{
delete someDic[key]
}
Какие причины не использовать в данном случае delete? Потому что наставник так сказал?
>наставник говорит не используй delete
Ну и? На этом пост заканчивается? Нет, за этим следует:
>Есть объективные причины почему этого не стоит делать?
Так почему ты решил, что условие именно "не использовать"? Как раз наоборот, человек хочет использовать и не видит объективных причин кроме "наставник сказал".
>Начнем с того, что у тебя сломан детектор и пост с кодом писал другой анон.
Так если ты встреваешь в цепочку постов, то отвечай за того анона, потому что цитировал изначально я его пост.
>1)
>2)
Зачем ты пытаешься натянуть сову на глобус и приводишь примеры в которых delete использовался бы не по назначению?
Тебе уже привели подходящий пример:
ты работаешь с объектом внутри которого какой-либо словарь, у него есть два метода:
getValueOrDefault(key){
return searchKey in someDic ? someDic[searchKey] : someDic["NotFoundValue"];
}
И:
removeKey(key)
{
delete someDic[key]
}
Какие причины не использовать в данном случае delete? Потому что наставник так сказал?
Не
>хочет использовать и не видит объективных причин кроме "наставник сказал".
, а прямо спращивающий
>Есть объективные причины почему этого не стоит делать?
На что и были приведены примеры и даны причины. Если ты прочитал его пост и увидел в нем задачу - копротивляться ментору, а не найти обходные пути согласно наставлению, то тогда вопрос отпадает.
>подходящий пример
подходящий кому, тебе? Тем что объект используется как мапа? Делитай ради бога, я не против.
>На что и были приведены примеры и даны причины.
Якобы там что-то может случиться или что-то вдруг. То есть не нужно использовать прямой метод, нужно создавать новый объект, засирая память, только из-за иллюзорно возможной ошибки.
На работу меня взяли, а не его, че бомбишь.
Ты заебал.
Стажер написал, что это нужно как ассоциативный массив для корзины.
Ему посоветовали использовать предназначенную для этого мапу, чтобы не делать велосипедов. А при работе с объектами, а не мапами, особенно пришедших не из его кода, делать копию без проперти в одну строку.
Ты же предлагаешь решение, где корзина сама будет объектом, у нее вложенный объект, работающий как мапа, у корзины будет метод с доступом к проперти объекта по имени из ввода пользователя (!) и делитом пропертей. А когда на ревью его спросят - какова хуя, пусть так и отвечает:
>Якобы там что-то может случиться или что-то вдруг
>только из-за иллюзорно возможной ошибки.
Да-да, именно это и называется "не использовать прямой метод". Шуе ппш.
>одна из линий прозрачная
opacity: 0
>все линии перпендикулярные
transform: matrix3d(...)
>одна в форме котенка
content: ''
Наконец-то технологии CSS дали ответ на тот ролик. https://www.youtube.com/watch?v=UoKlKx-3FcA
макаба сожрала эмодзи с котом в content
> У тебя есть словарь ключ-значение, как ты собрался удалять ключи без delete? Будешь каждый раз при удалении создавать копию объекта? Тогда поздравляю, ты только что породил очередную порцию говнокода.
Какой же тупой вкатыш. Поработал бы хотя бы на нескольких реальных проектах для начала, вместо того чтобы бездумно серить в тред. Говнокод — это удаление свойств объекта через delete. Delete по щелчку пальца может создать овердохуя багов. А адекватный код — это как раз вернуть новую сущность. Удалить что-то в словаре ключ-значение намного лучше методом filter, с сборщик мусора просто уберёт старый неиспользуемый объект
>нужно удалить свойство
>не, нахeq, мы так не делаем
>лучше создадим копию нашего йоба-объекта без этого свойства
>оптимизация? кому она нужна?
Слабая пека или вообще мобилка, а тебе надо закупиться по-крупному. Оптимизация теперь - плохо?
Не, ну это уже толстота какая-то. Алло, это же корзина, там удаление по одному товару делается. Даже если ты набрал 1000 товаров и на сайте сумрачные гении юи дизайна запилили массовое удаление, разница между этими реализациями будет измеряться в миллисекундах даже на бабушкином калькуляторе. Да у тебя ажакс дольше отправляться будет.
Ну то есть оптимизацией можно пренебрегать ради призрачяной может быть ошибки?
Какой оптимизацией в удалении товара в корзине, что ты несешь, поехавший
Ты кого спрашиваешь, программиста?
Ты менеджеру проекта, который зарплатой за качество отвечает, или конечному клиенту предложи выбрать - оптимизация в одном действии (удалении одного товара) в 10мс или возможный баг в рандомном месте оформления покупки на сайте.
Аа, не знаешь кто это, понятно. Иди байтоебить в скриптовом языке дальше и надейся, что мамка сможет прокормить тебя еще пару недель до следующего собеседования.
>или возможный баг
Опять эти домыслы. А реальные примеры этих багов есть, так чтобы прям вот заставляли иммутабелить?
Да. Переизбыток ОЗУ.имено с ним борятся дрочащие на иммутабельность не к месту долбоебы.
Потом из-за таких долбоящеров мы смотрим на заглушки минутами и ждем прогрузки страницы, всё это во времена высокоскоросного интернета в каждом доме.
Да мне в целом похуй. Решил подписать. Энивей зп выше чем мне в других местах предлагали процентов на 30%.
Это норма. У нас вообще 40к по ТД только. Остальное переводом с карты на карту. В Рашке же живём, тут айти душат налогами как будто не в офисе сидим, а нефть качаем.
А так это только про корзину, где очень опасно использовать делит, в других местах то ты такие велосипеды не делаешь
Где? Если так все просто значит фронты просто нахуй никому не нужны? Или я нихуя не понимаю?
Да ебанаврот, открой ты hh уже наконец и сравни требования в вакансиях со своими скиллами. Откуда мы должны знать что там у тебя за пара приемов и в какой залупе ты вообще живешь?
Залупа еще та
>Ребята какая средняя скорость верстки что бы не быть обоссаным
если ты работаешь 8 часов в день 5 дней в неделю то абсолютно похуй
Почему? Нихуя тебя не понял
Хы.
>>73180
Ну ты и загнул.
>>73102
>console.log(1-0.67); //0.32999999999999996
console.log(+(1-0.67).toFixed(2)); //0.33
>>73105
>Вот просто взять и сделать, чтобы 0.1 + 0.2 было бы, блядь, равно 0.3. Разве такая хуйня не может приве5ти к хуевым последствиям?
+(0.1+0.2).toFixed(1) //0.3
Ну всё, теперь пиздец, и щас точно - всё везде взорвётся нахуй.
Если б не работа, не семья, не тугосеря, сидел бы сча пилил ML на WASM, и эмулятор Gameboy на JS под KaiOS
Коротко и ясно. Осталось терь стандартизировать всё это дело, и вшить это в браузеры, по дефолту.
Но с женой и тугосерей так-то прикольно, а вот работа заебала
Суть в другом. Вкатышей после курсов с опытом в 3 месяца слишком дохуя и толку от них 0. А вот мидлов практически нет. Такие дела
Это не так работает.
Чтобы получитьзанчок джун\миддла\сениора - нужен реальный опыт работы в реальной компании. Ты можешь 20 лет фрилансить и быть профи, но если пойдешь трудоустраиваться - то ты будешь джуном.
я по уровню знаний а не стажу, да и даже если придет ждуном через полгода может попробовать повысится на текущей работе, есть гипотетический шанс что позовут на собес мыдла, но это как в лотерею выиграть, я бы не расчитывал.
Реально даун? Какая нахуй оптимизация, вкатыш ты недоделанный, никто в продакшене не удаляет сущности через delete. Сейчас бы на списках экономить, тем более в жсе. А ну скажи мне, в чем проблема создать копию? У твоего сяоми пятилетней давности 2 гига оперативки не хватит пока сборщик мусора отработает? Никто в реальных проектах такой "оптимизацией" не занимается. Охуеть, предмет из корзины будет удаляться на 3 мс быстрее, заебись.
Для корзины выше уже посоветовали взять мапу, а для объектов делит не нужен от слова совсем.
Если возник кейс, при котором тебе нужно удалять проперти объекта, ты скорее всего используешь объект как ассоциативный массив, а мапа для этих целей лучше приспособлена.
>а мапа для этих целей лучше приспособлена.
Чем лучше? Она как минимум медленнее для юзкейса map[sting]any
ну давай экономить на спичках
Кто выше жаловался что возможности языка не используются по назначению? Или неиспользовать делит это плохо, а неиспользовать мапу ЭТО ДРУГОЕ?
>Где мало вкатышей и вакансий для новичка нормально
не существует, где есть специалисты там есть работа, где специалистов нет, работы тоже нет.
а если они колд вар2 затащат то озолотишься
Map это не возможности языка. Это элемент стандартной библиотеки. Возможности языка - это как раз map[string]any на нативных объектах, с delete и шлюхами.
Для несогласных, я предлагаю пилить отдельный класс наследник Array на каждую сущность под семантику бизнес-логики.
И тут бизнес встает перед дилеммой:
Или заниматься оптимизациями миллисекунд по настроянию вкатывальщика с двачей, тратить на это ресурсы программистов, привлекать более дорогие кадры чтобы проанализировать последствия сайд-эффектов, кинуть еще пару тестировщиков или даже автокуа для покрытия регресса, связанного с тем, что эта оптимизация теперь имеет сайд-эффекты, замедлить жизненный цикл продукта просрать конкуренцию из-за выросших издержек или пропущенных багов, гроб гроб сокращения банкротство
Или
Не юзать сраный делит на общих объектах
Выброси из головы мысль, что ты всех умнее и знаешь, как лучше. Пока ты будешь вылизывать свой код, тебя обскачут кабанчики с неидеальным, но уже работающим кодом.
>20 лет фрилансить
>прийти в компанию джуном
то есть ты 20 лет собираешься делать сайты-визитки блять или что?
Где нет-то? В поисказ работы? А нахуя мидлу искать, если у него работа есть? Мидлов полно, но работу им искать незачем. В ит-руководстве реально какие-то дауны.
Разумеется вкатышей будет полно, ибо они на то и вкатыши, чтобы пытаться вкатиться.
Не важно, что ты делал. Сабжевая иерархия - чисто корпоративный нюанс, и не имея опыта корпоративной разработки - ты джун, наплевать с каикм багажом знаний. Ясно?
Мутная контора. Если нет нормального трудового договора, то это звоночек
Там тоже нужны мидлы и сеньоры, я как то пытался в китайский - не осилил. Значки вместо букв это хуета, а вот разговорный - там пиздец. Мало того что произношение не как у европейцев, так еще и ебучие интонации меняющие полностью смысл слова. Порог вхождения пиздец, эта вам не байты ебать.
норма, обычная защита, что бы тебя быстро уволить в случае чего.
Но если тебя хотят уволить, так и так выдавят как гной.
В таких компаниях наоборот хорошо работать, они могут тебе и 300к платить, не боясь что ты останешься у них на всю жизнь
Как вариант можно в base64 отправлять в виде строки
>Но если тебя хотят уволить, так и так выдавят как гной
так и есть захотят выжить, сам уйдешь.
Осилил 2/3 профессии JS front на hexlet.io (+ 2 тестовых проекта на ноде), но отложенный на вкатывание бабос не бесконечен, да и там уже начинается какая-то совсем не джуновская поебень, и к тому же в этой профессии какого-то хуя нет html/css (они на хекслете в отдельную профессии вынесены). Решил по фасту вкатиться в html css , сделать какой-нибудь тестовый проджект на js/html/css и пытаться устраиваться уже на джуна.
Посоветуйте пожалуйста годный (и в меру краткий) курс по HTML/CSS, ибо боюсь, что на хекслете я еще два-три месяца буду вариться в куче не особо нужного джуну материала. Пока прошел микрокурсы на code-basics по css html, там были самые основы. Собственно, нужно довести скилзы до такого уровня, чтобы мало-мальски простые джуновские проекты делать.
Всем заранее спасибо за адекватный ответ.
Это не так делается, ты сначала отдельным запросом загружаешь картинки. Наприпер на Amazon S3. Он тебе возвращает список урлов по которым будут доступны твои картинки и вот эти урлы ты сохраняешь уже в свою запись в бд
Это экономия на спичках. Нахуй не надо никому.
Они ж вроде платные, да? Ты там проходил? Насколько там кратко, насколько понятно, расскажешь?
Нет, я сам учил. Просто брал и верстал. Но по-поводу кокодемии хорошие отзывы. Берешь и в интерактивном окошке кодишь. Часть платно, часть бесплатно.
Спасибо.
А что конкретно ты верстал? Вот просто без знаний находишь тестовый проект - и каждое нужное действие гуглишь?
https://www.templatemonster.com/ru/free-templates/
Ну вот к примеру. Качаешь и пытаешься сделать. Все непонятное гуглишь. Ну и можно книжку какую-нибудь параллельно читать. типа
Responsive Web Design with HTML5 and CSS (2020)
Нет. С чего бы? Всего 100к в месяц. Одним переводом. Никаких признаков ведения бизнеса. Может тебя мамка обеспечивает деньгами. Как они проверят?
https://www.templatemonsterpreview.com/ru/demo/54714.html?_ga=2.181420323.580274328.1597223712-1469285457.1597223712
попробуй вот этот. Мне он показался достаточно простым и распространненым, в плане того что на работе будет встречатся
Он стоит 99 бачей или я чего-то не понял? Я к сожалению на мели, и заплатить за него не смогу :(
Может, есть какие-нибудь советы по поводу бесплатных шаблонов?
а вот тут на самом деле хуй знает, надо читать эти новые законы о самозанятых, как оно в них щас и нужно ли ип вообще.
кто джун? ты джун епту бля. шаблон мне запили
Весьма благодарен. Буду пробовать. Надеюсь, я не совсем лошара и не утону.
Так а куда можно .clientHeight привязать? Я гуглил, он везде к document.Element прикрепляется. Или ты о том, что мне нужно глобальный document.documentElement через querySelector получить?
Я не панимат
Достаточно. Еще можно гриды посмотреть, но это уже опционально. Флоаты не надо.
>>Как они проверят?
Что там проверять? Есть твой счет и каждый месяц на него по сотке приходит непонятно откуда - чем не повод заблочить за подозрительные действия. А доказывать обязан ты, а не они. я за наличку
Какая-нибудь образная джава пишется просто как по маслу.
А вот когда трогаю жс/реакт - одна каша в голове и не понимание.
Это я такой тупой или для понимания жса надо немного голову в другую сторону переключить?
Да я серьезно. Я на нем не могу сесть и написать что-то из головы, только бездумно списывать.
Браузерное апи надо знать и понимать, чтобы на жс фронтенд писать. Ну а если бекенд, то там все то же самое
учил в универе 5 лет поинтеры, прочитал 10 книг по джаве, а когда решил на похуях вкатится в язык высокого уровня, с динамической типизацией, жидко обосрался и заплакал как младенец в песочнице
плакал кровавыми слезами от неявного приведения типов?
Я тоже.
пиздун он или явно преувеличивает свои возможности
ну вообще перестроится с жабы на кресты попроще, ехал класс через интерфейс заезжая в фабрику фабрик синглтонов, жс легковеснее в этом плане.
Что за лендинги? А еще что?
В чем прикол сабжа? TypeScript
Сразу скажу, что не фронтендер. Пишу небольшой интерфейсик для себя на Vue + Vuex. Начитался от всяких джесеров про прекрасный TypeScript, установил и борюсь с кучей ошибок. Эта хуита не хочет работать без специальных подготовок. Я так понимаю, чтоб понять вкус крови улучшений мне нужно будет значительную часть кода переписать в соответствие с его парадигмой. Стоит ли игра свеч? Я пока профитов не осознаю.
Надеюсь, что мне пояснят. Спасибо.
js это валидный ts, так что хз от чего у тебя там бомбит, мб тайпинги забыл установить для своих либ
>js это валидный ts
Может быть, но не когда ты работаешь внутри какой-то экосистемы
>мб тайпинги
Это меня больше всего вымораживает. Меня и так напрягают кучи dependencies, так теперь ещё и эту хуиту ставить.
>Это меня больше всего вымораживает. Меня и так напрягают кучи dependencies, так теперь ещё и эту хуиту ставить.
Не похуй ли? Тайпинги только в компайл тайме существуют.
>js это валидный ts
Лол. Зависит от строгости конфига, но такой вариант пойдет для плавной миграции разве что.
>>75351
> В чем прикол сабжа?
В том же, что и в большинстве остальных статически типизированных языков - отлов части ошибок в компайл тайме и поддержка возможностей рефакторинга здорового человека. Если тебе это нахуй не упало - не юзай ТС, пиши сразу на ЖС.
>с динамической типизацией
Попробуй TypeScript. Брат выживет, зависимость будет. Еще захочешь, базарю
Всё что угодно. Такие программы как дискорд, скайп, визуал студио код, написаны на JS.
В том же, в чём и прикол статической типизации. Если ты не писал на языках с статической типизацией, то тебе сложно понять будет. Если кратко, то переписав своё говно на TS, тебе легче будет его поддерживать, в нём будет меньше возможных багов.
>>75385
При том, что тебе будет легче изменять код, внося в него либо исправления, либо изменения, так как статический анализатор будет тебя бить по рукам, если ты начнёшь противоречить коду, который ты написал минуту/час/день/неделю/месяц/год/век назад.
Если собираешься делать только консольные приложения, то можно. Если хочешь GUI, то нельзя.
Не знаю в чем проблема. По моему в моей голове тупой. Я до сих пор не понимаю принцип работы this в js. Я кое-как понял коллбэки. Да там очень много моментов, но чтобы сесть и написать что-то с нуля - я не могу на жсе вообще.
>принцип работы this
работает как обертка для вызовов чего либо
я может и ошибаюсь, пусть меня поправят, но что то типа виртуальной таблицы методов в жабе.
А зачем фронту знать джаву и плюсы? Тем более без фреймворков.
>>75473
Так это тупиковый путь.
JS - это динамический язык. https://ru.wikipedia.org/wiki/Динамический_язык_программирования
А динамический язык программирования - это не только про динамическую типизацию, а про динамический рантайм в целом, позднее связывание, message passing вместо методов, repl driven development, и прочее прочее прочее.
Если пытаться продолжать думать не в тех абстракциях, конечно будет сложно. Нужно быть более гибким и тогда не будет сложностей.
Пока крутится лишь мысль, чтобы каждый успещный серч сохранять в локал сторендж и потом при клике на хистори фетчить все 10 из локал стореджа
Сори, возможно, не туда обратился. Мне нужно как-нибудь сделать внешнюю клавиатуру на сайте. Понятно, что без js не обойтись. Я гуглил примеры, но они мне подходят потому, что там нет смены языка на английский.
Что требуется от клавиатуры:
1) Смена языка на ангельский
2) Backspace
3) Пробел
4) Цифры (от 1 до 9)
5) И всего несколько символов (@, запятая, точка, тире)
6) Если кликаю на поле ввода она достается и наоборот
Буду очень благодарен. Также буду очень очень благодарен если будут пояснения, что как работает или хотя бы немного написанно об этом. Просто я в js совсем зелёный и не знаю очень много. Буду благодарен, анон)
На хекслет значит есть 2500 в месяц а сам на мели?
Шучу, хекслет вроде норм тема.
У академии добротные интенсивы по верстке, материалы по ЖС у них говно унылое. Интенсивы можно спиздить на nnm-club. Желательно перед этим пройти еще интерактивные курсы (можешь оплатить на месяц, они норм за 500 рубасов, но можно ограничиться бесплатными). Я сам когда вкатывался покупал интерактивные курсы и спиздил интенсив.
Мимо-наставник-в-академии
>Выучи JS
>Выучи JQuery
>Выучи Реакт
>Выучи Ангуляр
>Выучи JSON
>Выучи AJAX
>Выучись на программиста
>... Но зачем бы мне все это делать?
Всем привет
Планирую запилить свою простенькую игру браузерную
Примерно как травиан (ну типа строить город, он там сам по себе строится, развитие), но сильно на минималках, куда проще
Цель не коммерция (ни в коем случае), а для души
Выбор пал на js (аноны отправили в этот тред)
Получается, что нужна серверная часть, на которой должны быть какие-то события, какой-то клиентский интерфейс, какая-то база данных, и все это должно взаимодействовать по сложным законам
А есть какой-то пример такого взаимодействия, но с минимумом наворотов? Чтобы я подхватил основные вещи, но не запутался в деталях? Какой-то базовый образец для неофита, который хочет вкатиться на полщишечки для своих локальных целей
На js не писал никогда, писал костыли на питоне
Когда создаю стиль, как для параметра стиля значение задать не конкретное, а в виде переменной? Чтобы было не parameter1: 100px; , а parameter1: variable;? А переменная уже может быть и 100 пикселей и 200 и сколько угодно.
Подробнее мой вопрос на картинке. Вкатился в js недавно, это мой второй скрипт только.
Дебил, блять. Parameter1 вместо variable используй.
блять случайно отправил. в общем почему при клике на разные точки мне всегда стабильно прилетает 2 хотя должно прилетать 0 или 1 ? пока что тестирую всего с двумя точками на карте
>все это должно взаимодействовать по сложным законам
>вкатиться на полщишечки
Поделил на ноль.
Ты походу сам не знаешь, что хочешь.
Для начала тебе вообще бэк не нужен. Возьми хуйню типо json-server который тебе базу из жсона будет симулировать и все.
Если дойдешь до места, где тебе реально понадобится бэк (читай, напишешь всю базовую логику), там уже поймешь что тебе нужно.
Но ты же не дойдешь.
В душе не ебу что там тебе должно прилетать но для начала попробуй i в цикле через let назначить.
спасибо анон. теперь все как надо. сажаю готовую верстку с фронтендом просто
Хекслет по старой подписке 24 бакса в месяц мне обходится, но да, всё равно немного жаба душит.
А где это ты интенсив спиздил? На торрентах всяких?
надо ее перевести в timestamp. юзаю Date.parse() но он возвращает мне NaN. как я понял это из за того чтто он думает что я ему пытаюсь скормить 13 месяц в году, которого нет, но я просто сука юзаю русскую локаль с ее датами. как пофиксить проблему то и получать корректную временную метку ? в гугле ничего не нашел
Савсем плохой
Нигде. Типы и есть документация. Открывай сорцы на гитхабе и смотри.
app.get('/user/chat, (req, res) => { и тд, то первый клиент подключается к чату, а второму выкидывает ошибку
'Error during WebSocket handshake: Unexpected response code: 400'. Гугление по ошибки дало только треды на стаковерфлоу по настройкам вебсокетов на nqnix, у меня явно не такая проблема.
Подскажите плиз, может кто сталкивался? Где я косячу, что я не так понимаю?
> >Выучи JS
Да, фундамент нужен. Полгода хватит
> >Выучи JQuery
Не нужно
> >Выучи Реакт
Пара месяцев, изи
> >Выучи Ангуляр
Не нужен
> >Выучи JSON
> >Выучи AJAX
Лол, что там учить?
Если ты воюешь с бутстрапом, то это верный признак того что бутстрап пора удалить
Крч я дурачок, инициализацию сокетайо сервера надо делать прямо в апп жс без роутов. У самого socket объекта есть поле реквеста, оттуда всю инфу про запрос можно вытащить
Я в программировани нуль, но с математикой дружу.
С чего вы бы начали на моём месте, чтобы побыстрее придти к своим целям? Какие-то книжки, видеокурсы? По сути нужно сделать что-то типа Citable с чуть большим функционалом и гибкостью в настройках.
Джаваскрипт изучать хочу — мне это интересно.
Изучи основы ЖСа (гайд в шапке) и гугли любой туториал вида 'building chrome extension' и иди по нему, параллельно гугля все непонятное.
Это самый быстрый способ освоить азы языка, нужные для практических задач.
Если хочешь работать на ЖС, придется плотнее заняться изучением. Гайд опять же в шапке есть.
Не спросили, там кроме ноды только го на бэке.
Как дебагать React и любые приложения с фреймворками? Пришёл на галеру, где пишут на чём скажут. Посадили фулстеком пофиксить мелкий баг на фронте, но как это дебагать?
Есть список, при определённом эвенте удалятся последний элемент - так быть не должно. Вещаю брейкпоинт на delete node и оказываюсь в фреймворке под ДЕСЯТЬЮ ТЫСЯЧЯМИ слоями абстракции в call stack'е.
Вопрос:
Как найти точку в моём коде, который начинает удаление?
Реакт компилится в ЖС, так что дебажится код собственно так же как и обычный ЖС код, ставишь debugger или console.log и вперед, отлавливать баги через девтулзы.
Если хочешь дебажить реактовскую структуру компонентов (посмотреть где какие пропсы например) - поставь React devTools, для дебага редакса используй Redux devTools, оно подключается за пару строчек. Там все интуитивно понятно и можно пошагово посмотреть как менялся стейт и что диспатчилось куда.
Если у вас свои настройки вебпака, убедись что настроены source-maps, иначе будешь видеть вместо кода реактовских компонентов простыню скомпилированного жс.
У меня все работает, проблема в тебе.
Оказывается Citable есть на гитхабе полностью: https://github.com/owenschoppe/Citable
Что можете сказать насчет сложности написания кода? И за сколько можно научиться по времени понимать, что там написано и самому дополнять? Плотно занимаясь по 2 часа каждый день, например.
Вот есть у меня, допустим, object_id, который приходит из урла. Я делаю в классе полем обсерваблу на айдишник, или на сам объект, или и на то и то? И оставляю ли я ее как есть - кто не подписался я не виноват, или оборачиваю в РеплейСабжект, или руками копирую последнее значение в другое поле?
Пишу на реакте и ванильном, но бэк для меня - темный лес. Для домашних проектов хочется уметь написатьи задеплоить простенький АПИ с базой и авторизацией, но не знаю, с какой стороны к этому подойти.
С чего начать знакомство? Ну кроме доков ноды и экспресса.
А че те ещё нужно? Можешь на mdn\rfc почитать ещё про http заголовки, mime-типы, хуй знает.
Ну например мне не совсем понятно вот что. Написал я апи например. Запросы там описал, вся хуйня. У меня локально оно работает за счет запущеной MongoDB Service.
И отдает данные соответственно откуда-то из этой монги.
А если я задеплою свои ЖС файлы с сервером куда-нибудь, как мне ее с базой подружить. Откуда данные будут идти? Такие вопросы, базовые. Хочу понять принцип действия всей этой системы.
Всю команду мдн разогнали нахуй, вот и не заходит
Возьми Pixi.js Отлично подходит для 2д графики. Ну а по-поводу бд, как сказали раньше, сначала осиль браузерную часть, а потом уже и состояние сохраняй куда-то
Так вот в компоненте есть функция onChange которая принимае ивент и меняет стейт (пустое поле ' ' на то что добавит пользователь.
И вставляется эта функция в инпут так:
onChange={e => onChange(e)}
Так вот я пробую делать так:
onChange={onChange}
и все равно форма сабмитится. Так какая разница между этими двумя вариантами то в итоге?
На heroku например есть интеграция с монго либо можешь взять mongolab это монгодб в облаке
Я правильно понимаю, что если напишу свой простенький рест АПИ и задеплою на хероку, смогу откуда угодно дергать/добавлять данные через этот АПИ?
Сори если глупые вопросы, в бэке не понимаю, но хочу разобраться.
Нормальные вопросы, не парься.
Если разместишь на https://mlab.com/, то сможешь её дергать откуда угодно. Хоть с локального хоста, хоть с задеплоенного на сервер. Самый простой вариант.
Либо же на самом хероку настроить, чтобы развернуть там свою mongoDB, тут сложнее если с хероку не работал раньше.
Анон, пожалуйста, скинь какие примерно задачи на кодварсе ты имеешь ввиду? И что в твоей конторе пишут на ноде?
Бля вообще странно, но почему-то он часы и минуты рандомайзит как будто в каком-то диапазоне. Сверху вниз должно идти в порядке возрастания времени с отрывом не больше 5 секунд. Надо рыться в самом коде? Хотя я просто прописал getMinutes() и вроде как оно должно браться из angular-1.7.5
Рано я обрадовался
Точнее, не часы, а секунды.
Если object_id может меняться - делаешь его observable, если не будет - можешь не делать.
Если object надо только показать - можешь обернуть в replay
Если object надо редактировать пользователем - сохраняешь object в стор (behaviorSubject)
Можешь всегда сохранять в стор, так удобнее из-за того что не надо следить за подписками и http случайно не дернешь, и есть где loading и error хранить
На вопрос "что хранить в поле" ты так и не ответил.
Допустим мне надо править объект и отправлять на сервер по нажатию кнопочки, тогда я могу:
если в поле лежит объект - по нажатию тупо взять его
если реплей - по нажатию подписаться на него локально, сразу получить последнее значение
если просто обсервабла - по нажатию хуярить еще одну, а во время инициализации подписаться на их сумму
Делаешь поля object_id$ и objectStore, при изменении object_id$ говоришь стору fetchObject(id), при изменении стора полученные данные отправляешь в модель формы. При сабмите - берешь данные из модели формы.
Это очень дохуя церемоний и вот почему:
Стор здесь нужен чтобы хранить loading, error и оригинальные данные для (вдруг) ресета формы.
Форму нужна чтобы ее правил пользователь (duh), в ней вся валидация.
Стор у меня и так в аполлу встроенный, о нем речи не идет, а записывать айдишник в форму - это то же самое, что в поле. Собственно это я и хотел узнать, не будут ли в меня тыкать пальцами, если я не скручу все операции в одну цепочку, а протеку в статику.
Я долбоёб, вместо секунд ввёл миллисекунды. Всем спасибо, больше тупую хуйню сюда писать не буду.
Не будут, наоборот, если ты нахуяришь потоков не думая, то потом через тысячу publishReplay и subscribe не пробраться будет
Всем привет.
А есть какие-то видосы уровня "делай как я" (речь про практику) которые аксакалы языка признают как минимум нормальными?
Если в firefox открывать сайты с полосой drop-down менюшек и ходить там по ссылкам, то как это будет выглядеть на таких спецификациях?
Он андроид то ещё тянет? В интернет он собрался выходить, посмотрите на него
Есть родительский элемент с двумя одинаковыми дочерними. Могу в один момент получить данные для одного, нл нужно получить данные для обоих элементов. Сложность упомянута в первом предложении, фреймворк - ангуляр и хочу узнать, как это сделать без ужасных костылей или хоть как-то.
Добавить логику по добавлению этих данных в отдельные структуры или через $@%parent?
"Отдельные структуры" - т.е. сервис, который ты инжектишь в оба компонента - это и есть нормальный способ, а скакать по компонентам вне шаблонов - это костыли. Ну а если тебе похуй, то никто не мешает и из шаблона через @аутпут засунуть что угодно куда угодно.
Оказалось, уже неделю делаю не совсем то и данные смотреть не нужно было.
За ответ спасибо, но. Смущает ангуляр и его не самым очевидным пространством имён, когда данные скачут по всему проекту фиг пойми как.
Как мне обновлять выведенные значения, вслед за изменениями в массиве?
>участвуют только буквы русского алфавита
У тебя вообще любые символы участвуют, независимо от алфавита или регистра.
Откуда задача?
https://babeljs.io/docs/en/configuration#print-effective-configs
?
Я пользуюсь cmder, котой использует внутри просто cmd и у меня оба способа выдают ошибки.
Ну я не хочу тсавить ни shell ни powershell и ебаться с cmder'om. хочу чтобы так работало.
На твоём скрине правила, которые должны выполняться для того чтобы дать ответ на вопрос "можно ли превратить одну строку во вторую, заменяя они буквы на другие". Ничего общего с входными данным твой скрин не имеет.
Второй вариант более предпочтителен ТК в него передается евент в качестве аргумента. Вообще можно ещё такой паттерн юзають
var wrapper = (e, func) => {func(e)}
И в элементе навешивешь уже
onChange=(e)=>wrapper (e, handle Change)
Таким образом у тебя функция не будет пересоздаваться при каждом рендере.
А как это вообще работает? Как установка переменной окружения внезапно включает бабель и дает инфу по нему?
Установка переменной устанавливает переменную, npm start запускает бабель, бабель читает переменную окружения и показывает тебе конфиг
Они же не могут знать через какую пизду ты бабель будешь запускать, готовятся ко всему.
Можешь попробовать через babel yoba.js --show-config или создай им issue
Да я вижу ты сам хорошо справляешься. Даже курсы от инфоцыган прикупил, которые срут тебе в рот прям в условиях задачи.
а че это? отвечай
Создал сервис, заинжектил его в родителя, можно даже запровайдить там же, если он больше нигде не нужен. Потом получаешь данные с помощью сервиса от сервера и распихиваешь двум потомкам. Вроде элементарно. Или нет?
на Udemy от Stephen Grider можешь посмотреть курсы
Скрипт для браузерной игры, расширяющий возможности игрока.
В игре есть Элемент, который каждый раз разной длины и ширины (зависит от текущих событий игры). Добавил кнопку, при нажатии на которую открывается окно (div элемент) расширенных возможностей. Это окно находится под Элементом. Мне нужно чтобы ширина моего окна была такого же размера как и ширина Элемента, чтобы визуально выглядило нормально, а не криво. Ширина элемента есть, а вот как её присвоить для моего окна хз, потому что при указании параметра width через css класс (скрины в моём предыдущем посте) он считывает только когда указываешь вручную ширину в пикселях (которые я не знаю, пока страницу не обновлю), а не через переменную. Ну я затрахался ответ искать, присвоил просто через element.style.width = моя_переменная. Работает и ладно, хоть не очень опрятно.
Какого руководства, мудак?
Кек. На пуйтоне в питере было с десяток вакансий на бэк-джуна
name: коробочка
size: 20, 30, 40
weight: 70
и нужно отмапить эти данные в некоторые интерфейсы, например:
interface { name: string; size: number[]; weight: number }.
Есть ли просто способ приводить типы значений аттрибутов в соответсвии к типу полей в интерфейсе? Типа чтоб это все руками не делать, а пройтись по пропертям интерфейса взять их типы, потом строки значений из бд приводить к нужным типам или типа того.
Это как на хабре тест на 250 вопросов по js для проверки своих знаний, где в каждом втором задании юзается var. Сразу готовят для поддержки говнолегаси на жукверике вестимо
Абсолютно нормально и предельно быстро зато, гы. В css нет возможности растянуть элемент по размеру предыдущего без шаманства с контейнерами, насколько я помню.
https://developer.mozilla.org/en-US/docs/Web/CSS/var работает, но не в данном случае.
Если кому-нибудь понадобится:
props: ['testArray'],
watch: {
testArray() {
console.log('array changed');
}
Как же я ору с этих вкатышей в РЕАКТИВНЫЕ фреймворки, которые js изучают от силы два дня, ебанутые.
с точки зрения производительности и чистоты кода второй вариант лучше
С интерфейса ты типы не возьмёшь. Можешь написать класс с декораторами на полях или просто жс объект поле:тип, тогда уже все можно будет
Ну так это суть 90% "людей" из СНГ. Человек сам питается бомж-пакетами и живет N-й год в съемной хате потому что ипотеку не дают, но чтобы не ощущать свою уебищность пытается самоутвердиться на тех, кому повезло еще меньше чему ему. В Эвропах, даже не в какой-нибудь Германии а уже в Польше, такое раз в 7 реже встречается. Чисто СНГ-шная фишка
туда же --> >>78192
Medium полистать и там в каждом 3м посте вылезает var. Триггериться на это и визжать "как вы посмели! я топ разраб из XXI века нахуй! новый сука Торвальд и Эйх!" примерно то же что триггериться на возможность вычитания числа из строки. Если уж пишешь на жс то прими это как данность, но помни что делать так - бэд прэктис
Безотносительно к var, но медиум говно похуже var
Заебали со своей реактивностью уже. Какой-то даун зафорсил это слово и теперь все блядь тыкают его везде
Меня лично больше удручает отсутствие перегрузки в функциях. Это я не про реактивность конечно, а про то чего не хватает в языке.
> перегрузки в функциях
Хуйня для статически типизированного говна. ЖС-элита просто кладет болт на эти устаревшие концепции
Найс, ты сам с собой поговорил
Перегрузка - это про полиморфизм, полиморфизм - это про ооп, ооп - это не про жс, уйди отсюда, бака.
Такая логическая цепочка может сложиться тоьэлько у тех,кто не знает, что такоее ооп.
Это все будут костыли, интерфейсы объектов из бд описываются ручками.
Ооп - про инкапсуляцию данных и методов для работы с ними. ФП про отделение данных и логики их обработки, достаточно посмотреть на то, как пишут на жс и понять, к чему он ближе.
П.С. Давай, поясни мне ещё за ооп и за то, что перегрузка функций нужна там, где они не лежат в одной куче с данными, а являются главными структурными единицами программы.
Ты хуйня, если не понимаешь достоинств статики.
Golang + Java + TypeScript + Postgres, Redis, Mongo + Docker, K8S - лучший набор для вкатывальщика в 2020-2021
а ебло от стека не разорвет?
1. Миддла чего?..
2. Кому нахер надо использовать одновременно Go+TS+Java? Кому блин?
3. Сколкьо на данный момент на рынке пусть даже СНГ людей с подобным стеком? с продвинутыми знаниями и опытом коммерческой разработки офк, а не курсами от инфоцыган
>Кому нахер надо использовать одновременно Go+TS+Java
ну кому я могу придумать какой нибудь лютый проект на микросервисах с дохуя народу, но стек огромен и он дохуя разный по парадигмам.
Это йоба стек чисто под кровавый энтерпрайз, туда еще Ангулар прихуярить надо.
>но стек огромен и он дохуя разный по парадигмам
Ты забыл еще туда Пистон и С++ закинуть. Ну шоб были. Тогда точно разный по парадигмам станет шо пиздец
особо богатые могут еще призвать скалистов с кожуристами
Всё это можно освоить за года 2 мимокроча около программирования, не говоря уже о серьезном вкате
Го - процедурщина, о которой каждый вкатывальщик слышал, но в которую каждый вкатывальщик не может. Язык ведет писуна за ручку, давая уже на 3-й день шлёпать полноценные микросервисы с околосишными перформансами.
Жава - эталонное ооп и пара пропёрженных шаблонов, на которых крутится полмира последние nn лет. Порог вхождения также невысок
Фп - совсем изи мод, осилится параллельно на стороне
TS - жс без лишней ебли мозга. Я конечно могу сходу преобразовать +!(![] + "")-1, но на хуй мне это не нужно.
У меня почти такой стек, кроме джавы (зачем она не нужна если есть го) и кубера (зачем мне нужны инструменты девопса, мне докера хватает)
Обосрите че не так вроде работает, хочу еще потом прикрутить к вэб форма что бы в браузере считать
1) Не используй var, используй let или const;
2 )Названия переменных максимально ущербны, сначала я читаю:
var lenghtWorkPiece = 3000; //длина рабочего фрагмента
var lenghtPart = 650; //длина части
var volumePart = 3021; //количество частей
var cut = 4; //срез? доля? вырез? ???
А потом оказывается:,
Первая переменная это количество материала. Вторая переменная это количество материала нужно для изготовления одной детали. Третья переменная это количество деталей которое нужно произвести. Четвертая переменная так и остается для меня загадкой, потому что везде ты её добавляешь к длине части. Получается это не срез/доля/вырез, а своего рода запас который вкладывается в деталь. Но тогда почему это число 4, а не процент от длины детали?
Так не должно быть, второе я должен вывести из названий переменных, а не прочитав ту часть кода в которой они используются.
3) Код не разбит на функции, не структурирован, это просто полотно каких-то действий, определить которые можно только полностью прочитав его и комментарии к нему. Функции как раз и сделаны для того чтобы код не только легко поддерживался, но и легко читался. И наличие функций это минимум, лучше всего поместить все акторы в отдельные объекты.
начал учить и уже легаси хуярит
Зачем ты комментируешь каждую строчку, наркоман? Происходящее должно быть понятно из кода и нормальных названий переменных.
Проиграл с того, что со словом «длина» ты обосрался и на русском и на английском одновременно.
>if(partsFromWorkPiece < volumePart){
>else if(partsFromWorkPiece >= volumePart)
Если partsFromWorkPiece < volumePart возвращает false, значит partsFromWorkPiece >= vloumePart всегда вернёт true, зачем ты второй if добавил, какой логикой руководствовался?
если уж для себя делал проще по русски было написать названия
>>78604
>Но тогда почему это число 4
может быть любым ето величина реза
смысл: длинна заготовки 3000мм, нужно по ней распределить детали с учетом определенной длинны, количества и величины среза (4мм) если количество деталей больше чем может вместить в себя заготовка берем еще одну и так пока не закончатся детали, if else обрабатывают случаи когда количество деталей и длинна разные, можно менить те значения в зависимости от условий будет запускаться та или иная часть кода, хуй знает писал как мог до функций еще не добрался, нужно читать
>до функций еще не добрался
https://learn.javascript.ru иди учи пейсатель а то так и будешь варами писать
У тебя в else лишний if, если ты этого не понимаешь, то программирование это не твоё. Лучше попытайся освоить какой-нибудь инженерный калькулятор.
хули тогда пидары из https://learn.javascript.ru/ifelse
учат так? понятно если если несколько условий, думал еще одно впихну, но решил по другому запилить
ты тормоз у тебя второе условие всегда тру если первое тру а не потому что пидары
да не там есть
Ну поменяй сам ебана
Ну смотри, у тебя вывод идёт консоль логами. Ты можешь внутри функции сделать то же самое, да и результатом функции может быть массив с несколькими значениями, которые потом можно так же консоль логнуть. Так что прям на каждую залупу отдельную функцию лепить не надо.
ну это если просто посмотреть, а вот если надо потом по коду использовать, то надо дергать оттуда ретёрнами
https://pastebin.com/r2qsLmyb
условие с циклом срабатывает хорошо, а вот первое условие при проверке на пустой массив выдает NaN вместо null
Чувак который меня учит сказал, что я делю 0 на 0 но блядь, какой 0 на 0 я не понимаю
А как тогда реализовывать собственные конструкции с иными правилами редукции(подобные let, for, if, и так далее)
ну так и есть null приводится к 0 и ты на него делишь, неинициализированные переменные андефайнд приводятся к нан, любое действие с нан = нан
Потому что ты дебил ебаный. Массивы это объекты, не примитивы. Чекай .length вместо этой хуйни.
да там помимо просто логически он нан на 0 делит
бикам хюман?
че?
Анон, что за борда? /int/ какой-то другой популярной или у пшеков что-то новое популярное появилось?
Вопрос: почему об этом не сказано нигде в документации и как должен об этом догадаться нормальный человек? Я просто помню, что где-то в каком-то гайде советовали называть ненужные аргументы _, вот и попробовал.
Это именно то, что я нагуглил. Но кто будет прочитывать все сообщения о релизе, чтобы разобраться в языке? Хуйня какая-то.
Ну вот начинаешь ты новый язык изучать, тебе такую хуйню интересно будет читать в разделе про функции?
>кто будет прочитывать
ты же нагуглил
>тебе такую хуйню интересно будет читать в разделе про функции?
А кому-то вообще интересно читать доки?
>Есть ли какой нибудь выход, или я соснул?
Есть. Использовать ES6 + Import, а не ограничивать код скобками. В главном файле ставишь listener на DOMContentLoaded, а внутри подгружаешь все необходимые модули. Всё.
>>78655
>Получается на каждую переменную для ее вычисления нужно лепить функцию?
Возвращать можно объекты, а не одиночные переменные.
return { переменная1, переменная2, переменная3 };
Пока нихуя не понимаю, пишут функция останавливается когда встречает ретерн, но ретерн как я понял делает одно какое то действие? Еще пишут мол одна функция одно действие, хуй знает друг я в теме пару недель так что толком не понял тебя
Ого. А зачем в коде, основанном на модулях, нужен DOMContentLoaded, если все модуля выполняются когда domcontent уже loaded?
Вот смотрите, допустим, хочу написать простое приложение.
1. Есть список хуйни вида ID, name, value, где все значения - строки.
2. Есть простой фронт, который выводит на экран список имен и при клике на имя выводит страницу с имя-значение.
3. То есть при загрузке страницы делается запрос к АПИ по рауту /items, при клике на строку делается запрос /items/:id.
4. Я написал простенький апи с эндпоинтами на получение-добавление-удаление, круд короче. Локально это все работает на nodejs-express-mongodb. База естественно пустая, при первом запуске. Если нахуярить пост-запросов, выводится список.
Теперь вопросы.
1. Где крутиться база, когда я локально это все запускаю?
2. Как мне наполнить базу стартовыми значениями?
3. Как мне это все задеплоить на какой-нибудь бесплатный (или копеечный) хостинг, чтобы база сохранялась и можно было откуда угодно дергать этот АПИ за эндпоинты? За безопасность не боюсь, эта хуйня никому не нужна будет кроме меня.
Пиздец.
>1. Где крутиться база, когда я локально это все запускаю?
Локально
>2. Как мне наполнить базу стартовыми значениями?
Миграции
>3. Как мне это все задеплоить на какой-нибудь бесплатный (или копеечный) хостинг, чтобы база сохранялась и можно было откуда угодно дергать этот АПИ за эндпоинты? За безопасность не боюсь, эта хуйня никому не нужна будет кроме меня.
Гуглишь хостинги для node приложений, следуешь инструкции.
>Где крутиться база, когда я локально это все запускаю?
В докере обычно всё это крутится. Если нужно перенести на продакшн-хостинг, то запускаешь скрипт, который делает дамп, коммитишь этот дамп в репозиторий, а при развертывании, этот дамп импортируется докером и готово.
Это в случае с MondoDB, я обычно DynamoDB использую, там ничего переносить не надо, это облачная DB.
>Как мне наполнить базу стартовыми значениями?
В MondoDB-то? Ручками можно, это же простой JSON.
>Как мне это все задеплоить на какой-нибудь бесплатный (или копеечный) хостинг
Копеечный не получится, если только делать статикой - Gatsby.js + AWS Amplify + DynamoDB. Вместо DynamoDB можно использовать Firebase / MongoDB Atlas. А вместо AWS Amplify можно использовать Netlify / Azure CDN / Vercel.
>>79143
>зачем
На всякий случай.
>Копеечный не получится
Получится. Бегет поддерживает ноду. От 165 р в месяц. В том числе, есть возможность потестировать бесплатно.
А что ты хочешь делать? Можешь переменной присвоить то, что вернула функция.
Используй готовые библиотеки типа бутстрапа или blueprintjs, чтобы выглядело не совсем как говно, и достаточно.
Всем похуй на дизайн учебных проектов, смотреть будут в код (если вообще будут).
Компания пишет на TS+Mobx+React и они в поиске мидла+.
Я джун даже в React+Redux, сказал на прошлой неделе их хрюше об этом, а она говорит все равно приходи на тех собес, мы видели твой гитхаб(там туду и мувисерчер на рекате, и всякие тетрисы на чистом жс). Зп говорит 80-150к. Что делать блять. Не хочу обосраться. Я не откликался, а просто выложил резюме и они сами мне позвонили.
Не ссы, иди и собеседуйся. Ищут всегда миддлов и выше, берут тех, кто есть.
По ЗП реши для себя за какие деньги ты готов работать и стой на этом. Тебя могут попробовать продавить типа "Ой ну 80-150 это для миддлов у нас, а вы джун максимум, так что все что мы можем предложить это пятьдесят рублей на проезд и чупачупс".
Спасибо, блупринт то что нужно. Его и использую.
Просто я не понимаю, чем я там буду полезен.
Наш разговор с хрюшей это был просто шок.
звонит телефон, я беру
Хрюша: Здравствуйте, анон-нейм, я хрюша из компании-нейм, звоню вам по вашему резюме.
Анон: Да, я видел ваше приглашение, но я не подхожу на эту вакансию по уровню.
Хрюша: Не переживайте, Анон-нейм, наш тимлид видел ваш говногитхаб и говорит вы нам подходите, давайте я расскажу про нашу компанию.
спустя минут 5 болтовни о компании, стеке
Анон: Хорошо, я понял вас, а о какой зп идет речь?
Хрюша: У нас разработчики вашего уровня получают от 80к и до 150к, зависит от задач.
Анон: А испытательный срок есть?
Хрюша: Да, два месяца и на нем зп 50к, вы готовы во вторник приехать в офис?
Анон: Да.
прощание
>>79205
Ну, а что меня там спросят, я в ТС ноль, мобх не видел даже, единсвтенное реакт могу что-то рассказать.
И как я за 2 месяца выучу это, я хз.
Очкую пиздец.
Я сам вкатывальщик и редакс с тайпскриптом за месяц выучил. Это не так уж и сложно.
С таким настроем ты никогда не устроишся. Нет момента когда ты всё знаешь и готов ходить по собесами, иди везде куда зовут. Настройся что просто пришёл поболтать с ребятами на техническую тему. Опыт проходить собеседования это тоже опыт.
function xxx(){
this.x=12;
this.y=10;
return ([x,y])
}
Хочу вернуть список и потом юзать x и y дальше в других функциях
Мобх хуйня, намного проще редакса, изучается реально за вечер, вот тебе краш-курс от мемемастера.
https://www.youtube.com/watch?v=F_YMWrILUGk&t=2s
ТС кажется страшным, но когда начинаешь использовать каждый день, за неделю считай увидишь все, что тебе будет нужно в дальнейшем.
> Где крутиться база, когда я локально это все запускаю?
У тебя на компе, в отдельном процессе. Вообще не советую ебать себе этим мозг, просто научись юзать для начала.
>Как мне наполнить базу стартовыми значениями?
Установи себе например RoboMongo - сможешь руками туда записывать что хочешь
>Как мне это все задеплоить на какой-нибудь бесплатный
Сюда можешь - https://www.heroku.com/ . Если совсем бесплатно правда твой сервер будет уходить в слип если не будут на него запросы приходить. Так что первые секунд 10-20 надо будет пожождать чтобы сервак завелся. Ну или заплатить, там копейки
в консоле проверить не можешь?
> Меня лично больше удручает отсутствие перегрузки в функциях.
Есть вариант использования HOF которая среди данных функций будет вызывать подходящую.
Типа:
hello = generic(
typed(String)(str => "hello, " + str),
typed(Array)(arr => "hello, " + arr.join('')))
Все эти ООП, дженерики, перегрузки это всё надстройки для удобства, и спокойно реализуются лямбдами.
На хероку вроде mdlab скоро отключат и останется только платный хостинг за 46 бачей в месяц.
https://elements.heroku.com/addons/mongolab
В редаксе до жопы бойлерплейта. Есть конечно реакт-редакс но чтобы его нормально понимать надо по хорошему потыкать в обычный редакс сначала.
> А если разное количество параметров?
typed - каррированная функция, и не просто так. Она работает с любым количеством параметров.
plus = typed(Number,Number)((x,y) => x + y)
> Или заходит одни, но объект вида
> {ok: true}
> {ok: false}
Выкинет ошибку TypeError. Типизированные функции не принимают не типизированные параметры по определению.
Можешь так же использовать паттернметчинг для определения типа объекта по его полям. Однако насколько это производительно?
Слушай, можешь на стакблитз скинуть пример реализации из твоего первого поста?. Я просто не понял что это за typed. Идея мне нравится, но реализацию я пока не понимаю.
Спасибо.
Лол, к тому же оператор `?.` считается ошибкой у него, лол.
В любом случае, в современном браузере работать должно
Спасибо большое. Ты еще и комменты оставил, круто)
Сравнить на что?
мимо нихуя не понимаю
Раньше да. Сейчас в браузере хоть онлайн игры целиком на жс пиши без какого-либо серверного кода.
> Неужели нельзя по человечески как в нормальных языках, а?
Как в нормальных языках это говно мамонта из 80х? Во всех языках есть замыкания. Иначе просто невозможно писать код.
Canvas API + WebRTC API. Бери либы по душе (допустим Crafty.js и Peer.js) и клепай игру мечты.
есть хирока но бесплатная засыпает, а так проверить работает ли в принципе хватит
если функция в 1 строку то удобнее, нинзя код не нужен
Я год назад так же устроился на удалёнку на 70к когда был вкатышем. Открыл резюме на хх, мне звонили и писали. Сейчас уже сравниваю и понимаю, что пара звонков в неделю тогда мне казалось много, но на самом деле это хуйня. Сейчас если я открываю резюме то начинается дикий поток спама
грубо, но пойдет.
function isEq(a, b){
if(a == b) return true;
for(var i in a){
if(!isEq(a, b)) return false;
}
for(var i in b){
if(!isEq(a, b)) return false;
}
return true;
}
Например?
Мб поздно, но не еби себе мозг с локальной монгой, бери MongoDB Atlas. Топ штука для потыкаться, есть полностью бесплатный тариф, все сохраняется, ничего локально запускать не надо
ЗАРЕДАЧИЛ тебе анус, какое тебе тестовое, маня
нет сдох
rtfm
>есть хирока но бесплатная засыпает, а так проверить работает ли в принципе хватит
Heroku очень быстро перерастается. То есть ну окей, проверил я, а дальше что? А далее цены у них начинаются от $25/месяц за вшивую 512 МБ машинку. Таких охуевших цен нет вообще ни у кого, разве что у какого-нибудь WPEngine.
>>79830
>AWS free tier год бесплатно
Бля, а я что написал? Я написал конкретно про Amplify >>79159 (потому что у AWS много сервисов, есть тот же Lightsail, тот же ECS, EC2).
>в двух словах пояснить, как собирается проект на Vue.js?
Просто берешь без задних мыслей и собираешь, очевидно же!
> а дальше что
а тебе технологию проверить и поиграть в песочнице или стартап пилить? что за вопросы блядь, если тебе нужен сервис для коммерции плати, просто потыкать стек технологий можно и так, ты определись и не еби нам мозги.
Про какой мувисерчер вы тут все говорите?
Нет методов для сортировки чисел и и даже чтобы заглавную букву зделоть. Нужно делать через slice(1) и капитализе одной буквы, какой же пиздец господи.
Почему сравниваются значения из обоих массивов? Разве одной проверки недостаточно?
ПЕРЕКАТ >>1779985 (OP)
ПЕРЕКАТ >>1779985 (OP)
ПЕРЕКАТ >>1779985 (OP)
ПЕРЕКАТ >>1779985 (OP)
ПЕРЕКАТ >>1779985 (OP)
ПЕРЕКАТ >>1779985 (OP)
ПЕРЕКАТ >>1779985 (OP)
ПЕРЕКАТ >>1779985 (OP)
ПЕРЕКАТ >>1779985 (OP)
Я хочу во фронтенд. Раз уж ты крутой, подскажи как решить задачу где надо перебрать массив [a, b ,c] и вернуть новый массив в виде [a, ab, abc]?
понятно что через цикл for, но их тут 10 штук разных я непонимаю какой использовать.
Только ты тут складываешь числа, а надо строки. За такой код не стукают на проекте?
уже лучше
Спасибо, потыкал в атлас, подключел все работает, заебись. А если я хочу, чтобы мой самописный апи был доступен где угодно, мне нужно залить куда-то мой сервер, правильно? Он все равно будет подключен к базе?
[2, 3, 4].reduce((acc, cur) => [...acc, acc.length ? acc.slice(-1)[0] * cur : cur], [])
порядок пропертей в объекте не имеет значение
Это для поддержки софта в будущем. Абстракции вообще на первый взгляд кажутся бесполезными, но без них будет анархия и хаос
Да, можно в облако заливать, хероку там или авс, можно арендовать vps и самолично все туда устанавливать(это геморно).
Да, будет подключен к этому атласу.
потому что в фронтенде помимо клепания сайтиков можно заниматься экспериментальными штуками по типу 3D, и делать искусство. Бекенд (по моему мнению) менее весёлый в этом плане потому что он взаимодействует с фронтом а не с конечным пользователем, и нет визуальной части, а только техническая.
Потому что люблю делать удобные интерфейсы. Потому что без визуала нет никакого проку от самого крутого бекэнда. Ещё вопросы?
Потому что я тупая макака.
Это копия, сохраненная 28 февраля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.