Задать вопрос
  • Как перестать вариться в собственном коде?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну про angular styleguide вам уже написали. Так же добавлю что было бы неплохо почитать про SOLID принципы применительно к javascript и в принципе поучить сам javascript. Так же разберитесь наконец что такое MVC (не читайте одну статью, за 40 лет почти эти три буквы для многих стали значить слишком много разного), MVVM и т.д. Так же есть неплохой список вопросов который можно использовать как план изучения angular. Но еще больше профита даст внедрение TDD.

    Раз никто не занимается менторством, то найдите себе оного. И желательно не живого, так как живые менторы склонны к субъективизму.

    Идеальный ментор - юнит тесты. Причем основную ценность для вас они будут представлять когда кода который вы собираетесь тестировать вы еще не писали.

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

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

    ну и больше пробуйте, эксперементируйте. А для этого опять же нужны тесты.

    Я для себя сформулировал кое-какие личные правила, которым следую, и это позволяет мне писать тестируемый код. Часть этих правил я уже озвучивал тут.
    Ответ написан
    Комментировать
  • Связка promise и ng-repeat возможно ли?

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

    Попробуйте осознать разницу между императивным построением представления и декларативным описанием представления.
    Ответ написан
    Комментировать
  • Сложно ли найти работу ruby в офисе?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    сложно но более чем можно
    Ответ написан
    6 комментариев
  • Способы тестирования проекта, имитируя несколько тысяч пользователей?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    называется "нагрузочное тестирование".

    Пишем сценарии, имитирующие действия пользователей. Почти все популярные решения для нагрузочных тестов (например jmeter) имеют прокси-рекордеры, которые позволяют записывать ваши действия.

    Затем мы берем несколько серваков и пуляем с них запросами на наш сервер. Ну или покупаем подписку к сервисам. Благо их много.
    Ответ написан
    Комментировать
  • Для чего существует $_REQUEST?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    POST/GET нужны как раз таки что бы узнать как были переданы эти данные. А REQUEST - когда нам пофигу.

    В целом рекомендую никогда не использовать все эти вещи и вооружиться HttpKernel или PSR7
    Ответ написан
    1 комментарий
  • Вопрос по дополнительной нагрузке на сервер?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Как вы поступаете?

    Я пишу нагрузочные тесты.

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

    p.s. А где twig? у него все эти задачи уже давно решены (вроде проверки является ли элемент первым) и причем весьма эффективно.
    Ответ написан
  • Почему американцы нечасто используют домены .us\.ca?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1) канадцы используют доменные имена .ca
    2) ситуация для us домена
    Ответ написан
    Комментировать
  • Архитектура БД?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    rabbitmq вам нужен или что-то типа того. Распределенная шина данных с буферами для надежной доставки сообщений. Или что-то с redis наваять.
    Ответ написан
  • Как запретить UglifyJS минимизировать часть строки?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Комментировать
  • Запутался в коде javasript анимация + функция что делать?

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

    Вообще привыкайте - локальные переменные, обработчики событий, поиск элементов относительно других (closest, find с контекстом) - это хорошо.
    Ответ написан
  • Как подружить объектый подход взаимодействия с БД и ресурсоёмкую аналитику?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    CQRS, DataMapper на запись (легко поддерживать, относительно медленно на запись и чтение, очень медленно со сложными запросами), агрегации данных на чтение (легко поддерживать, быстро на чтение)
    Ответ написан
    Комментировать
  • Как решить вопрос с получением текста причины отказа в доступе при использовании CustomVoter и IsGranted()?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Счет заблокирован

    это бизнес правило, его не надо в секьюрити воутер пихать.

    Не хватает средств на счете

    Опять же это правило не в секьюрити воуетере должно быть. Тут вы можете просто бросить исключение или еще чего в соответствующем сервисе.

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

    Другие бизнес правила и ограничения будьте добры реализовать в сервисах своих. Можете тот же chain-of-responsibilitites шаблон использовать если вам так угодно, но...
    Ответ написан
  • Структура проекта Angualr?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Возьмите готовый скелет и не парьтесь + как вам советует Azimov Elbek почитайте angular styleguide.
    Ответ написан
    Комментировать
  • Адекватно ли отправлять данные из директивы сразу в сервис?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Не нарушаю ли я таким образом подход angular-way?

    Вы таким образом нарушаете подход MVC. Команды модели может отдавать только контроллер. На дворе 2015-ый год, скоро выйдут angular1.5 и angular2, пора отвыкать от наследия angular1.0 и 1.1

    1) никаких $scope в контроллерах (читать про controllerAs). По сути единственное место где можно использовать $scope - link директивы (которых при возможности тоже лучше не юзать). Соответственно такие приятные глазу вещи как $scope.$watch тоже лучше используйте только в link

    2) никаких отдельных контроллеров, контроллеры могут быть только у директивы (исключения - тупые контроллеры которые должны замэпить данные из параметров стэйта на директиву, то есть пробросить в атрибуты). Избегать использования module.controller. В целом почитайте про компоненты в контексте angular

    3) избегайте использования в приложении начистую angular API. Все то что со знаком $ (например $http, $sce, etc) должно юзаться в обертке (сервисы-репозитории, фильтры, отдельные мини-сервисы...). Таким образом мы максимально отделяем приложение от фреймворка, и делаем поддержку кода проще (например если вы захотите обновить зависимости, вам не придется переписывать пол приложения из-за каких-то изменений в API, ну и сторонние библиотеки тоже рекомендую заворачивать в обертки-фасады, пряча их от приложения. Опять же по той же причине, с ангуляром ждать сюрпризов редко приходится но вот сторонние библиотеки...).

    4) передавайте данные явно, то есть никаких ивентов, в сервисы (вашу модель) данные должны попадать по прямому вызову метода из контроллера. Тогда дебаг приложение и тестирование оного (вы же когда-нибудь начнете тестить приложения?) не будут вызывать боли. Да и поддержка кода существенно упростится. Исключение опять же - когда ивенты эмитятся и обрабатываются где-то в сервисах, например когда вы используете web-sockets. Тут как бы все с этим хорошо.

    Полезные материалы по теме:

    busypeoples.github.io/post/thinking-in-components-...
    teropa.info/blog/2014/10/24/how-ive-improved-my-an...

    p.s. Это все лишь рекомендации на случай если вы делаете не прототип на коленке а реаьлное приложение. Даже если в ближайшем будущем все это практиковать вам будет не реально (приложение пилится уже давно и переписывать его никто не будет), учтите на будущее.

    в целом то как что делать решать только вам. Вам же потом с этим кодом работать. Ну или о людях после вас подумайте. В целом то что вы делаете - это называется писать логику в шаблонах.
    Ответ написан
    2 комментария
  • Нужна помощь с регуляркой php?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ненадо парсить html регурярками, и все будет намного проще. Есть SimpleXML и другие API для работы с DOM.
    Ответ написан
    4 комментария
  • Как вы "держите" в голове функции, переменные и их значения при написании программы, или разборе чужого кода?

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

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    что бы нужен был абстрактный класс у вас должно быть две реализации одного интерфейса у которых проявляется дублирование.
    Ответ написан
    3 комментария
  • 16 процессоров лежат и пылятся под Android! Как их задействовать для распределённого рендера?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    У андроида еще есть GPU, вот на нем это лучше делать. 16 ядер это пшик.
    Ответ написан
  • Как лучше строить приложение?

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

    https://github.com/angular-class/NG6-starter - попробуйте такой подход. Он хорошо подходит к случаю с большими приложениями и довольно удобен (+ я там в gitter тусуюсь). Так же в angular 1.5 появится хелпер angular.component который еще чуть упростит все дело. Ну и angular styleguide почитайте.
    Ответ написан
    Комментировать
  • Как сравнить две строки, имеющие разный символьный состав?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Как их можно сравнить?

    взять код символа.
    Ответ написан