Обновить
1
0

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

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

Учимся работать с Kubernetes через запуск приложения

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

Вместе с Павлом Агалецким, ведущим разработчиком PaaS в Авито, изучим команды утилиты kubectl в Kubernetes, попробуем запустить два приложения и познакомимся с консольным дашбордом k9s.

Читать далее

Почему люди злятся из-за итераторов в Go 1.23

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

Недавно я увидел сообщение, демонстрирующее будущий дизайн итераторов для Go 1.23 (август 2024 года). Насколько я могу судить, многим людям этот дизайн не нравится. Я хотел высказать свои мысли по этому поводу как разработчик языка.

Читать далее

Виза цифрового кочевника в Таиланде в 2024 году

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

В последних числах мая 2024 года появился анонс новой визы цифрового кочевника в Таиланде - DTV. Цифровые кочевники теперь, могут подать заявку на визу и проживать в стране до 5 лет. Требований почти нет, ясности пока мало, однако все это выглядит как существенное снятие барьеров для желающих пожить здесь подольше. Таиланд решился на очередное послабление, вслед за аналогичными программами, стартовавшими в Малайзии и Индонезии.

Читать далее

Книга: «Антипаттерны SQL. Как избежать ловушек при работе с базами данных»

Время на прочтение10 мин
Охват и читатели12K
image Привет, Хаброжители!

Язык SQL необходим для работы со структурированными данными. Программисты, прекрасно знающие свой любимый язык (Java, Python или Go), не могут разбираться во всем, и часто не являются экспертами в SQL. Это приводит к появлению антипаттернов — решений, которые на первый взгляд кажутся правильными, но со временем создают все больше проблем.

Научитесь выявлять и обходить многие из этих распространенных ловушек! Проведите рефакторинг унаследованного кошмара и превратите его в жизнеспособную модель данных!

Примеры SQL-кода основаны на версии MySQL 8.0, но в тексте также упоминаются другие популярные РСУБД. В примерах кода используется Python 3.9+ или Ruby 2.7+.
Читать дальше →

Про IT-шников и высшее образование

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

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

Я сам, уйдя из университета 18 лет назад, закончив только три курса, задним числом могу сказать, что у меня нет претензий к учебной программе по содержанию. Те знания, что я успел изучить, действительно пригодились. Но форма обучения и атмосфера университета мне не понравились совершенно. Среди прочего, были преподаватели, которые говорили «мы не знаем, зачем вам те знания, что мы рассказываем». При том, что эти знания мне тоже пригодились.

Читать далее

Generic Concurrency в Go

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

Привет, гоферы!

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

Читать далее

Structured concurrency в языке Go

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

Горутины виснут непонятно почему, случайная запись в закрытый канал вызывает panic, нормально протестировать приложение вообще невозможно.


Наверняка многие из вас сталкивались с такой проблемой: синтаксис языка Go вроде бы очень простой, можно сказать примитивный, да и горутины создаются элементарно, но при этом написать мало-мальски серьёзную программу, которая конкурентно что-то делает, внезапно оказывается не так-то просто.


Чтобы не запутаться, люди придумали концепцию structured concurrency, которую можно применять и в Go.

Читай или страдай

С Python на Go и обратно: мой опыт

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

Привет! Меня зовут Денис, я ведущий Golang-разработчик в МТС Диджитал. Еще год назад я работал экспертом по запуску новых сервисов и услуг в Корпоративном центре МТС и параллельно заканчивал курс «Продвинутый Go‑разработчик» от Практикума.

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

Go читать!

Ужасно подробные ошибки в API: пишем на Go инструмент для работы с ними

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

Привет, Хабр! Меня зовут Александр Лырчиков, я разрабатываю систему хранения данных TATLIN.UNIFIED в YADRO. СХД — сложная система, и, если при работе произошла ошибка, она должна своевременно и понятно сообщать пользователю об этом. В большинстве веб-сервисов для этого используют баннер с надписью «Что-то пошло не так», но такой способ уведомления нам не подходит.

Мы столкнулись с проблемой, когда переданных сообщений и HTTP-кодов уже не хватает. Поэтому разработали собственный инструмент для обработки ошибок Terror (TATLIN + error). В результате работа с кодом стала проще, мы получили красивый API, а пользователи — понятное описание ошибки и локализацию текста на разные языки. В этой статье расскажу, как мы создавали Terror, чтобы вы смогли повторить решение.

Читать статью

Интересный пример кода на Go и зашоренность мышления

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

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

Читать далее

Подготовка к техническому собеседованию Senior/Team Lead backend

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

Недавно появились мысли походить на собеседования чем я успешно занялся. Если конкретно - смотрел лидовскую/сеньерскую позиции на Python и Golang(но статья может пригодиться backend разработчикам в целом). Не ставлю целью статьи объять все не объятное и дать какие-то гарантии. Я лишь зафиксирую данные для себя на будущее.

Вообще ходить на собеседования неплохой навык - в моем случае удается неплохо прокачать технические скилы и узнать запросы рынка на текущий момент(ведь может случиться так, что твои навыки перестанут быть актуальными).

Сразу сделаю пометку, что некоторые навыки/ресурсы специфичны(по типу нарешивания Leetcode), но отталкиваемся от текущих реалий рынка.

Читать далее

Оптимизация Go: как повысить скорость и эффективность кода

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

Привет, Хабр! Меня зовут Макс, я Go-разработчик в компании SimbirSoft. Язык Go (Golang) стремительно набирает популярность, он всё чаще внедряется в существующие программные решения, а также встречается в стеке новых проектов. Высокая производительность и скорость работы – его главные преимущества, поэтому для реализации бизнес-задач он подходит как нельзя кстати. Go легко поддерживается и отлично годится для создания MVP, из-за чего востребованность в нём растёт.

Но чтобы этот язык программирования был действительно производительным, разработчикам необходимо учитывать некоторые тонкости работы с ним. Иначе ваше приложение станет таким же медленным, как айтишник без чашки кофе :) В этой статье мы с вами на примерах разберём часто возникающие ситуации при работе с Go, а также рассмотрим приёмы, которые позволят повысить производительность кода. Надеюсь, разработчики уровня джуниор и мидл смогут почерпнуть для себя что-то полезное.

Мы начинаем!

Go ⏩

Как я написал для своей команды бот-напоминалку на Golang и втрое сократил время на ревью задач

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

Привет, Хабр! На связи Кирилл Веркин. Вообще, я занимаю в СберМаркете должность Senior QA, но ради большей производительности команды стал немного кодером.

Эта статья может быть интересна тем, кто замечает, что задачи в команде часто теряются, и хочет автоматизировать процесс напоминалок. Я делюсь кодом, поясняя ключевые моменты для таких же новичков в Go. Мой код написан для сочетания GitLab, Jira и Mattermost (корпоративный мессенджер, которым мы пользуемся в СберМаркете), но подобное решение можно реализовать и с другими сервисами.

Читать далее

Откажитесь уже наконец от gin, echo и <иной ваш фреймворк>

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

Введение: Пересмотр Традиций в Мире Go

В мире разработки на Go выбор фреймворка часто превращается в лояльность, сопоставимую с выбором между Apple и Android. Фреймворки вроде Gin, Echo и Beego долгие годы были верными спутниками программистов, помогая быстро развертывать проекты и достигать первых успехов. Они предлагали удобные инструменты и привычные шаблоны работы, но со временем становится очевидным, что у каждого свой «язык». Это создаёт трудности при переходе между ними или интеграции с другими системами.

Ну что же, давайте разберемся

Как могли взломать СДЭК. Уроки, которые нужно усвоить каждому

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

4 июня СДЭК предварительно подтвердил, что сбой в его работе связан с внешним воздействием. 6 июня совет директоров компании соберется, чтобы обсудить данные внутреннего расследования. 

Желаем ИТ-команде СДЭК скорейшего восстановления работы в полном объеме. 

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

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

Именно этому и посвящен наш текст

AOP в Golang: как рефлексировать, и почему вам не стоит этого делать

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

Я java-программист по профессии и алкоголик go-developer по зову души. И вот в один прекрасный день я подумал о том, что раз уж в Go есть пакет reflect, то должны быть и способы АОП, прямо как в java. Если вкратце, я захотел генерировать обертки для функций в рантайме, позволяя красиво оборачивать логи, мониторинги, трейсинги, и прочие довольно однотипные штуки, по аналогии с тем, как я проделывал это в java.

Если вам стало интересно, что у меня из этого вышло, добро пожаловать под кат!

Читать далее

Можно ли на самом деле выучить английский язык в Chat GPT?

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

С начала прошлого года я наблюдал за появляющимися в больших количествах статьями и материалами на тему изучения английского языка с помощью ChatGPT.  Конечно, как преподавателя английского языка, меня очень интересует этот вопрос, так же как и лодочников, сломавших первую лодку с паровым двигателем, и извозчиков, недовольных трамваями.  Однако с течением времени моя тревога прошла, потому что полтора года спустя не объявилось ни одного человека, выучившего английский язык только с помощью нейросети. А отсутствие подтвержденных результатов – это достаточно мощный аргумент.

Как вы относитесь к гомеопатии? Стали бы вы с ее помощью лечить опасное заболевание, если есть проверенные годами методы? Хотя можно привести и примеры с ГМО, где есть прослойка населения, опасающаяся использовать «новинку», но здесь у нас хотя бы есть некие исследования о безвредности, а в ChatGPT – нет свидетельств по типу «я использовал только ChatGPT и достиг отличных результатов». Под результатами мы конечно понимаем способность работать за границей, общаться с коллегами или хорошие баллы на экзамене типа IELTS или TOEFL.

 Но это обывательский подход, конечно же, уже проводились некие исследования, задействующие фокус-группы, в ходе которых, например, было выяснено, что «ChatGPT оказывает позитивное воздействие на навыки письма и незначительное – на развитие разговорных и грамматических навыков, словарный запас, мотивирование участников занятия». Упоминается, что «хотя AI-технологии по типу ChatGPT  могут оценивать уровень знания, и проводить инструктаж по обучению языкам, они должны рассматриваться скорее как дополнение, а не как замена людям».

Читать далее

Хорошие программисты совершенствуют навыки, великие — своё мышление

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

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

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

Читать дальше →

Руководство по написанию промптов

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


Написание промптов — это искусство общения с генеративной ИИ-моделью. В этой статье мы расскажем о том, как мы в GitHub подходим к составлению промптов и как можно использовать эти принципы для создания собственного приложения на основе LLM.

В 2011 году в одной своей публикации Марк Андриссен предупредил: «Программы поглощают мир». Спустя более десятка лет мы наблюдаем появление нового типа технологий, которые поглощают мир с ещё большей скоростью: генеративный искусственный интеллект. Этот инновационный искусственный интеллект включает в себя уникальный класс больших языковых моделей (англ. large language models, LLM), созданных в результате десятилетия новаторских исследований, которые способны превзойти человека в решении определённых задач. И вам не нужно иметь докторскую степерь в области машинного обучения, чтобы создавать программы с использованием LLM. Разработчики уже создают программы с LLM, используя базовые HTTP-запросы и промпты на естественном языке.

В этой статье мы расскажем о работе GitHub с LLM, чтобы помочь другим разработчикам узнать, как лучше использовать эту технологию. Статья состоит из двух основных частей: в первой мы высокоуровнево расскажем о том, как функционируют LLM и как создавать приложения на основе LLM. Во второй части мы рассмотрим пример такого приложения: автодополнение кода от GitHub Copilot.
Читать дальше →

Три основных способа оптимизировать ваши запросы в PostgreSQL

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

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

Представьте себе, вы приходите домой после долгого рабочего дня, и вас встречает пушистый котик. Вы знаете, что он ждет вас, чтобы вы рассказали ему о своих подвигах на работе. И вот, вы начинаете свой рассказ, а он, этот милый мурлыка, вдруг спрашивает: "А как там у тебя с оптимизацией запросов в PostgreSQL?"

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

Читать далее

Информация

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