Задать вопрос
  • Как установить на сайт или на openserver Instagram API?

    opium
    @opium
    Просто люблю качественно работать
    Тупо скопируй файлы и все
    Ответ написан
    Комментировать
  • Можно ли спарсить список фолловеров без авторизации в инстаграме?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    нет
    Ответ написан
    Комментировать
  • Куда пойти учиться на разработчика в Москве?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    В Вузах не учат программированию.

    Поищите вакансии на джуниора. Почитайте требования. Прочитав 10-20 вакансий, усредните и у вас будет понимание что нужно учить, чтобы попробовать устроиться.
    Либо возможно вы сразу пробуйте попасть на интервью.
    Ответ написан
    Комментировать
  • PHP ORM для бизнес приложений?

    iit
    @iit
    TeamLead + php/js разработчик
    Все зависит от размера проекта и фреймворка. Если проект не большой то подойдут laravel с Eloquent. Отдельно ставить Eloquent смысла мало он всеровно затянет половину ядра laravel.

    Если проект уже среднего размера тогда подойдут Symfony + doctrine. Правда для того что работать с ними нужно достаточно много знать один dql чего стоит.

    Если же проект огромный и дико нагруженный то есть смысл попробовать сделать его не на php а например на java + spring + hybernate.

    Ещё советую попробовать ddd и можно будет в любой момент поменять laravel на symfony а eloquent на doctrine или на тот же propel
    Ответ написан
    2 комментария
  • Актуальна ли ниша PHP на Upwork?

    opium
    @opium
    Просто люблю качественно работать
    Что вам мешает просто зайти и посмотреть, там же все открыто
    Ответ написан
    Комментировать
  • PHP ORM для бизнес приложений?

    artemylapko
    @artemylapko
    Symfony, Doctrine developer. Немного js и python.
    Doctrine. Возможно в начале будет не очень легко, нужно только выбросить из головы всякие active record и т.д. Но когда вникнешь в суть, уйти от доктрины не сможешь.
    Ответ написан
    6 комментариев
  • Как это сверстать?

    @McBernar
    Самое лучшее решение — отобрать у дизайнера компьютер.
    Это я вам как дизайнер говорю.

    Кажется, что <pre> будет самым простым вариантом.
    Ответ написан
    1 комментарий
  • Какой гибкий и приятный text editor посоветуете для Yii2?

    Adobe
    @Adobe
    php developer
    Давно пользую https://imperavi.com/redactor/
    И он бесплатный для Yii
    https://github.com/vova07/yii2-imperavi-widget
    Ответ написан
    Комментировать
  • Как въехать в программирование (ООП, паттерны)?

    parschakov
    @parschakov Автор вопроса
    Начинающий изучать PHP и JS
    про SOLID действительно очень интересно, понравилось объяснение от Дмитрия Афанасьева, оставлю ссылку на плейлист здесь думаю будет интересно подписавшимся на вопрос.
    Ответ написан
    2 комментария
  • Как въехать в программирование (ООП, паттерны)?

    GTRxShock
    @GTRxShock
    SA
    если программируете на php 2-3 года, то пора бы перед сном почитать РНР: объекты, шаблоны и методики программирования (Зандстра) желательно в бумажном варианте.

    + Паттерны проектирования (Фримен) для общего/наглядного понимания паттернов
    + www.phptherightway.com основные тезисы
    + Рефакторинг: улучшение проекта существующего кода (Фаулер) & https://refactoring.guru/ru на будущее, к чему стремиться :)
    Ответ написан
    4 комментария
  • Стоит ли новичку начинать с фреймворка или лучше учиться на чистом php?

    @vodniciarv
    Пиши свои штуки на чистом PHP на процедуральном стиле.
    Потом изучай ООП и начни что-то сделать своё но уже на ООП.
    Потом изучай MVC и уже переходи к фреймворкам.
    Ответ написан
    32 комментария
  • Как проверить работает ли composer?

    @ultrasoft
    Возможно, это подцепился composer, который идет с Open Server. Там рядом с php.exe лежат файлы composer.bat и composer.phar. Версия их уже давнишняя, стоит их стоит куда-нибудь переместить или удалить.
    Ответ написан
    7 комментариев
  • Исходники каких PHP-проектов лучше поизучать для примера отличного PHP-кода?

    copist
    @copist
    Empower people to give
    Проголосую за Yii (первый или второй) и Zend Framework 2. Александр Макаров только не надо про срезание углов :) Laravel нигде не срезал, все паттерны реализовал, очень гибкий. За это его обхожу стороной, огородами. Для начала надо что-то попроще.

    В Yii/Zend всё можно раскопать (на тостере пример про компоненты, и роутинг). Не очень много кода, в большинстве случаев не сложные реализации классических паттернов проектирования, довольно простая навигация по классам и разбор стека ошибок.

    Дополнение к ответу:
    Хотелось бы увидеть примеры отличного кода в работе реальных проектов. Изучение исходников Yii2 и Laravel многое дали, но не все.

    Не заметил сразу.

    А что не дали эти фреймворки?
    Я не слишком шокирую, если скажу, что в реальных проектах код не очень отличный? Высокопроизводительные нагруженные веб-проекты стараются обходить стороной сложные шаблоны проектирования, потому что всякие там поздние связывания, декораторы, рефлексии и прочая ерунда жрёт ресурсы, которых постоянно не хватает. Вместо красивого класса-декоратора просто вызывают метод класса, вместо DI напрямую вызывают классы. Классные проекты отличаются классностью для пользователя, делают полезные штуки, все такие веб-два-нольные, материал-дизайные, юзер-френдные. А внутри там ......... ааааа! Каждый раз, когда в классный проект решают внести ещё одну классную штуку, то один, то другой программист говорит: "там надо переписывать, лучше заново". Чем старше проект, тем чаще звучат слова "говнокод", "костыли" и "рефакторинг".

    В общем, если Yii и Symphony и шаблоны проектирования уже пройденный этап, то нужны другие книги :)
    Ответ написан
    1 комментарий
  • Есть ли такая технология - получить из PSD автоматом нарезанный и сверстанный сайт?

    @timfcsm
    при любых раскладах на выходе будет говно, которое в итоге руками разгребать придется
    Ответ написан
    14 комментариев
  • Где можно попрактиковаться в php?

    Akdmeh
    @Akdmeh
    PHP, Yii2, Music
    Нет, писать CMS не стоит.
    Напишите блог на Yii2.
    Затем напишите простенький магазин (показ товаров по категориях) на Yii2, параллельно читая документацию.
    Как вариант можно Symphony выбрать или любой другой популярный фреймворк (Lavarel, CI, Zend (если с ума сошли), тысячи их).
    Но именно почувствуйте дух фреймворков. Тогда мозги будут работать в правильном направлении, а практику вы получите колоссальную. И, главное, научитесь на просто делать нормальные сайты, но и не создавать велосипеды.

    Как создавать блог на Yii2 вы найдете запросто, постепенно усложняйте его функционал и поймите принципы работы. Заодно сразу увидите, чего вы не знаете именно в синтаксисе PHP.
    Ответ написан
    14 комментариев
  • PHP7 и Yii. Как там с производительностью?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    А Yii работает на PHP7 100% ?
    Ответ написан
    6 комментариев
  • Из чего состоит окружение продвинутого php разработчика?

    nonlux
    @nonlux
    Поправил ответ, так будет логичнее.
    Ниже приведены инструменты, которые использую лично я и причины почему.

    1. docker-окружение
    (в 90% случаев для веб-разработки достаточно php -S 0.0.0.0:8000)
    виртуальные машину становятся нужны:
    - когда надоест переустанавливать хост-систему из-за обилия хлама
    - когда работаешь с несколькими проектами имеющие специфические (разные) настройки окружения(php, web-сервер, база)
    - когда надоест решать проблемы в команде из-за того что по разному настроено окружение

    2. git - система контроля версий
    Помнить что ты и когда изменял, должен не человек, а машина.
    Это необходимо:
    - чтобы не испортить всю работы за прошедший год нажав del
    - чтобы определить кто из команды злодей и все испортил
    - чтобы не думать как перенести свежую версию проекта с одной машины на другую

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

    4. behat + phpspec
    Тесты нужны:
    - когда хочется почувствовать себя безопасности и для сладко спать ночь, забыв о кошмарах о сломанном коде
    - когда в production все снова сломалось
    - когда ты написал одну новую фичу, а сломал три

    5. zsh
    Хорошей консолью приятно пользоваться, работа идет быстрее.
    Консоль есть жизнь, жизнь есть shell.

    6. tmux
    Мало одно окошка в консоли, тогда tmux идет к вам.
    В качестве бонуса получите возможность парного программирования совершенно бесплатно

    7. tmuxinator
    Надоело каждый раз открывать кучу окон для tmux, попробуйте его )
    8. vim
    - Потянуло на что-нибудь необычное?
    - Хочется эффективнее писать код ?
    Ну что открыли vim? В первый раз? Поздравляю закрыть вы его не сможете )
    Вызывает зависимость при частом потреблении


    9. continuous integration сервер
    Вообще ci сервер это одушевленная машина. Это твой тамагочи, ты кормишь его хорошим кодом, он радуется и ты видишь приятный зеленый огонек. Если ты дал с код от скажет что не вкусно. Ну а если ты ему, что гнилое он будет долго на тебя орать плохими словами. Со временем он растет и учится делать более серьезные вещи, и начнет помогать тебе:
    Его скилы:
    - он может сам выполнить 10 минутные тесты
    - подготовить и опубликовать проект
    - рассказать о твоем коде, даже то что ты не знаешь
    Он легко обучается и ты легко сможешь научить его удивительным вещам.

    10. куча линтеров на pre commit hook
    Чтобы ci не кормить плохими продуктами, хорошо бы проверять что ты сделал до отправки на сервер. Что бы не забыть это сделать git сам работу.

    11. gulp
    gulp - это еще один твой помощник.
    как если использовать, как watcher файлов + livepreview, можно забыть о F5 в браузере

    12. bower
    Тоже что и composer но для управления ассетами. Это я о всяких jQuery и Bootstrap

    666. Линукс
    Даже если не хочется ставить как хост-систему, его все равно надо знать. Ваш код будет работать на нем )
    Ответ написан
    16 комментариев
  • Где можно по шагам разобрать пример разработки сайта на yii 2.0?

    mulat
    @mulat
    seo, php, yii2
    Лично мне не подходит обучение по одному чудо-учебнику.
    Опишу свой путь.

    1. документация на английском + почитывал Mark Safronov, Jeffrey Winesett - Web Application Development with Yii 2 and PHP - 2014. Учебник прочёл с большего и закинул в пользу доки.
    2. параллельно смотрел канал DoingItEasy, плейлист Yii2 Lessons
    3. устанавливал и разбирал модули и дополнения Kartik Visweswaran, Василия Круду, Михалыча, Neverton, himiklab.
    4. сделал своё приложение со всевозможными извратами для переноса старых проектов с самописной cms.
    Очень помогло знание английского, т.к. в буржнете немало поднимается вопросов, и по теме Yii2 в частности.
    Хватило месяца, чтобы почувствовать себя уверенно в теме. На самом деле думал освою на много раньше.
    Ответ написан
    Комментировать
  • Хорошая архитектура symfony app?

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

    Всего существует не так много типов задач:
    1) хранение данных приложения - модель. Модель ничего не должна знать о базе данных.
    2) слой доступа к БД - репозиторий. Вся работа с БД - здесь, и всё, что связано с одной сущностью - в репозитории этой сущности. Если нужно взаимодействие нескольких сущностей, то, скорее всего, репозиторий одной из сущностей не подойдёт, эта задача пойдёт в сервис.
    3) бизнес-логика - сервисы. Сервисы умеют получать данные (модели), обращаясь к репозиториям или лучше к другим сервисам (служебным).
    4) служебные задачи - сервисы. Например, кэширование данных реализуется в специальном сервисе.
    5) отображение данных - шаблоны. Весь html - только в шаблоне, а также логика отображения тоже в нём (вывод списков, некоторые фильтры)
    6) подготовка данных к отображению - контроллер. Запрос пользователя приходит в контроллер, контроллер же обращается к сервису (или в простом случае к репозиторию) за данными. Возможно, для обработки запроса нужно получить данные из нескольких сервисов/репозиториев, а скорее, правильный сервис сам подготовит все данные для запроса.

    Получается, контроллер вызывает сервис, который предоставит готовые данные, и будет очень простым - "тонким". Основной код, отвечающий за работу задач приложения - в сервисах. Один и тот же сервис часто будет вызываться из разных контроллеров. Работа с БД - не в сервисе и уж точно не в контроллере, для этого нужен репозиторий.
    Если структура БД изменится, то в хорошей архитектуре поменять придётся только репозиторий, но не сервисы/контроллеры. С другой стороны, изменение схемы БД чаще всего связаны с новыми фичами, поэтому придётся добавить новый сервис или изменить существующий.
    Модель же умеет не так много - выводить свои данные, возможно, в разных форматах (данные, возвращаемые моделью не обязаны совпадать с полями сущности - см. пример в комментарии keltanas в ответе Владимир Балин).

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

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

    P.S. Я вот написал, что модель не должна ничего не знать о базе данных, получается, что неправильно использовать аннотации для маппинга полей сущности на поля таблиц. После ответа на этот вопрос я, скорее всего, пересмотрю свои взгляды на @ОRМ-аннотации в моделях.
    Ответ написан
    23 комментария
  • Как быстро подтянуть свой уровень веб-разработчика, чтобы соотвествовать требованиям работодателей?

    5angel
    @5angel
    Фронтенд-лид
    Давайте обратимся к данной публикации, чтобы понять примерные тренды, потому что наиболее выгодный вариант – это все же фронтендер.

    Вкратце, полноценный клиентский разработчик должен знать:
    – html5/css3 + bootstrap
    – один-два препроцессора (less/stylus)
    – чистый js и пару-тройку клиентских библиотек или фреймворков (knockout/backbone/angular/react)
    – немного node.js, чтобы уметь пользоваться пакетным менеджером (npm) и билд-менеджером (gulp/grunt)

    Этот список покрывает большинство клиентских задач в средней студии или стартапе.

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

    Другой вопрос – что со всем этим делать.

    Я обычно предлагаю попытаться начать свой маленький проект. Какой-нибудь простенький личный сайт, игру на js (тот же flappy bird или 1048 – много ума здесь не нужно). Посложнее – свою тему или библиотечку. Это будет хорошим практическим опытом, который не стыдно описать в резюме.

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

    Если говорить о личном опыте, то я неплохо подтянул js с помощью codewars – задачки начинаются от самых простых (преобразование строк, перебор массива), до очевидно тяжелых (собственные интерпретаторы и преобразование данных изображения).

    А вот попытка спихнуть на верстальщика UI/UX – это уже экономия со стороны отдельных контор, которые по какой-то причине не хотят нанимать отдельного дизайнера/проектировщика в штат или по контракту. Тут, к сожалению, придется мириться и смотреть статьи по теме – тот же GoodUI.
    Ответ написан
    10 комментариев