Задать вопрос
  • Как лучше создать структуру бд?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Таблица product и product_translations со всеми полями которые могут быть переведены и полем локали.
    Ответ написан
  • Как переписать код на less?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Вся соль вот в этих двух строчках:
    text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff;
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0) 2px, #333333 2px, #333333 3px, rgba(0, 0, 0, 0) 3px);


    Это итоговый CSS который собственно и добавляет это самое подчеркивание и делает возможным тексту перекрыть его что бы выглядеть симпатишнее. Добавлять text-shadow или нет решает переменная $breaking-underlines

    По сути вам нужно реализовать только миксин который генерирует этот самый linear-gradient:

    codepen.io/anon/pen/cIxtg - переделал на свой монер. Может кто подскажет как лучше.
    Ответ написан
    Комментировать
  • Можно ли php заменить на node.js?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Можно, вопрос только зачем вам это нужно и что это вам даст.

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

    Так же если у сервера на который вы деплоитесь не одно ядро, то стоит запустить по одному инстансу приложения на ядро и проксировать на них запросы через nginx. node.js по умолчанию синхронный. То есть вся та хваленая асинхронность проявляется только когда речь идет о I/O. JS код же выполняется в одном потоке, две строчки кода не могут выполняться одновременно. Потому придется вклинивать какие-то менеджеры процессов и т.д.
    Ответ написан
  • Как лучше структурировать базу в MySQL?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Есть такая штука как "нормальная форма" исходя из нее стоит проектировать базу. Внешние ключи это один из механизмов. позволяющий упростить контроль за целостностью данных.

    Все дальнейшие оптимизации, типа вынос архивных записей (те что удалены в карзину например) в отдельную таблицу что бы уменьшить объем индексов и т.д. делаются исключительно при наличии проблем с производительностью. То есть делаем нагрузочные тесты - эксперементируем. Иначе вы просто создадите себе массу проблем на ровном месте.
    Ответ написан
    Комментировать
  • Php или Ajax с JS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    То что вы называете AJAX это всего-лишь XmlHTTPRequest, API Javascript-а которое позволяет вам делать HTTP запросы непосредственно из JS кода. И все. Никакой магии.

    Когда вы переходите в браузере на какую-то страницу, например index.php, создается HTTP запрос. Далее запрос идет на сервер где его ловит апач или nginx или еще кто. Тот смотрит что мы хотим получить результат работы скрипта index.php и просит PHP запустить скрипт для такого-то запроса. PHP любезно парсит запрос, раскидывает все по масичвикам $_SERVER/$_GET/$_POST и т.д. и запускает этот самый index.php.

    Далее ваш скрипт выдает ответ, то есть это какие-то заголовки (например если вы делаете редирект вы выставляете заголовок Location) и тело (все что вы выводите через echo). Этот ответ уходит клиенту и он видит радостно страничку.

    Что нам дал XmlHttpRequest? Он дал нам возможность делать эти самые HTTP запросы по своей прихоти а не только когда пользователь снизайдет отправить форму или перейти по ссылке. Можно хоть в цикле бесконечном сервак опрашивать на предмет наличия новых данных (если очень упрощать то приемрно так работает скажем уведомления во вконтактике).

    Подытожим: Нет, вы не можете заменить серверную часть на технологию, которая реализует общение с этим самым сервером. Это просто дополнительная возможность предоставляемая вам Javascript-ом. Как ею воспользоваться решать вам.
    Ответ написан
    Комментировать
  • Какую выбрать технологию, для написания интерактивного веб приложения?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    HTML5, Javascript, Canvas, WebGL (возможно)
    Ответ написан
    Комментировать
  • Стоит ли использовать MVC PHP Framework?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Возьмите Silex, вам должно его хватить. И не делайте упор на эти три стремные буквы MVC если у вас нет понимания что это такое.
    Ответ написан
    Комментировать
  • Насколько трудоемко сделать вывод контента Аяксом?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Это примерно день работы. Не забывайте что сюда входит общение с вами, приемка, мелкие правки которые скорее всего возникнут по ходу. Так же не известно что на сервере, это добавляет пару часов рисков. И так довольно простая штука на 2-4 часа обрастает еще дополнительно 4-мя-6-ю часами. Далее умножаете это на средний рейт разработчика.

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Джуниор с ЗП от 90т.р.? Жирно. Настолько жирно что тут уже влияют другие факторы нежели выбор технологии. То есть если вы нулевой а вас берут за такие деньги значит вы обучаемы или проект очень жирный. А на чем проект, на PHP или на .NET роли уже сильно не играет.

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

    UPDATED

    Ну опять же, с учетом того что вы хотите от 90К уже когда будете не нулевым, то опять же. Листики, кружок, подкинуть и смотреть куда прилетит. Получать от 90К можно хоть на PHP хоть на Java. Вопрос только в вашем развитии. Больше кодить, больше опыта, больше скилов - проще разговаривать о повышении зп. А если посчитаете что выбрали не верную стезю - переход на другой язык дастся вам относительно легко так как большая часть стэка технологий (СУБД, SQL, NOSQL, основные принципы) перейдут почти без изменений.
    Ответ написан
  • Обучение PHP без локальных серверов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Да, что бы выполнить PHP система должна иметь интерпритатор оного, который нужно поставить. Не вижу в этом ровным счетом никакой проблемы.

    Для обучения достаточно поставить PHP без всяких там апачей или нгинксов. У него есть встроенный простенький web сервер, учиться можно и на консольных скриптиках и в интерактивном режиме (php.exe -a). Потом правда скорее всего еще mysql какой поставить придется или sqlite. Ну или можете поставить openserver под виндой.

    Хотя в идеале было бы поставить на какой virtualbox какую убунту и баловаться уже там, ибо все эти штуки типа php ставить там в разы проще. Да и скорее всего в будущем деплоиться вы будете именно на линуксы.

    А еще круче - поставить Vagrant и воспользоваться каким-нибудь готовым боксом для старта, например вот: https://vagrantcloud.com/avenuefactory/boxes/lamp

    Для маков можно через brew поставить.
    Ответ написан
    Комментировать
  • Как можно распарсить m3u плейлист на Javascript с тегом group?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    https://github.com/aitorciki/jquery-playlist

    p.s. Я слов просто не нахожу что бы выразить свое недоумение о том, кому в голову пришла мысль реализовать парсер m3u в виде плагина для jQuery...
    Ответ написан
  • Yii2 как указать дефолтное значение при получении значения из Get запроса?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    А в чем проблема нормально querystring формировать? Типа
    /search?locale=en&q=test
    Ответ написан
  • Почему в сжатых библиотеках например jquery.min.js не одна строка а несколько?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Могу лишь предположить что это как-то связано с числом 32767
    Ответ написан
    Комментировать
  • Node.js, как лучше поступить с модулями в режиме production?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Конкатенация и прочее нужны для уменьшения количества HTTP запросов и связанных с этим блокировок, задержек и прочего веселья.

    На сервере это все не нужно. Скрипт загружается в память и там остается пока вы не убъете сервер. Далее JIT все будет оптимизировать дальше.

    Единственное что может быть, если модули реквайрятся там где они нужны, а не при инициализации модуля. В этом случае в силу синхронной работы CommonJS могут быть проблемы если модуль еще никем не загружался. Но уж точно конкетенацией делу не поможешь.
    Ответ написан
    Комментировать
  • Средства, инструменты, методики разработки, что выбрать?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    CoffeeScript это сахар над JS, и все.

    Я правильно понимаю что вы только название/общее представление о каждой технологии имеете? Если так, то сначала подучите JS/Ruby и освойте GIT. А потом уже как получится. И да, БЭМ думаю в конец стоит перенести, просто прочитать для общего ознакомления с идеей а углубляться уже по мере необходимости.
    Ответ написан
  • Где найти php библиотеку для работы с bitcoin?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    с документацией на русском

    Тяжко вам будет. И что значит "пользоваться сторонними сервисами не хочу"? Вы майнить на PHP собрались? Или свою биржу основать решили?
    Ответ написан
  • MVC, модель для каждой таблицы?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Создаю модель Schedule у которой метод getClassSchedule($class_id) должен получить данные из 2х этих таблиц


    Это не модель, это сервис. Модель это какой-то класс который инкапсулирует данные, это сущность которой оперирует ваша бизнес логика. Если бы мы говорили в контексте языков типа c# или Go - модель это старая добрая структура, просто структура... в PHP есть только классы, потому это у нас это классы.

    То есть в вашем случае у вас есть сервисный класс Schedule который инкапсулирует в себя бизнес-логику управления рассписанием для каких-то сущностей. Как оно это делает - не важно.

    Что до таблиц и моделей - модели в идеале никак не завязаны на то, как они хранятся в базе. Это просто классы. Их проектируют исходя из того, как проще будет работать с ними в рамках приложения. В базе они могут храниться совсем по другому и задачу хранения должны бать на себя другие сервисы. Скажем у вас может быть несколько моделей, наследующихся от базового класса. Например базовый класс Client делится в итоге на розничных и оптовых покупателей, у каждого свои поля, часть полей общая, часть логики общая, например авторизация.... логично иметь базовый класс и два наследника. В базе это все может храниться в одной таблице, или в нескольких, или еще как....

    Если вам интересно - советую почитать про DDD (Domain Driven Design).
    Ответ написан
    Комментировать
  • Как вам такой code-style в PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Я пожалуй просто оставлю это тут: PSR-1, PSR-2
    Ответ написан
    Комментировать
  • Как передать массивы get, post через htaccess ? ?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    с передачей массива post


    Почитайте на википедии что такое HTTP и что такое тело запроса. То что вы видите в PHP под этими суперглобальными $_SERVER/$_POST/$_GET/$_FILES и т.д. это все благодаря такой чудной вещи как SAPI (Server Application Programming Interface). То есть заболтивый PHP берет ваш HTTP запрос (который ему дали обработать WEB-сервера, апач тот же или nginx или еще кто) и вызывает соответствующее SAPI. То есть если у нас mod_php апачевский, то там все чуть по другому (SAPI для PHP много всяких разных). Если у нас php-fpm, то у нас там самый что нинаесть запрос, который нам проксировал какой nginx или тот же апач. Этот самый SAPI берет заголовки запроса и распихивает все по суперглобальным массивам. Он берет заголок с куками и распихивает его в $_COOKIE или видит что у нас POST запрос и он помечен как multipart/formdata и разбирает запрос, выковыривает файлики и сохраняет на диск заполняет массивы $_POST/$_FILES. Скажем если чувак отправит запрос с Content-Type: application/json (что модно стильно молодежно для мобильных клиентов) то PHP SAPI разобрать его будет не в состоянии и вам придется брать тело запроса и разбирать его самому.

    Работа вашего скрипта происходит только ПОСЛЕ того как SAPI все подготовит. а htaccess влияет на работу только до того как SAPI начнет работу, так что никаких POST массивов и т.д. Только HTTP запросы.

    Редиректы намного интереснее, так как это результат запроса. Ну то есть... у него нету тела. нет возможности сохранить тело запроса (ну как... есть... но клиент тоже это должен уметь и одним htaccess тут не обойтись) так что при редиректе сохранить и передать на новый урл исходные данные уже не выйдет. То есть можно, но повторюсь - это должно быть реализовано с двух сторон и тогда это не совсем редирект а больше похоже на то что вы отправляете форму двумя запросами. Один - узнает куда слать данные формы, второй отправляет.

    Такие дела.
    Ответ написан