• Подробности о GraphQL: что, как и почему
    0
    Вы GET-запрос отправляете с телом?
  • Правда про парсинг сайтов, или «все интернет-магазины делают это»
    0
    Выгрузка в маркет — это другое. Это вы сами загружаете в меркет свой каталог, а не маркет парсит ваш сайт…
  • Чеклист для создания и публикации веб-приложений
    0
    Жаль, что нет статистики, сколько из этих 1.5к всё-таки увидели заявленный чек-лист…
  • Разработка веб-серверов на Golang — от простого к сложному
    +1
    Было бы здорово показать, как получать параметры из пути и/или формы, желательно с валидацией.

    Но ведь на примере go-chi/chi показано, как получить параметр из пути...


    func NewRouter() http.Handler {
        router := chi.NewRouter()
        r.Get("/{name}", HelloName)
        return r
    }
    
    func HelloName(w http.ResponseWriter, r *http.Request) {
        name := chi.URLParam(r, "name")
        response := HelloResponse{
            Message: fmt.Sprintf("Hello %s!", name),
        }
    }

    Получение параметров из формы — это уже парсинг body/query запроса, там сложностей нет.


    Валидация параметров роута — в документации к роутеру (например, тот же chi):


    // Regexp url parameters:
    r.Get("/{articleSlug:[a-z-]+}", getArticleBySlug)
  • Простой JSON-RPC-подобный API на PHP
    +1
    Ответ, в общем-то, на поверхности. Автор ещё не умеет в качественную разработку. Он, скорее всего ещё молод и неопытен, в нём горит желание обучаться, пройти путь от самописных CMS к разработке здорового человека.

    В целом, это не страшно, всё приходит с опытом.

    Главное, чтобы через год не стал фуллстэк-миддлом
  • Не нервничай, не спеши, не перебивай: история одной трагедии
    +1
    То есть, если вы собрались лететь на 50-летнем кукурузнике ночью в ливень непальскими авиалиниями — шансы разбиться в 10000 раз выше чем если лететь ясным днем на новом A330 какой-нибудь Cathay Pacific из москвы в гонконг.

    Смею оспорить. Кукурузник (он же АН-2) построен по схеме биплан и даже при отказе двигателя он может без проблем спланировать и удачно приземлиться. У А330 с этим намного хуже.

  • Простой JSON-RPC-подобный API на PHP
    0
    HTTP коды ответов можно запросто отдавать

    В JSON-RPC независим от протокола, поэтому лучше не завязывать результат на статусы

  • Простой JSON-RPC-подобный API на PHP
    0

    А чем Вас не устроил собственно JSON-RPC? Всё, описанное в статье, легко на него ложится.


    api_v? ну так сделайте разные точки входа, например /json-rpc/v1 и /json-rpc/v2


    Кстати, в базовом протоколе не было бы необходимости заворачивать в массив


    function api_call(reqs, callback){
        // Кодируем массив(или не массив, а только один запрос, тут массив всё равно создаётся) запросов в json
        var json = JSON.stringify( (Array.isArray(reqs) ? reqs : [reqs]) );
        //...
    }

    Если вдруг Вы захотите расшарить своё API в паблик, пользователям придется писать свои клиенты, вместо того, чтобы взять уже давно готовую и отлаженную библиотеку

  • Как защититься от гипновируса
    +2
    На самом деле, гипновирус — не приговор! С ним можно и нужно жить!
  • Как стать «толковым джуниором». Личный опыт
    +3
    фулстэк-мидлом


    Оно уже стало локальным мемом?
  • Современный PHP — прекрасен и продуктивен
    +2
    аннотации не обязательны, можно жить без них. С доктриной сложнее, а что в Symfony всё можно сделать и без аннотаций.

    А в чём сложности с Доктриной?


    Там же тоже можно без аннотаций docs

  • Офис компании Badoo
    0
    простите за контакт, смотреть можно безо всяких регистраций;

    Что-то пошло не так...
  • Правительство перекроет гражданам РФ финансовый доступ в онлайн-казино
    0
    Можно подумать, у вас нет шанса получить от государства пенсию…
  • Современный PHP — прекрасен и продуктивен
    0
    Возможно, SSD поможет (или уже)?
    У меня SSD и 8Гб оперативы, шторм установлен нативно (не через snap) на linux mint 19.1.
    За загрузкой процессора, конечно не наблюдал, но не припомню, чтобы были безбожные тормоза
  • Правительство перекроет гражданам РФ финансовый доступ в онлайн-казино
    +6
    Когда правительство планировала выпустить закон о запрете финансовых пирамид, один проект для подстраховки написал на коленке фотосток. Оплата счета по факту являлась покупкой рандомной картинки.
  • Современный PHP — прекрасен и продуктивен
    0
    Silex — это и естьбыл микро-Symfony. С июня 2018 Silex полностью прекратил развитие.
  • Современный PHP — прекрасен и продуктивен
    +4
    Не так уж и дорого. А ещё EAP есть, если денег мало. Ну или ежемесячный сброс триала, если мало не только денег но и совести
  • Современный PHP — прекрасен и продуктивен
    +2
    Celeron G3930. Полёт нормальный.
  • Полезные и не очень государственные услуги
    +1
    Самим кредитным бюро это невыгодно (давать кредитную историю бесплатно, хотя они и обязаны это делать), поэтому даже если ссылка есть, её будут прятать как можно дальше от пользователей.

    Не все прячут. Например, https://bki-okb.ru/:


    • на главной, сразу под шапкой, как на продающем лендинге
    • в разделе "частным клиентам" огромный баннер в треть ширины рабочей области

    А вот НБКИ не только спрятали, но ещё и сломали

  • Пожалуйста, прекращайте говорить про шаблон Репозиторий с Eloquent
    0
    А если нужно посмотреть код из консоли?
  • Пожалуйста, прекращайте говорить про шаблон Репозиторий с Eloquent
    +2
    одна такая попала в недавний PHP-дайджест

    Тоже негодовал по этому поводу (особенно с тем решением, что предлагалось в статье)


    Не буду в этой статье ругать ненужный суффикс Interface

    И не нужно ругать. Как-никак, PSR Naming Conventions


    А в целом, согласен с автором.

  • «Бэкап мне на ленту запили». Рассказ от первого лица
    0
    Ещё в 90х была такая отечественная система `АрВид` для архивирования данных на VHS кассеты. У отца в деревне где-то до сих пор валяется, только вот воткнуть уже некуда…
  • Как я переписывал поисковик авиабилетов с PHP на NodeJS
    0
    Во-первых, для php есть смарти. Который до кучи компилирует шаблоны, из-за чего получается отличный симбиоз скорости и удобства (при правильном использовании).

    Twig и Blade тоже компилируют шаблоны. Плюсом они умеют наследование шаблонов из коробки (не знаю, как в Smarty с этим сейчас, но раньше реализовывалось только расширениями)

  • composer и автодополнение командной строки
    +1
    Что интересно, даже сегодня в комментариях под оригинальным постом (датированным 15 мая 2017) никто не упомянул это решение…
  • Король разработки
    +1
    Конец немного предсказуем. Где-то с середины поста было такое чувство, что диалог происходим с самим собой. Так и вышло
  • Бомба на экзамене
    +1

    А ещё, когда я был преподавателем, я как-то сделал тест, в котором все правильные ответы были "б".


    Сидел и наблюдал, как терзаются в сомнениях студенты :-)

  • Бомба на экзамене
    0

    Была у нас одна преподавательница по одному околоИТшному предмету. Вся суть её обучения сводилась к тому, чтобы студенты просто переписали учебник. В конце семестра собирала стопки тетрадей с конспектами, а кто не приносил — получали недопуск к экзамену. Собранные конспекты она не возвращала, чтобы исключить повторные сдачи, ну и на всякий случай маркировала полученные работы.


    А вот страсть как не люблю все эти переписывания, да ещё и в таком количестве. Вот и договорился с одной девочкой на бартер — я ей программку на паскале, она мне — конспекты.


    Только вот я, когда программку писал, учёл, что я кагбэ девочка и наговнокодил, а она не учла, что она кагбэ мальчик и выделила всё разными ручками, цветными подводками и вот это всё девочковое...


    И вот, прихожу я сдавать этот конспект, а Марья Ивановна (имя, конечно же, изменено) и говорит:
    — Но это же не Вы писали!
    — Конечно же не я!
    — А зачем вы мне эту работу сдаёте?
    — Так не было условия собственноручной записи.
    — Но это очевидно!
    — Это не очевидно!
    — Учтите, что автор работы не сможет сдать её повторно.
    — Автор в курсе
    — Интересно, как вы рассчитывались за такой труд
    — Это уже личное, Марья Ивановна...


    Далее, видя, что я вполне комфортно себя чувствую в сложившейся ситуации, преподавательницу начали терзать сомнения


    — Иван, вы меня разыгрываете! Вы сами это написали!
    — Да нет же, что вы?! Я так красиво не умею!


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

  • Шагнуть в небо. Честная история про серьезное увлечение парашютным спортом
    0
    ещё страшнее, когда впервые уложил парашют не для себя…
  • Шагнуть в небо. Честная история про серьезное увлечение парашютным спортом
    0

    В конце? А разве не каждый этап укладки?

  • Шагнуть в небо. Честная история про серьезное увлечение парашютным спортом
    0
    Переукладка запасного парашюта довольно затратное мероприятие

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

  • Шагнуть в небо. Честная история про серьезное увлечение парашютным спортом
    0
    Вряд ли. Даже если бы меня не попросили, я бы сам назвал родителям тысячу причин, почему нет. Хотя она была всего одна — «пацаны не поймут» (да, в то время это была очень весомая для меня причина)
  • Шагнуть в небо. Честная история про серьезное увлечение парашютным спортом
    0
    Очень многие, кстати, говорят, что для них самый страшный второй прыжок, а не первый
  • Шагнуть в небо. Честная история про серьезное увлечение парашютным спортом
    0

    О, я помню, как мы смотрели на этот Д-6 и думали — "Как же эти стропы-то укладывать?". А оказалось, не особо сложнее д-6)

  • Шагнуть в небо. Честная история про серьезное увлечение парашютным спортом
    +2

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


    Моё детство протекало в райцентре где-то в горном Алтае. Внеурочное время я проводил как попало — с 4 класса с сигаретой, с 8го и портвейн пошёл в ход, а чуть позже и того хуже — там и конопля, и токсикомания бензином (в те времена дешевый был, могли себе позволить). Родители мои, заподозрив неладное классе в 7м, начали отдавать меня куда угодно, лишь бы времени меньше оставалось. Это было и карате (я быстро слился, неплохо получив по дурной голове), и хореография (с которой меня слили за неуклюжесть, о чем не жалею), и компьютерный кружок на котором я прижился и с лютым интересом писал программки на бейсике…


    А потом у нас открыли секцию парашютного спорта (это был конец 90х — начало нулевых). Всё бесплатно, но прыжки раз в год, по 3 максимум (если администрация села деньги выделит). Учебный год были занятия по теории, укладке, отработка поведения в подвесной системе и т.д. А летом, если повезет, ехали в летное училище ДОСААФ под Барнаулом за закреплением материала.


    Вот и с парашютами у меня всё хорошо сложилось (хотя и от дурного досуга это не очень спасало). Уже на второй год я укладывал парашюты на живых людей, и весьма успешно (как говорят, никто не жаловался). С прыжками везло не всегда, но за 10 лет занятий (включая перерыв на 2 года армии) я совершил 14 самостоятельных прыжков (д-5, д1-5у, д6, д10).


    На последнем прыжке чуть не попал в схождение на критически низкой высоте. Один индивид чуть не упал мне на купол (его купол уже тихо складываться начал в зоне затенения). Я после этого думал, что никогда больше прыгать не буду. Но потом меня отпустило и я даже собирался в спортсмены подаваться… Но потом случилась травма колена и врачи рекомендовали не приземляться вне самолета.


    Теперь остается радоваться, что всё-таки попробовал, распробовал, да ещё и на шару.

  • Шагнуть в небо. Честная история про серьезное увлечение парашютным спортом
    0
    Обычно это происходит так: На первом прыжке неправильно группируют ноги и совсем слегка ушибают/подворачивают одну из ног. На следующем прыжке при приземлении машинально подгибают больную ногу, обеспечивая хороший удар по здоровой ноге, которая ломается. А ещё многие игнорируют рекомендации по выбору обуви с высоким и плотным голенищем
  • Как подступиться к fullstack-разработке сегодня, если ты проспал десять лет
    0
    Плюс ещё СЕО-оптимизация
  • Древности: двадцатилетняя фотокамера на дискетах
    +1
    В конце девяностых я бы наверное снимал на пленку, не мыльницей конечно, а с помощью зеркального фотоаппарата. Или даже «Зенитом» или «Фэд-5В».

    Так «Зенит» же зеркалка. Или речь о каком-то редком экспонате?

  • REST? Возьмите тупой JSON-RPC
    +1
    В REST можно прислать общий код «Форма не верна» (422, например), а в теле ответа — массив/объект с информацией обо всех полях, заполненных ошибочно, после чего клиент легко и просто отображает ошибки на соответствующих полях.

    например так:


    {
      "jsonrpc": "2.0",
      "error": {
        "code": -32602,
        "message": "Invalid params",
        "data": [
          {
            "field": "login",
            "message": "Логин уже занят"
          },
          {
            "field": "name",
            "message": "Имя может состоять только из буквенных символов"
          }
        ]
      },
      "id": "1"
    }
  • REST? Возьмите тупой JSON-RPC
    0
    А можно еще какой-нибудь ГОСТ 70-х готов откопать.

    Можно. Если стандарт хорош под ваши задачи, почему бы и не придержаться его?


    И сразу возникает несколько вопросов:
    — А вдруг мы хотим передавать метод в URL.
    — Нам не нужно два свойства для ошибки, а достаточно одного.
    (еще очень много вопросов)

    На эти случаи будем другие стандарты писать?

    Либо искать другие, потому что данный в этих условиях не подходит, либо писать другой, да.

  • REST? Возьмите тупой JSON-RPC
    0
    {"description":"url for special service\n\"serviceUrl\": \"http:\/\/example.com\/api\"\nchange back when standard url will work"}

    Но это будет приемлемо, если использовать какой-нибудь UI для SMD. В чистом виде читать это — такое себе, да...


    А что касается БД — то каким образом тут SMD играет роль?
    SMD — это описание, а БД — это уже реализация...