Alex

Alex

С нами с 02 января 2017; Место в рейтинге пользователей: #262
Alex
26 августа 2019, 20:27
+5
Минусуя того товарища выше, я лично минусанул коммент того товарища выше, и только его, но никак не поставил минус самой цмс. Просто он реально достал своим агрессивным маркетингом и спамит октябрь где только может и не может.
Alex
24 августа 2019, 16:04
0
Плюсую за GraphQL.
Alex
20 августа 2019, 23:14
0
Я имел ввиду Vue/React/Angular в админке, вроде тут про нее, родимую, топик. А на чем уже фронт ваять это выбор конечного разраба.
Alex
20 августа 2019, 22:53
0
Очень сомневаюсь что кто-то из нашего сообщества сможет написать каркас (а он нужен хоть какой-то, иначе будет хаос) лучше Vue/React/Angular/etc. Давайте все пилить с нуля еще 10 лет. Кстати, Николай Ланец, также неоднократно писал что использует много готовых решений.
Alex
15 августа 2019, 00:31
+1
Спасибо за ответ.

Да, Railt на перспективу интересный, но я вот пошарился по доке — очень много пустых разделов, мануалов хотя бы минимальных вообще нет, а я не настолько про чтобы полностью ориентироваться по исходникам. Какие-то моменты можно раскурить по коду, но не настолько. По времени дешевле взять что-то более готовое. Собственно поэтому и начал искать альтернативное решение. Этот github.com/folkloreinc/laravel-graphql как я понял умер, этот github.com/rebing/graphql-laravel что-то не очень понравился (субъективно).

Возьму пока Lighthouse вроде все для старта есть, уже даже апишка получается минимальная буквально со старта.
Alex
14 августа 2019, 23:31
0
А можете что-то сказать об этой библиотеке github.com/nuwave/lighthouse? Стоит использовать или все таки курить Railt? Я просто вообще впервые решил gql пощупать. Lighthouse вроде бы тоже ничего — дока понятная, мануалы есть и на гите проект живой.
Alex
13 августа 2019, 19:22
0
Ознакомился. Единственное что смущает, что с момента митапа прошло уже больше года и до сих пор нет релиза и проект находится в dev версии. Непонятно можно ли это со спокойной душой юзать на продакшене. Может релиз и вовсе не состоится, всякое бывает.
Alex
13 августа 2019, 16:04
0
Спасибо. Обязательно ознакомлюсь.
Alex
13 августа 2019, 07:33
0
Спасибо за развернутый ответ. Все таки попробую GraphQL, только на ларке :). Очень подкупает удобство написания запросов с фронта, типизация входных данных и возможность не создавать 100500 роутов. Почти все вопросы как я вижу решаемы.
Alex
13 августа 2019, 06:00
+1
Николай, спасибо за статью. С точки зрения фронтенда довольно удобная штука. Буквально недавно решил поинтересоваться GraphQL (php) но… как-то оно неоднозначно выглядит и вызывает больше вопросов чем ответов, скорее всего из-за отсутствия опыта с данной технологией, а может и нет.
  1. Статусы ошибок — я так понимаю в подавляющем большинстве случаев ответ будет 200 и надо парсить тело ответа, чтобы определить что нам пришло. Не критично, но и не радует.
  2. Бесконечное количество вложенных запросов — насколько понял проблема решаема, можно создать «белый лист» запросов, ограничить вложенность, но это дополнительные телодвижения. Сюда же можно добавить вопрос, а что если клиент решит дернуть все сущности что есть на сайте с максимально допустимым лимитом в одном запросе? Как определить что прилетевший запрос слишком жирный?
  3. Контроль доступа к данным — ввиду того что неизвестно какой запрос придет от клиента, можно элементарно прошляпить и отдать ему то, что не положено. Конечно можно предоставить контраргумент, мол, можно и SQL инъекцию провтыкать, но на мой скромный взгляд вероятность накосячить с gql гораздо больше, особенно когда много сущностей и разного рода политик доступа.
  4. Кеширование — как я понял из того что пока читал, организовать кеширование довольно нетривиальная задача, опять таки из-за того что непонятно какой запрос будет выполнен.
  5. Целостность данных связанных сущностей при update если что-то пошло не так?
  6. Аналитика — в случае REST я могу повесить логирование каждого endpoint и спустя некоторое время, ознакомиться с полученными данными и в случае необходимости оптимизировать/переделать. В случае gql я себе смутно представляю как это сделать.
Единственное преимущество, которое я вижу в GraphQL это удобный доступ с клиента. Отсюда вытекает предположение, что данная технология подходит очень крупным компаниям, которые взаимодействуют с огромным числом разработчиков. Тогда думаю, будет оправдано заморочиться. Или если планируется раздавать большое количество контента без каких-либо хитрых операций с данными. Например, применение gql в каком нибудь сервисе геоданных я вижу вполне оправданным. В какой-то системе а-ля CRM с кучей хитрых операций, политик доступа, повышенными требованиями к безопасности — нет.
Alex
30 июля 2019, 00:25
0
На счет ТВ вы лукавите. Вот тут же пишите, что создали для изображений :)
Alex
15 июня 2019, 15:44
0
Здравствуйте. На карте 2GIS при увеличении пропадают все описания объектов, дороги и тд.
Alex
28 января 2019, 00:21
+4
Спасибо. Надежда мне ни к чему. Сделал уже свой выбор в пользу Laravel и вполне доволен. А простенький сайт я могу и на MODX 2 собрать.
Alex
27 января 2019, 23:54
0
Судя по всему Илон Маск быстрее Марс колонизирует чем выйдет MODX3.
P.S. сам я 3-ю версию уже давно не жду.
Alex
13 декабря 2018, 16:21
0
У меня koa. То есть я так понимаю процесс умирать не должен и надо искать косяк с таймером? pm2 немного юзал, прикольная штука. Там еще походу монитор навороченный есть, но до него пока руки не дошли.
Спасибо вам за советы.
Alex
13 декабря 2018, 14:17
0
Спасибо за ответ. Попробую и ваш вариант. Да, после php, node.js кажется совсем не очевидным и порой непредсказуемым, это вы верно подметили.
Время для выполнения действия я получаю вот так:
var currentTime = new Date()
    var newTime = currentTime.setMinutes(currentTime.getMinutes() + 1)
    var sendTime = (currentTime.getHours()+":"+currentTime.getMinutes())
Конечно если сейчас 12:01, мы добавляем минуту, то выходит вот так 12:2. Но действие все равно выполняется, если интервал небольшой (что странно). Я грешил на этот момент, но как выяснилось приведя время в формат 12:02, то есть с 0, все равно таймер не отрабатывает. Даже если попадаем через 30 мин на 12:45 все равно не работает. Кстати, дело не в формате времени, так как при использовании функции setTimeout() все равно не работает если поставить интервал в 30-60 мин.
Может у меня просто «жизненный цикл» ноды умирает? Сколько вообще живет нода после обращения к ней? Вот описания «поведения» node.js я пока не нашел. То есть в пыхе все понятно, сделал запрос, код отработал и умер, а в ноде как? Сколько живет «процесс» или он вообще не умирает, а в каких случаях умирает, а как сделать чтобы работал постоянно и тд, а что влияет на жизненный цикл процесса. Это все для меня пока загадка.
Alex
13 декабря 2018, 12:47
0
Николай, здравствуйте. Недавно начал интересоваться нодой. Не подскажете более менее внятные туториалы по Node.js, а не как вывести Hello World? В русскоязычном интернете с этим явно проблемы.
Возникла одна задачка, которую я никак не могу преодолеть. При обращении по УРЛ в массив notes заносятся данные, скажем ИД и время +30 мин после обращения (скажем сейчас 12:00, тогда в массив пишем 12:30). Далее я запускаю setInterval и каждую секунду перебираю массив notes. Примерно так:

setInterval(function(){
        for (var i = 0; i < notes.length; i++){
            var curDate = new Date().getHours() + ':' + new Date().getMinutes();
            if ( notes[i]['time'] == curDate ) {
                fs.writeFileSync("log1.txt", "OK")
            }
        }
},1000)
Если время сейчас и время в массиве совпадает, то выполняем действие. И вот тут как раз проблема — если действие нужно выполнить через 1-5 мин после обращения, то действие выполняется, а если через 30 или 60 мин, то нет. Хотя очень редко бывает, что и выполняется, но 1 из 20 раз, примерно. Уже перегуглил все что можно. Не подскажете куда копать по данному вопросу?
Нигде не могу найти ответа по поводу данного поведения — хочет срабатывает, хочет не срабатывает.
Alex
08 сентября 2018, 20:22
1
0
Здравствуйте. Обнаружил такую проблему, возможно я что-то не так делаю.
Есть каталог Сад Огород. В нем категории «Пилы цепные», «Газонокосилки», «Мотоблоки» и тд. У каждого товара есть производитель (msVendor). И вот тут возникает проблема. Создаем поле фильтра для вендоров, создаем правило и назначаем это правило для страницы «Пилы цепные», сохраняем. И вот тут начинается беда.
То есть, создаются УРЛы для раздела «Пилы цепные» с производителями, которых там нет и в помине. Например, пилы представлены двумя производителями — Honda, Hyundai, но также создаются и «левые» типа Пуберт, Макита и тд. То есть, осмелюсь предположить что компонент фигачит всех подряд вендоров, которые назначены товарам не ограничиваясь указанной страницей для правила. С любыми другими опциями та же беда, берутся значения со всех товаров. а не только с товаров указанной в правиле категории.
Вот это вот дело очень мешает жить, во-первых, создаются страницы с пустыми результатами фильтрации, но это можно побороть соответствующей системной настройкой и будет 404. Во-вторых, и главных, вот эта куча мусора которого быть по идеи не должно очень мешает работать, так как из, например, созданных 150-ти строк в таблице УРЛ, реально нужны 15, остальное просто мешает. Я боюсь представить что будет если на реальном проекте я загружу 2000 товаров с кучей опций для фильтрации, я просто ничего не смогу найти в «таблице УРЛ».
Еще заметил такой момент в сниппете sfMenu. Так как много мусорных УРЛ создается, как я описал выше, в «облаке ссылок» они также вылазят при выводе sfMenu и получается ссылки ведут на 404. Ок. Есть параметр mincount, задаю значение 1, и блин, вместе с УРЛами где результатов 0, также не выводятся УРЛы по которым результат 1. То есть, если я правильно понимаю, то дословно параметр mincount означает минимальное количество, то есть вывести ссылки с минимальным количеством результатов один и более. Но не работает. Выводится больше одного.
Подитожу вопрос. Как сделать чтобы при создании правила, ссылки в таблице УРЛ создавались относительно товаров указанной страницы, а не брались значения всех товаров подряд из всех категорий на сайте?
Alex
17 июля 2018, 17:43
0
Спасибо за ответ, но наверно я не верно поставил вопрос. Вот у нас есть правило бренд. Там, например, два бренда Archi, Goliaf (но может быть и больше). Вот мы выбрали Арчи, и у нас стандартный текст сменился на текст написанный под бренд Арчи. Далее мы выкл Арчи, вкл Голиаф, и у нас текст именно под бренд Голиаф. То есть абсолютно разные тексты под каждый бренд. Ссылки в таком случае у нас будут dveri.ru/brend-arch или dveri.ru/brend-goliaf. То есть не два бренда одновременно, про множественный фильтр тут речи не идет. Нашел только возможность как сменить часть текста подставив плейсхолдеры, а вот как сменить текст целиком?