• Максимальная длина строки передаваемая через ajax javascript / php?

    samizdam
    @samizdam
    Ммм, ЕМНП, апач в случае превышения длинны тела ругнулся бы ошибкой.
    Данные точно в теле отправляются, а не в строке запроса? Судя по обрезаемой длине, это больше похоже на ограничения GET.
    Ответ написан
    3 комментария
  • Как правильно организовать среду разработки с git?

    samizdam
    @samizdam
    Для того чтобы использовать git, в желаемом вами контексте, я бы рекомендовал освоиться со следующими понятиями:
    - origin — центральный репозиторий, через который происходит синхронизация
    - master — по умолчанию это главная, центральная ветка
    - .gitignore — файл, в котором можно указать файлы и директории, которые не должны отслеживаться — например локальные конфиги, автоматически генерируемые артефакты, вендоры, логи и прочий runtime
    Таким образом, Вы с коллегами
    1. настраиваете локальную dev окружение
    2. игнорите конфиги и прочее
    3. разрабатываете что-то локально, коммитите
    4. пушите в origin
    5. на продакшене делаете clone, настраиваете конфиги
    6. повторяете п.п. 3-4 + pull на продакшене

    Это, пожалуй, самая простая схема — реализует то о чём Вы спрашивали.
    Ответ написан
    Комментировать
  • Как вытащить id-шники из массива?

    samizdam
    @samizdam
    В стандартной библиотеке php большой выбор функция для работы с массивами.
    php.net/manual/en/ref.array.php
    Смотрите в сторону array_intersect_assoc() и т.п., что больше подходит в вашем, конкретном случае.
    Ответ написан
  • Как реализовать корзину на сайт с двумя входными данными?

    samizdam
    @samizdam
    Подскажите как реализовать, стоит ли использовать двумерные массивы?


    Лучше используйте объекты. Измените сигнатуру метода для приёма двух параметров и создавайте из них ValueObject покупки.
    Ответ написан
  • Javascript или php парсер для POST форм со одинаковым url?

    samizdam
    @samizdam
    PHP подойдет для решения этой задачи.
    Советую посмотреть в сторону Guzzle для отправки POST + Cookies. Либо framework.zend.com/manual/current/en/modules/zend....
    Парсить - в зависимости от формата данных ответа. Если это html / xml то встроенные в язык средства для работы с Dom или Xml - php.net в помощь. Либо регулярки.
    Ответ написан
    Комментировать
  • Выбор между EasyRedmine\Jira. Что лучше использовать?

    samizdam
    @samizdam
    Участвовал в:
    1. Проекте на Jira (сначала был Redmine, потом перешли)
    2. Паре проектов на Redmine
    Использовали Agile / Scrum расширения на обоих системах.
    С точки зрения разработчика обе системы вполне годные.
    С точки зрения тим-лида Jira всё таки круче будет для сложных случаев, и есть ощущения что для аналитиков, менеджеров, системных администраторов она тоже лучше - ибо Confluence, Bamboo, Stash. Получается что Atlassian предоставляет более полный стек решений энтерпрайз уровня. Java. На сколько могу судить по реакции админов Redmine (ruby) не так стабилен.

    Так что если есть потребность инвестировать и расти - то рекомендовал бы Jira, де-факто это стандарт в отрасли, как Microsoft Office.
    Если стратап / нет денег / хипстер - то скорее Redmine =) Он больше напоминает мне OpenOffice, если продолжать аналогию.

    PS: Сейчас используем девпром (по историческим причинам, ни в коем случае не рекомендую!), ждём-не дождёмся переезда в Jira =)
    Ответ написан
    Комментировать
  • У кого из вас есть TDD или BDD в разработке, что конкретно вы делаете, когда, как к этому пришли?

    samizdam
    @samizdam
    Книгу не читал. В последних проектах использую TDD. Стек: Yii1/2 (backend) + AngularJS (frontend) = REST. Для тестирования API нравиться Codeception - BDD testing framework для (на) php.

    Конкретно делаю следующее:
    1. Беру задачу на новый метод / ресурс / поле в API
    2. Пишу тест, проверяющий требуемый функционал: выполнение HTTP-запроса и проверка статус кодов на разных кейсах (401 / 403 / 404 / 200 etc), или проверка наличия поля и значения
    3. Запускаю тест - убеждаюсь что проваливается - ничего не поделаешь, надо значит кодить =)
    4. Пилю код пока все ассерты не позеленеют.
    5. Если необходимо провожу рефакторинг.
    6. Обновляю CHANGELOG, коммичу, ставлю тег, пул реквест.
    7. Закрываю задачу, пингую фронтенд.

    (Дополнительный гол - к прогону тестов прикручен велосипед который генерирует документацию. В двух словах - на каждый запрос-ответ в момент прогона тестов появляется html с дампом объектов запрос и ответа - таким образом API обладает самообновляющейся документацией. )

    Надо аналитиков / менеджеров (или кто у вас отвечает за требования) настраивать на поставку требований в виде максимально приближённом к тест-кейсам. В сферическом BDD в вакууме заказчик может формулировать требования в виде готовым к употреблению системой тестирования: Gherkin. Сам не использовал, но коллега отзывался что вполне себе рабочий инструмент.

    Как пришёл, сейчас уже сложно сложно сказать. Фаулер присоветовал, или Бек =)
    Ответ написан
    Комментировать
  • Как исключить директорию из пакета composer?

    samizdam
    @samizdam Автор вопроса
    Очевидно решение моего вопроса стоило искать в стороне опции --prefer-dist

    Оказывается gitattributes для этого можно использовать. Пример:
    https://github.com/FreeElephants/jwt/blob/master/....
    Ответ написан
    Комментировать
  • Как правильно разделить разработку веб-проекта на юзер-стори?

    samizdam
    @samizdam
    В своё время вот эта книга для меня послужила (пару лет назад) неплохим введением в тему, рекомендую. Думаю в ней вы найдёте ответы на большинство вопросов.

    Надо также учитывать, что все Agile методологии, требуют постоянного (и на мой взгляд большего) вовлечения заказчика в процесс, в сравнении с традиционными подходами. Например в месте где я сейчас работаю, при всей моей любви к User Stories, Scrum, я прекрасно понимаю что любые попытки внедрить их обречены на провал - т.к. заказчику это не нужно, не интересно, не когда. А насаждать Agile только ради того чтобы разработчики поигрались, не самая удачная идея. Разные фишки пытались внедрять, но всё шло прахом из-за низкой вовлечённости заказчика в процесс. Хотя отдельные, чисто технические Agile-фичи в разработке успешно используем: TDD, CI, рефакторинг, ну и многое из XP в разработке хорошо приживается, разработчики довольны. Платформа у нас кстати тоже php =)

    При этом по прошлым проектам могу судить, что когда заказчик доступен на постоянной основе и заинтересован в процессе по настоящему работа по Scrum вполне может быть успешной. Так и пользовательские истории могут быть успешно использованы как универсальный инструмент для формирования бэклога.

    В общем это я своими словами описал принцип "Заказчик всегда рядом".

    Ещё один из основополагающих принципов ( в той же книге ему не мало внимания уделено, насколько я помню): интерфейсные решения должны приниматься как можно позже. Темы вёрстки и интерфейса и должна быть не раскрыта как можно дольше. Идите от функциональных требования к системе, а не от прототипов интерфейса! Я лично вообще считаю проектирование от гуя большим злом и признаком не высокой компетентности бизнес-аналитика, если проект посложнее сайта визитки — стоит смотреть в сторону DDD. У Фаулера, кажется, на эту же тему есть формулировка о хорошем программном дизайне (воспроизвожу по памяти, могу ошибаться как в точности, так и в источнике):

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

    samizdam
    @samizdam
    Не знаток ларавель, но в других php-фреймворках, приложение, как привило, способно работать в только одном из двух режимов: WEB / CLI. Поскольку классическое php web приложение не является полнофункциональным веб-сервером, а запускается из-под apache / nginx.

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

    В общем случае, для web-приложения, это вряд ли возможно. Можно конечно используя логер (не знаю насколько он продвинут в ларавель) писать из веб- приложения логи в файл / сокет, а его уже читать / слушать из консоли.
    Ответ написан
    Комментировать
  • Игровой движок.Основа LWJGL или Java API?

    samizdam
    @samizdam
    Если я правильно понимаю тренд - Unity =)
    Ответ написан
    Комментировать
  • Как поставить приложение написаное на nodejs на сервер?

    samizdam
    @samizdam
    Ну для первого раза попробуйте что-то вроде:

    ssh vash-vds-name
    git clone vasha-repa
    cd vasha-repa
    npm install
    node server.js


    А так многое зависит и от приложения и от сервера. Смотря какие возможности и потребности. Может docker, а может heroku какое-нибудь вам нужно, кто ж знает.
    Ответ написан
  • Хорошая ли книга у Котерова по PHP?

    samizdam
    @samizdam
    php.net рулит как источник информации конечно.
    Но если помимо основ языка нужен и экскурс в программирование в целом, то могу посоветовать Мэда Занстра. Помимо синтаксиса вводит в ООП на примере основных паттернов.
    Ответ написан
  • Yii2 как связать геоайпи + мультиязычность?

    samizdam
    @samizdam
    Я бы посоветовал давать пользователю выбор языка при заходе на страницу.
    Насильное определение языка пользователя по его IP, имхо, не лучшая идея.
    Ответ написан
  • Как передать событие с сайта на vps сервер?

    samizdam
    @samizdam
    >9000 способов.
    гуглите на тему "клиент-сервер".
    в вашем случае
    1. Кнопка - клиент, Apache + php - сервер. Тут аякс или родные браузеру контролы для отправки запроса на сервер.
    2. Сервер 1 - клиент на php, Сервер 2 - сервер. Клиент на php может практически по любому протоколу стукнуться на виндовый ваш сервак, тут >9000 вариантов. Выбирайте чем проще обработать запрос на виндой стороне чтобы дёрнуть нудный экзешник.

    PS либо, если не клиент-сервер архитектура, то можно посмотреть в сторону подписок и событий:
    1. есть накая шина (м.б. в виде третьего сервера даже =) очередь сообщений, например) доступная обоим серверам.
    2. php после нажатия кнопки кладёт туда событие
    3. под виндой кто-то слушает событие и при наступлении дёргает экзешник.
    Опять таки, реализация зависеть будет скорее всего от того что легче на стороне винды использовать окажется. И опять 100500 вариантов можно придумать.
    Ответ написан
    Комментировать
  • Как лучше всего провайдить интерфейс увеличения или уменьшения значения свойства какой-либо сущности в RESTfull api запросах?

    samizdam
    @samizdam
    Если я верно понял вопрос, то, ИМХО, вызывать специальный метод на того объекта (ресурса) кому принадлежит сущность.
    POST /api/someResource/123/incrementProp
    Ответ написан
    Комментировать
  • Yii — можно ли создать такой фильтр который бы запретил все действия кроме разрешенных?

    samizdam
    @samizdam
    RBAC. Использую в виде модуля Rights, там есть неплохой для среднего размера приложений GUI.
    Ответ написан
    Комментировать
  • Какой есть IDE HTML5\JS\PHP\CSS?

    samizdam
    @samizdam
    Eclipse имеет плагины для поддержки перечисленных вами технологий: с подсветкой, автокомлитом, докблоками, документацией и все прочим.
    Есть возможность открывать редактируемый файл во вкладке IDE браузером (под виндой это по-умолчанию системный IE, как это работает под линем не помню =) ).
    Интерфейс настраивается.
    FTP, git, svn, всё что угодно. Плагинов >9000.
    Ответ написан
    Комментировать