Задать вопрос
  • Какой простой способ обьеденения двух массивов на java?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Я использую стримы vavr :
    public static void main(String[] args) {
            var s1 = Stream.of(2, 1, 3); // Stream < Integer >
    
            var s2 = s1.zip(List.of(7, 8, 9));  // Stream <Tuple2< Integer, Integer >>
    
            var integers = s2.map(tuple2 -> tuple2._1 + tuple2._2).collect(Collectors.toList());
    
            integers.forEach(System.out::println);
        }


    Если листы разного размера, оставшаяся часть в расчетах не участвует.
    Ответ написан
    Комментировать
  • Какой простой способ обьеденения двух массивов на java?

    @prince_pagani
    flutter developer
    public static void main(String[] args) {
            var s1 = Stream.of(2, 1, 3); // Stream < Integer >
    
            var s2 = s1.zip(List.of(7, 8, 9));  // Stream <Tuple2< Integer, Integer >>
    
            var integers = s2.map(tuple2 -> tuple2._1 + tuple2._2).collect(Collectors.toList());
    
            integers.forEach(System.out::println);
    math.max(s1,s2);
        }
    Ответ написан
    Комментировать
  • Какой простой способ обьеденения двух массивов на java?

    @Sergey_USB
    Math.max(первыймассив, второймассив)
    Ответ написан
    Комментировать
  • Как в ванильном JS строить цепочки функций?

    muzikant777
    @muzikant777
    PHP/Vue разработчик
    Паттерн, о котором вы говорите, называется Fluent interface

    Собственно, ссылка ведёт на пример реализации:
    var Car = (function(){
    
    	var speed, color, doors, pub;
    		 
    	function setSpeed(new_speed) {
    		speed = new_speed;
    		return pub;
    	}
    	 
    	function setColor(new_color) {
    		color = new_color;
    		return pub;
    	}
    	 
    	function setDoors(new_doors) {
    		doors = new_doors;
    		return pub;
    	}
    
    	pub = {
    		'setSpeed': setSpeed,
    		'setColor': setColor,
    		'setDoors': setDoors,
    	};
    
    	return pub;
    
    })
    	
    // Обычная реализация
    myCar2 = Car();
    myCar2.setSpeed(100);
    myCar2.setColor('blue');
    myCar2.setDoors(5);
    	 
    // Текучий интерфейс
    myCar = Car();
    myCar.setSpeed(100).setColor('blue').setDoors(5);
    Ответ написан
    2 комментария
  • Какие вы знаете способы выполнения тяжелых задач на node.js?

    MAKAPOH
    @MAKAPOH
    многостаночник
    В дополнении к перечисленому, в nodejs недавно появилась эксперементальная возможность запускать код в отдельных потоках, называется Worker Threads.
    Ответ написан
    1 комментарий
  • Какие вы знаете способы выполнения тяжелых задач на node.js?

    kshshe
    @kshshe
    Frontend developer
    Можно запускать дочерний процесс, в котором выполнять тяжелые задачи без блокировки основного.
    Документация
    Ответ написан
    Комментировать
  • Как понять сколько тредов способна выдержать node.js?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    Очень часто под трэдами имеют ввиду как потоки так и параллельные процессы.

    Если под трэдами вы подразумеваете процессы, то в nodejs они реализуются с помощью worker-ов. других реализаций насколько я знаю в ноде нет. Про них немного написано тут и тут (в комментариях намекают на тесты производительности и прочего, возможно даже кто то проводил оные)
    Если же вы интересуетесь потоками, то о с ними можно немного ознакомится тут

    Для более развернутого ответа хотелось бы более развернутый вопрос.
    Ответ написан
    9 комментариев
  • Можно ли в NODE.JS наблюдать пользовательский цикл событий?

    alex_keysi
    @alex_keysi
    Помог с решением? Отметь “правильный ответ”
    Может подписаться на них? И когда кто то эмитнул событие, то записать в массив что произошло событие. Когда кол бэк на событие выполнится, то удалить его из этого масива.
    Или у ноды может есть апи для считывания эвент лупа. Но там могут лежать и сторонние кол беки. От других библиотек. Всякие fs модули
    Может это тебе подойдет
    https://stackoverflow.com/questions/30757182/how-t...
    Там апи с libuv. Для считывание из евент лупа
    Ответ написан
    Комментировать
  • Как можно отслеживать внутренние параметры выполнения в node.js?

    Deissh
    @Deissh
    I like Python, Node.JS, Go, pain, bugs and my cat.
    Можно использовать PM2, но там только половина необходимых для вас параметров.
    Также в процессе разработки можно использовать отладчик от Google Chrome.
    Ответ написан
    Комментировать
  • Как реализовать SPA-роутинг на react-express?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Используйте react-router-dom. На сервере отдаете по корневому пути или по '*' html с приложением, весь роутинг будет происходить на стороне клиента.

    Руководство по react-router.
    Ответ написан
    5 комментариев
  • Верстка с нуля: какие основные этапы работы?

    pavelkarinin
    @pavelkarinin Автор вопроса
    Full Stack Web Developer
    На этот вопрос есть подписчики, не ожидал, что столько, но это говорит о том, что вопрос интересен и это хорошо. Поэтому хоть и я его автор, но отвечу тоже. Я, как человек, который пережил эпохи Mosaic, Netscape и IE (старички меня поймут), отвечу ещё и по той причине, что часто, нет … очень часто сталкиваюсь с тем, что действительно "талантливые" начинающие Front-End тратят попусту свое время, из-за незнания такого, казалось бы, вопроса ни о чем (как выразился Froggyweb) об организации своего workflow и начинают не с того, с чего стоило бы начинать в результате это приводит к тому, что некоторая работа просто дублируется, переделывается и т.д. лишь потому, что изначально об этом не подумал.

    Дизайнеры "лепят" макеты кто во что горазд, и кто на чем может, и кто как может, особенно начинающие. Клиенты, с целью сэкономить, частенько прибегают к услугам именно начинающих дизайнеров, иногда явно очень талантливых, но ещё не постигших некоторых норм поведения в плане того, в каком виде следует представить макет верстальщику. Ведь для клиента: красиво, вроде все кнопочки есть, картиночки есть и ссылочки на месте - все хорошо. Нам же приходится это расщеплять.

    Я работаю на трёх мониторах: центральный - вёрстка, левый - результат, правый - дизайнерский макет + чего ещё что надо по ходу пьесы, типа киношки, статейки и т.д.;

    Среда:
    в Visual Studio - для сложных и крупных проектов, плотно подсевших на Back-End;
    в Visual Studio Code - для проектов попроще;
    хе-хе в Блокноте - для совсем простых))

    Музыка – это святое, тем более я её тоже иногда пишу, но слушаю всегда чужую на SoundCloud))

    Создаю папку решения

    Создаю в ней подпапку всегда с одним и тем же имеем: _native_design, в которую (в зависимости от формата портирую дизайн)

    Выбираю явственно общие компоненты страниц (шапка, контент, меню, боковые меню, подвал и д.р.) и для каждого создаю простой пустой файл scss с названием, соответствующим компоненту.

    На этих компонентах выбираю неизменяемые и изменяемые элементы и определяю для них селекторы в соответствующих файлах scss (тут всегда туго с названиями, поскольку от природы я не очень одарён)

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

    Исходя из сетки, и из минимально необходимой версии браузеров (речь конечно же об IE), создаю файл _base.scss который наполняю сбросом стиля, и объявлениями для grid (ну все это не вручную, а сниппетами, импортами, инклудами, которые у меня подготовлены почти на все случаи жизни).

    Стараюсь придерживаться отлично зарекомендовавшего себя принципа "one base", который подразумевает единую основу для всего макета, т.е. есть одни базовый каркас (основа), и эта основа является местом для навешивания на неё всего необходимого. Часто вижу ошибки в этом плане, когда доходит до того, что ради одно "нестандартного" компонента страницы, встречающегося НЕ на каждой странице, используется отдельный (и не один) базовый стиль (по сути, файл), в котором 90% каскада продублировано с другим и т.п.

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

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

    Потом начинается работа с адаптивностью. Я всегда сворачиваю контент, т.е. начинаю с широкого формата, потом desktop, tablet, mobile. Тут ничего сложного нет, особенно когда есть сетка, исходя из того насколько много компонентов плотно зависят от размеров, выбираю как прописывать медиа-запросы, т.е. либо запрос внутри селекторов блоков, либо селекторы внутри запроса. Как правило, используется 4-6 точек + по две на каждую основную точку, т.е. на 1px больше и на 1px меньше, но не всегда, зависит от макета. Не забываем про DPI.

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

    Потом начинается JS, т.е. наполнение интерактивом уже не средствами CSS, а именно скриптовым.

    Потом начинаем крутить-вертеть макет везде, где-только можно, исходя из требований клиента о поддержке минимальной версии браузеров. Тут сложностей особо не бывает, так как с браузерами в плане поддержки стандартов уже полегче, и юзеры стали обновлять чаще свои браузеры. Так или иначе изначально верстаешь с оглядкой на тут самую минимальную версию. Хотя бывают еще запросы на поддержку IE7, особенно часто от клиентов из средней Азии.

    Короче, как-то так… ради ответа, открыл Word и накатал этот текст. Уверен, что что-то пропустил, о чем-то не сказал, но не судите строго))

    UPD:
    Забыл сказать: про измерения скорости загрузки и скорости отрисовки. Этому стоит уделять внимание особенно в макетах со сложной композицией! Следует помнить о том, что перед отрисовкой браузеры проводят серьезный анализ DOM и каскада стилей, есть способы оптимизировать эти моменты, это важно для мобильных устройств, если у сайта нет для них отдельной версии. Это же касается и JS в части вашего ручного кода.

    UPD2:
    Ребят, я Skype указывал не для того, что вы присылали мне на него вопросы. Есть уточнения, пишем сюда или создаем новый вопрос на Тостере. Спасибо за понимание.
    Ответ написан
    4 комментария
  • Верстка с нуля: какие основные этапы работы?

    Krasnodar_etc
    @Krasnodar_etc
    fundraiseup
    1) Определение инструментов, их настройка
    2) Выделение общих/переиспользуемых компонентов
    3) Самое сложное - придумывание названий
    4) Вёрстка
    Ответ написан
    1 комментарий
  • Верстка с нуля: какие основные этапы работы?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Начинается с https://www.mosne.it/playground/mosne-flexbox/
    и этим всё и заканчивается. Он - полностью покрывает все потребности.
    UPD: Когда админка или SPA - иногда подрубаю свой велосипед: xmoonlight.github.io (включая includeHTML)
    UPD2: А вот это для тех, кто любит кодить на jQuery: смотреть ролик.
    Ответ написан
    1 комментарий
  • Верстка с нуля: какие основные этапы работы?

    mrerberg
    @mrerberg
    Yep
    Mikhail @NooNoo
    Рубрика "Давай глянем,что там у нас есть". Я использую такие штуки в работе:
    Препроцессор: LESS
    Работа с макетами: PH или Sketch.
    Сборщик: Gulp
    Методология: БЭМ (но начал заглядываться на SMACSS)
    Консоль: консоль :D
    Место хранения репозитория: GitHub.

    1) Создаю репозиторий на гите.
    2) Создаю локально структуру проекта. (папки для картинок и тд).
    3) Открывают макет
    4) Создаю первые наброски в html (создаем классы по выбранной методологии), в голове держим,что mobile first. Подключаю основные фалы препроцессора (шрифты, глобальные стили, миксины, класс visually-hidden, переменные)
    5) Выстраиваю сетку. (flexbox или гриды)
    6) Начинаю стилизовать мобилку -> планшетную -> десктопную версию.
    7) Отшлифовка кода и поиск более рациональных решений, где это допустимо.
    8) Донастройка сборщика, который все в итоге соберет продакшен версию.

    Вкратце как-то так)
    Ответ написан
    2 комментария
  • Верстка с нуля: какие основные этапы работы?

    Vlad_IT
    @Vlad_IT Куратор тега Вёрстка
    Front-end разработчик
    Использую vscode+webpack+pug+scss+бэм. Из физических инструментов, основной моник: lg ultrawide 29um69g, рядом прикручен моник от ноутбука повешенный вертикально, подключенный через универсальный скаллер.

    0) Запускаю Spotify :-)

    1) Произвожу установку всех необходимых модулей для сборки. В моем случае у меня набор конфигураций для webpack (отдельные файлы для pug, scss, static и.т.д., выбираю что нужно).

    2) Запускаю avocode, загружаю в него макет. Определяю в нем переменные (в то же время записываю их, чтобы сразу кинуть в scss файл) для цветов, размеров шрифтов и.т.д. чтобы при получении кусочков кода из него, он сразу расставлял переменные.

    3) Запускаю VS Code, открываю нужную папку.

    4) Пишу размету на Pug. Пишу с БЭМ, если встречаю повторяющийся блок, то открываю файл _mixins.pug, в который пишу миксины для повторяющихся блоков, например товаров, пунктов меню, каких-то блоков и.т.д. Pug умеет делать циклы, это ускоряет сильно.

    5) Когда HTML готов, начинаю делать каркас. Если дизайн сделан по сетке, определяю контейнеры, колонки, строки в свои классы (не пишу в html тучи классов аля col-md-6, а пишу в SCSS инклуды в нужные мне блоки, типа @include make-col(2) и.т.д.).

    6) Экспортирую картинки из Avocode. Очень делается просто, указываю папку и просто кликаю экспорт и ввожу название файла и расширения. Преимущественно для иконок использую svg, если нет svg, то ищу эту иконку в интернете (дизайнеры редко рисуют иконки сами, но зато любят вставлять их не в векторе). Если иконка простая, могу сам ее в inkscape обвести, ну и если нет, то экспортирую png в размере (благо авокод это позволяет, если конечно дизайнер не вставил в исходном маленьком размере). Когда есть контакт с дизайнером, трясу его, ибо растр это плохо для иконок.

    7) Пишу стили блоков из страницы. На этом этапе можно на втором монике параллельно смотреть футураму или
    Арчера :-) Но чаще на широком монике слева браузер, справа VS Code, а на втором монике Avocode (может меняться местами с браузером). Мысленно нарезаю страницу на блоки. Для каждого блока (БЭМ) создаю отдельный scss файл (кто-то даже для элемента создает, но мне лень), из него сразу выписываю все селекторы. Иногда могу сначала выписать все селекторы со страницы (но так лучше не делать, т.к. во время работы может потребоваться изменить что-то в разметке), но чаще для одного блока выполняю этот пункт и за ним сразу выполняю пункт 8, потом для нового блока опять 7 и 8 и.т.д.

    8) Пишу css код вместе с Avocode, у него беру нужные мне параметры (а он уже подставил в них переменные), и вставляю в мой код. И параллельно сверяю со скрином макета используя вот это расширение https://chrome.google.com/webstore/detail/perfectp...

    9) Пишу адаптив. Я не могу привыкнуть к методологии mobile-first, поэтому пишу всегда сначала полную версию сайта. Я понимаю, что это чревато всякими проблемами и это типа не модно, но мне норм.

    10) Медиа-запросы пишу прямо в блоках, для каждого блока/элемента/модификатора может быть отдельный медиа-запрос. Но для начала определяю breakpoint'ы для разных экранов (чтобы их не было сотни разных), если использую Bootstrap, то беру его breakpoint'ы.

    11) Добавляю анимашки. Даже если заказчик не просил отдельно (и если не указал отдельно, что нельзя), он все равно будет доволен, а с animate.css+onscreen.js это вообще работа 10 минут. Сложные анимации обговариваю отдельно, чтобы не сделать ненужную работу.

    11) Все снова сверяю, пишу скрипты где надо. Для слайдеров в 99% случаев подходит slick (с доработками конечно, но там хорошее API), для других случаев могу написать свой.

    12) Сдаю заказчику и жду ответа сидя на тостере/пикабу.

    Это чисто мой опыт, опыт фрилансера, не знаю, как делают другие и не могу на 100% утверждать что это 100% правильный способ. Я так и не смог заставить свой конфиг webpack правильно вставлять спрайты svg.
    Надеюсь чем-то поможет мой ответ.
    Ответ написан
    7 комментариев
  • Как можно реализовать подобную передачу эмитера оптимальнее?

    @vshvydky
    Эмиттер не надо передавть, делаешь и слушателя и рассылку внутри одного класса, во вне можешь потом передавать как экземпляр объекта и да
    вызов родительских методов – через super.method(...args)
    Ответ написан
    2 комментария
  • Как передавать EventEmitter'ы между модулями в node?

    0xD34F
    @0xD34F
    let obj = new (require('./file1'));

    Если без скобок вокруг вызова require, то получается, что new относится к require, а не к тому, что он возвращает. Конструктор не вызывается и obj оказывается не экземпляром Test'а, а самим Test'ом.
    Ответ написан
    3 комментария
  • Что можно сделать с Buffer в Node.js?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    В основном для работы с бинарными данными, т.к. джаваскриптовые строки для этого не подходят, а typed arrays тогда еще не ввели в стандарт.

    В дикой природе чаще всего встречается, когда читаешь файл — получаешь инстанс Buffer.
    Ответ написан
    Комментировать
  • Как показать/скрыть меню в visual code?

    sysoev-dev
    @sysoev-dev
    Изучаю front-end
    // Определяет видимость строки меню. Значение toggle указывает, что строка меню скрыта и для ее вывода нужно один раз нажать клавишу ALT. По умолчанию строка меню не будет отображаться только в полноэкранном режиме.
    "window.menuBarVisibility": "toggle",

    // Если этот параметр установлен, главные меню можно открыть с помощью сочетаний клавиш с клавишей ALT. Отключение назначенных клавиш позволит связать эти сочетания клавиш с клавишей ALT с командами редактора.
    "window.enableMenuBarMnemonics": true,
    Ответ написан
    Комментировать
  • Что такое webhook?

    Negezor
    @Negezor
    Senior Shaurma Developer
    Webhook — механизм оповещения системы о событиях.

    Допустим есть определённый сервис который должен оповещать о событиях когда они происходят.
    Как вариант постоянно запрашивать новые данные на сервере, минус будет скорее в скорости получения данных если на сервере например стоит задержка на получения новых оповещений.
    А вот webhook исправляет этот недочёт, когда происходит событие он запрашивает адрес сайта с параметрами, например example.com/webhook/notification и передаёт в теле POST запроса JSON (зачастую) и там будут свежие данные.

    Простой пример можно посмотреть: создание бота для telegram на webhooks.
    Ответ написан
    4 комментария