Мой web-dev
54 subscribers
62 photos
1 video
66 links
Привет, я php-бэкендер, делюсь своими мыслями и наработками
Download Telegram
Наконец-то дочитал "книгу" Артура Пантелеева из чата phpGeeks
Книгой это очень сложно, конечно, назвать - это, скорее, компиляция множества тем, которые должен знать и понимать мидл-разработчик
Иногда, там половина объявленых на странице тем вообще не раскрыта, но это очень хорошая отправная точка по бэкенду
🔥1
Совершенно случайно наткнулся на практический пример применения Fibers из php8.1
Очень рекомендую к ознакомлению, там достаточно хорошо описано какие именно операции имеет смысл заворачивать в файберы и как это правильно делать
Что такое оптимизация?

Вообще, когда пришла задача по оптимизации на 3 неделе работы в компании, то я сначала дико обрадовался, а потом стало страшно. Такие задачи на самом деле что значат? Что ближайшие 3-4 дня ты проведёшь за исследованием кодовой базы на предмет слабых мест, а затем должен будешь оптимизировать эти слабые места, да ещё и так, чтобы хуже не стало. Это по факту подразумевает глубокое понимание внутренней работы системы, чего у меня пока что нет и что придётся получать в экстренном порядке.

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

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

Собственно, мы и подошли к вопросу поста и ответ вроде бы очевиден - снижение нагрузки на систему и снижение времени ответа апишки. Вот только путей достижения этой цели 2:
1. реальная оптимизация - например, минимизация запросов к базе или переписывание целого класса, потому что вся логика помещается в 2 строки
2. мнимая оптимизация - вынос второстепенных синхронных операций в асинх
Мы пока что выбрали второй путь, так как он очевидно проще и его реальный прикладной эффект будет виден пользователям сразу
А вот дальше оказывается на мне уже висят задачи по реальной оптимизации и там я по-полной смогу повес_ел_иться :D
Время пришло

Последнее время крайне остро встал вопрос нехватки оперативной памяти на моём макбуке. Свободной всегда было 1-2 гига, а своп доходил до 19 гигов из-за докера
Решил наконец-то собрать себе обычную печку и переехать на линукс
Камешек - Ryzen 5 7600, 32 оперативы, OS - PopOS
Посмотрим, как пойдёт полёт в ближайшие пару недель, но пока что меня всё устраивает, всё прям очень плавно и круто
Ну и конечно, куда же без rgb :D
Я оказывается совсем забыл, каково это - иметь ПК

Я сегодня весь день провёл, пытаясь оживить абсолютно внезапно умерший bluetooth. Просто вот прихожу с утра и ни мышка, ни клава не подключаются, а в настройках блютус даже включить нельзя - не видит железку.
Я чего только не перепробовал, и биос обновил, и ОС другую накатил, и fastboot вырубил. А знаете как всё решилось? Надо просто было выключить комп, отсоединить питание, ЗАЖАТЬ НА 30 СЕКУНД КНОПКУ ВКЛЮЧЕНИЯ и снова включить комп
Я просто в шоке, честно говоря, после мака, где, сука, всё работает из коробки
Ну ничего, так если в целом посмотреть, то я доволен новым компом :D
На работе задачи никогда не уходят в тестирование, пока их не посмотрит другой разраб (лучше даже не один)
В связи с этим надо как-то благодарить коллег, тратящих своё время на ревью
Не придумал ничего лучше, чем кидать всратые картинки в ответ на апрувы😃
😁5
Отпуск

Съездил в отпуск. Взял за свой счёт, потому что не отдыхал уже 3 года. Вроде как бы круто, море и всё такое, но в следующий раз только вдвоём с женой и не на юг :D
После отпуска пришёл, смотрю - накидана куча задач :( так себе начало работы, НО! Раскидался с ними очень быстро, то есть получается есть абсолютно реальный эффект от отдыха. Кто бы мог подумать :D
В прошлый раз я отдыхал дома, неделю проведя дома за приставкой, как раз ровно 3 года назад. С тех пор и думал, что отпуск бесполезен
В общем, отдыхайте почаще, желательно далеко от дома и от любых дел, которые могут хоть как-то напомнить привычный образ жизни
3🔥1
Недавно озадачился своими скиллами, давно ничего не читал и не изучал
В связи с этим нашёл пару ресурсов, с которых начну снова процесс обучения:
1. Роадмап. Очень обширный, от джуна до сеньёра, с кучей ссылок. Есть ещё вот такой, о нём я уже слышал, тоже много ссылок и много тем
2. До этого мне далеко, но Как и куда расти инженеру, если он уже Senior
3. Интервью по System Design
4. У меня большие проблемы с пониманием шифрования, поэтому - КАК РАБОТАЕТ ШИФРОВАНИЕ? С НУЛЯ ЗА ЧАС
5. Разработка и проектирование высоконагруженных систем
6. Как правильно выбирать очередь
Если у кого-то есть полезные ссылки, то делитесь, буду рад
Абсолютно случайно наткнулся на видео, где разраб объясняет новую фишку вскода - прокидывание портов
Фактически, альтернатива ngrok, когда надо кому-то из внешней сети показать своей проект в локалке без необходимости использования хостинга
Микромягкие молодцы, годноту пилят
https://youtu.be/Qi2hZ74_eyw?si=F3NBvdjjF6RRrl4j
Чето долго не писал, работы выше крыши, но все по порядку
1. Сегодня закончился испытательный срок, заявление на увольнение не попросили прислать значит все ок, работаем дальше😊 а если серьезно, то похвалили, сказали, что хорошо влился и хорошо работаю. Наверняка всем так говорят на всех работах, но от того не менее приятно.
2. Вчера был день рождения. В качестве подарка поехал кукухой и купил себе Гугл пиксель 7а. Зачем? Да хз, захотелось. Недавно меня посетила мысль с небес о том, что я телефоном пользуюсь только для телеги и музыки, поэтому какая разница на какой операционке сидеть. Хотя нет, разница определенно есть - никогда в жизни не возьму что-либо кроме айоси или чистого андроида
3. Перешёл на Ютуб музыку. Лучшее решение в жизни. Там есть абсолютно все, даже старые богом (а также Яндексом и спотифаем) забытые треки
4. Взял себе подработку на вечер в одной из прошлых контор. Мне не сложно, мозгу приятно, ну а кошельку тем более. Буду копить на xbox series x в новую квартиру
5. В прежнем режиме читаю статьи и посматриваю видосы про разработку. Надо заставить себя запилить свежий пост с подборкой.
6. Нашел очень интересную штуку - sql-подобный инструмент для работы с гитом. Если кто-то сможет придумать ей реальное применение, то напишите, я пока не въехал, хотя все равно удивлен функционалом. Ссылка - https://github.com/AmrDeveloper/GQL
👍2
Наткнулся на интересную концепцию - стриминговые sql движки, которые на лету точечно обновляют результаты какого-то заданного запроса (например, при подсчете строк в таблице их количество хранится отдельно, а не высчитывается каждый раз заново)

Вот сама статья, легко читается, простым языком объяснено что к чему - https://www.epsio.io/blog/how-to-create-a-streaming-sql-engine
👍2
Шутки про дроп базы джуном же очень смешные, да?

Так вот, мне вчера было не смешно, потому что я уже не джун совсем

В пылу работы по воспроизведению критичного бага перепутал вкладки и сделал truncate table_name cascade на превью нашей компании вместо локалки. Ржака да и только :D
Смертельный рев команды тестировки был слышен аж из самой Москвы
Сисадмин сказал, что дело житейское, но все равно выточит мне медальку!

А если смотреть чуть позитивнее, то наконец-то тестировщики в работу возьмут мою задачу по репликации данных на превью - очень даже хороший плюс :D
🔥3😁3🤯1
Забыл рассказать важную (для меня) новость
Наконец-то, спустя год ожидания мы с семьей переехали в другую квартиру🥳
У меня теперь есть свой отдельный уголок, где можно спокойно с комфортом работать за большим столом
Впервые в жизни мне предоставилась нормальная возможность работать с перерывами на еду, недалеко отходя от кровати😃
График теперь примерно такой: 8:30 проснулся, до 18 основная работа, до 21 с семьей, до 00 подработка. По выходным тоже, конечно же, в обед и ночью подработка.
Благодаря этому я в этом месяце на подработке отработал 80 часов, что не может не радовать, потому что наконец-то куплю себе xbox, почему-то прям чешется его купить🤔
Справедливости ради, у меня и до этого был такой график (уже чуть больше месяца), просто сейчас не надо тратить время на дорогу до офиса и ночью гораздо удобнее работать за рабочей станцией, чем на ноуте
На подработке фронт еще молодой, иногда пишет после 21, вопросы задаёт. На резонный вопрос "ебанулся? Выгоришь" - смеется. Хороший запал
👍31
Вот кстати и само рабочее место, а еще кошка, которая из-за стресса из-за переезда теперь от меня не отходит и даже спит со мной, хотя раньше даже подумать бы не мог о таком ❤️
1👍1
О важности автогенерации документации вашего api

Tl;dr: дока только через автоген, а чтобы этого достичь иногда можно и нужно срать на стандарты

Как-то меня последний год обходила стороной необходимость вручную писать доку. Сначала был graphql, где доку вообще делать не надо, а потом перешёл на проект на симфони, где дока генерится при деплое исходя из аннотаций на экшене контроллера.
Я даже и не подозревал, во-первых, насколько это удобно, а во-вторых, насколько это важно для скорости разработки и главное для желания вообще хоть что-нибудь разрабывать и менять.
Извечная проблема программистов в том, что программу постоянно надо менять и чем легче это делать, тем нам проще.
Так вот я все это к чему: на подработке используется yii2 и еще мои собственные наработки, максимально облегчающие разработку апи, НО! совершенно не трогающие момент с документацией. Из-за этого приходилось руками писать доку на аннотациях в пхп, следя, не забыл ли я случайно где-то параметр или тот ли я указал тип. Это жопа. Это трудоемко, это пустая трата времени.
Плюнул, потратил 3 часа на полную переработку подхода и в итоге получил автогенерацию доки при деплое, прямо как на основной работе. Вдовесок к этому получил полную типизацию всех возвращаемых значений при обработке данных. Двойной выигрыш.
Есть очевидный минус - в классе, производящем обработку данных, мы теперь имеем аннотации, относящиеся к документации апихи, о которых класс знать не должен вообще. Плохо ли это? Очень! Но мне абсолютно все равно🤣 В конце концов, код выполняет свою цель, не сильно при этом засираясь. Более того, такой подход куда практичнее, чем многоуровневый маппинг с "запросов" на "команды", а потом на "ответы".
Но давайте я все же подчеркну основную мысль - это не энтерпрайз и это не команда из 10 человек, я тут один. Тут срать все хотели на подобные мелочи, заказчику важен результат здесь и сейчас. Соответственно, и подходы мной выбираются исходя из этого.
Писать чистый совершенный код невозможно, абсолютно в любой ситуации придется чем-то жертвовать и уж лучше это будет небольшое нарушение разделения зон ответственности, чем мое время и нервы
1👍1
Очередная статья против микросервисов

К сожалению, пока не за моим авторством

https://habr.com/ru/articles/779362/

Почему-то с каждым разом как про них заходит разговор, мне все меньше хочется с ними работать. Звучит как дроч и решение зачастую несуществующих проблем
Хотя нет, работать с ними хочется - обычно там платят много😃
🙈1
Говно с дымом!

Первый год, когда сложно подвести итоги, потому что дома просто атас
У нас по факту с новым годом празднуется и новоселье, поэтому толпа родственников с радостным гулом сейчас играет в мафию, я естественно с ними)
Кратко итоги года:
1. Вас стало 37, это +25 с прошлого нового года🥳
2. Поменял 2 работы, щас наконец-то прям всем доволен🥳
3. Переехал 🥳
За год чисто по техническим моментам была куча изменений и новшеств, поэтому сложно все упомнить
Я каждый год думаю, что стал умнее, но в конце года каждый раз осознаю как был глуп; звучит грустно, но я этому рад😃
Всех с новым годом! Спасибо, что остаетесь со мной и читаете! В новом году желаю сумасшедшего роста всем, как карьерного, так и личностного!❤️
6🎉3👍1