Задать вопрос
  • Как реализовать параллельные вычисления?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    нода хоть и быстра но она однопоточна. лучше возьмите erlang или go.
    Ответ написан
    Комментировать
  • Каково ваше мнение о будущем RSS?

    @vilgeforce
    Раздолбай и программист
    RSS - отличная штука и мне жаль что многие сайты его не используют или используют коряво. Новости я уже лет 10 только через RSS и читаю.
    Ответ написан
    Комментировать
  • Возможно ли сохранить файл на сервере средствами клиентского JavaScript?

    DevMan
    @DevMan
    нет.
    поэтому он и называется клиентским.
    Ответ написан
    Комментировать
  • Заказчик хочет получить проект до оплаты?

    paradokso
    @paradokso
    Начинающий фронт-эндер
    у него счет верифицирован? деньги за проект funded? Если да, то завершайте работу (submit the job или как там кнопка называется) и прикладывайте файл. Если что не так будет - то деньги защищены же.

    Я не заморачивался этим. Показывал заказчику страницу на хосте и отсылал архив.

    Если чел не адекватный, то вы в любом случае не получите отзыв от него :)

    UPD по апдейту вопроса. В профиле же все видно. Вверху справа звезды. Внизу отзывы за проекты (кликните и будет виден рейтинг за каждую категорию - сроки, доступность и т.д.). Может не сразу отображаться. Просто имейтетерпение
    Ответ написан
    Комментировать
  • Как проставить value в форму более красивым способ в Laravel как бы сработала ngmodel?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Просто используйте form model binding и при создании передавайте пустую модель.
    Ответ написан
    3 комментария
  • Как доверять фрилансерам?

    Фрилансеры каждый день работают с чужими сайтами с конфиденциальной информацией им эти данные не интересны. Да можете измудриться и вынести всё это отдельно но только жизнь осложните себе и фрилансеру и в конце всё равно дадите ему доступ к основному серваку что бы правки внедрить всё же.
    Ответ написан
    5 комментариев
  • Как реализовать миграцию на фреймворке Laravel?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Laravel
    yandex.ru/yandsearch?text=%5B2002%5D%20Can%27t%20c...
    К миграциям вообще и Laravel в частности эта проблема не имеет никакого отношения.
    Ответ написан
    Комментировать
  • Стоит ли использовать ооп?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    То, что легче без ооп - безусловно, для скрипта на 100 строк, это будет лишним.

    В остальном - однозначно нужно.
    ООП дает вам понятие "сущностей данных", как минимум. Можно конечно обмазываться массивами, но в этом случае лучше не используйте в лексиконе слово "безопасность".
    ООП дает разграничение обязанностей. Можно конечно нагородить 1кк функций и сварганить на их основе вермишельку, когда выльете пару ведер крови из глаз - вспомните мои слова.
    ООП дает заменяемость кода по интерфейсу (Полиморфизм), как следствие - возможность варьировать логику, без миллиона switch-case и сложных условий.
    ООП дает сокрытие данных (Инкапсуляция). Если переменную можно изменить в любом месте проекта (глобальную например) - она будет где-то изменена, вы об этом можете не узнать (или попросту забыть), как следствие ваш код будет работать не предсказуемо.
    ООП дает возможность расширять функционал порождаемых сущностей (Наследование), как следствие - DRY.

    То, что Виталий Пухов написал не верно. Легко !== правильно, удобно, человеко-понятно, тестируемо, надежно. Легко как правило писать говно. Фраза "работает же" как правило значит: "да, я понимаю, что оно хреновое, но лучше не могу".

    И писал пару робот на нём сильной разницы в скорости между ооп и не ооп проэктами не замечал.

    Вы не туда смотрите)). Производительность на stateless языке... В общем посмотрите на компилируемые))

    * Про vk вы правильно сказали, но забыли 2 важных нюанса: он писался, когда ООП в php особо не было; у них свой KPHP))
    * Для сравнения у facebook тоже свой php: hhvm, но он очень даже объектный.
    Ответ написан
    1 комментарий
  • Программирование и практика?

    DevMan
    @DevMan
    гуглить приходится слишком много и найти грамотный ответ очень трудно
    гугл-фу - один из важнейших скилов программиста.
    то, что знаний не хватает на старте - это нормально.

    куда стоит двигаться можете и должны решить только вы. не можете решиться - кидайте монетку.
    Ответ написан
    4 комментария
  • PHP/Yii2: как ускорить выполнение ~1 млн запросов подряд?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    2. Запись всех данных в каждую таблицу одним запросом. Как? Транзакцией?

    Голым mysqli без всяких оберток, пачками по столько вставок, сколько влезет максимум в . запрос (строка в 1мб должна влезать ),
    Ответ написан
    Комментировать
  • Как использовать токены для аутентификации в API?

    bigton
    @bigton
    Web-программист
    Как сделал я.

    От классических сессий при работе через API отказался.

    1. Для авторизации пользователь вводит логинпароль, устройство отправляет их по https на account/auth
    2. account/auth выдает token (token_id:token_val) и secret
    3. все дальнейшие запросы устройство отправляет по http указывая token и подписывая запросы с помощью secret

    Как работает.

    Сервер получает запрос, видит что пришел token, разбивает его через двоеточие на input_id и input_val. Выбирает из базы токен с пришедшим input_id, получает из базы значение token_val и secret. Сравнивает input_val и token_val. Если в базе нашелся токен с нужным id и значения val равны, пришло время проверить достоверность запроса.

    Клиент помимо токена передал sign (подпись), которую сформировал так (например) secret+api_path+query_param. На стороне сервера вам известно api_path и api_param, а secret выбрали из базы. Хешировать подпись принято через hmac().

    Помимо токена и подписи можно передавать time и так же класть его в sign, и на стороне сервера отсекать запросы запросы которым больше 60 сек.

    Таким образом.

    Если кто то слушает ваш канал, он не сможет подделывать запросы (а значит компроментировать), и из-за проверки времени жизни запроса не сможет вечно получать данные по однажды перехваченного запроса.

    А в базе токены можете хранить пока клиент сам не запросит их уничтожения и сохранить время последного обращения через токен, и удалять токены которые не использовались более 60 дн.
    Ответ написан
    9 комментариев
  • Учебные материалы по веб-дизайну (Photoshop, Illustrator)?

    Sanes
    @Sanes
    Может с фантазией беда, а не со знанием инструмента? Часто встречаются классные дизайны, при том, что сложность на уровне начальной школы.
    Ответ написан
    Комментировать
  • Как искать заказы по верстке на upworks?

    opium
    @opium
    Просто люблю качественно работать
    Ну и по вашему получается, 9 часов назад была работа, а сейчас её не стало, логично что надо было бидить просто 9 часов назад.
    Читайте в блоге и qa как правильно искать работу, сейчас вы это делаете совершенно не правильно
    qa.pumainthailand.com
    pumainthailand.com
    Ответ написан
    5 комментариев
  • Статический или не статический метод?

    @djay
    Статика - это глобальное состояние. Статический метод или статическая переменная абсолютно ничем не отличаются от глобальной переменной, потому что, ни статика ни глобальная переменная не были переданны в качестве аргументов нигде и никак, а значит поступают из глобального пространства.

    Чем статика может быть опасна?
    Представь, что ты пишешь утилиту для загрузки изображений. И вот наступил момент, когда нужно указывать параметры обрезки для превьюшек. Со статикой это может выглядеть так:

    public function upload()
    {
         $width = Config::read('width');
         $height = Config::read('height');
         // .. Do upload..
    }

    (На заметку CakePHP кишит такими подходами)
    Проблемы такого подхода?

    1. Нужно знать и быть точно уверенным, что статичный класс Config, был где-то там далеко инициализирован. А вдруг он не был инициализированным?

    2. А что если ты решишь сменить источник конфига? Например читать, это все не из класса `Config` а откуда-нибудь из REST? Придется все переписывать, затем опять тестировать. Эта проблема известна как сильная связка.

    3. Попробуй написать юнит тест для такого, без хаков и изращенных костылей. Ведь для того чтобы протестировать этот метод, нам нужно где-то там в глобальном пространстве инициализировать `Config`, затем убедится что он работает.

    4. Скрытые зависимости.

    Например инициализуруя класс, в случае статики:

    $uploader = new Uploader();
    $uploader->upload(...);


    Ты и твои пользователи не видят какие у класса зависимости и от работы чего вообще он зависит. Проблема заметна особо, когда ты пишешь библиотеку или компонет.

    Но тогда почему такие популярные фреймворки как Yii или Laravel полностью покрыты статикой?

    Для того чтобы понять какие последствия несет статика, попробуй воспользоватся хоть одним компонентом Yii фреймворка отдельно. Например, если тебе нужна только CAPTCHA ты не сможешь её вытащить оттуда не переписав почти весь компонент, потому что везде внутри присутвует глобальное состояние, в виде `Yii::$app->`. То есть чтобы воспользоватся только капчей, придется подключать весь фреймворк и все его внутренние механизмы, когда это абсолютно не нужно.

    Что касается Laravel, то статики там меньше, поскольку некоторые компоненты, вроде Eloquent могут использоватся по отдельности. Статика в ларе, она существует как обёртка, но не как реализация, во многих местах в отличии от Yii.

    И отвечая почему - потому авторов либо их не заботит кристально чистая тестируемость, либо слабая связка, ну или потому что опыта не хватает чтобы писать чистый и поддерживаемый код.

    Вообще посмотри, как задачи решаются в Zend / Symfony
    Там почти везде все зависимости передаются в качестве аргументов, что есть хорошо, слабо связано, и тестируемо.
    Ответ написан
    5 комментариев
  • Как можно в Symfony загрузить файл сразу на облако (Яндекс.диск, Dropbox и т.п.)?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    ну файл то всеравно на сервер для этого нужно загрузить. Нет, можно конечно и с клиента но это не секьюрно.

    В целом рекомендую использовать flysystem, там есть адаптер для webdav.
    Ответ написан
    Комментировать
  • Где/как/на основе какой CMS/LMS лучше создать сайт с курсами (платными и бесплатными), чтобы было всё на русском и имело много способов оплаты?

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    Умение рисовать непрямое умение. Но чувство стиля, крутого оформления, чувство вкуса, обычно приходит тогда, когда умеешь рисовать.
    Дизайнером быть можно. Хорошим - вряд ли. Крутым - никак.
    Учиться рисовать можно начать в обычной художественной школе. Карандашами. Владеть навыками фотошопа это конечно плюс, но инструмент - это приложение, а не основа.
    Основа художника - умение определять правильные пропорции.
    Нарисовать фигурку в движении, "чувствуя" правильные пропорции рук/ног/тела и их положение. Нарисовать мультяшную фигурку, реальную фигурку, фигурку человечка или "одушевленного" предмета.
    Ответ написан
    3 комментария
  • Best practices при написании приложений на Laravel?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    для начала перестаньте мыслить папками и начните мыслить пространствами имен

    1) где хотите. Простой вариант - в неймспейсе Repository. В целом почитайте про шаблон репозиторий
    2) А какой в этом смысл? Есть смысл делить по поддерживаемым хранилищам (Database, InMemory, etc), только так у нас могут быть две реализации UserRepository
    3) в сервис провайдере логичнее.
    4) Там и храните, еще можно переименовать в ServiceProvider
    5) Обычно регистрация юзера это new User, или в случае Laravel - статическая фабрика... или сервис. Вообще валидация тоже должна происходить на уровне контроллера, но тут уж как выходит.
    6) без различных катчеров - у swift mailer есть spool, но как по мне это не столь удобно.
    Ответ написан
    3 комментария
  • Куда валить с upwork?

    @asdf999
    Android Programmer
    Валить некуда, проблема ещё в том что бирж где бы по часам платили нету.
    Ответ написан
    Комментировать