Обновить
1
0

Пользователь

Отправить сообщение

Из практики. Как я пришла к тому, что все делаю на английском языке и теперь это легко

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели38K

Из практики. Я сейчас все делаю на английском языке: работаю, веду все свои заметки, смотрю фильмы, учусь, гуглю, разговариваю с ChatGPT и все остальное. Даже дома мы часто разговариваем на английском в течении дня.

К этому я пришла не сразу и на мой взгляд, есть 2 основных барьера, чтобы начать использовать язык:

Читать далее

Паттерны многопоточности в Go

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели16K

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

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

Читать далее

Go отлаживать на проде, избавляться от хардкода и переходить на Ginkgo/Gomega: доклады для гоферов

Время на прочтение2 мин
Охват и читатели1.7K

Что делать, если сервис на проде внезапно лег, а куда копать — непонятно. Знакомая ситуация? Запускать отладчик ой как страшно, но иногда это единственное решение. Как подготовиться и избежать фиаско? Несколько полезных советов дал ведущий инженер в платформе. А еще в нашей подборке — хардкор без хардкода на платформенном сервисе с CEL в конфиге и осознанный, но безболезненный переход на Ginko/Gomega для смелых Go-тестировщиков.

Читать далее

Go: нужно ли закрывать канал?

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели3.3K

Эта статья посвящена каналам. Поднимается вопрос необходимости закрытия каналов. Приводится множество примеров, на escape-анализе и трассировке которых объясняются особенности сохранения каналов в памяти, взаимодействие с GC, горутинами. Также поднимается вопрос уместности закрытия каналов. Подсвечивается практическая польза использования однонаправленных каналов.

Читать далее

Дженерики в Go

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели2.9K

Это первая часть статьи, посвященной дженерикам в Go, из четырех.

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

Читать далее

Способ организации gRPC контрактов и их автоматизация для микросервисов

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели4.2K

Привет! Меня зовут Данил, я бэкенд разработчик.

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

Читать далее

5 паттернов проектирования в Go на примере котиков

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.1K

Привет, Хабр! Сегодня мы рассмотрим реализацию паттернов проектирования на Go, и, чтобы было не скучно, возьмем главными героями котиков. Будем разбирать 5 популярных паттернов: Singleton, Factory Method, Strategy, Observer, Decorator.

Читать далее

Go: фокусы трассировки

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели1.6K

В Мире нет панацеи - лекарства от всех болезней. Так и в разработке нет идеальных решений. Многопоточность в некоторых случаях может значительно ускорить вычисления программы, но в то же время может превратиться в настоящий кошмар для разработчика. Не имеет смысла писать многопоточный код без умения пользоваться трассировкой. О способах её получения написано много материала. Более того, есть много статей, где анализ кода сопровождается с анализом трассировки. К сожалению, обычно этот инструмент используется под конкретную задачу, это приводит к тому, что обычно не подсвечиваются некоторые его особенности. В статье на простых очевидных примерах объясняются неочевидные результаты трассировки.

Читать далее

Пирамида тестирования VS чистая архитектура — делим тесты между QA и разработчиком

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели4.5K

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

Меня зовут Кирилл Поляков, я ведущий инженер по тестированию Lamoda Tech. В этом тексте я поделюсь своими ответами, основанными на 12-летней практике в тестировании. Разберем, как связаны чистая архитектура и пирамида тестирования, расскажу нюансы выстраивания стратегии на разных уровнях тестирования, дам рекомендации для QA-инженеров, которые помогут улучшить процесс проверки кода.

Читать далее 🐞

Как я выучил английский

Время на прочтение5 мин
Охват и читатели23K

Знакомые говорят, что история мотивирующая.

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

15 мешков картошки. Всё началось с них. Моя деревенская семья всегда выращивала картошку, взрослые продавали потом. В 1999-м отец показал мне на мешки и сказал: «Иди продавать к магазину, 50% твои.» Впервые в жизни появились свободные деньги, достаточные, чтобы пойти на курсы.

На курсах объяснили, что через will выражается будущее время, «have + 3-я форма глагола» значит, что действие имело место ранее заданной расчётной точки, а вот ещё Present Perfect Continuous есть. В провинции до Интернета это было сопоставимо по масштабам с библейским раздвиганием воды – наконец появилась возможность учить самостоятельно!

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

В 7 лет, не имея доступа к детской литературе, читал дома всё, что попадалось, вплоть до русской классики. Классика неплохо прокачала язык, ну как минимум письменную речь. Как-то в продлёнке мне навешали два третьеклассника, а потом мне же ещё досталось «за драку»! Продолжая реветь, лежал прямо на полу и писал развёрнутое официальное обращение к учителям и ученикам школы: «…потому что вы – Козлы! Козлы с большой буквы потому, что это ваше имя.» Вручил воспитательнице продлёнки и засим удалился. Все ближайшие дни трясся от страха: в те времена назвать учителей «козлами»…

Читать далее

Простой секрет — как выучить английский быстро, легко и без усилий

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели30K

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

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

Узнать секрет

Простая настройка CI/CD для Фронтенда и Бэкенда в Github без сторонних инструментов бесплатно в 2024 году

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели9.4K

Всем привет! Недавно решил попробовать, что из себя представляет Flutter Web, подумал, может попробовать сделать бота для Telegram, и заодно настроить простейший CI/CD для отдельного фронтенд- и бэкенд-проектов. Однако в интернете я не нашёл простой и исчерпывающей инструкции или процесса.

Поэтому задача этой статьи — решить эту проблему! Сделать автоматическую сборку, тестирование и деплой на сервер, и всё это — без необходимости городить SSH-ключи, Github-токены и подключать сторонние решения. Всё на минималках, без лишней бюрократии.

Читать далее

20 неочевидных вариантов использования GPT-4o, которые реально улучшат вашу повседневную жизнь

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели50K

Сегодня я расскажу о 20 практических вариантах использования GPT-4o, в которых возможности визуального ИИ используются так, как вы, возможно, никогда не думали — и нет, это не типичные промпты «напишите письмо».

Читать далее

Functional options in Go

Время на прочтение8 мин
Охват и читатели2K

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

Читать далее

Транзакции в базах данных на примере PostgreSQL

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели17K

Транзакция — это набор операций с базой данных. В этот набор может входить как одна операция, так и несколько. Операции внутри транзакции либо выполняются все и полностью, либо ни одна операция не выполняется. Это свойство еще называют атомарностью. Транзакция переводит базу данных из одного согласованного состояния в другое. Согласованность означает что данные в базе данных подчиняются определенным правилам, которые были заложены при ее создании. К примеру, у нас есть две таблицы — Покупатели (Customer) и Покупки (Purchase).

Читать далее

Как за 6 промтов к ChatGPT создать Python скрипт, скачивающий видео с YouTube для просмотра на телевизоре через Kodi

Уровень сложностиПростой
Время на прочтение18 мин
Охват и читатели15K

Последние месяцы Ютуб работает с перебоями: через сеть мобильного оператора вроде работает, но при подключении к сети проводного интернет-провайдера чаще всего ничего посмотреть нельзя, хотя в новостях что-то промелькнуло насчёт возобновления работы, но лично у меня ничего не поменялось.

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

Раньше на Kodi можно было напрямую отправить YouTube ссылку и посмотреть любое видео. С августа 2024 года этот вариант больше не работает. Короткие видео можно посмотреть с телефона, но вот длинные интервью или подкасты так смотреть или слушать неудобно. К тому же телевизором можно управлять через Алису - она подключена к Home Assistant.

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

Разбираюсь как за 6 промтов к ChatGPT создать Python скрипт, скачивающий видео с YouTube и генерирующий описание и фанарт для Kodi.

Читать далее

Ускоряем запросы в PostgreSQL, оптимизируя оператор GROUP BY

Уровень сложностиСложный
Время на прочтение9 мин
Охват и читатели13K

Пользователи PostgreSQL нередко оперируют аналитическими запросами, при выполнении которых данные сортируются и группируются по разным правилам. За счёт оптимизации вычисления агрегатов и сортировок можно значительно сократить время и стоимость выполнения запросов. Об одной из таких оптимизаций — выборе порядка колонок в выражении GROUP BY — расскажем в этой статье.

Postgres уже умеет перестраивать список группируемых выражений в соответствии с порядком колонок из условия ORDER BY, чтобы исключить дополнительную сортировку и сэкономить вычислительные ресурсы. Мы пошли дальше, реализовали свою идею в дистрибутивах Postgres Pro Standard и Enterprise и вынесли патчи на обсуждение сообщества Postgres (первое и второе) в надежде, что они войдут в ближайшую версию ванильного PostgreSQL.

Читать далее

Использование Redis в Go

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели7.5K

Redis — хранилище из семейства нереляционных (NoSQL) баз данных. Redis является очень быстрым хранилищем данных благодаря своей архитектуре in-memory. Он идеально подходит для задач, требующих быстрого доступа к данным, таких как кэширование, очереди сообщений, сессионная информация и многое другое. Go также известен своей высокой производительностью за счет компиляции в машинный код и эффективного управления памятью.

Читать далее

Оптимизация PostgreSQL: параметры для ускорения запросов

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели9.3K

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

Читать далее

Неочевидные для начинающих тонкости Postgres

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели26K

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

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

За исключением… Postgres.

Не потому, что официальная документация несовершенна (она прекрасна!), просто её очень много. Если распечатать её как стандартный PDF на бумаге формата Letter, то получится 3206 страниц (для текущей версии 17)1. Разработчик-джун вряд ли сможет сесть и прочитать её с начала до конца.

1. Если печатать на бумаге A4, то получится 3024 страницы; наверно, это ещё один аргумент в пользу стандарта.

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

Надеюсь, это упростит процесс освоения для читателей моей статьи.

Стоит отметить, что многое из описанного может быть применимо и к другим системам управления базами данных (СУБД) SQL и вообще к базам данных в целом, но я слабо знакома с ними, так что не буду утверждать с уверенностью.
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность