• Можно ли отправить письмо на почту с локального сервера?

    fabrykant
    @fabrykant
    Вот настройки openserver
    2e6e1dea857441d08d91970fc6ba22d6
    Ответ написан
    Комментировать
  • Можно ли отправить письмо на почту с локального сервера?

    arutyunov
    @arutyunov
    Mooza.ru — Делаем сайты
    А что на локальном сервере установлено?
    Например, в денвер или openserver вся почта сохраняется на диске и никуда не уходит.
    Ответ написан
    Комментировать
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Смотря зачем)). Я когда делаю Code Review критерии следующие:

    * Безопасность:
    - Каждый аргумент метода простого типа должен проверяться на тип в случае его проксирования и на граничные значения в случае обработки. Чуть что не так - бросается исключение. Если метод с кучкой аргументов на 80% состоит из поверки из аргументов - это вполне норм))
    - Никаких trigger_error, только исключения.
    - Исключения ДОЛЖНЫ быть человеко-понятны, всякие "Something went wrong" можно отдавать пользователю, но в лог должно попасть исключение со стектрейсом и человеко-понятным описанием, что же там пошло не так.
    - Каждый аргумент (объект) метода должен быть с тайпхинтингом на этот его класс, или интерфейс.
    - За eval как правило шлю на **й.
    - @ допускается только в безвыходных ситуациях, например проверка json_last_error.
    - Перед работой с БД - обязательная проверка данных.
    - Никаких == и !=. Со swtich - единственное исключение, по ситуации.
    - Если метод возвращает не только bool, а еще что-то - жесткая проверка с ===, или !== обязательна.
    - Никаких условий с присваиваниями внутри. while($row = ...) - тоже идет лесом.
    - Магические геттеры/сеттеры разрешаются только в безвыходных ситуациях, в остальном - запрещены.
    - Конкатенации в sql - только в безвыходных ситуациях.
    - Параметры в sql - ТОЛЬКО через плейсхолдеры.
    - Никаких глобальных переменных.
    - Даты в виде строки разрешаются только в шаблонах и в БД, в пхп коде сразу преобразуется в \DateTimeImmutable (в безвыходных ситуациях разрешено \DateTime)
    - Конечно зависит от проекта, но как приавло должно быть всего две точки входа: index.php для web и console(или как-то по другому назваться) - для консоли.

    * Кодстайл PSR-2 + PSR-5 как минимум, + еще куча более жестких требований (для начала все то что в PSR помечено как SHOULD - становится MUST)
    - В PhpStorm ни одна строчка не должна подсвечиваться (исключением является typo ошибки, например словарик не знает какой-то из аббревиатур, принятых в вашем проекте). При этом разрешается использовать /** @noinspection *** */ для безвыходных ситуаций.
    - Если кто-то говорит, что пишет в другом редакторе и у него не подсвечивается, на эти отговорки кладется ВОТ ТАКЕЕЕНЫЙ мужской половой **й и отправляется на доработку)).

    * Организация кода:
    - Никаких глобальных функций.
    - Классы без неймспейса разрешаются только в исключительно безвыходных ситуациях.

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

    * Принципы MVC:
    - Никаких обработок пользовательского ввода в моделях, от слова совсем.
    - Никаких ***ть запросов в БД из шаблонов.
    - Никаких верстки/js/css/sql-ин в контроллерах.
    - В моделях НИКАКОЙ МАГИИ, только приватные свойства + геттеры с сеттерами.
    - В моделях разрешено использовать метод save(при наличии такого разумеется) только в исключительных ситуациях. Во всех остальных - либо insert, либо update.

    * Принципы SOLD:
    - Никаких божественных объектов умеющих во все.
    - Если метод для внутреннего пользования - private, никаких public.
    - Статические методы разрешаются только в случае безвыходности.

    * Принцип DRY разрешено нарушать в случаях:
    - Явного разделения обязанностей
    - В тестах (каждый тест должен быть независимым, на сколько это возможно)

    * Работа с БД:
    - Запрос в цикле должен быть РЕАЛЬНО обоснован.
    - За ORDER BY RAND() - шлю на***й.
    - Поиск не по ключам (конечно если таблица НЕ на 5 строк) запрещен.
    - Поиск без LIMIT (опять же если таблица НЕ на 5 строк) запрещен.
    - SELECT * - запрещен.
    - Денормализация БД должна быть обоснована.
    - MyISAM не используется (так уж)) )
    - Множественные операции обязательно в транзакции, с откатом если чо пошло не так.
    - БД не должна содержать бизнес логики, только данные в целостном виде.
    - Не должно быть нецелесообразного дерганья БД там, где без этого можно обойтись.

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

    * О людях:
    - "Я привык писать так и буду дальше" - не вопрос, ревью пройдешь только когда поменяешь свое мнение.
    - "Я пишу в vim-е и мне так удобно" - здорово, код консолью я тоже в нем пишу)) но есть требования к коду, если в них не сможешь - не пройдешь ревью.
    - "Я скопировал этот страшный метод и поменял 2 строчки" - это конечно замечательно, но по блейму автор всего этого метода ты, так что давай без говняшек, хорошо?
    - "Оно же работает!" - вот эта фраза переводится примерно так: "да, я понимаю, что пишу полную хрень, но не могу писать нормально потому, что руки из жо", я правильно тебя понял?))
    - "У меня все работает!" - рад за тебя, а как на счет продакшна?
    - "Там все просто" - не используй слово "просто", от слова "совсем". Вот тебе кусок кода (первого попавшегося с сложной бизнес логикой), где там ошибка (не важно есть она, или нет)? Ты смотришь его уже 2 минуты, в чем проблема, там же все "просто"))

    * Всякое:
    ActiveRecord (это я вам как в прошлом фанат Yii говорю) - полное говно, примите за исходную. По факту у вас бесконтрольно по проекту гуляют модельки с подключением к БД. Не раз натыкался на то, что в тех же шаблонах вызывают save, или update (за такое надо сжигать).
    То, что используется Laravel - это печально((. Что бы выполнить требования приведенные выше, приходится "воевать" с фреймворком.

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

    UPD

    Формализировал данные критерии по ссылочке: https://github.com/index0h/php-conventions
    Ответ написан
    55 комментариев
  • Где большие чаты рускоговорящих web-разработчиков?

    web_user
    @web_user Автор вопроса
    Django, HTML + CSS, JS, Photoshop, Illustartor
    Раздобыл, список русскоязычных ИТ-чатов:
    https://github.com/mr-mig/ru-it-chats

    Спасибо, Illia Segeda из чата gitter.im/dev-ua/frontend-ua.
    Ответ написан
    Комментировать
  • Какой у вас процесс разработки сайта(opencart) с применением git? Как вы синхронизируете БД в git? Что вы закрываете в .gitignore для opencart?

    sim3x
    @sim3x
    опенкарт не предназначен для нормальной разработки
    гит, миграции, тестирование - не про данную поделку
    Ответ написан
    3 комментария
  • Какой у вас процесс разработки сайта(opencart) с применением git? Как вы синхронизируете БД в git? Что вы закрываете в .gitignore для opencart?

    @bigtrouble
    Не скажу за опенкарт и гит, но мы у себя используем hg(думаю тоже можно и на гите) и процесс выглядит примерно следующим образом:
    На сервере два домена - основной и тест.основной. Все пуши идут на тест.основной, на нём настроен хук, на изменение репо, который выталкивает всё в основной.
    На тест.основной ветка всегда тест, на основном default.
    Сейчас переползаем на bitbucket для Code Review, там будет хук который дёргает домен, на сервере затем следует pull с битбакета и пуш на основной. Как-то так.

    2. Автоматом можно, смотрите в сторону хуков, у вас там же будет репо, но всегда на одной ветке. FTP вообще бы не рекомендовал использовать для синхронизации файлов.

    3. БД да, у нас с ней проблема, договариваемся, таскаем бекапы, но по хорошему стоит добавить систему миграций.

    4. Не могу ничем помочь)

    P.S. Так же настроены хуки, чтобы не коммитить напрямую в тест, не давать сливать из теста в основную ветку или разрабатываемую, только в тест можно вливать. Ещё хук на то чтобы не коммить в дефолт напрямую, только сливать. И ещё чтобы тест нельзя слить с основной веткой
    Ответ написан
    7 комментариев
  • Как применить один сценарий canvas к нескольким элементам страницы?

    @Sratimon
    сделать функцию . обвернуть в нее код . функция будет принимать изменившиеся параметры .просто вызываешь 10 раз свою функция с другими параметрами
    функция мая(лево, право, верх, низ, еще что то){
    твой код
    }
    мая(50, 25, 12, 35, т.д)
    мая(15, 20, 12, 31, т.д)
    мая(12, 25, 12, 15, т.д)
    мая(10, 2, 2, 35, т.д)
    Ответ написан
    2 комментария
  • Как у вас организована командная работа?

    SpiritAbsolute
    @SpiritAbsolute
    Рекомендую Bitbucket!
    Можно создать приватный репозитарий, создать в нем свое wiki.
    Можно создать свою команду и в ней создавать хранилища для разных проектов.
    Есть встроенная интеграция с HipChat. Создаешь комнату для своей команды и туда будут прилетать все коммиты которые вы делаете. И чат довольно удобный. Сохраняет ссылки и файлы в истории.
    Ответ написан
    Комментировать
  • Как ставить задачу дизайнеру и что с него требовать?

    valbars
    @valbars
    Дизайнер
    Так как буквально вчера я уволился со студии могу кое-что посоветовать.
    Как можно подробнее описывайте свои пожелания, показывайте не просто примеры сайтов, а напишите что именно на этих сайтах вам понравилось. Если вы сделаете прототип - супер! Если нет, опишите, что должно быть на главной. Очень важно указать адаптивный будет сайт или нет, так как еще не все дизайнеры делают изначально адаптивный дизайн. Если вам вообще не понравился дизайн, то скажите конкретно, что именно не понравилось, фраза "не нравится, перерисуй" - только раздражает и где гарантия, что вторая версия вам понравится?
    Еще лучше сразу продумать много раз, что будет на главной. У меня бывали случаи, что мне говорили уже в конце работы "добавь поиск" и через пять минут спрашивали "ну что, добавил?" Это не так просто, бывает, что дизайнер все красиво расположи по сетке и чтоб добавить поиск нужно многое переделать. В общем единственный совет для заказчика: всегда хорошо все продумывать заранее и больше конкретики. Как показала практика просьбы типа "сделай, что-то классное" заканчиваются тем, что дизайн делается под диктовку заказчика. Либо говорите точно, либо доверяйте таланту дизайнера.
    Ответ написан
    Комментировать
  • Как ставить задачу дизайнеру и что с него требовать?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    В плане дизайна что-либо особо советовать не стоит.
    Вы должны указать требования (одноязычное, многоязычное)
    Корпоративные цвета/логотипы/стандарты, если они есть.
    Примерно варианты внешнего вида можете обсудить. Светлое/темное/крупное.

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

    ТЗ должно подробно описывать функционал. Это и для вас задача, чтобы все было выполнена. И для исполнителя понятно, что можно за это запросить xx денег, и лишнего, что в это ТЗ не вошло не делать, или за отдельные деньги.

    Если не чувствуете себя полностью уверенным, можно как вариант с исполнителем договориться, что вы совместно создаете ТЗ, и эти несколько часов оплачиваете как консультацию, а затем уже согласовываете сроки/стоимость по выполнению этого составленного ТЗ.
    Ответ написан
    1 комментарий
  • Как ставить задачу дизайнеру и что с него требовать?

    @GreatRash
    Чтобы максимально облегчить работу дизайнеру нужно начинать не сразу с дизайна, а в вайрфреймов (проволочных рамок, wireframes). Ну это после того как на бумажке что-то набросаете. Дизайнер их нахреначить может всего за часик, и поменять легко если вам что-то не понравится. А потом уже можно заполнять "мясом".

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

    viktorvsk
    @viktorvsk
    Если это типичный небольшой интернет-магазин, то сначала нужно
    Надо нарисовать всю структуру сайта на бумажках

    Потом, хорошо бы, все-таки продумать ТЗ, так как очень много всего вы 100% не учли, а дизайнер не должен быть гуру екоммерса, что бы на все это указать. Далее, если то, что вы нарисовали на бумажках, до сих пор похоже на какой-то аналог (что, на самом деле врядли, если вы действительно ответственно подошли к рисованию на бумажках), то дальше
    Надо просто сказать: я хочу интернет-магазин похожий на...

    После чего пообщаться с дизайнером и
    он должен сам что-то состряпать
    и так в несколько итераций. К сожалению, число итераций - очень индивидуальный вопрос, зависящий от огромного множества факторов. Некоторые говорят, что нужно в любом случае забраковать 1 (2, 3, 4) первых варианта, "что бы дизайнер постарался". В 90% случаев - это чушь.

    " Если работа совершенно не нравиться(халтура, совершенно не то что хотел) до каких пор стоит "насиловать ему мозг"?"

    Такого быть не должно. Если так случилось, то вся вина на заказчике, т.к. не смог определить то, что ему нужно (скорее всего, в типичных проектах, из-за того, что искал быстрее и дешевле)
    Вообще, этот вопрос решается почасовой оплатой - и насилуйте сколько угодно. Заплатить же оговоренную сумму нужно в любом случае. Вы же не говорите таксисту, что он сильно много кочек собрал по пути, поэтому заплатите 50% ?

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

    Самый просто и правильный ответ, особенно для типичных проектов с низким уровнем сложности - это найти исполнителя, которому субъективно доверяете.
    Ответ написан
    3 комментария
  • Как всё успевать и не быть роботом?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    > Минимум 8 часов, чтобы были деньги.

    Работать нужно не 8 часов, а головой.
    Ответ написан
    11 комментариев
  • Чем вы любите стилизовать свой фронтенд?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Лучше всего проект может стилизовать хороший дизайнер)
    Ответ написан
    9 комментариев
  • Чем должен заниматься верстальщик в компании/веб-студии(должностные обязанности)?

    @WhiteSama
    Работаю в веб-студии, занимаюсь непосредственно версткой: htmj, js, и т.д. все.
    Ответ написан
    1 комментарий
  • Чем должен заниматься верстальщик в компании/веб-студии(должностные обязанности)?

    webinside
    @webinside
    Работая в мизерной веб-конторе, у нас этим занимался и верстальщик и программист - кто свободнее.
    Счетчики, статистика, сео-теги - это работа с HTML. Идет постоянный поток задач, исправлений, доработок.
    Однажды спихнув эти задачи на менеджера, он так накуралесил, что потом опять же мне пришлось раскуривать и восстанавливать сайт. Да, это НЕ профильные задачи, но лучше сделать самому.
    Ответ написан
    1 комментарий
  • Есть ли фриланс ближе к 30?

    @Insayt
    Сам пришел в IT из совершенно другого мира. Последние 2 года зарабатываю этим на хлеб. Скажу вам честно - первый год, как минимум, будет очень тяжко. Особенно если нет профильного образования (работодатели очень цепляются за отсутствие "корочки"). Но если есть желание - все получится. Я в свое время осознал, что мне ближе frontend и создание крутых интерфейсных решений.
    По фронтенду путь роста сейчас весьма прозрачный:
    1) HTML5 знать на зубок (семантика - важная штука :) )
    2) CSS + любой препроцессор (сейчас без них уже никуда)
    3) JS + любой фремворк/библиотека, для структуризации кода (хотя для начала достаточно прочесть пару книг по нативному JS, и взяв jQuery - поклепать своих плагинчиков. Все таки типичные веб проекты не подразумевают под собой сложной логики на клиенте)
    4) Сборщики. Есть Gulp, Grunt, Branch и еще много всяких интересных штук. Очень хорошо помогают избавится от рутины.
    5) Любовь к тому что вы делаете :)

    Мой вам совет автор - если сейчас есть пассивный заработок, и есть возможность попробовать - я бы на вашем месте попробовал. Дело такое, что жизнь у нас одна, и что бы счастливо ее прожить - надо делать то, к чему стремится ваше сердце. И если вы будете упорным на этом пути - деньги, положение и все остальное, со временем придет.
    Желаю удачи :)
    Ответ написан
    2 комментария
  • Есть ли фриланс ближе к 30?

    andykov
    @andykov
    Shit happens
    Поддерживаю Pavel K, изучайте что-нибудь одно, либо серверную часть, либо клиентскую (front-end), и там и там есть много нюансов. Хвататься за все сразу не стоит, быть малооплачиваемым разнорабочим ведь не хочется верно? Пощупайте обе стороны (сервер/клиент) и определитесь к чему больше душа лежит.
    Ответ написан
    Комментировать
  • Должен ли хороший front-end разработчик быть и хорошим дизайнером?

    Akite
    @Akite
    UX/UI Designer
    Соглашусь высказываниями коллег выше, конечно же, front-end не должен владеть полноценными навыками дизайнера, но основами работы в фотошопе - обязательно.
    То есть, он должен уметь "читать" макет: знать элементарные основы фотошопа; работать с группами и слоями, чтобы видеть какие параметры слоя использовал дизайнер; уметь сохранять изображения и графику из макета (иконки, картинки и т.п.), знать где находятся параметры шрифта, чтобы понимать какой размер и шрифт использовался и прочее по мелочи.
    Иными словами, он должен обладать элементарными знаниями фотошопа и на этом его дизайнерские знания оканчиваются. Конечно, если он знает больше, это плючик ему, но он не обязан применять эти знания для доработки макета.

    Дизайнер, в свою очередь, должен обладать не начальными, а более менее нормальными знаниями front-end, что бы понимать принцип верстки и не рисовать безумных вещей, которые нужно верстать дикими способами или вообще невозможно сделать.

    Со стороны такая расстановка кажется несправедливой по отношению к дизайнерам, но, я это говорю как дизайнер. Начинал работу в вебе как Front-end, чуть-чуть back-and'a , а потом переключился на дизайн. И знания верстки очень сильно помогают мне оптимизировать работу с верстальщиками. Работая с несколькими верстальщиками постоянно, я изучаю их стиль верстки и рисую дизайн, с учетом их "любимостей", они, в свою очередь (если знают хорошо фотошоп) тоже идут мне на встречу и подправляют мои "забытости" (ховер какой-нибудь одной кнопки, или окно, которое отличается от других наличием или отсутствием какого-нибудь одного поля). Но по крупным недочетам они обращаются ко мне и это правильно.

    Итог:
    Если у вас налажена постоянная работа с определенными дизайнерами и они добросовестно относятся к своему делу (подписывают все слои, делают комментарии и UI файлы) и уважают вашу работу, но чисто по-человеческому фактору можно пойти им на встречу в каких-то мелких моментах, но вы не обязаны.
    Если вы работаете с дизайнерами, которые меняются как перчатки, с "грязными" макетами (не подготовленными для верстки и сделанными абы-как), то ничего дорисовывать вы не должны! Это должен делать тот дизайнер, который рисовал или другой, но не вы. Вы технический работник, а не творческий и то, что вы умеете что-то "дизайнить" в фотошопе к вашему спектору работ не относится. Это точно так же, как дизайнера просить в back-end'e что-то подправить - не его огород.
    Ответ написан
    Комментировать