• Существуют ли реально рабочие модули Angular для передачи файлов на php сервер?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    в случае с phonegap из коробки у вас нет доступа к файловой системе. У вас есть по сути только два варианта:

    1) если у вас есть поддержка Android < 4.0 то только https://github.com/apache/cordova-plugin-file-transfer
    2) Если можно только Android 4.0+ то плагин File, а в JS создаете блобы, запихиваете это дело в FormData и отправляете сервисом $http. Примеры в сети есть. Могу чуть позже свой сервис-обертку для $http под себя выложить на gist.

    Так же рекомендую посмотреть на модуль ngCordova.
    Ответ написан
  • Как реализовать добавление нескольких полей форму в Symfony2?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Смотреть форм тайп collection, можно реализовать свой форм тайп для этого, у вас есть полный контроль за всем процессом и прелесть symfony forms в том что любую загагулину можно инкапсулировать в реюзабельный форм тайп.
    Ответ написан
    Комментировать
  • Какой шаблонизатор выбрать?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Вам типа объяснить зачем шаблонизаторы нужны?

    Какой смысл в использовании шаблонизаторов?

    разница между handlebars и smarty в том что одно для javascript а другое для php. Вы не сможете использовать в проекте на php handlebars и наоборот.
    Ответ написан
    3 комментария
  • Проксирование музыки через nginx?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    (где происходит fopen, fread)


    php.net/manual/en/function.readfile.php - обратите внимание особенно на заметки.
    Ответ написан
    Комментировать
  • Что такое Less и Sass?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Лень двигатель прогресса. Хороший пример - принцип DRY - Don't repeat yourself. Я весьма подозреваю что вы стараетесь соблюдать этот принцип когда делаете макеты или чем вы там занимаетесь. Так же я весьма уверен что вы хотя бы пытались чуть автоматизировать рутину своей повседневной работы. Так же у вас могли быть ситуации когда вы переиспользовали какие-то элементы. Мало ли.

    Так вот... CSS это тупая таблица стилей. Селектор и стили, ничего сверх умного тут придумать нельзя. Лет 5-10 назад было довольно модно держать один мегажирный CSS файл на 10К+ строк и радоваться жизни внося все больше изменений и т.д. Соответственно даже если вы соблюдаете всякие правила модульной верстки и все такое, у вас возникает несколько проблем:
    • организация стилей, то есть держать все в одном файле не удобно особенно когда проект длится годами
    • Дублирование стилей и селекторов. По мере развития проекта появляются какие-то снипиты которые можно реюзать. Так же у вас может появиться масса однообразных селекторов отличающихся лишь немного. При модульных подходах вложенности редко имеет место быть но все же имеет. Но не будем забывать что большинство фигачит селекторы просто так. В итоге если мы переместили блок или переименовали класс какого-то блока нужно отредактировать еще массу селекторов.
    • Привязка размеров и параметров к другим стилям, например у вас в стилях задана ширина блока, от нее зависят другие параметры, отступы для других блоков и т.д. Да, в css3 появился calc для этого но это было относительно недавно и только с недавних пор можно почти без опаски использовать эту штуку.
    • Таблицы стилей, как и HTML ориентированы на удобный разбор этого добра машиной, но не человеком. Человек же существо ленивое и как-то вот лень лишний раз скобку поставить или точку с запятой. Просто лень.


    Есть так же хорошее правило, или идея если хотите.... Если код можно сгенерить - его лучше сгенерить. То есть для решения всех выше перечисленных проблем придумали препроцессоры. Они как бы были и раньше всех этих scss/less/stylus но как-то не решали всех проблем и т.д. Что в итоге было предложено (перечисляю в том же порядке что и в списке выше).

    • У CSS есть такая штука как @ import. Но не очень круто импортировать сотню стилей в продакшене. Стоит сделать так что бы все стили были склеены при сборке проекта. Эта идея в итоге развилась и если разработчик использует это дело правильно, можно зайти в любой файл со стилями и увидеть список всего от чего зависят эти стили. Какие стили подключаются и т.д. Причем один файл с зависимостями может быть подключен в нескольких файлах а препроцессор сам разберется как и куда все вставлять сгенерив максимально оптимизированный по структуре файл. А разработчик получил четкую структуру файлов и возможность быстро найти где что и от чего зависит.
    • С селекторами проблему предложили решить наиболее логичным вариантом. Если у нас есть вложенные селекторы, то имеет смысл определять их внутри блока этого селектора. Это существенно упрощает поддержку стилей. Так же для управления снипитами и прочим добавили миксины - эдакие параметризованные или нет функции которые выплевывают шматок CSS. До появления штук вроде autoprefixer это был единственный способ писать поддерживаемые стили, использовать плюшки CSS3 и вообще новые плюшки и не сойти с ума от префиксов. Префиксы это только пример, там могут быть самые разные штуки позволяющие грамотно производить реюз стилей
    • Проблему зависимостей значений стилей друг от друга решили... собственно самым очевидным способом - переменные. Это удобно, легко поддерживать и в умелых руках это мощный инструмент. Нужно поменять базовые цвета - не нужно лазить по 100500 блоков и править значения руками, можно поправить переменные и все будет хорошо.
    • Насколько я помню SCSS/LESS не стремились решить эту проблему. Какие-то решения образовывались сами собой с течением времени. В плане минимализма и выразительности пожалуй сейчас самая крутая штука это stylus.


    Что в итоге произошло. В один прекрасный момент какие-то там рубисты придумали SCSS (они вообще не любят все что не в стиле ruby в плане минимализма и выразительности). Затем чуваки подумали и сказали, SCSS это круто но почему-то они используют синтаксис знакомый именно Ruby разработчикам а не обычные для CSS конструкции. В итоге реализовали LESS, причем его уже реализовали на javascript, что с наличием node.js позволило это все добро еще на одной платформе собирать. А так как под эту платформу и так плодили препроцессоры оно удачно вписалось.

    Далее уже шли какие-то модификации дальнейшие, вроде того же Stylus, где синтаксис упростили просто до нельзя.

    Личное мнение. На сегодняшний день я не вижу смысла использовать чистый CSS хоть на малых хоть на больших проектах. Вот вообще никакого.
    Ответ написан
    3 комментария
  • Как запустить проект, если нет больших финансов?

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

    А еще можно вместо ноды за 160 в месяц попробовать добавить еще одну-две за 10$, настроить репликацию опять же, и поставить еще одну ноду на фронт для проксирования запросов через nginx.

    А еще можно вынести базу данных на сервер помощнее и оставить пару серверов для приложения...

    Все очень сильно зависит от того, в чем у вас узкие места. Если места физически не хватает изза большого количества статики - можно вынести статику на отдельный сервер. Если база растет - можно базу вынести. Ну вы поняли.
    Ответ написан
    3 комментария
  • Synced_folder в Vagrant на Windows 8.1?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Поставьте слэши обычные для пути. Или экранируйте их.
    Ответ написан
  • Что не так с резюме?

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

    Слышали анекдот про HR-ов?


    Сидит опытный HR и HR-стажер. Перед ними пачка резюмешек на рассмотрение. Опытный отсчитывает половину стопки и выкидывает в мусор. Стажер в шоке:
    - Василий Степаныч, как же так то?
    - Ай... Нам не нужны неудачники.
    Ответ написан
    1 комментарий
  • Что выбрать php ли java?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    MVC фреймворк CodeIgniter


    Попробуйте может... чего не мертвого поизучать? Что-то чуть более актуальное? Symfony/Laravel там например. Да тот же Yii.

    Оставайтесь в PHP. Если у вас хоть какая-то база есть будет проще. А если доростете до нормального уровня (то есть не говносайты на CI пилить а нормальные проекты) то перейти на java сильно больших сложностей не будет. Языки по семантике схожие, принципы, шаблоны проектирования и т.д. можно просто под копирку реализовывать. Есть некоторые различия правда связанные с моделью работы но это на самом деле будет мелочами.

    Ну и да, почитать по Java в процессе освоения PHP тоже стоит. Какие-нибудь книжки по GoF, GRASP и т.д.

    Словом... вообще нет разницы какой язык вы выбираете. Есть разница только в том плане что на Java проще найти проекты посложнее но и знаний на старте должно быть больше.
    Ответ написан
    1 комментарий
  • Писать самому или брать готовое?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Если есть готовое под ваши требования - берите готовое.
    Если есть готовое которое чуть чуть не удовлетворяет требованиям - берите готовое и допиливайте.
    Если готового нет или есть но допиливать сложнее чем написать с нуля - проще будет написать свой велосипед.

    Плюсы готовых решений - вы экономите деньги клиентов, есть немалый шанс что готовое решение уже где-то используется и протестировано. Если вы находите баги и прочее - всегда можно сделать баг репорт и надеяться на помощь автора библиотеки или плагина. Так же можно делать PR с фиксами и импрувами для будущих разработчиков. opensource во всей красе.

    Велосепедостроение же может поощряться только в случае если у готовых решений есть другие существенные недостатки помимо "фатального". Если вам кажется что вы можете сделать лучше и т.д. можно перед написанием велосипеда обсудить это дело в трекере готового решения. Ну вы меня поняли. Велосипеды хорошо только для обучения и если нет другого выхода.
    Ответ написан
    2 комментария
  • Почему происходит push rejected?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    0blLD7H.jpg

    Ну а если серьезно, сделайте git pull (с --rebase или без)
    Ответ написан
    3 комментария
  • Как оценить ТЗ на разработку сайта?

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

    Ну а так все зависит от рейта. Как по мне 10К для какого-либо продукта адекватная стоимость.

    Применение нестандартных методов защиты от XSS атак, SQL инъекций и спам-роботов;

    Особенно эта строчка радует... ну и про уникальность модулей с целью обеспечения защиты. Писал профан.
    Ответ написан
    2 комментария
  • Чего вам не хватает в существующих системах управления проектами с использованием гибких методологий?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну вот вам упоротая и не сильно распространенная идея - использование gherkin сценариев написанных на этапе планирования в контексте ручного тестирования в совокупности с автоматизацией. Скрещивание идей частичной автоматизации задания прекондиций для тест кейсов (например чуть улучшить жизнь QA при помощи фикстур каких) на этапе ручного тестирования.

    Больше идей нет что бы они небыли чем-то нестандартным. Да я даже уже не уверен что приведенные выше примеры являются чем-то не стандартным.
    Ответ написан
    Комментировать
  • Сколько времени занимает изучение Angular.js?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Потратте день, пройдитесь по документации, помечайте непонятные вещи. Сразу выделите минимум недельку на штуки типа директивы, скоупы и т.д. Так же не забывайте что помимо самого angular придется разбираться с модулями аля ui-router что еще пару недель добавит. Что-то можно изучать в процессе, что-то (например работу с $provide, $q и $http) в любом случае придется освоить. Так же я так понимаю что у вас нет опыта в тестировании JS приложений, а без тэстов вы не сможете рефакторить и эксперементировать... А тесты сами по себе займут еще времени. Так же вам нужно разобраться с инфраструктурой - сборка проекта и т.д.

    Словом... прикиньте сами и ответте на вопрос. А так можно только цифры с потолка брать аля 2000 часов.
    Ответ написан
    Комментировать
  • Как правильно использовать entity из одного бандла в других бандлах?

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

    Я вообще последнее время стараюсь держать весь код проекта вне бандлов. То есть таких вещей как CoreBundle или MainBundle или AppBundle стараюсь избегать. Во всяком случае пока не жалею. А если я вижу что какой-то код можно реюзать - то можно вынести это дело в бандл.
    Ответ написан
    Комментировать
  • Перерисовывает ли AngularJS DOM?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    чта? фильтры дергаются на каждый $digest цикл. Если фильтр меняет значение, то меняется DOM. Меняется DOM - вне зависимости от того каким образом он меняется, выполняется перерисовка страницы или ее части.

    Либо уточните вопрос. Подозреваю что вас интересуют случаи комбинации ngRepeat и фильтров для коллекций. Если вместо "перерисовывания" вы имеете в виду создание нод - то ngRepeat старается использовать уже существующие ноды. Уточните.
    Ответ написан
  • Как разнести nginx, apache, mysql и прочее на разные сервера?

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

    Вы лучше скажите зачем вы это хотите сделать. От целей зависит и способ их достижения.
    Ответ написан
    3 комментария
  • Изучение Angular.js, где лучше?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Практика и доки.

    Если есть свободное время и не хватает практики - пишите. Есть пара бестолковых идей которые можно реализовать (opensource) но на которые не хватает времени.
    Ответ написан
    4 комментария