Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: что я хочу получить, что я для этого делаю, что я вместо этого получаю. Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Поясните, вот бабель меняет в вуе и рякте все на старый код. А если мне это нахуй не нужно? Если мне насрать на старые браузеры? Можно отключить это все, оставив только нужное для всяких jsx-ов?
Как научить верстать ПРАВИЛЬНО ? В моих мелких проектах уровня говно-соцсети хватало кривой верстки Под кривой вёрсткой я понимаю не-оптимальный css и уродское именование классов
>>1863235 Используй готовые библиотеки типа material и ant, от тебя потребуется только правильно размещать уже готовые компоненты, т. е. это выбор между грид/флекс/флоат контейнерами и задача маржинов, паддингов.
>>1863235 Очевидно что никакого общепринятого стандарта нет (кроме W3 рекомендаций, который не советует даже использовать id как селектор) и всё исходит из твоих задач и предпочтений >не-оптимальный css Такого практически нет >уродское именование классов Ну придерживайся всяких БЭМов, хуле Из альтернатив только компонентная стилизация
>>1863168 (OP) Внезапно что-то туплю как в Ангуляре выбрать конкретный элемент в html (внутри компонента конечно же). Мне надо чтобы в случае проброса ошибки при исполнении Промиса кнопка "Submit data" становилась неактивной (disabled), в ванильном жс я бы просто намутил document.querySelector, а тут как?
>>1863264 Кабанчику главное чтобы по дизайну совпадало более-менее. А что там стили через жопу, это извините, у меня по js полно тасок, до этого кала руки через полгода дойдут.
>>1863305 Если в рамках формы, то создаешь FormGroup и привязываешь атрибут disabled к свойству FormGroup.invalid, для асинхронных операций, т. е. для промиса, используют асинхронные валидаторы (методы которые возвращают AsyncValidatorFn). Либо можешь создать Observable свойство у компонента и привязать disabled к нему при помощи async pipe.
Как в реакт роутер сделать Redirect при определенном условии или через функцию, вы ебанулись чтоле нахуй? Да, есть писечка useHistory, которая делает все охуенно, и которую можно вставить куда угодно. НО У МЕНЯ БЛЯДЬ КЛАСС я не могу использовать хук. Переписать в функциональный компонент, и сделать все на хуках? Сейчас вообще классы используют? Пиздец, почему так же просто не сделали и для классов?
Сегодня с утра какую-то горячку словил, температура 38,3, валялся часа 3 в овощном состоянии под одеялом, голова болела, и снилось мне, что я превратился в HTML-тег на веб-странице. И не знаю я, какой класс мне присвоен. Понять не могу. А место своё искать надо - браузер уже обрабатывать начинает. Я самый обычный DIV, как и все вокруг, вот только атрибутов своих не вижу. И не могу себе места найти на странице, ни отступов, ни маржина, ни падинга своего не знаю. И роюсь, роюсь непонятно где, по родительским тэгам, по комментариям, в стили разные лезу, а другие тэги на меня бычат и подгоняют, и говорят что у них z-индекс выше а я чмо какое-то нижнеслойное. Ну, потом вроде отпустило и щас где-то 37 температура. Такие дела.
>>1863320 Я застрял в оверфлоу скролл теге и не могу из него выйти! Я прописываю себе z-index, но из-за того что я в скролле в том диве, выше не становлюсь! Помогите!
>>1863168 (OP) Есть строчка, в консоли: >var s = ''; for(var i=0; i<65536; i++){s += String.fromCharCode(i);} console.log(s); Задача, получить массив уникальных, принтабельных чаров, которые можно скопировать, и которые - не квадратики, и не знаки вопроса, и не заменяющие символы, и не спецсимволы, и не символы перевода строк, или смены направления текста, то есть получить строку без всякой хуйни, чтобы буквы в этой строчке не пиздовали куда-то вверх, или хуй знает куда, а просто чтобы в ряд они шли, эти ебучие символы в строчке, и чтобы массив из этой строчки был, с уникальными чарами.
>>1863223 >>1863208 >>1863181 >>1863176 Блджад ну вы и дурачьки, тс намного упрощает и ускоряет писанину кода, крутой интеллисенс и автодокументация. Становитесь тс господинами, потом спасибо говорить будете
>>1863494 Нет конечно. Хотя если ты из тех, кто любит тратить бабло заказчика на написание костылей, запрещающих потом случайно делить дату на строку, то вкатывайся
>>1863571 На медиуме давно уже запруфали, что типизация полезна только для ИДЕ-дебилов. На количество багов она практически не влияет, тестами баги ловятся намного эффективнее
Только вот прикол: с одной стороны ИДЕ ускоряют рутиные операции с текстом при рефакторинге, с другой - для того, чтобы код был типизирован, надо тратить дохуя времени на описание этих типов и сигнатур функций. В итоге ТС-лалкам приходится решать ненужные задачи вместо того чтобы создавать value заказчику
Быстро решительно врываюсь в тред с вопросом по библиотекам:
Есть у меня данные для таблицы, я такой беру эти данные и отправляю в сорт-оф SQL-таблицу, которую потом кручу как хочу SQL-запросами (или чем-нибудь похожим). Собственно какие варианты у меня есть, кроме как писать свой велосипед? и сразу же сам иду в гугл
>>1863610 >В смысле некрасиво? Ты хочешь прервать цикл по условию, но не хочешь использовать if, сравнение, и break ? Хочу передать значение i в момент прерывания цикла, через костыль X это выглядит неправильно как по мне. Хочу делать правильно.
>>1863605 Я хорошо представляю плюсы и минусы — все-таки два года уже на нем пишу и обратно как-то не хочется. Других переубеждать не буду, нравится людям себе в ногу стрелять, ну да и бог с ними.
А картинка просто глупая и цифры там с потолка взяты. Можно нарисовать абсолютно такую же, но в другую сторону.
Понимаю, что вопрос больше про верстку, но не могу заставить текст фейдиться где-то после слов conversation. Хочу что бы сильно длинные названия автоматом фейдились. Кто-то может подсказать пожалуйста как это сделать?
>>1863168 (OP) Бэк общается с фронтом при помощи longPolling, то есть бэк периодически в ответ на запрос фронта присылает json Delta в котором обозначаются совершенные изменения. Как в Ангуляре в общем порядке "прослушать" этот json response Delta и совершить изменение в нужном компоненте, даже если в данный момент он на экране не присутствует и находится по другому url?
>>1863674 Никак. Делай сервис-синглтон который будет инжектиться в нужный компонент и совершать в нём изменения как только этот компонент появится на экране, т. е. в 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.
>>1863707 Да у меня так же. Но мне надо что бы он становился прозрачным в конце первой строки проглатывая остальной текст. А он тут весь текст втискивает
>>1863614 Это, по-твоему, "красивее"? Ну нахуй. Лучше уж просто let i; сделать перед циклом, и затем просто использовать i после выхода.
Но, твой первоначальный вариант - с отдельными i и x - самый правильный. Потому, что он совершенно лишён двусмысленности. А лишняя переменная - хуй с ней, ты же не на Си для микроконтроллера пишешь.
Не надо выёбываться в коде, про это ещё Дейкстра писал - хороший программист никогда не позволит себе писать "клёвый" код - он для этого слишком ответственный, как-то так.
>>1863714 >TS - это JS, который масштабируется. Ты там SPA масштабируешь чтоле? Советую масштабировать инфраструктуру, а для SPA достаточно структуру проекта нормальную заложить. И да, типизация для этого не нужна
>>1863690 Да, это и называется с потолка. Чувак взял несколько разных проектов и по каким-то своим субъективным критериям оценил. Почему у него Type Safety это +0.2, а Typing Overhead -3? Да хуй его знает вообще. Прост.
Интересно, что вместо TS он предлагает TDD, которое, видимо, бесплатно, вообще никакого оверхеда не несет и менторинга с обучением не требует. Ну ок.
>>1863769 Нужна не статическая типизация, а понятные интерфейсы, простые компоненты и вообще SOLID
Всё это делается на самом обычном JS
Тайпчекалка сама по себе не родит тебе хороший код
>>1863748 > вместо TS он предлагает TDD TDD так или иначе нужно, особенно если ты там что-то рефакторишь. Тесты никак не дешевле тайпчекинга, но профита от них куда больше в плане качества кода. Поэтому лучше писать больше тестов, чем тратить время на типизацию
>>1863785 >а понятные интерфейсы, простые компоненты и вообще SOLID
На js всего этого нет, манюнь. JS тебя не остановит когда ты передашь в метод/функцию объект неподходящего типа. JS за тебя не напишет необходимые для реализации методы интерфейса/абстрактного класса.
>>1863798 >На js всего этого нет Щито-с. Отсутствие в языке синтаксической конструкции interface { } не значит, что при проектировании ПО ты ими не сможешь пользоваться
Пиши ясный код, документируй в комментах и всё будет в ажуре без всяких тайпчекалок
>>1863798 > На js всего этого нет, манюнь. JS тебя не остановит когда ты передашь в метод/функцию объект неподходящего типа. JS за тебя не напишет необходимые для реализации методы интерфейса/абстрактного класса. Для этого есть юниты. Ты их все равно обязан писать, тс не защитит от говна в рантайме или кода набитого "any".
>>1863785 >TDD так или иначе нужно, особенно если ты там что-то рефакторишь. Вот это вообще неправда. Часто и сильно рефакторю большой проект на десятки тысяч LOC. Обычно после внесения изменений и исправления ошибок типов все работает сразу как надо. Вот прям с первого раза. На чистом JS обычно еще час сидишь и крутишь разные корнер-кейсы. А если у тебя тесты, то еще час их дописываешь и переписываешь. И даже тогда нет уверенности что ты ничего не сломал.
Алсо, за всю свою карьеру я не видел ни одного фронтового проекта который был бы вменяемо покрыт тестами, и уж тем более написан по TDD. Я не про либы сейчас, а про приложения, если что.
Мне теперь надо повесить на элемент <a> хендлер onclick который будет производить некие манипуляции с текстом до этого. Как его выбрать-то?.. querySelector тут не поможет а поставить какой-то айдишник и найти его уже после добавления на страницу не могу - таких элементов, как я привел, будет много на странице
>>1863877 >>1863881 Вы когда свои interface { } делаете тоже называете методы абы как, что потом хуй проссыш какой в них смысл? Ну бля тут уже медицина бессильна
> m_bPeremennaya Вот это кстате типизация головного мозга, и кстате тоже от MS эта практика
Че за фиксация на смысле хуисле, ты вобще программы писал сложнее тудушки, после сотни переменных уже реально поебать че там за смысл, лишь бы IDE подсказала че там у объекта есть
>>1863909 > фиксация на смысле хуисле Представь себе, программы должны читаться почти что как обычный текст. Бессмысленная белиберда это write-only неподдерживаемый код
> сотни переменных Если у тебя всё это в одной куче, то пизда проекту. Рефактори, рефактори, вилкой блядь
> лишь бы IDE подсказала че там у объекта есть Какие же вы IDE-дауны совсем дауны. Раньше пасаны хуячили в VIM+ctags и ниче, нормально было
Как оперативно менять сокрытие элемента при нажатии на кнопку? Поясню:
Есть линк при нажатии на который некий элемент на странице должен быть скрыт (display: none) если он в данный момент показывается и наоборот, если он сейчас скрыт то при нажатии на ту же кнопку он должен показаться (display: block). Конечно я могу в хендлере просто проверять if (e.currentTarget.style.display === 'none') но смотрится как-то неочень, есть какой-то более красивый способ решить эту проблему?
>>1863917 > JSON с лютейшей domain specific хуйней Заверни это в модель, задокументируй все поля в классе модели, держи код с бизнес-логикой поближе к данным
Тоже мне проблема
>>1863920 Если не раскиданы по структуре проекта, то скорее всего да
>>1863585 Могу просмотреть все поля с описанием + за 2 секунды перейти в доку, если надо будет. И не страдать в рантайме, гугля что же там очередной фреймворк возвращает в очередной версии. JS прекрасен для скриптов, в остальном делать меня грустить.
На жсе можно научиться грамотно погроммировать ? Я понимаю, что есть миллиард блогов с бестпрактисами, но это как зернышки собирать. У меня жс первый язык, тыкаю реакт, и чувствую недостаток опыта построения приложений в целом. Как строить архитектуру, с чего начинать, как все раскладывать по полочкам, вообще нихуя не понятно. Может есть книги годные какие то, или самому до всего додумываться ? Все крутые книги в основном по джаве или плюсам.
>>1863961 Тот же этап, та же проблема. Решил просто пилить своё приложение, и по мере его разрастания начинаю понимать получше, что и куда пихать. Тоже хотелось бы что-то почитать на эту тему архитектуры
>>1863785 >Тайпчекалка сама по себе не родит тебе хороший код Во первых, иногда и родит, именно типизация, сама по себе. Во вторых, она ставит мозги на место, и ты даже на динамико-дрисне начнёшь писать хороший код.
нихуя не пойму в webpack написано точка входа entry: './src/index.ts', когда переименовываю в index.ts нихуя не работают модули определяются как регулярные выражения, если делаю index.tsx и в вебпаке entry: './src/index.tsx', то все работает че за нахуй?
>>1863818 В итоге тебе эту документацию и комментарии нужно читать тем чаще, чем больше твой код. Или дай угадаю, их нужно не читать, а зубрить так чтобы от зубов отскакивало? Зачем всё это, я опишу всё типами, а ide за меня запомнит и не даст ошибиться.
>>1863823 ТС не заменяет юнит тесты, а дополняет их. И он не должен защищать в рантайме, это статическая типизация, она делает всё возможное чтобы а рантайме ошибок было меньше.
>>1864071 Нет, пиши хелпер функцию inRange(min, max, value, handler). С тедрс вида if (value >= min && value <= max) return handler(); return "Not in range";
>>1864082 Смогешь объяснить почему 50 < score <= 80 выдает true? Я кстати смогу. Но отсюда следует другой вопрос: Смогешь объяснить нахуя он выдает true?
>>1864089 Ты это... не задавай таких вот странных вопросов. Просто выучи жс. Тут все просто. Расслабься, расслабь попку и прими жс целиком в себя, тебе понравится
Есть компонент, который рендерится после того, как к нему придут данные.
Я прописал console.log в том месте, где получаются данные, этот лог выводится в консоли только один раз, либо при каждом нажатии на страницу, т.е. когда данные реально обновляются.
Но на самой рендеряшейся странице есть console.log, который выводит пропсы, которые эта страница получила. И сука, этот лог отображается сначала дважды при первой отрисовке, с текущими данными, а после переключения страницы выводит в консоль данные еще один раз, и потом снова дважды уже данные следующей новой страницы.
При всём при этом место, в котором данные получаются с сервера заходят всего один раз. Это видно и по срабатыванию лога, и по анализу трафика.
Почему консолька тригерится 2-3 раза у компонента, который рендерится, при том что сам рендер происходит только после получения этих самых данных, которые приходят ровно один раз?
>>1864173 Ай, не пизди. Во всяком случае, не на TS. Там можно очень гибко настраивать уровень, на котором компилятор будет ебать тебе мозг. Плюс - идеальная интеграция с JS - можно разные модули писать на JS или на TS, в зависимости от.
>>1864175 бесит что херочка увидела у меня в резюме Ангуляр 1 и пишет зовет на собес, где нужен Ангуляр 2, а я-то знаю что интервью на ангуляр 2 не пройду
>>1864140 Чувак, местные телепаты сейчас в отпуске.
Вот эту вот вещь - рендерится после того, как к нему придут данные - можно очень по разному себе представлять. Подозреваю, что ты делаешь асинхронную операцию там, где её делать нельзя. В реакте таких мест много, тут уже писали об этом, лол.
>>1863473 Это регексп для теста, а мне надо было для реплейса. Впрочем, уже запилил: https://jsfiddle.net/0z7uko4r/ 54621 чаров. Вроде копируются и вставляются норм, значит отпечатываются норм и в консоли, и на странице. Только как-то криво оно у меня чёт, некоторые буквы вверх едут, блядь. У вас нормально строчка отображается?
>>1864179 Да я понимаю, я бы показал код, но мне стыдно Я понимаю в каком примерно месте у меня там какой-то пиздец происходит, но я сначала перепишу всё на редухсе, потом поебусь, если не пройдет.
>>1864233 >перепишу всё на редухсе Ну, то-есть я правильно предположил, что ты прямо в компоненте выполняешь асинхронную операцию. Скажи, а это классовый или функциональный компонент?
>>1864279 В компоненте. Главное не лепить всё в один компонент, а разбивать на сервисы, а то ты сейчас насоздаешь ApiResponse'ов в компонентах и потом скажешь, что на дваче сказали так делать.
Ебал я в очко ваш тайпскрипт это что бы написать обычную функцию нужно столько нахуй нагородить, даже если она делает банальные вещи, это че такой вид извращений?
>>1864351 В основном именно у жсеров и пистонистов явно отслаивается кора головного мозга. Они до последнего верешат и не желают изучать какие-то новые технологии помимо тех что присутствуют в их уютном манястеке
есть объект const x = { y: 1, z: 1 }, если пишу eslint --fix, то он переносит каждое поле на новую строку. Какое правило дает писать объекты в одну строку, если макс длину строки не превышают?
>>1864387 > тянуть ооп помойку ООП это просто концепция проектирования ПО. Её можно применять хоть на ассемблере, конечно это будет сложнее ввиду отсутствия подходящих языковых конструкций, но тем не менее это будет ООП
>>1864318 Ничего, становиться человеком всегда сложно, сычушь. Моим первым языком был JS, потом начал осваивать C# и ощущения были примерно такими же как у тебя, но потом я понял, что иначе код писать просто нельзя. Типизация и ООП это элегантность, порядок, культура и воспитанность программирования. Через некоторое время сам увидишь как твой код становится более структурированным, понятным и удобным для расширения/модификации.
>>1864367 Как из этого следует "не желают изучать какие-то новые технологии помимо тех что присутствуют в их уютном манястеке"? Технологии во фронтенде постоянно меняются и по-твоему никто ничего нового не учит каждые несколько лет? Или взять например rust, там полно вкатывальщиков из питона и жс, должно быть от того, что не хотят учить новое, ага.
Сап, двач. Какие самые лучше технологии есть для spa? Ну например мне нужен фронтовый раутинг, обычный раутинг(для api).
Правильно ли я понимаю что по-хорошему это должны быть 2 разных приложения? Ну, например, альтернативой SPA'хе должен быть мобильный клиент или там электрон клиент.
А что вы думаете про Single-SPA? Хорошая штука, или какая-то гачимучи хуйня? Мне почему-то кажется, что немного гачимучи хуйня. Реклама говорит что можете сделать каждый отдельный модуль на своём фреймворке, но нахуя это надо?
TS = JS на стероидах. JS - не ООП, а "объектный" язык. С сильнейшей примесью FP. Вообще, JS очень похож на Scheme с сишным синтаксисом.
Также - ООП - очень простая и интуитивно понятная парадигма. В отличие от FP, например. И то, что в ES6 прикрутили "классы" - это, как раз, реверанс в сторону тех, кто не очень умеет в программирование, и хочет простые и понятные модели написания кода.
>>1864490 Классы хорошо подходят для описания интерфейсов. Как только на жс начали рисовать полноценный фронт, а не обработчики 1.5 кнопок, их добавление было очевидным и ожидаемым.
А почему низкий порог вхождения - это плохо? Хорошо это когда easy to learn, hard to master. Ну и JS примерно такой и есть, да.
Тут скорее джависты которые привыкли что у них ТИПЫ и каждый файл это класс, и они хотят такую же хуйню городить. И им для этого TS сделали и дали ES6 классы, чтоб не ныли.
TS это гейское говно для аутистов, никогда его не любил. Вместо того чтобы выучить язык, почитать YDKJS эти аутисты хотят чтобы наш язык был похож на их язык, потому что у них в сишках this другое значит. Как же бесят, блять.
>>1864500 Истинное Кеевское ООП - это late binding, dynamic typing и message passing. Так что js - это и есть ООП язык, а джава и плюсы - это извращенная ооп концепция.
>>1864503 Ну, типизация в TS весьма либеральная и не сильно обязывающая. Это, в конце-концов, всего-лишь надстройка над динамическим жс.
Просто программирование с типами - это другое программирование, и ему надо учиться, вкатиться на дурачка - не прокатывает. Но, после того, как научился, ты становишься гораздо более лучшим программистом. При этом без типов ты тоже начинаешь писать лучше.
>>1864498 >Классы хорошо подходят для описания интерфейсов. Вся суть жс-программиста в этой фразе, лол.
Для описания интерфейсов хорошо подходят внезапноинтефейсы, а не классы. Более того, классы вообще не нужны в JS/TS. Но, до понимания этого надо дорасти.
>>1864490 >С сильнейшей примесью FP В каком месте? Лямбды даже в жабе есть TS добавляет какую-никакаю иммутабельность, можно прикрутить паттерн матчинг.
>>1864503 Не, не правда. Как раз Кеевского смолтолка у JS нет. Всё не есть объект, примитивные типы это не объекты. Функции это функции а не message passing. Про наличие метаклассов как раз говорить ничего не буду. Если хочешь кеевский ООП, смотри руби. Но руби мёртв. А знаешь почему? Потому что говно это всё. Университетские учёные не пишут хороший продакшин код. И его красивая концепция не прижилась. Кей вообще хоть год жизни покодил на галере, или сразу после вуза в рисёрч пошёл?
Жс поощряет функциональные подходы к программированию. Посмотри на Реакт, например. Более того - жс расцвёл именно с приходом моды на функциональщину сколько-то лет назад.
>>1864521 Денчик, ты? Не реактивный и тормозной, в сорцах наверное ООП и императивщина. Это неважно, поинт в том что ts не принуждает к конкретной парадигме, к тому же, никто не запрещает комбинировать два подхода. А вот фреймворк принуждает, поэтому имеем заблуждения насчёт TS/JS
>>1864518 Примитивы - это синглтон объекты. При желании ты можешь создать собственный класс примитивов - инстансы которого будут в единственном экземпляре на каждую комбинацию аргументов при конструировнаии. Низкоуровневая реализация примитивов тебя вообще ебать не должна, но даже если хочешь доебаться до нее - под капотом жс движков примитивы это тоже объекты - строки так вообще целые деревья, особенно когда ты их часто слайсишь. Никаких просто функций нет. Вызов функции это отправка сообщения apply объекту. Как и все остальные сообщения get, set -читай спеку на предмет внутренних слотов. Именно отправкой сообщений дергаются слоты при приведении типов, все перехватывается пробшенными символами, или оборачиванием в прокси.
>>1864537 >Не реактивный и тормозной Вообще, это мои слова, лол. Это я тут топил за Vue и поносил Реакт. Что не отменят того, что в современном реакте сплошное ехал лямбда через лямбду.
Там строки очень гачимучно устроенно. Строка это не совсем примитив, там есть именно объект строка new String(), и там кастинг делается. Поэтому можно "kek".charAt(1), и тебе 'e' вернет.
А циферки вроде не объекты вообще.
> Вызов функции это отправка сообщения apply объекту.
Убедил. Но так-то этот подход под капотом, и пользоваться им никто не заставляет и никто на нём особо не пишет. А я как раз и топлю за свободу в использовании подхода.
Общий тренд у реакта такой? -> Всегда использовать Redux и делать всё на hooks? На всё другое не отвлекаться и забить хуй? Т.е. как без хуков и редакса все делать я как раз знаю, а наоборот еще нет
Это не к реакту, они сами не знают че делают, то у них классы, то HOC, то хуки, то редакс, то контекст, то иммутабельный редакс, то не иммутабельный редакс тулбокс
>>1864807 Так они для разных целей нужны, мягко говоря. Редакс, конечно, тоже можно использовать как глобальный кеш запросов, но он с этим не очень-то справляется.
>>1864592 Пацаны, я новенький во всем это жс-движе, как мне стать таким же крутым, который будет рубить по 300-400к в месяц и будет ссать на всех этих жава и с++ чуханов?
>>1864900 Расскажи мне, починилось? Когда я последний раз (летом) пробовал vue в vs code просто нихуяшечки не работало, никакого интеллисенса. Писал на классах с декораторами
>>1864902 На классах в Vue мне не нравится. Я это воспринимаю, как ненужное усложнение на пустом месте. Нет, я умею и в ооп и в тс, и зарабатываю на жизнь тем, что пишу на джаве
Они, кстати, долго пугали, что уберут классовые компоненты в vue-3, но, не убрали, в итоге, видимо, есть любители.
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.
>>1864922 Можно мобильное приложение написать и даже переиспольовать часть кода с вебом — react-native живой, популярный и довольно востребован на рынке. А vue-native дохлый совсем.
>>1864902 >Расскажи мне, починилось? Я по незнанию проебался, оказалось что автокомплит причем весьма посредственный работает только внутри тегов <template>, <script> и <style>. За остальное не скажу ибо еще не знаю всего функционала.
>>1864910 >idea/webstorm Мне очень понравился VSCode, после саблайма это как вставить хуй в вагину женщины после месяцев тыканья в вонючие бунгала мужиков.
>>1864933 >React <...> easy to learn, it has less magic, doesn't introduce too many foreign concepts or arbitrary constructs. Бля, вот это реально хуцпа уже.
Я, в принципе, понимаю, что они хотят сказать. И даже в чем-то согласен. Только формулировать это надо как-то иначе, всё-таки.
>>1865010 Чего ты так взъелся? Кто тебе в тапки нассал? Я ошибся и заметил это сразу после отправки поста, но исправлять не стал, ведь вопрос совсем не про это был.
В каком смысле > inputVal is not defined если она обьявлена в data. Как только начинаю ее выводить в алерт или изменять как все идет по пизде. Этой какой то приколь третей вьюшки?
>>1865001 Ты не очень удачно пошутил. VSCode написан на джаваскрипте (ts), он просто в принципе не может работать быстро.
Идея (webstorm) - это мощный и удобный инструмент, который делает кучу всего, и, практически, пишет код за тебя, лол. С учётом этого, кушает он не много и работает очень быстро. Если бы VSC попытался делать всё то же самое, он бы просто не запустился бы, лол. Купи SSD и всё будет летать.
>>1865065 >>1864567 >А можно 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.
Динамическое программирование (и как парадигма, и как концепция объектной модели) - слишком сложное для людей. Она требует дисциплины, опыта, и таланта проектирования. А от масс этого требовать нельзя. Поэтому динамичность всегда останется оккультным мастерством, доступным не многим.
>>1865064 Ты не поверишь, но маки бывают с мониторами. И даже со многими. Display Port - это изначально макинтошевский тип порта. И к ноутбуку монитор тоже подключается, как ни странно. И на них не просто работают, на них хуярят за всю мазуту - кодинг, музыка, видеомонтаж, 2D-3D графика.
>>1865084 Какой тогда в нем смысл, если не нужна мобильность? Вместо нормального процессора получаешь троттлящий обрубок. А слабый процессор - это медленная сборка проекта, тормозящий автокомплит и прочее.
>>1865096 В "нём" - это в чём? Ты под словом "мак" подразумеваешь "макбук", что-ли? Бывают ещё iMac и Mac Pro, вообще-то. Смысл - в Мас OS и топовом безглючном железе.
Если "макбук", то, всё равно, люди так делают, по разным причинам. И на некоторых галерах так делают - выдают людям макбуки для работы, реально. На джаве я бы на ноутбуке ничего серьёзного писать не стал, а на руби-хуюби-жс вполне себе пишут, хипстеры.
>>1863168 (OP) Имеет ли смысл из строки 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
>>1865119 Генерация объекта это O(n) т. е. тоже самое что и indexOf. Т. е. имеет смысл только если ты с одной длинной строкой работаешь много раз. Во-вторых, пользователь не скажет тебе спасибо за то что ты забиваешь его оперативку своим объектом, вместо того чтобы немного нагрузить его процессор вызовом indexOf
>>1864997 >Почему ты думаешь, что не должно? А почему должно? Реакт не вызывает ререндер просто потому что ты меняешь рандомные переменные. Только на изменении стейта или форс апдейде.
>>1865061 >VSCode написан на джаваскрипте (ts), он просто в принципе не может работать быстро. Ну давай расскажи какой редактор быстрее.
>Идея (webstorm) - это мощный и удобный инструмент, который делает кучу всего, и, практически, пишет код за тебя, лол. Ясно-понятно, IDE-даун не мог не пизднуть в сторону vscode. А теперь давай расскажи какая тормозная Idea.
>С учётом этого, кушает он не много и работает очень быстро. Чиво блядь, 500-1000 Мб это немного? Опять IDE-даун обосрался в штаны. Это еще у тебя не Ultimate версия, она может и 2Гб жрать спокойно.
>Если бы VSC попытался делать всё то же самое, он бы просто не запустился бы, лол. Что то же самое то? Сто процентов vscode ты не пользовался и не знаешь ее возможности.
>он бы просто не запустился бы Пруфы будут балабол?
Алсо, норм работаю на ноутах уже шесть лет или около того. Не понимаю зачем людям второй (третий, десятый) мониторы, если работаешь все равно с кодом шириной 80-100 символов. Ну и это же с дивана вставать придется!
>>1865149 Ты просто сравни как происходит резолв конфликтов гита в vscode и вебшторме. Уже только ради этого стоит на него пересесть.
> Чиво блядь, 500-1000 Мб это немного? А для тебя много? Я даже когда на 8гб сидел с двумя открытыми вебштормами и 30 вкладок хрома и то нормально было, но не иметь сейчас хотя бы 16гб оперативы это долбоебизм.
>Какие самые лучше технологии есть для spa? Реакт, Ангуляр и Вью самые популярные.
>Ну например мне нужен фронтовый раутинг Зависит от выбора фреймворка.
>обычный раутинг(для api). Сервер с апи это отдельное приложение, он не имеет отношения к твоему spa.
>Правильно ли я понимаю что по-хорошему это должны быть 2 разных приложения? Ну, например, альтернативой SPA'хе должен быть мобильный клиент или там электрон клиент. Ш Т О?
>>1865158 >Ты просто сравни как происходит резолв конфликтов гита в vscode и вебшторме. Уже только ради этого стоит на него пересесть. IDE-даун не смог в консольный git.
>А для тебя много? Я даже когда на 8гб сидел с двумя открытыми вебштормами и 30 вкладок хрома и то нормально было, но не иметь сейчас хотя бы 16гб оперативы это долбоебизм. А как же ко-ко-ко VSCode медленный и много жрет памяти? Ты переобулся. Сначала обосрался, а потом сделал вид, что так задумано.
>>1865061 Шутка действительно не особо удачная, но я чот сам хихикнул. И если серьезно, у идеи есть два фундаментальных недостатка 1) Мееееедленный запуск и тупняки при работе, бесит сука (да, это потому что я жадный и из принципа не покупаю SSD и 32 гб оперативы для запуска IDE ака текстового редактора с наворотами; алсо, см. Рис. 1 в жаватреде) 2) Жыр. Нет, серьезно, десяток панелей, функций до пизды, мануал размером с аллаха, даже браться страшно. Также это называется "сильно перегруженным интерфейсом". Ну и то что он платный, а денег на лицензию мне никтотне даст, но это детали.
Алсо, мне почему-то кажется, что vs code ты реально не пользовался, там вполне приличное автозаполнение. Алсо, примеры "писания кода за тебя" в студию.
>>1865145 Учитывая что я вижу появление компонента, я подозреваю, что lazy вызывает ререндер как только промиз резолвится. Если так подумать, если бы этого не происходило, то чистое lazy без всяких оберток требовало бы от разработчика самостоятельно триггерить ререндер как-нибудь.
Впрочем, я переделал с useState(init function), потому что повторная инициализация ломала код, ну и работать с флагом приятнее, чем с промизом.
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.
>>1865177 >IDE-даун не смог в консольный git. Резолвить конфликты через консольный гит - это какой-то особый вид мазохизма. >>1865182 >не покупаю SSD В 2020 без SSD жизни нет. Это касается не только IDE, но и вообще любых программ. А поскольку даже терабайтный SSD теперь стоит гроши, оправдания его отсутствию просто нет. >>1865182 >2) Жыр. Нет, серьезно, десяток панелей, функций до пизды, мануал размером с аллаха, даже браться страшно. Это тебе так кажется пока опыта мало. Со временем разберешься, и начнешь пользоваться всем доступным функционалом. С точки зрения интерфейса жидбрейнсы проделали просто феноменальную работу как в визуальном плане, так и в плане функционала и удобства.
А вскод мне не нравится по двум причинам. Во-первых, он медленнее. Не в смысле загрузки, а в смысле работы. Самый хорошие пример - скорость автокомплита кода. Во-вторых, нет ощущения целостности. IDE устанавливаешь, и все работает как надо из коробки, а вскод надо пердолить, и при этом не факт, что получится нормально.
>>1865273 - Визуализировать (рисовать руками на бумаге). - Пойти гулять, на ходу начинает работать мозг. - Просто переключиться на что-то другое (не мозгоёмкое), и дать поработать бессознательному.
Этот ваш React надо обоссать и сжечь уже за одно то, что там нельзя передать произвольный параметр в функцию обработки события.
Это же просто пиздец какой-то - надо делать это через лямбды, которые пересоздаются при каждом рендеринге. Как вообще можно делать такую хуйню, и что-то кукарекать про "лучший фреймворк для UI" и т.п.?
>>1865284 >без SSD жизни нет Сойдемся на том, что я старый консервативный пердун, которому и так нормально. Может еще годков через 5 куплю, когда окончательно скорость загрузки с HDD заебёт. Кроме того, у них же вроде ресурс ощутимо меньше, не? Мне мамка не простит, если я ее фотки из Турции проебу.
> со временем разберешься Так-то оно конечно так, но даже в VS Code я пользуюсь довольно небольшим набором фич. Собственно, переименование, поиск символов в коде и гит - что еще надо-то?
> автокомплит Ладно, тут ничего не скажу, автокомплит там и правда туповат.
> нет ощущения целостности Мне кажется тут вопрос не в целостности, а в "поставил, работает и не надо зачищать напильником"
Знаешь, анон, я чет задумался аж, не попробовать ли еще раз. Нет ссылочки на нормальный торрент с вебштормом?
> Сервер с апи это отдельное приложение, он не имеет отношения к твоему spa.
> Правильно ли я понимаю что по-хорошему это должны быть 2 разных приложения? Ну, например, альтернативой SPA'хе должен быть мобильный клиент или там электрон клиент.
Здесь про это же. Типа сервер с апи и фронт 2 разных приложения. И в теории клиентов может быть более одного.
>>1865328 > я старый консервативный пердун, которому и так нормально. Это не возрастное. Ты просто долбоёб.
>у них же вроде ресурс ощутимо меньше Это у современных hdd ресурс ощутимо меньше. Разумеется, SSD надо брать такой, который называется Samsung. И лучше Pro.
>>1865356 Я не реактопетушок, для начала. Я просто здравомыслящий наблюдатель. И на сайте реакта, в том месте где речь идёт об этой хуйне, никакие хуки-хуюки не упомянуты, а написано - "Такая вот хуйня, да. Если вас это не устраивает - оптимизируйте". Как "оптимизировать" - не написано.
>>1865331 Ты прав, дружище. Только переходить мне не надо, я изначально там. Просто, время от времени, выхожу посмотреть, что там у конкурентов. И каждый раз охуеваю - то с реакта, то с ангуляра, то с хомячков, которые плачут, но продолжают жрать эти кактусы.
Очередная порция охуительных историй на тему "почему писать на ассемблере лучше, чем на си" в адаптации для 2019 года. Всё это щедро сдобрено пафосом и мессианством. Пролистать не вредно - для общего развития. Но, делать так не надо.
Вообще, если видите книжку итальянского автора (их дохуя сейчас) - смело проходите мимо.
>>1865357 >Гайзы, чё думаете про frameworkless front-end development?
Ну вот почему у того же пынькиного дерипаски отдельный заводик плавит люминь, а отдельные гномики в шахтах алюминиевую руду добывают? Почему бы литейщикам бы в шахте киркой не помахать в начале дня а потом накопанную тачку самим не пообогащать а потом бы уже не поотливать?
Ну сначала рассказывает про frameworkless и как это лучше чем секс, потом хуесосит ангуляр и реакт, жикуери хуесосит, вью даже не упоминает. Говорит что у него javascript fatigue потому что он заебался учить фреймворки.
Делает рендеринг и маня mvc на чистом жаваскрипте, ебёт дом дерево как послендюю шлюху.
Ну там в принципе просто инструкции по тому как менеджить стейт, делать маня-компоненты и вообще рендер, как делать раутинги. Так же говорит что в html есть классы, почему бы им не представляться классами в ООП коде, типа законом не запрещено.
Говорит что два самых страшных антипаттерна это бежать за хайпом и захламлять код зависимостями "на будущее".
>>1865379 >захламлять код зависимостями "на будущее". Мне даже "на настоящее" не хочется захламлять. Добавляешь все, что нужно, и уже бандл мегабайты весит, угх.
>>1865314 И в чем тут виноват Реакт? В том, что в JS функции уникальные? Как ты вообще представляешь себе желаемый API? Используй useCallback, епт, если очень надо.
>>1865380 Ну не знаю, вот у меня вообще другой страх. Знаешь что меня бесит больше всего? Мобильные НАХУЙ телефоны.
Ну никак к ним не подойти. Как не старайся резиново тянуть свой ебучий интерфейс, как не старайся подстраивать под эту срань, всё равно же придётся отдельно делать веб приложение. Ну чаще всего. А ещё хуже 2, потому что кроссплатформенная мобильная разработка это говно ебучее.
Что ж мы столько труда убиваем в эту хуйню, когда we need an app.
Давайте уже либо делаем PWA и ебём мобилу в жопу, либо просто этим даунам ссылку редирект на скачку въебём.
>>1865385 Про модалку - это не я. Я просто за Vue топил, хотя и агрессивно.
>Как ты вообще представляешь себе В программировании практически любая проблема решается добавлением очередного слоя косвенности (indirection).
Реакт - это внутренний DSL, чистый код. Это очень хуёво масштабируется. Отсюда все эти костыли и изъёбы, ехал паттерн через антипаттерн, и новые бест-практисиз каждый квартал.
В Vue есть шаблоны (внешний DSL), в которых можно писать то, что нужно автору фреймворка, а не автору языка программирования. И в Vue нет проблемы передать параметр в функцию-обработчик события (и многих других подобных проблем тоже нет).
Также, для хитрых случаев (и для любителей пердолинга) можно писать низкоуровневые рендер-функции, в том числе и с использованием jsx.
Вообще, Vue - всё ещё очень недооцененная вещь. Видимо, просто потому, что люди немного устали от зоопарка фреймворков, и заранее негативно настроены. К тому же - "это китайщина", "фейсбук - авторитет" и т.п.
>>1865398 В Реакте нет никакой проблемы в том, чтобы передать через пропсы функцию с привязанным аргументом: <Component onClick={() => doStuff(foo)} />. У нее будет нестабильная ссылка, но это же логично — ведь foo тоже переменная, а onClick от нее зависит. Новое значение foo — новая функция.
Ты в ответе много умных слов написал, но я так и не понял что тебя смутило в этом решении и что конкретно ты предлагаешь поменять в API.
>>1865411 В твоём примере лямбда будет создаваться каждый раз при рендеринге. Это я и обозначил как недостаток. Про хуки я уже понял (не пробовал пока конкретно это), но, хуки - это костыли и магия. Именно то, чего в Реакте (якобы) нет, и поэтому он и хорош.
Я ничего не предлагаю поменять в API реакта. Речь была о том, что это фундаментальный недостаток (продолжение достоинств, если угодно).
Кстати, о магии - я предпочту магию Vue, потому, что она даёт охуенный профит, а реактовская - даёт лишнюю еблю мозга и бойлерплейт.
>>1865419 Я не пробовал именно этот хук. Но, да, в реакте у меня реального опыта нет. И я прекрасно понимаю, что хороший фреймворк - это тот, к которому ты привык.
Так что, я согласен, что нужно убрать слово "костыли", ибо тогда этим словом можно назвать и весь реакт, лол.
Но, хуки - это магия, с этим ты не будешь спорить?
>>1865429 >Но, хуки - это магия, с этим ты не будешь спорить?
Я не знаю что ты понимаешь под «магией», не очень люблю этот термин. Хуки — удобная и умеренно сложная абстракция. Я понимаю как они работают, поэтому для меня они магией не является.
>>1865357 > frameworkless front-end development Не взлетит. Лет 6-7 назад, ещё во времена первого ангуляра, занимался разработкой гуёв для STB (приставки к телеку для кабельного ТВ). На них как правило очень слабое железо, на которое еле-еле влазил заоптимизированный хромиум, соответственно требования к JS коду были очень высокие в плане хавла ресурсов. Сначала пердолили читый DOM c CSS, но в итоге всё-равно начали ваять велосипедный фреймворк на основе бэкбона
>>1865434 Я же не говорил, что магия это плохо. Скорее, я имел в виду, что они долго копротивлялись за чистоту, но, потом сдались - сначала контекст (говно, на самом деле), потом - хуки.
С появлением хуков реакт стал вполне пригоден для работы, на мой взгляд. До этого, конечно, хуйня была полная. А сейчас некоторый лишний бойлерплейт - это разумная плата за чистый js, и все преимущества, которые это даёт.
Да причём здесь взлёт или не взлёт. Речь не о том чтобы от фреймворков избавиться, а чтоб не иметь привычку писать npx create-react-app spashka-ot-pashki на каждый чих
>>1865439 >они долго копротивлялись за чистоту, но, потом сдались Что ты под этим подразумеваешь? Приложение не может нормально работать без сайд-эффектов и Реакте всегда были инструменты для работы с ними.
>>1865182 >Алсо, примеры "писания кода за тебя" в студию. Да ты реально от сохи, чувак. Ты IDE-то нормальные видел хоть раз, а не всю эту VS-хуиту мелкомягкую?
>>1865448 1. Слоупочные темпы развития. Кажется, что у меня внуки появятся раньше, чем concurrent mode выйдет. 2. Нет единственно правильного стора, подхода к стилям, архитектуры и т.д. Это и преимущество и проблема. 3. Использовать хуки без линтера малореально. Что-нибудь да упустишь. Его, конечно, все и так используют, но требование раздражает.
Нахуя пишут не использовать интерфейсы? Типа в них можно добавить всякую хуйню извне? В гайде от редакса есть такая реализация interface lol{} interface kek{} export type xyiType = lol | kek Насколько валидна такая запись и как часть используется? Стоит ли упарываться подобным образом? Или тупа все хуярить типами?
>>1865534 Сильное заявление. Ты, наверное, написал свои библиотеки? Если да, то, чем они лучше реакта/vue? Или просто хуяришь спагетти код, который сам же через неделю хуй поймёшь что делает?
>>1865672 Ты имеешь в виду Vuex? Там пролёт с типизацией, к сожалению. Но, они совсем скоро выкатят новый, более лучший.
Я в подобных случаях (не только vuex, много где) делаю функцию приведения типа:
Допустим, у тебя есть interface Zalupa {id: number} Тогда (можно вынести в отд. модуль): const asZalupa = (val: any) => val as Zalupa; Потом используем: asZalupa(action.payload).id ...
Это дёшево и вкусно.
>>1865677 С ангуляром он заебётся сильно быстрее, чем с типизацией в Vue.
>>1865542 Суть в том, что любая идея вида "ебучий виджет и отправка формы" рано или поздно перерастает в "заебешься это поддерживать без фреймворка". Да и даже одну форму быстрее буде сделать с фреймворком чем без, потому что ты используешь уже готовый код, а не свой велосипед написанный на чистом html css + js
>>1865695 >С ангуляром он заебётся сильно быстрее, чем с типизацией в Vue.
В треде видно только ёблю с Vue и его братом-дебилом React'om. От некоторых вопросов даже смешно становится, ведь потом эти люди будут говорить что Ангуляр слишком сложный и не понятный.
>>1865740 >кроме Питухона Ну, то-есть, тебя уже проконсультировали грамотные люди. Но, ты решил их не слушать.
ЖС - он (в общем и целом) - немножко для другого. Но, тут всё зависит от того, что тебе нужно. От того, что именно ты понимаешь под терминами "рабочие процессы" и "автоматизация".
>>1865866 Ага, только там по пять минут на каждый чих и в сумме на бесполезную хуйню(ведь в рантайме нужно проверки типов дублировать ручками) уходит гора времени.
>>1865929 Если сервер свой, то любое говно не прилетит. При обострениях паранойи можно типизировать все как optional или прогонять через ajv (типы прекрасно генерятся на основе схем).
есть код js в плагине написан на ванилле для оптимизации загрузки страниц. он дергает мне шрифты сам по себе отдельно. я хочу убрать этот код и самостоятельно их грузить через <link preload/> открываю код, а там код который прогнали через бабел и который нахуй вообще не читаемый просто. как поступать в таких случаях?
А вы замечали, что когда пишете проект, то большая часть времени уходит на ковыряние в html/css , а не в любимом фреймворке. А 80% когда js это не уникальный функционал, а шаблонные практики при работе с данной библиотекой
Vue - простой, интуитивно-понятный фреймворк (в отличие от реакта). Официальная документация - очень хороша. И есть на русском. Сделай туду для разминки. После этого - гугол в помощь.
>>1865913 Типы когда описываешь уже существующее, интерфейсы когда описываешь новое. >>1865929 >>1865917 Ну так в том и дело, что проверяешь только там где летит от стороннего компонента. В языках со строгой типизацией тоже проверять нужно, если не хочешь чтобы программа от эксепшена упала.
>>1866128 поддвачну этого в том плане, что реакт "не особо" интуитивно-понятный
Я когда разбирался с хуками, например, уже был знаком с реактом и они в целом легко зашли.
Но вот как объяснить нубу, которые только-только учебник кантора прошел и 2 макета сверстал, что такое этот useEffect, что ознает эффект и почему вообще, если ты хочешь на размонтирование компонента что-то повесить, то тебе в этом хуке нужно функцию вернуть - хуй знает. в этом плане классовые компоненты были куда более простыми в понимании
>>1865913 В смысле "типы"? Ты имел в виду "классы"?
Это не так просто объяснить тому, кто задаёт такие вопросы. Если коротко и применительно к фронтенду - для данных (json, массивы, объекты) - интерфейсы, для сервисов (те объекты, которые что-то делают с данными) - классы.
Класс - это и интерфейс и реализация. Интерфейс - только интерфейс. У данных в JS уже есть реализация - это объекты {foo: 'BAR', ...} и массивы, и делать классы (какую-то дополнительную реализацию) для данных - это лишняя ебля мозга.
Также, есть такой термин, как "программирование на интерфейсах", это когда ты для всего пишешь интерфейсы, в том числе, для классов-сервисов (они реализуют эти интерфейсы). И при использовании такого кода работают с интерфейсами, а классы под них просто где-то создаются, на фабриках и т.п. Это лишняя работа, но, позволяет менять реализацию не переписывая программу. Так делают в достаточно больших проектах.
Нужно создать node.js приложение с sqlite и sequelize. Как отдельно подключить sqlite и sequelize понятно, иструкций много в интернетах. Как подлючить вместе?
>АРЯЯЯ статическая типизация нинужна! Ограничивает свободу только! >А зачем тогда в жс введено объявление const? >Ну как ты нипанимаешь! Это жи другое! const это модно и круто, все в моем коворкинге подтвердят
>>1866204 >>1866209 В доке sequelize непонятно написано. Надо подлючение создавать с помощью адаптера к базе или с помощью sequelize? И нужен ли адаптер если есть sequelize? Про sqlite я лоханулся, она не поддерживается в sequelize, буду использовать postgres.
>>1866242 Использование const ничего не стоит. Для ts нужно тащить компилятор, превращать код в нечитаемое жабоговно, всирать на это время. И все это ради чуток улучшеного линтера и автокомплита, такая-то победа!
>>1866242 >АРЯЯЯ статическая типизация нинужна! Ограничивает свободу только! >А зачем тогда в жс введено объявление const? Какая связь между типизацией и неизменяемостью const? В фпшных языках вообще нет переменных и все неизменяемое. Они бывают и статическими и строгими. При чем тут const?
>>1866246 Так это метод объекта, то что он не изменяет массив - не делает его ЧистоФП, может после беглого взляда на хаскель и reason, у меня сложилось неверное представление о FP
>>1866255 >Так это метод объекта, то что он не изменяет массив - не делает его ЧистоФП, может после беглого взляда на хаскель и reason, у меня сложилось неверное представление о FP Это не метод объекта, это функция высшего порядка. ФВП тоже чисто фпшная фича. Функция map появилась десятки лет назад, когда никакого ООП не было, и определение объектов было совсем другим. У тебя типичное оопэшное искажение мышления. Ты даже не понимаешь что откуда растет. У тебя все наоборот.
>>1866247 Я тупанул, sqlite поддерживает, не поддерживает монго. Но мне это никак не помогает. Не пойму как подлючаться к бд, с помощью адаптера или с помощью sequelize.
>>1866260 >Функция map появилась десятки лет назад, когда никакого ООП не было map это вообще из теории множеств, появилось ещё задолго до программирования как такового
>>1866274 У JS основа фпшная, от языка scheme. Только синтаксис сишный. Все остальное накручено уже потом.
>>1866277 Вот именно. Ну а в программирование попала через фпшные языки. Теперь же терминологию никто не знает, и историю программирования и языков тоже, начинают искажать. Скоро фпшные фичи, которые в некоторых языках занимают уже больше 50% всех фич - будут называть оопэшными фичами.
>>1865921 Когда у тебя клиентский код будет падать и вести себя хуй пойми как, потому что у клиента рантайм модифицирован каким-нибудь васянским расширением, я посмотрю, как ты попляшешь. А причины не узнаешь, потому что никаких проверок, и вразумительного логгировании соответсвенно что где когда и почему у тебя ломается - нет.
>>1866036 Откуда ты можешь знать, кто именно скрывается за аноном и в каких проектах они работали? Ты отдаешь себе отчет какую дичь ты несешь, когда делаешь такие утверждения?
>>1866294 >Теперь же терминологию никто не знает, и историю программирования и языков тоже, начинают искажать Раз пошла такая пьянка, то ООП это не про языки, а про методолгию программирования. Никто не запрещает её применять как в функциональных, так и в структурных языках да хоть в ассемблере, как я выше уже писал. Тащемта Страуструп до C++ делал т.н. "C с классами", причем код на этом языке транспилировался в обычную сишку, которая после компилилась сишным компилером
Просто ООП хорошо зашло для UI, поэтому стало мейнстримом и под это начали пилить языки
>>1866341 >я посмотрю, как ты попляшешь Я даже пальцем не пошевелю. Сейчас бы из-за одного васяна который решил что шатать рантайм это хорошая идея что-то там делать, когда у десятков тысяч пользователей все ок работает. У меня и без него полный бэклог. Может еще что-то надо с теми кто захотел в консоли throw new Error() написать?
>А причины не узнаешь, потому что никаких проверок, и вразумительного логгировании соответсвенно что где когда и почему у тебя ломается - нет. Вы Сентри не пользуетесь что ли? Ну это зря, конечно. Хорошая тема, рекомендую.
>>1866388 Какую такую свободу оно ограничивает? Надо перезаписать — юзаешь let, не надо — const. Всего лишь защита от глупых выстрелов себе в ногу Алсо почитай про принцип наименьших привилегий
Анончик, нужна твоя помощь! Написал свой первый CRUD-API, теперь захотелось сделать к нему фронт. А ещё есть конкретная задача: визуализировать связи реляционной БД (ну или визуализировать графы). Хочется сделать это красиво и функционально.
С JS никогда не работал, поэтому решил спросить у тебя: какой фреймворк лучше подойдёт для первого раза? Может быть что-то определённое есть для моей задачи с визуализированием БД?
>>1866349 >Раз пошла такая пьянка, то ООП это не про языки, а про методолгию программирования. >C с классами Противоречие. Если ООП не про языки, то при чем тут классы? ООП не про классы. ООП в современном понимании и ООП языки - это рак.
>>1866430 Пара максимум две пары часов. Скажем если выделять на собес в одной конторе 1 рабочий день, то половина это дня на непосредственно собес, вторая - на их задачку
>>1866436 А какие критери были при отборе? Я посылаю резюме своё на hh, есть гитхаб где по 10-20 коммитов в день последние полтора месяца, react, redux все дела, несколько репозиториев. Дрочу кодинг нонстопом по 9-12 часов в день. Ни одного ответа, либо отказы, но кажется все они были с вопросом о том, есть ли у них удаленка, либо молчаливые просмотры резюме. Всё. При том до этого был опыт работы в it, работал дизайнером, опыт работы в команде есть, гитхабом и пул реквестами пользовался, т.е. не совсем с завода перекатываюсь. Ни одного ответа или тестового не давали за последние 2 недели. чяднт? Ждать дольше или объективно это низкий уровень? Должно быть портфолио с рабочими сайтами которые можно потыкать?
>>1866454 >react, redux Так спашки на публичных апишках и должны быть, лол Если ты там реально коммитишь и пришь, можшеь и на пендоские вакансии присмотреться
>>1866446 Я собесил всех у кого было хоть сколько-нибудь адекватное резюме. Ну то есть вкатунов с курсов и бывших слесарей на помойку На двадцатом мне дико надоело, плюс руководство начало найм в связи с короной тормозить и они тоже начали висеть неделями. Спрашивал основы, но набралось лишь пару крепких джунов, пиздец.
>>1866459 >хоть сколько-нибудь адекватное резюме Можешь пожалуйста описать, что это значит? Вот пока я так понял обязательных 2 пункта, это публичный кликабельный сайт, гитхаб, и что еще? Пишу я вроде бы адекватно, и инфу о себе тоже расписываю вменяемо, не слишком сухо, но и без готов дать в жопу, только бы вкатиться
>>1866464 Пиздец братишка успокойся там И какой ты там ожидаешь услышать ответ от снг зоопаркной макаки? Если горят глаза и 10 коммитов в день - открывай свои проекты с третьигруппными апи из привата и без задней мысли стучись кому угодно в резюмовые сайты и чатики На 5$/час точно должен найти место, даже если проекты не шибко презентабельные
>>1866464 > Можешь пожалуйста описать, что это значит? Вот пока я так понял обязательных 2 пункта, это публичный кликабельный сайт, гитхаб, и что еще? Пишу я вроде бы адекватно, и инфу о себе тоже расписываю вменяемо, не слишком сухо, но и без готов дать в жопу, только бы вкатиться Гитхаб не с тудушками уже хорошо, сайтов почти ни у кого не было. Вообще ждали разраба с опытом работы, с хорошим знанием js(ну и реакт сильно желателен), таких было 1.5 штуки. Остальные без опыта/смежные области типа верстки или пыха. Если ждун расписывал свой проект, как что использовал, обычно приглашали на собес. Многие тз вперед просили(и не делали) >>1866466 Так в отклике кроме этих курсов ничего нет просто. Пару пособесили они прям скажем не оче.
>>1866393 >Всего лишь защита от глупых выстрелов себе в ногу ГРАМОТНЫЙ РАЗРАБОТЧИК ВООБЩЕ НЕ СТРЕЛЯЕТ СЕБЕ В НОГУ, ЧЕГО НЕ ЯСНОГО? Все эти "защиты" для лошков, не умеющих писать код
>>1866483 >>1866486 Понял вас, спасибо, ну в общем я и думал в дальнейшем сделать что-то более менее законченное, и приличное, а не по сто раз в день переписанное, и уже это выкладывать в обозримый доступ и показывать че могу, чтоб все охуели.
>>1866534 Ключевое то, что он термин ООП и ввёл. Поэтому to me тут и есть ортогональное определение. А все остальное изковерканное. А не наоборот. Это к кукаретикам любящим кричать про настоящее программирование, настоящее ооп, и вообще вес настоящее.
>>1866550 > Странно, что за ClojureScript + React ещё не агитируют Действительно, а ведь я уже давно собирался всем тайпскриптодаунам засоветовать кложуру
(сам ессно в рот ебал все типизации и прочее дрочево, ведь надо доставлять стоимость вместо кода)
>>1863168 (OP) Есть таблица в Ангуляре (ее представляет FormGroup конечно), в ней много строк, как сделать "поиск" нужных строк? В ванильном жс я бы слушал событие onkeuyp для поля поиска над таблицей и просто ставил бы строкам, которые не удовлетворяют паттерну display = 'none' а тут как подобное мутить?
>>1866573 Ангуляр - это MVC, а не мешанина из говна, как в ванильном. Т.е. таблица у тебя отображается по модели.
Ставь флаги в модели, в шаблоне их обрабатывай. Только не display none, это дичь какая-то. У тебя просто строки не должны рисоваться вообще, *ngIf используй или как там оно у вас делается.
Вообще, охуенный вопрос, ты только сегодня Ангуляр для себя открыл?
>>1866590 А почему таблицу у тебя представляет "представляет FormGroup конечно"? Там каждая строка редактируемая? Или это просто таблица для просмотра?
>>1866584 >>1866573 Короче, посмотрел я этот ваш Angular FormGroup. То, что ты хочешь, там, похоже, просто не предусмотрено. Почему я и выбрал Vue, лол.
>>1866595 В каждой строке содержатся данные которые потом надо будет передать на бэк. Примерно так: Имя (приходит с бэка), чекбокс да/нет и поле input с числом score
>>1866601 Он работает, да. Но, я имел в виду, что там бы не помешало свойство у FormControl типа типа visible или что-то вроде. Но, я думаю, что они не предполагали, что с формами такое будут делать.
>>1866573 Я бы вообще предложил тебе не использовать в данном случае FormGroup/FormControl, оно немножко не для этого, мне кажется. Просто таблица с инпутами, и всё. Но, я не ангулярщик.
Блядь, почему когда я дошел до изучения редакса, уровень сложности улетел просто ебанистически вертикально вверх, что за пиздец? Ну да, я понимаю что кодинг дело не просто, но блядь, это же ебануться просто. Какая-то темная магия началась, если с экшнами и редюсерами еще куда ни шло, то потом начинается пиздец с миддлверами, thunk-ом и прочим пиздецом, который я даже на абстрактном уровне понять не могу блядь еб вашу мать. Надеюсь эту ебалу можно будет хуярить просто шаблонами, после чего закрывать стор и вообще блядь не вспоминать о том, что ты туда прописал. Пиздец.
>>1866642 >>1866636 Пиздос, нашел похожий проект на гитхабе, нашел как там реализуется эта фича через react-router-redux, но в репозитории написано, что это говно уже устарело и нужно было ебаться с connected-react-router при том что я ИЗНАЧАЛЬНО нихуя не понимал того, что вообще нужно делать, и пиздец, это говно заработало и теперь я наконец могу начать ебаться с редухом как следует, ебанный ты в рот, у меня аж голова кружится нахуй. Мне кажется, что всё это заработало просто по случайности
>>1866653 Ну выдрочив реакт будут перспективы еще и в этом направлении, а в случае с Vue немного будет уже перспектива. Да и тем более, я УЖЕ разобрался с проблемами, которые у меня возникли
>>1866686 Да вообще все программирование это 10 строк кода, нахуй вообще программисты нужны, да? Ну понятно блядь, что в чем угодно количество_строк строчек кода, если бы все было так просто, хули бы тогда учить было вообще, недельку посидел, и пошел 300к пилить
>>1866707 Да не горю, но давай честно, вокруг этих 14 строк есть еще очень дохуя всего я не понимаю о как 14 идет реч, react+redux+thunk+router и разного рода мидлвары, чтобы объеденить это всё вместе это больше 14 строк, и проблема моя была именно в том, чтобы понять, как всю эту ебалу вместе соеденить, что коннектит одно с другим, пятое с десятым, тридцатое с пятидесятым, и вот после всего этого тебе уже можно начать разбираться в том, как всю приложуху в итоге запилить
>>1866718 У меня в проекте редакс и роутер вместе работают, а линк, тот что в браузере, по мере выполнения разных действий обновляться должен, ну наверное это тоже как то просто делается, но пока я не разобрался, это не так уж и просто
>>1866636 А нахуя ты учишь это говно? Учи сразу нормальный стейт-менеджер типа effector, на редаксе и так каждая собака пишет и уже все постепенно с него слезают
А санки - это мидлваря на 10 строк, которая просто typeof action проверяет и если он function, то выполняет, прокидывая внутрь диспатч, а если нет - то диспатчит как всегда
>>1866723 >А нахуя ты учишь это говно? Учи сразу нормальный стейт-менеджер Что в вакансиях требуют, то и учу, уверен потом что-нибудь получше начну учить
>>1866724 Нечего там учить, прочитал доку про экшен и редюсер и про санк и вперёд, никто не будет на собесах дрочить коннект роутера к этому говну или ещё что-то, придёш на готовое и будешь диспатчить экшены.
>>1866573 У FormGroup есть метод addControl/removeControl, обрабатываешь ввод в поле поиска, проходишься по контролам и соответственно вызываешь у них addControl/removeControl в зависимости от критериев поиска.
>>1866809 Если бы ты соображал, то знал бы, что под ооп и фп есть математическая модель. Эти модели и их термины не меняются и меняться не могут. У вас же кодерков из Computer Science образования только MDN и learn.javascript.
>>1866636 Скорее всего ты обосрался где-то в изначальном продумывании дата флоу Я как-то сел на рн поделку с парой скринов остановившихся на мокапной логике, пришлось перекручивать полпроекта. Ещё и стоящая коннект либа задепрекейтилась, и нормального стоража не было, ставил какую-то дрисню https://github.com/rt2zz/redux-persist (по-моему с 10к звёздочками, ласт упдейтом год+ назад и полтысячами ищью-реквестов отражает всю суть рн) Какой-то подобный геморрой тоже был >>1866647 Пердолил 3 недели и соскочил хорошо хоть плотили раз в неделю и вроде не баттхёртили, с тех пор к реакту не прикасался
>>1866818 Чувак, математическу модель можно сделать для чего угодно. И само это слово может значить что угодно. И даже слово "математика" может значить ну просто очень разные вещи.
А ООП и ФП - это просто ярлыки, которые тоже могут обозначать разное. Так что, не еби людям мозг, пожалуйста.
Салют бандиты, нужен бот для тг чтобы с периодичностью в час рассылать по всем своим группам добавленным текст с рекламой Это же должно быть просто как ебать, но нихуя не понятно че куда, в писанине не понимаю нихуя. https://github.com/Javojav/Floot_Bot Нашел вот это а как юзать то?
Можно ли как то через map вернуть сразу несколько запросов с помощью axios, или это хуита и так делать не нужно? Мне прилетает массив из промиссов, и я не знаю как блядь получить массив из конечных значений
>>1867488 У тебя есть массив каких-то объектов (параметров?) и ты его через map превращаешь в массив промисов?
В принципе, ничего плохого в этом нет, наоборот, это может быть хорошим решением - параллельные запросы будут быстрее. Но, ещё лучше было бы заменить это одним запросом, если это запрос к одному серверу, и сервер твой - вернуть всю пачку в одном ответе.
>>1867494 >>1867492 Есть массив айдишников, и нужно по каждому айдишнику получить ответы с сервера, и вот чтобы их все одним разом получить и записать в глобал стейт, я их сначала через map запрашиваю, и промисы в один масив пихаю. Но судя по вашим ответам, все сделал правильно. И в общем-то не мог понять только то, как эти промисы превратить в финальные объекты.
А по поводу одного запроса, а эта поддержка должна быть у сервера, или как-то по хитрому запрос нужно сделать просто?
>>1867497 Сервер должен это поддерживать (API), почему я и написал - если это твой сервер.
>>1867506 Это не гибрид чекбокса и радио. Это два чекбокса с определённой логикой. Надо хранить состояние чекбоксов в data, привязать через v-model и менять через @change="onChange($event)".
>>1865123 >Можешь попробовать сортануть и искать бинарно. Хз как это. >>1865130 Эт понятно. Как видишь, для ускорения, я думал регекспом тестить, но при большой строке - она просто не лезет в регексп: >RegExp too big пишет.