Pull to refresh
-1
0
Send message

Сложнейшая проблема компьютерных наук: центрирование

Level of difficultyMedium
Reading time7 min
Views34K

Заявляю: «Мы, как цивилизация, разучились использовать центрирование». Ну то есть мы, конечно, знаем, как это делать — очень просто:

display: flex;
justify-content: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

Не спрашивайте, почему вам нужно запомнить четыре слова вместо просто горизонтальное/вертикальное; всё равно лучше, чем было до этого.

Ещё можно использовать сетку:

display: grid;
justify-items: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

Также не спрашивайте, почему выражение justify-content стало justify-items.
Читать дальше →
Total votes 194: ↑189 and ↓5+227
Comments56

Стресс и выгорание в мире разработки ПО

Level of difficultyEasy
Reading time9 min
Views13K
Автор: Sow Ay

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

Если вспомнить конкретно 2017 год, то он стал для меня весьма неприятным. Я регулярно испытывал панические атаки, сидел на релаксантах и пытался писать код, находясь под серьёзным давлением дедлайнов и новых ответственностей. Тогда я как раз унаследовал от своего предшественника должность главы отдела информационных технологий. Теперь я отвечал за небольшую команду разработчиков. При этом наш стартап дал многим партнёрам множество обещаний. Моей же задачей была их реализация, и я мог их либо нарушить, либо выполнить. У меня получилось и то и другое.
Читать дальше →
Total votes 57: ↑54 and ↓3+73
Comments48

[Ответ] Про цифровые сервисы в Германии

Level of difficultyEasy
Reading time13 min
Views6.8K

Несколько дней назад на Хабре была опубликована статья Правда ли, что в Европе везде отсталые сервисы, медленные платежи и плохие онлайн-услуги? Которая достаточно быстро набрала много просмотров и вызвала бурные обсуждения в комментариях. Я так же с интересом ее прочел и еле удержался, чтобы не вступить в дискуссию, но потом все же решил написать отдельную статью "по горячим следам", так как написать хотелось много чего.

Не то, чтобы я согласен или не согласен с автором, а скорее хотелось бы показать, что ситуация сильно отличается от страны к стране, и может даже от региона к региону внутри этой страны. Сам я в настоящий момент живу в Германии и успел уже пожить как в крупном городе-миллионнике (Кельн), так и в маленьком баварском городке на 40 киложителей, название которого никому ничего не скажет (мне оно вообще было неизвестно, до того как судьба занесла меня в него, поэтому для простоты буду ниже по тексту называть его "город Y")

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

Паттерн Aggregate Outside

Level of difficultyMedium
Reading time5 min
Views6.9K

Руслан Гнатовский aka @Number55 в свой статье Когда ни туда, ни сюда, или в поисках оптимальной границы Domain слоя описал известную проблему протекания бизнес-логики из агрегата, в случае если эта логика зависит от данных которые находятся вне агрегата, и предложил несколько решений этой проблемы, каждое из которых не лишено недостатков. Многие из этих недостатков были описаны в статье а также в комментариях поэтому я не буду здесь дублировать эту информацию а попытаюсь предложить решение которое этих недостатков лишено.

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

Гексагональная Архитектура и Spring Boot

Level of difficultyMedium
Reading time5 min
Views11K

Всем привет!

Хочу рассказать про опыт применения гексагональной архитектуры в одном из наших микросервисов. С чем столкнулся и какие выводы сделал.

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

Gmail и Yahoo ужесточают правила для входящих писем: теперь DKM и DMARC обязательны

Reading time3 min
Views21K

Как работает SPF

Владельцам собственных почтовых серверов (на своём хостинге) постоянно приходится следить за тем, чтобы их домен или IP-адрес не занесли в чёрный список. А с февраля 2024 года придётся ещё труднее, поскольку Gmail и Yahoo ужесточили правила для входящих писем (объявление Gmail, объявление Yahoo).

Для обычных пользователей хорошая новость в том, что спама станет меньше. А владельцам почтовых серверов теперь придётся следить ещё за «уровнем спама» со своих серверов, то есть сколько пользователей помещают их письма в спам.
Читать дальше →
Total votes 21: ↑18 and ↓3+23
Comments79

Гексагональная архитектура со Spring Boot

Level of difficultyMedium
Reading time19 min
Views15K

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

В этой статье мы рассмотрим, как реализовать гексагональную архитектуру в Spring Boot приложении. Мы разделим бизнес-логику и инфраструктуру на отдельные модули и посмотрим, как можно изолированно реализовать и протестировать эти модули.

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

Читать далее
Total votes 14: ↑11 and ↓3+11
Comments4

10 лучших практик логирования в Python

Level of difficultyEasy
Reading time19 min
Views33K

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

В этой статье мы рассмотрим лучшие практики логирования в Python. Следуя им, вы сможете обеспечить информативность, практичность и масштабируемость генерируемых логов. Давайте начнём!

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

Поднимаем кластер PostgreSQL в Docker и Testcontainers

Level of difficultyMedium
Reading time8 min
Views24K

Ранее я рассказывал о том, как запустить PostgreSQL в Docker. Тогда речь шла об использовании «ванильных» образов Postgres и поднятии одного хоста. В большинстве случаев этого достаточно как для тестов, так и для экспериментов, но нужно понимать, что в промышленной эксплуатации чаще всего используются высокодоступные (отказоустойчивые, кластеризованные) конфигурации PostgreSQL.

Сегодня я покажу, как запустить уже целый кластер PostgreSQL в Docker, а также в тестах через Testcontainers, и как вручную инициировать смену мастер-хоста.

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

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Level of difficultyEasy
Reading time8 min
Views197K

Привет, Хабр!

Я решил посвятить свою первую статью SQL. Вопросы, рассмотренные ниже мне задавали на собеседованиях на позицию python-разработчика. Естественно отвечать правильно получалось не всегда, а если точнее то чаще не правильно, однако проведя N часов в рефлексии я составил перечень ответов, которыми пользуюсь до сих пор.

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

Читать далее
Total votes 156: ↑149 and ↓7+177
Comments178

Golang — архитектурный линтер

Level of difficultyEasy
Reading time5 min
Views7.4K

Для того чтобы повысить качество приложения, написанного на языке go, можно использовать разные линтеры. Один из таких линтеров — архитектурный.

В данной статье расскажу про свой бесплатный, open-source, линтер под MIT лицензией и чем он может быть полезен.

Читать далее
Total votes 17: ↑16 and ↓1+20
Comments1

Управление временем жизни объектов: почему это важно и почему для этого пришлось создать новый язык «Аргентум»

Level of difficultyMedium
Reading time8 min
Views7.7K

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

Читать далее
Total votes 25: ↑23 and ↓2+28
Comments50

Python и чистая архитектура в 2021 году

Reading time11 min
Views25K

Прошло уже почти 3 года с тех пор, как я впервые воспользовался чистой архитектурой на практике. С тех пор я побывал на многочисленных конференциях, где выступал с докладами на эту тему (вот, например, доклад Clean Architecture in Python с конференции PyGotham 2018). Кроме того, я написал статью о чистой архитектуре на Python, которая попала в рассылку RealPython.com … но сейчас заканчивается 2021 год, и мы ушли далеко вперед. Давайте рассмотрим, как развился Python, изучим разные крутые библиотеки, благодаря которым реализовывать чистую архитектуру на Python сегодня стало гораздо проще.

Сначала вспомним о том, зачем она нужна.

Читать далее
Total votes 9: ↑8 and ↓1+8
Comments1

10 приёмов, чтобы получить быструю и качественную картинку в Midjourney

Level of difficultyEasy
Reading time7 min
Views19K

Меня зовут Андрей Цыган - я предприниматель, управленец и как энтузиаст исследую возможности нейросетей. Я никогда не работал ни с графическими редакторами, ни даже с PhotoShop - но постоянно нуждался в таких услугах. Качественные изображения мне были нужны для презентаций, маркетинговых материалов, соц. сетей.

Из всех сетей генерации изображений мне больше всего понравился Midjourney - оптимальное качество на потраченное время. Я понимаю в самом Midjourney (не говоря про Stabble Diffusion) можно углубиться в детали - но я не дизайнер или AI artist, мои задачи прикладные.

У меня уже сгенерированно более 4000 изображений и я выделил 10 методов, которые позволяют достаточно быстро и качественно получить нужный мне контент.  Они могут использоваться как обложка к посту или лонгриду, или я чаще использую в презентации.
Надеюсь, эта статья сэкономит вам несколько часов!

Читать далее
Total votes 17: ↑15 and ↓2+18
Comments4

Orchestrator и VIP как HA-решение для кластера MySQL

Reading time7 min
Views7.4K
В Ситимобил мы используем базу данных MySQL в качестве основного хранилища постоянных данных. У нас есть несколько кластеров баз данных под различные сервисы и цели.

Постоянная доступность мастера является критическим показателем работоспособности всей системы и ее отдельных частей. Автоматическое восстановление кластера в случае отказа мастера сильно снижает время реагирования на инцидент и время простоя системы. В этой статье я рассмотрю схему обеспечения высокой доступности (HA) кластера MySQL на основе MySQL Orchestrator и виртуальных IP адресов (VIP).


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

Неудачное внедрение Redis Cluster в монолит на PHP 7.2.X

Level of difficultyMedium
Reading time16 min
Views8.2K

Исповедь о том как принес в проект проблему, которую так и не устранил в течение долгого времени.

Осторожно! Статья может вызвать обострение профессиональных заболеваний вплоть до боли ниже поясницы.

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

Пишем на Python, как будто это Rust

Reading time19 min
Views10K

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

Читать далее
Total votes 24: ↑20 and ↓4+20
Comments17

Разработка быстрых и современных сайтов на базе Next.js, с использованием GraphQL & WordPress

Level of difficultyMedium
Reading time11 min
Views14K

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

WordPress - популярная headless CMS, применяемая для различных проектов - от простых блогов до сложных приложений.

У нас был готовый сайт на WordPress, шило в коде и непреодолимое желание поэксперементировать с Next.js.

Получилось достаточно быстрое приложение с примерно небольшими трудозатратами.

Читать далее
Total votes 9: ↑8 and ↓1+8
Comments4

Пишем на Python как на Rust

Level of difficultyMedium
Reading time17 min
Views31K

Я начал программировать на Rust несколько лет назад, и это постепенно изменило мой подход к разработке программ на других языках программирования, особенно на Python. До того, как я начал использовать Rust, я обычно писал код на Python очень динамично, без подсказок типов, повсюду передавая и возвращая словари и время от времени возвращаясь к интерфейсам со «строковой типизацией». Однако, испытав на себе строгость системы типов Rust и заметив все проблемы, которые она предотвращает, я внезапно стал сильно беспокоиться всякий раз, когда возвращался к Python и не получал тех же гарантий.

Читать далее
Total votes 88: ↑83 and ↓5+94
Comments42

Clean Architecture

Level of difficultyEasy
Reading time8 min
Views52K

Как многие разработчики, я прекрасно понимаю, насколько важно создавать приложения, которые будет легко поддерживать, расширять и развивать в долгосрочной перспективе. Именно поэтому принципы Clean Architecture (Чистая архитектура) стали неотъемлемой частью моей работы. В этой статье я расскажу о том, почему следование принципам Clean Architecture так важно и какие преимущества эти принципы могут дать.

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

Information

Rating
Does not participate
Registered
Activity