Ответы пользователя по тегу Веб-разработка
  • Должен ли front-end уметь верстать?

    Если проект не может себе позволить высококвалифицированного верстальщика(ов) или требования "лишь бы работало и пофиг, что куча тормозящего JS, там где можно было пару правил CSS написать", то фронтенд (JS/TS разработчик))может не знать вёрстку досконально. Если хотя бы одно условие не выполняется, то значит должен.
    Ответ написан
  • Имеет ли значение на каком фреймворке сделан фронт-енд для бекендера?

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

    Очень часто от того, какой фрейм/библиотеки используется на фронте, зависит требования к тому в каком виде отдавать данные бэку, даже если он условно стандартный типа REST JSON. Одни фреймворки/либы легко позволяют фронтам преобразовывать данные к нужным им схемам, были бы данные, а другие нет, и фронты начинают требовать определённой, например, нормализованной, или наоборот. То же с отправкой данных на бэк.

    Это не вспоминая про server side rendering, локализацию багов, декомпозицию бизнес-задач и т. п. Чем лучше бэкендер знает то, что происходит на фронте, тем больше эффективность команды в целом. Для фронтов это тоже верно.
    Ответ написан
  • Какие цели и задачи у Docker в production?

    Использую докер-контейнеры как легковесные виртуалки, которыми куда проще манипулировать. И куда меньше душит жаба для конфигов типа "на этой виртуалке будет работать только nginx, на этой только php-fpm, на этой только postgre, эта будет шарить статические файлы для nginx и php-fpm, тут будет лежать кэш, тут загруженные пользователями файлы, а тут база данных"
    Ответ написан
  • Можно ли использовать собственный репозитории вместо контейнеров Docker?

    1.1 и частично 1.2: Зачастую тупо не знаешь под какой осью твой софт будет работать, даже если он чисто внутренний для компании. Даже (или особенно?) если сервер в компании единственный, админ может решить его обновить из-за критической уязвимости или для установки какого-то другого софта.

    частично 1.2 Во многих компаниях давно используется виртуализация в разных целях. Контейнеры едят меньше ресурсов, чем полноценные виртуалки и позволяют более оперативно реагировать на изменившиеся требования.

    2. Редкость, по-моему, сейчас когда один физический сервис выполняет ровно одну функцию. Да и раньше как-то не практиковалось, по-моему. Контейнеризация позволяет чётко выделять сервисы и изолировать их друг от друга куда меньшими ресурсами чем виртуализация, как при разработке и деплое, так и в рантайме.

    3. Зависимости разных процессов не будут конфликтовать друг с другом. Какой-нибудь унаследованный софт будет работать под уже неподдерживаемым дистром, и тут же будет работать софт, использующий самые последние версии каких-то библиотек.
    Ответ написан
  • Сайт, где откритикуют мой дизайн и помогут сделать его лучше?

    На htmlforum.ru обычно неплохо критикуют, правда больше не с точки зрения красоты, а с точки зрения технологичности.
    Ответ написан
  • Как идёт docker workflow?

    Сферический веб-проект с докером DockerApp:
    DockerApp/ #корень репозитория окружения проекта
    image/
    web/
    DockerFile
    start.sh
    app/
    DockerFile
    start.sh
    db/
    DockerFile
    start.sh
    config/
    docker-compose.yml
    web.conf
    app.ini
    db.ini
    app.yml
    bin/
    up.sh
    down.sh
    show.sh
    log/
    app/ #субмодуль или внешний репозиторий, настроенный на корень репозитория основной кодовой базы проекта

    Основная разработка идёт в app/, изменения коммитятся в репозиторий основной кодовой базы. Сервера запускаются скриптом bin/start.sh, который совместно с config/docker-compose.yml поднимает все три сервера, пробрасывая 80 порт веб-сервера на указанный в аргументах порт хоста (на 80 с sudo) и добавляя в /etc/hosts хоста имя домена, также указанного в аргументах (то есть bin/start.sh 80 example.com). В качестве конфигов серверов и приложения монтируются или линкуются конфиги из каталога config.

    Это если вкратце о работе на дев-машине на сферическом проекте.
    Ответ написан
  • Кто-нибудь использует много веб-фреймворков в новой разработке?

    Как правило, в проектах средних размеров (во всех смыслах) одновременно использовать (в смысле вести активную разработку) схожие по функциональности и решаемым задачам фреймворки, да ещё в рамках одного стэка (например, Symfony и Zend) смысла нет никакого. Но вот если нужно решать технически разные задачи (например, обеспечивать обычный http и websockets, или ядро на мощном, компилируемом, тяжелом и(или) "асинхронном" языке/стэке, но использование которого для конечных интерфейсов связано с большими оверхидами, а интерфейсы на чём-нибудь простом и легком), или в случае плавного перехода с одного фреймворка на другой, то активная разработка на нескольких вполне имет право на жизнь.
    Ответ написан
  • Программы для разработки web-приложений из-под linux

    Что-то серьезное — IDE, в частности IDE от JetBrains (WebSrotm, PhpStorm, RubyMine и т.п). По быстрому что-то набросать — vim/emacs/sublime на любителя. Хотя и в gedit можно плагинов понаставить. Это в плане управления кодом.

    Дев-окружение для запуска или аналогичное продакшену (стандартные пакеты, например apt-get install apache2 php5 mysql-server), или встроенное в среде выполнения/фреймворка (php -s), или вообще запуск на VDS.

    Ну и консоль, куда без неё, даже с IDE.
    Ответ написан
  • Как сделать post запрос xml?

    Проконсультируйтесь с тем, кто API предоставляет. Встречал различные варианты, одни ожидают, что придёт application/x-www-form-urlencoded, другие что multipart/form-data, третьи, что application/xml или text/xml, а кто-то может и что-то свое выдумать типа application/mysite+xml.
    Ответ написан
  • Как часто практикуется запрет на любые изменения по пятницам?

    Работал там где пятница была рекомендованным днём для релизов. ЦА — корпоративные пользователи.
    Ответ написан
  • Web - быть или не быть?

    Чтобы не насиловать мозг сразу несколькими новыми концепциями (вернее чтоб хоть немного уменьшить их число) возможно имеет смысл посмотреть на C# или Java — компилируемые языки со статической типизацией.
    Ответ написан
  • Кому принадлежит портфолио: дизайнеру или компании?

    То, что вы выбрали решением уже давно не действует, сейчас действует следующая статья ГК в этом случае

    Статья 1295. Служебное произведение


    1. Авторские права на произведение науки, литературы или искусства, созданное в пределах установленных для работника (автора) трудовых обязанностей (служебное произведение), принадлежат автору.

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

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

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

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

    Работодатель может при использовании служебного произведения указывать свое имя или наименование либо требовать такого указания.


    Но по сути ничего не меняется. Дизайнер может ссылаться на свои работы. Вы можете указывать на своём сайте, что это работы вашего дизайнера (но не что это ваши работы) — это не использование. Насчёт использования «превью» на своём сайте — вопрос, афаик, открытый. Суд может это счесть использованием, а может нет. Больше шансов что не сочтёт, если «превью» будет сам сайт во фрейме, а не изображение на вашем сервере. Или можно попробовать сослаться на право цитирования — вы же не воспроизводите весь сайт, а только его часть.
    Ответ написан
  • Способы обмена данными между PHP сценариями?

    cookies не костыль, собственно для этого они и придуманы (сессия — дальнейшее развитие идеи)

    А у вас противоречие в условиях, по-моему:
    Вариант с GET не подходит, ибо данные явно висят в url противоречит но через обычную ссылку их не передашь. Либо данные висят в урл, либо через обычную ссылку (без дополнительных скриптов на клиентской стороне) их не передать. Третьего не дано.

    Может устроит вариант:
    1. На исходной странице обычная GET ссылка на промежуточную страницу с данными в URL, нажимаем
    2. Сервер принимает данные, пишет их в сессию и делает редирект на целевую страницу без данных в URL
    3. Целевая страница достаёт данные из сессии и тут же сессию очищает.

    Если пользователь не смотрит куда ведёт ссылка (или его браузер не показывает), то данные в URL мелькнут в адресной строке очень не надолго на современном ненагруженном компе и быстром инете.

    Опять же если стоит задача скрыть от пользователя данные полностью, то это не реально, мониторить трафик умеют сейчас все популярные браузеры. Можно усложнить жизнь шифруя данные, но только усложнить. А для защиты от случайной утечке данных по сценарию типа «ломщик увидел секретный url, запомнил и дома его ввёл» моего сценария, имхо, достаточно.
    Ответ написан
  • Как начать писать тесты?

    Мне помог такой подход на существующем коде:
    — функциональные/приемочные тесты на новые или изменяемые фичи (по сути описание ТЗ на неком DSL)
    — модульные/интеграционные при рефакторинге
    — тесты на баги

    И не надо в большинстве случаев, имхо, тестировать внутреннее состояние хоть системы в целом, хоть отдельных её объектов или переменных. Тестировать нужно её поведение. Соответствие результата ожидаемому. При этом нужно ориентироваться на семантику, а не на знание внутренностей, не нарушать инкапсуляцию. При таком подходе не нужно будет писать, например, тесты на геттеры и сеттеры отдельно, достаточно написать один тест, что значение, возвращаемое геттером равно установленному раннее сеттером. Или, переходя на систему в целом, не нужно тестировать что нажатие кнопки «сохранить» пользователем вызывает какие-то изменения в БД. Нужно тестировать, что после нажатия этой кнопки пользователь может получить эти данные.
    Ответ написан
  • Что вы делали для облагораживания разработки на php?

    Организовал так:
    — исходники в репе под Mercurial
    — клон репа на тестовом сервере, докрут указывает на нужный каталог
    — на продакшен деплой производится capistrano
    — если приходится править код в «экстремальных» условиях, то на сервере есть отдельный пользователь тоже со своим клоном репа и установленным capistrano, то есть даже срочная правка по ssh заключается в пулле свежих изменений с основного репа, внесение срочных, коммит в клон, пуш в основной, cap deploy
    Ответ написан
  • Постоянное содержимое в MVC-веб-фреймворках?

    Если хочется соблюсти архитектурную чистоту, то, наверное, стоит присмотреться к PAC/HMVC
    Ответ написан