Как стать автором
Обновить
1
0.3
Виталий @vtb_k

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

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

Итак, вы думаете, что знаете Git? Часть вторая: новое в Git

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров27K

Автор оригинала Скотт Чакон — сооснователь GitHub и основатель нового клиента GitButler. Этот клиент ставит во главу угла рабочий процесс и удобство разработки, в том числе код-ревью, и не является просто очередной обёрткой над CLI git.


Далее в нашей серии постов из трёх частей у нас новые фичи! Здесь я расскажу про пять относительно новых вещей в git, о которых вы могли не слышать, потому что ну почему вы?


Мы взглянем на:


Погружаемся!
Всего голосов 42: ↑41 и ↓1+40
Комментарии84

Ускоряем Go: известные и не очень методы оптимизации и связанные с ними штуки

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров7.8K

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

В этой статье хотел бы поделиться приёмами, которые позволяют повысить производительность Golang-кода. Некоторые из этих вещей довольно известные и их могут делать за вас линтеры, например go-critic, noctx (эти 2 касаются defer и отправки запросов без контекста).

Обсудим:

простые правила, которые не стоит забывать

мифы о производительности в духе "А я слышал, что X повышает скорость на Y%"

более интересные штуки, типо замены switch на map, проведём пару тестов, поэкспериментируем

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

Поехали!

Читать далее
Всего голосов 21: ↑15 и ↓6+9
Комментарии18

Go — 100 вопросов/заданий с собеседований

Уровень сложностиСредний
Время на прочтение87 мин
Количество просмотров65K

Приветствую тебя, хаброжитель!

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

Читать далее
Всего голосов 51: ↑42 и ↓9+33
Комментарии14

Слово Божие — функциональное программирование как основа Вселенной

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

В одном из своих предыдущих постов под названием "Эйлер, Чёрч и Мандельброт — этюд о красоте и математике" я немного затронул тему рассмотрения функционального программирования в качестве основы реальности. Под тем постом было оставлено множество интересных комментариев, один из которых, написанный @nickolaym, вдохновил меня на развитие мысли в данном направлении. Так появился этот пост, в котором прямо как во времена пифагорейской школы и платоновской академии философия переплелась с математикой, а математика с философией.

Читать далее
Всего голосов 64: ↑54 и ↓10+44
Комментарии103

Profile-guided optimization в Go 1.21

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров2.8K

В Go 1.20 была выпущена предварительная версия profile-guided optimization (PGO), которую пользователи могли протестировать. После устранения ограничений в предварительной версии и дополнительных доработок благодаря отзывам и вкладу сообщества, PGO в Go 1.21 готова к использованию!

Читать далее
Всего голосов 11: ↑10 и ↓1+9
Комментарии4

Коллеги, вы меня огорчаете

Время на прочтение12 мин
Количество просмотров170K
В июле и августе 2020 года я, с подачи Григория Петрова, проводил для компании Evrone технические интервью на позицию Senior Golang Backend developer. И, видимо, буду вынужден продолжать проводить, о чём ниже.

Задача формулировалась как «найти человека, который сможет задать и поддерживать высокий уровень профессионализма в применении языка Go». То есть, сформулирована она была по-человечески, перевод на канцелярит — мой. Под эту задачу я сформировал новый опросник вместо того, которым пользовался несколько лет — старый был с жестким закосом под DevOps. Методику, которой я пользуюсь для создания опросников и количественной оценки соответствия кандидатов, я излагал в своем докладе «Техническое интервью как инженерная задача» на конференции Saint TeamLead 2019.

И вот что я хочу сказать вам, коллеги: вы меня огорчаете.


Читать дальше →
Всего голосов 181: ↑137 и ↓44+93
Комментарии1152

Шпаргалка для собеса по GoLang

Время на прочтение30 мин
Количество просмотров25K

"Правильно заданный вопрос - половина ответа". Осваиваю профессию Prompt Engineering. Это ответы на вопросы. Мопед не мой. Спасибо, Codeium. Не обрабатывал наводящие подвопросы, а надо бы. Но может быть кому-то пригодится и в таком виде.

Читать далее
Всего голосов 21: ↑11 и ↓10+1
Комментарии41

Рассматриваем под лупой отладчик Delve для Go-разработчиков

Время на прочтение6 мин
Количество просмотров8.7K

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

Сегодня есть множество IDE, поддерживающих работу с Go и позволяющих отлаживать приложения. На текущий момент для Go представлены два отладчика: GDB (но он не поддерживает многие фичи языка, например Go-рутины) и Delve. Многие IDE используют последний как дефолтный отладчик. И в этой статье я расскажу о возможностях Delve: о том, что умеет сам отладчик, а не что нам предоставляет IDE.

Читать далее
Всего голосов 34: ↑33 и ↓1+32
Комментарии0

Андроид клавиатура Hlider

Время на прочтение3 мин
Количество просмотров8.8K

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

Клавиатура безопасна для пользователей, не имеет доступ в интернет и к общим файлам пользователя, не собирает вводимые данные, в приложении хранятся лишь настройки пользователя.

Читать далее
Всего голосов 11: ↑9 и ↓2+7
Комментарии68

Как структурировать проект на Golang: гайд от backend-разработчика

Время на прочтение4 мин
Количество просмотров37K

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

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

Читать далее
Всего голосов 19: ↑17 и ↓2+15
Комментарии17

Наглядное руководство по SSH-туннелям

Время на прочтение8 мин
Количество просмотров118K

Прим. переводчика: автор статьи рассматривает практические сценарии и примеры организации SSH-туннелей. А для лучшего понимания того, как это работает, графически показывает потоки трафика.

Туннели SSH — это зашифрованные TCP-соединения между клиентами и серверами SSH. Трафик входит с одной стороны туннеля и прозрачно выходит с другой. Изначально этот термин относился к туннелям на виртуальных сетевых интерфейсах TUN/TAP, однако сейчас так обычно называют проброс портов SSH.

Читать далее
Всего голосов 75: ↑75 и ↓0+75
Комментарии17

Как Go выполняет встраивание

Время на прочтение10 мин
Количество просмотров14K

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

Читать далее
Всего голосов 73: ↑72 и ↓1+71
Комментарии15

Простые highload паттерны на Go

Время на прочтение5 мин
Количество просмотров18K

Привет, Хабр! Меня зовут Агаджанян Давид, хочу поделиться некоторыми инженерами рекомендациями, которые часто на моем опыте помогали держать highload нагрузку не прибегая к хардкору. Примеры будут на Go. Эти подходы довольно хорошо известны, но как мне кажется они недооценены и многие этими подходами пренебрегают. Если вы впервые видите их, то рекомендую хотя бы попробовать реализовать в своих проектах и провести бенчмарки, возможно вы будете приятно удивлены..

Читать далее
Всего голосов 32: ↑28 и ↓4+24
Комментарии5

i18n в Go: работа с переводами — Часть 1

Время на прочтение14 мин
Количество просмотров5.9K

Недавно мне впервые довелось создавать полностью интернационализированное (i18n) и локализированное (L10n) веб-приложение, в котором я задействоал набор пакетов Go golang.org/x/text. Я обнаружил, что пакеты и инструменты, собранные в golang.org/x/text, невероятно полезны и очень хорошо спроектированы. Однако мне было довольно сложно понять, как объединить все это вместе в реальном приложении.

В этом руководстве я постараюсь объяснить, как вы можете использовать golang.org/x/text для работы с переводами в вашем приложении.

Читать далее
Всего голосов 13: ↑10 и ↓3+7
Комментарии3

Программирование и ДНК

Время на прочтение10 мин
Количество просмотров5.9K

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

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии8

Предотвращаем утечки памяти в Go, ч. 2. Особенности рантайма

Время на прочтение14 мин
Количество просмотров14K

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

Читать далее
Всего голосов 84: ↑83 и ↓1+82
Комментарии8

DDD в Go: натягивание совы на глобус?

Время на прочтение8 мин
Количество просмотров14K

Как-то раз я сидел в баре с давним приятелем, с которым раньше мне довелось поработать на поза-поза-позапрошлой работе. Он из сомневающихся по поводу перехода на Go, ярый приверженец своего нынешнего языка. Хочу сказать, что он делает действительно классные вещи, пишет безупречный код, у него есть, чему поучиться. Но к Go у него отношение не слишком позитивное. Как он сказал: “Go — это *****код (плохой код)”. И в качестве одного из аргументов привел то, насколько, по его мнению, криво в Go реализована обработка ошибок. В чем-то он прав — в моем текущем не самом большом проекте на Go конструкция “if err != nil” встречается 1132 раза.


Этот мой приятель, не побоюсь этого слова — адепт DDD (domain driven design). Все, что не относится к DDD, — это, по его мнению, антипаттерн, ад и хаос. Когда я ему рассказал, что у меня есть довольно успешный опыт проектирования по DDD в Go-проектах, он округлил глаза. Да, ответил я, с определенной серией оговорок и компромиссов это работает, и неплохо.


Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии42

YouTube Vanced больше нет. Но есть ReVanced

Время на прочтение8 мин
Количество просмотров157K


Статья навеяна этой новостью на Хабре


Печальные новости о проекте YouTube Vanced. Гугл потребовал закрытия проекта и удаления готовых дистрибутивов. Разработчики подчинились. Поэтому больше YouTube Vanced с официального сайта не скачать. Возможно есть где-нибудь на зеркалах, но надо быть осторожным. В дистрибутиве могут быть вредные присадки.

Читать дальше →
Всего голосов 41: ↑41 и ↓0+41
Комментарии97

Что читать Golang-разработчику. Семь главных книг: от Донована и Кернигана до МакДауэлл

Время на прочтение7 мин
Количество просмотров24K

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

В МойОфис мы широко используем Go в качестве основного языка для разработки корпоративной почты нового поколения Mailion. При этом разрабатываем на нём не только микросервисы, но и собственное хранилище с поддержкой дедупликации (про устройство Mailion читайте здесь). В связи с этим мы постоянно следим за книжными новинками и актуальными темами современной бэкенд-разработки. Специальной литературы по теме Golang существует немало, однако с помощью наших разработчиков мы выбрали самые важные, профессионально полезные и увлекательно написанные издания.

Делимся рекомендациями книг под катом!

Открыть подборку книг
Всего голосов 28: ↑22 и ↓6+16
Комментарии7

Собеседование Golang разработчика (теоретические вопросы), Часть II. Что там с конкурентностью?

Время на прочтение20 мин
Количество просмотров62K

Что спрашивают на собеседовании Golang разработчика? Асинхронщина? Контексты? Вторая часть статьи с вопросами и ответами, собранными на собеседованиях.

Читать далее
Всего голосов 18: ↑16 и ↓2+14
Комментарии19

Информация

В рейтинге
1 888-й
Зарегистрирован
Активность