Pull to refresh
2
0
Дмитрий @dimuska139

Веб-разработчик

Send message

10 полезных сочетаний клавиш в PyCharm

Reading time2 min
Views113K

Привет, мои дорогие!

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

Читать далее
Total votes 19: ↑7 and ↓12-5
Comments12

Нагрузочное тестирование с использованием Postman

Reading time5 min
Views22K

Нагрузочное тестирование является важной частью жизненного цикла разработки программного обеспечения (software development life cycle, SDLC) для современных корпоративных приложений. В этом руководстве мы рассмотрим использование коллекций Postman для написания нагрузочных тестов.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments2

ORM — отвратительный анти-паттерн

Reading time10 min
Views89K

От автора перевода: Написанный далее текст может не совпадать с мнением автора перевода. Все высказывания идут от лица оригинального автора, просьба воздержаться от неоправданных минусов. Оригинальная статья выпущена в 2014 году, поэтому некоторые фрагменты кода могут быть устаревшими или "нежелаемыми".

Содержание статьи:

В статье приведены доводы, которые ставят под вопрос правильность присутствия ORM в рамках ООП.

Читать далее
Total votes 79: ↑53 and ↓26+27
Comments196

Kubernetes: как выбрать между self-hosted и managed-решением

Reading time9 min
Views6.1K

Привет, Хабр! Сергей Бондарев, архитектор Southbridge и спикер в Слёрме, недавно провёл вебинар «Kubernetes'22: выбор между self-hosted и managed-решением». Сегодня публикуем текстовую версию вебинара.

Читать дальше
Total votes 13: ↑12 and ↓1+11
Comments2

Двенадцатифакторная модель создания CLI-приложений

Reading time11 min
Views7K

Современному пользователю сложно представить себе взаимодействие с операционной системой без мышки или пальца на экране. Интерфейс однозначно ассоциируется с чем-то графическим и оконным, основанным на пользовательском опыте  миллионов людей за несколько десятилетий. Это очень удобно, однако в разработке софта есть ещё удалённые уголки Вселенной, где для решения сложных комплексных задач просто нет готовых решений с графическими интерфейсами. Тут на помощь приходит старая добрая командная строка (Command Line Interface, CLI). Поводом для перевода и публикации этой статьи стал интерес команды Artezio к повышению удобства, читаемости и возможности поддержки CLI в части разработки.  В конце концов это такой же интерфейс как и графический, он тоже должен быть удобным.  Мы очень надеемся, что эти знания окажутся полезными для читателей блога.

Читать далее
Total votes 41: ↑41 and ↓0+41
Comments2

Как я делал сайт визитку на Angular

Reading time26 min
Views18K

Спустя несколько лет промышленной разработки приложений на javascript, решил вспомнить молодость и сделать небольшой pet-проект, который в полной мере развернул весь процесс разработки подобного рода приложений с использованием фреймворка Angular. В статье делюсь своими впечатлениями, а также пытаюсь понять, стоит ли делать сайты визитки на Angular.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments18

Лучшие подходы и решения для уменьшения кода на React. Часть 2

Reading time4 min
Views5K

Привет. Это перевод второй статьи из серии “Лучшие подходы и решения для уменьшения кода на React” автора Rahul Sharma.

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

Всего в данной серии 3 статьи, и найти их все вы можете по ссылкам ниже:

Часть 1
Часть 2
Часть 3

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments4

JavaScript: ускоряем загрузку изображений с помощью Imgproxy, Cache API и Service Worker API

Reading time12 min
Views10K



Привет, друзья!


В этой статье я хочу поделиться с вами результатами небольшого эксперимента, связанного с ускорением загрузки изображений с помощью Imgproxy, Cache API (далее — кеш) и Service Worker API (далее — СВ).


Мы с вами разработаем простое приложение на React, в котором используется несколько изображений, и добьемся того, что загружаемые изображения будут более чем в 10 раз легче (меньше по размеру) оригиналов (imgproxy), а также практически мгновенной загрузки (доставки) изображений (СВ и кеш).


Обратите внимание: в части, касающейся imgproxy, особых препятствий на пути использования рассматриваемого в статье подхода к загрузке изображений в продакшне нет, но в части, касающейся СВ, следует проявлять крайнюю осторожность, поскольку данная технология является экспериментальной — это означает, что поведение СВ во многом определяется конкретной реализацией (браузером), что в ряде случаев делает его довольно непредсказуемым. Возможно, для кеширования изображений лучше предпочесть старые-добрые HTTP-заголовки Cache-Control и Etag. Но эксперимент на то и эксперимент, чтобы, в том числе, искать новые ответы на старые вопросы.


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


Остальных прошу под кат.

Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments13

Воссоздаем Minecraft-подобную генерацию мира на Python

Reading time11 min
Views26K

Minecraft, самая продаваемая игра в мире, наиболее известная своими пикселизированными блоками и бесконечными мирами, содержит потрясающий процедурный генератор ландшафта — с пещерами, водоёмами, и даже различными биомами.

Процедурная генерация является важной частью компьютерной графики — она используется в основном в играх и в фильмах. Она помогает создавать случайные структуры, не вызывающие ощущения «машинного» стиля.

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

В детстве мне нравилось играть в Minecraft, и мне всегда было интересно, как эта игра генерирует бесконечные миры. В данной я статье я попытаюсь воссоздать это на Python.

Прим. переводчика. Осторожно, в статье много иллюстраций (в том числе анимированных)

Читать далее
Total votes 57: ↑57 and ↓0+57
Comments13

11 худших особенностей Windows 11, и как их исправить

Reading time8 min
Views345K


Windows 11 вызывает смешанные чувства. С одной стороны, многие люди с удовольствием остались бы и на Windows 10. С другой стороны, есть вполне достойные причины обновиться до 11-й версии – улучшенное переключение между окнами, улучшенный контроль над виртуальными рабочими столами, свежие дизайнерские штучки – типа закруглённых уголков у окон.

Обновляясь до Windows 11, будь то обновление рабочей системы или установка на чистый диск, вы заметите несколько раздражающих особенностей – вроде контекстного меню, заставляющего вас лишний раз кликать мышкой, корявая панель задач, меню браузеров по умолчанию, из-за которого отказаться от Edge стало сложнее.

Предлагаем вашему вниманию худшие особенности Windows 11 и пути их исправления – или, по крайней мере, смягчения.
Читать дальше →
Total votes 100: ↑89 and ↓11+78
Comments343

Kafka, Python и золотая рыбка

Reading time10 min
Views35K

Поймал как-то программист золотую рыбку, а она ему и говорит человеческим голосом: «Отпусти меня в синее море, я исполню любое твоё желание». Программист ЦПУшечкой поскрипел, да и выдал техзадание. «Построй мне», – говорит, – «систему обработки неидемпотентных запросов, да чтоб она была высокопроизводительной, масштабируемой, гибкой и отказоустойчивой!». Охнула сперва золотая рыбка, но взяла себя в плавники и молвила: «Не печалься, ступай себе домой, код написан, система развёрнута. Отпускай меня уже». Удивился программист: «Да ладно? Ну, сейчас проверю и отпущу». «Нет», – возражает рыбка – «пока ты проверяешь, я уж засохну, и всё волшебство исчезнет». Программист задумался: «Что же делать: сначала отпустить, а потом проверить, или сначала проверить, а потом сушёную рыбу к пиву получить?».

Мечты о золотой рыбке не раз посещали умы даже опытных разработчиков. В погоне за оптимальной системой обработки запросов многие отдают недели и месяцы своей жизни, а некоторые готовы отдать и душу, чтобы всё работало без сбоев.
Но нужны ли такие жертвы? Нет... Ведь у вас есть мегабыстрая Apache Kafka, супергибкий Python и возможности NoSQL баз данных. Все эти решения прекрасны по отдельности, но как из них собрать один конвейер для обработки данных, не растеряв их преимущества? Рассмотрим под катом.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments14

Оптимизация микросервиса на Go на живом примере

Reading time17 min
Views20K

Всем привет. Меня зовут Нещадин Иван, и я расскажу про оптимизацию одного из микросервисов Авито на Go. История построена вокруг различных инструментов, которые доступны в языке, и пойдёт от простых примеров к более сложным.


Читать дальше →
Total votes 41: ↑37 and ↓4+33
Comments41

Kubernetes в миниатюре для локального запуска: k0s, MicroK8s, kind, k3s и Minikube

Reading time12 min
Views35K

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

В таких случаях приходят на помощь «мини-кластеры». Их можно запустить на рабочем ПК, «поиграться» с примитивами, построить новую структуру, а после завершения эксперимента — безвозвратно удалить (ведь это уже отработанный материал!).

Отвечая на эту потребность, разработчики со всего мира пришли со своими решениями для быстрого запуска облегчённого варианта Kubernetes. Все они по-разному организованы и, конечно, обладают разными возможностями. Чем пользоваться, зависит от нужд и предпочтений. Чтобы получше разобраться в них или вообще понять, с чего стоит начать, предлагаем результаты нашего беглого знакомства с некоторыми популярными решениями. Благо, все они достаточно хорошо документированы (как на сайтах, так и в CLI), что существенно ускоряет первое погружение и взаимодействие с ними. В конце статьи будет сводная таблица с основными особенностями решений.

Читать далее
Total votes 51: ↑50 and ↓1+49
Comments28

Чистим пхпшный код с помощью DTO

Reading time4 min
Views37K

При написании нового метода или сервиса мы стараемся его максимально абстрагировать от внешних зависимостей, чтобы новый функционал реализовывал только заложенную ему логику. Об этом, собственно, нам и говорит один из принципов SOLID - Принцип единственной ответственности (single responsibility principle).

Я постоянно встречаю код, где если у метода больше двух входных аргументов, добавляется условный (array $args), что влечет за собой реализацию проверки наличия ключа, либо она отсутствует и тогда увеличивается вероятность того, что метод может закрашиться в рантайме.

Возможно, такой подход в PHP сложился исторически, из-за отсутствия строгой типизации и такого себе ООП. Ведь как по мне, то только с 7 версии можно было более-менее реализовать типизацию+ООП, используя strict_types и type hinting.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments44

Чернобыль ч.1. РБМК-1000

Reading time13 min
Views62K

Автор: Александр Старостин

Авария на Чернобыльской атомной электростанции, произошедшая в 1 час 23 минуты 47 секунд 26 апреля 1986 года, стала одной из крупнейших техногенных катастроф в истории человечества. Порядка 115 тысяч человек было выселено из зоны отчуждения. Более 600 тысяч человек приняли участие в ликвидации аварии. Загрязнено более 200 тысяч квадратных километров, из оборота были выведены 5 миллионов гектаров земель. Значительному загрязнению подверглись территории Украины, Белоруссии (по некоторым данным, загрязнению подверглось 20% площади этой страны), России. Кроме того, чернобыльская радиация была обнаружена в северной и западной Европе, а также у берегов Северной Америки. Масштабы аварии повергают в шок.

Записано множество воспоминаний, издано огромное количество книг, многие из них описывают чуть ли не поминутно последний день четвёртого энергоблока ЧАЭС. И тем не менее далеко не все готовы изучать или систематизировать огромный объём информации о том, что же происходило в те жуткие весенние дни, а также на протяжении следующих нескольких лет. Прошло уже 35 лет с момента аварии, а потому мне кажется, что стоит собрать всю имеющуюся информацию в едином цикле, дабы позволить читателю ознакомиться с хронологией тех уже почти забытых событий, а также с их контекстом.

Это первая часть цикла, в которой описывается устройство, принцип работы и особенности внедрения реакторов "чернобыльского типа".

Читать далее
Total votes 53: ↑49 and ↓4+45
Comments58

Полное руководство по инкрементной регенерации статических сайтов с помощью Next.js

Reading time10 min
Views15K
Год назад во фреймворке Next.js 9.3 появилась поддержка генерирования статических сайтов (Static Site Generation, SSG), что сделало его первым гибридным фреймворком. Я к тому моменту уже несколько лет с удовольствием пользовался Next.js. Но тот релиз сделал Next.js моим новым стандартным инструментом. После того, как я много и серьёзно поработал с Next.js, я присоединился к Vercel для того чтобы помогать компаниям, вроде Tripadvisor и Washington Post, в деле внедрения Next.js и расширения того, что у них получилось.

В этом материале мне хотелось бы исследовать новый виток эволюции Jamstack — механизм инкрементной регенерации статических сайтов (Incremental Static Regeneration, ISR). Здесь вы найдёте руководство по ISR, а так же — практические примеры использования этой технологии, демонстрационные проекты и рассказ о сопутствующих внедрению ISR компромиссах.



Если в двух словах описать ISR, то окажется, что эта технология позволяет, при внесении каких-то изменений в материалы сайта, мгновенно обновлять статический контент. Полная пересборка проекта при этом не нужна. Гибридный подход Next.js позволяет использовать ISR в сфере электронной коммерции, при подготовке маркетинговых и рекламных страниц, при организации работы блогов и во многих других случаях.
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments3

1 CPU 1 Гб – а я хочу мониторинг, как у больших дядей

Reading time14 min
Views54K


Я обожаю читать на хабре статьи про то, как устроены системы больших интернет-компаний. Кластеры SQL-серверов, монг и редисов. Тут у нас кластер ELK собирает трейсинг, там – сборка логов, здесь балансер выдает входящим запросам traceID и можно отслеживать, как запрос ходит по всем нашим микросервисам. Класс. Но, допустим, у вас совсем маленький проект и вы можете себе позволить лишь VPS минимальной конфигурации. Реально ли на ней сделать мониторинг не хуже, чем у больших проектов? Я решил – надо попробовать.
Читать дальше →
Total votes 82: ↑80 and ↓2+78
Comments82

Как готовить микрофронтенды в Webpack 5

Reading time9 min
Views19K

Всем привет, меня зовут Иван и я фронтенд-разработчик из компании DexSys.

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

Начнём с того, что ребята с Хабра (@artemu78, @dfuse, @Katsuba) уже писали про Module Federation, так что, моя статья - это не что-то уникальное и прорывное. Скорее, это шишки, костыли и велосипеды, которые полезно знать тем, кто собирается использовать данную технологию.

Читать далее
Total votes 10: ↑8 and ↓2+6
Comments12

Как мы сетапили монорепозиторий с SSR и SPA для Otus.ru

Reading time10 min
Views4.2K

В начале 2017 года в KTS поступила задача - реализовать платформу для онлайн-образования Otus.ru.

От нас требовалось как можно быстрее собрать портал, на котором можно было бы посмотреть информацию о курсах. Сделать MVP нужно было как можно быстрее, а современные фронтенд-фреймворки были еще не распространены. Поэтому фронт писался на vanilla js + jquery. В 2020 году мы решили перепроектировать и полностью переписать сервис на React.

В этой статье мы расскажем, как засетапить монорепозиторий с SSR и SPA приложениями на React на примере Otus.ru

Читать далее
Total votes 10: ↑8 and ↓2+6
Comments0

Что делать, если украли смартфон

Reading time10 min
Views173K
image


Евгений (MalDeckard) Черешнев поделился личным опытом и написал исчерпывающий гайд, который может помочь многим людям и предостеречь от последствий:

У меня на днях украли смартфон — профессиональный вор-велосипедист на скорости выхватил из рук прямо в центре города и был таков. Это может случиться с кем угодно и в любой стране мира. Я, в силу профессиональной деформации вокруг IT, данных, приватности и безопасности, к ситуации был морально готов и знал, что делать. Друзья, с которым поделился историей посоветовали написать памятку, которую может использовать каждый человек, даже далекий от айти. Этот текст — эта самая памятка. Смартфон она вам не вернет. Но, если кому-то поможет снизить ущерб и сэкономит седых волос — значит, не зря потратил время на написание, а вы — на прочтение.

Справедливости ради, большинство воров уже в курсе того, что каждый смартфон — это, по сути, радиомаяк, по которому всегда можно укравшего отследить. Поэтому они редко оставляют его включенным — практически сразу достают и выбрасывают SIM-карту, сам телефон вырубают и сдают на запчасти за копейки. Что крайне обидно — ибо шансы того, что, например, мой iPhone 12 Pro Max 512 банально разберут на экран, аккумулятор и несколько особо востребованных микросхем — стремятся к 100%. То есть, вор украл крайне дорогой девайс, а получит за него или хрен или (если он идиот) — срок. Но это не всегда так. Иногда можно получить реально грузовичок и тележку проблем. Во-первых, в ряде типов краж (как в моем случае) телефон попадает в руки плохого парня в разлоченном состоянии и есть риск, что злоумышленник девайс специально не залочит — будет держать его активированным и извлекать из него максимальную пользу, на что у него будет в теории до 24ч (после чего сработает система защиты в заводских настройках и снова попросит ввести пин-код, даже, если телефон до сих пор разлочен).
Читать дальше →
Total votes 167: ↑157 and ↓10+147
Comments486

Information

Rating
4,992-nd
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity