Этого треда уже нет.
Это копия, сохраненная 27 апреля 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
16069129603330.png56 Кб, 1050x1050
JSThread #187 /js/ 1875685 В конец треда | Веб
Прошлый тред: >>1870885 (OP)

Больше пары строк кода в посте или на скриншоте ведут в Ад.

Для программирования на HTML https://jsfiddle.net/
Для Node.js с консолькой https://repl.it/languages/nodejs

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

Руководство для вката: https://developer.mozilla.org/
2 1875724
Существует ли какой-то курс или книга по основам JS, но не тем, что начинаются с переменных и заканчиваются асинхронностью. А по тем основам, которые объясняют как устроен js изнутри, как он выполняется браузером, как создаются объекты, как вообще работает весь язык именно с обратной стороны? С практическими примерами?
3 1875743
>>75724
Спека разве что. Разные движки реализуют ее по-разному, так тут надо смотреть доки и сорцы конкретного движка.
4 1875768
>>1875629 →
Создаешь статичное поле-массив у этого класса, в конструкторе класса пишешь MyClass.StaticArrayOfInstances.push(this);
В дополнении к этому создаешь статичный метод ResetInstances который будет делать что то вроде: MyClass.StaticArrayOfInstances.forEach(e=>e.reset());
image.jpg181 Кб, 1899x987
5 1875770
Пацаны, не пойму, это production quality код или нет?
https://github.com/photopea/Typr.js/blob/gh-pages/src/
https://github.com/photopea/Typr.js/pull/16#issuecomment-474518653

Используется в пикриле.
6 1875773
Че ебнуть для пиздатого портфолио? Форум? Соцсеть?
7 1875776
>>75773
Клон фейсбука/инстаграмм/твиттера.
8 1875783
>>75724

>как устроен js изнутри


JS внутри никак не устроен. Тебе надо копать в сторону конкретных движков, а они все устроены по-разному. Где-то может быть JIT и овердохуя оптимизаций, а где-то самый простой интерпретатор

https://en.wikipedia.org/wiki/List_of_ECMAScript_engines
9 1875789
>>75685 (OP)
Где тег треда, долбоёб.
10 1875798
>>75743
>>75783
Понял вас, спасибо
11 1875851
>>75789
Проебан, хули. В следующий раз будет.
Screenshot2020-12-08 Awesome Movies.png288 Кб, 1059x933
12 1875909
Такая приложуха с логином и хранением данных на сервере слишком простая для портфолио реактщика? На такое вообще внимание будут обращать или что-то посложнее пилить? Поиск работает, на главной список популярных фильмов. Добавлять в избранное можно откуда угодно, либо через поиск, либо перейдя к описанию конкретного фильма. Ну и сделано не по какому-то курсу, сам пилил и перепиливал потихоньку. Думаю может еще допилить систему комментариев, но заебался уже и с текущим функционалом. Никакого опыта в разработке до этого вообще не было, пилю и попутно учусь, пока особо на собесы не ходил
13 1875912
>>75909
Ах ну да, редакс, роутер, вот это всё, даже какие-то шаблоны проектирования реактовские использовал
14 1875930
>>75909
Главное не простота приложух в портфолио, а сколько тебе лет. Если ты студент или до 25-ти то там и Лаба 1 заебись и конторе зайдет. Если ты после 30-ти, то даже с личным фейбуком ты не ВПИШЕШЬСЯ В КОЛЛЕКТИВ. А судя по скрину апка норм, мне нравится.
15 1875949
>>75909
button { border-radius: 5px }
Не благодари.
снимок.png36 Кб, 1288x1485
16 1875962
>>75685 (OP)
Продублирую пост из предыдущего треда. Изначально ошибся с тредом.

Помогите новичку в React, пожалуйста. Есть родительский компонент, который содержит несколько дочерних компонентов-форм, которые можно добавлять и удалять по нажатию кнопки в родительском компоненте. Изначально количество компонентов зависит от того, какие данные пришлет сервер. В родительском компоненте есть еще кнопка "Отправить", по нажатию которой нужно забрать данные из всех дочерних форм и отправить на сервер.
Как получить доступ к данным в дочерних формах из родительского компонента? Я хотел создать для каждого дочернего компонента стейт в родительском и передать его в пропсах, но React не позволяет использовать useState в цикле.
images.jpeg8 Кб, 252x200
17 1875964
>>75949

>2020


>button { border-radius: 5px }



Че там со сквирклом?
18 1875970
>>75962

>Как получить доступ к данным в дочерних формах из родительского компонента?


Вынести стейт в него.

>Я хотел создать для каждого дочернего компонента стейт в родительском и передать его в пропсах, но React не позволяет использовать useState в цикле.


А массивы и объекты он позволяет тебе использовать?
19 1875975
>>75909

>мувисечер


Еще туду не забудь из курса буры приложить.
20 1875977
Какой фреймворк лучше всех подходит для мета программирования?
21 1875980
>>75975
Вот щас обидно, мувисерч видимо одна из самых очевидных задач, в курсе буры никаких серверов вообще не было, просто получение и обработка данных :(
22 1875983
>>75949
Заебали скругляторы.
23 1875984
>>75975
А вот я свою тодошку выложил, ага.
24 1875993
>>75970
Допустим, у меня один стейт на кучу компонентов. В виде массива объектов, хранящих записи из полей форм. Как мне связать отдельный кусок стейта с конкретным компонентом? С учетом того, что число компонентов и кусков стейта может увеличиваться и уменьшаться динамически.
25 1875995
>>75993
Юзать редакс
26 1875998
>>75995
Каждый раз, когда я пытаюсь что-то делать на React, у меня возникает стойкое ощущение, что на чистом JS все то же самое можно сделать в два раза быстрее и в три раза проще при вдвое меньшем объеме кода.
27 1876003
>>75998
Так и есть.
28 1876004
>>76003
Тогда в чем смысл существования этого говна?
29 1876008
>>76004
Фейсбук на нем удобнее делать посонам.
30 1876011
>>76004
Скорость отрисовки всего этого на чистом ЖС падает по экспоненте по мере роста твоей приложухи
31 1876016
>>75993
Ну камон, пропсы и коллбеки, как же еще. Это все даже к реакту отношения не имеет, как к таковому.

const [formsValues, setFormsValues] = useState([...])

const setFormValues = (i) =>
(nextFormValues) =>
setForms(prevFormsValues => prevFormsValues.map((formValues, j) => i === j ? nextFormValues : formValues);

return (<>
{formsValues.map((formValues, i) => <Form values={formValues} onChange={setFormValues(i)/>)}
</>)

Дальше можно усложнять, оптимизировать, передавать отдельные поля, перекатываться на формик и т.д.
32 1876020
>>75998
Это от неумения обращаться с инструментом.
33 1876028
>>76004
В том что у тебя приложуха когда-нибудь будет больше чем туду.
1607442812418.png198 Кб, 1125x681
34 1876030
Добрый день, друзья! Начал осваивать джаваскрипт, решил потихоньку вместе с учебой пилить для себя отдельное приложение.

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

Требование — кроссплатформенность (под доебан и винду), минимальное использование ресурсов (чтобы на очень некроговне открывался и особо не жрал память), приятное визуальное оформление в сумме с расширенным функционалом (хорошая замена экселю под конкретную задачу).

Насколько я представил себе этап разработки: нашел подходящий по описанию фреймворк proton native, чтобы сделать GUI, накидал в автокаде сам GUI (пока только главного окна, пикрил), нашел подходящую библиотеку для построения графиков D3.js.

Примерно составил необходимый минимум реализации: считывание файла, определение его типа по размерам столбца (там уебищные текстовые файлы от разных производителей с разделителями в виде пробелов, мне нужно, чтобы автоматически выбирался нужный тип и в соответствии с ним обрабатывался), обработка информации и представление ее в нужном мне виде на экран.

Я ни разу не делал ничего, кроме заданий из разных курсов (это мне для хобби и удобства), расскажите, где обосрался? Какие будут подводные для нуба, что нужно добавить, с чего вообще начать, не упустил ли я чего на старте, любая критика. Заранее спасибо!

P.S. Создавая пикрил ещё не придумал, для чего будут нужны кнопки внизу, но для будущего функционала оставил под них место.
35 1876042
>>75962

>дочерних форм


Это нарушение семантики. Оформляй всё в одну форму, а дочерние формы проставляй как филдсеты с инпутами внутри.
36 1876044
>>76004
Чтобы всё, что не фейсбук, тормозило как говно. Типичный монополизаторский рыночек.
37 1876045
>>76042
Ну так на выходе компоненты соберутся в одну форму.
38 1876050
>>76044

>Типичный монополизаторский рыночек.


Лол, так пиши на чем угодно, фейсбук с ружьем за спиной у кого то стоит что ли?
39 1876055
>>76030
Ты обосрался примерно во всем, поздравляю!

Начнем с того, что непонятно зачем ты вообще выбрал JS, если ты используешь ровно ноль его преимуществ.

>proton native


Ты понимаешь что это нативный фреймворк? То есть там не будет DOM. И никаких встроенных в браузер контролов не будет. Ты доку-то к нему открой, там даже инпута нет, лол. Сам все это будешь писать?

>нашел подходящую библиотеку для построения графиков D3.js.


Ага, которая рисует все на SVG/canvas и не работает с твоим протоном. D3 нужна куча браузерных API.

>минимальное использование ресурсов (чтобы на очень некроговне открывался и особо не жрал память)


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

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

Мне кажется что ты плохо представляешь себе масштаб задачи. Тут на недели и месяцы работы даже для опытного разработчика. А уж сделать лучше экселя — просто манямирок.
40 1876057
>>76030

>Требование — кроссплатформенность (под доебан и винду), минимальное использование ресурсов (чтобы на очень некроговне открывался и особо не жрал память)


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

> приятное визуальное оформление в сумме с расширенным функционалом (хорошая замена экселю под конкретную задачу)


Так как на крестах ещё придётся и свою логику рендера писать.

Лучше всего подойдёт, учитывая тематику треда, Electron, что есть HTML/CSS/Node, но для десктопных приложений. Убийцу экселя из этого не сделаешь, но какой-нибудь прототип для впаривания вполне можно одному захуярить.
41 1876068
>>76055
Выбрал, исходя из желания что-то написать на JS. Про протон понял, спасибо. В принципе комплюкторы потянут и электрон. В следующий раз, как буду в командировке, проверю, запустив там хромиум (я же правильно понимаю, что хромиумный фреймворк примерно столько же и сожрёт, сколько и сам хромиум). Про D3 тоже не сильно важно, могу и его заменить. Задача мне совершенно не к спеху, планировал за полгода напердолить в лучшем случае. Говорю же, хочу упростить себе работу, и в качестве хобби понять, каким образом писать ПО с нуля. Поковыряться только в радость. И уж тем более я не хочу сделать "лучше" экселя. Я хочу сделать подобно экселю, но только чтобы не плодить в каждой папке очередного выходного файла очередной идентичный файл экселя. Не думаю, что очень сильно обосрусь при построении обычных двумерных графиков зависимостей чего-либо от времени. Плюсы, джаву, сишарп и прочее не особо хочется трогать (особенно плюсы, я с ними и так работаю, программисты на моей работе пишут на них прошивки для моих изделий, хочется чего-то нового). Не относись к этому как к серьезному чему-то, просто убивание вечеров и свободного рабочего времени. И спасибо за указание на ошибки!
>>76057
Обидно, на одном предприятии дебиан стоит, хотелось и им разослать. Ну у них есть и на винде компьютеры, тогда от кроссплатформенности вынужденно откажусь. Спасибо!
42 1876104
Собрал себе шаблончик с бабелем и вебпаком, как сделать что бы ошибки отображались на экране как в create react app?
43 1876108
>>76030
Достаточно демона на ноде, и PWA, работающего с этим демоном.
44 1876111
>>76068
Если будешь брать электрон, то он кросс-платформенный, все норм. У D3 производительно ок, просто далеко не минимальная.
45 1876112
>>76104
Расковыряй CRA и посмотри.
46 1876177
>>75724
В любой хорошей большой книге по жс это объясняют, в той мере, в какой это нужно знать.
Обычно это не так много инфы.
47 1876182
>>76068

>разослать



Чувак, жс приложения деплоят на веб-сервере.
И работают с ними в браузере.
Понимаешь?
Разослать, блядь, ну надо же.

У тебя фундаментальные пробелы в развитии.
Закрой их, напиши туду лист на Vue.
Мозги на место встанут, а там решишь, что дальше делать.
48 1876184
>>76112
См. доки по webpack-dev-server и hmr.
Есть гайды в интернетах, как собрать всё с нуля.
49 1876200
>>76182
Задеплоил тебе электрон за щеку, проверяй.
50 1876210
>>76182
Чо ты такой агрессивный? Не во всех местах разрешен есть свободный доступ к интернету, есть закрытие военные предприятия.
51 1876218
>>76200
Электрон ты в анус себе задеплоил.
И там ему самое место.

>>76210
У-тю-тю, какие мы нежные.
Это была не агрессия, а стёб.

>есть закрытие военные предприятия.


Значит надо хостить на секретном военном веб-сервере.
А ещё лучше, конечно, найти работу не за колючкой.
Но, я понимаю, что в ебенях это может быть очень непросто.
52 1876230
>>76218
Речь изначально шла про стендалон приложение для работы с файлами, какой еще веб-сервер?

Попробуй читать посты перед тем как на людей набрасываться.
53 1876235
>>76030
Мне примерно понятно, что ты собрался обрабатывать.

Могу дать совет - не делай мега-приложуху "всё в одном".
Это вообще провальный путь, а для ньюфага - так без вариантов.
И, сейчас вообще в разработке тенденции прямо противоположные - микросервисы, single responsibility, и прочее подобное.
Попробуй (для начала) сделать это в виде набора специализированных утилит командной строки, под каждый специфический тип файла.

Т.е. у тебя есть файл определённого формата, ты запускаешь в комм. строке утилиту, предаёшь ей имя файла и какие-то параметры (что строить, куда писать), а она строит графики и отчёты в html/pdf/png/svg.

Сделай 1 утилиту. Для 1 типа файлов. С абсолютно минимальным функционалом. Потом - расширь функционал. Потом - сделай ещё одну, под другой тип файла. Потом - вынеси общий код в библиотеку. Потом - сделай третью, уже гораздо быстрее. Потом - если захочешь, наверни вокруг всего этого графическую оболочку.

Это называется UNIX-way. Возможно, ты что-то об этом слышал.

Делать всё это можно на чём угодно.
Я бы предложил питон. Там есть всё, что нужно, и, он, собственно, именно для этого. Графическую оболочку, если до этого дойдёт, можно сделать на PyQt или wxPython.
Но, на js тоже это всё можно, хотя это и будет сильно более заёбисто.

>понять, каким образом писать ПО с нуля.


Вот таким.
Если ты хочешь получить реальный результат, конечно.

>>76218 - кун
И нет, я не питонист, лол.
54 1876236
>>76235

>Графическую оболочку, если до этого дойдёт, можно сделать на PyQt или wxPython.


>>76218

>Электрон ты в анус себе задеплоил.


>И там ему самое место.


Чем тебе не нравится электрон? На нем писать как раз быстрее всего, и можно прикрутить любую библиотеку для веба.
55 1876238
>>76182
На каком веб сервер хостятся web extensions, HTA, standalone PWA и CLI-приложения, мань? По-моему, фундаментальные пробелы в развитии здесь у тебя.
56 1876239
>>76236
Да можно и электрон.
Если хочется именно на js, и не веб, то тут вариантов не особенно много, как ты понимаешь.

По поводу моих подъёбок - это я, похоже, в мвп-треде немножко пересидел, там как раз такая атмосфера, лол.
57 1876242
>>76030
>>76236
И, кстати, я бы эту задачу делал как серверную, с локальным деплойментом. Потому, что там, совершенно очевидно, вырисовывается и многопользовательность, и база данных по результатам экспериментов/прототипам устройств/или-что-у-них-там и т.п.
И бэк не на жс, ибо масштаб не тот, и специфика не та.

Но, это не подходит ньюфагу, который задал этот вопрос.
Хотя, по такому пути, как я описал выше, он может потом к этому и прийти, если захочет и осилит.
59 1876310
Нихуя не понимаю. Например написал новостной спа, собрал вебпаком папку дист, закинул на сервер, дальше как отправлять новую новость что бы она появилась? Заново собирать уже с новым содержимым?
60 1876314
>>76235

>лает на электрон


>рекомендует питоноговно


Ясно.
61 1876315
>>76310
А сам как думаешь? Если не сделал интерфейса и системы для публикации новых новостей, то пересобирай всё каждый раз когда контент обновится.
62 1876316
>>76218
На некоторых предприятиях нет сервера. Сейчас на живом примере объясню, что я хочу. Я разработчик схемотехник в одной небольшой НИИшке в ДС (не за колючкой, у меня все ок), и мое изделие проверяется на стареньких компьютерах (первая и основная версия изделия вообще из-под DOS, и для обработки приходится ребутиться в ХР, в новых уже совершенно другое ПО). В общем все эти предприятия, если у них что-то не выходит, либо присылают мне сами изделия, и я их у себя испытываю, либо присылают выходные файлы запусков в виде объемных DAT'ников с кучей цифр, разбитых по столбцам. Так как предприятий много, а я один, и в моих требованиях не прописано никакого ПО для обработки этих результатов, я и захотел облегчить себе в итоге задачу и заодно разобраться в JS. Прекрасно понимаю, что на питоне вышло бы легче, на плюсах эффективнее, а на джаве и сишарпе я бы нашел кучу примеров, но я хочу именно что освоить JS, так как он вроде как ОЧЕНЬ многозадачен сейчас и на нем пишут все, что душе угодно. Я и решил собсна проверить, почему бы и нет?

>>76235
Да, спасибо, я примерно так и собирался делать маленькими кусочками. Набросал интерфейс только чтобы вообще представить, какие свистоперделки хочу, ну и чтобы сюда отправить, так вроде понятнее, какую я задачу хочу сделать. Так как я неопытен, мне сразу указали на очевидные ошибки и в принципе я уже получил, что хотел. Спасибо!

>>76242
Ну я уже написал, что мне не совсем получится запускать ее на каком-то сервере, так как его нет. Это небольшая утилита для себя будет. Но за идею все равно спасибо!
63 1876322
>>76315

>интерфейса и системы


Это как?
64 1876323
>>76316
Нахуй ты в это лезешь пчел, сиди перди в своем нии, делай пиздодельный вид, заставь всех думать что ты делаешь невьебенно важные вещи, нахуй тебе эта автоматизация
65 1876334
>>76322
То, что у тебя собирает вебпак, по функционалу никак не должно отличаться от рабочей версии. Ты изначально не сделал никакой админки у себя в проекте, разумеется ты и не сможешь никаким образом публиковать новые новости, сделай админку, типа - залогинился особый пользователь, у него вылезает дополнительный интерфейс, позволяющий добавлять новые заметки и отправлять их на сервер, остальные пользователи автоматом обновляют эту инфу с сервера и видят у себя новые новости
66 1876338
>>76322
Новости должны загружаться с сервера. Должны существовать пользователи с ролями вида "публикатор" у которых есть право загружать новые материалы. Публикаторы загружают новости, сервер их распространяет.
67 1876341
>>76323
Ну чо обижаете. Я раньше, кстати, сидел как раз на одном из "колючих" заводов и собирал то, что сейчас разрабатываю, потом как раз решился после командировок перебраться в Нерезиновск по офферу. Если тут буду сидеть, то какой смысл? Лучше тазом рычать и повыше лезть.
sage 68 1876347
>>76316

>запускать ее на каком-то сервере


Ну, при разработке на JS используется Node.js
И это, в общем-то, сервер.
И запускать его можно локально, просто, чтобы иметь веб-интерфейс к своей программе.
А можно и не запускать, и использовать просто как набор библиотек.

Это просто такой способ сделать пользовательский интерфейс - локальный веб-сервер.
Прелесть в том, что можно запускать на одном компе (напр. на вирт. машине), а работать с ним - на другом.

Но, начинать с этого не надо, конечно.
Никакую оболочку вообще не надо делать.
Начать лучше просто с 1 маленькой консольной утилиты.
69 1876348
>>76334
>>76338
Получается нужно пилить отдельный интерфейс для админа с формами ввода загрузкой картинок, что бы он мог по сути мог оформить новый новостной блок? Ебать это тяжело?
70 1876352
>>76347
А, теперь понял, что вы все имели ввиду. Спасибо! Попробую просто пока набором библиотек обойтись, пока до интерфейса ещё очень далеко.
71 1876354
>>76348
Еще и авторизацию делать, ага.
72 1876355
>>76347

>Ну, при разработке на JS используется Node.js


>И это, в общем-то, сервер.


Ну нихуя себе, при разработке используется локальный сервер! Да ты прямо Америку открыл.
73 1876357
>>76348
Ну можешь конечно в базе данных руками каждую новость оформлять
74 1876359
>>76357
Насколько реально такое запилить в одну рожу? Это уже фулстак выходит или нет? Короче нужен сервер там крутится nginx и какой нибудь монго, там же лежит сайт, админ логинится в специальной форме создает контент отправляет на сервер, сервер отправляет остальным, правильно я понял?
75 1876360
>>76348

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


А это значит, что эти данные надо где-то хранить, так что готовься расчехлять ещё один сервер/виртуалку под базу данных.
Ну ещё и редактор надо написать/подключить, статьи без подмножества html тэгов не кошерно писать. Причём этот редактор должен быть понятен человеку, не сведущем в программировании.

>Ебать это тяжело?


Это ты ещё до имплементации какого-нибудь OAuth не дошёл. Вот там начинается ёбля с менеджментом ключей и самописными скоупами.
76 1876363
>>76359
У firebase есть возможно запилить на серверах гугла базу данных, сделать функционал для логинов, всем этим можно управлять с npm модуля, в общем гугли ищи в эту сторону, но может кто подскажет как это еще проще можно оформить
77 1876364
>>76360
>>76363
Проще наверное на вордпрессе такое запилить?
78 1876369
>>76348
Зависит от формата новостей. У lenta.ru например всё вида - картинка + текст. Если делать в таком формате, то будет не сложно. Для чего-то более красивого нужно будет писать свой интерфейс и логику обработки вводимых данных.
79 1876398
Решил вкатиться и попробовать vue. У меня вопрос, когда я создаю компонент и динамически заполняю его, как мне повесить событие на созданный элемент?
https://jsfiddle.net/mpyaz23f/
81 1876409
>>76405
Благодарю. Это было очевидно, мог бы сам дойти, посиди минут на 5 больше.
82 1876414
>>76409

>Это было очевидно, мог бы сам дойти, посиди минут на 5 больше.



Ага, успокаивай себя, даун. Жаль только это не сделает тебя умнее.
изображение.png51 Кб, 194x259
83 1876420
>>76414

>Ага, успокаивай себя, даун. Жаль только это не сделает тебя умнее.

84 1876526
>>76414
>>76420
Ой ну давайте без вот этой вот хуйни, нормально же сидим
85 1876758
const fileInput: ЧТО ТУТ ДОЛЖНО БЫТЬ?! = document.querySelector(".file");
fileInput.onclick = () => {
console.log('hey')
}
Нихуя не могу понять как работать с нодами в тайпсккрипте. Any писать не хочется, а если HTMLElement | null, то обработчик события не прикручивает. инб4 тайпскрипт не нужон
86 1876761
>>76758
HTMLInputElemnt | null или что-то в. таком духе
дальше чекай, что fileinput не null
87 1876762
>>76758
Указанный тип никак не влияет на время выполнения, если не прикручивается с HTMLElement, то и с any ничего не прикрутится.
88 1876765
>>76761
Так и делаю интуитивно. Но разве так разрабы делают при работе с нодами? Постоянно ифом проверять есть ли в переменной элемент?

const fileInput: HTMLInputElement | null = document.querySelector(".file");
if (fileInput) {
fileInput.onchange = (e): void => {
console.dir(e.target);
};
}
89 1876776
Господа анончики. Реально ли реализовать, чтоб при открытии страницы один раз выполнялось обновление "location.reload()" и не уходило в цикл? Вот я открыл страницу, она один раз обновилась при открытии и все, дальше я мог с ней работать уже?
90 1876778
>>76776
А какова конечная цель?
91 1876787
>>76776
Используй localStorage/sessionStorage, Люк!
92 1876791
>>76776
А нахуя тебе релоад после загрузки вообще?
93 1876805
>>76787
Тут вопрос в другом - зачем?
Если данные подтянуть с бека - это другая задача, и делается не так.

Ничего не приходит в голову, кроме того, что надо обновить какие-то зависимости - картинки, скрипты.
Но, если это твои зависимости - надо ставить хеши в URL и оно само обновится при открытии страницы, если изменилось.
А если чужие - тогда непонятно, почему такое странное требование - 1 раз, и всё.
94 1876811
>>76805
Да хуй его знает зачем. Может ему за это бабла отвалят. Спросили - я подсказал
95 1876813
>>76778
>>76791
Сайтец типа подтвердите что вам 18+ и при подтверждении редиректит на другой сайт.

Блокировщик рекламы схлопывает редирект, походу нужно на сайте какое-то время посидеть перед кликом. Думал, можно решить релоадом. Сейчас потестил и нифига релоад не поможет. Буду дрочиться с таймаутами.
96 1876881
>>76813
Можно запрос от сервера на редирект отправить.
97 1877102
В v-is нужно указывать название элемента и все. Вопрос - а как тогда передать пропсы в элемент и ловить события?
98 1877111
>>76030

>с чего вообще начать


Задача довольно объёмная на самом деле, объём работы большой.

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

Начни, например, вот с этого:

>считывание файла, определение его типа по размерам столбца (там уебищные текстовые файлы от разных производителей с разделителями в виде пробелов, мне нужно, чтобы автоматически выбирался нужный тип и в соответствии с ним обрабатывался), обработка информации и


То есть считать файл, распарсить, перевести в унифицированный формат, в JSON конкретного вида, например. Самостоятельная задача, в любом случае делать придётся. В зависимости от того, какие файлы, возни может быть много. В общем это один модуль.

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

Ну и разные таблицы.

Продолжение второй задачи - функционал по переключению с одного вида на другой, управление масштабированием и т.п.

После можно пытаться сделать приложение-прототип для одного вводного файла.

Файловый менеджер отдельная тема, никогда не делал, но руками самому точно сложно. Наверное есть какие-то готовые варианты.

На самом деле тут дохрена работы, написать свой собственный excel ну совсем не так просто. Для новичка скорее всего непосильно, но хоть с частью задач можно разобраться.
99 1877112
>>75685 (OP)
можно пройти курс по реакту и сразу на синиора вкатиться?
100 1877117
101 1877122
>>76030

>Требование — кроссплатформенность (под доебан и винду)


Магических межосевых апи нет и никому они не нужны, даже в электроне тебе придётся писать if win32

>минимальное использование ресурсов (чтобы на очень некроговне открывался и особо не жрал память)


Тогда JS совсем не вариант
Как уже написали выше, если принципиально хочешь жс - лучше напиши pwa с демоном
Можешь присмотреться к биндам какого-нибудь qt на голанге

>proton native


Максимально сомнительный фреймворк
102 1877142
Поясните за спа, весь интерфейс и вся логика страницы в итоге высирается бабелем и вебпаком в папку дист и содержимое этой папки
ложится в /var/www?
103 1877158
>>77142
Ты бы вопрос сформулировал нормально для начала. Ни бабель, ни вебпак, ни папки dist и загадочная var/www никакого отношения к SPA не имеют.
104 1877172
>>77142
Всё высирается в один js файл, типа bundle.js.
Иногда - в несколько частей, но, смысл тот же.
Иногда - ещё и css.
Этот файл (или несколько) включается в практически пустую html страницу.
И потом рисует тебе всю хуйню при загрузке страницы.
105 1877178
>>77172
Этот шарит. Спасибо. А вот теперь смотри, есть сервер где это все лежит, теперь если я хочу получать/отправлять данные на страницу нужно на этом же сервере иметь базу данных, которая будет обрабатывать запросы?
106 1877190
>>77178
У тебя слово «сервер» подразумевает слишком много разных вещей. И http-сервер, и приложение, и физическую машину.

Страница (то есть JS-код) может получать и отправлять данные самостоятельно, ей для этого помощь не нужна. БД сама по себе запросы не принимает и вообще никто не делает их тупо торчащими в интернет. Она только для хранения данных. Чтобы обрабатывать запросы нужен бэкенд, то есть приложение, включающее в себя http-сервер, какую-то логику и умеющее работать с базой данных.

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

Настраивать все это самому довольно геморно, но есть разные сервисы которые неплохо абстрагируют всю сложность, например, Heroku.
107 1877198
>>77142

>спа


Это 1 (одна) HTML5 страница, к которой прилинковано куча JS кода, который динамически рисует на ней всю морду. Бандлинг не обязателен, можно прямо ручками каждый отдельный JS файл линковать, это тоже будет SPA
108 1877204
>>77178
Это зависит от того, какие данные ты хочешь отправлять, и зачем.
И какие получать.
Ты не задавай тут наводящие вопросы, а скажи прямо - чего тебе надо?
109 1877205
>>77190
Короче тупо хочу получать и заносить данные, например список товаров, с собственной базы данных, что нужно? Сервер, node js, апач?
110 1877210
>>77205
Node.js + mongoDB
111 1877212
>>77205
Фронт, бэк, БД и хостинг всего этого добра.
112 1877213
>>77205
Да, в этом случае у тебя должна быть база данных.
Как правило, это отдельный сервер, но, для простых случаев можно и SQLite - просто файловая база

Вообще, есть _очень_ много способов это сделать, и в двух словах это не объяснить.
Очень многое зависит от того, как именно это будет использоваться и кем. И от типа и объёма данных.

Для товаров, склада и т.п. "классических" применений лучше использовать "классические" (SQL) базы данных.
Например, MySQL или SQLite.
113 1877214
>>77210
>>77212
>>77213
Спасибо друзья вы самые лучшие, отсасал бы вам но не могу , чмок
114 1877215

>mongoDB


>SQLite


Нет. CouchDB
115 1877226
У меня есть класс Vote. С помощью него можно создавать разные голосовалки и указывать какую функцию выполнить в случае если набралось достаточно голосов.

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

Вот не могу придумать название для этого метода.
То ли Голосование.проверитьвсеголосовалки, то ли Голосование.мойсуперметод.

Помогите пожалуйста а то нет идей.
116 1877227
>>77226

> в случае если набралось достаточно голосов


Тут очевидное событие
117 1877228
>>77227
Сетинтервалом что ли?
118 1877231
>>77228
Не, пользуй EventEmitter
119 1877238
>>77226
iterateThroughtVotes
20190929095249.jpg62 Кб, 849x353
120 1877246
>>77226
Проходится слишком дорого, делай как на пикриле - каждый экземпляр имеет определенный триггер который знаменует конец голосования и сигнализирует об этом обработчику onComplete.
121 1877248
>>75685 (OP)
Я решаю по фану задачки на codewars. Условие - пик 1. Кто не понимает: нужно чтобы от url отрезались все префиксы, постфиксы и т. д. Моё решение - пик 2. Вопрос: почему return не возвращает строку после моих обработок? Дело в замыкании? Или в чем? Как пофиксить?

Заранее спасибо
122 1877256
Че там сейчас юзают в бэке? Экспресс, джанго или че?
123 1877259
>>77248
Каком замыкании? Замыкании в твоём мозгу? Возможно.
Вернёт твоя функция результат функции сutEnd только в случае если ни одно из условий if и else if не сработает.
sage 124 1877276
>>77248

>let


>спагетти из if-else


>эта рекурсия



вскройся
125 1877281
>>77276
Чё let, тупица? Там нет рекурсии, а ты тупое чмо, ебало хлопни.>>77276
126 1877282
>>77248
Перепиши, тут все не так. И задачу можно решить в одну строчку.

Дам подсказку: у тебя урлы могут быть вида http://https-lol.com
127 1877284
>>77246
Да это понятно что нужно проверять во время добавления голоса. Но бывают ситуации когда голосов набрано достаточно, но триггер не сработает. Это когда например есть 2 игрока. Голосов нужно набрать 2. Первый игрок голосует и голосов становится 1/2. Второй игрок покидает сервер. Голос нужен 1. Состояние голосовалки будет 1/1, но триггеров никаких не будет.

Да и вообще я про название функции спрашивал.
16075979907990.png78 Кб, 625x368
128 1877286
129 1877293
>>77284

>когда голосов набрано достаточно, но триггер не сработает



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

Суть в том что нужно сразу правильно делать, а не придумывать названия функциям.
130 1877295
Ща вот такой прикол, повторяю все языки, на которых пишу ( просто беру и одну прогу пишу сразу на всех языках)
C#, Python, Java, C++, Javascript
Хоп, на ютубе попадается видео-интервью от Бьёрна Страуструпа (Создатель С++, я по его книгам учился в основном)
и Говорит, что один язык знать - мало, нужно твердо знать такие языки, как: C#, Python, Java, C++, Javascript.

И тут я орнул :)
я языки чисто по вкусу выбирал.
На Питоне мне нравится писать ( как альтернатива сексу )
Java - мой первый язык
C++ учил для вуза
C# для создания игр
на Js сайты писал мощные :)
крч ребят, кто там с языками не определился, начинайте учить любой из этих 5ти.. (лучше Питон либо С++, чтобы отсальные легче было)
не учите сранну Джаву первым языком... это лишние пиздострадания

Кладите большой хер на мнение Mail.ru, у них хоть и все сервера на сранной джаве, сами-то на Питон пересели в прошлом году
131 1877299
>>77295
Это неиронично написал чел на 1 курсе, распостраните
sage 132 1877302
>>77295
Пашел нахуй
133 1877303
Бамп
134 1877306
>>77259
>>77276
>>77286
суки тупые и ебаные, хули вы раскудахтались-то? Я же сказал, ПО ФАНУ! ПО ФА-НУ. Расслабьтесь, никто ваши драгоценные места не идет забирать. Ещё раз для ёбаных неудачных дебилов конченных даунов и уебищ: ПО ФАНУ. ПРОСТО ТАК. РАДИ РАЗВЛЕЧЕНИЯ. Сука мрази токсичные.
А какие вы ещё тут вопросы ожидаете? - простите меня за нескромный вопрос.
>>77282
А тебе спасибо за совет.
image.png53 Кб, 1427x783
135 1877307
>>77286
Ну-ну
>>77248
Вспоминаю сразу такой охуительный скрин
136 1877308
>>77256
Щас там гоша в моде
137 1877310
>>77308

>гоша


Че? Го?
138 1877311
>>77306
Ещё в урле может быть логин и пароль перед доменом через @, в конце может быть порт, разделителем между доменной частью и path может быть не только /, но и ?,#. Рекомендую по фану почитать https://www.blackhat.com/docs/us-17/thursday/us-17-Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-Languages.pdf
139 1877316
140 1877329
>>77293
Ты сейчас описал ровно то, что я и сделал. Но не придумал точное этому название. Не называть же этот метот myMethod. Название должно точно отражать суть функции, но и ещё не быть длинной. Так бы я написал Голосование.завершитьуспешновыполненныеголосования()
141 1877376
142 1877401
>>77226
Начнём с того, что у тебя должен быть класс (объект, синглетон) VoteService.
Метод назвать надо так, чтобы было понятно, что он делает, почему и зачем.
Из твоего описания - не очень понятно. Например, что такое "достаточно", и что должно быть потом с этим Vote?

Например:
VoteService.findCompletedVotes() //хорошее название
VoteService.checkAllVotes() //сликом общее название
143 1877403
>>77246
Вот эта вот вся поебень и должна в сервисе быть.
Сервис должен сам создавать экземпляры Vote, и подписываться на изменения в них, всё это должно быть внутри.
144 1877417
>>77329
Ты разницы не видишь между методом и функцией. Метод это то что у твоего класса, а функция это то что вне классов. Вот ты вынес всё в функцию и хочешь чтобы она постоянно дрочила объекты, а нужно делать всё в виде событий, не кто-то другой должен проверять закончилось ли голосование, а сам класс должен говорить о том что голосование закончилось.
145 1877427
>>77329

>завершитьуспешновыполненныеголосования


processDoneVotes()

Не надо думать о коде по-русски.
Твоя проблема в этом.
Русский - вообще не технический, и, тем более, не "компьютерный" язык.

Учи английский, много читай по-английски, думай о программе по-английски.
146 1877434
>>77102
VUE-бамп
147 1877436
Вебпак в прод моде грит варнингом что vendors~main.js слишком большой по его мнению. Как фиксить посоны?
148 1877493
>>77436
Конфигу пердоль. Дальше сам
анон 149 1877618
Подскажите нубу, какой ивент касания более всего походит на мышковый "click"? Хочу прокопипастить код ивентлистенеров для мобилок, на touchend же если поменять, то норм работать будет?
150 1877641
>>77434
Я не пробовал (это только для шаблонов внутри html), но, думаю, что все остальные атрибуты компонента надо писать прямо в этот тег, как будто он и есть этот компонент.
Собственно, название директивы на это и намекает.

И, ещё раз - это _только_ если у тебя шаблон прямо внутри html, т.е. не в script, не в строке, тем более, не single file component.

И этот хак нужен, чтобы соблюсти правила html для vue-пасера, т.е. это ты ему объясняешь, что это, а не браузеру, например.
151 1877688
>>77641

>тем более, не single file component.


Вот для этого надо
152 1877760
>>75685 (OP)
Привет. А я закрываю у себя этот тред. Пока.
153 1877761
>>77760
Давай, не болей!
154 1877763
>>77688
Нет.
155 1877778
>>77763
Что нет-то?
156 1877783
вот вышел 3 вью
нужен он или нет?
Там есть обратная совместимость?
157 1877794
>>77778
Эта хрень (v-is) не нужна для SFC.
158 1877796
>>77794
Тогда чем их менять? V-if? И где в доке об этом сказано?
159 1877807
есть кто вкатился в JS с первой работы в 100-200к?
160 1877816
>>77796
Ты, похоже, что-то напутал.
v-is и v-if - это очень разные вещи.
Ты бы сказал, что тебе надо получить, в итоге.

Вот дока, правда, на vue 3:
https://v3.vuejs.org/api/directives.html#v-is

Почему-то не нашёл v-is для v 2, хотя, точно помню, что читал про это ещё хуй знает когда. Но - нету.
Была ещё директива v-component, примерно (или точно) то же самое, но хуй знает куда делась - в доках теперь тоже нет. Возможно, это в 1-й было а не во 2-й.
На самом деле похуй, т.к. это не нужно вообще в реале.
161 1877818
>>77783
Он нужен, там много полезных изменений, и в API и в движке.
Обратная совместимость - есть.
Но, не по инструментам.

Но, его ещё немножко не допилили, и в плане инструментов и вообще.
Могут быть нестыковки с библиотеками и т.п.
Если только начинаешь - начни с v2.

Можно ещё накатить composition api, и будет почти 3.
https://composition-api.vuejs.org/
162 1877859
>>77618
Не пробовал на всё, что требует `click`, использовать кнопку?
163 1877861
>>77783
Пока нукст не перекатится на V3, можешь забить на него.
164 1877874
>>77807
В смысле до этого получал 100к+ или на первой работе разрабом? Так или иначе, я по обоим требованиям прохожу. Чтобы прям на самой-самой первой работе чел столько получал я не слышал. Самое близкое — нанимал 21-летнего парня на 80к и он довольно быстро вырос на 100к+.
165 1877889
>>77859
У меня и так везде, где есть кликабельный скрипт, под тегом баттон. А что это дает? На сенсорных экранах прикосновение к кнопке как клик будет работать?
166 1877892
>>77889
Конечно, лол. По-твоему когда тач-девайсы только появились на них ни один сайт не работал?
167 1877901
>>77889
Клик на кнопку считается и как тач, и как стилус, и как нажатие пробела/энтера и как Аллах.
168 1877914
>>77816
https://ru.vuejs.org/v2/guide/components.html#Динамическое-переключение-компонентов

Ну вот мне нужны такие табы, только с однофайловыми компонентами с пропсами и событиями.

Я сделал через v-if, как сделать через :is?
sage 169 1877967
>>77281
хуило ты мутабельное, ещё раз увижу let в твоих пуллреквестах - оставлю комментарий, будешь переписывать

>нет рекурсии
глаза разуй, ебанько domainName --> cutBeginning --> domainName
sage 170 1877968
>>77256
тредом ошибся
171 1877985
>>77967
А чё со спойлерами пишешь, ты кого-то боишься, токсичный шиз?
Нахуй ему немутабельные переменные в задачке по кодварс? Дебил.
172 1878004
>>77967

>хуило ты мутабельное, ещё раз увижу let в твоих пуллреквестах - оставлю комментарий, будешь переписывать


Алё, все методы строк - иммутабельные, а леты - ещё и каждый в своём лексическом окружении.

>глаза разуй, ебанько domainName --> cutBeginning --> domainName


Физически не сможет замкнуться.
173 1878008
>>78004

>рекурсии


>не может замкнуться



У тебя в голове замкнулось что-то и не размыкается, обратись к специалистам.
174 1878009
>>78008
После того, как ты научишься читать код.
175 1878025
>>78009
Как мои навыки чтения кода повлияют на то что ты не отличаешь замыкания от рекурсии?
image.png167 Кб, 1850x1010
176 1878027
Screenshot20201211-134201Vivaldi.jpg140 Кб, 1374x481
177 1878037
178 1878038
>>75685 (OP)
Бля, как тайпскрипту указать что нормально ожидать несколько разных объектов? Дефолтная ситуация, когда я делаю запрос на сервер и он может мне вернуть либо объект с данными, либо объект с ошибкой (скажем там одно поле error и в нем лежит строка, которая описывает проблему):

response: Item[] | ErrorResponseObject

Вот вроде так норм должно быть, но он все равно ругается когда я после провожу некие манипуляции с объектом response, утверждая что таких полей в нем нет
179 1878040
>>78038

>response: Item[] | ErrorResponseObject



Ну да, все правильно.

>он все равно ругается когда я после провожу некие манипуляции с объектом response, утверждая что таких полей в нем нет



Логично, там же может быть и ошибка. Читай https://www.typescriptlang.org/docs/handbook/advanced-types.html
180 1878048
>>78027
Молоток
181 1878051
>>78025
Я не про кложур говорил, а замыкающуюся рекурсию, русекодебил.
images.png7 Кб, 250x201
182 1878052
>>78038

>Item[]!

183 1878058
>>78027
Проиграл с задания с говнотестами, которые не учитывают:

>https://mail.google.com/



Твоё код выдаст имя домена === "mail"
184 1878059
>>78051

>замыкающуюся рекурсию


Ого, что-то новое. Где об этом почитать можно? Желательно на английском, мы же не любим русикодебилов, да?
185 1878061
>>78048
>>78058
я не ОП поста, я просто решил задачу
186 1878065
>>78061
Но ты её не решил, решишь когда функция примет аргумент "https://mail.google.com/" и вернёт "google"
187 1878091
>>78065
То есть в https://gazeta.spb.ru/ правильным решением будет spb?
image.png3 Кб, 199x78
188 1878110
Был на собесе, задали вопрос - есть четыре функциональных объекта (четыре функции объявленных разным способом), надо рассказать про разницу между ними и каким свойствами обладает каждая из них.
189 1878111
>>78059
Шиз он или не шиз, но, тот код - действительно хуйня.

мимо
190 1878117
>>78110
И что было дальше?
191 1878121
>>78059

>Ого, что-то новое.


Для русекодебила всегда всё новое.
192 1878126
>>78110
Только третий вариант - не говнокод, но тайпскрипт заставляет говнокодить по четвёртому варианту.
193 1878129
>>78126
считаю, что в спеку пора протащить independent method declaration
let fn() {
...
}

Naned Method Expressin по аналогии с NFE, тоже не помешал бы.
194 1878162
>>78061
Я конечно дико извиняюсь, но мне, кстати, так никто и не ответил почему я ловлю андеф вместо обработанного стринга в другой функции. Все накинулись на то, что я код лапшевидный написал... Так че, я услышу ответ-то?
>>77248
195 1878163
>>78110
А что вообще на четвертой сверху, там где С?
196 1878164
>>78163 быстрофикс* третьей сверху
197 1878166
>>77914
При такой схеме, не очень понятно, как ты собрался передавать пропсы?
Компоненты же разные, пропсы разные?
Оно не для этого, мне кажется. Это для случаев, когда всё в коде вычисляется.

Думаю, что тут надо слоты (slots) использовать.
198 1878168
>>78129
Боба Пайка на вас нет, он бы вам натащил в спеку, блядь.
Как суслики в го, сидели бы тихо, и писали чистый, понятный и эффективный код.
199 1878177
>>78166
Я запихнул компоненты в один блок и навесил на каждый v-if.

Другое дело, что нигде не сказано, что is только для компонентов в коде.
200 1878187
>>78163
Функция-метод.
201 1878190
>>78168
Это и ест чистота. Методы - самые правильные функции, когда речь идет не о лямбдах и не оконструкторах. Единственный вариант объявить нормальную настоящую жс-функцию - это функция-метод.
При этом сейчас нужно писать кучу бойлерплейта ради этого, как на скрине выше.
202 1878195
>>78190

>Методы - самые правильные функции,


Схуяли
203 1878196
>>78190
Ооп-шиза пожаловала.
204 1878199
>>78163
Типичная деструтуризация. Ты примерно то же самое делаешь, когда импортируешь методы из модулей.
205 1878200
>>78162
Ты ничего не возвращаешь, а выполняешь другую функцию в if-блоке.

> return url.match(/(https?:\/\/)?(www\.)?(.+?)\./)[3]


Посмотрел в решениях - еще надо было U в регулярку впихнуть.
206 1878239
>>78110
кроме 4 варианта, все говноедские
Simon-Peyton-Jones.jpg1,8 Мб, 3872x2592
sage 207 1878241
>>78190

>Методы - самые правильные функции


>Методы - самые правильные функции


>Методы - самые правильные функции

208 1878258
>>78162

>никто не ответил



А это что:

>Вернёт твоя функция результат функции сutEnd только в случае если ни одно из условий if и else if не сработает.



Или тебе, как особо одаренному, разжевать нужно? Ок. Начинается первый вызов твоей говнофункции, срабатывает первое условие if, далее идёт рекурсивный вызов этой же функции, как только последний вызов возвращает значение, выполнение продолжается в блоке if и куда оно уходит? Правильно, никуда, потому что в этом блоке ничего больше не происходит. И что оно вернёт, правильно, undefined, потому что в блоке if ты просто запускаешь цепочку вызовов функций.
Следовательно чтобы получить значение после первого вызова, тебе нужно добавить return всем вызовам cutBeginning. Но лучше конечно подучить js и переписать это говно, а также выучить разницу между рекурсией и замыканием.
209 1878334
Ананасы, подскажите, есть ли способ запихнуть видео с ютуба в HTML тег video? Ковыряю API ютуба, но пока что без результата. Видел как делают через iframe и object, но это надо два разных тега прикручивать для видео с ютуба и для видосов с других сервисов. %делаю для себя приложуху вроде тивача%
146528621619483545.gif9,5 Мб, 400x225
210 1878342
Какую зарплату ставить в резюме на самого нулевого фронтеда?

В вакансиях либо нихуя не указывают (90%), либо 25-120к.

Хочет не проебаться, но и чтобы завышенная не отпугнула.
211 1878363
>>78342
Ноль это сколько?

Если до этого не работал, вообще проси до 50к
212 1878364
>>78363
Это меньше, чем на моей текущей работе червя.
213 1878365
>>75685 (OP)
Бля, на проекте подрузили js abac (Attribute Based Access Control) типо так пизже, но у меня уже глаза вытекают, что это за хрень и нафига нужна? Без нее ж нормально жили
214 1878370
>>78364
Смысл мне нанимать тебя как работодатель и платить тебе 50к+ если ты нулевый программист?
215 1878372
>>78370
То есть, работающие пограмисты сразу как-то ненулевыми становись до первой работки?
216 1878374
>>78372
Работали за 30-50к, это вплоне ок для нулевых знаний
217 1878378
>>78374
Не могу устроиться даже на 30к. Я бы и за 20к поработал какое-то время, что бы набрать опыта коммерческой разработки, но мне даже на резюме не отвечают. Я в ахуе, если честно.
мимо другой анон
218 1878383
>>78374
А на ненулевых получают как работник макдака и разносчик жратвы?
219 1878384
>>78383
Ты как думаешь сам? Назовешься программистом и будешь получать 200к?
220 1878385
>>78384
Так я не про 200к, а хотя бы от 60к
221 1878386
>>78342
Ты просто лох, норм пацаны сходу находят работку за 70к, растут там и каждые полгода уходят на новое место практически удваивая зп. За 2 года изи добраться до $8-10к в месяц и релокейта в Европку
Тот же /b почитай
222 1878387
>>78385
Молодежь пошла ленивая. Ты сначала версталой отработай поучись у сойбоев уму разуму. Через три - четыре года получишь джуна по профессии инженер ЭВМ. Через еще пять лет имеешь право на повышение до мидла. К сорока годам будешь ведущим мидлом.Вот тогда и будешь себе требовать зарплату 60 тысяч как у опытных сойбоев. Сойбои опытные по 12 часов работают как говориться от кофебрейка и до смузишопа. И не ленятся. А молодежи нужно зарплату чтобы минимум была 60 тысяч. Мы в нулевые не за зарплату работали. А знали что надо. Бывало придешь с удаленки в хостел и конверсы снять нет сил так и ложились спать в конверсах, а утром в тринадцать часов уже бежали на работу.
223 1878391
>>78177
Думаю, это самый правильный вариант.

А для сложных случаев - есть рендер-функции.
Пропсы и т.п. в переключаемых компонентах можно брать из vuex store, или задавать для родительского компонента, а он их будет задавать для текущего компонента, выбираемого в коде.
224 1878396
>>77248
function domain(str) {
const str2 = str.includes("//") ? str.substr(str.indexOf("//") + 2) : str;
const str3 = str2.indexOf("/") ? str2.substr(0, str2.indexOf("/")) : str2;
const resSplit = str3.split(".");
return resSplit[+(resSplit.length == 3)];
}
225 1878399
>>77434
Svelte рулит!
226 1878402
>>78378
А нахуй РАБотодателю нужен такой жук-плавунец, который съебёт через полгода и оставит с ещё большим техдолгом? За 30к ищут мега-лоха, с которого все соки можно выжать.
227 1878404
Делаю скрипт, умеющий говорить хелло ворлд 10.000 разными способами, используя несколько сотен разных слов, где хранят этот словарик в таких случаях? Так-то я не стреманусь засунуть прям в скрипт массив 300-400 позиций или вообще одной строкой, мне похуй, а как надо?
228 1878419
>>78404
На сервере. Загружаешь в память (для 10000 хелловорлдов в формате UTF8 это меньше 1 мб памяти) и отдаешь по запросу твоего скрипта.
229 1878420
>>78404

Выделить в отдельное хранилище, например, в json, и обращаться к нему.
230 1878426
>>78404
Если клиент-онли, то на похуй разгружаешь массив прямо в браузере. А так конечно нужен сервер.
анон 231 1878429
Здравствуйте, аноны. Хочу научиться писать динамичный бэкенд на ноде и монгодб, с бэкендом не знаком совершенно, нужно начинать учиться с нуля. Посоветуйте, плиз, учебных материалов для прочтения, можно на английском.
232 1878442
>>78429
У монги есть свои курсы: https://university.mongodb.com
Один из курсов включает в себя пердолинг на ноде, так что и этому чутка научишься.
233 1878450
>>76758
function getInput(el: string) {
return document.querySelector(el) as HTMLInputElement;
}
234 1878530
>>78420
Что такое "отдельное хранилище, например, в json"?
235 1878633
>>75685 (OP)
Есть админы и есть обыные юзеры, как в ангуляре отрендерить одну кнопку, чтобы она была видна только админам? Канешн на бэке своя защита, чтоб по ней не перешел обычный юзер, но с фронта по ней тоже должно быть нельзя перейти
Как такое обычное решается в ангуляре?
236 1878638
Хочу запилить фулстак, что для этого нужно? Сервер на докере или виртуалке, с монго и нодой, само приложение должно тягать данные с того же сервера из монго, а дальше что? Собрать сайт вебпаком и закинуть на сервер?
237 1878643
>>78633
Хранить в сервисе данные о правах пользователя и в компоненте их подтягивать. Как фронт получит данные о юзере это отдельный вопрос, можно при логине, например.
238 1878646
Что true-фронт должен знать про html и css? Я изучал их по мере написания пет-проектов гуглил нужные теги и стили, но мне кажется, что мне не хватает основ.
239 1878648
>>78638
Хостинг нужен, который будет переваривать твой нодосервер. Какой-нибудь Vercel или Heroku.
240 1878654
>>78646
Если на пол-секунды задумываешься, лепить ли очередной див или семантический тэг, то у тебя уже достаточные знания HTML. А CSS - кумулятивная тема, там как таковых основ нет, разве что лэйауты типа флекса и гридов. На MDN есть что-то типа курса вкатывальщика-вротендера, можешь чекнуть секции по HTML и CSS.
241 1878655
>>78633
А как у тебя обычные пользователи от админов то отличаются? Создаешь AuthService, в нём роли вида Unauthorized, Authorized, Admin, при загрузке идёт проверка прав, изменить их можно при логине/разлогине. Далее всем компонентам в которых есть различия для ролей пользователей пихаешь этот сервис и в зависимости от роли показываешь/скрываешь кнопку. Но лучше всё не через сервисы делать, а через менеджер состояний - NgRx
242 1878656
>>78648
Вот только нихуя не пойму где держать базу данных, на хероку как я понял только бедет лежать сам сайт,
243 1878659
>>78646
Если умеешь делать адаптивные страницы, то считай, что твоих знаний достаточно. Главное чтобы CSS не состоял из тысяч media запросов, а в дублирование в html стремилось к нулю.
244 1878661
>>78656
На хероку есть сервис для бд.
245 1878671
>>78655

>NgRx


Нинужно.

В ангуляре проще работать с сервисами чем с flux-state библиотеками и особенно учитывая как это реализовано в NgRx.
246 1878673
>>78656
Так ты сам сказал, что БД будет на виртуал очке. А значит у сервера есть по дефолту доступ к ней, они ж на одной машине.
247 1878675
>>78671
Ну если ты для себя пишешь, проект не крупный, то да, можешь без NgRx работать. Если у тебя цель устроиться на работу, то без знаний NgRx шансов у тебя будет мало, а если и устроишься, то всё равно придётся учить и привыкать к нему, отвыкая от сервисов.
248 1878684
>>78675
Буду ждать, пока придумают новый подход, лучший. Редуксы - кал.
kmzvri1n.jpg17 Кб, 223x223
249 1878691
>>78675
Как раз таки на работе и оценил насколько NgRx говно в условиях реального проекта.

Когда начинали проект, тимлид сказал, что вот: NgRx заебись, как в Redux будем писать экшены, редусеры, геттеры-хуеттеры и тд. В итоге через 3-4 месяца переписали все на сервисы, потому что работать со всем этим мусором становилось очень сложно.
Хочешь создать новый запрос от сервера? Добавь поле в интерфейс state, добавь поле в state, добавь action файл, добавь константу экшена, добавь тип экшена, опиши в экшене вызов сайд эффекта http-запроса, создай interface редусера, создай константу редусера, создай reducer файл, добавь все импорты выше перечисленных файлов в connect, пиздец! А если хочешь что-то поменять в этой логике, будь добр пройдись по всем этим файлам. Учитывая что 90% логики, это просто вызвать запрос и получить какой-то объект, для передачи его из route компонента в child компоненты через инпуты, от этого ОЧЕНЬ сильно начинала болеть голова. А если будет что-то сложнее, типа обновления данных по @Output евенту или обновления стейта через несколько http-запросов в связке, то это вообще ебнешься.
Еще ngrx считай никак не используют концепцию Observable, поэтому в использование компонентам дается только state observable который обновляется при КАЖДОЙ записи чего-либо в state. Хочешь геттеры под конкретные поля, которые емитят только при изменении значения поля? Пиши 100 pipe(map(), distinctUntilChanged()). Хочешь подписаться на вызов определенных экшенов? Делай грязный хак, да и вообще это не Flux-way, и иди нахуй. Ни декораторов, ни нормально cli, ебал рот.
Если уж и брать flux библиотеку, то NGXS, так как там концепт Observable используется намного шире и нет надобности писать такое количество boilerplate кода. И то я считаю, если ты знаешь что делаешь сервисов тебе хватит за глаза, на крайний случай можно взять Akita, который представляет собой middleware шину, которую можно использовать для повторного получения данных из кэша.

Вообще очень сильно калит, что в js фронте из-за Redux, все стали боготворить flux-way хранения состояния, хотя как по мне это лютый оверхед. Задаешься вопросом: почему ни в одном другом языке это говно не прижилось?
kmzvri1n.jpg17 Кб, 223x223
249 1878691
>>78675
Как раз таки на работе и оценил насколько NgRx говно в условиях реального проекта.

Когда начинали проект, тимлид сказал, что вот: NgRx заебись, как в Redux будем писать экшены, редусеры, геттеры-хуеттеры и тд. В итоге через 3-4 месяца переписали все на сервисы, потому что работать со всем этим мусором становилось очень сложно.
Хочешь создать новый запрос от сервера? Добавь поле в интерфейс state, добавь поле в state, добавь action файл, добавь константу экшена, добавь тип экшена, опиши в экшене вызов сайд эффекта http-запроса, создай interface редусера, создай константу редусера, создай reducer файл, добавь все импорты выше перечисленных файлов в connect, пиздец! А если хочешь что-то поменять в этой логике, будь добр пройдись по всем этим файлам. Учитывая что 90% логики, это просто вызвать запрос и получить какой-то объект, для передачи его из route компонента в child компоненты через инпуты, от этого ОЧЕНЬ сильно начинала болеть голова. А если будет что-то сложнее, типа обновления данных по @Output евенту или обновления стейта через несколько http-запросов в связке, то это вообще ебнешься.
Еще ngrx считай никак не используют концепцию Observable, поэтому в использование компонентам дается только state observable который обновляется при КАЖДОЙ записи чего-либо в state. Хочешь геттеры под конкретные поля, которые емитят только при изменении значения поля? Пиши 100 pipe(map(), distinctUntilChanged()). Хочешь подписаться на вызов определенных экшенов? Делай грязный хак, да и вообще это не Flux-way, и иди нахуй. Ни декораторов, ни нормально cli, ебал рот.
Если уж и брать flux библиотеку, то NGXS, так как там концепт Observable используется намного шире и нет надобности писать такое количество boilerplate кода. И то я считаю, если ты знаешь что делаешь сервисов тебе хватит за глаза, на крайний случай можно взять Akita, который представляет собой middleware шину, которую можно использовать для повторного получения данных из кэша.

Вообще очень сильно калит, что в js фронте из-за Redux, все стали боготворить flux-way хранения состояния, хотя как по мне это лютый оверхед. Задаешься вопросом: почему ни в одном другом языке это говно не прижилось?
250 1878704
>>78691

>Когда начинали проект, тимлид сказал, что вот: NgRx заебись



Ну т. е. твоё знакомство с NgRx происходило в напряженной обстановке, а в обстановке проекта который нужно сдать в срок? Неудивительно почему ты высрал такую простыню негодования. NgRx не тот инструмент который можно освоить нахлёстом, для того чтобы его освоить нужна спокойная обстановка и практика в виде хотя бы 2-3 проектов.
251 1878707
>>78704
Не спорю, что за 2-3 проекта можно освоить любой инструмент, но я не вижу какую проблему решают flux библиотеки в контексте Angular, в котором есть DI. Меньше кода они не дают, и на них можно написать такой же говнокод как на сервисах, равно так же как и хороший.
Если инструмент не приносит никакой пользы, зачем его использовать?
252 1878708
>>78691
Братишка, а как тебе вообще сам ангуляр?
maxresdefault.jpg83 Кб, 1280x720
253 1878719
https://survey.stateofjs.com
Не забудьте пройти опрос.
254 1878722
>>78708
Angular - круто.
Из большой тройки мне он больше всех нравится.
255 1878730
>>78200
>>78258
Пасиба
256 1878768
>>78656
Mongodb atlas или aws free tier
257 1878797
>>78691

>А если хочешь что-то поменять в этой логике, будь добр пройдись по всем этим файлам.


Вот она - эссенция пидорской зумер-архитектуры.
Реакт - кал.
Редукс - кал, однозначно.

Когда заходит речь о реактах и редуксах, полезно вспоминать, что всё это - детище фейсбука.
А бекэнд в фейсбуке - на пхп.
Это всё, что нужно знать, для принятия решения.
258 1878803
>>78722
Э СЛИШ СКАЖИ АНГУЛЯР КРУТА
259 1878811
Есть отображение вроде:
{"name": "Alex", "department": "B2B"}

Как превратить его в query-параметры и подставить в url?
16011320437830.png10 Кб, 399x126
260 1878826
261 1878832
>>78826
Как бы еще заставить его кодировать как надо, когда руснявые знаки попадаются...
263 1878840
>>78797
Редакс это не детище фейсбука.

>>78691
Вы не смогли завернуть поля data, error и isLoading в одну абстракцию, а виноват в этом почему-то редакс? Еще и по сто однотипных редьюсеров писали небось, лол.
264 1878842
>>78840
Речь не про твой парашный редакс с реактом, а про NgRx и Angular. В ангуляре есть сервисы и DI, которые полностью покрывают потребности веб-приложения в управлении состоянием. Но нет, долбоебы-смузихлебы захотели писать больше бойлерплейт кода, поэтому слизали идею редакса и притащили это говно в ангуляр.
265 1878843
266 1878846
>>78842
Ты так бахаешь, как будто лично я тебе его в проект подбросил.
267 1878852
>>78826
Зачем тут +=?
268 1878857
>>78852
Чтобы складывать предыдущий результат с текущим.
269 1878883
>>78840
И на каждую такую абстракцию нужно писать/подключать как минимум 4 файла, вместо того чтобы решать через одну строчку http.subscribe(res => {}, err => {}) в route компоненте.

Может объяснишь в чем профит?
270 1878885
>>78883
Смысл нормальных абстракций в том и состоит чтобы в одну строку все делать, а не в 4 файла. Вас постоянное написание одного и того же кода ни на какие мысли не навело? В чем там профит я не знаю, никогда с Ангуляром и ngrx не работал.
image144 Кб, 1118x884
272 1878934
поясните почему переменную text объявленную в первой функции, видно в других функциях? она ведь не объявлена глобально
273 1878938
>>78934
Это две разные переменные. Вторая — просто аргумент в функции. Почему ты их связал вообще?
274 1878939
Чёт я не вкуриваю как в нуксте запихнуть глобал стейт, не прописывая на каждой странице `data() { return {user: user.this.$store.user } }`.
Ещё и вуйкс не может в инстансы классов и сеты, вообще охуеть.
275 1878942
>>78938
все я понял, первая функция при активации передает аргумент в функцию ниже, так?
276 1878944
>>78942
только я не понимаю все таки нахуя в нижней функции этот аргумент прописывать явно
277 1878945
>>78944
Так попробуй учить не читая код, а читая соответствующую литературу/учебные материалы.
278 1878959
>>78857
Здорово. А += для этого зачем?
279 1878990
>>78959
Тому шо редюсер.
280 1878994
>>78990
Так зачем так равно? Ты возвращаешь query + строка. Зачем там query = query + строка? Зачем здесь мутировать аккумулятор?
281 1878995
Подскажите, почему не робит.
async (): Promise<any> => {
const link = await playlist?.querySelector("li");
console.log(link) // null;
}
Playlist - это список, в который из базы приходят данные и динамически рендерятся лишки. Как правильно дождаться появления элементов в списке? мне нужен только первый элемент списка всегда
282 1879001
>>78942
Нет, ты пишешь бессмыслицу. Иди читай как работают функции, что такое область видимости и т.д.
283 1879003
>>78995
У тебя что-то очень странное происходит. Во-первых переменная playlist вообще какого типа? Это промис который возвращает элементы чтоли? Крайне затейливая архитектура. Во-вторых ты эвейтишь не его, а результат querySelector, который, видимо, null. Если ты хочешь эвейтить playlist, то должно быть: const link = (await playlist)?.querySelector("li");
284 1879006
>>78995
Приходит скорее всего массив, которого даже в DOM'e нет. Пиздуй читать, как результат промисов превращать в json, тебе даже никаких квери селекторов не надо.
285 1879009
>>79003
>>79006
Playlist(ul) руками написанный список в HTML'е. По загрузке страницы, из базы я получаю массив с данными, потом перебираю массив и отрисовываю лишки в список. Пока данные с сервера не пришли, в списке нет лишек. Мне нужно дождаться, когда в этом списке появится элемент li.
286 1879011
>>79009
Что у тебя там за дичь, которая пересылает html в запросах? Точно с xml не путаешь?
287 1879014
>>79011
В запросах только данные. Эти данные через самописную функцию рендера (создаётся лишка и вставляется в ul) вставляются в список.
Ну просто получаю например строку "ХУЙ" из базы данных
передаю в функцию

function renderHUI (ulElement, text){
const hui = document.createElement('li");
hui.innerHTML = text;

ulElement.apend(hui);
}
288 1879017
>>78959
Ты не спрашивай. Ты за Папкой повторяй. Пока Папка добрый
289 1879022
>>79014
Так тебе данные или элемент нужен? Данные можешь выдёргивать из массива ещё до рендера, а элемент списка будет доступен сразу после `ulElement.appendChild(hui);`
290 1879023
>>79022
Мне элемент нужен. Данные я получаю без проблем. Застопорился в этом моменте. (как дождаться пока в DOM элементе появится другой элемент).

>будет доступен сразу после `ulElement.appendChild(hui);`


Это да, но я хотел отдельно функцию, которая отрисует по загрузке всё, что прийдёт от базы, и другую функцию, которая после будет получать первый элемент списка и уже дальше его обрабатывать.
291 1879033
>>78994
>>78990
>>79017
Равно у него там находится, в качестве идеального показателя того, насколько человек вообще неодупляет, что происходит в его алгоритме, как работает его язык программирования и, в целом, программирует копипастом не приходя в сознание.
292 1879034
>>78995
Нашёл решение с использованием MutationObserver (Узнал о таком интересном интерфейсе, лол). Но хотелось бы понять, возможно ли просто промисом дождаться мутации DOM'а.
293 1879041
>>79034
Что ты под этим подразумеваешь вообще? Что значит «дождаться»? Мутации DOM синхронные, их не надо дожидаться.
294 1879046
>>79041
Мутация конкретно списка происходит после того, как приходят данные от сервера.
295 1879048
>>79046
У тебя логика нарушена.

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


Тебе сразу нужно совершить нужные действия с данными из базы, чтобы первые элементы были готовыми до отрисовки.
296 1879053
>>79048
Так я сразу и совершаю действия (принял данные, отрисовал нужное количество лишек и распихал данные с сервера в датасеты лишек). Потом, что бы не дёргать сервер, я работаю с данными из датасета лишки. Вот мне нужно было дождаться, когда в списке будет хоть одна лишка.
297 1879056
>>79053

>и распихал данные с сервера в датасеты лишек


Вот тут и надо делать то, что ты хочешь делать после ожидания появления.
image.png16 Кб, 551x408
298 1879105
Arrow function expressions - Does not have its own bindings to this or super, and should not be used as methods.
Почему?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
И поясните почему там надо явно биндить this ?
299 1879108
>>79105

>И поясните почему там надо явно биндить this ?


Уже сам понял
300 1879169
Насмотрелись каких-то пидоров и заставили включить "strict": true. Теперь два дня буду расставлять проверки на undefined и ебучие восклицательные знаки. Спасибо, angular и typescript!

>TS2564: Property 'autofocus' has no initializer and is not definitely assigned in the constructor.



@ViewChild("autofocus", {static: true})
private autofocus.!..: ElementRef;
301 1879176
>>79169
Ну ничего, в следующий раз будешь сразу нормальный код писать, с проверками на undefined и без использования костылей вида ViewChild
302 1879177
>>79169
Зато раньше сидел с дырявым кодом и кайфовал?
303 1879183
>>79176
Иди туду доделывай, не отвлекайся.

>>79177
А где твой дырявый рот приводит хоть один пример?
304 1879184
>>79183

>Иди туду доделывай, не отвлекайся.


>уминя крупный праект паетаму неговнокод а необходимасть!!!



И часто ты себя так успокаиваешь, говнокодер? Зачем тебе вообще ангуляр и тайпскрипт? Сидел бы на js и react/vue, как делают остальные макаки вроде тебя.
305 1879189
>>79169

>Насмотрелись каких-то пидоров и заставили включить "strict": true


Я хуею с того какие дегенераты тут сидят. "Заставили" его включить режим неговнокода. Пиздец!
306 1879194
А че у вас тут за мем про туду? Типа сделать spa которая добавляет "планы на день"?
307 1879229
>>79194
Это общий мем, также как и создание мувисерчера. Туду и мувисерчер самые популярные проекты которые создаются новичками, в основном из-за влияния инфоцыган продающих копипасту одних и тех же курсов вида "вайти в айти за 7 дней"
308 1879231
>>79194
Есть известный сайт демо разных фреймворков, реализующий туду лист.
http://todomvc.com/
309 1879272
>>79229

>в основном из-за влияния инфоцыган


Инфохуян. Туду - просто продвинутый хелловорлд. Это классика.
310 1879283
>>79272
Показывай мне хоть одну книгу в которой в качестве учебного проекта делается туду.
311 1879370
>>79283
Learning Jarp by K. Wolanski
312 1879403
Помогите плиз. Почти доделал приложуху. Осталась мелкая деталь.
>>1879354 →
313 1879425
>>79403
Так не мутируй. В реакте мутанты запрещены.
314 1879427
>>79403
Нахуй ты сет преобразовываешь в массив при каждом пуке? Манипулируй методами сета.
315 1879434
>>79403
Какой slice, какой unshift? Ты в Реакте, братюнь, никаких мутаций.
316 1879437
>>79434

>Какой slice


splice то есть, slice-то ок как раз.
317 1879450
>>79434
А что плохого в них? Работает же...если юзать юз эффект
>>79427
Я забыл, что у сета методы есть. Надо будет попробывать.

Вообще сначала хотел решить проблему юз эффектом, но в моем случае не подходит.
318 1879453
>>79450
А ты где эту фунцию-то вызываешь? В рендере что ли?
319 1879455
>>79453
Дя. Она должна брать инпут только при определенном ответе апи. Поэтому юз эффект и не подходит:с
320 1879459
>>79455
А какое поведение ты собсна ожидаешь? Если ты вызываешь setState, то, конечно, это снова вызывает рендер.

Вообще чот не очень понятно зачем тебе array как отдельный кусок стейта. Считай его прямо в рендере.
321 1879468
>>79459

>А какое поведение ты собсна ожидаешь?


Ну в моей голове это работает так.
const [array, setArray]= useState([]) дает мне изначально пустой массив array. В который я unshiftом добавляю на первое место значение, затем удаляю дубли сетом, сет эррэй перекидывает массив без дублей в array. При следующем вызове функции в массив добавляется новое значение и так далее до 10.

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

Еще кстати вопрос. Почему вызов компонента внутри строки не работает последний скрин? В первом случае будет перекидывать компоненты андефайнд, а при записи в столбик все будет работать.
322 1879471
*перекидывать в компонент андефайнд
323 1879475
>>79450
Мутирующие методы сета тоже нельзя.
16077235612340.jpg60 Кб, 719x688
324 1879477
>>79475
А ЧТО ВООБЩЕ В РЕАКТЕ МОЖНО???
325 1879478
>>79477
Друк, это не только в рякте. Сейчас никто не мутируем, не циклит.
326 1879487
>>79477
Можно создавать копии и перезаписывать ими переменные.
DwQ.png18 Кб, 500x500
327 1879492
Здравствуйте, явабояре.

Есть один околобордовый проект на общественных началах. Проект для поддержки специфического хобби (а-ля форумные квесты/рпг с одним автором и несколькими голосующими игроками, зародилось на форчане или недалеко от него). Хобби увлекаются достаточно много людей, но среди них достаточно мало программистов.
Теми, кто есть, уже некоторое время пилится dedicated сайт с блекджеком, шлюхами и фичами специально под хобби, но рук и времени пилить быстро у нас не особенно хватает. В связи с чем решили мы сделать систему bounty для фич оного сайта, за которые комьюнити (да и мы тоже, что уж там) готовы башлять исполнителям на пряники с чаем.
Проект интересный, нетривиальный, делается из любви к данному типу времяпрепровождения.
Теги: html, css, JS, Java, gRPC, user-generated content, open source.

Почитать побольше про проект (диздок): https://docs.google.com/document/d/1WZH-b9PGbb7gdMYRhA65-Yn3oJvI8iAyZ_wz-weK9Yw/edit?usp=sharing
Гит репа: https://gitgud.io/dqp
Баунти райское наслаждение: https://docs.google.com/document/d/1oBzPFcpfdk9TG-6WlE29ORhU7EP1rwptJ82n7ajQOKY/ (На данный момент ценник стоит в 100$ за каждую)
Сервер для координации: https://дискорд.gg/YMCPr2uPxU

Милости прошу к нашему шалашу.
328 1879494
>>79492
репорт говну
329 1879532
>>79475
Вполне можно, мутация/немутация это бест практис, а не что-то пиздец критичное. Главное чтобы через `setState()` изменение проходило.
330 1879567
Друзья, пытаюсь в этот ваш мерн, с create react app все понятно данные оправляются роуты работают , а как жить с вебпаком? При клике на ссылку роутится нужный компонент но при обновлении пишет cannot get/posts , какого хуя? И как правильно проксировать? В настройках вебпака прописывать в дев сервер прокси?
331 1879699
>>79492
Более мемного языка шаблонов не пробовал найти? Чтобы что-то пропердолить нужно ещё один незадокументированный язык шаблонов учить.
332 1879707
сап надо сделать микросервис по генерации email ( nestjs )
сами письма/темы/i18n/шаблонизация

Вопросы:
i18n надо реализовывать через handlebars? Или в ноде а потом в handlebars уже тупо все переведенное передавать?
333 1879719
>>79468

хуя се говнокод))

мимо синьер
334 1879723
>>79468
не читал твои мемуары, но уверен что твоя проблема да и вообще вся задача решается в 4 строки кода

опиши что ты делаешь?
ТЗ опиши

Мимо синьер из фейсбука
зовут меня Денис
335 1879743
>>79723

>Мимо синьер из фейсбука


Хуи сосёшь или гомофоб?
336 1879755
>>79743

Зовут Меня Денис Абрамов
Хуй не сосу

Вопросы есть?
337 1879991
useReduser заменяет редакс?
338 1879994
>>79991
Если у тебя тудушка того уровня, которую вкатывальщики делают, то да. Если у тебя серьезное приложение, то стейт менеджер не заменить хуком, но не обязательно использовать именно редакс.
339 1880016
>>79719
Взял бы меня на работу?
340 1880041
https://habr.com/ru/company/mailru/blog/530712/

Я может чего не понимаю но какая к хуям производительность компиляции? Они там ебанулись?
341 1880043
>>80041
Речь про TS же, что тебя смущает? Ну, кроме того, что компиляцией через него не пользуются уже.
342 1880045
>>80043
Хотя, всегда остается компиляция в редакторе. Ее имеет смысл оптимизировать.
343 1880056
>>80043
Блять, не сильно ли похуй, скомпилится твое говно за 9 секунд или за 10.5?
344 1880057
Подскажет кто-нибудь по верстке? Я в этом совсем не специалист.
Наверстал галлерею изображений - аж самому нравится.
Я не умею в адаптивную верстку и поэтому поставил бутстрап. Все красиво, но галлерея пошла по пизде, вместо красивой секти, которая даже на телефонах смотрится нормально, там одно изображение на весь экран. Можно ли как-то отменить правило коллапса бутстрапа для контейнера и его потомков?
Первый пик - без бутстрапа.
Второй - с ним.
Вот и хотелось бы как-то отменить ресайз для контейнера. Я второй раз так наверстать не смогу прост.
345 1880066
>>80056
В редакторе не похуй. Если у тебя большой проект, то как-то не очень хочется, чтобы после каждого изменения тайпинги обновлялись по 30 секунд.
346 1880069
Че запилить новостной сайт или мемный?
347 1880087
>>80043

>Ну, кроме того, что компиляцией через него не пользуются уже.


Зумеры уже не пользуются компиляцией TS?
Охуеть, каждый день новости.
Просто через бабель прогоняете, чтобы типы поубирал?

А теперь подумай, сынок, нахуя вам вообще TS?
Так пишите, один хуй дураки.
348 1880100
>>80016

да если попка рабочая
349 1880101
>>80041
ты хоть был разок на проекте где около 100 форм?
image.png128 Кб, 585x981
350 1880107
>>80057
ну хз

самый простой вариант кмк это в инспекторе посмотреть то что проставил сам бутстрап на конкретные элементы в твоей сетке

на пике пример того что абу написал в makaba.css и те стили что тянутся из дефолтного браузерного css
так вот для всех элементов в твоей сетке надо повыпиливать то что было добавлено из bootstrap.css
351 1880114
>>80057
img { max-width: 100%, height: auto }
Не благодари.
352 1880119
>>80087
Эээ, а это правда объяснять надо? Ну ладно. TS постоянно работает в редакторе, а на корректность типов в целом проект проверяется в PR через CI. С бабелем сильно удобнее, во-первых потому что компиляция шустрее, во-вторых можно быстро что-то проверить в рантайме не дроча типы.

Удивительно, конечно, насколько быстро ты готов назвать всех вокруг зумерами, дураками и сынками не разобравшись в ситуации.
353 1880169
>>80069
Генератор собак запили
354 1880265
>>80119
Просто не нужно быть столь категоричным - "не пользуются уже".
Вы не пользуетесь, а другие - пользуются.

С нормально настроенной средой - webpack-dev-server + proxy + hmr всё компилируется вообще незаметно при изменении кода.

А то, что делается через бабель - это не TS.
Могу себе представить, сколько может быть неочевидных багов из за этого.
355 1880274
>>80101
А что, tsc до сих пор не умеет инкрементальную компиляцию?
356 1880279
>>80265

>Могу себе представить, сколько может быть неочевидных багов из за этого.


Поделишься хотя бы одним?
357 1880316
Анон, мне понадобился слайдер, который на маленьком экране показывает начало следующего слайда, типа такой намек, что тут слайдер, а не просто картинка, а на большом экране работает как обычный слайдер со стрелочками навигации.
Поискал решения к готовым слайдерам, все с какими-то костылями. Посмотрел как белые люди делают, понравилось решение на joom.com.

Перетащил к себе разметку - полет нормальный, на мобильном работает без JS.
Казалось, что дело осталось за малым - поставить события на кнопки следующий/предыдущий появляющихся на больших экранах, но я не только не нашел срабатывающие функции, но и прифигел от того, что при перемещении слайдов у них не меняется ни разметка, ни стили.

Знающий анон, подскажи, как мне оживить стрелки навигации на большом экране у этого слайдера?
И как вообще такое возможно? Как можно изменить позицию элемента на странице не меняя его свойств и стилей?
Для примера записал видео работы 2-х популярных слайдеров owlcarousel2 и slick при сдвиге слайдов там все живет, на joom ни движения.
ScreenRecorderProject4.mp42 Мб, mp4,
324x570, 0:17
358 1880332
>>80316
На видеорил функционал на малых экранах, ради которого я полез к этому слайдеру
359 1880334
>>80279
Не могу, они же неочевидные.
image.png106 Кб, 1314x316
360 1880376
>>80316
>>80332
Там просто скролл по горизонтали overflow-x
361 1880377
>>80274
умеет давно
362 1880378
>>80316
почему свой не напишешь?
363 1880405
>>79468
Бля, этот код не просто гавно мамонта, а редкостный кал пеликана. Ебан бобан. Без негатива, если бы ты мне это показал, то шансов было бы больше у человека, который ничего не сделал. Поэтому, если ты заинтересован в том чтобы это кому-то показать, никаких принтскринов больше, и тем более кусочных кодов, потому что я чувствую, что это только вершина айсберга. Идешь и добавляешь это в реакт sandbox и кидаешь ссылку. Потом я смогу тебе помочь.

По поводу того что ты сбросил: stringify массива, чтобы понять длину массива, это мое почтение. Я когда, это увидел, я чуть не подавился.

Куча вложенных тернарных операторов, это полный пиздец. Мало того, что они не должны быть вложенными, ты еще сделал их тернарными.
Проверка на андефайнд.
Лапшекод из пропсов.

Короче, бросай все приложение и тогда будем говорить конструктивно.
364 1880442
>>80405

>По поводу того что ты сбросил: stringify массива


Бест практис и жиэс типс.
365 1880517
>>79468
>>80405
Бля, мир сошёл сума.
Как вообще можно таким образом писать фронтенд?

Я имею в виду реакт вообще и всю сопутствующую залупу.
Это же просто мешанина из говна, эти ваши реакты, редуксы, хуюксы.
Фейсбучное левачьё сожрало ваш мозг.
366 1880521
>>80517
Пиши на ангуляре, там всё чётко и типизировано.
367 1880524
>>80521
Да, на фоне реакта - ангуляр выглядит просто невьебенно белым и пушистым.
368 1880531
>>79468
Хуки вскоре устареют, подожди пока зарелизят крюки, где станет возможным писать компоненты ещё короче, быстрeе, молодежнее.
369 1880536
>>80531
А потом зарелизят срюки, тогда вообще можно будет срать, не снимая свитер.
370 1880539
как же я ненавижу блядский реакт
371 1880547
>>80539
А что любишь?
372 1880548
>>80547
сосать
373 1880589
Внутри одного div (эдакого контейнера) лежат несколько других div-ов. Как достать из них всех текст?
374 1880592
>>80405
Не понял твоего бугурта. А как правильно надо?
мимо проходил
375 1880598
>>80589
textContent
376 1880609
>>80592
Вместо вложенных тернарников - свитч кейс, даром что как раз по одной переменной проверка идёт. И возвращать он должен строку которая идёт в параграф, а не новый див со строкой на каждый пук.
Вместо передачи 10+ пропсов - передавать объект и его деструктурировать уже в компоненте.
Ну и просто наркоманские отступы.
377 1880611
>>80609

>Вместо вложенных тернарников - свитч кейс


А вместо мар - циклы.
15855935722820.png33 Кб, 576x329
378 1880617
379 1880621
>>80611
А мапа - не цикл?
380 1880624
>>80617
Зачем ты в качестве функций-методов используешь функции-конструкторы?
381 1880625
>>80377
Тогда при чем тут отношение скорости компиляции к количеству форм?
382 1880631
>>80624
Где ты там функции-конструкторы увидел? Это обычные методы объекта. Ты наверно имеешь ввиду почему я не использовал стрелочные функции? Потому что стрелочные функции не захватывают this и всегда ссылаются на this той области в которой они вызваны. Из-за этого не рекомендуется использовать их в качестве методов объекта.
383 1880634
>>80631
Нет, не обычные. function (){ ... } - это конструктор.
Метод - это mathodName(){ .. }

Стрелочные функции вообще не при чем.
384 1880640
>>80631
Сравни оверхед по количеству лишних созданных объектов, которые у тебя леат в success.prototype, error.prototype, loading.prototype и так далее.
385 1880645
>>80631
А this тебе тут зачем, если у тебя объявлена константная ссылка на объект? Что тебе мешает в каждом методе заменить this на handlePlayerStatsResponse?
6a8.jpg80 Кб, 625x403
386 1880647
>>80634

> function (){ ... } - это конструктор.

387 1880655
>>80645
И что это изменит? Зачем мне менять 4 символа на 25?
388 1880658
>>80655
Это было к твоему оправданию тому, что ты не можешь использовать стрелочные функции вместо методов - ты можешь.

Вопрос, почему ты все же вместо методов использовал конструкторы остается открытым.
389 1880667
>>80647
Что-то новое для себя узнал?

Почти всё в жс - это обмен сообщениями между объектами. У всех объектов есть внутренние слоты, которые определяют возможное по-умолчанию поведение объекта, а так же то, какое именно поведение возможно перехватить из пользовательского кода с помощью средств рефлексии и метапрограммирования.

Функции - это объекты у которых определены (или нет) такие внутренние слоты как Call, Construct, FormalParametres, ThisBindingStatus, HomeObject и прочие.
Функции у которых определен слот Call - являются вызываемыми объектами. Функции у которых определен слот Construct - являются конструкторами. Определить конструктор можно лишь двумя способами (с помощью конструкции class {} и function() {} ) . У всех функций-конструкторов по умолчанию создается дополнительный объект, который кладется к ним в поле .prototype (при это у class{} этот объект нельхзя удалить или изменить, у простых контсукторов можно удалить или изменить пост-фактум, но изначально дополнительный объект есть у всех).

Вызываемыми являются все функции кроме конструкторов class{}.

У стрелочных функций, и функций-методов ( method(){...} ) дополнительного объекта в .prototype нет, у них вообще нет такого поля.

Функции методы - это те функции у которых определен внутренний слот HomeObject - проще говоря, такие функции внутри которых есть возможность использовать ключевое слово super. У функций-конструкторов определенных с помощью FE или FD слота HomeObject нет, даже если ты засунул их в поле объекта, и методами они не являются.
390 1880670
>>80634
Чувак, то, что ты называешь "методом" - это сахар.
В JS нет ни классов, ни методов.
391 1880671
>>80658

> стрелочные функции вместо методов - ты можешь.



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

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



Так код читается лучше и не превращается в кашу.
392 1880673
>>80670
В JS вообще ничего нет, кроме null. В JS все - null.
393 1880674
>>80670
Нет. Ты пиздишь, потому что не шаришь. Выше я расписал что чем отличается.
394 1880675
>>80667
Это в каком джаваскрипте вот это вот всё есть?
И где есть такой джаваскрипт?
395 1880676
>>80671
Ты дурак? Я тебе написал, что ыт можешь использовать ссылку на сам объект вместо this и тем самым заменить методы на лямбды.

>Так код читается лучше и не превращается в кашу.


У тебя и есть каша. Мало того, что ты засрал весь код лишней информацией и кличевыми словами, нарушил семанткиу, так еще и добавил ниебический оверхед по памяти. Представляю, как ты пишешь целые сайты таким удобным способом, а потмо ходишь и арссказываешь, как жс жрет память как не в себя.
396 1880677
>>80675
Это все есть в обычном жс - везде.
397 1880678
>>80674
Ты хуйню написал.
В том примере (>>80617) - обычный js код.
Какие методы-хуетоды ты хотел там увидеть и зачем?
398 1880680
>>80677
Пруфы будут?
Я вот сейчас в хроме пропробовал определить "метод" и получил SyntaxError.
image.png14 Кб, 483x329
399 1880682
>>80678
Иди доделывай уроки.
400 1880684
>>80680
Понятно.
401 1880685
>>80682
У тебя в коде ошибка прямо говорит, что это не конструктор, шизло.
402 1880686
>>80682
Да, блядь, и правда работает.
У меня просто опечатка была.

Но, в IE 11 точно не будет работать, я думаю. Проверить сейчас не могу.
halt-and-catch-fire-season-4-mackenzie-davis-cameron-howe.jpg212 Кб, 1200x707
403 1880687
>>80405

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


Ты мне предлагаешь учить реакт и вообще не писать код? Это моя первая приложуха с 0.

Я конечно согласен, что у меня говнокод, но почему ты доебался к
"куча вложенных тернарных операторов"
мне лично непонятно. Код прекрасно читаем, использовать там ифы или тернарный оператор - вкусовщина же.
Завтра вечером скину тогда в реакт сендбокс, а то я еще там по-мелочи всякое переделать хочу.
404 1880690
>>80687

>Ты мне предлагаешь учить реакт


Да
И только потом

>писать код

405 1880692
>>80685
У него пример прямо и показывает, что одно конструктор, а другое нет. Внезапно, да?
406 1880693
>>80685
Да нет, всё правильно там.
"Конструктор" - это o.a();
Только это конструктор не для o, а для самого себя (o.a).
Т.е. это не то, что в джаве, например.

>>80678-кун
d8b.gif50 Кб, 413x243
407 1880694
>>80693

>-кун

408 1880697
>>80694
Да, олдфагов не осталось уже, одни зумеры.
409 1880699
>>80676

>ссылку на сам объект вместо this и тем самым заменить методы на лямбды.



Зачем мне лямбды твои, дауненок? Зачем мне ссылка на сам объект вместо this? А если я захочу сделать этот объект классом, а не константой, то мне переделывать опять? Зачем мне писать вместо 4 букв, название объекта, которое может измениться?

>У тебя и есть каша.



У меня понятный код, который не лепит в кучу названия объектов и названия методов.

>лишней информацией



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

>ниебический оверхед по памяти.



Как там в 2000-х, уже готовишься покупать третий пентиум или мамка не накопила денег? Уже научил родителей как на спичках экономить?
410 1880702
>>80687
перепеши мне эти тернарные операторы на if else, и посмотрим как ты считаешь это выглядит. Жду сэндбокса
411 1880713
>>80645
Чувак, ты ебанутый?
Ты слово "инкапсуляция" слышал когда-нибудь?
Ещё и учит, блядь, менторским тоном, лол.

>>80667
Всё, что ты тут по этой теме написал - это полная хуйня.
Не "неправда", а именно хуйня, понимаешь?
Clever code. Профессионалы так не делают.
412 1880727
>>80699
>>80713
Чел вам все охуенно раскидал и поделился знаниями, а вы чет ноете пок-пок-купи-новый комп, пок-пок-пок-профи-так-не-делают. Сейчас модно что ли гордиться незнанием чего-то и написанием оверхеда на пустом месте?
413 1880734
>>80727
За "поделился знаниями" - спасибо.
Просто не нужно делать это в ультимативном тоне, в стиле "все пидорасы, кто не я".

Тут надо понимать, что жс - достаточно мутная тема.
И лучше писать понятный и максимально совместимый код, чем экономить буковки и байтики. Потому, что браузер всё равно этих байтиков не жалеет нихуя, и тратит мегабайтами на каждый пук.
414 1880738
>>80734
Ничего мутного в жс нет, если ты знаешь как он работает.
Использование jsx само по себе подразумевает стадию транспилирования исходного кода, поэтому о написания максимально совместимого кода это ересь несусветная.
Такая же, как использование Function Expression вместо Method Declaration, с последующем доказыванием с пеной у рта своей правоты.
415 1880741
>>80734
Мутный он для тех, кто в нем плохо разбирается, что в общем-то логично.

>И лучше писать понятный и максимально совместимый код, чем экономить буковки и байтики.


Это не взаимоисключающие вещи.

>Потому, что браузер всё равно этих байтиков не жалеет нихуя, и тратит мегабайтами на каждый пук.


Это просто неправда, браузеры очень эффективные программы, хоть и реализующие довольно неэффективный API.
416 1880747
>>80738
А, вон оно что.
JSX'а -то я и не приметил, лол.
В этом случае да, надо было "методы".
417 1880774
>>80609
понил
418 1880786
>>80119
а до PR ты как типы проверяешь?
419 1880792
>>80786
Редактором. Алсо можно руками запустить проверку, но пока ни разу не пригодилось.
420 1880814
>>80667
Короче говоря лучше не объявлять функции ключевым словом function без необходимости?
Мимо Крок
421 1880817
>>80814
Нет.
422 1880828
>>80817
А у чем тогда смысл холивара выше?
423 1880834
>>80828
Там про методы объекта.
424 1880835
>>80828
В том, что надо понимать разницу между Function Definition, Arrow Function Definition, Method Definition и Class Definition, результат использования каждого из них (в том числе сопутствующих им свойств), и, как следствие, применять их по назначению.
image.png39 Кб, 990x457
425 1880840
Кто может объяснить, почему объект window так странно работает?

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

JSBin: https://jsbin.com/futoramexe/edit?js,console
426 1880844
>>80840
Зачем копаться в вещах, которые устарели, не используются и не рекомендуются к использованию.

Во вторых, как ты привязал переменную, которой вообще нет к window?

console.log(window.c) - undefined
427 1880849
>>80844
Не понимаю, почему при вызове console.log(c) не выводится undefined. Ведь c === window.c по идее
428 1880852
>>80840
>>80849
Мне лень расписывать подробно почему это работает именно так, особенно учитывая отношение местного контингента к попыткам их просвещения в чём-либо. Если тебе действительно интересно, гугли\читай про такую вещь как scope chain, как эта цепочка устроена, как она работает, и как в ней происходит лукап переменных и их определение. Успехов.
429 1880855
>>80849

>Ведь c === window.c по идее


С чего бы вдруг? Как по твоей логике не c === b.c?
430 1880860
>>80855
Вот с этого.
431 1880872
>>80835
Какая разница между объявлениями методов?

const hui ={
getHui(){}
}

const hui ={
getHui: () => {}
}

мимо крок
432 1880885
433 1880905
Сейчас бы блять пердолиться с варами. Если тебя с них спрашивают на собесе больше чем "знаешь что это такое?", то или тебя хотят слить или там лютейший говнокодище с глобальными переменными и вытекающим скоупом.
434 1880910
>>80905
А если тебя просят рассказать про цепочку наследования областей видимости и принципах ее работы, то какое еще оправдание собственного невежества ты придумаешь?
image.png16 Кб, 759x29
435 1880913
>>80617
Что, именованиеПеременныхПолностьюОписываемымВсегоЧтоВозможно не помогает, да? Может обратно в джаву съебешься со своим говнокодом?
436 1880916
>>80913
О, теперь и на символах в названиях экономить нужно, чтобы сорс код меньше места занимал?
437 1880918
>>80617

>&& .length > 0


Проиграл
438 1880919
>>80918
Там еще loading error возвращает вместо loading и идёт вызов несуществующего метода, что сказать то хотел, дурачок?
439 1880920
>>80919

>пук

image.png25 Кб, 528x395
440 1880921
441 1880923
>>80921
Дебил, зачем ты ?? впихнул, если вызов никогда не возвращает null? В итоге у тебя никогда данные не обработаются и всегда будет див из одной строки. Иди штаны стирай, обосрыш.
442 1880924
>>80923
При чем тут null, когда там undefined вернется и ?? сработает, мань?
Ах, ты же не знаешь как работает оператор ?? - да? Ну или подучи.
image.png3 Кб, 443x43
443 1880925
444 1880927
>>80921

>length === 0


>status !== undefined


Еще один
445 1880928
>>80923

> Иди штаны стирай, обосрыш.


Это ты тут через пост орешь всем вкатывальщикам, что им базу знать не нужно, потому что это НИИСПОЛЬЗУЕТСЯ и УСТАРЕЛО.

Съеби по-хорошему, доебал уже всех.
446 1880929
>>80927
Один чего. У тебя есть интрфейс объекта data на руках?
Ты гарантируешь что .length там не может быть пустой строкой, а .status не может быть любым falsy-значением?
Ну, вот когда найдешь интерфейс приходи, а пока пиздуй нахуй вместе с этим >>80923 гением.
447 1880932
>>80910
Если бы да кабы. Спросят про кишочки `with`, тоже побежишь заучивать принцип его работы, лишь бы кабанчик был доволен?
448 1880935
>>80929
У тебя есть интрфейс объекта data в компайл тайме?
Ты гарантируешь, что .length и .status вообще там могут быть?
Ну, когда справишься с копротивлением против воображаемых интерфейсов - приходи, а пока пиздуй нахуй
449 1880937
>>80924
Когда там Undefined вернётся, долбоебина, если у тебя на все случаи значения status есть возвращаемая строка?
450 1880938
>>80925
Еще один долбоеб. Возможные значения status - loading, error, success. Все эти значения присутствуют в response, т. е. всегда будет воpdращаться строка и никогда undefined.
15782251963270.mp4751 Кб, mp4,
480x480, 0:10
451 1880947
>>80376
Анон, спасибо! Жоска я тупанул.

>>80378
Придется!
452 1881021
Почти все вы тут чванливые суки.
453 1881024
>>81021
Так беги на пикабушечку быстрее, сычуш, чего ты тут забыл?
454 1881030
Ананасы, поясните на пальцах за применение генераторов, пожалуйста?
455 1881038
>>81030
Создание своих перечисляемых структур. Ой, что это, тебе нужно теперь на пальцах пояснять что такое "перечисляемая структура"? Ну так ты либо начинай изучение программирования с чего-то менее абстрактного чем JS, либо не заморачивайся на таких очень редко используемых вещах как генераторы, и уж тем более не пиши высеров типа "на пальцах про генераторы плизки".
456 1881040
>>81038
А что может быть менее абстрактное чем JS? Паскаль для начала изучать или что? мимо другой анон
457 1881043
>>80921
Эта лапша выглядит во сто крат хуже чем у того изначального анона. Вот не обижайтесь, но это просто напердподвыверт чтобы выебнуться или тупо специально запутать и усложнить код.
458 1881045
>>81040
C#, Java, даже Python менее абстрактен.
459 1881047
460 1881049
>>81038

> Создание своих перечисляемых структур. Ой, что это, тебе нужно теперь на пальцах пояснять что такое "перечисляемая структура"?


>Мам я такой умный. Посмотри на меня. Я вместо того что бы нормально ответить делаю нахуй никому не нужные выводы. Сижу и тралю лалок в жс треде мам

461 1881072
>>81040
Для начала - не слушать долбоёбов.

Но, да, жс в качестве первого языка - не очень.
Если только очень надо (срочно найти работу и т.п.).
А если просто научиться программировать - то питон.
Только дело не в "абсрактности" а в том, что жс мутный и мусорный язык.
462 1881100
>>81072
Что значит мутность и мусорность относительно ЯП?
463 1881101
>>80932
Принцип работы with описан в разделе работ цепочеи наследования областей переменных, мань.
464 1881103
>>80937
Ясно.
465 1881105
>>81103
Так беги штанишки стирать скорее.
466 1881106
>>81105
Ты уверен, что он обосрался, а не ты? Что вернется для status который не определен в объекте? Что вернется в геттере success если не выволнится ни одно из условий?
467 1881107
>>81106

>status который не определен в объекте?


>не определен в объекте?



Хуесосина тупорылая, разуй глаза, в оригинальном посте (>>79468) status это переменная. И именно значение этой переменной сверяется с такими строковыми значениями как loading, success и error, да, там есть еще status в виде поля объекта data, оно значения не играет, потому что проверка идёт переменной. Понимаешь, скотина?

>Что вернется в геттере success если не выволнится ни одно из условий?



Вернёт пустую строку, потому что success имеет строковый тип возвращаемого значения.
image.png27 Кб, 587x576
468 1881116
>>81107

>status это переменная


Все верно. И значение этой переменной запрашивается сверяется с тремя значениями, и двумя условиями. Если значение переменной status не является loading, status или error, а так же если status это пустой массив или объект с опеределенным поле .status - возвращается компонент, в противных случаях возвращается строка. Именно это и произойдет в приведенном коде.

>Вернёт пустую строку, потому что success имеет строковый тип возвращаемого значения.


Нет. Ты несешь чепуху и непонятно зачем ты это делаешь.
469 1881120
>>81116

>Нет. Ты несешь чепуху и непонятно зачем ты это делаешь.



Ясно. Сразу бы и подписался "жопаскрипт макака не знающая о статической типизации", вопросов бы не было.
470 1881125
>>81120
Где ты нашёл статическую типизацию во всей нити обсуждения? Выдумал?
471 1881127
>>81125
Т. е. надо мимикрировать под долбоебов и советовать дерьмо вместо бест практис? Свойство должно возвращать один тип данных, а не сначала строку, потом undefined, потом вообще число.
472 1881130
>>81127
То есть ты сам выдумал аргумент с которым сам споришь? Ты точно здоров?
473 1881131
>>81130

>шизик выдумал какой-то спор и аргументы


>ставит под сомнение чьё-то здоровье



Таблетки выпей, а то тебе поплохело по всей видимости.
474 1881133
Добрый вечер, программач!
Сам Java/Kotlin dev, в материалах и годных сайтах по JS очень мало шарю, а друг пытается вкатиться и просит посоветовать ему что-нибудь вроде справочника.
Анон, я знаю, у тебя есть любимый сайт/книга, пусть не справочник, а просто удобный референс, посоветуй, пожалуйста! С меня няшки.
475 1881137
Ку, вопрос не совсем по жс, но близко. Работаю фулл-стек разрабом (это же так называется, когда ты фронт и бэк пилишь, да?) в одной конторе, которая по аутсорсу всякие проекты пилит, работаю вроде норм, фронт в каких-то моментах даже лучше лида знаю, но есть проблемка. Завтра из универа с 4 курса отчислят. Пытался гуглить, но чет ниче не получилось, из-за такого увольняют?
476 1881149
>>81131
В треде привели скрин кода >>80921 в качестве решения исходного >>79468 и как альтернатива для приведенного ранее >>80617

Ты начал кричать о том, что этот код работает некорректно >>80923
На самоподдуве >>80937
Регулярно расписывая в собственной некомпетентности >>81107

В итоге выдумав какую-то статическую типизацию и собственные сигнатуры методов, которых нет нигде >>81120 ни в исходной задаче не в приведеных оспариваемых решениях.

Статикодебил, плиз.
477 1881160
>>81137

>из-за такого увольняют?


Нет.
478 1881164
>>81127

>Свойство должно возвращать один тип данных


не должно
479 1881167
>>81164

>захотелось отображать loading, error, unranked, not found заглавными буквами


>[status].toUpparCase()


>Uncaught TypeError: Cannot read property 'toUpperCase' of undefined



>РЯЯ НИНУЖНА ПУКСРЕНЬК ПРОСТА КАЖДЫЙ РАЗ БЕГАЙ ПО КОДУ И СВЕРЯЙСЯ С ТЕМ ЧТО МОЖЕШЬ ПОЛУЧИТЬ!!!



Отправляйся в петушинный угол к этому >>81149
480 1881182
Че сейчас юзают? Materialize? Bootstrap? Pure? Че использовать?
481 1881191
>>81182
Material UI, antd
482 1881197
Бамп, котаны, плз: >>81133
483 1881237
>>81197
Очевидный MDN, он даже в шапке указан, ну
484 1881259
>>81167

>захотелось отображать loading, error, unranked, not found заглавными буквами


Делаешь response[status]?.toUpperCase() ?? data.map(...)

И ты пиздуешь дальше учить язык, статикодебил.
485 1881267
У вас тут какое-то соревнование по тому кто придумаете как хуевее всего сделать асинхронный запрос? Если что, react-query уже изобрели, можете пользоваться. А если не хочется тянуть чужие либы, то можно быстренько накатать реализацию usePromise с интерфейсом вроде const { data, pending, error, run } = usePromise(fetchStuff, onResolve, onReject).
486 1881272
>>81237
Я перешёл по ссылке, а там сразу HTML CSS и прочая вебота. Как-то не хочется друга втягивать в это, он всё-таки хочет просто изучать язык, а не стек.
487 1881280
>>81272
Я не очень понимаю что ты хочешь тогда. MDN это лучший справочник по языку, полнее только спека. Ну https://learn.javascript.ru есть еще, но это учебник, а не справочник.
488 1881299
>>81272
Ты интернетом пользоваться не умеешь? https://developer.mozilla.org/en-US/docs/Web/JavaScript
489 1881308
>>81101
Ну вот и учи принципы его работы в контексте современного екмаскрипта, а то вдруг спросят.
halt-and-catch-fire-episode-209-cameron-davis-press-10-10-1[...].jpg777 Кб, 1200x707
490 1881319
>>80702
А оно должно работать в сендбоксе? Или тебе просто код нужен?
Ни разу не пользовался им. Могу просто копипейстом навставлять туда?
491 1881322
>>81272
Как ты собираешься DOM'ом манипулироваь без знания HTML/CSS? Тебе как опытному пердолику как раз эти секции обязательны, а то сразу потянешься ставить бутстрап и высирать парящие дивы-врапперы со встроенными стилями на каждый пук.
492 1881331
>>81259

>две проверки на null и undefined


>потом такие жопаскрипт макаки тебе говорят, что вкладка жрущая 50% процессора и 10 гб памяти это норм

493 1881345
>>81331
Покажи такую вкладку.
494 1881350
>>81308
Его не надо специально никак учить. Если ты изучишь принципы цепочки наследования областей видимости, которые необходимо знать и понимать в любом контексте, хоть es3, хоть es5, хоть es6 - они везде работают одинаково ввиду обратной совместимости, ты уже будешь знать как работает конструкция with.
495 1881355
>>81267
Я может невнимательно следил, но кто здесь запрос писал?
496 1881357
>>81319
Можно и код
497 1881358
>>81357
ПС но залей его нормально тогда, на гит
498 1881359
>>81350
Мало ли что ты там понаизучал, нужно знать все кишочки `with` во всех версиях браузеров, своей спекой будешь перед тимлидом-травителем трясти.
hacf402ed04130098-rt.jpg76 Кб, 779x520
499 1881362
>>81358
У меня нет гита:c
Просто там еще и микробек и без него запросы к апи не получится отправить. Ладно сейчас что-то придумаю.
500 1881367
>>81362

>У меня нет гита:c


Как ты тогда на реакте пишешь? CRA по дефолту гит-репу создаёт и даже коммитит в неё.
501 1881381
>>81358
Короче не знаю. Вроде залил...
https://github.com/Lazlov/ritoApi
502 1881398
Где обычно делают пост и гет запросы на сервер? Прописал в экшнкреаторе, правильно?
503 1881400
>>81398
В диспатчере.
504 1881412
>>81381
Ты там `package.json` чтоли из рута удолил?
505 1881416
>>81381
посмотрю либо позже сегодня, либо завтра и отвечу
506 1881417
>>81412
Я залил все кроме ноде модульс. Они вроде и не нужны. Остальное там должно быть.
507 1881418
>>81417
Откуда тогда пакеджлок в руте?
508 1881422
>>81418
Наверное когда-то давно промахнулся мимо папки. Раньше его там не было.
509 1881425
>>81381

>apiKey ='RGAPI-1dcea17b-aad4-4042-bfc7-dac41f82a770'



Круто ты api ключами раскидываешься, дауненок.
510 1881427
>>81425
Задудосишь меня?
511 1881428
Кстати да, этот ключ можешь удалять и запрашивать новый. Я сейчас по бырику пропердолю в бекенде так, чтобы не нужно было приватные ключи в репе хранить для отправки запросов.
512 1881429
>>81428
Этот ключ действителен вроде до утра.
Взять новый можно здесь https://developer.riotgames.com/
screenshot (4).png76 Кб, 660x547
513 1881454
>>81030
Можно синхронизировать асинхронщину.
514 1881460
ПЕРЕКАТ >>1881459 (OP)
ПЕРЕКАТ >>1881459 (OP)
ПЕРЕКАТ >>1881459 (OP)
ПЕРЕКАТ >>1881459 (OP)
ПЕРЕКАТ >>1881459 (OP)
ПЕРЕКАТ >>1881459 (OP)
ПЕРЕКАТ >>1881459 (OP)
ПЕРЕКАТ >>1881459 (OP)
ПЕРЕКАТ >>1881459 (OP)
ПЕРЕКАТ >>1881459 (OP)
Тред утонул или удален.
Это копия, сохраненная 27 апреля 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски