• Как правильнее хранить данные в этом случае?

    Jump
    @Jump
    Системный администратор со стажем.
    Как правильнее хранить данные в этом случае?
    Да как удобнее, ситуации бывают разными. Не зная картину полностью сказать сложно.

    Но на основе представленных данных Коллега №1 предлагает хранить избыточные данные - зачем это надо, неясно.
    Коллега №2 предлагает нормальный вариант.
    Ответ написан
    Комментировать
  • Кто может поделиться опытом переписывание legacy кода?

    @grinat
    Берется и создается новое репо, с нужным фремворк нейм, смотрится на старый код и делается все по новой, старый код не используется, а выбрасывается нахуй.
    В vue rxjs не нужен, там есть стор, rxjs есть туда смысл тащить только для глобальных pub/sub и/или обертки над settimeout, setinterval. В ангуляре нет стора, поэтому используют rxjs, через него подписываются на сервисы, которые раздают данные. Jquery ни там, ни там не нужен.
    Использовать надо тот бандлер, который по умолчанию используется в фремворк нейм, а не тащить свой.
    Ответ написан
    1 комментарий
  • Какой сервис выбрать для вебсокетов?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    4 комментария
  • Куда загрузить бинарник?

    DevMan
    @DevMan
    Ответ написан
    Комментировать
  • Как выбрать через какой адаптер будет интернет windows?

    Francyz
    @Francyz
    Photographer & SysAdmin
    Прописать маршруты на windows "route ADD -p" и т.д.
    Ответ написан
    1 комментарий
  • Переводы на киви от 300к каждый месяц?

    @MatasDragonV
    Такое в любом Банке, не только в Киви. Если ты не выгоден как клиент - начинается попытка отжать остатки средств на счете под прикрытием ФЗ "О противодействии легализации средств полученных преступным путем", запросы кучи документов, вплоть до родословной вашей бабушки, их рассмотрение по 3 месяца каждый раз. По итогу обычно если и получается вытащить назад кровные - то эдак через годик. Соответственно те у кого на счетах меньше 2000 рублей или любой суммы которую можно посчитать незначительной - просто забивают и банк потирая руки их присваивает.
    Ответ написан
    Комментировать
  • Переводы на киви от 300к каждый месяц?

    @Xilian
    Программист 1С, сетевые технологии, SQL
    Что qiwi, что любая кредитка начинает отслеживать платежи от 10К. Заведи ИП и через него проводи платежи. Не забывая про налоговую отчетность.
    Ответ написан
    6 комментариев
  • Переводы на киви от 300к каждый месяц?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    В какой то момент можешь получить такое письмо

    Здравствуйте, уважаемый Пользователь!

    Уведомляем Вас о расторжении Договора об оказании услуг осуществления расчётов с использованием Платёжного сервиса "QIWI Кошелек". Договор расторгнут в одностороннем порядке.

    Для того, чтобы распорядиться остатком денежных средств на кошельке, Вам необходимо:

    пройти идентификацию пользователя. Это можно сделать в ближайшем пункте обслуживания наших партнёров:https://qiwi.com/settings/account/identification.a...

    предоставить следующие документы:

    нотариально заверенная копия договора с оператором сотовой связи, который подтверждает то, что Вы являетесь владельцем этого номера;

    нотариально заверенная копия паспорта (все страницы) или выписку из паспорта (страницы 2-5), на который оформлен данный договор;

    копию объяснения экономической сути входящих и исходящих операций (должно быть написано от руки, необходимо также поставить ФИО, номер QIWI Кошелька, дату и подпись).

    заполненное заявление на перевод остатка денежных средств на Ваш банковский счёт (шаблон заявления находится во вложении).

    Обращаем Ваше внимание, что комиссия за перевод денежных средств на счёт другого банка составляет 30 руб.

    Оригиналы документов следует выслать по адресу: 117452, г. Москва, а/я 57.

    Оператор Сервиса рассматривает документы, предоставленные Пользователем в соответствии с п. 6.5. Публичной Оферты, в течение 25 (двадцати пяти) календарных дней с момента их получения. Отсутствие какого-либо из указанных документов будет являться причиной отказа в переводе остатка денежных средств.
    Ответ написан
    6 комментариев
  • Есть ли какая нибудь php библиотека для взаимодействия с AWS Cloud?

    search
    @search
    мама говорит что я особенный
    Комментировать
  • Как определить виртуальная ли банковская карта?

    gobananas
    @gobananas
    finishhim.ru
    Нет это нельзя определить, в этом и суть виртуалки. У меня на киви, например лежит 100 тыс. рублей, я выпускаю виртуалку, кладу на неё 10 и расплачиваюсь ей вот в таких подозрительных магазинах, которым непонятно зачем мой пластик нужен (вдруг они хотят передать данные хакерам?). Я без проблем расплачиваюсь этой картой, через 3 месяца она закрывается и перевыпускается. Т.е. по вашей логике вы будете блокировать людей которые действительно заботятся о своей безопасности за подозрительную активность ))
    Ответ написан
    8 комментариев
  • Как определить виртуальная ли банковская карта?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Любая карта является виртуальной, то есть отражением факта владения неким банковским счетом. Пластиковый прямоугольник, который обычно называют "картой" - всего лишь ключ к нему, сам по себе он (без стоящего за ним счета) - просто кусок дешевого пластика с выдавленными на нем буквами и цифрами.
    Доступ к счету получается в результате знания некоей комбинации цифр - просто на "карте" она написана. Ничем другим "карта" не отличается от "не-карты" :) - я могу разрезать "карту", но продолжать ею пользоваться для покупок в инете, а могу ровно точно также выпускать на каждую покупку дополнительную карту, установив ей лимит в тысячу рублей :) Чем процесс выпуска дополнительной карты Банка Тинькофф отличается от выпуска виртуальной карты Яндекс-банка? Да ничем, просто мне еще кусочек пластика привезут, причем наверное от него можно и отказаться :)
    Реквизиты своих карт с деньгами я не оставляю нигде, никогда и никому. Если в магазине нет оплаты Яндекс-деньгами, киви, простой оплаты при получении, а требуют именно через карту - такой магазин я автоматически зачисляю в "подозрительные" и отдаю ему реквизиты виртуальной карты Яндекс-денег, где всегда лежит 20-30 руб, а деньги на платеж - скинул, заплатил и все, снова пусто.
    Можно, конечно проверять банк по номеру карты - но корреляция отказов с наименованием банков возникнет ооочень быстро, а в интернет-магазинах сейчас недостатка нет в любой области товарного ассортимента.
    Ответ написан
    2 комментария
  • Как определить виртуальная ли банковская карта?

    MikeKosulin
    @MikeKosulin
    Можно использовать какой-нибудь BIN Checker

    У виртуальных карт CARD LEVEL будет PREPAID и аналогичные
    Можно посмотреть тут, например
    Ответ написан
    7 комментариев
  • Bootstrap 3 или 4?

    tema_sun
    @tema_sun
    Не представляю как можно "угулбленно" изучать css фреймворк. Их для того и придумали, чтобы не копать глубоко, а быстро что-то сделать. Хотите углубиться- учите css.
    Ответ написан
    Комментировать
  • Выполнение тестового задания?

    sankir
    @sankir
    Я конечно могу ошибаться или не знать что-то об обычных способах проверки кандидатов, но ИМХО вы просто на халяву кому-то написали Internet-магазин.
    Ответ написан
    Комментировать
  • Machine Learning со слабой математикой?

    @kstyle
    ОГЭ закрыть с большего, дальше линейная алгебра (матрицы и т.п.) автор Письменный, далее всего Письменного закрывайте, Гмурмана.
    Ответ написан
    1 комментарий
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Смотря зачем)). Я когда делаю Code Review критерии следующие:

    * Безопасность:
    - Каждый аргумент метода простого типа должен проверяться на тип в случае его проксирования и на граничные значения в случае обработки. Чуть что не так - бросается исключение. Если метод с кучкой аргументов на 80% состоит из поверки из аргументов - это вполне норм))
    - Никаких trigger_error, только исключения.
    - Исключения ДОЛЖНЫ быть человеко-понятны, всякие "Something went wrong" можно отдавать пользователю, но в лог должно попасть исключение со стектрейсом и человеко-понятным описанием, что же там пошло не так.
    - Каждый аргумент (объект) метода должен быть с тайпхинтингом на этот его класс, или интерфейс.
    - За eval как правило шлю на **й.
    - @ допускается только в безвыходных ситуациях, например проверка json_last_error.
    - Перед работой с БД - обязательная проверка данных.
    - Никаких == и !=. Со swtich - единственное исключение, по ситуации.
    - Если метод возвращает не только bool, а еще что-то - жесткая проверка с ===, или !== обязательна.
    - Никаких условий с присваиваниями внутри. while($row = ...) - тоже идет лесом.
    - Магические геттеры/сеттеры разрешаются только в безвыходных ситуациях, в остальном - запрещены.
    - Конкатенации в sql - только в безвыходных ситуациях.
    - Параметры в sql - ТОЛЬКО через плейсхолдеры.
    - Никаких глобальных переменных.
    - Даты в виде строки разрешаются только в шаблонах и в БД, в пхп коде сразу преобразуется в \DateTimeImmutable (в безвыходных ситуациях разрешено \DateTime)
    - Конечно зависит от проекта, но как приавло должно быть всего две точки входа: index.php для web и console(или как-то по другому назваться) - для консоли.

    * Кодстайл PSR-2 + PSR-5 как минимум, + еще куча более жестких требований (для начала все то что в PSR помечено как SHOULD - становится MUST)
    - В PhpStorm ни одна строчка не должна подсвечиваться (исключением является typo ошибки, например словарик не знает какой-то из аббревиатур, принятых в вашем проекте). При этом разрешается использовать /** @noinspection *** */ для безвыходных ситуаций.
    - Если кто-то говорит, что пишет в другом редакторе и у него не подсвечивается, на эти отговорки кладется ВОТ ТАКЕЕЕНЫЙ мужской половой **й и отправляется на доработку)).

    * Организация кода:
    - Никаких глобальных функций.
    - Классы без неймспейса разрешаются только в исключительно безвыходных ситуациях.

    * Тестируемость (в смысле простота тестирования) кода должна быть высокая.
    - Покрытие кода обязательно для всех возможных кейсов использования каждого публичного метода с моками зависимостей.

    * Принципы MVC:
    - Никаких обработок пользовательского ввода в моделях, от слова совсем.
    - Никаких ***ть запросов в БД из шаблонов.
    - Никаких верстки/js/css/sql-ин в контроллерах.
    - В моделях НИКАКОЙ МАГИИ, только приватные свойства + геттеры с сеттерами.
    - В моделях разрешено использовать метод save(при наличии такого разумеется) только в исключительных ситуациях. Во всех остальных - либо insert, либо update.

    * Принципы SOLD:
    - Никаких божественных объектов умеющих во все.
    - Если метод для внутреннего пользования - private, никаких public.
    - Статические методы разрешаются только в случае безвыходности.

    * Принцип DRY разрешено нарушать в случаях:
    - Явного разделения обязанностей
    - В тестах (каждый тест должен быть независимым, на сколько это возможно)

    * Работа с БД:
    - Запрос в цикле должен быть РЕАЛЬНО обоснован.
    - За ORDER BY RAND() - шлю на***й.
    - Поиск не по ключам (конечно если таблица НЕ на 5 строк) запрещен.
    - Поиск без LIMIT (опять же если таблица НЕ на 5 строк) запрещен.
    - SELECT * - запрещен.
    - Денормализация БД должна быть обоснована.
    - MyISAM не используется (так уж)) )
    - Множественные операции обязательно в транзакции, с откатом если чо пошло не так.
    - БД не должна содержать бизнес логики, только данные в целостном виде.
    - Не должно быть нецелесообразного дерганья БД там, где без этого можно обойтись.

    * Кэш должен очищаться по двум условиям (не по одному из, а именно по двум):
    - Время.
    - Протухание по бизнес логике.
    Разрешается по только времени в безвыходных ситуациях, но тогда время - короткий период.
    - При расчете ключей кэша должна использоваться переменная из конфигурации приложения (на случай обновлений кэш сбрасывается кодом, а не флашем кэш-сервера). В случае использования множества серверов - это очень удобный и гибкий инструмент при диплое.

    * О людях:
    - "Я привык писать так и буду дальше" - не вопрос, ревью пройдешь только когда поменяешь свое мнение.
    - "Я пишу в vim-е и мне так удобно" - здорово, код консолью я тоже в нем пишу)) но есть требования к коду, если в них не сможешь - не пройдешь ревью.
    - "Я скопировал этот страшный метод и поменял 2 строчки" - это конечно замечательно, но по блейму автор всего этого метода ты, так что давай без говняшек, хорошо?
    - "Оно же работает!" - вот эта фраза переводится примерно так: "да, я понимаю, что пишу полную хрень, но не могу писать нормально потому, что руки из жо", я правильно тебя понял?))
    - "У меня все работает!" - рад за тебя, а как на счет продакшна?
    - "Там все просто" - не используй слово "просто", от слова "совсем". Вот тебе кусок кода (первого попавшегося с сложной бизнес логикой), где там ошибка (не важно есть она, или нет)? Ты смотришь его уже 2 минуты, в чем проблема, там же все "просто"))

    * Всякое:
    ActiveRecord (это я вам как в прошлом фанат Yii говорю) - полное говно, примите за исходную. По факту у вас бесконтрольно по проекту гуляют модельки с подключением к БД. Не раз натыкался на то, что в тех же шаблонах вызывают save, или update (за такое надо сжигать).
    То, что используется Laravel - это печально((. Что бы выполнить требования приведенные выше, приходится "воевать" с фреймворком.

    Это далеко не полный список требований, очень много зависит от проекта в целом и от принципов, заложенных в нем. Для больших мредж реквестов 200 комментариев к коду - это ок. Дерзайте.

    UPD

    Формализировал данные критерии по ссылочке: https://github.com/index0h/php-conventions
    Ответ написан
    55 комментариев
  • Как правильно спроектировать Laravel приложение с уклоном в enterprise?

    @Finsh
    Взять Symfony.
    Только вот серьёзно, зачем делать из отвертки дрель, когда она уже есть. Вы думаете, что это будет быстрее? Вы думаете что это будет дешевле? Laravel прекрасен для своих, средних, задач, для "enterprise" берите Symfony.
    Ответ написан
    Комментировать
  • Какие основные принципы создания генератора админок?

    qonand
    @qonand
    Software Engineer
    что можно почитать о том как писать "универсальные" cms(админки), и\или их генераторы?

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

    Что нужно учитывать при их создании?

    На этот вопрос Вам никто не ответит, все зависит от конкретной ситуации.
    Ответ написан
    Комментировать