• Как делают бэкэнд в студиях "под ключ"?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1) Зависит от проекта. Есть 2 большие группы студий: первые делают "шаблонные" сайты и cms используют всегда.
    Вторые делают более сложные/нагруженные вещи - и там как правило используется фреймворк, зачастую свой собственный.
    Отдельной группой стоят битриксоиды - они вставляют свой битрикс всюду, и пофиг что он начинает падать уже на смешных нагрузках. Зато энтерпрайзненько, сертификаты есть, клиентам нравится пока падать не начнет)

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

    3) Никакого rocket science тут нет.
    Общая цепочка всего проекта:
    сбор функциональных требований > проектирование ux > дизайн > верстка > проектирование db > программирование backend.
    С последними двумя пунктами, при наличии утвержденного дизайна, справится (так или иначе) любой человек называющий себя backend программистом.

    По мере роста сложности проектов и разрастанию команды, Вам понадобятся лиды что бы контролировать качество кода разработчиков и архитектуру, QA что бы тестировать то что получилось, менеджеры что бы управлять потоком задач, ну и тех директор что бы выстроил весь этот процесс ;-)

    По факту же, многие студий выстраиванием такого процесса не заморачиваются(он дорогой реально), а просто отдают готовую верстку разработчикам со словами "собери что бы работало". Серьезные проекты так не соберешь, а стандартные корпоративные сайтики, магазины итд - легко
    Ответ написан
    Комментировать
  • Как запустить Telegram бота HellowBot?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Я не знаю что за пример Вы скачивали и откуда, работает оно следующим образом.
    1) webhook: когда кто то - что то пишет боту, на указанный через FatherBot url приходит запрос в теле которого содержатся id пользователей и их сообщения
    2) после этого Ваш скрипт должен отправить может отправлять контент юзеру используя стандартное http апи.

    Проблема соответственно может быть только в 2х местах, дебажьте)
    Ответ написан
    2 комментария
  • Какие критерии ТЗ для дизайнера?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Сразу disclaimer: я не дизайнер, но достаточно часто принимаю их работу. Все что ниже - моё imho.

    Хотелось бы узнать как правильно составить ТЗ именно с технической точки зрения, то есть что бы потом дизайн/PSD макет можно было отдать верстальщику и он не сказал, а где здесь...?
    Главное что должно быть в ТЗ - описание функционала и бизнес сценариев.
    Есть мнение что лучше не использовать размытие шрифтов, т.к идеально их сверстать кроссбраузерно невозможно.

    Например был такой вопрос от дизайнера: Какую ширину контента делать ? 960 или 1000?
    Правильный ответ 960 или 990, т.к 1000 в некоторых старых браузерах может не вписаться на экран 1024x768 при наличии вертикальной прокрутки. Впрочем вопрос достаточно холиварный.

    Какие критерии должны быть к обычным фиксированным макетам?
    Кроме очевидных вещей (должен быть реализован весь запрошенный функционал) - крайне полезно посмотреть как ведет себя макет в случаях:
    a) если контента нет вообще (к примеру как выглядит лента новостей если новостей нет) - очень часто забывают отрисовать.
    b) если контент есть, но строковые величины крайне велики (заголовок новости 1000 символов) - очень часто рисуют все красиво, но в реальности контента на порядки больше и все едет, либо появляется обрезка, там где её быть не должно.
    c) если контент есть, но строковые значения крайне малы. (заголовок новости 5 символов)

    Какие критерии должны быть к адаптивным макетам/мобильным?
    Все изложенное выше + по сути нужны N вариантов дизайна под N разрешений которые Вы считаете нужным поддерживать.
    Делая адаптивный дизайн - нужно понимать что сделать качественный адаптив - это примерно x2-x4 к стоимости услуг дизайнера. Адаптив сделанный тяп-ляп бесполезен и даже вреден.
    Отдельно про мобильную версию: изучите свою аудиторию. Если Ваши клиенты пользуются современными смартфонами - мобильная версия нафиг не нужна, лучше сделайте мобильные приложения под ios/android.

    Что касается элементов дизайна, эффект кнопок? вдавливание кнопок что бы оно выглядело как кнопка а не как картинка. Это чья работа? дизайнера или верстальщика?
    Дизайнер обязательно отрисовывает состояния кнопок, ссылок, пунктов меню итд.
    Делать это в каждом макете не нужно, обычно это делается отдельно.
    Ответ написан
    3 комментария
  • Портят ли репутацию на upwork выполненные заказы на PHP, если хочу потом работать по другим технологиям?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Вы так пишите, как будто PHP это какой то зашквар после которого на другие языки не берут.
    Ответ написан
    6 комментариев
  • Не работает условие WHERE при подзапросе?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1) передавать что либо в запрос без экранирования считается небезопасным.
    2) в вашем случае вы прописываете as article, очевидно что и в where нужно его использовать
    $query = " SELECT article.*,
    (SELECT COUNT(*) FROM comments WHERE comments.note_id = article.title_url AND comments.lang = '$lang') AS comments_count
    FROM $table AS article
    WHERE article.lang = '$lang'";
    Ответ написан
    Комментировать
  • Надежен ли php multicurl при большом количестве запросов? Какие есть альтернативы?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1000 запросов в параллели - это реально не мало.
    Может упасть и по памяти, и провиснуть по трафику (если не dedicated сервер), и по быстродействию, и по антиддос.
    Нюансов много, тестируйте.

    Я бы пересмотрел архитектуру либо в сторону минимизации запросов (если это возможно вообще), либо в сторону введения очередей.
    Ответ написан
    7 комментариев
  • Зависимость цены создания сайта от движка?

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

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

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Профильное ВО в IT полезно в 2х случаях:
    1) Вы занимаетесь enterprise разработкой: крупные интеграторы, банки, нефтянка, итд. Они любят всяко-разные сертификаты.
    2) Вы задались целью эммигрировать (usa, европа, etc)

    Во всех остальных случаях всем глубоко плевать какое у Вас образование и есть ли оно вообще.
    Важны навыки и портфолио как их заочное подтверждение.
    Ответ написан
    8 комментариев
  • Общие пользователи для несколько сайтов которые написаны в разных CMS системах?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Нанять программиста, переписать код авторизации/регистрации в Question2Answer что бы он использовал базу LiveStreet. Возможно придется дописать код регистрации в LiveStreet если каких то данных критических для Question2Answer в нем не хватает.
    Ответ написан
    Комментировать
  • Можно ли на сайте сделать отправку сообщений в whatsapp?

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

    PS Если есть возможность сменить мессенджер на телеграм - категорически рекомендую.
    С новым bot api реализация занимает 5 минут ровно.
    Ответ написан
    Комментировать
  • Фреймворк PHP для создания cms без танцев с бубном?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Imho Вы путаете теплое с мягким. Phalcon это фреймворк.
    Если вы хотите что бы из коробки было 1,2,3 - то Вам нужен не фреймворк а cms.
    Ответ написан
    3 комментария
  • Как построить отказоустойчивый сервер (по доступности, низкая нагрузка)?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    В целом правильные ответы очень сильно зависят от проекта, я напишу то что на мой взгляд common sense и применимо всегда:

    1. Не надо заливать по FTP. Делайте pull из bitbucket после получения hook от них.
    Учтите что строго говоря hook может и не придти, предусмотрите какой то лог выкладок и возможность дернуть руками снаружи. Есть большие готовые решения, в том числе умеющие и деплоить: jenkins, teamcity, phpci - но можно и свой простенький скриптик собрать, дел на час максимум если без красивостей.

    1.2 Если хочется отказоустойчивости - не нужно разделять на master и slave, сервера должны быть независимы друг от друга и эквивалентны.

    2. Если простой у одиночных клиентов в N часов допустим:
    Amazon route53 в качестве dns + 2 шт amazon health check.
    2 A-записи на один домен указывающие на 2 сервера привязанные каждый к своему health check.
    TTL ставить поменьше, 1-5 минут. К сожалению все равно будут посетители у которых провайдер кеширует.

    Если простой недоспустим совсем - простых решений нет к сожалению :)
    Можно смотреть на failoverip у hetzner (2 железных сервера на 1м IP с возможностью быстрого переключения), но не снимает вопроса что делать если упал дц у самого хецнера.
    * и да, в нормальной ситуации сервера лучше держать у разных хостеров

    3. Всю систему целиком бекапить imho не нужно. Бекапить нужно пользовательские данные если они у вас есть.
    SQL неплохо себя показал galera cluster (master-master), но там есть нюанс с транзакциями если вы их используете. Файлы можно каким нибудь rsynk таскать, а можно просто положить их сразу в S3 и забыть навсегда (если у Вас их не очень много - см тарифы)
    Ответ написан
    Комментировать
  • Защита сайта на php от парсинга без ущерба для поисковиков?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Если есть некий контент, на котором планируется зарабатывать, решение - прятать его под замок после оплаты.
    Оплату брать либо за доступ к каждой единице контента, либо если абонемент - с ограничением на количество контента в период времени (что бы условно купив 10-15-20 учеток Вас не просканили)
    Пример такой реализации www.nesprosta.ru/?type=show_home&id=65810 (первая ссылка которая пришла в голову)

    Если непосредственно зарабатывать на контенте желания нет, то любые попытки защититься от парсинга априори обречены на неудачу. Любой контент который Вы отдаете поисковику остается в его кеше. Даже если Вы воткнете лимиты на доступ к сайту(что само по себе проблемно - прокси бесплатных существует великое множество, не говоря про возможность в любой момент поднять сотню-другую на амазоне) - любой желающий Вас спарсить всегда может парсить не Вас напрямую, а кеш поисковика ( webcache.googleusercontent.com/search?q=cache:YMI-... )
    Ответ написан
    Комментировать
  • Как вы решаете проблему большого количества миграций?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Не вижу проблемы. У меня в одном из проектов ~1500 миграций в phinx (с августа 2014). Все отлично работает.
    Миграции покрывают весь проект начиная с создания первой таблицы.

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

    PS Отдельно не вижу смысла в какой то дополнительной организации структуры миграций, т.к уже созданные миграции очевидно никто не правит.

    PPS Если Вам так нужна поддержка папок - откройте исходники и допишите :) Вряд ли это сильно сложно сделать будет.
    Ответ написан
    3 комментария
  • Какие есть методики отладки веб-приложения?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Правильное решение в данном случае: поднять на новом сервере какой нибудь vagrant / docker с окружением максимально идентичным исходному.
    В остальные решения от лукавого, полноценный дебаг приложения со сложной логикой это гарантированные человеко-месяцы.
    Ответ написан
    Комментировать
  • Что лучше - один запрос с двумя JOIN или три запроса?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Если таблицы условно большие ( > 1 000 000), а в результатах запроса ожидается мало данных ( < 1 000 ) заметно быстрее будет делать 3 запроса вида where id in (1,2,3) явно перечисляя в запросах нужные id
    Ответ написан
    1 комментарий
  • Инвестиции в проект. Возможно ли так?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Из объективных замечаний
    1. Открыть ООО стоит 15 т.р. Его отсутствие выглядит несколько дико, если Вы хотите делать бизнес.
      Инвестировать согласятся только пацаны в адидасе, а ROI будут из Вас получить с помощью бейсбольной биты (или клюшки для гольфа если Вы в СПБ).
    2. Вы хотите отдать 80% прибыли. Не понятно как это фиксируется и в течении какого периода времени.
      Если Вы говорите про 80% всего продукта - это также выглядит крайне сомнительно - или Вы не верите в успех проекта в принципе, или не понимаете на что хотите подписаться, или просто хотите освоить бюджет и исчезнуть. Далее см п 1.
    3. Вообще стартапы не взлетают на рекламе. Если есть виральность - должно взлетать само. Нет виральности - суммы на рекламу должны быть в сотни раз больше (при условии наличия серьезного продукта)
      Исходя из этого 400 тысяч рублей на рекламу несерьезная сумма что бы кто то что то инвестировал.
      Ну или у Вас должна быть какая то дикая отбиваемость рекламы (вдруг Вы скрытые гении) но тогда это можно проверить существенно меньшими суммами.
    Ответ написан
    3 комментария
  • Какую технологию использовать для отслеживания машин?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1. Поставьте себе прокси какой нибудь типа чарльза, помониторьте запросы.
    По большому счету вариантов всего 2: или сокет открытый в который шлются данные, или просто запросы от водительского приложения на сервер. Сокет imho правильнее.

    2. Дополнительно используется прогнозирование/постобработка с учетом дорожного графа. Это позволяет строить красивые линии в туннелях где gps не ловит по определению.
    Ответ написан
    Комментировать