Задать вопрос
  • С чего начать изучение Laravel?

    laracast.com отличный ресурс
    Ответ написан
    Комментировать
  • Как монетизируются языки программирования и бесплатные фреймворки?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Вы, простите, много видели программистов 1С, работающих на языке программирования 1С без 1С? Я - ни одного. Закрытый "клуб по интересам", который генерит такие велосипеды, что диву даешься.
    Закрытый язык программирования никто не будет учить, на закрытом фреймворке никто работать не будет, даже если будут обучать. Для чего его учить, время тратить? Чтобы потом иметь возможность устроиться только в компанию Х? Потеря сообщества - это смерть любой технологии, любого языка, любой ОС.
    Была такая замечательная ось - OS/2. То, что она замечательная, я знаю не понаслышке - все-таки два года проработал под ней. Погубило ее как раз отсутствие поддержки - не было софта, не было программистов, не было сообщества - все постепенно разбегались кто куда. Где нынче OS/2 - да никто и не вспомнит. А отдал бы IBM ее в опен сорс - глядишь, нашлись бы пара-тройка энтузиастов.
    Продавать продукт невыгодно - его можно продать один раз. Гораздо выгоднее продавать поддержку - ее можно продавать постоянно.
    Ответ написан
    4 комментария
  • Почему Yii/Yii2 не подходит для крупных проектов?

    ruFelix
    @ruFelix
    Предсказание будущего по руке, таро, кофе.
    Это мнение людей которые не умеют делать большие проекты. Им просто кажется, что если бы они могли взять вначале другой фреймоврк/язык/базу то результат был бы намного лучше, на деле же они просто не имели понятия о проблемах с которые появляются в больших проектах.
    Ответ написан
    2 комментария
  • Почему Yii/Yii2 не подходит для крупных проектов?

    @karminski
    Senior React.JS Developer
    У нас в компании 4 энтерпрайзных проекта на Yii2. В том числе CRM. В том числе и связь с телефонией, 1С, баг-трекером. Всё работает отлично, без нареканий. О каких "слабых" местах вы говорите? Прекратите читать - начните делать!
    Ответ написан
    7 комментариев
  • Куда податься PHP программисту?

    neuotq
    @neuotq
    Прокрастинация
    Выбирай любой ВУЗ где есть технические специальности программиста, конечно лучше что-то из крутых, больше можно будет научится у хороших профессоров, но даже не самые топовые уже хорошо. ВУЗ даст тебе опыт, понимание многих базовых фундаментальных штук, четкую программу что нужно учить на первых этапах. Помни, что самое важное в ВУЗе это не то как тебя учат, а то как ты учишься. Заканчивать конечно же не обязательно, хотя все же чем дольше ты продержишься тем лучше. Постоянно делай сайты и для группы и для кафедры и для различных ваших мероприятий. Параллельно нужно сделать over9000 заказов из города типа сайта для магазина что продает конфеты, все можно сделать даже за не очень большие деньги. но так ты набьешь руку еще и в практической части, поймешь какие проблемы реальных обычных людей что далеки от технических специальностей, научишься общаться и понимать задания которые не понимает тот кто их ставит и тд и тп.
    PS а, и обязательно найди деньги для этого: https://ru.hexlet.io/ , они сегодня одни из лучших в плане обсучения начинающих и не очень программистов. Подход совершенно иной чем у других "научу php за месяц", курсы и задания продуманны с целью прокачки прежде всего фундаментальных и практических штук, а уже следствие этого будет изучения php(ну или другого языка).
    Вот как то так.
    Ответ написан
    5 комментариев
  • Как организовать самообучение языкам программирования?

    aRegius
    @aRegius
    Python Enthusiast
    1. Определяете минимум, который вам необходим для создания продукта-цели. Ну, то есть, самый минимум, minimum minimorum. Например: "Для создания моего продукта мне нужны HTML, CSS, JS и PHP. Без любого из них я свой продукт создать не смогу. Это мой необходимый минимум."

    2. Ищите по 1-му толковому материалу (чтобы не распылять усилия на 8 книг и 15 онлайн-курсов по JS, условно) для каждого инструмента. Более того, по трем из них я вам могу дать рекомендации: HTML5 + CSS3 + JS. PHP не мой "конек", возможно коллеги подскажут...

    3. Учите в том же порядке: HTML, потом CSS, потом JS/PHP (PHP/JS, тут уж сами смотрите).

    4. Открывайте соответствующий материал по предмету, ознакомьтесь со структурой подачи материала и определите для себя ключевые точки для разбития этого материала на блоки, каждый из которых вы будете стараться пройти "за один присест".
    Например: открываете книгу по HTML, смотрите содержание, и принимаете решение (исходя из имеющегося у вас времени, которое вы готовы в день уделять обучению), что будете в день работать над 2-мя главами материала.
    Или: открываете материал по JS, смотрите содержание, и принимаете решение, что будете в день работать над 1-ой темой (сегодня - "Основы JavaScript", завтра - "Качество кода" и т.п.)

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

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

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

    Подытожим: определитесь с минимумом технологий, распланируйте время на изучение, учите технологии step-by-step - не распыляйте усилий, придерживайтесь графика.

    P.S. Вам будет проще, если вы сконцентрируетесь, поставите себе минимально возможные сроки и "возьмете эту крепость блицкригом", ибо на скользкую горку проще всего забраться с разбегу :)
    Ответ написан
    4 комментария
  • Как при работе единственным веб-мастером-на-все-руки в компании максимально эффективно прогрессировать в веб-разработке?

    ya-vitaliy
    @ya-vitaliy
    Верстаю... + wordpress и пробую Laravel
    Поверьте вам еще повезло вы только пол года проработали в вашей канторе. Я вот уже 1.5 года работаю в таком болоте. Правда дизайном не занимаюсь, но верстаю, интегрирую в cms, общаюсь с клиентами, правлю всякую кривую верстку и иногда еще всякой фигней по сео занимаюсь. За это все получаю 270$ (7000 грн. если перевести на наши) это притом, что живу в Киеве. Скажу больше веб разработкой я начала заниматься по нынешним меркам достаточно позндно - в 26 лет. И представьте ситуацию мне сейчас уже 28 стукнуло, я как был джуном так и им остался. Проработал за еду, вообще не накопил денег. Сейчас хочу свалить с этой канторы, а денег на "перекантоваться" вообще нет, еще и начальник видите ли заметил, что я начал забивать и зп решил недоплачивать. Но зарплата это все мелочи 1.5 года жизни жалко.
    Ответ написан
    7 комментариев
  • Где вести записи разработчику?

    deniscopro
    @deniscopro
    WordPress-разработчик, denisco.pro
    Ответ написан
    Комментировать
  • Чем отличается бесплатный ssl сертификат от платного?

    neatsoft
    @neatsoft
    Life is too short for bad software
    Тем что в случае оформления сертификата через cloudflare:
    • cloudflare будет обладателем приватного ключа - сможет просматривать и модифицировать трафик по своему усмотрению;
    • соединение будет зашифровано только на участке между клиентом и cloudflare (для шифрования соединения между cloudflare и сервером потребуется настоящий сертификат - самоподписанные никакой дополнительной защиты не обеспечивают, т.к. не проверяются);
    • сертификат будет действителен сразу для нескольких совершенно не связанных друг с другом доменов (для которых опция ssl на cloudflare была включена в одно и то же время).


    Если нужен нормальный сертификат:
    https://letsencrypt.org/ - бесплатно, сокращенный срок действия, автоматизированный перевыпуск
    https://www.ssls.com/ - $4.99/год (PositiveSSL, при оплате за 3 года)
    Никакой разницы между "domain validated" сертификатами за $5 и за $100 нет - они будут работать совершенно одинаково.

    Более дорогой сертификат может потребоваться если:
    • необходима поддержка нескольких доменов;
    • хочется получить "зеленую плашку" для большего доверия со стороны клиентов (такой сертификат выдается только после проверки документов).
    Ответ написан
    16 комментариев
  • Какими методами можно узнать доставлено ли email письмо?

    1. Основной метод контроля доставки - слежение за ошибками отправки (bounce). Ошибка чаще всего дается непосредственно в SMTP-сессию. В некоторых случаях сервер получателя принимает письмо, но в дальнейшем формирует сообщение о невозможности доставки (NDR).
    По стандартам, выдача сообщения о невозможности доставки в SMTP-сессию или отправка NDR являются обязательными, если ваше письмо прошло авторизацию (SPF и/или DKIM) - вы можете быть уверены, что получите баунс в SMTP-сессию или NDR если письмо не будет доставлено практически на 100%. Поэтому если на письмо в разумное время не получено отлупа, можно считать его доставленным. Сообщения о невозможности доставки идут на адрес отправителя SMTP-конверта (envelope-from). Чтобы точно знать, на какой адрес какое письмо не было доставлено, можно для каждого отправляемого письма формировать уникальный envelope-from.

    2. Есть расширение SMTP которое называется delivery status notification
    https://tools.ietf.org/html/rfc3461
    при отправке письма можно запросить, чтобы подтверждение доставки письма в ящик или на сервер получателя, не поддерживающего DSN пришло в явном виде. Подтверждения формирует MTA без участия пользователя. Поддерживается не всеми (например, postfix поддерживает, exim нет).

    3. Есть нестандартный заголовок Return-Receipt-To, который работает примерно так же как DSN. Но поскольку он нестандартный, его поддержка крайне ограничена.

    4. Есть стандартный (RFC 3798) заголовок Disposition-Notification-To упомянутый выше, это не уведомление о доставке, а уведомление о прочтении. Запрос на это уведомление как правило показывается пользователю и требует его подтверждения. Не надо использовать этот заголовок, если вы не хотите, чтобы вас прокляли.

    5. Пиксель в письме - не поможет проверить доставляемость, но в некоторых случаях позволить узнать что письмо было прочитано.

    6. (привет модератору). Таки есть службы типа postmaster.mail.ru и postmaster.yandex.ru, которые позволяют отслеживать доставляемость писем получателям данных сервисов, а это порядка 70-80% всех получателей. В данных службах можно смотреть статистику по доставляемости писем, попаданию в папку спам, действия с письмами (чтение, помечания спамом, удаления с прочтением/без прочтения). Причем можно задавать категории писем через специальный заголовок или селекторы DKIM и получать статистику раздельно по категориям писем. Это позволяет получить информацию даже по отдельному письму, задав ему отдельную категорию. Но делать так массово не стоит.
    Это основной источник данных по попаданию в спам / удалению без прочтений, etc.

    Немного не в тему, но может помочь:

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

    8. Почти все крупные сервисы поддерживают FBL. Вы можете в реальном времени узнавать, если на вашу рассылку идут жалобы пользователей.
    Ответ написан
    2 комментария
  • Для чего нужен Docker?

    @spotifi
    Внутри Docker только Linux, и, экспериментально, FreeBSD. Запускается нативно под Linux и, экспериментально, под FreeBSD. Под MacOSX, Windows - через виртуальную машину.

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

    Это почти виртуальная машина. Почти, да не совсем.


    Есть такое понятие "ад зависимостей". Любое ПО устанавливаемое на компьютер, тянет за собой зависимости (конфигурационные файлы, статические файлы называемые обычно asset, вспомогательные утилиты/сервисы, библиотеки и пр.). Ряд из этих библиотек/утилит/сервисов несовместим друг с другом. А с учетом того, что каждая из этих библиотек/утилит/сервисов имеет и свои зависимости - ситуация еще хуже.

    Например, мы используем Yandex.Cocaine, которая нормально компилируется только на Ubuntu 14.04 (и, вроде, на Debian 7). Но не под CentOS 6, 7, Debian 8, FreeBSD 9, 10, Ubuntu 15, 16 и пр. - скомпилировать его невозможно. Запускаем в этих операционных системах в Докере.

    С другой стороны, и одновременно с этим, вам необходимо установить другое, более современное ПО. И одновременно более старое. Причем речь даже не идет об серьезно отличающихся версиях Linux. Например, одно ПО требует не менее Ubuntu 14.10, а другое не более Linux 14.04.

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

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

    Вы можете сказать - ба, да это же давно известная виртуальная машина. Но нет, это не так. Это так называемые контейнера. Никакой виртуальной машиной там и не пахнет. За исключением Windows и MacOSX, где работа без виртуальном машины пока экспериментально возможно только, а нормой в этих ОС является использование Докера внутри полноценной виртуальной машины.

    Но виртуальные машины с Докером используются только для разработки. Для запуска в production виртуальные машины с Докер не используются.

    Докер использует контейнеры операционной системы. LXC в Linux, Jails в FreeBSD. Контейнер - это область операционной системы, изолированная от основной части операционной системы. В контейнере свое дерево каталогов (включая системные /dev, /bin, /sbin и пр.), свои сетевые порты и пр. и пр.

    Но при этом не используется полная виртуализация. Что существенно экономит ресурсы. Запустить 100 полноценных виртуальных машин вряд ли получится даже на мощном сервере. А вот запустить 100 контейнеров Docker даже на слабом домашнем компьютере - возможно.

    Правда использование не полной виртуализации ограничивает использование операционных систем внутри контейнеров. Как правило, это специально подготовленные версии Linux или FreeBSD. Именно специально подготовленные. Windows - в принципе в контейнере запустить невозможно.

    Контейнеры существовали и до Docker. Докер, строго говоря, это всего лишь очень удобный набор инструментов, собранных воедино, для управления контейнерной виртуализацией. Но очень удобный.

    Зачем это используется?

    Ребята из всяческих Dropbox, Facebook и и пр. гигантах, запускающие по 1 млн. различных программ в своих сервисах, столкнулись, что невозможно везде гарантировать идентичные настройки операционной системы. А это критично.

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

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

    Более того - изначально разработчик программного обеспечения тестирует программу в контейнере Докер, с определенными настроками. И в этом же (или с такими же настройками) контейнере Докера программа уезжает на сервер.

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

    До этого люди мучались, придумывали хитрые инсталяторы...

    Потом плюнули на попытки упорядочить окружение в ОС - и сейчас концепция такова - устанавливать программы на сервера вместе со своими индивидуально настроенными под них операционными системами - то есть внутри контейнеров. 1 контейнер = 1 настройка ОС = 1 программа внутри.

    Другими словами:
    • Докер-контейнер нужно использовать для отладки.
    • Тот же Докер-контейнер нужно использовать и на сервере.


    Это позволяет не трудиться с настройками "под сервер" локально на машине разработчика. Это позволяет разрабатывать на машине разработчика совершенно разные программы одновременно, которые требует несовместимых настроек операционной системы. Это позволяет давать гораздо больше гарантий, что программа на сервере будет вести себя также как и на машине разработчика. Это позволяет разрабатывать под Windows/MacOSX с удобным "прозрачным" тестированием под Linux.

    Докер применим к созданию/настройке только серверного программного обеспечения под Linux (экспериментально под FreeBSD). Не для смартфонов. А если десктопов - то только программное обеспечение без GUI.

    Посколько Докер позволил одним махом упростить работу разработчикам и админам и повысить качество результата - сейчас бум на Докер. Придумано огромная гора инструментов для управления развертыванием приложений созданных с Докером. Если раньше чтобы запустить 10 000 программ на 1000 серверах нужно было как минимум 3 высококвалифицированнейших девопса, которые писали кучу описаний как это сделать на Puppet, Salt, Chef, Ansible, да и то не было гарантий, это все тестилось месяцами. То сейчас с Докер даже один квалифицированных девопс может рулить миллионами программ на десятках тысяч серверов. С куда как большей гарантией, что все это заведется нормально.

    UPD:

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

    Разработчик отдает весь свой результат в систему CI (обычно через git)
    CI на каждый новый коммит делает с помощью Docker образ для тестирования.
    Если тесты проходят успешно, то этот же самый Docker образ, отправляется на развертывание в production.
    Или, чуть иначе в компилируемых системах, где исходники не нужны в production: в Docker производится развертывание среды для компиляции, а для тестирования разворачивается второй образ с уже откомпилированным добром, который уже отправляется в production.

    То есть при правильной огранизации дела разработчик не может/не должен влиять на то, какой будет образ.
    А вот в тестовой среде (запускаемом на сервер, недоступном разработчику в больших командах) и в production как раз используется один и тот же образ.

    Основная идея - что тестировали, ровно то и запускаем на боевом сервере. Один-в-один, включая те же самые файлы (не такие же, а именно те же самые).
    Ответ написан
    16 комментариев
  • В чем преимущества *nix, linux перед windows (для веб разработчика)?

    @spotifi
    Нету никаких проблем.
    Если только ваше конкретное используемое для ваших задач ПО нормально работает с Windows.

    Например, в моем случае используется Ansible и Docker, который не поддерживается на Windows. Приходится использовать Vagrant. Это достаточно удобно. Но ресурсы все же кушает.

    А так - даже Vim хорошо себя чуствует на Windows. Нативный. Не cygwin.

    Microsoft это тоже понимает.
    И вот уже они встроили подсистему Linux Ubuntu в Windows 10. Это не виртуализация, а именно полноценная подсистема.

    И многие вещи, например, те же шрифты - в Windows работают лучше, чем под Linux.

    Могут сказать - что лучше использовать для разработки ту же среду что и для production.

    Но дело в том, что даже если вы сидите на Ubuntu Desktop, то ваша среда серьезно отличается от среды сервера FreeBSD, CentOS, Debian, Ubutntu Server. И для полноценного CI все равно умные дядьки категорически рекомендуют и на Linux даже использовать Docker для полноценной эмуляции.

    Но ведь Docker-то можно использовать и на Windows. Правда, запускается он там подольше.

    Где именно вести разработку, где вам удобнее - это ваше личное дело. Вопрос ваших предпочтений. Никаких объективных причин в наше время, когда существуют Docker, Vagrant и виртуальные машины, когда куча приложений изначально сделанных для *nix запускаются в native под Windows - нет никаких причин себя строить. Кроме любопытства - а как оно там на других системах живется.

    У тех кто вас троллит есть еще одна причина: им приятно показать себя более умными. Как же - ведь Linux можно сконфигурить руками.

    Ага, конечно.

    Или используют готовые десктопные дистрибутивы. Не зря Ubuntu так популярна.
    Или если освоили ArchLinux - то построили себе совершенно убогое окружение по готовым мануалам.

    Чтобы действительно набрать скиллы ручной настройки Linux - нужно огромное количество упроства и времени, чем ваши друзья, которые вас троллят, вряд ли обладают.

    На деле 99% твердящих о гибкости Linux - далее чем ставить Apache и MySQL из пакетов - ничего сами и не умеют. Фактически работая в то же настроенной другими людьми десктопной среде. Но разве вы не умеете делать то же самое под Windows?

    Другое дело, что разворачивать и тестировать нужно под аутентичным операционным окружением.
    Неважно под Ubuntu ты сидишь или под Windows.

    Лучшие практики советуют использовать полностью изолированный и независимый от рабочего места разработчика инструментарий - виртуальные машины, Vagrant, Docker, отдельные физические сервера.

    В этом случае под твоей любимой ОС работает только текстовый да графический редактор. А все развертывание для тестирования и для продакшн проводится в совсем другой среде.

    Используя Docker хоть под Windows ты будешь получать даже больше преимущество повторяемости рабочей среды чем тем кругом, кто советуют тебе просто перейти на Linux. Если на более слабом железе это и было бы существенно (Docker под Linux стартует быстрее), то на твоем - несущественно на чем работать.
    Ответ написан
    9 комментариев
  • Что нужно освоить веб разработчику чтобы облегчить себе жизнь?

    tot0ro
    @tot0ro
    Front - end developer
    1. IDE
    2. xdebug
    3. git
    4. composer
    5.bower
    6.npm/bower
    6. less/stulys/sass
    7. grunt/gulp/webpack
    8. apache/nginx
    9. apc/opcache/memcache/varnish etc
    10. bootstrap
    11. VIM!!!!!!!!!
    12. English!!!!!!!!!!
    13. Все дырки через границу
    14. Умение не читать ИТ литературу русских программистов за исключением Макарова, Индутного
    15. Ненавидеть Попова
    Ответ написан
    40 комментариев
  • Node.js как замена PHP?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Нода хороша для задач, завязанных на событийную модель. Под задачи, с последовательным выполнением ноду лучше НЕ брать.
    Пхп хорош под задачи web, не требующие хранения состояния (или с внешним хранилищем под сессии на пример) язык идеален.

    Нода не может быть заменой пхп, а пхп - заменой ноды. Они предназначены для разных задач.
    Ответ написан
  • Node.js как замена PHP?

    akubintsev
    @akubintsev
    Опытный backend разработчик
    Я бы на вашем месте задумался кому вы сможете продать свои знания с этим node.js
    Node.js я бы не стал рассматривать как альтернативу php в реальном мире. У него есть своя небольшая ниша под узкий круг задач. Который, кстати, Go успешно покрывает с лихвой и даже больше.
    Ответ написан
    8 комментариев
  • Какие есть крупные open-source проекты на PHP?

    27cm
    @27cm
    TODO: Написать статус
    fideloper/fideloper.com
    jasonlewis/website
    Блоги на Laravel.

    yhbyun/laravel-bookmark
    Менеджер закладок на Laravel.

    DotPlant 2
    CMS для интернет-магазинов на Yii 2 (примеры сайтов).

    Piwik
    Система аналитики, альтернатива Google Analytics.

    Magento 2
    CMS для интернет-магазинов на Zend Framework 2 (примеры сайтов).

    И ещё кучу популярных сайтов с открытым исходным кодом можно найти на GitHub:
    https://github.com/search?l=PHP&o=desc&q=website&r...
    (laravel-tricks.com, packagist.org, elementary.io, joind.in...)
    Ответ написан
    1 комментарий
  • Какой php фреймворк наиболее прост в освоении?

    это вопрос не более чем выбора религии..
    если в будущем больше планируете взаимодействовать в русскоязычными разработчиками, скорее Yii2, если с англоговорящими - Laravel, или бросьте монетку, или оба попробуйте
    Ответ написан
    2 комментария
  • Какой php фреймворк наиболее прост в освоении?

    @Chelman
    Для русскоязычного разработчика, самый лучший вариант - Yii2.
    Большое количество видео на YouTube о том как вести разработку, хорошая книга Марка Сафронова, русская документация, русскоязычный чат на Gitter и русскоязычный форум.

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