Как стать автором
Обновить
1
0

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

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

Resume и CV: в чём разница и как откликнуться на иностранную вакансию

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

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

Методисты курсов по английскому в Практикуме объяснили разницу между CV и resume — в США, Европе и Великобритании эти слова означают разные вещи. А ещё поделились общим алгоритмом составления «резюме» и посоветовали, как грамотно заполнить все разделы.

Читать далее
Всего голосов 8: ↑5 и ↓3+4
Комментарии1

Postman: почтальон на страже API

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

Привет! Меня зовут Бальцер Вадим, я QA-инженер в команде android направления Банки.ру. Сегодня поделюсь нашим опытом внедрения автотестов обратной совместимости и интеграции их в CI. 

В материале расскажу: 
1) зачем нашей команде понадобились автотесты для контроля обратной совместимости API, почему мы выбрали Postman CI.
2) с чего начали: базовые вещи + полезные советы для начинающих.
3) есть ли жизнь за гранью проверок схемы.
4) CI и интеграция с ТестОпс.
5) к чему пришли и какие перспективы видим.

Также добавлю примеры примеры кода и небольшие советы, которые могут пригодиться, если вы еще только присматриваетесь к Postman как к инструменту автоматизации проверок API.

Читать далее
Всего голосов 13: ↑12 и ↓1+13
Комментарии2

Транзакции в БД на Go с использованием многослойной архитектуры

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

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

Однажды, я столкнулся с инцидентом на проде и обратился за помощью к самому опытному инженеру. Он пришел на помощь и с легкостью изменил значение в БД с помощью... ручного обновления. 🤯 Проблема заключалась в том, что набор SQL-обновлений не был выполнен внутри транзакции.

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

SQL кажется чем-то, что мы все хорошо знаем, и мало чем может удивить. (Ему уже 50 лет!) Возможно, пришло время пересмотреть подходы, так как мы уже прошли фазу хайпа по поводу NoSQL, и снова возвращаемся к “используйте просто Postgres”, а иногда и к “SQLite тут за глаза”.

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

Основной принцип многослойной архитектуры заключается в разделении критически важных частей кода (логики) от деталей реализации (например, SQL-запросов). Одним из способов достижения такого разделения является паттерн «Репозиторий». Однако, наиболее сложным аспектом такой архитектуры является обработка транзакций.

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

Шаблоны проектирования для баз данных

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

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

СУБД является неотъемлемой частью хоть сколько‑нибудь серьезного современного приложения. Соответственно, при проектировании приложения может возникнуть вопрос, как лучше сервисам взаимодействовать с базой данных: предоставляя общий доступ к одной базе или же у каждого микросервиса должна быть своя база данных. Мы рассмотрим два шаблона, предназначенных для решения данной задачи — это Shared database и Database per Microservice. Начнем с Shared database.

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

Как начать читать на английском и не бросить на 3-й странице

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

У меня есть приятель. Он венгр, по профессиональной надобности учит русский. Когда мы познакомились, он гордо предъявил мне 1-ю книгу, которую начал читать на русском. Там была…  (барабанная дробь!) сказка про лисичку.

Сюжет я не помню, но слова, которые он перевел и выписал, навсегда остались в моей памяти – печка, колодец, метла, ведро и глаголы типа «затопить». Очень полезная лексика, не так ли?

Я не знаю, кто придумал, что взрослым людям, которые только начали учить язык, надо читать детские книги. Ну типа язык простой (царевич, лягушка, терем), и сюжет увлекательный – вам же очень хочется перечитать «Приключения Тома Сойера» в 30 лет, правда?

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

Некоторые отчаянные головы берутся сразу за Чарльза нашего Диккенса и Джейн Остин. Как будто с конца 19-го века американские, британские, австралийские авторы ничего достойного не написали. Сами носители языка считают Диккенса сложным автором, и понятно, таким языком уже никто не говорит.

ДИСКЛЕЙМЕР: все, что я скажу дальше, написано для тех, кто однажды начал читать в оригинале, перевел 1-ю страницу и бесславно дезертировал. Если вы получаете удовольствие от английской классики, ничего полезного из этого поста вы не узнаете.

А что читать, если

...вы только начали учить язык

Прогулите Graded Readers, и вам откроется новый увлекательный мир. Graded Readers – это такие тоненькие книжки, специально для тех, кто только начинает учить язык. Они называются graded, потому что поделены на уровни.

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

Невероятная история Эда Торпа: как один математик смог обыграть сначала казино, а потом и весь Уолл-стрит

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

Если среди физиков настоящей легендой безумных жизненных историй был Ричард Фейнман, то среди математиков и инвесторов этот титул должен по праву принадлежать Эдварду Торпу. Чувак смог не только обуть казино сразу в двух считавшихся ранее «непобедимыми» играх, но и заработать $800 млн на фондовом рынке благодаря идее, достойной Нобелевки.

Читать далее
Всего голосов 215: ↑211 и ↓4+245
Комментарии77

Распределенные транзакции для самых маленьких

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

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

Читать далее
Всего голосов 18: ↑14 и ↓4+15
Комментарии10

«Учить язык в подавленном состоянии — непродуктивное занятие»: 10 лайфхаков для изучения английского

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

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

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

Баги, которые мы пишем, ищем и исправляем #2

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

Привет! Меня зовут Денис, я — разработчик ПО SEDMAX. Это промышленное ПО для сбора и визуализации данных в энергетике. Как и у всех, у нас бывают баги. Мне бы хотелось поделиться опытом в поиске таких багов, а также порассуждать на тему того, что необходимо было сделать, чтобы баг не появился. У нас серверная часть написана на go в виде некоторого множества сервисов, поэтому специфика большинства багов будет асинхронное взаимодействие, а код примеров представлен на go.

В прошлой статье были сделаны следующие выводы:

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

Выжимаем из Go максимум производительности

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

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

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

Читать далее
Всего голосов 76: ↑74 и ↓2+87
Комментарии40

От Firebase к Self-Hosted

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

Приложению cara.app пришёл счет от Vercel на 96280$. Многие стартапы начинают с Vercel и Firebase, затем из нежелания платить гуглу уходят на свои сервера

Поговорим с нюансами про стэк технологий и оценим усилия на миграцию на свои сервера. Разберём на примере Go с k8s и инфраструктурой мониторинга, но без Firebase (Github)

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

Как и зачем создавать кастомные сборщики мусора в Go

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

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

Здесь нам и помогут кастомные сборщики мусора.

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

MapReduce на Go: превратите ваши большие данные в понятную карту и удобный редьюс

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

Часто задается вопрос: как эффективно и быстро обработать огромные объемы информации? Ответом на этот вызов стала концепция MapReduce, разработанная в недрах Google.

MapReduce — это парадигма программирования, созданная для обработки и генерации больших объемов данных с использованием параллельных распределенных алгоритмов. Основная фича проста: сначала данные разбиваются на небольшие части (фаза Map), а затем результаты этих частей агрегируются в финальный результат (фаза Reduce).

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

Докеризация сборки проекта на всех уровнях

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

Всем привет, на связи Вадим Макеров, бэкенд‑разработчик iSpring. Успешная воспроизводимая сборка проекта является критическим фактором в поддержке и развитии проекта. При большом количестве проектов и технологических стеков гарантировать воспроизводимость сборки — «собралось однажды, соберется всегда» — сложнее.

О том, как реализовать идемпотентность сборки, я рассказывал в рамках митапа в офисе iSpring в 2023 году. Эта статья — текстовая версия моего доклада.

Читать про контейнеризацию сборки
Всего голосов 8: ↑8 и ↓0+10
Комментарии7

Ошибки в языке Go — это большая ошибка

Время на прочтение3 мин
Количество просмотров18K
// гофер пытается найти логику среди обработки ошибок
+-------+-------+-------+-------+-------+-------+
|       |  err  |       |  err  |       |  err  |
|  ,_,,,        |       |       |       |       |
| (◉ _ ◉)       |       |       |       |       |
|  /)  (\               |       |       |       |
|  ""  ""               |       |       |       |
+       +-------+       +-------+       +-------+
|       |  err          |  err  |       |  err  |
|       |               |       |       |       |
|       |               |       |       |       |
+-------+       +-------+       +-------+       +
|  err  |               |  err                  |
|       |               |                       |
|       |               |                       |
+       +-------+       +       +-------+       +
|       |  err  |               |  err  | logic |
|       |       |               |       |       |
|       |       |               |       |       |
+-------+-------+-------+-------+-------+-------+

Я пишу на Go несколько лет, в Каруне многие вещи сделаны на нём; язык мне нравится своей простотой, незамысловатой прямолинейностью и приличной эффективностью. На других языках я писать не хочу.


Но сорян, к бесконечным if err != nil я до конца привыкнуть так и не смог.


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

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

Быстрый старт: Docker + SMTP + Java/Go

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

Не так давно у меня появилась необходимость на нескольких проектах сделать регистрацию с подтверждением email, так же хотелось минимизировать затраты и исключить лишние телодвижения, так сказать методом ctrl+c ctrl+v, без танцев с бубном. Так же нам не нужно принимать почту и прочее, просто отправка, не более

P.s. Для прожженных отцов разработки ничего нового тут не будет

Итак, поехали ;-)

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

Создание Framework для Go: Вдохновение от Laravel

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

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

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

Летнее чтение на английском: список книг по уровням и советы методистов

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

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

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

Читать далее
Всего голосов 23: ↑21 и ↓2+21
Комментарии25

Go + Minio: как написать простой сервер для взаимодействия с файлами

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

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

Если вы только изучаете go, начинаете писать сервера, то обязательно посмотрите эту статью - для бекендера уметь работать с s3 хранилищем так же важно, как и уметь работать с реляционной / нереляционной базой данных и с key-value базой - это основа основ.

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

# Casbin — легко о сложном в авторизации

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

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

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

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

Информация

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