• Что изучать сейчас?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    а стоит ли тратить сейчас на это бОльшую часть времени?


    Если вы идете в iOS разработку то нет. Ну то есть как, почитайте конечно, но не концентрируйте на этом внимание на данном этапе. Работа с большими объемами данных на клиенте это относительно редкий кейс (особенно для начинающего) а на малых данных в этом нет смысла.

    Хватит простого понимания почему сортировать большие массивы вставками лучше чем пузырьком, а так же как работают основные структуры данных (стэк, список, очередь, хэш-таблица) и когда их лучше применять.
    Ответ написан
    Комментировать
  • Как получить данные через websocket?

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

    Ну так и не доставайте, у вас же есть
    socket.onmessage = function(event) {
            outputSock(event.data);
        };
    Ответ написан
  • Как понять эту функцию angular?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Коль уж беретесь за angular - забудьте о том что бы работать с DOM напрямую. Вообще. Ни при каких обстаятельствах не пытайтесь даже получить доступ к элементу.

    Возможно правда что вы пытаетесь перевести код с jquery на angular, но тогда не понятно почему вы привели не JSON а какой-то js код который его разбирает.

    которая должна удалить дубли из текста.

    ng-repeat это примитив ангуляра для создания элементов для каждого элемента коллекции (массива). Ничего он удалять не должен. Вы это все должны сделать сами, простым Array.filter. Просто на JS. Ангуляр это UI фреймворк, обработка данных должна оставаться на вашей совести.

    Мне нужно знать что я делаю не верно

    Сделайте все просто на JS. На входе JSON, на выходе требуемая вами коллекция объектов. Затем эту коллекцию уже выводите через ngRepeat + биндинги.

    Вся соль ангуляра в том что бы полностью отделить логику обработки данных (что вы там фильтруете и под какие условия) от представления этих данных. Вместо прямой работы с DOM используйте датабиндинг.
    Ответ написан
    Комментировать
  • Как удалить запятую в конце строки?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    rtrim

    updated

    указали бы что для какого языка надо. По тегам не сильно легко догадаться можно. Вам нужен TrimRight
    Ответ написан
  • Насколько вы используете flexbox? Почему нет?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Использую повсеместно когда в требованиях к проекту пишут IE11+. Когда IE10+ - аккуратно но бывает использую. IE9 - боль и унижение, благо таких проектов да с какими-то сложными лэйаутами у меня уже нет.
    Ответ написан
    1 комментарий
  • Как комбинировать обьекты c RESTful API с помощью Angular?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    angular тут не причем. Это вы уже сами должны разруливать. Так же можете посмотреть на библиотеки для работы с rest api (restangular, ngResource, js-data или любая другая популярная либа).

    но тогда теряется идея РЕСТ...

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

    p.s. если вам не понятно - предлагаю ознакомиться с примерами из jsonapi.org
    Ответ написан
    Комментировать
  • PHP vs. all. Имеет ли смысл учить (параллельно) что-то еще?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    но код, особенно после C++, не вызывает каких-то положительных эмоций.

    А у меня не вызывает положительных эмоций код на C++. Да и код разный бывает. 90% кода на PHP у меня так же не вызывают положительных эмоций, но писать на нем нормально более чем можно.

    1) под фразой "php умирает" позразумевает его модель работы. После каждого запроса он умирает, то есть воркер отчищается и запускается по сути заного. Это существенно упрощает работу (у вас хоть сегфлоты могут быть всеравно весь сервак не умрет), а так же масштабирование (за счет отсутствия у самого PHP состояния между запросами, сессии мы не берем в расчет), но существенно бьет по производительности. К счастью с PHP 5.3 писать демоны на PHP не так уж страшно.

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

    2) PHP не такой уж стремный язык. Я не считаю "не консистентные названия функций" таким уж прям фактором влияющим на выбор языка. С моей точки зрения Ruby уродливая отрыжка, попытка сделать объектно-ориентированный перл (это лично мое мнение, мне не приятно работать с ruby, пусть меня за это простят), но за счет того, насколько сообщество ruby-разработчиков ценит и понимает цели бизнеса, насколько уважает тестирование своих решений и т.д... словом PHP комьюнити в этом плане еще расти и расти. Но прогресс виден.

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

    3) нет. Шансов на нормальном уровне с нуля изучить еще один язык программирования и к тому же фреймворк - почти нет. Да и в этом нет смысла.

    4) судя по вопросу вы уже определились для себя. Дальнейшая дискуссия не имеет смысла. Разбирайтесь. Но если брать шаред хостинги то PHP это пожалуй единственный адекватный вариант на сегодняшний день (если не брать в расчет что шаред хостинги как таковые это не очень адекватный вариант).

    5) все зависит от вас. Хорошие разработчики зарабатывают примерно одинаково вне зависимости на каком языке программирования они работают. Они просто хорошие разработчики и таких всегда мало.

    6) как хотите.

    И так...

    Язык программирования - это лишь инструмент для решения задач. Фреймворки - это так же просто инструменты для решения задач. Что важно - уметь задачи решать. И решать эффективно. Понимать что кривыми решениями вы увеличиваете риски для бизнеса.

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

    Ruby например бизнес (и стартапы в особенности) выбирает не потому что это хороший язык, а потому что Ruby комьюнити в среднем больше приспособлено для эффективного решения задач бизнеса. Что говорить когда у них любовь тестирования прививают с первых дней знакомства с языком?

    Не учите язык программирования. Учитесь разработке с применением этого языка. И тогда все будет намного проще.

    p.s. Haters gonna hate
    Ответ написан
    4 комментария
  • Как правильно сделать поиск по сайту в Angular?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    делаем запрос на сервак, получаем результаты поиска, выводим результаты поиска. В зависимости от типа ресурса генерим ссылки на просмотр.
    Ответ написан
    6 комментариев
  • Нужно ли оборачивать lastInsertId() в транзакцию?

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

    Шансы что lastInsertId бросит исключение примерно равны нулю, но у вас же не один запрос обычно?
    Ответ написан
    3 комментария
  • Обязательно ли регистрировать ООО или ИП, чтобы продавать игры в Google Play?

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Не могу решится что выбрать symfony или laravel.

    Для CRUD-а, если на сервере не будет ровным счетом никакой бизнес логики, лучше возьмите laravel, быстрее сделаете.

    от фрейма требуется только работа с базой и частичная валидация, кэширование, работа сессиями.

    А еще предоставление нормальной платформы для организации HTTP API но это мелочи да.

    Думаю что больше редис.

    redis универсальнее, но сложнее. В принципе тупо как key-value разница не существенна.

    Если есть возможность работать с вебсокетом, то будет хорошо, а если нет, то ajax.

    ajax (или XmlHttpRequest) это просто возможность делать HTTP запросы из браузера. То есть это поддерживают по дефолту все существующие фреймворки ориентированные на HTTP.

    Что до websockets - тут вам придется всеравно делать отдельное приложение, можно на пыхе но дешевле и проще взять node.js + socket-io. Причем не обязательно при этом все писать на node.js. Ваша апишка может быть реализована на PHP, и через очередь сообщений (redis умеет pub/sub и mq) просить другое приложение (простенькое на node.js + socket.io) отправить пользователям сообщения.

    Для авторизации в этом случае рекомендую JWT, так как тогда не нужно будет node.js-у стучаться в php приложение для подтверждения авторизации. Достаточно проверить сигнаруру токена и достать данных из оного. Опять же куча готовых решений как для symfony, так и для laravel и для socket-io.

    Ну и да, если у вас реально сервер нужен только в качестве клиента для базы данных + валидация - рассмотрите вариант использования инструментов типа loopback.io и прочего.
    Ответ написан
    6 комментариев
  • Правильно ли я понял работу фреймворков?

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

    В контроллере использую готовые функции например работа с БД.

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

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

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

    Подобный функционал, обрезка картинок, работа с графикой и т.д. уже реализованы до вас. Обычно все что нужно сделать разработчику - обернуть это дело красивым интерфейсом, который будет скрывать все детали того, как происходит обработка картинок.

    Тоесть половина функционала это функции фреймворка, половина это мои велики...

    Не велики, а бизнес логика. Фреймворк предоставляет вам каркас, решение типичных задач. В случае простого CRUD соотношение вашего кода к коду фреймворка библиотек может быть 1/10. В случае сложной бизнес логики и специфичной инфраструктуры - 10/1.
    Ответ написан
    Комментировать
  • Возможно ли через php структуризировать html код?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ответ написан
    Комментировать
  • Возможно ли расшифровать это?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    заменяем eval на echo/print и вуаля.
    Ответ написан
  • Почему private метод не возвращает результат?

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

    p.s. советую вам почитать таки документацию к PHP.
    Ответ написан
    2 комментария
  • Как правильно минифицировать AngularJs приложение?

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

    Этот шаг несет весьма сомнительную пользу ну да не суть.

    ngmin() выдаст файлы в правильном порядке

    ngmin делает ровно то же что и ngAnnotate только хуже медленнее и вообще deprecated.

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

    файл с модулем он подключил четвертым или пятым

    Если вы используете геттеры для модулей а не переменную:

    // плохо
    var app = angular.module('app', deps);
    // ...
    app.service('foo', FooService);
    
    // хорошо
    angular.module('app').service('foo', FooService);


    то ангуляр опять же все разрулит сам за счет ленивой инициализации модулей.

    все равно остались ошибки...

    Какие ошибки? Вы их не привели. Гадать тут не умеют.
    Ответ написан
  • Как сделать клик на cURL?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Никак, CURL не кликает, он отправляет HTTP запрос. То что вы там написали (submit=go...) это часть тела HTTP запроса.

    У инстаграма есть HTTP API, с ним и работайте.
    Ответ написан
  • Как перенести контейнер Docker с одного хоста на другой?

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


    Все изменения происходят с образом (добавляется слой изменений или несколько слоев) а не с "контейнером". А вообще было бы неплохо все же пояснить что вы там такое наменяли. Dockerfile?
    Ответ написан