Это копия, сохраненная 12 марта 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в Ад.
Для программирования на HTML https://jsfiddle.net/
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: что я хочу получить, что я для этого делаю, что я вместо этого получаю. Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Руководство для вката:
https://github.com/JS-Liberty/guide
https://pastebin.com/9yRADC0s
То о чем и говорил. В очередной раз манямир противников редакса не выдержит испытания реальными большими приложениями
Правильно Тикток
Чтобы изначально была выделена одна кнопка, а когда нажимаешь на другую, то выделена была бы уже новая, а у старой пропало бы выделение.
Обычным жсом я бы это сделал просто по клику ремувая классы у всех кнопок и добавляя кликнутой класс с выделением...
useState, onClick
Я бы родительский контейнер сделал, который бы за это отвечал и обрабатывал условия локальным стором, передавая в пропсы аргумент, а в кнопках условный рендер
Пойми принцип и практикуйся верстая говно всякое блоками div. Все равно потом на работе сеошники будут говорить, где какой тег поменять
Если это последний лоадер в пайплайне - ты в бандле и увидишь его результат. Для ксс - выключи extract css plugin
Можешь sapper попробовать
Vue
>Но доля правды в этом есть конечно.
Сейчас бы слушать мнение двачевских инвалидов вкатывающихся в реакт.
Нет никакой правды в этом.
В ноде исходники написаны на тайпскрипте, на классах, с интерфейсами и прочим-прочим.
Писать что угодно кроме фронта на чистом фп дорого. Это не аргумент. Что вовсе не значит что знать этого не надо. Не зря самая сильная книга для вкатывания уже которое десятилетие учит именно фп.
На c/c++ они написаны
А чему в итоге становится равен n?
понимаю что очень глупый вопрос наверняка, но просто так получилось, что мне сейчас нужно переписать код с актуальных версий js на не очень актуальные, а в новых es я многого не знаю
Окей, спасибо.
Можно таргет сборки сделать ес5 или ес3
Мне надо сравнить содержимое полей и пропсов на каждом компоненте: если значение поля не равно нулю и не равно значению пропса - запихать в массив.
Далее массив с каждого дочернего компонента сбагрить в родительский компонент.
Это вобще выолнимо или дюже сложно будет?
Может кто подсказать, как можно реализовать?
Звучит несложно. В чем конкретно проблема возникает?
>В чем конкретно проблема возникает?
Методы.
Как уведомить дочерние компоненты, что от них треба выполнить обработку значений полей?
Как передать собранные массивы в родительский компонент?
Я вобще слабо представляю реализацию.
Звучит так, что ты даже документацию не открывал, но хочешь, чтобы за тебя всё сделали.
>попросил объяснить возможные пути реализации
>но хочешь, чтобы за тебя всё сделали
Да, действительно.
headers это заголовки запроса в которых посылаются метаданные описывающие запрос в целом и тело этого запроса. body это тело запроса в котором содержатся данные, которые описаны в заголовках запроса.
На принимающей стороне сначала идёт парсинг заголовков для того чтобы выработать дальнейшую стратегию по обработке тела запроса, либо сразу перенаправить запрос/отвергнуть его не переходя к телу.
useEffect(compose(props.onChange, getDiff), [props.onChange, props.fields, form.fields])
В чем у тебя макет? Требуй в фигме, лол
Блядь, вечно путаю
Что методы?
>Как уведомить дочерние компоненты, что от них треба выполнить обработку значений полей?
Эм. Написать код обработки в дочернем компоненте. Ну или из родительского передать.
>Как передать собранные массивы в родительский компонент?
Через коллбек.
>Я вобще слабо представляю реализацию.
Посмотри какой-нибудь туториал по Реакту, это базовые вещи все.
Когда как. В целом новые компоненты все на функциях пишут. Но представление о классах нужно поскольку старые компоненты на классах никто менять не собирается ибо и так работают
Да. Там все на этом и завязано.
Такой вариант попробуй.
document.addEventListener("DOMContentLoaded", function(event) {
console.log("DOM fully loaded and parsed");
});
Какой самый минимальный днищеебский сетап для устройства на работу? Что нужно задрочить чтобы работать хотя бы за еду? Заебало после 9 часовой работы по графике приходить домой и до глубокой ночи заниматься обучением.
На данный момент довольно адекватно владею:
html/css/sass/git/базовый js/bootstrap/ES6
Знаю поверхностные базы:
Node/Express/Mongo
Совсем поверхностно:
React/Redux
Ну и общие принципы eventloop/web api, алгоритмы из книги "Грокаем Алгоритмы", работа под линуксом
Начал в середине этого лета, не помню уже когда в последний раз видел солнце
Что нужно знать прямо очень хорошо, чтобы можно было протиснуться в какую-нибудь галеру и выкладывать резюме на hh?
Или пока фулстек соцсесть в блокноте не научусь писать, можно даже не пытаться куда-то устраиваться?
Пытаться можешь начинать уже сейчас, и между перезованми продолжай учит реакт+
Ну вот прям "проектов" нет, просто делаю что-то более менее законченное и приступаю к изучению чего-то другого, хочется более-менее весь стек освоить и потом уже делать свои собственные проекты
Когла лицокнигу обгонишь, тогда рассылай.
Может тебе вменяемых минипроектов наделать? Сделай там формочку на реакте со всем говном, круд какой-нибудь, мувисерчер, чятик на вебсокетах.
Мимовкатывальщик, не слушай меня
В ТС это имеет смысл а в ЖС-то НА-ХУ-Я?
arr += "this thing will fuck up the whole array";
let someVariable = [0, 1, 2, 3];
let result = someVariable[455]; // no error here;
let x = "10" - 1 + "3" - 2;
x === 91; // seems legit
Все вышенаписанное валидно. Но вот если я объявлю const x = 100500 и потом попытаюсь ее изменить, то справедливый интерпретатор таки скажет, что так делать не по понятиям
Почему импортируемый параметр в фигурных скобках?..
А вот и нихуя. Destructing это будет только в вебпаке и может других сборщиках, где импорты заменяются на присвоения вызовам внутренних функций. А так это named import.
Уже готов, что меня сожрут с говном, но ладно... Я не понимаю, зачем нужен return. Вот допусти у меня есть функция, которой умножает число, которое я ввожу на 2. Я понял, что он возвращает значение, но я подумал зачем return (тут, наверное, будет return n2), если можно задать переменной значение, например let a = n2.
Ты прав. Многие так и делают. Благо жс как и питон позволяет обширно творить хуйню и не бьет по рукам, где стоило бы
Что если тебе нужно сделать что то сложнее чем умножение? Да еще и несколько раз в разных местах программы?
Допустим, тебе нужна функция не для того, чтобы вернуть что то, а что то сделать. И при определенном условии ее надо прервать в некоторых местах. Чо делать будешь?
Хз
Да и почему ты такой злой? Чего ты хочешь добиться? У меня вряд-ли сгорит от таких банальных подколов....
Жутко туплю и не могу прокрутить в мозгу работу цикла поэтапно. Чувствую что это очень важная тема.
Перебери его, поставь внутри console.log и посмотри чо выводит
На тайпскрипте бывает юзают иногда
Типичная жс макака, лол
А где ты эту переменную объявлять будешь, внутри функции или снаружи? И для каждой функции будешь новую переменную объявлять загодя? А как будешь передавать выходное значение одной функции другой функции, которое его примет?
Банально, ты не напишешь рекурсивное определение четности/нечетности числа без return, типа:
function ass(cunt) {
if (cunt === 0) return true
else if (cunt === 1) return false
else return ass(cunt - 2)
}
Ты ведь знаешь ответ на свой вопрос, дружок, пирожок, только ссышься. Это ничего. Такая сегодня экологическая обстановка. Все ссутся… Я ссусь… И даже тимлид твой будущий пысается, бывает, — но по ситуации! Что ж нам из-за этого, на работу теперь не устраиваться? Твой позорный недуг мы в подвиг определим: иди ка и начинай уже резюме рассылать и на собесы ходить. Там ты ещё и сраться начнёшь. Но это нормально.х
Серьезно. Ты определись, чего тебе надо. Если в стиле титана одиночества писать говнокод (а в соло ты только говнокод и напишешь), то сиди и изучай что хочешь и сколько хочешь.
А если хочешь на работу устроиться - попробуй все-таки устроиться, ке но?
Хочу сделать что-то вики про Рим. Соответствующих апи в сети нет, как с какими-нибудь покемонами или едой. Видел решение, когда все данные пихали в папку asserts, откуда и получали значения имитацией получения данных с настоящего сервера. Такое допустимо или обоссут?
>Знаие бутстрап
Либо я слеп и не понимаю, либо действительно странно звучит. Что там знать? Это же набор стилей с классами, которые расставить и всё. Или нет?
req.on("data" ...) - обработчик события получения данных от поступившего запроса. В данном случае он помещает эти данные в буфер.
req.on("end" ...) - обработчик события завершения запроса. В данном случае он объединяет данные из буфера и переводит их в строковый формат.
res.end(...) - данные которые будут отправлены в теле ответа
Спасибо большое
А как ты собрался писать свою вики "про Рим", если у тебя апи нет?
Тут либо писать свое апи (наполнять как будешь?) или с тем же успехом вики твоя может быть о чем угодно.
Для написания фронта этой рандом-вики можешь взять любой мок-сервер, например json-server, он создает псевдобазу и АПИ из JSON файла.
Для js/верстки уже готов, на реакте можешь написать на компонентах без логики что-нибудь, уже будет что показать.
программирование это просто набор инструкций для компьютера, что он должен сделать
Реально? Как же меня подставила контора. >>1785424 →
Читаю и дико бомбит. Из-за своей зачмыренности около года макакой-тестером просидел. Ещё обещали перевести во фронт. В итоге кинули. Пидрилы.
Через дебаггер его покрути, он тебе состояние всех переменных покажет на каждом этапе. Возьми листочек и руками воспроизведи работу цикла
https://sass-lang.com/documentation/at-rules/import
https://sass-lang.com/documentation/at-rules/use
И они говорят, что "Each stylesheet is executed and its CSS emitted every time it’s @imported, which increases compilation time and produces bloated output". То есть @import'ы будут всегда копировать все правила по нескольку раз, и нужно использовать @use. Ну вот я пробую использовать этот @use, есть файл test.scss и файлы Greeting.scss и Image.scss, которые test.scss @use'ают. А все равно в конечном коде получается дупликация правил из test.scss. Почему?
Я мимо шел, у меня такой вопрос - если в visual studio code щелкнуть во Server в строке:
// я так создаю http сервер
const server = new http.Server;
то откроется класс тайпскрипт:
interface Server extends HttpBase {}
class Server extends NetServer {
constructor(requestListener?: RequestListener);
constructor(options: ServerOptions, requestListener?: RequestListener);
}
Так что похоже модули в ноде написаны на тайпскрипте, если я правильно вс понимаю.
Это d.ts
Я не заню на что эта ебучая параша переехала, яновно видно что SPA, и явно видно что это тормозащее и подвисающее говно.
Тайпинги, чтобы если приложение написано на жс, в тс норм типы работали
Зато красивенько
Двачер писал наверное. Ищите приколюхи в коде\комментах. Вдруг он так пак какой оставил.
{a() {}}
от
{a: function(){}}
Я знаю, что первое это сокращенный синтаксис, но там вроде было какое-то отличие.
Первый вариант поместит в поле функцию-метод. ее нельзя вызвать как конструктор, и нее нет поля prototype. Во втором варианте, там у тебя в поле обычная функция ес5, которая может быть вызвана с new в том числе и у нее есть prototype по-умолчанию.
Других отличий в этих примерах нет.
>В ноде исходники написаны на тайпскрипте
Ну-ну, напишешь веб-сервер на тайпскрипте, без ноды естественно?
апд: не курс, но структуированный сборник инфы. Чтобы не пялить в документацию как еблан.
На их сайте есть туториал, документации должно быть достаточно.
Это типы описанные к модулям, написанным на ванильном жс. Они прикручены к уже готовому, а не код написан с их использованием.
С момента как разбираться хорошо в жс будешь. То есть прочтешь и попрактикуешь Кантора
В четверг можешь начать.
Очередной дебик насмотревшийся Буры и немогущий в простые вопросы на собеседовании
Точняк блять. Функции-методы отличаются от просто функций. Спасибо.
замыкания
Хочу сортировать имплементации сортировки пузырьком пузырьком.
Ты попизди мне тут еще. Что хочу то и сортирую, долбоеб.
Я думаю, для начала нужно понимание es6 синтаксиса. Да и вообще неплохо было бы на ванильном жсе уметь обработчики событий писать, фетчи-хуетчи и вот это все
Конченные пузырек и бинарный поиск это виды сортировок. И применятся могут для чего угодно.
Друг, подскажи как правильно прогнать задачку с того же codewars через дебаггер.
Я просто сохраняю в файл script.js, открываю браузером и он не понимает что я хочу. Да я совсем тупой и начинающий.
Я хочу ковырять задачки не привязанные пока что ни к вебу, ни к html странице. console.log писать на каждой строчке это дичь какаято. Мне бы простенькое что то для нубиков, где я буду просматривать переменные, циклы, массивы на каждом шаге программы.
Чистый так же дебажить можно. И нахуя тебе его изучать, учи реакт и ноду и не трать время на хуйню
Скачал дебаггер Firefox. Нажимаю run, мне выкидывает файл launch.json. там какие то настройки. Блять, ну вот хули нельзя просто скачать плагин чтобы он заработал...
Так же качал Vim в свое время, че я только не делал блять. Настраивал, удалял, потом снова настраивал. По разным гайдам с ютуба. Я тогад еще на петухоне писал. Нихуя так и не работало как я хотел. Сука почему из коробки не работает сразу, 2020 год а приходиться как мудаку править конфиги.
>>87048
>>87043
Вам не стоит заниматься программированием.
Там нечего ебаться. Тебе даже дебаггер не нужен(наверное(у меня без него все сработало только что)). В расширениях вскода находишь Live Server, устанавливаешь, выбираешь свой хтмл, к которому скрипт привязан, кликаешь правой кнопкой и выбираешь Open with Live Server. Он должен запустить на :5500, это значение и ставишь в launch.json. Дальше запускаешь дебаггер и все должно работать(ну и брейкпоинт в коде не забудь поставить)
Не за что
let n = 10000000000002323;
А теперь - внимание, вопрос! Как нам получить строку "10000000000002323" ?
n.toString();
// "10000000000002324"
`${n}`;
// "10000000000002324"
n.toFixed(1);
// "10000000000002324.0"
new Decimal(10000000000002323).toString();
// "10000000000002324"
А нет, на самом деле вот так надо
Ну хех, ну понимаешь, нет такого числа... вот...
Ты проебался когда число в конструктор отдал, жс же вычисляет expressions, твое число стало тыквой, потом попало в конструктор, у тебя получился Decimal of pumpkin, соотвественно toString на нем возвращает "pumpkin"
Да это нормально, это же ieee754, просто когда тебе нужны нормальные десималы, ты берешь нужный инструмент, а ненужный - не берешь
В рот твоей мамаши, само собой.
>Мы имеем:
Не имеем. У тебя нет такого числа, потому что у тебя переполнение. Если работаешь с большими числами используй соответсвующий тип - он таки называется BigInt
Тоесть я правильно понимаю, мне забить хуй на задротствование с задачами на кодеварс и сосредоточится на связке html, css, js и взаимодействии в ней. Всякие там клики, селекторы, работа с DOM и вот это все.
Тоесть грубо говоря, мне нужно как можно скорее начать клепать свои говноприложения типа калькуляторов и прочего.
>мне забить хуй на задротствование с задачами на кодеварс
Они логическое мышление развивают и их на собесах спрашивают.
Честно я больше времени трачу чтобы подобрать конструкции на этом собачем языке чем на алгоритм. В будущем на пыху перекачусь, он мне показался лаконичнее.
>>87103
>>87114
Спасибо за ответы. Мне еще нужно изучить работу с числами в js.
Пока что решил чуть изменить бекенд приложения, чтобы получать числа строками, далее работать с ними с Decimal
>>87109
>>87115
Не имел цель начинать языкосрачи. Просто работаю с python и js, оба языка имеют свои плюсы и свои минусы.
Так вот, в js есть сразу четыре подвида функций, в зависимости от того, как именно они объявлены.
1. Первый тип функций, тот который мы объявляем используя синтаксис function name?(arguments?){ body } Назовем его просто Функция. Такой объект имеет оба внутренних поля [[Call]] и [[Construct]], и может принимать сообщения apply (call) и construct (new) соответственно. Вы полностью управляете тем, какое сообщение именно поступило, проверкой на new.target. Так же у такой функции есть не удаляемое поле .prototype, оно является записываемым, но неизменяемым. Вы можете заменить объект в .prototype или выставить его в null/undefined, но удалить само поле не можете. Такие функции, когда они действительно несут функциональность конструкторов объекта, еще называют es5-конструкторами. Так же у этого типа функции имеется динамический контекст вызова this, который ссылается либо на тот объект в контексте которого она вызывается, либо если он был нарочито привязан. И есть доступ к объекту arguments, в котором хранятся все переданные аргументы при вызове, даже после того как вы изменили ссылку на них. Еще такой тип функции может иметь имя.
2. Второй тип функции, пришел к нам вместе с es6, это Функции-методы. Объявить их можно только используя литерал объекта ({ someMethod(){} }) или литерал класса (class { someMethod(){} }) У такого типа функций не установлено внутренне поле [[Construct]] и она не может принять соответствующее сообщение construct (new). Попытка вызвать такую функцию, как конструктор приведет к исключению. Так же у нее отсутствует поле .prototype изначально. Она по прежнему имеет имя (при этом функция-метод вообще не может быть анонимной, в отличии от просто Функции), и так же имеет доступ к объекту arguments. Функция по-прежнему остается контекстно-зависимой и ссылается на тот объект, в контексте которого вызвана (или к которому нарочито привязана), но - у нее есть доступ прототипу того объекта, в котором она непосредственно была объявлена, поэтому следующий код вернет false ({ x(){ return super.toString } }).x.call([]) == [].toString
3. Дальше идут стрелочные функции. Эти функции так же не могут быть использованы в качестве конструктора. У них нет свойства .prototype. Так же у них нет доступа к объекту arguments и они не имеют динамического контекста. Контекст всегда зависит от места объявления.
4. Функции-конструкторы. Или классы. Они объявляются только с помощью конструкции class {} и у них напротив, отсутствует поле [[Call]] - попытка вызвать конструктор, как функцию (послать соответствующее сообщение) приведет к исключению. У этой функции так же есть доступ к объекту arguments и к расширяемому объекту, через ключевое слово super. У этого типа функций поле .prototype является не записываемым и не настраиваемым. Вы не можете изменить ссылку на объект, используемый в качестве на прототипа.
5. Последний вид функций - bounded function. Это функции у которых привязан контекст или аргументы. При этом получить оригинальную функцию из привязанный стандартными способами нельзя. И так же нельзя перепривязать что-либо, чтобы привязано. Такие функции получаются в результате использования bind. В остальном они сохраняют поведение оригинальной функции (учитывая, разумеется то, что в случае конструирования объекта, если функция можеть быть вызвана в качестве конструктора, контекст всегда ссылается на вновь созданный объект). Стрелочные функции так же являются частным случаем bounded функций, так как у них привязан контекст.
Типов же в js всего восемь. Boolean, Number, BigInt, Symbol, String, Object, Undefined и Null. Конструкция же typeof, которую часто неверно трактуют из-за ее легаси названия, является просто функцией возвращающей строку в зависимости от переданного аргумента, но не его тип. Именно поэтому там функция это 'function', а null - это 'object'. При этом первые четыре типа, которые являются примитивными, с точки зрения объектной модели языки удобнее воспринимать как синглтон-объекты - то есть инстансы класса в единственном экземпляре на каждое значение. Под капотом там так же имеется ссылочная система, при чем довольно развесистая, вплоть до того, что substring-строки могут иметь ссылку на родительскую строку, и потому течь. А присвоить какое-либо новое поле объекту примитиву в строгом режиме нельзя, даже в момент, когда он обернут в объект (например в итераторе, на время существования этого итератора).
Так вот, в js есть сразу четыре подвида функций, в зависимости от того, как именно они объявлены.
1. Первый тип функций, тот который мы объявляем используя синтаксис function name?(arguments?){ body } Назовем его просто Функция. Такой объект имеет оба внутренних поля [[Call]] и [[Construct]], и может принимать сообщения apply (call) и construct (new) соответственно. Вы полностью управляете тем, какое сообщение именно поступило, проверкой на new.target. Так же у такой функции есть не удаляемое поле .prototype, оно является записываемым, но неизменяемым. Вы можете заменить объект в .prototype или выставить его в null/undefined, но удалить само поле не можете. Такие функции, когда они действительно несут функциональность конструкторов объекта, еще называют es5-конструкторами. Так же у этого типа функции имеется динамический контекст вызова this, который ссылается либо на тот объект в контексте которого она вызывается, либо если он был нарочито привязан. И есть доступ к объекту arguments, в котором хранятся все переданные аргументы при вызове, даже после того как вы изменили ссылку на них. Еще такой тип функции может иметь имя.
2. Второй тип функции, пришел к нам вместе с es6, это Функции-методы. Объявить их можно только используя литерал объекта ({ someMethod(){} }) или литерал класса (class { someMethod(){} }) У такого типа функций не установлено внутренне поле [[Construct]] и она не может принять соответствующее сообщение construct (new). Попытка вызвать такую функцию, как конструктор приведет к исключению. Так же у нее отсутствует поле .prototype изначально. Она по прежнему имеет имя (при этом функция-метод вообще не может быть анонимной, в отличии от просто Функции), и так же имеет доступ к объекту arguments. Функция по-прежнему остается контекстно-зависимой и ссылается на тот объект, в контексте которого вызвана (или к которому нарочито привязана), но - у нее есть доступ прототипу того объекта, в котором она непосредственно была объявлена, поэтому следующий код вернет false ({ x(){ return super.toString } }).x.call([]) == [].toString
3. Дальше идут стрелочные функции. Эти функции так же не могут быть использованы в качестве конструктора. У них нет свойства .prototype. Так же у них нет доступа к объекту arguments и они не имеют динамического контекста. Контекст всегда зависит от места объявления.
4. Функции-конструкторы. Или классы. Они объявляются только с помощью конструкции class {} и у них напротив, отсутствует поле [[Call]] - попытка вызвать конструктор, как функцию (послать соответствующее сообщение) приведет к исключению. У этой функции так же есть доступ к объекту arguments и к расширяемому объекту, через ключевое слово super. У этого типа функций поле .prototype является не записываемым и не настраиваемым. Вы не можете изменить ссылку на объект, используемый в качестве на прототипа.
5. Последний вид функций - bounded function. Это функции у которых привязан контекст или аргументы. При этом получить оригинальную функцию из привязанный стандартными способами нельзя. И так же нельзя перепривязать что-либо, чтобы привязано. Такие функции получаются в результате использования bind. В остальном они сохраняют поведение оригинальной функции (учитывая, разумеется то, что в случае конструирования объекта, если функция можеть быть вызвана в качестве конструктора, контекст всегда ссылается на вновь созданный объект). Стрелочные функции так же являются частным случаем bounded функций, так как у них привязан контекст.
Типов же в js всего восемь. Boolean, Number, BigInt, Symbol, String, Object, Undefined и Null. Конструкция же typeof, которую часто неверно трактуют из-за ее легаси названия, является просто функцией возвращающей строку в зависимости от переданного аргумента, но не его тип. Именно поэтому там функция это 'function', а null - это 'object'. При этом первые четыре типа, которые являются примитивными, с точки зрения объектной модели языки удобнее воспринимать как синглтон-объекты - то есть инстансы класса в единственном экземпляре на каждое значение. Под капотом там так же имеется ссылочная система, при чем довольно развесистая, вплоть до того, что substring-строки могут иметь ссылку на родительскую строку, и потому течь. А присвоить какое-либо новое поле объекту примитиву в строгом режиме нельзя, даже в момент, когда он обернут в объект (например в итераторе, на время существования этого итератора).
$согласен::$с_тобой\на\Много\Более_лучший язык
В следующем выпуске пиши про замыкания няша
Кто на кого замыкается, где хранится стейт, каждая ли внутренняя функция является замыканием или только та, которую вернули из парент скоупа наружу
define страница
Если тебе надо обмениваться в рамках одного клиента, то есть персистеный сторадж и сессионый сторадж.
Я не могу представить долбоеба, который в 2020 будет изучать жабу, ну кроме студентов.
В 19 году пришел на проект фронтом на ангуляре, там пишут на джава-стеке+ангуляр, за 6 месяцев вкатился в джаву, апнул зп Х2, ушел на другое место работы и опять апнул зп, теперь я фуллстак и получаю 210к.
К слову это не ДС и да, легаси много, но деньги не пахнут.
А мог бы тоже самое с нодой делать
Так и на чем писать бек тогда? В жабе легаси, в дотнете тоже, нода не бекенд, и что остается?
На ноде конечно. Писать на пхп себя не уважать. Джава круто конечно но там нужно ооочень ее любить чтоб выдержать весь тот гигантский Легаси Энтерпрайз на ней
Зачем тебе бэк, а так уже ответили пыха и нода самое то.
Зачем ты ему так нагло врешь?
Да, в пхп есть битрикс и это кал, но симфони и ларавель очень даже ничего и вакансий приличное количество. Мем про пхп уже давно не отражает реалии, сейчас плюс Jit завезли. Знакомые спокойно на пхп вывозят от 150 килорубрей и довольны.
Легаси в джаве это не то чего стоит бояться, у джавы обязательная обратная совместимость и это то из-за чего ее выбирает бизнес, который тебе и будет платить зп выше рынка.
На ноде зарплаты выше пхпшных. Насчёт ддавы не уверен. В чем не уверен - не говорю
Когда пришел Ruby и RoR его тоже крестили убивцем php и говноязыков, но сейчас он сдулся и крутит стартапы только. У ноды крутая идея и платформа, но туда пришли формошлепы, которые вообразили себя фуллстаками и лепят говно местами хуже чем на пхп 4-5 версии, плюс порог входа в ноду околонулевой и скоро мы увидим тотальный хейт в сторону ноды.
мимо мое мнение может отличаться от вашего
Так никто и не говорит что убийца. У них разные ниши. Пхп либо говносайтмки на вордпресе либо менее востребованный чем жаба, жабастайл тырпрайз
Как сделать хорошо?
кроме*
Тырпрайз - это го, раст и т.п.
Если бы какая то парадигма программирования описывалась даунским "там где функции" или "там где объекты", то она бы не называлась парадигмой.
Знаю, что есть такое. А без йобы? Это же надо делать пребилд шаг, где это хуйня генерить их будет, или в ручную постоянно запускать самому после изменения .scss файлов.
А без йобы нет. Запускай йобу в watch, как и вебпак.
Даже если бы работало, то что тебе это даст? Что какая то хуйня имеет тип string? Это все полумеры, или йоба, или можешь даже не париться
Вот захочу допустим сделать мультиплеерную броузерную игру, если я все сделаю на JS в браузере, пользователи тупо будут читерить у себя в консольке, меняя переменные и дюпать голду.
Значить мне по максимуму все нужно выносить на сервер, я правильно мыслю?
Сервер он везде сервер, хоть локально, хоть удаленно, разница только где он хостится. Хз, почитай про клиент-сервер
К чему я пришёл: нужно прописать launch, глобально. На время хелоувордства должно хватить(?).
бля анон спасибо, я не сомневался в jq, а как можно после запятой пробел вствить? сейчас выводит слитно
бля анон я опять тупанул, всё понял, спасибо ещё раз, пробел уже тоже вставил и конецно же это не jq, а js
Тебе не нужно писать фронтент и бекенд на одном языке. Они будут общаться через запросы, перекидываясь джейсонами. Пиши на чем хочешь, или на чем знаешь. Лучше почитай про клиент-серверное взаимодействие, ты на базовом уровне концепт не понимаешь походу.
Если ты уже знаешь жс, то можешь бек на ноде написать, на ней вроде(не точно) браузерки нормально делают
У ноды есть ларавель и симфони, на которых куча сервисов работает. А на ноде? Именно не в качестве бфф, а в качестве полноценного бекенда?
у пхп*
Ларавель твой годится разве что говносайтики клепать иначе бы корпорации его использовали а не году. А то вон как получается пхп такой охуенный а нодамакака при этом в разы больше получает. И да я знаю что нодомакака вдовесок ещё и во фронте шарит, но и многие пхпмакаки тоже
function Warning(props) {
const { warningArr, closeWarning } = props;
if (warningArr === []) return null;
const closeBtn = () => {
closeWarning([...warningArr, warningArr.pop()]);
};
const warns = warningArr.map((item) => {
return (
<div className={styles.parent} key={item} data="test">
<div className={styles.container}>
<Warn title={setts[item]} />
<Button
onClick={closeBtn}
className="warning__closeBtn"
title="Ок"
/>
</div>
</div>
);
});
return <>{warns}</>;
}
function Warning(props) {
const { warningArr, closeWarning } = props;
if (warningArr === []) return null;
const closeBtn = () => {
closeWarning([...warningArr, warningArr.pop()]);
};
const warns = warningArr.map((item) => {
return (
<div className={styles.parent} key={item} data="test">
<div className={styles.container}>
<Warn title={setts[item]} />
<Button
onClick={closeBtn}
className="warning__closeBtn"
title="Ок"
/>
</div>
</div>
);
});
return <>{warns}</>;
}
Так ноду никто и не использует. Ларавель как раз стартапы любят, из-за скорости разветки продукта и богатой экосистемы ну и количества разработчиков знающих её
И да это пиздеж и вот почему. Суть даже не в ноде vs php. Просто нодер это вдовесок реактомакака как правило. А в то что реактомакака получает на уровне пхпмакаки никто не поверит.а тут ещё и к зп реактомакаки прибавляется знание ноды
>>87865
Странное дело. Никто не используют а зп из воздуха берется
>>87867
>Ряяяя мои беспруфные вскукареки трушнее твоих
Кстати вот только сейчас смотрю доклад, где чел рассказывает, что бекенд на ноде говно, но для бфф вообще хорошо подходит. И после попыток ковыряния в ноде и её мидлвейр идее, я действительно начинаю сомневаться в ноде как полноценном бекенде. Есть вообще будущее или пока нормальный тыртырпрайз фреймворк не появится, нода так и будет где-то посередине болтаться?
>Жс хоть и отвратительное существо но практически непотопляемое
Я про будущее в виде полноценного бекенда с бизнес-логикой. То что жс во фронтенде навечно, я не сомневаюсь
Думаю есть. Популярность этой хуйни растет. Там и фреймворки подтянутся.
Экспресс это просто самое базовое, реквест-респонс да роутинг
А у жс есть какой-то жесткий фреймворк, чтобы тяжеловесный, TS-ориентированный и сразу все было из коробки: орм/обертки над кэшем и очередями/имейлами/файлами/секурити?
Я был бы очень не против вкатиться на жабера, но количество легаси просто пугает. В универе пилил какие-то круды на спринге, но когда делал, почти не знал английского и все гуглилось через боль. Но в самом спринге все казалось таким логичным и правильным, даром что кучу кода писать надо.
Сейчас англ знаю, но тут оказалось, что большинство зарубежного контента делают ебаные индусы с воверлодингами, да и новых проектов все меньше пилят. Сижу, ковыряю экспресс, и не хватает жабовской строгости. По плану вкатиться на реакт фронта со знанием бекенд ноды, а дальше посмотрим
Не посмотрим. Это будет твоим стеком до конца жизни. Не видел ещё никого кто перекатился с него на что другое
А сам подумай куда. В джаву лезть? Ради чего? Тонны Легаси? А во всякие няшные го, питоны жаберов не берут
>няшные го
Я так понимаю в го вообще берут мидлов/сеньоров из жабы/c# и ждуны там не нужны еще года три будут
>жаберов не берут
А в чем дело?
я знаю методы get post, что все через http происходит.
Считается что из жаберскриптера еровый бэкендер. И что сука характерно так оно и есть в большинстве случаев
Печаль. Спасибо большое за ответы на вопросы, хорошего вечера
vue - для дебилов
angular - для реальных программистов гениев
почему так анон?
Я говорил про ноду как бекенд, ты начал высыраться про фулстек - вот это и есть твое виляние жопой.
Так чистый бэкенд на ноде редкость деб.
Геттеры и сеттеры это ооп хуйня. Соответственно если ты реализуешь на функциях то тебе и не нужно это
В каком конкретно случае? Иногда они и правда в хуй не тарахтели, но если тебе придётся менять что-то в коде, а у тебя всё на функциях - могут быть проблемы. А с геттерами/сеттерами это проще получается.
Потому что если ты реализуешь это функцией и не сделаешь поля приватными, Вася или Петя обязательно сделают myObject.veryImportantValue = "хуй";
>Нахуй
Такие вопросы лучше в проганье не задавать. Серьезно, сам раньше такой хуйней занимался, по пять минут сидел, думал юзкэйсы. Нахуй. Просто знай, что в языке\фреймворке есть такие-то возможности. Понадобится - вспомнишь как делать и сделаешь.
Ангуляр = легаси (используют ноунейм компании)
Вье - просто и легко, но криво (используют ноунейм компании)
Реакт - золотая середина, любят все крупные компании.
>>порог входа в ноду околонулевой
Хуясе заявочка, ты ебанулся. Или речь о программировании на экспрессе?
Что бы хеловорднуться пхп гораздо более прост. Нода без фреймворка с ходу ебет в голову буферами, потоками и событийностью/асинхронностью.
Банальный прием данных от post-формы превращается в цирк с конями и парсингом тела запроса.
Для нуба это море боли.
Ну а далее все стремно. У ноды свои приколы, пхп причащает нубаря к миру solid , радует интрефейсами, и пугает абстрактным фабрикам и прочим цепочкам обязанностей.
Ты кстати маня теоретик.
нода за 10 лет кроме роутера с мидлвэйрами express нихуя не родила. Все пишут как Будда на душу положит.
А пхп обернулся в psr, фреймворки построены на взрослой ооп архитектуре, и вообще все довольно такие крепко сделано. пхп не сложен для хеловорда, а дальше все сурово.
Это кстати потенциальный минус. Как платформа - современный пхп перерос нишу цмсок, и лезет уже хуй пойми куда. Джава?
Конченный, выше кидали ссылку на Nest
Это потому что когда тудуху на реакте первую заплил - хочется кукарекать на все село о том что ФП рулит.
А когда влезаешь в некоторое дерьмо, начинаешь халву Аллаху возносить за интерфейсы, за инверсию управления и контейнеры зависимостей, и тайпхинты тоже очень радуют.
Я люто наговнокодил за последние 6 месяца в проекте.
что делать?
1) попросить время на рефакторинг и признать что я косячил
2) поменять работу
>интерфейсы, за инверсию управления
>тайпхинты
Вообще никак не противоречат ФП и используются в Реакте повсеместно.
>контейнеры зависимостей
Ты про DI что ли? Всратый паттерн без задач же. У меня на текущем проекте есть, просто пиздец с него горит. Разработчики дали им контекст, нет, надо играть в умников.
видевший некоторое дерьмо
Всмысле в этот раз?
Лол, недавно надо было пару микроприложений на реакте написать, первым же делом сделал наколенный контейнер, потом что столько контекстов создавать и провайдить - это пиздец. Контекст хорош только когда тебе надо немного данных по дереву передать, сервисы и зависимости он за тебя менеждить не будет
Аноны, нужна книга и именно в изначальном понимании этого слова, т.е. на бумажном носителе по основам ванильного JS. Очень много времени сижу, ничего не делая, на говноработе, хочется это время вложить в хоть что-то полезное. Читал про "Ты не знаешь JS", но на русише и на бумаге первые три книги не нашел или просто ебался в глаза, а на инглише хуй достанешь, либо прайс слишком конский. Какие есть альтернативы? Главное - актуальность подаваемой информации и относительная простота объяснений, чтобы такому дебилу, как я, было более-менее понятно.
Спасибо. Тоже тут был, перешёл отсюда туда https://code.visualstudio.com/docs/editor/debugging. И там найденное:
"program": "${file}" - очень помогло. Теперь когда в папке открытой vscose создаю новый js файл могу сразу начать дебажить, не создавая новый launch, и не правя старый.
Я не очень понимаю зачем зависимости как-то МЕНЕДЖЕРИТЬ. Написать import { fetchUser } from 'api' это какая-то непосильная задача? Обязательно нужно создавать UserService и прокидывать его через DI-контейнер? Ну дроч же чистый. А InversifyJS еще типы херит, тоже удобство то еще.
Ну мне как-то без разницы кто там использует. Я смотрю по возможностям которые дает инструмент. И на данный момент, для задач для которых эту троицу делают лидирует Ангуляр. Вернее он единственный вообще имеет смысл, если человек который отвечает за выбор технологии на фронт, профпригоден конечно. Но судя по засилию вакансий на реакт, видимо с этим все плохо у людей.
В fetchUser ещё токен и адрес бека отдавать, а чтобы их отдать, сначала их нужно получить. Можно конечно их хранить в переменных модуля, но это получится из модуля сделали синглтон, спасибо, какая то хуйня получилась.
Создаем онлайн бетковен кошелек. Раскручиваем в топ выдачи гугла. Копим шекели и скамимся по итогу.
Какие подводные камни?
Токен берется из LS или кук, адрес бека вообще в окружении должен быть зашит. Не, я могу представить сценарии что запросу нужны какие-то дополнительные парамеры, но это изи решается через тот же контекст или омг аргументы.
Можно даже написать кастомный хук, который их докидывает автоматом. И это все уже есть в Реакте из коробки — не нужно ничего ставить и ничего изобретать.
Товарищ майор придет потом.
1. Лучшая тема для подсветки JSX синтаксиса, Default dark+ почти блядь делает все как надо, кроме того что разделяет тип переменной и имя переменной на одну миллиардную полутона. Ну и цвета там темноватые, хотя с этим я бы смирился.
Это принципиально важный вопрос для меня, я могу просидеть 6 часов не вставая выбирая цветовую схему, так, что у меня уже руки трясутся. Из последнего по цветам мне понравились только monokai - но у него с разделением синтаксиса беда. palenight, у него та же проблема. И вроде бы dracula неплох, но он export default function делает одним цветом все, что не удобно. Спрашиваю именно тут, потому что у кого как не у вас?
2. Как заставить prettier не переносить сука ебанный в рот, строки текста в коде, он охуел такое делать? Просто убери лишние пустые строки, приведи кавычки к одному стилю, расставь точки с запятой, а не превращай в кашу все что я написал. Может есть просто другой код форматер, какой?
Ну токен типа никуда не надо сохранять а то спиздят, азаза , адрес бека ничего не должен.
Решается то изи, только с контекстом много церемоний, с аргументами ещё больше. Проп дриллинг тоже изи, но чет никто не хочет.
Реакт из коробки хорошо только дивы рендерит, дальше - пишите юзер код.
Я просто хотел вызвать метод замкнутый на окружение, хули тут так сложно
1. Юзаю Material Theme Palenight High Contrast.
2. В .prettierrc меняй printWidth, он по дефолту всегда переносит если больше 80 символов.
Night Owl попробуй или какой нибудь github sharp/one dark pro
Шрифты ещё не забудь спиздить - на выбор Fira code, operator mono, jetbrains mono. И лигатуры включи, чтобы стрелочки красивые были
Ну во-первых как ты правильно заметил из коробки идет тс, так как сам фреймворк на нем и написан. Так же из коробки идет rxJS, который мегаудобен, как для простых, так и для сложных кейсов.
То есть сходу есть ДИ система у нас, роутер, гарды, резолверы, пайпы, интерсепторы и весь тулинг для стейт-менеджмента.
Можно брать и сходу решать проблемы бизнеса, пилить фичи, а не ебать себе мозг какую библиотику лучше взять для формочек или стилей. (привет реакт)
К тому же ангуляр навязывают жесткую архитектуру. Можно набрать тиму из джунов, поставить над ними одного синьйора чтобы присматривал и в таком сетапе можно успешно и быстро деливерить фичи для бизнеса. Это еще и экономически выгодно.
+ из-за того что проекты похожи друг на друга, время для того чтобы новому разрабу влиться сокращается в разы\
+ рупрощается работа с чужим кодом ну или своим который ты давно писал.
А не так как в реактах, когда проекту больше года, его называют легаси и начинают переписывать потому что уже нихера не могу понять.
>Мутации, подписки, таймеры, логирование и другие побочные эффекты не допускаются внутри основного тела функционального компонента
Что такое подписка?
Кому нужон вью Если речь не идёт о заказчиках, ищуших макаку подешевле - непонятно
Почему среди прогеров так много каких-то петухов опущенных, которые перед нигерами-мародерами на колени встают? пиздец стыд.
Нахуй ты своего батю запостил?
Потому что ИТ - ядро всего sjw-движения.
Ну синтаксис же изучают. Так то понятно что главное алгоритм.
Меня напрягает что я не могу на JS что то полноценное пилить без бекенда. Надо короч фуллстаком сразу становится а хуле нет то.
Нода же
Нест поссал на тебя пхпмакака. Продолжай утешать себя что пхп охуенен. В то время как нодер на хуевой ноде будет иметь в два раза больше тебя. И это только начало, нода все популярнее
Абсолютно ужасная идея. На пхп только говноработу найдешь. В крупных конторах она редкость. Лучше ноду учи и не слушай клоунов местных. Потом спасибо скажешь
Крупные сейчас поголовно на го перекатываются. С пыхи. Поэтому им почти всегда нужны гопыхи.
Можно учить и то и другое. Все равно REST API везде одинаковое.
Просто хочу сразу делать нормально
В крупных городах есть го да. Но туда и с питона можно перекатиться. Или сразу гошечку взять для фулстака
3. Оставить все как есть.
Если только тебя носом не тыкают в твое ссанье и код работает - не трогай его. Через полгода код, который ты пишешь сейчас будет казаться тебе лютым говном, это нормально. Так написаны почти все продукты.
Потом тебе еще премию дадут за рефакторинг твоего говна.
Коньюнктурная хуйня.
Кто из крупных компания поддержал протесты в тайване? Никто блять. А ведь там эту их любимую демократию пидорасили в хвост и гриву.
Потому что покудахтать в сторону белых цисгендерных господ это приятно и безопасно для акционеров, а залупиться против Китая - ну нахуй, можно и денежку потерять. Борцы за свободу, ебать их в сраку.
Ну хуле, Ти же пидорасы в 38м флаги нацистские бы повесили как уже было с колой и диснеем
Значит есть https://gist.github.com/sigorilla/9879ae4941665213862cdbe3ee7472c2#file-index-html . Это HTML + CSS
Это то что мы хотим получить - https://contest.yandex.ru/testsys/statement-image?imageId=afe827fdb82727043ebf6329062bfe9d825bafe8ecc4c5c381822ea31cbcf9a8
Да, все бы ничего. Но просят получить такой результат за минимум исправлений.
Я пробовал несколько вариантов. Дропнул на этом - https://pastebin.com/XX78mZqE . Очевидно, что решение не проходило. Предложите свои варианты, интересно где топор может быть зарыт.
digits.split('');
Почему блять не работает этот код? в x передается строка типа '123456789'
Пишет split() is not a function, охуеть. А что же это тогда.
> is not a function
Означает, что у твоей хуйни такого метода нет. Твоя хуйня - Number, а не строка.
Ебать жирно
const digits = x.split('').map(digit => +digit)
function fakeBin(x){
let digits = Number(x);
digits.split('');
let binary = [];
for (i = 0; 0 < x.lenght; i++){
if (digits < 5){
binary.push(0);
}
else
{
binary.push(1);
}
}
return binary.join('')
}
Полный код моей нубозадачи. Тут смысл такой если число меньше 5 то ставим нолик, если равно или больше то единичка. В ответ надо выдать строку типа '00101010010'
>>88287
>>88288
>>88289
Я думал что ща нарежу числа и норм. А тут строка. Что мне через цикл каждую букву в число и потом складывать? Короче я проебался признаю.
Я просто с пайтона перекатываюсь, там такие задачи на ходу решаются и проще с переводом между типами данных.
https://jsfiddle.net/gwph0oek/3/
В классе .crossword меняем
display: block;
box-sizing: border-box;
На
display: flex;
flex-wrap: wrap;
Вуаля, вы великолепны.
Я плоховато курил учебник и незнаю стрелочные функции и map. Уже решил по своему. Эх, надо дрочить кантора.
Братан, ты запостил кринж. В питоне так же и везде int не является итерируемым. Ты не можешь лист применить к int.
В твоем представлении решение выглядело бы во так https://repl.it/@CharonIV/NeatNaiveGlitches#index.js
>>88297
Цель - не решить, а найти самый короткий способ. В моем варианте, я меняю 1 строчку, а ты 2 считай. Плюс обрати внимание, что в твоем случае это не все. Там еще были цифры с буквами
Удаление строчки, это тоже изменение (по крайней мере в моем представлении). То есть не трогать вообще, лучше чем удалять.
И вообще зачем мы удаляем эту строку, она ни на что не влияет?
С ней не хватает ширины блока, чтобы вместить все буквы, потому что у .crossword есть бордер. И со значением border-box, этот бордер включается в ширину блока.
Получается что у нас ширина 320, из них граница 2 пикселя, тоесть доступно нам всего 318, а этого не хватит, чтобы вместить все буквы.
Если же убрать это свойство, то шириной блока будет считаться только контентная область, а граница наложится уже сверху. Тоесть общая ширина блока будет 322 пикселя.
>>Всратый паттерн без задач же.
>>низкая связность кода
>>без задач
Смех в том, что отбери у местных ФП-шный реакт, то 80 процентов накостылят тупо кучу функций, остальные 19.999 запилят кривое ооп. Без паттернов ФП которые были показаны умным дядей, хуй тут кто что напишет с ноля.
Я понимаю, но нам нужна эта граница вообще? Если дело только в этом, то почему например нам так не сделать:
border: 0px solid var(--color-black);
А box sizing не трогать.
Потому что она есть в макете?
То, что ты убираешь прямые импорты не уменьшает связность. Код по прежнему зависит от других модулей, просто они берутся из реестра.
>Ну токен типа никуда не надо сохранять а то спиздят, азаза
Это еще один повод держать его в недоступных для js куках.
>адрес бека ничего не должен
Да понятно что не должен, но зачем себе жизнь усложнять?
Мега костыльно как и все что с этим говном связано
Я кукаретик в вопросах безопасности, но например при sso куки на твои домен никто не поставит.
Жизнь обычно усложняют заказчики, у которых один билд должен работать во всех окружениях. Эти же заказчики потом делюсь нормальный ci, но уже поздно, лол
Ты похоже пытаешься синхронизировать два стейта с одними и теми же данными, сейчас приедет Денчик и отпиздит тебя
Почему не поставит? У меня был SSO на прошлом проекте и все там норм было с куками. Точную схему я уже не помню, но как-то работало. Более того, куки это единственный вариант хранения токена, если ты хочешь SSR делать.
>Ну токен типа никуда не надо сохранять а то спиздят, азаза
Кстати, такой вопрос, где предполагается хранить этот сраный jwt токен? Читал, что в локал сторадже нельзя, т.к. к нему имею доступ все, кому не лень, и оптимально его ставить в куки. Но разве в реактах-хуяктах нету возможности его хранить где-то внутри самой приложухи? И вообще, почему эти токены вообще юзаются, они же напрямую раскрывают id пользователя.
Аноны-безопасники, ответьте плиз
Auth provider на другом домене сидит и куки на твой ставить не может, тебе он отдаёт рисунок токена, по нему получаешь сам токен. На свой домен он конечно же куки может поставить и так и делает, но в твоём приложении - только сам токен. Если только свои бэк просить токен тебе проставить, но это же костыли
По-моему у нас был редирект назад с токеном и бэк его проставлял. А потом проксировал запросы на обновление.
>Но разве в реактах-хуяктах нету возможности его хранить где-то внутри самой приложухи?
Есть, но его можно вытащить из памяти.
>И вообще, почему эти токены вообще юзаются
Потому что все угорели по скейлингу и stateless-серверам. JWT позволяет узнать пользователя без хождения в БД и без хранения сессий.
>они же напрямую раскрывают id пользователя
Ну и что?
Но нахуя? Если что-то должно следить за стором, пусть это и будет в сторе. А если этому что-то похуй на стор, тогда и следить не нужно.
>>они же напрямую раскрывают id пользователя
>Ну и что?
Это не считается важными данными? Ну то есть с сессиями у нас есть какой-то абстрактный хеш, и нам нужно совершить +1 обращение в дб для определения пользователя. Предпочитают экономить на запросах в базу?
Я так понимаю, что это больше для микросервисов, где как раз надо
> узнать пользователя без хождения в БД и без хранения сессий.
А если это простенькая приложуха? Имеет смысл юзать jwt?
>Это не считается важными данными?
Не. Ну id и id, что ты с ним сделаешь?
>Ну то есть с сессиями у нас есть какой-то абстрактный хеш, и нам нужно совершить +1 обращение в дб для определения пользователя. Предпочитают экономить на запросах в базу?
Сессию надо хранить на сервере, в этом основная проблема.
>А если это простенькая приложуха? Имеет смысл юзать jwt?
Как хочешь в общем-то. Если не устраивать цирк с аксесс и рефреш токенами, то там все довольно просто. Смотришь токен, дешифруешь, сверяешь. Если ок, то ок, если нет, то шлешь нахуй.
>Как хочешь в общем-то. Если не устраивать цирк с аксесс и рефреш токенами, то там все довольно просто. Смотришь токен, дешифруешь, сверяешь. Если ок, то ок, если нет, то шлешь нахуй
Да я вот совсем недавно делал аутентификацию на ноде с jwt, а потом у меня начала возникать мысль о небезопасности всей этой дичи. Плюс читал статьи с заголовками вида "Не используйте жвт вместо сессии". Хз, неоднозначные впечатления от всей этой системы
Вся безопасность держится на том что https зашифрован от похитителей токенов, потому что эти самые токены передаются по тому же каналу что и данные. Вот если за сертификатами надо было бы ехать в департамент сертификатов, тогда было бы получше
Понял, спасибо за объяснения
>nest
Вообще с нестом интересно. С одной стороны, наконец-то хоть один нормальный фреймворк в ноджс экосистеме. Но с другой, это же тупо спринг. Так зачем спрашивает писать на жс спринг, если можно взять джаву с её богатейшей экосистемой и фишками самого языка коих нет и не появятся в жс и писать на ней?
>Убогая джава где даже нет маров и фильтров и все на допотопных for циклах
>Фишки которые не появятся в жс
Ахахахахахахахахаха
Бамп
>>Убогая джава где даже нет маров и фильтров и все на допотопных for циклах
>>88699
>>Таких как программирование фабрик легасиабстракций на XML? Нет уж, спасибо.
Давайте вы уже из криокамеры выползайте, ок?
https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html
https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
https://www.tutorialspoint.com/spring/spring_annotation_based_configuration.htm
И этому всему уже лет 6, есличо.
Таких как перегрузка, статическая типизация, возможность шарить память между потоками.
>Нет мапов
>Показывает интерфейсы
Узнаю джава даунов и вспоминаю почему сьебал оттуда в свое время
Эта вся хуйня в тайпскрипте есть лол. Жава примитивная хуйня для колеров с низким iq
>Таких как перегрузка
Шо?
> статическая типизация
Object o, МММММ.
> возможность шарить память между потоками
Так стрелять в ногу даже в байтоёбском гейдеве считается зашкваром.
Мне казалось это настолько очевидные вещи что их не надо еще дополнительно объяснять. Но если надо объяснять необходимость типов в рантайме, то я не вижу смысла вообще дискуссию вести. У нас с тобой очень разный уровень выходит.
https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#map-java.util.function.Function-
https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#filter-java.util.function.Predicate-
https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#reduce-java.util.function.BinaryOperator-
Разумеется разный.
Уровень давамакаки это самое дно мира айти. Даже пхпшник выше. То что дава макака жить без типов не может - не значит что и другие не могут. Вон обычная макака без бананов не может. А люди могут
Так я про опыт говорю, квалификацию, вот это. А не про тайтл в компании и твою зп. Зп и синьйорскую можно получать будучи джуном.
Я тебя разочарую, но как каждый нормальный программист, я не привязываюсь к одному конкретному языку.
Ну так да, это другое - у жавы мап в ИНТЕРФЕЙСЕ, а у JS - в ПРОТОТИПЕ. Значит в JS map есть, а в Java - нет.
Нет. Из каробки не работает без ебли. Ява примитивна. Один древний for цикл где условия вручную расписываешь вместо for x in y {}. Куча устаревшего бойлерпринта.
Я тоже не привязываюсь. Просто радуюсь что быстро свалил из жабоиырпрайза ибо это худшее говно с кучей Легаси и говноязыком
>Один древний for цикл где условия вручную расписываешь вместо for x in y {}.
Опять, вылезай из криокамеры, 2000 год закончился 20 лет назад.
https://www.ibm.com/developerworks/ru/library/j-forin/index.html
Да деб, представь себе вакансия называет го разработчик. Извини, в следующий раз откликнусь на "метнусь кабанчиком на любую работу"
>Из каробки не работает без ебли
Из коробки его все , вот абсолютно все коллекции поддерживают.
Ух зачем ты его так приложил
В контекте разговора о твоей квалицикации ты озвучил название своей вакансии. Нууу...медицина тут бессильна, я полагаю
Что происходит на бэке?
Мне не по приколу писать (или что хуже - разбирать) проекты без ООПа на динамикопараше, поэтому Нода с Экспрессом сразу идут нахер
>Эта другое. Похуй что я могу работать жавамакакой главное я в душе латасаентист значит и квалификация у меня такая
))0)
Я на бэке сижу (сидел по крайней мере). Фронту простительно. На бэке должна быть только статическая типизация. Мой первый ЯП был Питон, и именно благодаря ему я сумел полюбить Жаву, когда у тебя проект на 150к чистых строк кода динамикопараши, то без ООП парадигмы разобраться в нем в срок нереально, а динамическая типизация будет постоянно подбрасывать ахуительные сюрпризы, я этого говна несколько чанов съел. Когда делаешь "тяп-ляп и в продакшн" можешь на чем угодно код высирать, а когда кодовая база начинает расти или просто задумываешься о последствиях, ставки меняются
Я на бэке мало писал. И сейчас теоретизирую. Но на всяких эликсирах же пишут люди и ничего, работает
>пишут люди и ничего, работает
У нас тоже сервисы для чата "работали". Мои первые сайты на Джанго и Фласке тоже вроде как "работали". А когда смотришь глубже охереваешь от количество проблем, явных и неявных
Именно поэтому обобщаю их через И а не ИЛИ
Ну уотсапы всякие же генерируют миллионные потоки как-то на бэке. А это не хухры мухры тоже. И ниче не жалуются. Все же думаю это реально. При наличии нужных инструментов не жс
Так а хули ты вообще в разговор тогда лезешь, мальчик? В эликсире есть и типы и аналайзер для них.
И что?
Это вам, реактодебилам навязали фп и вы теперь сделали из него прямо религию.
Раскрою тебе один большой секрет, друг мой. В сетевом коммьюнити, где ты видишь какие-либо обсуждения, практически нет разработчиков, тем более нормальных.
пидоры
У меня претензия только одна и я её озвучил выше, это то что из фп устраивают культ
Джава - легаси говно, признайте это. Единственное ваше спасение - котлин. Как и для жс единственное спасение - тс.
>строгую и нестрогую типизация
Такого вообще не существует. Есть weak и strong. Вот эликсир второе. А на счет динамический или статик, я скинул выше диалайзер
Это и имелось в виду. Строгая и есть strong. Насчёт диалайзер хз. Что это такое. Я про эликсир из коробки говорил. Так и и джаваскрипт можно назвать статическим приведя в пример тайпскрипт
Первый - сишный паттерн, второй плюсовой.
devDependency
Надо получить значения с нескольких полей для ввода текста, сравнить: не равны ли они нулю и не равны ли значению пропса.
Пытаюсь отобрать нужные значения способом по ссылке ниже.
https://pastebin.com/yMZHAiWE - какого-то чёрта в объекте остаются записи с нулями, т.е. полностью очистить объект не получается.
Есть идеи лучше?
И ещё. В JS есть подстановка?
Имя поля для ввода и имя пропса частично совпадают.
Можно как-то сверить name == this.props.name подстановой?
Пушо как перебрать пропсы я хер знает.
П.С. Объяснил как мог.
Двачую. ООП-параша и ФП-помои не нужны. Процедурщина is the new black.
Например я создаю элемент, жму ок. Данные отправляются на сервер, с сервера приходит ответ с отправленными данными. Эти данные нужно диспатчить в редакс стейт, или сделать полноценный запрос к серверу, для получения всех актуальных задач?
ебаться будешь долго, проще взять готовую библиотеку.
Тебе придется обрабатывать позицию курсора, буфер обмена и еще много чего
Я не про асинхронные запросы спрашивал, а про то, как правильно организовать запрос к бд.
После того как я делаю POST, мне приходить response.data с данными одной задачи. Далее я могу либо:
1. Задиспатчить данные одной задачи в стейт
2. Сделать запрос ко все БД, тем самым у меня будет самый актуальный стейт.
Но в случае, когда я диспатчу ответ, то у меня вроде нет проблем с тем, что стейт приложения и БД выглядят по разному. Как все таки лучше поступить?
вебсокеты?
Понял спасибо.
Второй. Первый вообще только синтаксис объясняет. А втором хоть про dom и все такое обьясняется
Спасибо. Посоветуй еще ide/редактор для html, css, js. С автодополнением, отладкой. И чтобы можно было сразу видеть изменения на странице.
Благодарю.
Реакт не супер сложный, но жутко популярный. Советую вкатываться в него. Хуярь какой-нибудь тудулист, заливай на гит и ищи оффер.
Двачну вопрос
>а сколько времени на вкат надо?
А зачем тебе точные сроки? Вот тебе назовут вплоть до дней и что ты с этой информацией делать будешь?
Найди список тестовых для джуна и пытайся их пилить. Дальше уж как повезет.
В этом треде просто пиздаболы, которые за попиздеть.
К нам такой еблан устроился на работу, 25 лет, речь и поведения 14 летнего подростка. Говорит натурально как олигофрен, каким то даже не пикабу, а хуй пойми каким сленгом. Он в прогинг вкатываться хочет но пока вкатывается в замену катриджей в принтерах, представляю что он может на форумах высирать.
СРОЧНО, бамп вопросу.
Усугубляется все тем, что скоро мне будут искать напарника.
Вопрос вот в чем: я люто говнокодил просто пиздец куски говна по проекту раскиданы.
Через месяц планируют искать напарника, но в коде у меня полная хуита
что делать?
1) признать что я говнокодил и просить менеджера на коленях дать мне 2 недели на исправления + признание что я лох
2) Уволиться до тех пор пока не пришел новый человек и не разъебал меня за мои косяки
3) сделать вид что так и должно работать, а новому человеку говорить: да ты просто ничего не понимаешь! т.е. играть на публику, но лично ему признаться и свалить вину на наше руководство (да они блять меня гнали как суку по дедлайнам)
document.querySelector('div.glek').childNodes.forEach(i => i.nodeType == 3 && i.remove())
Никак.
>>студенты?
А кто еще, там половина статей - заказуха от компаний, а вторая половина "боже я выгорел", и "как заставить свой мозг работать на 110 процентов, в то время как я хочу ковырять пальцем в жопе"
Забудьте про 3 месяца как раньше.
в 2020 нужно знать typescript как минимум.
Говори менеджеру что уже прошло столько то времени, и наступил очередной планируемый этап рефакторинга. Тех долг сам себя не выплатит.
Второе думаю.
Станешь сильнее морально, и как специалист.
Ты просто не поверишь, но как мало в современном петушином мире нормальных людей готовых к ответственности, готовых ее выдержать, и ее преодолеть.
- Я проебался, мне теперь месяц надо все переписывать
-Ты что сука, а клиентам мы что скажем? За что тебе деньги платить этот месяц? какие новые функции будут? Зачем мы тебя наняли, мы думали ты специалист! Ты же писал что являешься Senior разработчиком!
Лучше - увольняйся. по опыту скажу, после признания отношения к тебе сильно ухудшится со всеми вытекающими.
НИКОГДА НЕ ПРИЗНАВАЙ ПОРАЖЕНИЕ, все косяки проекта будут на тебя кидать в течении всей жизни.
Да и код ты вряд ли исправишь как нужно, слегка улучшишь.
Иди на новый проект и начинай все с чистого листа.
Перед уходом постарайся публично сказать: Я пишу документацию.
В случае чего, нового разраба будут тыкать носом в документацию, ты будешь чист так сказать!
Есть проект на FLOW , ушел через неделю из компании после того как узнал о его гибели.
Писал на react Class , уволился сразу же как вышли хуки
Работодатель - это не только бабки, но и полигон для экспериментов и оттачивания мастерства
Пфф, "всего", да это уже легаси.
С одной стороны - рефакторинг это ценный опыт, тут ты узнаешь как не надо было делать, почему, и почему теперь это долго рефакторить.
Если ты решишь остаться, то как писали выше, это не ты проебался с кодом, а они - с требованиями и сроками.
Если менеджер нихуя тебя не слуашает - можешь слать их нахуй.
Составляй пикрелейтед, лул.
Ты бы согласился на это в момент испытательного срока? У тебя задача проявить себя, а ты тратишь 3 месяца на исправление чужих косяков.
Руководство не оценит.
не парься, просто работай будто всё ок. заставят переделать - переделай.
- Иванов, а почему вы раньше не делали рефакторинг? сказали бы, дали бы вам время, по дню в неделю, а теперь вы хотите 3 недели на все потратить? уволен сука!
Ты считаешь нужно проявить себя, отхуесосив коллегу (тебя) за говнокод и нажив себе врага? Я бы прикрыл братишку от начальства. Терпеть не могу ебаное начальство и вечно с ними ругаюсь наверно поэтому я безработный
Переписывать говнокод - тоже опыт.
Без вас разобрался
Ты тут сидишь зачем то байтоебишь на js как какой то c++ бог, но при этом задаешь переменные через var. Так низя.
Почему? Кстати во всяких справочниках пишут let. Но я посчитал разницу не существенной. Область видимости в фигурных скобках вместо фукнций. Вроде самое главное. Ну раз ты советуешь, то буду писать let. А честно говоря мне на жс почти похуй. Я просто параллельно пишу браузерную игру и сервер на плюсах. В жсном коде у меня даже структура программы сама по себе далеко от идеальной. Я хоть и стараюсь писать чтобы это было хотя бы сколько нибудь адекватно, но иногда мне не хочется уже написанное ломать, потому что хуй знает как оно работает. Тупа с сайта какого то спиздил
И тут тоже понял>>89219
Больше не буду спешить задавать вопросы, пока пару страниц в гугле не просмотрю
Тебе за такое любой линтер даст пизды.
И сюда такие вопросы задавать бесполезно, тут сидят макаки вкатиши, которые в таком вообще не понимают нихуя.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/setUint32
Вот сюда лучше лезь.
Наверняка есть какие-нибудь транспайлеры чтобы с++ в жс превратить. А ещё уже сейчас вроде можно прям юзеру в браузере WebAssembly скормить.
Хуйню какую-то написал Без контекста: что там там у тебя за поля, формдата, эта мутная переменная какого-то зис, нельзя понять.
constructor(name,...args) {
super(name);
....
Ясно. Вместо того чтобы тралить - мог бы помочь.
https://learn.javascript.ru/formdata
>формдата
В неё сграблены параметры полей ввода с формы: имя и значение.
Нужны околонулевые, с опытом 1-2 месяца вката. Чтобы тренить GIT, что нибудь коллективно придумывать и реализовывать. Все как на галере, только без стуканья начальника. Попенсорс двачерский. Мне кажется это хороший опыт был бы.
@ded_vkatilsya
>>89286
Нахуя тебе вообще трогать полученную формДату?
У тебя есть данные формы, которые ввел юзер. То, что ввел юзер - неприкасаемо. Не трогай их, блять!
Просто отфильтруй результат в теле функции.
https://jsfiddle.net/wy1nv9o3/33/
>>89280
Если у тебя реакт - просто заведи в локальном стейте объект специально под поля формы этого компонента. Ты в любом случае будешь их как-то валидировать перед отправкой, вот и добавь миддлваре для этой валидации, чтобы проверялось не только на пустоту, но и на значение.
Ну а на нули можно просто minvalue поставить в цифровом инпуте, это с точки зрения юзабилити вообще хороший вариант.
ксж проверить я твой вариант уже не могу, но да, уверен что как-то можно. Я еще на stackoverflow вопрос задал. Я уверен, что в следующем году у них что-то подобное будет
Кроме двух последних, все значения - строки. Последние значения одинаковые. А строки могут различаться.
Нужно объединить их в один объект. При этом строки склеить через запятую, если строка первого объекта с соответствующим ключем не содержит строку из второго массива с этим же ключем.
{key1: 'ass', key2: 'bimbo', key3: 'frystaylo, rakamakafon', keyNull: null, keyLast: true}
{key1: 'jopa', key2: 'bimbo', key3: 'rakamakafon', keyNull: null, keyLast: true}
Нужно получить:
{key1: 'ass, jopa', key2: 'bimbo', key3: 'frystaylo, rakamakafon', keyNull: null, keyLast: true}
Как это сделать эффективнее всего с меньшим количеством кода (без циклов и рекурсий)?
Господин байтоеб, ты можешь расказать, или скинуть что почитать на тему tcp сокетов.
В ноде я погружаюсь в анальные реки сокетов, и вот какой вопрос - допустим сервер отправляет на клиентский сокет 10 байт. Чисто буфер.
Как я понимаю TCP доставит клиенту эти 10 байт несколькими TCP-пакетами. Вопрос такой - у меня открыт сокет, сначала я отправляю клиенту картинку, допустим 200 байт, а следом отправляю текст 10 байт.
Как мне на клиенте понять что в буфере разные данные? Как понять где граница потока байт с картинкой, и потока байт с текстом? Когда данные отправляются буфером через сокет у них есть какая то стандартная структура? ОП-коды, заголовки?
Если че, я ток въезжаю в эту относительно низкоуровневую тему.
пс. так то я больше пхп макака.
Попенсорс же. Но можем прикрутить донат и если 300кк/наносеки оценят и сделают пожертвование, поделим на всех поровну.
В чем проблема-то? Создаешь копию первого объекта и потом проходишься по второму, дописывая нужные поля в копию. Почему без циклов, что за тупое условие?
>меньшим количеством кода (без циклов и рекурсий)?
Также как это сделал ты. Смотришь на два объекта и ручками пепеписываешь нужное в результирующий объект.
Ну я вообще websocket использую сейчас. С ним из js проще оказалось работать а голый tcp на стороне js клиента в браузере вообще как я понял открыть нельзя. Могу что то не то сказать. Лично я бы tcp заголовки не трогал бы. Я бы нужную информацию с данными вместе отправил. Вот я сейчас делаю у себя так (мне нужно отправить сведения и игровой карте): первые 8 байт это размер по длине и ширине (по 4 байта). На основе этих данных сервер и клиент могут вычислить длину блока с данными о карте. Ну и соответственно знать откуда и куда читать. А всякую дополнительную информацию типо создателя карты я буду отдельными запросами отправлять, просто чтобы не возится с такой фигней как длина сообщения. Ну и просто мне кажется более логичным, что заголовки tcp и заголовки в которых ты устанавливаешь свои данные на разных уровнях абстракции находятся. Мне кста 16 лет, у меня и опыта так то не много. Я конечно написал, как бы сделал я, но для уверенности может сходить в какой нибудь байтоебский тред.
Если короче, то суть моего сообщения это отправить впереди всей этой информации 2 или 4 байта, чтобы понять сколько байт занимает картинка.
Можно создать lock-файл, занять его и на него ориентироваться. Существуют готовые либы делающие подобное?
class CurrentAccountConfigStore extends Store<CurrentAccountConfig>
Генерики же. Используются абсолютно везде, не только в наследовании.
ПЕРЕКАТ >>1789637 (OP)
ПЕРЕКАТ >>1789637 (OP)
ПЕРЕКАТ >>1789637 (OP)
ПЕРЕКАТ >>1789637 (OP)
ПЕРЕКАТ >>1789637 (OP)
ПЕРЕКАТ >>1789637 (OP)
ПЕРЕКАТ >>1789637 (OP)
ПЕРЕКАТ >>1789637 (OP)
ПЕРЕКАТ >>1789637 (OP)
Бамп же, выручайте, анончесы
Ну ты молодец. Я в два раза старше, лол. Я всю это байтовую арифметику еще в вузе забыл, сисадминил сотню лет, недавно обратно в прогинг заехал.
>>первые 8 байт это размер по длине и ширине
Я так же к такому пришел решению. Как пример - фрейм в вэб-сокетах взял.
Твой пост >>1790903 →? Так вопрос в склейке данных? Я могу показать чуть позже как я это сделал в js. В ноде по идее также можно.
Сорр, что через хер пойми сколько ответил. Да это мой пост был, я тут по ходу дела чуть теории поднадрочил немного. В ноде много дефолтных функций для работы с бинарными данными, склеить, получить срез , в том числе и функции которые считывают из бинарника число нужной длины в байтах, в том числе и порядок записи байт. Так что для того что бы реализовать свой фрем вэб-сокета у меня информации хватает.
Но все равно скинь мне то как ты это сделал.
Учебник что посоветовали в С++ треде норм?
Разбираться в Редаксе != фигачить однотипный Редакс-код по бойлерплейтам. Если бы разбирался, то понимал бы основные типы данных вроде массивов и что такое редьюсер (у которого нет стейта лол - это чистая функция). Редакс стор с экшенами - это по сути БД которая существует в рантайме приложения.
> Но все равно скинь мне то как ты это сделал.
Пока ноут не под рукой.
> Учебник что посоветовали в С++ треде норм?
Он же ,кажется, вообще по сишке. Зачем?
Ну хз честно. Зачем вообще учебник? Просто знать как данные в компьютере хранятся, уметь работать с разными системами счисления, прочитать про битовые операции, ну и думать головой конечно. Это все гуглится и на быстро читается.
Если тебе интересно, то вот как я передаю карту на сервер. Там есть мусор в виде отладочного кода типа console.log, но оно работает. На сервере все нормально. Хотя, конечно, может быть такое, что я что то не досмотрел и не учел, но пока вроде все ок.
https://pastebin.com/Ef3e9WAd
Это копия, сохраненная 12 марта 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.