• Что почитать об архитектуре приложений и фреймворков на php?

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

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

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

    но совершенно не имею представления о правильной архитектуре приложений на php


    "Правильно" не бывает, все зависит от задачи. "Правильная" архитектура является:

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

    Вот и все. Далее уже есть принципы SOLID (читать Роберта Мартина), GRASP (Крэйг Ларман), GoF (лучше тут почитать head first design patterns или даже начать с Мэта Зандстры, у него помимо паттернов еще про процессы мельком рассказано).

    Ну и смысла в этом всем нет если вы еще до конца не осознали что есть инкапсуляция и полиморфизм. Многие могут рассказать что значат эти термины, но на практике эти знания они не могут применить (чаще всего страдает инкапсуляция)

    или написании чего-то своего с нуля на чистом php


    Такое решение может принимать только разработчик у которого уже есть за плечами хотя бы пяток лет опыта работы с различными (не одним) фреймворком и языками. В противном случае вы только будете заниматься бесполезным велосипедостроительством.

    идеально было бы вообще подробно расписанное сравнение внутреннего устройства нескольких фреймворков


    Берете Symfony или Zend и вперед. Все остальные фреймворки "проще". То есть скрывают больше от разработчика. После них уже можно брать что угодно.

    p.s. еще прочитайте тут: www.phptherightway.com
    Ответ написан
    12 комментариев
  • Работа без высшего образования, это реально?

    @FoxInSox
    Почему вы все так спешите начать работать? Да еще и вместо обучения (каким бы оно ни было).

    - У вас еще впереди лет 30-40 работы, большую часть жизни вам придется работать. Вероятность того, что вы все эти 30 лет будете работать в удовольствие далеко не 100%.
    - Начиная работать на 2-3 года раньше вам не дает сильных преимуществ в перспективе. В практически любой работе гораздо более важна эффективность, а не просто сколько времени вы проработали на определенной должности. Т.е. проработав, например, 5 лет, всегда найдутся люди с меньшим опытом которую делают вашу работу эффективнее (быстрее, качественнее)
    - годы обучения в ВУЗе для очень многих людей являются самыми счастливыми, а во многих случаях даже формируют фундамент всей оставшейся жизни: друзья, хобби, знакомства, связи, какие-то ключевые события. Сидя 8 часов в офисе в день на работе или в квартире на фрилансе вы все это упустите скорей всего.
    - во время учебы у вас есть масса времени попробовать поработать в разных местах и сферах: backend, frontend, мобильная разработка, дизайн, попробовать заняться научной деятельностью, попробовать что либо вообще не связанное с IT. После нескольких лет работы вы только будете мечтать о таком, но времени и возможности сменить радикально сферу работы вы не сможете просто.

    ps ну нахрена вам деньги в 17 лет? Машину купить? Бабу свою свозить в Европу? iMac за 100 тысяч купить? Это все вещи которые не стоят вашего времени как минимум 17 лет точно.
    Ответ написан
    6 комментариев
  • Как организовать день и работу?

    svfat
    @svfat
    ☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
    Возьмите за основу этот распорядок дня и переделайте под себя
    Ответ написан
    Комментировать
  • Какой выбрать сервис для отправки почты?

    @1Rockman
    Попробуйте Amazon SES, работает без сбоев, удобно, быстро, дешево.
    Ответ написан
    Комментировать
  • Какой выбрать сервис для отправки почты?

    dizballanze
    @dizballanze
    Software developer at Yandex
    Mailjet - немного дешевле чем mailgun.
    Ответ написан
    Комментировать
  • Какой выбрать сервис для отправки почты?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    mailgun работает.
    Как организовать - у них в факе (ну или в howtostart) написано.

    Впрочем, если вы действительно шлете спам - оно не спасет.
    Ответ написан
    1 комментарий
  • Как лучше организовать выполнение фоновых задач на php?

    pavel_salauyou
    @pavel_salauyou
    Symfony2 & Angular разработчик
    используй rabbit, создавай задачу на отправку писем, добавляй её в rabbit и спи спокойно, всё буде тсделано даже если сервер уйдёт в этот момент на перезагрузку. + такие вещи как очередь задач неплохо горизонтально масштабировать если нагрузка будет расти.
    Ответ написан
    Комментировать
  • Где лучше хранить статитку?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    Всё зависит от того, как вам с этими файлами взаимодействовать надо.
    У облачных хранилищ, обычно, достаточно специфичные интерфейсы взаимодействия (то есть нужно будет переписывать код, который отвечает за "заливку файла"). Тем более, у Amazon S3.
    У CDN в классическом понимании этого слова вообще нет интерфейса для заливки, они выступают кэширующим прокси над вашим ресурсом.

    Файлы можно просто сложить на отдельный сервер, настроить их для отдачи файлов (nginx-а хватит), поменять ссылки на сайте на новый сервер.
    В базе можно хранить id изображения, к диапазонам id привязать соответствующий сервер. И раздавать картинки с images1.domain.tld, images2.domain.tld и так далее.

    Писать в эти стораджи можно по NFS или через gluster (у него есть режим standalone-сервера). Тогда код переписывать не придется, только класть файлы в другие каталоги. А читать файлы пользователи будут уже по ссылкам, ведущим на другой сервер.

    Правда, сервер такой может упасть или стать недоступным. Если это беспокоит - то нужно заранее думать, как с этим бороться. В принципе, любой админ вам всё это расскажет.

    То есть у вас 2 пути:
    1) переписывать код под облачное хранилище (которое может закрыться через несколько лет).
    2) найти админа, который поможет вам организовать отдельную отказоустойчивую схему для картинок (если нужна отказоустойчивая). Здесь можно либо по сетевым ФС складывать файлы, либо переписать на заливку файлов POST-запросами на соседний сервер. Из плюсов - никогда не закроется =)
    3) если нужен только 1 сервер и сами хотя бы немного админить умеете - выносите на отдельный домен, монтируете по NFS/gluster, пишете через NFS, читаете по http с отдельного домена.
    Ответ написан
    2 комментария