линия

Главная

вторник, 20 сентября 2022 г.

Postman + graphQl + загрузка изображений

 


Перевалив за 35, вдруг осознал, что слишком сильно привязываюсь к  привычным технологиям. Для изучения чего то нового мне приходится пройти по нескольким стадиям: гнев, отрицание, принятие. Вот, устроившись на новую работу мне  необходимо было в кратчайшие сроки изучить GraphQL .  Сначала это меня сильно гневило, ибо я слишком привык к обычным роутам, контроллерам. А тут все по-другому. И сначала кажется просто диким ужасом. Потом начал все это отрицать. Все это нафиг не нужно мне - говорил я сам себе но продолжал смотреть видео уроки, ковыряться в коде.  И в конце концов, когда  перевели первый аванс  я принял эту технологию. 

понедельник, 18 июля 2022 г.

Задача на собеседовании или как я провалил его не начав.

 Как то раз, я проходил собеседование в одну довольно интересную компанию. Рекрутер бодро рассказала о планах компании, о продуктах и какая у них замечательная команда разрабатывающая на острие стека передовых технологий. Говорила она много и даже пару раз повторялась и я уже себя представлял частью этой команды. Так и видел себя среди этих крутых ребят обсуждающих GRASP и SOLID .

 Рекрутер закончив рассказ, предложила мне  в режиме онлайн решить пару задач. Я конечно с таким первый раз столкнулся, но не отказался.  Мне нужно было  демонстрировать экран и  приступить к решению задачи.

Задача:  Нужно получить массив чисел сумма которых равно количеству элементов в кубе. На примере станет понятно:

1³ = 1

2³ = 3 + 2

3³ = 7 + 9 + 11

4³ = 13 + 15 + 17 + 19

5³ = 21 + 23 + 25 + 27 + 27

И тд...

Я приступил к решению задачи.  

четверг, 16 июня 2022 г.

Lravel - как я писал тестовое задание (валидация номера телефона)

 Процесс поиска работы утомительна и но в тоже время весьма полезна. Проходишь техническое собеседование, тебя не берут, читаешь теорию, запоминаешь, еще раз проходишь техническое собеседование, тебя не берут и  так по несколько раз. И уже на десятом собеседование ты ловко приводишь примеры для SOLID ,  рассказываешь об отличиях подсистем хранения, философствуешь о индексах насущных.  И тебя берут на работу, но просят выполнить маленькое тесовое задание.  Само тестовое задание для бывалых программистов не интересна, но один момент был тяжелым и посему решил про это написать...

воскресенье, 29 мая 2022 г.

Laravel - история одного запроса

 


Посчастливилось мне поработать над одним интересным проектом на Laravel.  Задачи были сложные но оплата труда была достойной и мне приходилось  решать их. Давненько я не погружался в сложные sql запросы. Работая Битрикс программистом , напрочь  забыл делать что то сложнее left join . 

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



Допив отвратительный на вкус кофЭ приступил к реализации сие задачи.

пятница, 11 февраля 2022 г.

Laravel - вывод SQL запроса из конструктора запросов

 Часто работая со сложной логикой построения запроса необходимо посмотреть итоговый SQL запрос. Если на проекте есть веб морда, то это можно легко  посмотреть используя DebugBar, но как быть если у приложения есть только api ? Есть несколько решений: например логировать весь sql запрос. В методе boot класса AppServiceProvider  добавить такой код который записывает все сгенерированные запросы в файл.

----

<?
\DB::listen(function ($query) {
			$log = ["query" => $query->sql, "duration" => $query->time];
			Log::channel('mysql_info')->info(json_encode($log, JSON_UNESCAPED_UNICODE));
		});

---

среда, 9 февраля 2022 г.

Тестирование API через POSTMAN

Недавно я писал API для мобильного приложения на Битрикс. Проект был очень интересный  и разработка шла быстрыми темпами. Сроки , как обычно, поджимали, заказчик стоял  над душой и времени ковыряться в носу (образное выражение) не было совсем. И когда эндпоинтов перевалило за 30  заметил что все чаще и чаще отваливались некоторые методы с ошибкой. Бывало сам замечал, а иногда и  сам заказчик писал мне: у тебя метод возвращает  ошибку. Срочно исправьте. Было решено что то сделать с этими ошибками. Благо, у постмана есть функционал тестирования. Как же я был приятно удивлен тем , что процесс написания тестов очень простой. Радости были полные штаны. Итак, сегодня протестируем апи, в ответе ожидаем статус 200 и еще до кучи проверим тип Content-Type.



понедельник, 7 февраля 2022 г.

Laravel - Dusk регрессионное тестирование оформление заказа

 Тестирование приложения неотъемлемая часть  процесса правильной разработки программного продукта. Сегодня расскажу как легко можно  написать тест оформления заказа. Проект, на котором нужно было написать тест, довольной сложный: фронт на Vue , бек на Laravel . 

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

Для этой задачи прекрасно подойдет Laravel Dusk . Устанавливает сие дело очень просто. Переходите по ссылке для установки:  https://laravel.su/docs/8.x/dusk