Romuald
Привет банда. $aHref.match(/^#/) && $aHref.match(/^tel:/)
Romuald
Подскажите чуток совсем, как записать регуляркой это. Я знаю, что нужно использовать ИЛИ
Anonymous
https://codepen.io/Sergey19940808/pen/paKRwO вот ссылка на html
Ivan
Всем привет)
Ivan
Кто пользуется gulp?
Андрей
Всякие легаси проекты.
Artemy
Всякие легаси проекты.
А что не так с галпом в 2018?
Андрей
А что не так с галпом в 2018?
99.99% проектов имеют шаблонную структуру.
Artemy
Не совсем понял
Евгений
Отличный инструмент gulp. Только сейчас проще вебпак использовать, который специально для js(и около) заточен.
Андрей
Не совсем понял
Функциональность галма излишня почти для всех сейчас. Поэтому смысла в нём не много, люди выбирают вебпак.
Ivan
Привет всем. Что выбрать typescript или flow? Уже задавал этот вопрос в чате typescript. Но там мало подписчиков. Хотел бы больше комментов опыта использования.
Aleksandr
Бери typescript
Dennis
ts
Aleksandr
Для него много IDE. Тот же vsCode. На нем Майкрософт разрабатывает
Ivan
Андрей Васильев указал на существенное преимущество flow перед ts. Как я понял для Flow не обязательно прописывать типы параметров в теле каждой функции.
Dennis
Это не преимущество
Dennis
Это недостаток
Dennis
И в ts тоже не обязательно при желании)
Ivan
Возможно. Но, я думаю, можно и указывать и не указывать. TS не поймет что происходит в функции с этими параметрами, а flow поймет
Ivan
В Typescript постоянно теряются тайпинги в функциях высшего порядка (наприер библиотек реакта). Если такой проблемы нет в flow, то почему не flow вместо ts?
Sergey
во флоу всё зависит от качества тайпингов
Ivan
То есть в typescript всё деревянно, а в флоу можно закрутить так что не распутаешь что от чего зависит?
Sergey
распутать можно
Кылыч
try { res.render('index', { title: 'SweetShop', Lots: lot, Users: countUsers }); }catch (TypeError) { res.render('index', { title: 'SweetShop', Lots: lot, Users: 0 }); }catch (error) { console.log(error); } ругает try expected?
Кылыч
непонятно
Mike
Ребят как называется паттерн в js когда ООП не на прототипах, а на замыканиях, типа такого https://jsfiddle.net/e1kkc2ec/3/
Ivan
Странный синглтон
Mike
это не синглтон
Mike
их можно много создавать и у каждого свои свойства будут
Ivan
Точно точно криво посмотрел
Ivan
Друзья, я вот думаю поучавствовать в Google Hash Code https://hashcode.withgoogle.com Может кто то еще ищет команду?
Ivan
Module pattern
Ivan
Вроде прикольное соревнование
Ivan
не долгое
Ivan
Вот пример задачи Introduction Did you know that at any given time, someone is cutting pizza somewhere around the world? The decision about how to cut the pizza sometimes is easy, but sometimes it’s really hard: you want just the right amount of tomatoes and mushrooms on each slice. If only there was a way to solve this problem using technology… Problem description Pizza The pizza is represented as a rectangular, 2-dimensional grid of R rows and C columns. The cells within the grid are referenced using a pair of 0-based coordinates [r, c] , denoting respectively the row and the column of the cell. Each cell of the pizza contains either: mushroom, represented in the input file as M ; or tomato, represented in the input file as T Slice A slice of pizza is a rectangular section of the pizza delimited by two rows and two columns, without holes. The slices we want to cut out must contain at least L cells of each ingredient (that is, at least L cells of mushroom and at least L cells of tomato) and at most H cells of any kind in total – surprising as it is, there is such a thing as too much pizza in one slice. The slices being cut out cannot overlap. The slices being cut do not need to cover the entire pizza. Goal The goal is to cut correct slices out of the pizza maximizing the total number of cells in all slices.
Mike
Module pattern
спасибо
Ivan
И все это на NodeJs напишем
Ivan
спасибо
Это по-моему плохие практики JS
Sergey
есть же нормальные модули
Mike
Это по-моему плохие практики JS
да, сейчас напишу сюда основной вопрос
Mike
мне надо было вспомнить как это дерьмо называется
Ivan
да, сейчас напишу сюда основной вопрос
Я использую замыкания для кеширования, но не создаю там приватных функций.
Ivan
Да и то не знаю на кой х возвращать из одной функции тело другой. От этого по-моему больше проблем или я что-то не догоняю и упустил.
Mike
Существует такой способ построения ООП в js как Module Pattern Выглядит примерно так https://jsfiddle.net/e1kkc2ec/6/ Такой паттерн много где применён в исходниках typescript и ещё многих других местах, Вот относительно безобидный пример createCompilerHost https://github.com/Microsoft/TypeScript/blob/master/src/compiler/program.ts#L73 Но в checker.ts такой подход привёл к тому что в одном месте собралось почти 30 тыс строк кода, файл настолько большой что гитхаб не пытвается его вменяемо показать https://github.com/Microsoft/TypeScript/blob/master/src/compiler/checker.ts Собственно проблема такого подхода - отсутствие расширяемости. Нельзя ни разделить на файлы такого монстра, ни добавить в него что-то извне. В прошлом году я проводил эксперимент по рефакторингу такой штуки https://github.com/Microsoft/TypeScript/issues/17861 там у меня не было времени сделать правильный биндинг нужных методов и с тупым биндом всего и вся эта штука получила замедление примерно на 25% Вопрос, страдаете ли вы в своих исходниках от применения подобного паттерна (не зависимо js это или ts) и попробовали ли бы вы тул, который за один раз превратит такую функцию в es6 class или в тайпскриптовый класс. Какаую боль вы испытываете от Module Pattern и какие пожелания можете озвучить?
Андрей
Существует такой способ построения ООП в js как Module Pattern Выглядит примерно так https://jsfiddle.net/e1kkc2ec/6/ Такой паттерн много где применён в исходниках typescript и ещё многих других местах, Вот относительно безобидный пример createCompilerHost https://github.com/Microsoft/TypeScript/blob/master/src/compiler/program.ts#L73 Но в checker.ts такой подход привёл к тому что в одном месте собралось почти 30 тыс строк кода, файл настолько большой что гитхаб не пытвается его вменяемо показать https://github.com/Microsoft/TypeScript/blob/master/src/compiler/checker.ts Собственно проблема такого подхода - отсутствие расширяемости. Нельзя ни разделить на файлы такого монстра, ни добавить в него что-то извне. В прошлом году я проводил эксперимент по рефакторингу такой штуки https://github.com/Microsoft/TypeScript/issues/17861 там у меня не было времени сделать правильный биндинг нужных методов и с тупым биндом всего и вся эта штука получила замедление примерно на 25% Вопрос, страдаете ли вы в своих исходниках от применения подобного паттерна (не зависимо js это или ts) и попробовали ли бы вы тул, который за один раз превратит такую функцию в es6 class или в тайпскриптовый класс. Какаую боль вы испытываете от Module Pattern и какие пожелания можете озвучить?
А зачем такое?
Андрей
Почему просто классы не использовать?
Mike
потому что такой подход был популярен в 2003-2014 примерно и есть много легаси кода
Mike
были времена когда не было бабеля и тайпскрипта
Sergey
хуясе "примерно"
Mike
да прошли, а код остался и его нужно саппортить, собственно вопрос, многие ли с таким сталкивались, что не получается его просто сесть и переписать, потому что он огромен
Андрей
А что ты хочешь?
Дима
Существует такой способ построения ООП в js как Module Pattern Выглядит примерно так https://jsfiddle.net/e1kkc2ec/6/ Такой паттерн много где применён в исходниках typescript и ещё многих других местах, Вот относительно безобидный пример createCompilerHost https://github.com/Microsoft/TypeScript/blob/master/src/compiler/program.ts#L73 Но в checker.ts такой подход привёл к тому что в одном месте собралось почти 30 тыс строк кода, файл настолько большой что гитхаб не пытвается его вменяемо показать https://github.com/Microsoft/TypeScript/blob/master/src/compiler/checker.ts Собственно проблема такого подхода - отсутствие расширяемости. Нельзя ни разделить на файлы такого монстра, ни добавить в него что-то извне. В прошлом году я проводил эксперимент по рефакторингу такой штуки https://github.com/Microsoft/TypeScript/issues/17861 там у меня не было времени сделать правильный биндинг нужных методов и с тупым биндом всего и вся эта штука получила замедление примерно на 25% Вопрос, страдаете ли вы в своих исходниках от применения подобного паттерна (не зависимо js это или ts) и попробовали ли бы вы тул, который за один раз превратит такую функцию в es6 class или в тайпскриптовый класс. Какаую боль вы испытываете от Module Pattern и какие пожелания можете озвучить?
Зачастую функцию-модуль принимающую контекст можно заменить на независимые функции миддлвары, так же принимающие аргументы контекста, но больше уже похоже на миддлвары
Ivan
Да и сейчас Module Pattern довольно популярен среди ES5 разработчиков
Mike
А что ты хочешь?
сделать опенсурсный тул для миграции module pattern -> es6 class, по примеру как я делал тут https://github.com/Microsoft/TypeScript/issues/17861
Mike
просто непосредственно мне самому он не очень нужен, но у меня есть куча вещей которые почти всё нужное делают. И юзая тайпскрипт как процессор кода, используя его transformation и rinting api можно сделать автомигратор такого паттерна, чтобы потом его можно было аккуратно разбивать на классы, и как-то декомпозировать
Mike
а тут я хотел услышать насколько это может быть востребовано и какую конкретную боль это может решить
Anonymous
Всем привет. Ребята, скажите ваше мнение по поводу что лучше для 10 системы исчисления, Number или parseInt(val, 10)?
Mike
Всем привет. Ребята, скажите ваше мнение по поводу что лучше для 10 системы исчисления, Number или parseInt(val, 10)?
результат parseInt в итоге number но который обрезало по 32му представлению инта
Mike
number обеспечивает хранение целых точно up to 2**53 что больше чем в 32 х битном инте и меньше чем в 64х битном
Ivan
результат parseInt в итоге number но который обрезало по 32му представлению инта
Может тебе поискать ответ еще в каких-нибудь международных программерских чатах. Может в ватсап такие есть. Заодно если найдешь такие, напиши плз
Anonymous
number обеспечивает хранение целых точно up to 2**53 что больше чем в 32 х битном инте и меньше чем в 64х битном
Разумеется, в моём случае это не 2**53. Если по простому, то какие преимущества Number() имеет перед parseInt()? Скорость?
Sergey
а также не умеет в другие разрядности
Sergey
а в parseInt можно указать radix
Дима
Нужно
Anonymous
а в parseInt можно указать radix
по хорошему, обязательно.
Deleted
Разумеется, в моём случае это не 2**53. Если по простому, то какие преимущества Number() имеет перед parseInt()? Скорость?
Тебе нужны поля в примитивном типе как в объекте? var numberObj = new Number(33) numberObj.customField = ‘Hello’
Дима
parseInt без radix — выстрел в колено
Sergey
ещё вопросы?
Deleted
если нет то используй parseInt
Anonymous
а также не умеет в другие разрядности
я заметил что Number() из пустой строки делает 0
Anonymous
что не очень.
Anonymous