Вы видите копию треда, сохраненную 22 апреля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в Ад.
Для программирования на HTML https://jsfiddle.net/
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: что я хочу получить, что я для этого делаю, что я вместо этого получаю. Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Руководство для вката: https://developer.mozilla.org/
Все макакобыдло на ts сидит, как раз. Это же и есть инструмент для неосяляторов.
Можно
Ну поменяй конфиг вебпака, лол
> А если мне это нахуй не нужно
Сразу на ES2020 собрался писать? Сразу процентов 70 пользователей отрезаешь
Что повсеместно используемое в коде не поддерживается 70% современными браузерами, пиздабол?
20-30% судя по caniuse.com
>Кто вообще до сих пор пишет без типов
Да, стоило придумать язык без типов чтобы потом приделать к нему костыли с типеизацией
Неосиляторы сидят как раз на жс, потому что не могут в типы.
Нет, стоило бы с яростью юношеского максимализма отрицать свои ошибки и не пытаться их исправлять.
В моих мелких проектах уровня говно-соцсети хватало кривой верстки
Под кривой вёрсткой я понимаю не-оптимальный css и уродское именование классов
Как же я обожаю типизировать каждый пук в своей тудушке
Используй готовые библиотеки типа material и ant, от тебя потребуется только правильно размещать уже готовые компоненты, т. е. это выбор между грид/флекс/флоат контейнерами и задача маржинов, паддингов.
Очевидно что никакого общепринятого стандарта нет (кроме W3 рекомендаций, который не советует даже использовать id как селектор) и всё исходит из твоих задач и предпочтений
>не-оптимальный css
Такого практически нет
>уродское именование классов
Ну придерживайся всяких БЭМов, хуле
Из альтернатив только компонентная стилизация
>Я вот хуй забиваю на верстку, не для того реакт дрочил.
И че кабанчик должен теперь верстальщика дополнительно к тебе искать
Надо было не дрочить, а делом заниматься.
Внезапно что-то туплю как в Ангуляре выбрать конкретный элемент в html (внутри компонента конечно же). Мне надо чтобы в случае проброса ошибки при исполнении Промиса кнопка "Submit data" становилась неактивной (disabled), в ванильном жс я бы просто намутил document.querySelector, а тут как?
Кабанчику главное чтобы по дизайну совпадало более-менее. А что там стили через жопу, это извините, у меня по js полно тасок, до этого кала руки через полгода дойдут.
Если в рамках формы, то создаешь FormGroup и привязываешь атрибут disabled к свойству FormGroup.invalid, для асинхронных операций, т. е. для промиса, используют асинхронные валидаторы (методы которые возвращают AsyncValidatorFn).
Либо можешь создать Observable свойство у компонента и привязать disabled к нему при помощи async pipe.
И не знаю я, какой класс мне присвоен. Понять не могу.
А место своё искать надо - браузер уже обрабатывать начинает.
Я самый обычный DIV, как и все вокруг, вот только атрибутов своих не вижу.
И не могу себе места найти на странице, ни отступов, ни маржина, ни падинга своего не знаю.
И роюсь, роюсь непонятно где, по родительским тэгам, по комментариям, в стили разные лезу, а другие тэги на меня бычат и подгоняют, и говорят что у них z-индекс выше а я чмо какое-то нижнеслойное.
Ну, потом вроде отпустило и щас где-то 37 температура.
Такие дела.
Понял, спасибо, буду разбираться
Лольнул немного.
Я застрял в оверфлоу скролл теге и не могу из него выйти! Я прописываю себе z-index, но из-за того что я в скролле в том диве, выше не становлюсь! Помогите!
Чё ты не пишешь на Идрисе, раз тебе типы подавай?
Прототайпы юзают.
Да. Макаки так копротивляются.
Есть строчка, в консоли:
>var s = ''; for(var i=0; i<65536; i++){s += String.fromCharCode(i);} console.log(s);
Задача, получить массив уникальных, принтабельных чаров, которые можно скопировать, и которые - не квадратики, и не знаки вопроса, и не заменяющие символы, и не спецсимволы, и не символы перевода строк, или смены направления текста, то есть получить строку без всякой хуйни, чтобы буквы в этой строчке не пиздовали куда-то вверх, или хуй знает куда, а просто чтобы в ряд они шли, эти ебучие символы в строчке, и чтобы массив из этой строчки был, с уникальными чарами.
Как отсеять говно? .trim() не очень-то помогает.
IDE-даун, плиз. Код пишут головой, а не крутым интеллисенсом на костылях от мелкомягких
Нет конечно. Хотя если ты из тех, кто любит тратить бабло заказчика на написание костылей, запрещающих потом случайно делить дату на строку, то вкатывайся
Только если ты ide-даун. Все вкусные фичи давно спиздили в стандарт js, а от типов толк сомнительный.
Интерпретирует
На медиуме давно уже запруфали, что типизация полезна только для ИДЕ-дебилов. На количество багов она практически не влияет, тестами баги ловятся намного эффективнее
Только вот прикол: с одной стороны ИДЕ ускоряют рутиные операции с текстом при рефакторинге, с другой - для того, чтобы код был типизирован, надо тратить дохуя времени на описание этих типов и сигнатур функций. В итоге ТС-лалкам приходится решать ненужные задачи вместо того чтобы создавать value заказчику
Обосрался с этого пруфа уровня б. Прям и оверхед гигантский, и всех обучить надо и менторить потом. А уж людей-то как сложно найти!
Есть у меня данные для таблицы, я такой беру эти данные и отправляю в сорт-оф SQL-таблицу, которую потом кручу как хочу SQL-запросами (или чем-нибудь похожим). Собственно какие варианты у меня есть, кроме как писать свой велосипед? и сразу же сам иду в гугл
Представь себе, вся эта еботня с типизацией не бесплатна
> А уж людей-то как сложно найти!
Что аж ставочки для тайпскриптеров повышают
Не, в плане высасывания бабла из заказчика ТС идеальная хуцпа
Куда рациональнее потратиться на одного грамотного архитектора, чем на десяток макак обмазывающихся тайпскриптом чтобы случайно не обосраться
let X = 0;
for (let i = 1; i < 11; i++){
if (//blabla
X = i;
break;
}
}
В смысле некрасиво? Ты хочешь прервать цикл по условию, но не хочешь использовать if, сравнение, и break ?
>В смысле некрасиво? Ты хочешь прервать цикл по условию, но не хочешь использовать if, сравнение, и break ?
Хочу передать значение i в момент прерывания цикла, через костыль X это выглядит неправильно как по мне.
Хочу делать правильно.
Я хорошо представляю плюсы и минусы — все-таки два года уже на нем пишу и обратно как-то не хочется. Других переубеждать не буду, нравится людям себе в ногу стрелять, ну да и бог с ними.
А картинка просто глупая и цифры там с потолка взяты. Можно нарисовать абсолютно такую же, но в другую сторону.
> для того, чтобы код был типизирован, надо тратить дохуя времени на описание этих типов и сигнатур функций
Да, вот 20 гигов не хватает чтоб типы вывести
Что "спан спан"? Что в спан заворачивать? Текст? Текст транслируется из массива, там нечего в спан заварачивать по сути.
background: linear-gradient(0.25turn, black 0%, black 70%, white 90% 100%);
Может контейнеру в котором текст лежить дать - оверфлоу: хидден?
Бэк общается с фронтом при помощи longPolling, то есть бэк периодически в ответ на запрос фронта присылает json Delta в котором обозначаются совершенные изменения.
Как в Ангуляре в общем порядке "прослушать" этот json response Delta и совершить изменение в нужном компоненте, даже если в данный момент он на экране не присутствует и находится по другому url?
Никак. Делай сервис-синглтон который будет инжектиться в нужный компонент и совершать в нём изменения как только этот компонент появится на экране, т. е. в ngOnInit берешь текущее значение из сервиса и делаешь необходимые изменения.
>цифры там с потолка взяты
All projects for which impact was judged were >50k LOC with several collaborators working over several months. One project was Angular 2 + TypeScript, compared against a similar project written in Angular 1 with standard JavaScript. All other projects were built with React and Node, and compared against React/Node projects written in standard JavaScript. Subjective bug density, subjective relative velocity, and developer feedback were estimated, but not precisely measured. All teams contained a mix of experienced and new TypeScript developers. All members had access to more experienced mentors to assist with TypeScript onboarding.
Objective data was too noisy in the small sampling of projects to make any definitive objective judgements with a reliable error margin. On one project, native JavaScript showed a 41% lower public bug density over TypeScript. In another, the TypeScript project showed a 4% lower bug density over the comparable native JavaScript version. Obviously, the implementation (or lack) of other quality measures had a much stronger effect than TypeScript, which skewed the numbers beyond usability.
https://medium.com/javascript-scene/the-typescript-tax-132ff4cb175b
https://medium.com/javascript-scene/the-shocking-secret-about-static-types-514d39bf30a3
На пике - типичная жс-макака, как раз. Оно не лезет, а она продолжает тыкать, не понимая, в чём тут дело.
>>63605
Неосилятор, плиз, твой бугурт просто смешон.
TS - это JS, который масштабируется.
Вот и весь ответ.
Нет серьёзных проектов - TS не нужен.
Хочешь всю жизнь плавать по дну на подсосе - TS не нужен.
Да у меня так же. Но мне надо что бы он становился прозрачным в конце первой строки проглатывая остальной текст. А он тут весь текст втискивает
Тогда два спана
Это, по-твоему, "красивее"?
Ну нахуй.
Лучше уж просто let i; сделать перед циклом, и затем просто использовать i после выхода.
Но, твой первоначальный вариант - с отдельными i и x - самый правильный. Потому, что он совершенно лишён двусмысленности. А лишняя переменная - хуй с ней, ты же не на Си для микроконтроллера пишешь.
Не надо выёбываться в коде, про это ещё Дейкстра писал - хороший программист никогда не позволит себе писать "клёвый" код - он для этого слишком ответственный, как-то так.
>TS - это JS, который масштабируется.
Ты там SPA масштабируешь чтоле? Советую масштабировать инфраструктуру, а для SPA достаточно структуру проекта нормальную заложить. И да, типизация для этого не нужна
Диван привет
Да, это и называется с потолка. Чувак взял несколько разных проектов и по каким-то своим субъективным критериям оценил. Почему у него Type Safety это +0.2, а Typing Overhead -3? Да хуй его знает вообще. Прост.
Интересно, что вместо TS он предлагает TDD, которое, видимо, бесплатно, вообще никакого оверхеда не несет и менторинга с обучением не требует. Ну ок.
Понимание необходимости статической типизации - это то, что отличает программиста от макаки. Не важно, жс это или ещё что.
Даже питонобляди пришли к описанию типов в коде, лол.
Не прошло и 25 лет.
Причём, до этого усирались, что типизация не нужна, не хуже жс-макак.
Нужна не статическая типизация, а понятные интерфейсы, простые компоненты и вообще SOLID
Всё это делается на самом обычном JS
Тайпчекалка сама по себе не родит тебе хороший код
>>63748
> вместо TS он предлагает TDD
TDD так или иначе нужно, особенно если ты там что-то рефакторишь. Тесты никак не дешевле тайпчекинга, но профита от них куда больше в плане качества кода. Поэтому лучше писать больше тестов, чем тратить время на типизацию
>а понятные интерфейсы, простые компоненты и вообще SOLID
На js всего этого нет, манюнь. JS тебя не остановит когда ты передашь в метод/функцию объект неподходящего типа. JS за тебя не напишет необходимые для реализации методы интерфейса/абстрактного класса.
>На js всего этого нет
Щито-с. Отсутствие в языке синтаксической конструкции interface { } не значит, что при проектировании ПО ты ими не сможешь пользоваться
Пиши ясный код, документируй в комментах и всё будет в ажуре без всяких тайпчекалок
> На js всего этого нет, манюнь. JS тебя не остановит когда ты передашь в метод/функцию объект неподходящего типа. JS за тебя не напишет необходимые для реализации методы интерфейса/абстрактного класса.
Для этого есть юниты. Ты их все равно обязан писать, тс не защитит от говна в рантайме или кода набитого "any".
Имена переменных и прочего делай чтобы можно было понять зачем это надо без гадания на потрохах, это раз
Оформляй код, это два
Вот и все секреты
>TDD так или иначе нужно, особенно если ты там что-то рефакторишь.
Вот это вообще неправда. Часто и сильно рефакторю большой проект на десятки тысяч LOC. Обычно после внесения изменений и исправления ошибок типов все работает сразу как надо. Вот прям с первого раза. На чистом JS обычно еще час сидишь и крутишь разные корнер-кейсы. А если у тебя тесты, то еще час их дописываешь и переписываешь. И даже тогда нет уверенности что ты ничего не сломал.
Алсо, за всю свою карьеру я не видел ни одного фронтового проекта который был бы вменяемо покрыт тестами, и уж тем более написан по TDD. Я не про либы сейчас, а про приложения, если что.
>Имена переменных и прочего делай чтобы можно было понять зачем это надо
Лол, ты еще комментам веришь и именам переменных
innerHTMLBlock = `
${firstPart}<div>${secondPart}</div><a>Process text</a>
`
Мне теперь надо повесить на элемент <a> хендлер onclick который будет производить некие манипуляции с текстом до этого. Как его выбрать-то?.. querySelector тут не поможет а поставить какой-то айдишник и найти его уже после добавления на страницу не могу - таких элементов, как я привел, будет много на странице
Говнокод, в котором имена переменных не соответствуют их смыслу, никакими тайпчекалками уже не спасешь
И что дальше? Какое это отношение к querySelectorу имеет?
Только глубинный смысл переменной будет известен только тебе, следующий гребец охуеет читать твою писанину в каментах
>хуй проссыш какой в них смысл?
Че за фиксация на смысле хуисле, ты вобще программы писал сложнее тудушки, после сотни переменных уже реально поебать че там за смысл, лишь бы IDE подсказала че там у объекта есть
> фиксация на смысле хуисле
Представь себе, программы должны читаться почти что как обычный текст. Бессмысленная белиберда это write-only неподдерживаемый код
> сотни переменных
Если у тебя всё это в одной куче, то пизда проекту. Рефактори, рефактори, вилкой блядь
> лишь бы IDE подсказала че там у объекта есть
Какие же вы IDE-дауны совсем дауны. Раньше пасаны хуячили в VIM+ctags и ниче, нормально было
>программы должны читаться почти что как обычный текст.
Чувак, когда тебе приходит JSON с лютейшей domain specific хуйней типа сорта инвойсов на говно с 40 полями, то вникать в этот пиздец просто неохота
>Если у тебя всё это в одной куче, то пизда проекту.
Если у тебя это в 60 файлов, то пизда проекту
Есть линк при нажатии на который некий элемент на странице должен быть скрыт (display: none) если он в данный момент показывается и наоборот, если он сейчас скрыт то при нажатии на ту же кнопку он должен показаться (display: block). Конечно я могу в хендлере просто проверять if (e.currentTarget.style.display === 'none') но смотрится как-то неочень, есть какой-то более красивый способ решить эту проблему?
я говорю про обычный ES6 жс если че
> есть какой-то более красивый способ решить эту проблему?
делай отдельный CSS стиль типа hidden, и потом ставь убирай этот стиль
model prop > data attr > classList
Могу просмотреть все поля с описанием + за 2 секунды перейти в доку, если надо будет. И не страдать в рантайме, гугля что же там очередной фреймворк возвращает в очередной версии.
JS прекрасен для скриптов, в остальном делать меня грустить.
>JS прекрасен для скриптов
Да и для скриптов он прекрасен только для тех, кто слаще морковки ничего не едал.
Не, я помню, что я в JS-треде, но, скрипты лучше писать на чём-то другом.
На Perl
> задокументируй все поля в классе модели
И чем это поможет когда поле под номером 45 из-за опечатки обмякнет на продакшине
>Заверни это в модель, задокументируй все поля в классе модели, держи код с бизнес-логикой поближе к данным
У меня от этого MVC сдох
Денчик тоже не знает как делать чтото сложнее тудушки, не парься. В реакте так и не решили в какой из 5ти файлов надо ложить бизнес логику.
Тот же этап, та же проблема. Решил просто пилить своё приложение, и по мере его разрастания начинаю понимать получше, что и куда пихать. Тоже хотелось бы что-то почитать на эту тему архитектуры
Если ты джун. Сейчас дохуя больших компаний дрочат на типизацию и либо пишут на ТС, либо переводят с Флоу на ТС.
Бабель не компилирует ts, он просто выкидывает все объявления типов. Это быстрее, но, проверка типов не выполняется.
>Тайпчекалка сама по себе не родит тебе хороший код
Во первых, иногда и родит, именно типизация, сама по себе.
Во вторых, она ставит мозги на место, и ты даже на динамико-дрисне начнёшь писать хороший код.
entry: './src/index.ts',
когда переименовываю в index.ts нихуя не работают модули определяются как регулярные выражения, если делаю index.tsx и в вебпаке entry: './src/index.tsx', то все работает че за нахуй?
data = [1,6,2,9,7,0]
data.sort( (a,b) => a - b )
А вот такой нихрена:
data.sort( (a,b) => a > b )
В итоге тебе эту документацию и комментарии нужно читать тем чаще, чем больше твой код. Или дай угадаю, их нужно не читать, а зубрить так чтобы от зубов отскакивало? Зачем всё это, я опишу всё типами, а ide за меня запомнит и не даст ошибиться.
ТС не заменяет юнит тесты, а дополняет их. И он не должен защищать в рантайме, это статическая типизация, она делает всё возможное чтобы а рантайме ошибок было меньше.
Типо:
switch (score) {
case 7< score < 10:
console.log('good');
case 5< score <= 7:
console.log('good');
}
Потому что калббк метода сорт должен возвращать лиьо отрицательное число, либо 0, либо единицу.
попробуй switch (true)
Кек, потестил в жс неравенства. Как всегда был "приятно" удивлен:
const score = 35;
50 < score <= 80; // true !
Нет, пиши хелпер функцию inRange(min, max, value, handler). С тедрс вида
if (value >= min && value <= max) return handler();
return "Not in range";
Смогешь объяснить почему 50 < score <= 80 выдает true? Я кстати смогу. Но отсюда следует другой вопрос: Смогешь объяснить нахуя он выдает true?
Ты наверное хочешь массив и цикл с ифом.
Ты это... не задавай таких вот странных вопросов. Просто выучи жс. Тут все просто. Расслабься, расслабь попку и прими жс целиком в себя, тебе понравится
Есть компонент, который рендерится после того, как к нему придут данные.
Я прописал console.log в том месте, где получаются данные, этот лог выводится в консоли только один раз, либо при каждом нажатии на страницу, т.е. когда данные реально обновляются.
Но на самой рендеряшейся странице есть console.log, который выводит пропсы, которые эта страница получила. И сука, этот лог отображается сначала дважды при первой отрисовке, с текущими данными, а после переключения страницы выводит в консоль данные еще один раз, и потом снова дважды уже данные следующей новой страницы.
При всём при этом место, в котором данные получаются с сервера заходят всего один раз. Это видно и по срабатыванию лога, и по анализу трафика.
Почему консолька тригерится 2-3 раза у компонента, который рендерится, при том что сам рендер происходит только после получения этих самых данных, которые приходят ровно один раз?
>ts - защита от дурака
Манюня, ты даже не представляешь, как ты прав, лол.
В проекте на TS количество дураков стремится к нулю.
К чему твой пикрил?
Не только. На статике даже чтобы hello world написать нужно 10 строк лишнего кода написать. А уж если что то сложнее, то ващпе песдъец.
Это MVC был старый и больной, от этого он и сдох.
AngularJS и Angular - это 2 очень разных ангуляра
Ай, не пизди.
Во всяком случае, не на TS.
Там можно очень гибко настраивать уровень, на котором компилятор будет ебать тебе мозг.
Плюс - идеальная интеграция с JS - можно разные модули писать на JS или на TS, в зависимости от.
бесит что херочка увидела у меня в резюме Ангуляр 1 и пишет зовет на собес, где нужен Ангуляр 2, а я-то знаю что интервью на ангуляр 2 не пройду
Чувак, местные телепаты сейчас в отпуске.
Вот эту вот вещь - рендерится после того, как к нему придут данные - можно очень по разному себе представлять.
Подозреваю, что ты делаешь асинхронную операцию там, где её делать нельзя. В реакте таких мест много, тут уже писали об этом, лол.
Это регексп для теста, а мне надо было для реплейса.
Впрочем, уже запилил: https://jsfiddle.net/0z7uko4r/
54621 чаров. Вроде копируются и вставляются норм, значит отпечатываются норм и в консоли, и на странице.
Только как-то криво оно у меня чёт, некоторые буквы вверх едут, блядь.
У вас нормально строчка отображается?
O(1)
Единственно что придумал - обернуть 2 и 3 и контейнеру задать flex - space-between. Но это лишняя обёртка.
Да я понимаю, я бы показал код, но мне стыдно
Я понимаю в каком примерно месте у меня там какой-то пиздец происходит, но я сначала перепишу всё на редухсе, потом поебусь, если не пройдет.
>перепишу всё на редухсе
Ну, то-есть я правильно предположил, что ты прямо в компоненте выполняешь асинхронную операцию.
Скажи, а это классовый или функциональный компонент?
Асинхронная операция выполняется в компоненте обёртке, и пока ответ не придет, висит лоадер. Оба компонента функциональные
Да я обосрался сам, получал пустую коллекцию.
Через useEffect, я полагаю?
Вот это читни, например:
https://www.robinwieruch.de/react-hooks-fetch-data
Можно ещё погуглить подобного.
Не проще ее засунуть в action ?
В компоненте. Главное не лепить всё в один компонент, а разбивать на сервисы, а то ты сейчас насоздаешь ApiResponse'ов в компонентах и потом скажешь, что на дваче сказали так делать.
Чего непонятно-то? Четко же написано что в StrictMode рендер два раза вызывается.
div.parent {
display:flex;
}
div.parent:first-child {
align-self: flex-start;
}
div.parent:not(:first-child) {
align-self: flex-end;
}
Спасибо
Это Java/C# головного мозга.
«Столько всего» это описать интерфейс аргументов что ли?
Источник багов в первую очередь.
Ммм, жсер знакомится с погромированием. Даже у питонистов средний IQ и то поболее будет
В основном именно у жсеров и пистонистов явно отслаивается кора головного мозга. Они до последнего верешат и не желают изучать какие-то новые технологии помимо тех что присутствуют в их уютном манястеке
Какие пруфы?
Два языка с самым низким порогом вхождения.
Вот и входит кто угодно, а потом ноют, что им писю прищемили.
Дожили, уже хуями питон, а не пых кроють...
Для работы с дом обязательно надо тянуть ооп помойку, мда дожили, походу в вэб покатились даже «погромисты» которым пнули под жопу?
> тянуть ооп помойку
ООП это просто концепция проектирования ПО. Её можно применять хоть на ассемблере, конечно это будет сложнее ввиду отсутствия подходящих языковых конструкций, но тем не менее это будет ООП
мимо
В современном фронтенде "работы с дом" практически нет.
Если ты только не либу пишешь.
Реакт и т.п. - это не "работа с дом".
Ничего, становиться человеком всегда сложно, сычушь. Моим первым языком был JS, потом начал осваивать C# и ощущения были примерно такими же как у тебя, но потом я понял, что иначе код писать просто нельзя. Типизация и ООП это элегантность, порядок, культура и воспитанность программирования. Через некоторое время сам увидишь как твой код становится более структурированным, понятным и удобным для расширения/модификации.
В Pornhub половина фронта написана на ванильном es6
Если писать на ангуляре, то непосредственной работы с домом не будет, будет только божественные ООП конструкции.
А что тебе нужно и как правка конфигов поможет?
Как из этого следует "не желают изучать какие-то новые технологии помимо тех что присутствуют в их уютном манястеке"?
Технологии во фронтенде постоянно меняются и по-твоему никто ничего нового не учит каждые несколько лет?
Или взять например rust, там полно вкатывальщиков из питона и жс, должно быть от того, что не хотят учить новое, ага.
>Или взять например rust, там полно вкатывальщиков из питона и жс
Думаю, они и не против ts
мимо
Все, выключай, у меня хуй стал
Правильно ли я понимаю что по-хорошему это должны быть 2 разных приложения? Ну, например, альтернативой SPA'хе должен быть мобильный клиент или там электрон клиент.
А что вы думаете про Single-SPA? Хорошая штука, или какая-то гачимучи хуйня? Мне почему-то кажется, что немного гачимучи хуйня. Реклама говорит что можете сделать каждый отдельный модуль на своём фреймворке, но нахуя это надо?
TS != OOP
TS = JS на стероидах.
JS - не ООП, а "объектный" язык. С сильнейшей примесью FP.
Вообще, JS очень похож на Scheme с сишным синтаксисом.
Также - ООП - очень простая и интуитивно понятная парадигма.
В отличие от FP, например.
И то, что в ES6 прикрутили "классы" - это, как раз, реверанс в сторону тех, кто не очень умеет в программирование, и хочет простые и понятные модели написания кода.
Хуй знает, что там по ссылке.
Но, тебе надо настроить редактор по-умолчанию, мне кажется.
Какой там url для открытия редактора, в Vue CLI?
Классы хорошо подходят для описания интерфейсов. Как только на жс начали рисовать полноценный фронт, а не обработчики 1.5 кнопок, их добавление было очевидным и ожидаемым.
А почему низкий порог вхождения - это плохо?
Хорошо это когда easy to learn, hard to master. Ну и JS примерно такой и есть, да.
Тут скорее джависты которые привыкли что у них ТИПЫ и каждый файл это класс, и они хотят такую же хуйню городить. И им для этого TS сделали и дали ES6 классы, чтоб не ныли.
Да, есть не ООП языки. Да, мы существуем.
>>64490
TS это гейское говно для аутистов, никогда его не любил. Вместо того чтобы выучить язык, почитать YDKJS эти аутисты хотят чтобы наш язык был похож на их язык, потому что у них в сишках this другое значит. Как же бесят, блять.
> Классы хорошо подходят для описания интерфейсов
Нет. Не подходят. Посмотри как выглядят компоненты в фреймворках.
Истинное Кеевское ООП - это late binding, dynamic typing и message passing. Так что js - это и есть ООП язык, а джава и плюсы - это извращенная ооп концепция.
>наш язык
Не смей шкварить жс
Он не "твой" язык. Такие как ты и формируют уебищное представление о языке и коммьюнити что на нем пишет
Ну, типизация в TS весьма либеральная и не сильно обязывающая.
Это, в конце-концов, всего-лишь надстройка над динамическим жс.
Просто программирование с типами - это другое программирование, и ему надо учиться, вкатиться на дурачка - не прокатывает.
Но, после того, как научился, ты становишься гораздо более лучшим программистом. При этом без типов ты тоже начинаешь писать лучше.
>Классы хорошо подходят для описания интерфейсов.
Вся суть жс-программиста в этой фразе, лол.
Для описания интерфейсов хорошо подходят внезапно интефейсы, а не классы.
Более того, классы вообще не нужны в JS/TS. Но, до понимания этого надо дорасти.
>С сильнейшей примесью FP
В каком месте? Лямбды даже в жабе есть
TS добавляет какую-никакаю иммутабельность, можно прикрутить паттерн матчинг.
Не, не правда. Как раз Кеевского смолтолка у JS нет. Всё не есть объект, примитивные типы это не объекты. Функции это функции а не message passing. Про наличие метаклассов как раз говорить ничего не буду. Если хочешь кеевский ООП, смотри руби. Но руби мёртв. А знаешь почему? Потому что говно это всё.
Университетские учёные не пишут хороший продакшин код. И его красивая концепция не прижилась. Кей вообще хоть год жизни покодил на галере, или сразу после вуза в рисёрч пошёл?
>>64505
Океей
>>64506
Хороший пример, ES6 сахар для старого доброго module.exports. 10 стратегий из 10.
>В каком месте?
В причинном, лол.
Жс поощряет функциональные подходы к программированию.
Посмотри на Реакт, например.
Более того - жс расцвёл именно с приходом моды на функциональщину сколько-то лет назад.
Вижу что ангулярокомпонент, но export class есть в ES6.
Денчик, ты?
Не реактивный и тормозной, в сорцах наверное ООП и императивщина. Это неважно, поинт в том что ts не принуждает к конкретной парадигме, к тому же, никто не запрещает комбинировать два подхода. А вот фреймворк принуждает, поэтому имеем заблуждения насчёт TS/JS
Примитивы - это синглтон объекты. При желании ты можешь создать собственный класс примитивов - инстансы которого будут в единственном экземпляре на каждую комбинацию аргументов при конструировнаии. Низкоуровневая реализация примитивов тебя вообще ебать не должна, но даже если хочешь доебаться до нее - под капотом жс движков примитивы это тоже объекты - строки так вообще целые деревья, особенно когда ты их часто слайсишь.
Никаких просто функций нет. Вызов функции это отправка сообщения apply объекту. Как и все остальные сообщения get, set -читай спеку на предмет внутренних слотов. Именно отправкой сообщений дергаются слоты при приведении типов, все перехватывается пробшенными символами, или оборачиванием в прокси.
>Не реактивный и тормозной
Вообще, это мои слова, лол.
Это я тут топил за Vue и поносил Реакт.
Что не отменят того, что в современном реакте сплошное ехал лямбда через лямбду.
А можно 10.times(i => console.log(i)); ?
> строки так вообще целые деревья
Там строки очень гачимучно устроенно. Строка это не совсем примитив, там есть именно объект строка new String(), и там кастинг делается.
Поэтому можно "kek".charAt(1), и тебе 'e' вернет.
А циферки вроде не объекты вообще.
> Вызов функции это отправка сообщения apply объекту.
Убедил. Но так-то этот подход под капотом, и пользоваться им никто не заставляет и никто на нём особо не пишет. А я как раз и топлю за свободу в использовании подхода.
>ехал лямбда через лямбду.
Ехал рендер через рендер, так они же 2 рендера делают специально чтоб жизнь маслом не казалась
Понял, спасибо!
Так посмотри, лол.
Наведи курсор на ссылку, и посмотри. Если там онклик, то в код страницы загляни.
Кроме всего прочего, девтулзы для контекста сделали уже?
А с повторными рендерами ебаться не придется?
Давай ебани ченить в духе правильной архитектуры
> правильной архитектуры
Это не к реакту, они сами не знают че делают, то у них классы, то HOC, то хуки, то редакс, то контекст, то иммутабельный редакс, то не иммутабельный редакс тулбокс
Модалконеосилятор, опять ты?
Так они для разных целей нужны, мягко говоря. Редакс, конечно, тоже можно использовать как глобальный кеш запросов, но он с этим не очень-то справляется.
Пацаны, я новенький во всем это жс-движе, как мне стать таким же крутым, который будет рубить по 300-400к в месяц и будет ссать на всех этих жава и с++ чуханов?
Расскажи мне, починилось?
Когда я последний раз (летом) пробовал vue в vs code просто нихуяшечки не работало, никакого интеллисенса. Писал на классах с декораторами
На классах в Vue мне не нравится.
Я это воспринимаю, как ненужное усложнение на пустом месте.
Нет, я умею и в ооп и в тс, и зарабатываю на жизнь тем, что пишу на джаве
Они, кстати, долго пугали, что уберут классовые компоненты в vue-3, но, не убрали, в итоге, видимо, есть любители.
Реактоёбы, можете привести пример того, что (красиво) делается на React, но, трудно или невозможно нормально сделать на Vue?
Подразумевается, что некоторое понимание Vue у вас есть, и не на уровне каунтера, он там просто левой ногой делается.
>трудно или невозможно нормально сделать на Vue?
Хуй знает, может эти плагины для браузера для реакта редакса которые пропы и стейт показывают
>невозможно нормально сделать на Vue?
React is in many ways already solving tomorrows problems. I don't see that with Vue.
Async scheduling for instance, which React contemplates currently with Fiber to finally breach native performance. It seems to be the only one that has an actual story for renderers, React-native being one of many. Seeing things like react-blessed being compatible with generic react controls like react-motion is mindblowing. It's an eco system that's becoming self sufficient. That has led to platform vendors like Microsoft picking up React to drive their own extension eco systems as well as cross platform strategies. Reacts reconciler has just been released stand-alone, everyone can now write custom renderers pointing just about anywhere. Then there's the quest to find a sane way to deal with styles, or animations, state, routes, ... in so many cases you'll find that the React eco system is a catalyst for innovation.
Vue itself is internally modelled after React. VueX after Redux. Nuxt after Next. Most frameworks today base on the ideas and concepts that made React what it is. And if you look at the usage stats it kind of puts things into perspective, there's one that leads, there are many that follow.
As for a more direct comparison, React is leaner than Vue (api surface) and thereby easy to learn, it has less magic, doesn't introduce too many foreign concepts or arbitrary constructs. I find that i build faster with it, compose faster. The downside is, and that's probably the main reason some people prefer Vue, React is not opinionated and while it has settled in some areas (state, routers, ...), others are the wild west (styles), like a petri-dish in which all kinds of experiments develop. On the other hand that's also its biggest strength.
Можно мобильное приложение написать и даже переиспольовать часть кода с вебом — react-native живой, популярный и довольно востребован на рынке. А vue-native дохлый совсем.
>Расскажи мне, починилось?
Я по незнанию проебался, оказалось что автокомплит причем весьма посредственный работает только внутри тегов <template>, <script> и <style>.
За остальное не скажу ибо еще не знаю всего функционала.
>>64910
>idea/webstorm
Мне очень понравился VSCode, после саблайма это как вставить хуй в вагину женщины после месяцев тыканья в вонючие бунгала мужиков.
>один useEffect чего стоит
Где в нем магия? Он делает ровно то что ты напишешь в функции и ровно тогда, когда напишешь.
>2 вызова render в dev
В StrictMode. Который, кстати, надо специально включить.
> Мне очень понравился VSCode, после саблайма это как вставить хуй в вагину женщины после месяцев тыканья в вонючие бунгала мужиков.
Неиронично неистово двачую. Ходил в перманентной эйфории когда пересел на него с Notepad++ и немножко почитал юзергайды.
Переделано из этого ответа:
https://stackoverflow.com/a/61598220
Но там все излишне усложнено, или не излишне?
Ух, ну и всратый стиль кода у тебя, тяжело читать.
Как минимум странным выглядит перезаписывание константы. Алсо, ты понимаешь что это не обновит стейт и не вызовет ререндер?
Вообще, зачем тебе выебоны с React.lazy? Может с туду листом разберешься для начала?
>React <...> easy to learn, it has less magic, doesn't introduce too many foreign concepts or arbitrary constructs.
Бля, вот это реально хуцпа уже.
Я, в принципе, понимаю, что они хотят сказать.
И даже в чем-то согласен.
Только формулировать это надо как-то иначе, всё-таки.
>>64948
В смысле? Что ты имеешь в виду?
>> Promise
>> 2020
Ещё один школоло, не понявший сути промисов, но очень любящий быть стильным и модным.
Чего ты так взъелся? Кто тебе в тапки нассал?
Я ошибся и заметил это сразу после отправки поста, но исправлять не стал, ведь вопрос совсем не про это был.
> inputVal is not defined
если она обьявлена в data. Как только начинаю ее выводить в алерт или изменять как все идет по пизде. Этой какой то приколь третей вьюшки?
Ты не очень удачно пошутил.
VSCode написан на джаваскрипте (ts), он просто в принципе не может работать быстро.
Идея (webstorm) - это мощный и удобный инструмент, который делает кучу всего, и, практически, пишет код за тебя, лол.
С учётом этого, кушает он не много и работает очень быстро.
Если бы VSC попытался делать всё то же самое, он бы просто не запустился бы, лол.
Купи SSD и всё будет летать.
>мак
На них кто-то реально работает? Я не понимаю, как можно программировать без минимум двух мониторов.
>>64567
>А можно 10.times(i => console.log(i)); ?
Конечно, можно.
>Строка это не совсем примитив,
У тебя (как в принципе и у многих) не правилное понимаение что есть примитив. Отличия примитива от объекта, не в том, что одно reference type,а другое value type (тем более, что под капотом это все равно не так), а в семантическом поведении. Еще раз повторю, тебе ничто не мешает создат собственный класс примитивных объектов, для инстансов которого будет выполняться StrictEqual
>new Yoba() === new Yoba() // true
>new Yoba([1,2,3]) === new Yoba([2,1,3]) // false
>new Yoba([1,2,3]) === new Yoba([1,2,3]) // true
Примитивы - это синглтоны, только не один инстанс на класс - а по одному инстансу на каждый инвариант.
>Но так-то этот подход под капотом, и пользоваться им никто не заставляет
Отправка сообщений - это как раз не подкапотная реализация, а семантическое поведение, от непонимания котрого следует все остальное непонимание и неприятие js. Все ништяки ввиде позднего связывания, контектсов, динамиечского неявного приведения типов, которые нивелируются и списываются большинством в минусы - это наоборот достояинства, которые и есть отражения ооп-шной Кеевской модели. Объект - это набор слотов, а любая операция в жс - доступ к свойству, вызовы функции, метода, итерация, привеедение типа, рефлексия - это отправка сообщений объекту с определенными аргументами и диспетчерезация тих сообщений. Большинство из типов сообщений в 2020ом уже можно перехватывать.
Да, жс не pure ооп - в нем не являются объектами сами констуркции языка, но во-первых чистота и не являлась требованием Кея, во-вторых ты можешь это все навернуть поверх имеющейся объектной моедли, потому как она очень мощная и богатая. Просто никто этим не пользуется, по тем де причинам, по которым никто не пишет на смоллтолке и лиспе (которые Кей и называл истинно ООП языками в его концепциях, большее объектно-ориентированными, чем джаваа и плюсы).
Джава и плюсы - это структурное программирование Вирта, в котором статичную структурность формализовали в набор парадигм и паттернов, а сверху наворачивают (или с разным успехом пытаются) ATD.
Динамическое программирование (и как парадигма, и как концепция объектной модели) - слишком сложное для людей. Она требует дисциплины, опыта, и таланта проектирования. А от масс этого требовать нельзя. Поэтому динамичность всегда останется оккультным мастерством, доступным не многим.
>>64567
>А можно 10.times(i => console.log(i)); ?
Конечно, можно.
>Строка это не совсем примитив,
У тебя (как в принципе и у многих) не правилное понимаение что есть примитив. Отличия примитива от объекта, не в том, что одно reference type,а другое value type (тем более, что под капотом это все равно не так), а в семантическом поведении. Еще раз повторю, тебе ничто не мешает создат собственный класс примитивных объектов, для инстансов которого будет выполняться StrictEqual
>new Yoba() === new Yoba() // true
>new Yoba([1,2,3]) === new Yoba([2,1,3]) // false
>new Yoba([1,2,3]) === new Yoba([1,2,3]) // true
Примитивы - это синглтоны, только не один инстанс на класс - а по одному инстансу на каждый инвариант.
>Но так-то этот подход под капотом, и пользоваться им никто не заставляет
Отправка сообщений - это как раз не подкапотная реализация, а семантическое поведение, от непонимания котрого следует все остальное непонимание и неприятие js. Все ништяки ввиде позднего связывания, контектсов, динамиечского неявного приведения типов, которые нивелируются и списываются большинством в минусы - это наоборот достояинства, которые и есть отражения ооп-шной Кеевской модели. Объект - это набор слотов, а любая операция в жс - доступ к свойству, вызовы функции, метода, итерация, привеедение типа, рефлексия - это отправка сообщений объекту с определенными аргументами и диспетчерезация тих сообщений. Большинство из типов сообщений в 2020ом уже можно перехватывать.
Да, жс не pure ооп - в нем не являются объектами сами констуркции языка, но во-первых чистота и не являлась требованием Кея, во-вторых ты можешь это все навернуть поверх имеющейся объектной моедли, потому как она очень мощная и богатая. Просто никто этим не пользуется, по тем де причинам, по которым никто не пишет на смоллтолке и лиспе (которые Кей и называл истинно ООП языками в его концепциях, большее объектно-ориентированными, чем джаваа и плюсы).
Джава и плюсы - это структурное программирование Вирта, в котором статичную структурность формализовали в набор парадигм и паттернов, а сверху наворачивают (или с разным успехом пытаются) ATD.
Динамическое программирование (и как парадигма, и как концепция объектной модели) - слишком сложное для людей. Она требует дисциплины, опыта, и таланта проектирования. А от масс этого требовать нельзя. Поэтому динамичность всегда останется оккультным мастерством, доступным не многим.
Ты не поверишь, но маки бывают с мониторами. И даже со многими.
Display Port - это изначально макинтошевский тип порта.
И к ноутбуку монитор тоже подключается, как ни странно.
И на них не просто работают, на них хуярят за всю мазуту - кодинг, музыка, видеомонтаж, 2D-3D графика.
Нихуя, ты залупил.
>Большинство из типов сообщений в 2020ом уже можно перехватывать.
С этого места можно поподробнее.
>10 .times(i => console.log(i))
Только что сделал такое, прямо в консоли.
Не хуже любого руби-хипстера.
Пойду отхлебну смузи и спать.
Какой тогда в нем смысл, если не нужна мобильность? Вместо нормального процессора получаешь троттлящий обрубок. А слабый процессор - это медленная сборка проекта, тормозящий автокомплит и прочее.
В "нём" - это в чём?
Ты под словом "мак" подразумеваешь "макбук", что-ли?
Бывают ещё iMac и Mac Pro, вообще-то.
Смысл - в Мас OS и топовом безглючном железе.
Если "макбук", то, всё равно, люди так делают, по разным причинам.
И на некоторых галерах так делают - выдают людям макбуки для работы, реально.
На джаве я бы на ноутбуке ничего серьёзного писать не стал, а на руби-хуюби-жс вполне себе пишут, хипстеры.
Имеет ли смысл из строки str="abcde...100500чаров";
сгенерировать объект вида obj = {"a": 0, "b": 1, "c": 2, ...};
чтобы с помощью in ускорить indexOf?
То есть, будет ли работать (c in obj) быстрее чем (str.indexOf(c)!==-1), с учётом генерации объкта? Или проще оставить IndexOf, и не ебать мозги, ни себе ни людям, генерацией этого пиздатого, многомерного объекта?
>будет ли работать (c in obj) быстрее
Не будет. При строке в 10000500 чаров у тебя коллизий в хештаблице будет жопой жуй.
> Или проще оставить IndexOf, и не ебать мозги
Нужно использовать 'str'.includes
Генерация объекта это O(n) т. е. тоже самое что и indexOf. Т. е. имеет смысл только если ты с одной длинной строкой работаешь много раз.
Во-вторых, пользователь не скажет тебе спасибо за то что ты забиваешь его оперативку своим объектом, вместо того чтобы немного нагрузить его процессор вызовом indexOf
Проебамп
>Почему ты думаешь, что не должно?
А почему должно? Реакт не вызывает ререндер просто потому что ты меняешь рандомные переменные. Только на изменении стейта или форс апдейде.
>VSCode написан на джаваскрипте (ts), он просто в принципе не может работать быстро.
Ну давай расскажи какой редактор быстрее.
>Идея (webstorm) - это мощный и удобный инструмент, который делает кучу всего, и, практически, пишет код за тебя, лол.
Ясно-понятно, IDE-даун не мог не пизднуть в сторону vscode. А теперь давай расскажи какая тормозная Idea.
>С учётом этого, кушает он не много и работает очень быстро.
Чиво блядь, 500-1000 Мб это немного? Опять IDE-даун обосрался в штаны. Это еще у тебя не Ultimate версия, она может и 2Гб жрать спокойно.
>Если бы VSC попытался делать всё то же самое, он бы просто не запустился бы, лол.
Что то же самое то? Сто процентов vscode ты не пользовался и не знаешь ее возможности.
>он бы просто не запустился бы
Пруфы будут балабол?
Да, примерно все крутые посоны на них.
Алсо, норм работаю на ноутах уже шесть лет или около того. Не понимаю зачем людям второй (третий, десятый) мониторы, если работаешь все равно с кодом шириной 80-100 символов. Ну и это же с дивана вставать придется!
Ты просто сравни как происходит резолв конфликтов гита в vscode и вебшторме. Уже только ради этого стоит на него пересесть.
> Чиво блядь, 500-1000 Мб это немного?
А для тебя много? Я даже когда на 8гб сидел с двумя открытыми вебштормами и 30 вкладок хрома и то нормально было, но не иметь сейчас хотя бы 16гб оперативы это долбоебизм.
Оче мутные вопросы, анон.
>Какие самые лучше технологии есть для spa?
Реакт, Ангуляр и Вью самые популярные.
>Ну например мне нужен фронтовый раутинг
Зависит от выбора фреймворка.
>обычный раутинг(для api).
Сервер с апи это отдельное приложение, он не имеет отношения к твоему spa.
>Правильно ли я понимаю что по-хорошему это должны быть 2 разных приложения? Ну, например, альтернативой SPA'хе должен быть мобильный клиент или там электрон клиент.
Ш Т О?
>А что вы думаете про Single-SPA?
Тебе не нужно.
>Ты просто сравни как происходит резолв конфликтов гита в vscode и вебшторме. Уже только ради этого стоит на него пересесть.
IDE-даун не смог в консольный git.
>А для тебя много? Я даже когда на 8гб сидел с двумя открытыми вебштормами и 30 вкладок хрома и то нормально было, но не иметь сейчас хотя бы 16гб оперативы это долбоебизм.
А как же ко-ко-ко VSCode медленный и много жрет памяти? Ты переобулся. Сначала обосрался, а потом сделал вид, что так задумано.
Шутка действительно не особо удачная, но я чот сам хихикнул. И если серьезно, у идеи есть два фундаментальных недостатка
1) Мееееедленный запуск и тупняки при работе, бесит сука (да, это потому что я жадный и из принципа не покупаю SSD и 32 гб оперативы для запуска IDE ака текстового редактора с наворотами; алсо, см. Рис. 1 в жаватреде)
2) Жыр. Нет, серьезно, десяток панелей, функций до пизды, мануал размером с аллаха, даже браться страшно. Также это называется "сильно перегруженным интерфейсом".
Ну и то что он платный, а денег на лицензию мне никтотне даст, но это детали.
Алсо, мне почему-то кажется, что vs code ты реально не пользовался, там вполне приличное автозаполнение. Алсо, примеры "писания кода за тебя" в студию.
Сильно зависит от задачи и панацеей в любом случае не является, особенно если строка реально длинная. Лучше принеси её обработку полностью.
Учитывая что я вижу появление компонента, я подозреваю, что lazy вызывает ререндер как только промиз резолвится. Если так подумать, если бы этого не происходило, то чистое lazy без всяких оберток требовало бы от разработчика самостоятельно триггерить ререндер как-нибудь.
Впрочем, я переделал с useState(init function), потому что повторная инициализация ломала код, ну и работать с флагом приятнее, чем с промизом.
Это ты еще разбор xml в госпарашных сервисах не видел. Вот там да, там пиздец.
Меня интересует скорее фентральный петух. Кроме того, скорость загрузки с тех пор увеличилась несильно.
JSON схема ничего не знает про TS типы, да даже про обычные JS классы ничего не знает
Оно недёшево, это да.
Но, у макбуков очень хорошее соотношение цена/качество, как ни странно.
Это как Land Cruiser, примерно.
Так было, по крайней мере, до недавнего времени.
Модели последней пары лет какие-то странные.
И вообще, после Джобса Apple по пизде пошёл немножко.
ты читал вообще что там пишут?
Approach: Invoking builder methods and functions to produce both validation functions (at runtime) and static types (at compile time).
Approach: Compiling TypeScript types to validation code at compile time.
Approach: Converting TypeScript types to JSON schema.
Approach: Converting a JSON schema to TypeScript types.
Вот бывает сидишь часами думаешь, как вкрутить новую фичу в проект и нихуя не можешь нормально спроектировать, собрать в голове все части пазла.
Как этот процесс ускорить? Че-то порисовать? Диаграмки какие-нибудь? Может есть книга на эту тему или статья, киньте почитать, плиз.
>Approach: blabla
Хуйня из под коня это всё. Простейший пример: пропертя "x" должна быть типа Date
>IDE-даун не смог в консольный git.
Резолвить конфликты через консольный гит - это какой-то особый вид мазохизма.
>>65182
>не покупаю SSD
В 2020 без SSD жизни нет. Это касается не только IDE, но и вообще любых программ. А поскольку даже терабайтный SSD теперь стоит гроши, оправдания его отсутствию просто нет.
>>65182
>2) Жыр. Нет, серьезно, десяток панелей, функций до пизды, мануал размером с аллаха, даже браться страшно.
Это тебе так кажется пока опыта мало. Со временем разберешься, и начнешь пользоваться всем доступным функционалом. С точки зрения интерфейса жидбрейнсы проделали просто феноменальную работу как в визуальном плане, так и в плане функционала и удобства.
А вскод мне не нравится по двум причинам. Во-первых, он медленнее. Не в смысле загрузки, а в смысле работы. Самый хорошие пример - скорость автокомплита кода. Во-вторых, нет ощущения целостности. IDE устанавливаешь, и все работает как надо из коробки, а вскод надо пердолить, и при этом не факт, что получится нормально.
Создал 2 разных элемента:
first = document.createElement("div");
second = document.createElement("div");
Как их "сцепить" вместе, не оборачивая в третий элемент?
- Визуализировать (рисовать руками на бумаге).
- Пойти гулять, на ходу начинает работать мозг.
- Просто переключиться на что-то другое (не мозгоёмкое), и дать поработать бессознательному.
let fragment = document.createDocumentFragment()
fragment.appendChild(first)
fragment.appendChild(second)
Это же просто пиздец какой-то - надо делать это через лямбды, которые пересоздаются при каждом рендеринге. Как вообще можно делать такую хуйню, и что-то кукарекать про "лучший фреймворк для UI" и т.п.?
>без SSD жизни нет
Сойдемся на том, что я старый консервативный пердун, которому и так нормально. Может еще годков через 5 куплю, когда окончательно скорость загрузки с HDD заебёт. Кроме того, у них же вроде ресурс ощутимо меньше, не? Мне мамка не простит, если я ее фотки из Турции проебу.
> со временем разберешься
Так-то оно конечно так, но даже в VS Code я пользуюсь довольно небольшим набором фич. Собственно, переименование, поиск символов в коде и гит - что еще надо-то?
> автокомплит
Ладно, тут ничего не скажу, автокомплит там и правда туповат.
> нет ощущения целостности
Мне кажется тут вопрос не в целостности, а в "поставил, работает и не надо зачищать напильником"
Знаешь, анон, я чет задумался аж, не попробовать ли еще раз. Нет ссылочки на нормальный торрент с вебштормом?
Пробовал, остаюсь на нейтралке.
О, еще один познал дзен. Переходи на Vue или лучше возвращайся обратно на чистый JS.
Обычно это все слишком частные случаи
useCallback если тебе нужно сохранить ссылку на обработчик
> Сервер с апи это отдельное приложение, он не имеет отношения к твоему spa.
> Правильно ли я понимаю что по-хорошему это должны быть 2 разных приложения? Ну, например, альтернативой SPA'хе должен быть мобильный клиент или там электрон клиент.
Здесь про это же. Типа сервер с апи и фронт 2 разных приложения. И в теории клиентов может быть более одного.
Гайзы, чё думаете про frameworkless front-end development? Сижу читаю книжку, как думаете, хуйня?
> я старый консервативный пердун, которому и так нормально.
Это не возрастное. Ты просто долбоёб.
>у них же вроде ресурс ощутимо меньше
Это у современных hdd ресурс ощутимо меньше.
Разумеется, SSD надо брать такой, который называется Samsung. И лучше Pro.
>>65356
Я не реактопетушок, для начала.
Я просто здравомыслящий наблюдатель.
И на сайте реакта, в том месте где речь идёт об этой хуйне, никакие хуки-хуюки не упомянуты, а написано - "Такая вот хуйня, да. Если вас это не устраивает - оптимизируйте". Как "оптимизировать" - не написано.
>>65331
Ты прав, дружище.
Только переходить мне не надо, я изначально там.
Просто, время от времени, выхожу посмотреть, что там у конкурентов.
И каждый раз охуеваю - то с реакта, то с ангуляра, то с хомячков, которые плачут, но продолжают жрать эти кактусы.
>>65357
Бегло просмотрел только что.
Очередная порция охуительных историй на тему "почему писать на ассемблере лучше, чем на си" в адаптации для 2019 года.
Всё это щедро сдобрено пафосом и мессианством.
Пролистать не вредно - для общего развития.
Но, делать так не надо.
Вообще, если видите книжку итальянского автора (их дохуя сейчас) - смело проходите мимо.
>Гайзы, чё думаете про frameworkless front-end development?
Ну вот почему у того же пынькиного дерипаски отдельный заводик плавит люминь, а отдельные гномики в шахтах алюминиевую руду добывают? Почему бы литейщикам бы в шахте киркой не помахать в начале дня а потом накопанную тачку самим не пообогащать а потом бы уже не поотливать?
Ну сначала рассказывает про frameworkless и как это лучше чем секс, потом хуесосит ангуляр и реакт, жикуери хуесосит, вью даже не упоминает. Говорит что у него javascript fatigue потому что он заебался учить фреймворки.
Делает рендеринг и маня mvc на чистом жаваскрипте, ебёт дом дерево как послендюю шлюху.
Ну там в принципе просто инструкции по тому как менеджить стейт, делать маня-компоненты и вообще рендер, как делать раутинги. Так же говорит что в html есть классы, почему бы им не представляться классами в ООП коде, типа законом не запрещено.
Говорит что два самых страшных антипаттерна это бежать за хайпом и захламлять код зависимостями "на будущее".
>захламлять код зависимостями "на будущее".
Мне даже "на настоящее" не хочется захламлять. Добавляешь все, что нужно, и уже бандл мегабайты весит, угх.
И в чем тут виноват Реакт? В том, что в JS функции уникальные? Как ты вообще представляешь себе желаемый API? Используй useCallback, епт, если очень надо.
Модалку-то смог сделать в итоге?
Ну не знаю, вот у меня вообще другой страх. Знаешь что меня бесит больше всего? Мобильные НАХУЙ телефоны.
Ну никак к ним не подойти. Как не старайся резиново тянуть свой ебучий интерфейс, как не старайся подстраивать под эту срань, всё равно же придётся отдельно делать веб приложение. Ну чаще всего. А ещё хуже 2, потому что кроссплатформенная мобильная разработка это говно ебучее.
Что ж мы столько труда убиваем в эту хуйню, когда we need an app.
Давайте уже либо делаем PWA и ебём мобилу в жопу, либо просто этим даунам ссылку редирект на скачку въебём.
Про модалку - это не я. Я просто за Vue топил, хотя и агрессивно.
>Как ты вообще представляешь себе
В программировании практически любая проблема решается добавлением очередного слоя косвенности (indirection).
Реакт - это внутренний DSL, чистый код. Это очень хуёво масштабируется. Отсюда все эти костыли и изъёбы, ехал паттерн через антипаттерн, и новые бест-практисиз каждый квартал.
В Vue есть шаблоны (внешний DSL), в которых можно писать то, что нужно автору фреймворка, а не автору языка программирования. И в Vue нет проблемы передать параметр в функцию-обработчик события (и многих других подобных проблем тоже нет).
Также, для хитрых случаев (и для любителей пердолинга) можно писать низкоуровневые рендер-функции, в том числе и с использованием jsx.
Вообще, Vue - всё ещё очень недооцененная вещь.
Видимо, просто потому, что люди немного устали от зоопарка фреймворков, и заранее негативно настроены. К тому же - "это китайщина", "фейсбук - авторитет" и т.п.
В Реакте нет никакой проблемы в том, чтобы передать через пропсы функцию с привязанным аргументом: <Component onClick={() => doStuff(foo)} />. У нее будет нестабильная ссылка, но это же логично — ведь foo тоже переменная, а onClick от нее зависит. Новое значение foo — новая функция.
Ты в ответе много умных слов написал, но я так и не понял что тебя смутило в этом решении и что конкретно ты предлагаешь поменять в API.
В твоём примере лямбда будет создаваться каждый раз при рендеринге. Это я и обозначил как недостаток.
Про хуки я уже понял (не пробовал пока конкретно это), но, хуки - это костыли и магия. Именно то, чего в Реакте (якобы) нет, и поэтому он и хорош.
Я ничего не предлагаю поменять в API реакта.
Речь была о том, что это фундаментальный недостаток (продолжение достоинств, если угодно).
Кстати, о магии - я предпочту магию Vue, потому, что она даёт охуенный профит, а реактовская - даёт лишнюю еблю мозга и бойлерплейт.
>В твоём примере лямбда будет создаваться каждый раз при рендеринге.
Логично, она же зависит от foo.
>Это я и обозначил как недостаток.
Почему?
>Про хуки я уже понял (не пробовал пока конкретно это), но, хуки - это костыли и магия.
Еще не пробовал, но уже все решил? Понятно.
> Vue недооценен
Mithril говорит "hold my beer". По сути ж годнота годнотой и в попу тебя не ебёт. DSL вообще хуйня
Я не пробовал именно этот хук.
Но, да, в реакте у меня реального опыта нет.
И я прекрасно понимаю, что хороший фреймворк - это тот, к которому ты привык.
Так что, я согласен, что нужно убрать слово "костыли", ибо тогда этим словом можно назвать и весь реакт, лол.
Но, хуки - это магия, с этим ты не будешь спорить?
>Но, хуки - это магия, с этим ты не будешь спорить?
Я не знаю что ты понимаешь под «магией», не очень люблю этот термин. Хуки — удобная и умеренно сложная абстракция. Я понимаю как они работают, поэтому для меня они магией не является.
> frameworkless front-end development
Не взлетит. Лет 6-7 назад, ещё во времена первого ангуляра, занимался разработкой гуёв для STB (приставки к телеку для кабельного ТВ). На них как правило очень слабое железо, на которое еле-еле влазил заоптимизированный хромиум, соответственно требования к JS коду были очень высокие в плане хавла ресурсов. Сначала пердолили читый DOM c CSS, но в итоге всё-равно начали ваять велосипедный фреймворк на основе бэкбона
>Mithril говорит "hold my beer". По сути ж годнота годнотой и в попу тебя не ебёт. DSL вообще хуйня
`${любая_другая_хуйня} говорит "hold my beer". По сути ж годнота годнотой и в попу тебя не ебёт. DSL вообще хуйня`
Я же не говорил, что магия это плохо.
Скорее, я имел в виду, что они долго копротивлялись за чистоту, но, потом сдались - сначала контекст (говно, на самом деле), потом - хуки.
С появлением хуков реакт стал вполне пригоден для работы, на мой взгляд.
До этого, конечно, хуйня была полная.
А сейчас некоторый лишний бойлерплейт - это разумная плата за чистый js, и все преимущества, которые это даёт.
Да причём здесь взлёт или не взлёт. Речь не о том чтобы от фреймворков избавиться, а чтоб не иметь привычку писать npx create-react-app spashka-ot-pashki на каждый чих
>они долго копротивлялись за чистоту, но, потом сдались
Что ты под этим подразумеваешь? Приложение не может нормально работать без сайд-эффектов и Реакте всегда были инструменты для работы с ними.
Ну если прям совсем один чих, то подключается зепта прямо с cdn и дальше $(() => $('#btn1').on('click', () => console.log('апчхуй блядь')))
Смысла писать про это книгу не вижу
>Алсо, примеры "писания кода за тебя" в студию.
Да ты реально от сохи, чувак.
Ты IDE-то нормальные видел хоть раз, а не всю эту VS-хуиту мелкомягкую?
1. Слоупочные темпы развития. Кажется, что у меня внуки появятся раньше, чем concurrent mode выйдет.
2. Нет единственно правильного стора, подхода к стилям, архитектуры и т.д. Это и преимущество и проблема.
3. Использовать хуки без линтера малореально. Что-нибудь да упустишь. Его, конечно, все и так используют, но требование раздражает.
interface lol{}
interface kek{}
export type xyiType = lol | kek
Насколько валидна такая запись и как часть используется? Стоит ли упарываться подобным образом? Или тупа все хуярить типами?
Ладно, скожу конкретнее, большая часть spa-шек не нуждаются в фреймворках вообще и они просто грузят бровсер
>большая часть spa-шек
>большая
Скорее меньшая
Когда на странице какой-нибудь один ебучий виджет и отправка одной формы
Во всех остальных случаях заебешься это поддерживать без фреймворка
У тебя лишний див приехал. Между красным и синим пустота должна быть.
В вк есть, в документах.
Сильное заявление.
Ты, наверное, написал свои библиотеки?
Если да, то, чем они лучше реакта/vue?
Или просто хуяришь спагетти код, который сам же через неделю хуй поймёшь что делает?
>>65672
Ты имеешь в виду Vuex? Там пролёт с типизацией, к сожалению.
Но, они совсем скоро выкатят новый, более лучший.
Я в подобных случаях (не только vuex, много где) делаю функцию приведения типа:
Допустим, у тебя есть interface Zalupa {id: number}
Тогда (можно вынести в отд. модуль):
const asZalupa = (val: any) => val as Zalupa;
Потом используем:
asZalupa(action.payload).id ...
Это дёшево и вкусно.
>>65677
С ангуляром он заебётся сильно быстрее, чем с типизацией в Vue.
Суть в том, что любая идея вида "ебучий виджет и отправка формы" рано или поздно перерастает в "заебешься это поддерживать без фреймворка".
Да и даже одну форму быстрее буде сделать с фреймворком чем без, потому что ты используешь уже готовый код, а не свой велосипед написанный на чистом html css + js
>С ангуляром он заебётся сильно быстрее, чем с типизацией в Vue.
В треде видно только ёблю с Vue и его братом-дебилом React'om. От некоторых вопросов даже смешно становится, ведь потом эти люди будут говорить что Ангуляр слишком сложный и не понятный.
Правило Кобола.
Любой хипстерский фреймворк, если он не сдох в безвестности, рано или поздно превращается в жирнотырпрайзный опердень для сириус бизнеса.
Эээ, ноду? Что автоматизировать-то хочешь?
>кроме Питухона
Ну, то-есть, тебя уже проконсультировали грамотные люди.
Но, ты решил их не слушать.
ЖС - он (в общем и целом) - немножко для другого.
Но, тут всё зависит от того, что тебе нужно.
От того, что именно ты понимаешь под терминами "рабочие процессы" и "автоматизация".
Да.
Вся суть долбоебов которые не понимают, что потратив пару минут на описание типов, ты экономишь часы будущего времени.
По верхам точно нужно. Сто видов сортировок дрочить не обязательно.
Ага, только там по пять минут на каждый чих и в сумме на бесполезную хуйню(ведь в рантайме нужно проверки типов дублировать ручками) уходит гора времени.
>ведь в рантайме нужно проверки типов дублировать ручками
Зачем? Весь смысл TS в том, чтобы этого не делать.
Затем что ts это просто крутой линтер. По сети, от стороннего компонента итд любое говно может прилететь.
Если сервер свой, то любое говно не прилетит. При обострениях паранойи можно типизировать все как optional или прогонять через ajv (типы прекрасно генерятся на основе схем).
его нет. в том то и проблема. висят только smush-lazy-load.min.js и smush-lazy-load.min.js.map
забей, ты споришь с анонами, которые в крупных проектах хоть в каких нибудь не работали никогда
Могу посвящать этому 6-8 часов в день
есть пример добротного по твоему мнению проекта на гитхабе.
я бы пробежался по истории коммитов с начала до конца
Набрать в гугле javascript beautifier.
поддвачну этого в том плане, что реакт "не особо" интуитивно-понятный
Я когда разбирался с хуками, например, уже был знаком с реактом и они в целом легко зашли.
Но вот как объяснить нубу, которые только-только учебник кантора прошел и 2 макета сверстал, что такое этот useEffect, что ознает эффект и почему вообще, если ты хочешь на размонтирование компонента что-то повесить, то тебе в этом хуке нужно функцию вернуть - хуй знает. в этом плане классовые компоненты были куда более простыми в понимании
В смысле "типы"? Ты имел в виду "классы"?
Это не так просто объяснить тому, кто задаёт такие вопросы.
Если коротко и применительно к фронтенду - для данных (json, массивы, объекты) - интерфейсы, для сервисов (те объекты, которые что-то делают с данными) - классы.
Класс - это и интерфейс и реализация.
Интерфейс - только интерфейс.
У данных в JS уже есть реализация - это объекты {foo: 'BAR', ...} и массивы, и делать классы (какую-то дополнительную реализацию) для данных - это лишняя ебля мозга.
Также, есть такой термин, как "программирование на интерфейсах", это когда ты для всего пишешь интерфейсы, в том числе, для классов-сервисов (они реализуют эти интерфейсы). И при использовании такого кода работают с интерфейсами, а классы под них просто где-то создаются, на фабриках и т.п. Это лишняя работа, но, позволяет менять реализацию не переписывая программу. Так делают в достаточно больших проектах.
BACKBONE FOREIGN
А дошло, ты имеешь в виду литералы типов?
Я их для себя как-то в отдельную категорию не выделяю.
Да похуй, делай как удобно.
Но, мне кажется, интерфейсы удобнее в тех случаях, когда объект используется в разных местах программы.
>АРЯЯЯ статическая типизация нинужна! Ограничивает свободу только!
>А зачем тогда в жс введено объявление const?
>Ну как ты нипанимаешь! Это жи другое! const это модно и круто, все в моем коворкинге подтвердят
Использование const ничего не стоит.
Для ts нужно тащить компилятор, превращать код в нечитаемое жабоговно, всирать на это время. И все это ради чуток улучшеного линтера и автокомплита, такая-то победа!
>Про sqlite я лоханулся, она не поддерживается в sequelize
https://sequelize.org/master/class/lib/dialects/sqlite/query-interface.js~SQLiteQueryInterface.html не катит штоль?
>АРЯЯЯ статическая типизация нинужна! Ограничивает свободу только!
>А зачем тогда в жс введено объявление const?
Какая связь между типизацией и неизменяемостью const? В фпшных языках вообще нет переменных и все неизменяемое. Они бывают и статическими и строгими. При чем тут const?
Так это метод объекта, то что он не изменяет массив - не делает его ЧистоФП, может после беглого взляда на хаскель и reason, у меня сложилось неверное представление о FP
Спасибо. Что то я замотался. Вроде только недавно гуглил и читал доки и ничего не нашел.
>Так это метод объекта, то что он не изменяет массив - не делает его ЧистоФП, может после беглого взляда на хаскель и reason, у меня сложилось неверное представление о FP
Это не метод объекта, это функция высшего порядка. ФВП тоже чисто фпшная фича. Функция map появилась десятки лет назад, когда никакого ООП не было, и определение объектов было совсем другим. У тебя типичное оопэшное искажение мышления. Ты даже не понимаешь что откуда растет. У тебя все наоборот.
Я тупанул, sqlite поддерживает, не поддерживает монго. Но мне это никак не помогает. Не пойму как подлючаться к бд, с помощью адаптера или с помощью sequelize.
Такую смесь я в scalе видел, по сути ООП с ФП скрестили. JS не труфп, как и жаба(там HOF тоже можно сделать).
>Функция map появилась десятки лет назад, когда никакого ООП не было
map это вообще из теории множеств, появилось ещё задолго до программирования как такового
https://en.wikipedia.org/wiki/Map_(mathematics)
У JS основа фпшная, от языка scheme. Только синтаксис сишный. Все остальное накручено уже потом.
>>66277
Вот именно. Ну а в программирование попала через фпшные языки. Теперь же терминологию никто не знает, и историю программирования и языков тоже, начинают искажать. Скоро фпшные фичи, которые в некоторых языках занимают уже больше 50% всех фич - будут называть оопэшными фичами.
Когда у тебя клиентский код будет падать и вести себя хуй пойми как, потому что у клиента рантайм модифицирован каким-нибудь васянским расширением, я посмотрю, как ты попляшешь. А причины не узнаешь, потому что никаких проверок, и вразумительного логгировании соответсвенно что где когда и почему у тебя ломается - нет.
Откуда ты можешь знать, кто именно скрывается за аноном и в каких проектах они работали? Ты отдаешь себе отчет какую дичь ты несешь, когда делаешь такие утверждения?
>Теперь же терминологию никто не знает, и историю программирования и языков тоже, начинают искажать
Раз пошла такая пьянка, то ООП это не про языки, а про методолгию программирования. Никто не запрещает её применять как в функциональных, так и в структурных языках да хоть в ассемблере, как я выше уже писал. Тащемта Страуструп до C++ делал т.н. "C с классами", причем код на этом языке транспилировался в обычную сишку, которая после компилилась сишным компилером
Просто ООП хорошо зашло для UI, поэтому стало мейнстримом и под это начали пилить языки
>я посмотрю, как ты попляшешь
Я даже пальцем не пошевелю. Сейчас бы из-за одного васяна который решил что шатать рантайм это хорошая идея что-то там делать, когда у десятков тысяч пользователей все ок работает. У меня и без него полный бэклог. Может еще что-то надо с теми кто захотел в консоли throw new Error() написать?
>А причины не узнаешь, потому что никаких проверок, и вразумительного логгировании соответсвенно что где когда и почему у тебя ломается - нет.
Вы Сентри не пользуетесь что ли? Ну это зря, конечно. Хорошая тема, рекомендую.
Какую такую свободу оно ограничивает? Надо перезаписать — юзаешь let, не надо — const. Всего лишь защита от глупых выстрелов себе в ногу
Алсо почитай про принцип наименьших привилегий
Написал свой первый CRUD-API, теперь захотелось сделать к нему фронт. А ещё есть конкретная задача: визуализировать связи реляционной БД (ну или визуализировать графы). Хочется сделать это красиво и функционально.
С JS никогда не работал, поэтому решил спросить у тебя: какой фреймворк лучше подойдёт для первого раза? Может быть что-то определённое есть для моей задачи с визуализированием БД?
нахуя?
А как определить "люди" ли они или нет, когда у тебя нет опыта, м? Хуй газированный!
>Раз пошла такая пьянка, то ООП это не про языки, а про методолгию программирования.
>C с классами
Противоречие. Если ООП не про языки, то при чем тут классы? ООП не про классы. ООП в современном понимании и ООП языки - это рак.
Ха, интересно послушать петуханов кукарекающих на теорию категорий.
Тысячи их
>Противоречие
Пока ты искал противоречия, труп страуса пилил расширение сишечки
https://dl.acm.org/doi/10.1145/947886.947893
Сколько неоплачиваемых часов вы готовы потратить на возможность вкатиться?
Пара максимум две пары часов. Скажем если выделять на собес в одной конторе 1 рабочий день, то половина это дня на непосредственно собес, вторая - на их задачку
Я на день(ну вечер если все в голове закешировано) примерно давал. Можете меня хейтить, но шли одни нубы сплошным потоком.
А какие критери были при отборе? Я посылаю резюме своё на hh, есть гитхаб где по 10-20 коммитов в день последние полтора месяца, react, redux все дела, несколько репозиториев. Дрочу кодинг нонстопом по 9-12 часов в день. Ни одного ответа, либо отказы, но кажется все они были с вопросом о том, есть ли у них удаленка, либо молчаливые просмотры резюме. Всё. При том до этого был опыт работы в it, работал дизайнером, опыт работы в команде есть, гитхабом и пул реквестами пользовался, т.е. не совсем с завода перекатываюсь. Ни одного ответа или тестового не давали за последние 2 недели. чяднт? Ждать дольше или объективно это низкий уровень? Должно быть портфолио с рабочими сайтами которые можно потыкать?
>Я посылаю резюме
>Должно быть портфолио с рабочими сайтами которые можно потыкать?
Что ты там посылаешь? лол
Гитхуб
Ну я сайты никуда не выкладывал, потому что бека там как такового нет, просто публичные какие-то апишки берутся, но твой посыл я понял
>react, redux
Так спашки на публичных апишках и должны быть, лол
Если ты там реально коммитишь и пришь, можшеь и на пендоские вакансии присмотреться
Я собесил всех у кого было хоть сколько-нибудь адекватное резюме. Ну то есть вкатунов с курсов и бывших слесарей на помойку На двадцатом мне дико надоело, плюс руководство начало найм в связи с короной тормозить и они тоже начали висеть неделями. Спрашивал основы, но набралось лишь пару крепких джунов, пиздец.
>хоть сколько-нибудь адекватное резюме
Можешь пожалуйста описать, что это значит? Вот пока я так понял обязательных 2 пункта, это публичный кликабельный сайт, гитхаб, и что еще? Пишу я вроде бы адекватно, и инфу о себе тоже расписываю вменяемо, не слишком сухо, но и без готов дать в жопу, только бы вкатиться
>вкатунов с курсов
Как это определяется? Без тех бекграунда, или у них одни тудушки в портфолио?
>Как это определяется?
Вопросом, чем знаковое число от беззнакового отличается
На курсах за 100к такое не рассказывают
другой анон
Пиздец братишка успокойся там
И какой ты там ожидаешь услышать ответ от снг зоопаркной макаки?
Если горят глаза и 10 коммитов в день - открывай свои проекты с третьигруппными апи из привата и без задней мысли стучись кому угодно в резюмовые сайты и чатики
На 5$/час точно должен найти место, даже если проекты не шибко презентабельные
> Можешь пожалуйста описать, что это значит? Вот пока я так понял обязательных 2 пункта, это публичный кликабельный сайт, гитхаб, и что еще? Пишу я вроде бы адекватно, и инфу о себе тоже расписываю вменяемо, не слишком сухо, но и без готов дать в жопу, только бы вкатиться
Гитхаб не с тудушками уже хорошо, сайтов почти ни у кого не было.
Вообще ждали разраба с опытом работы, с хорошим знанием js(ну и реакт сильно желателен), таких было 1.5 штуки. Остальные без опыта/смежные области типа верстки или пыха. Если ждун расписывал свой проект, как что использовал, обычно приглашали на собес. Многие тз вперед просили(и не делали)
>>66466
Так в отклике кроме этих курсов ничего нет просто. Пару пособесили они прям скажем не оче.
>Всего лишь защита от глупых выстрелов себе в ногу
ГРАМОТНЫЙ РАЗРАБОТЧИК ВООБЩЕ НЕ СТРЕЛЯЕТ СЕБЕ В НОГУ, ЧЕГО НЕ ЯСНОГО?
Все эти "защиты" для лошков, не умеющих писать код
Когда СтраусТруп был еще школьником, отцы уже писали объекты на лиспе. Без классов. Шах и мат.
Vue, тут и думать нечего.
А простота реакта - обманчива, там чуть подальше зайди, и придётся закат солнца вручную делать, лол.
Ключевое то, что он термин ООП и ввёл. Поэтому to me тут и есть ортогональное определение. А все остальное изковерканное. А не наоборот. Это к кукаретикам любящим кричать про настоящее программирование, настоящее ооп, и вообще вес настоящее.
> Странно, что за ClojureScript + React ещё не агитируют
Действительно, а ведь я уже давно собирался всем тайпскриптодаунам засоветовать кложуру
(сам ессно в рот ебал все типизации и прочее дрочево, ведь надо доставлять стоимость вместо кода)
Есть таблица в Ангуляре (ее представляет FormGroup конечно), в ней много строк, как сделать "поиск" нужных строк? В ванильном жс я бы слушал событие onkeuyp для поля поиска над таблицей и просто ставил бы строкам, которые не удовлетворяют паттерну display = 'none' а тут как подобное мутить?
>ставил бы строкам, которые не удовлетворяют паттерну display = 'none'
И рефлоу дёрнул и память не вычистил. Зачем так делать?
Рендеришь таблицу на данных прошедших через фильтр
Ангуляр - это MVC, а не мешанина из говна, как в ванильном.
Т.е. таблица у тебя отображается по модели.
Ставь флаги в модели, в шаблоне их обрабатывай.
Только не display none, это дичь какая-то. У тебя просто строки не должны рисоваться вообще, *ngIf используй или как там оно у вас делается.
Вообще, охуенный вопрос, ты только сегодня Ангуляр для себя открыл?
А почему таблицу у тебя представляет "представляет FormGroup конечно"?
Там каждая строка редактируемая? Или это просто таблица для просмотра?
>>66573
Короче, посмотрел я этот ваш Angular FormGroup.
То, что ты хочешь, там, похоже, просто не предусмотрено.
Почему я и выбрал Vue, лол.
Вот это посмотри, тут через жопу это делают, и именно скрывая, а не убирая из рендеринга:
https://stackoverflow.com/questions/43025499/angular-2-how-to-hide-controls-using-formgroup?rq=1
В каждой строке содержатся данные которые потом надо будет передать на бэк. Примерно так: Имя (приходит с бэка), чекбокс да/нет и поле input с числом score
Он работает, да.
Но, я имел в виду, что там бы не помешало свойство у FormControl типа типа visible или что-то вроде. Но, я думаю, что они не предполагали, что с формами такое будут делать.
>>66573
Я бы вообще предложил тебе не использовать в данном случае FormGroup/FormControl, оно немножко не для этого, мне кажется.
Просто таблица с инпутами, и всё.
Но, я не ангулярщик.
Можешь ещё вот это посмотреть:
https://www.mmbyte.com/article/96378.html
https://stackoverflow.com/questions/53893745/dynamic-angular-form-group-array-with-conditional-show-hide
Пиздец.
https://github.com/reduxjs/redux/commit/9276ff0af6400633d6731b15fed6e70c3561887e
> Remove "Redux itself is very simple"
>>66636
Пиздос, нашел похожий проект на гитхабе, нашел как там реализуется эта фича через react-router-redux, но в репозитории написано, что это говно уже устарело и нужно было ебаться с connected-react-router при том что я ИЗНАЧАЛЬНО нихуя не понимал того, что вообще нужно делать, и пиздец, это говно заработало и теперь я наконец могу начать ебаться с редухом как следует, ебанный ты в рот, у меня аж голова кружится нахуй. Мне кажется, что всё это заработало просто по случайности
Ну выдрочив реакт будут перспективы еще и в этом направлении, а в случае с Vue немного будет уже перспектива. Да и тем более, я УЖЕ разобрался с проблемами, которые у меня возникли
Весь код redux-thunk это 14 строчек. Нужно прям очень постараться чтобы найти там какую-то магию.
Да вообще все программирование это 10 строк кода, нахуй вообще программисты нужны, да? Ну понятно блядь, что в чем угодно количество_строк строчек кода, если бы все было так просто, хули бы тогда учить было вообще, недельку посидел, и пошел 300к пилить
Чего ты горишь-то? 14 это типа не очень много. Функция, блять, с одним if. Просто рокет саенс, обосраться можно пока осилишь.
>хули бы тогда учить было вообще, недельку посидел, и пошел 300к пилить
Так и делаю, в чем проблема-то?
Да не горю, но давай честно, вокруг этих 14 строк есть еще очень дохуя всего я не понимаю о как 14 идет реч, react+redux+thunk+router и разного рода мидлвары, чтобы объеденить это всё вместе это больше 14 строк, и проблема моя была именно в том, чтобы понять, как всю эту ебалу вместе соеденить, что коннектит одно с другим, пятое с десятым, тридцатое с пятидесятым, и вот после всего этого тебе уже можно начать разбираться в том, как всю приложуху в итоге запилить
Так ни в чем, я же за полчаса разобрался, погореть нельзя?
>я не понимаю о как 14 идет реч
Я про redux-thunk писал: https://github.com/reduxjs/redux-thunk/blob/master/src/index.js
Если экшен это функция, то вызываем, если нет, то передаем дальше. Ебать, темная магия.
Зачем тебе ротер в редаксе нужен я вообще хз. Чтобы больше заебаться что ли?
>Зачем тебе ротер в редаксе нужен я вообще хз
Я вероятно чего-то не знаю, но как ссылки пользователю в бровсере показывать-то?
>Ебать, темная магия.
Ну магия была в тот момент, когда это все разом на меня набросили, теперь уже нет
Поставь в браузерлисте last 1 version chrome и всё.
У меня в проекте редакс и роутер вместе работают, а линк, тот что в браузере, по мере выполнения разных действий обновляться должен, ну наверное это тоже как то просто делается, но пока я не разобрался, это не так уж и просто
А нахуя ты учишь это говно? Учи сразу нормальный стейт-менеджер типа effector, на редаксе и так каждая собака пишет и уже все постепенно с него слезают
А санки - это мидлваря на 10 строк, которая просто typeof action проверяет и если он function, то выполняет, прокидывая внутрь диспатч, а если нет - то диспатчит как всегда
>А нахуя ты учишь это говно? Учи сразу нормальный стейт-менеджер
Что в вакансиях требуют, то и учу, уверен потом что-нибудь получше начну учить
Нечего там учить, прочитал доку про экшен и редюсер и про санк и вперёд, никто не будет на собесах дрочить коннект роутера к этому говну или ещё что-то, придёш на готовое и будешь диспатчить экшены.
>У меня в проекте редакс и роутер вместе работают
Что конкретно они вместе делают? Скорее всего затея так себе.
>а линк, тот что в браузере, по мере выполнения разных действий обновляться должен
Какое это имеет отношение к редаксу? О чем ты говоришь вообще?
Фильтр из массива ничего не удаляет
>что он термин ООП и ввёл
И что теперь, усраться и трясти его цитатками? Значение термина изменилось и обросло новыми понятиями, это естественный процесс, сычуш.
У FormGroup есть метод addControl/removeControl, обрабатываешь ввод в поле поиска, проходишься по контролам и соответственно вызываешь у них addControl/removeControl в зависимости от критериев поиска.
Если бы ты соображал, то знал бы, что под ооп и фп есть математическая модель. Эти модели и их термины не меняются и меняться не могут. У вас же кодерков из Computer Science образования только MDN и learn.javascript.
Ты главное таблетки не забывай пить, а то твои воображаемые математические модели из манямирка в реальный мир уже лезут.
Ты тапл то читал?
Ты шо ебанутый?
Как только ого станет платным, свою монопольку на поиск он быстро всрет.
Что и требовалось доказать. Шизоид увидел галлюцинации и удивляется почему другие их не видят.
Скорее всего ты обосрался где-то в изначальном продумывании дата флоу
Я как-то сел на рн поделку с парой скринов остановившихся на мокапной логике, пришлось перекручивать полпроекта. Ещё и стоящая коннект либа задепрекейтилась, и нормального стоража не было, ставил какую-то дрисню https://github.com/rt2zz/redux-persist (по-моему с 10к звёздочками, ласт упдейтом год+ назад и полтысячами ищью-реквестов отражает всю суть рн)
Какой-то подобный геморрой тоже был >>66647
Пердолил 3 недели и соскочил хорошо хоть плотили раз в неделю и вроде не баттхёртили, с тех пор к реакту не прикасался
Так ты сам-то чего-нибудь расскажешь? Или ты написал словосочетание со словом математика и мы растаять должны?
Нулл это 0
0 это число
Число - это математика
У где математика, там и модели
Что и требовалось доказать.
Мы вам перезвоним.
Чувак, математическу модель можно сделать для чего угодно.
И само это слово может значить что угодно.
И даже слово "математика" может значить ну просто очень разные вещи.
А ООП и ФП - это просто ярлыки, которые тоже могут обозначать разное.
Так что, не еби людям мозг, пожалуйста.
Null is the billion dollar mistake (Tony Hoare)
Но, я готов отдать за полцены, ибо чёрная пятница.
Ты null от null pointer отличить не можешь?
Все говорят null, а ты продай null
Щас бы отчитываться перед ебанатом каким то.
Да мне похуй
Это же должно быть просто как ебать, но нихуя не понятно че куда, в писанине не понимаю нихуя.
https://github.com/Javojav/Floot_Bot
Нашел вот это а как юзать то?
Мне по группам по продаже кросс раскидывать объявления я не черт честна
Так ладно, нашел, что можно этот массив с прописами разпромисить с помошью Promise.all, но это хуйня наверное даже в этом случае?
У тебя есть массив каких-то объектов (параметров?) и ты его через map превращаешь в массив промисов?
В принципе, ничего плохого в этом нет, наоборот, это может быть хорошим решением - параллельные запросы будут быстрее.
Но, ещё лучше было бы заменить это одним запросом, если это запрос к одному серверу, и сервер твой - вернуть всю пачку в одном ответе.
>>67492
Есть массив айдишников, и нужно по каждому айдишнику получить ответы с сервера, и вот чтобы их все одним разом получить и записать в глобал стейт, я их сначала через map запрашиваю, и промисы в один масив пихаю. Но судя по вашим ответам, все сделал правильно. И в общем-то не мог понять только то, как эти промисы превратить в финальные объекты.
А по поводу одного запроса, а эта поддержка должна быть у сервера, или как-то по хитрому запрос нужно сделать просто?
То есть, есть два чекбокса, по умолчанию оба не выбраны. Выбрать можно только один. Но можно снять оба выделения.
Сервер должен это поддерживать (API), почему я и написал - если это твой сервер.
>>67506
Это не гибрид чекбокса и радио.
Это два чекбокса с определённой логикой.
Надо хранить состояние чекбоксов в data, привязать через v-model и менять через @change="onChange($event)".
Вот пример работы с чекбоксами по подобной схеме, делает он другое, естественно:
http://jsfiddle.net/eLzavj5f/
Привязывайся к событию клика и меняй значение checked на противоположное предидущему. Либо можешь еще одну кнопку добавить с значением none
Нет, конечно, но никогда не поздно перейти на божественный ангуляр.
ПЕРЕКАТ >>1867518 (OP)
ПЕРЕКАТ >>1867518 (OP)
ПЕРЕКАТ >>1867518 (OP)
ПЕРЕКАТ >>1867518 (OP)
ПЕРЕКАТ >>1867518 (OP)
ПЕРЕКАТ >>1867518 (OP)
ПЕРЕКАТ >>1867518 (OP)
ПЕРЕКАТ >>1867518 (OP)
ПЕРЕКАТ >>1867518 (OP)
И где там MVC то?
>При строке в 10000500 чаров у тебя коллизий в хештаблице будет жопой жуй.
А если они уникальные в строке, эти чары?
>Нужно использовать 'str'.includes
А он быстрее indexOf?
Всё-же оставил IndexOf:
https://github.com/username1565/BigInteger.js/blob/2b2057db04a32996247f2d1182511b6f2fe82395/BigInteger.js#L2561
А то было так:
https://github.com/peterolson/BigInteger.js/blob/2c922709216d64b499bee1eda3172c3bb1b8fca8/BigInteger.js#L1199-L1206
замеры скорости, показали, что на генерацию объекта - уходит дополнительное время.
>>65123
>Можешь попробовать сортануть и искать бинарно.
Хз как это.
>>65130
Эт понятно. Как видишь, для ускорения, я думал регекспом тестить,
но при большой строке - она просто не лезет в регексп:
>RegExp too big
пишет.
map быстрее indexOf что-ли?
Как валидируют там запросы на запись?
Пример:
var playersRef = firebase.database().ref("players/");
playersRef.set ({
John: {
number: 1,
age: 30
},
});
Вот этой операцией set я перетру все сохраненные данные.
Как ее запретить, а оставить только update???
Вы видите копию треда, сохраненную 22 апреля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.