Search
Write a publication
Pull to refresh
1
0

User

Send message

Эффективные Практики Подготовки к Code Review

Level of difficultyEasy
Reading time6 min
Views8.9K

В этой статье мы исследуем эффективные практики для разработчика, отправляющего свой код на ревью. Эти практики не только упростят жизнь ревьюеру, но и помогут извлечь максимальную пользу из этого опыта и значительно сократят time‑to‑market.

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

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

Читать далее

Kubernetes: шпаргалка для собеседования

Level of difficultyEasy
Reading time10 min
Views51K
Всем привет! Меня зовут Олег, я работаю исполнительным директором по разработке в Газпромбанке. На разных этапах карьеры я участвовал во многих собеседованиях, а в настоящее время сам собеседую кандидатов на должность инженеров DevOps и системных администраторов в Газпромбанке, вследствие чего у меня сформировалось некоторое представление о вопросах, которые могут быть заданы соискателям. И сейчас я хочу остановиться на разделе вопросов про Kubernetes.

image

Сразу хочу сказать, что изначально планировал сделать одну статью, но в итоге получилась такая простыня, что пришлось разделить текст на две части. Ссылку на вторую опубликую здесь, как только она появится (вот она).

Вопросы по Kubernetes достаточно часты на собеседованиях на инженерные вакансии, связанные с администрированием и эксплуатацией. Они могут варьироваться от базовых, рассчитанных на механическую проверку теоретических знаний («объясните, что такое service») до более сложных и комплексных, требующих глубинного понимания внутренних принципов Kubernetes и работы (каким образом опубликовать приложение, развёрнутое в Kubernetes). Давайте пойдём от базы в направлении возрастания сложности.
Читать дальше →

Важные аспекты Unicode, о которых должен знать каждый разработчик JavaScript

Level of difficultyMedium
Reading time22 min
Views12K


Должен признаться: на протяжении очень долгого времени я испытывал страх перед Unicode. Когда была необходимость в работе с Unicode, я предпочитал искать альтернативные пути решения, поскольку не совсем понимал, что делаю.


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


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


Как оказалось, Unicode — это универсальный и удобный стандарт, но работать с ним может быть непросто из-за множества абстрактных терминов.


Если у вас есть пробелы в понимании Unicode, то сейчас самое подходящее время их заполнить! Заварите себе вкусный чай или кофе ☕. И давайте погрузимся в удивительный мир абстракций, символов, астралов (astrals) и суррогатов (surrogates).


В этой статье объясняются основные концепции Unicode, которые создадут необходимую базу для работы с ним.


Вы также узнаете, как JavaScript взаимодействует с Unicode и какие трудности могут возникнуть на этом пути.


А также, каким образом новые функции из ECMAScript 2015 могут помочь в решении этих проблем.


Готовы? Давайте начнем!

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

CI/CD в каждый дом: сборочный цех базовых docker-образов

Level of difficultyMedium
Reading time11 min
Views17K

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

Последнее время DevOps и CI/CD де-факто стали повсеместным стандартом независимо от размера команды, в интернетах хватает статей, почему это важно, в чём собственно идея, полезных практик и других материалов. Я же решил подойти с несколько другой стороны и максимально доступным языком на практических примерах рассмотреть отдельные задачи и их решения в рамках концепции.

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

Кому, собственно, это может пригодиться? Я бы сказал, что почти кому угодно, кто хочет организовать ту компоненту CI/CD, которая отвечает за построение и релизный цикл базовых образов внутри инфраструктуры вашей компании или даже персональных проектов (зародился он именно в процессе приведения в порядок моих пет-проектов).

Какой практический пример может быть без публичного репозитория с MIT-лицензией? Если вам не интересно читать статью, то можно прямо из превью перейти по ссылке и напитаться кодом. Репозиторий же можно копировать как целиком, так и кусками, буду только рад, если он кому-нибудь пригодится. На любые вопросы — готов ответить в комментариях или issues.

Читать далее

Безопасный HTTPS-прокси менее чем за 10 минут

Reading time5 min
Views133K

Это руководство описывает развёртывание HTTPS-прокси с помощью dumbproxy на практически любом Linux-сервере. Потребуется только curl и рутовый доступ.

Читать далее

Интернет-цензура и обход блокировок: не время расслабляться

Reading time10 min
Views178K

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

Нередко на Хабре в темах, посвященных блокировкам ресурсов встречаются забавные заявления, вида "Я настроил TLS-VPN, теперь будут смотреть что хочу и цензоры мой VPN не заблокируют", "Я использую SSH туннель, значит все ок, не забанят же они SSH целиком", и подобное. Что ж, давайте проанализируем опыт других стран и подумаем, как же оно может быть на самом деле.

Читать далее

Уютный VPS-сервер для маленьких проектов: как настроить

Reading time17 min
Views67K

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

Если вам тоже хочется создать в сети свое личное пространство, но вы не знаете, с чего начать, или вам просто интересны такие замечательные программные продукты как Docker, Portainer, Traefik – добро пожаловать под кат.

Введение


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

Личный прокси для чайников: универсальный обход цензуры с помощью VPS, 3X-UI, Reality/CDN и Warp

Level of difficultyMedium
Reading time28 min
Views258K

> С 10 апреля 2024, 3 месяца спустя,
> данная статья заблокирована РКН на территории РФ,
> её также удалили с веб-архива archive.org.
> Статья на Хабре осталась доступна с IP других стран.
> Да, теперь, чтобы читать про ВПН, нужен ВПН.

На фоне прошлогоднего обострения цензуры в РФ, статьи автора MiraclePTR стали глотком свободы для многих русскоязычных айтишников. Я же хочу приоткрыть дверь к свободной информации чуть шире и пригласить «не‑технарей» («чайников»), желающих поднять личный прокси‑сервер для обхода цензуры, но дезориентированных обилием информации или остановленных непонятной технической ошибкой.

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

Статья рассчитана на «чайников», не знакомых с предметной областью. Однако и люди «в теме» могут найти нечто полезное (например, чуть более простую настройку проксирования через CloudFlare без необходимости поднимать nginx на VPS).

Если у вас ещё нет личного прокси для обхода цензуры — это знак.

Читать далее

Подбор цветов для палитры визуализации данных

Level of difficultyMedium
Reading time6 min
Views12K

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

Читать далее

Зачем? И весь ужас удара бритвой по Оккаму

Level of difficultyEasy
Reading time11 min
Views28K

Самое страшное слово для инноватора или очень уж упёртого студента, который проходит практику у вас в компании: «Зачем?»

Знаете почему? Потому что в 80% случаев ответа вам на этот вопрос не дадут. Давайте разберёмся, причём здесь Оккам и что ему от нас нужно.

Давай, приступай

Ода бесполезности споров

Level of difficultyEasy
Reading time6 min
Views37K

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

Традиционно начну издалека. Меня всегда интересовал вопрос: Почему ученые, раз такие умные, не вступают в дискуссии с обывателями, одержимыми разными лженаучными глупостями – ведь показать им истину не сложно: наука выработала многоженство инструментов, способных убедительно доказать любой спорный вопрос: от наличия законов Менделя на примере садовых мушек, до отмены «Новой Хронологии» через дендрохронологический анализ.

Сейчас я знаю ответ – переубедить сторонников лженаучных теорий невозможно. Но вовсе не потому, что они серьёзно заблуждаются. А в точности до наоборот – их невозможно переубедить, потому что они не заблуждаются вообще.

Рассмотрим это на историческом примере:

Как крысячить и выжить, или крысы бегут первыми с ИТ-корабля

Level of difficultyEasy
Reading time3 min
Views76K

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

Читать далее

Мамкин программист про ИИ, «программисты скоро будут не нужны» и прочие страшилки

Level of difficultyEasy
Reading time6 min
Views37K

Недавно на Хабре вышел перевод статьи под названием: «Классическое программирование на грани вымирания» с постапокалиптической картинкой, где автор буквально пишет, что «Приближается конец эпохи классических компьютерных наук, и большинство из нас словно динозавры в ожидании падения метеорита». Если коротко, данная статья о том, что классические компьютерные науки становятся менее актуальными на фоне развития искусственного интеллекта и современных технологий. Автор рассказывает о своем опыте в области компьютерных наук, полученном в 80-х и 90-х годах, и подчеркивает, что, несмотря на то что классические подходы к программированию и алгоритмам всё еще актуальны, но в будущем (горизонт автор не указывает), скорее всего, ИИ с самообучаемыми системами заменит программистов. В будущем студентам факультетов компьютерных наук не нужно будет изучать традиционные навыки, такие как работа с двоичными деревьями или программирование на С++, обучение таким вещам станет неактуальным, потому что от инженеров будущего будет требоваться обучение и запуск генеративных моделей.

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

Читать далее

Проектирование аналога Google Docs

Level of difficultyEasy
Reading time8 min
Views14K

Google docs – это сервис для совместного редактирования документов. В целом подобные сервисы можно спроектировать двумя способами:

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

Большинство коммерческих решений ориентированы на клиент-серверный подход ввиду предоставляемого им более детального контроля. Так что и мы в этой статье разберём проектирование сервиса с использованием именно клиент-серверной архитектуры.
Читать дальше →

Мой опыт собеседования в Google [оффер на L5]

Level of difficultyEasy
Reading time8 min
Views58K

Предупреждение: я не смогу привести в статье конкретные вопросы из-за подписанного соглашения о неразглашении (NDA).

Работая в лондонском офисе Facebook в команде Instagram*, я начал задумываться о возвращении в Индию. В ноябре 2022 года со мной связался рекрутер Google. Он сообщил об открытии в Бангалоре должности уровня L5 и спросил, интересно ли мне это.

Так как я уже раздумывал о переезде в Индию, то ранее собеседовался в Google, но мне предложили более низкую должность (L4), чем я хотел; потом я устроился в META* на уровень E5.

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

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

На этот раз в процессе подготовки возникла уникальная для меня сложность — счастливое пополнение в моей семье, дочка. За моё внимание боролись подгузники и кодинг, было очень сложно выделить время на сосредоточенную подготовку! У меня было примерно 25-30 дней на освоение и искусства ухода за ребёнком, и прохождения собеседования.
Читать дальше →

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

Level of difficultyEasy
Reading time9 min
Views63K


Этим летом ко мне приезжал погостить дальний родственник из небольшого городка. Полюбоваться на белые ночи и разведенные мосты, а заодно — пообщаться вживую с коллегами по удаленной работе. Мы оба айтишники, и я не был удивлен тем, что у нас отыскалось много общих интересов. Гораздо больше меня поразили различия в нашем отношении к привычным технологиям: порой складывалось ощущение, что мой гость и я — обитатели разных планет. Я решил разобраться в причинах этого явления, и чем больше погружался в изучение вопроса, тем сильнее убеждался: мне очень многое неизвестно о жизни таких же, как я сам, технарей за пределами мегаполисов.
Читать дальше →

Lesta Studio и её тестовое задание с подвохом

Level of difficultyEasy
Reading time6 min
Views45K

Искали статеечку с жалобами джуна о несправедливости IT? Так вот же она!

Открытая к интерпретации история собеседования.

Читать далее

Смерть от тысячи микросервисов

Level of difficultyEasy
Reading time10 min
Views80K

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

Читать далее

Внутренний Я(ндекс)

Level of difficultyEasy
Reading time8 min
Views113K

В этой статье я хочу описать (часть) моего опыта взаимодействия со структурой, именуемой в дальнейшем «яндекс», с точки зрения работника. Опишу собеседования и этап «входа».

Да, уже были статьи про собеседование и даже в эту же структуру, некоторые из них я видел, но не во всём с ними согласен, к тому же конкретно С++ разработчиков я там не видел.

Читать далее

Как опубликовать свое первое приложение на Django и не упасть духом. Гайд для выпускников курсов

Level of difficultyEasy
Reading time14 min
Views18K

Я закончил курсы "Fullstack разработчик на Python" от одной известной компании. Обучение завершено успешно, но не было ощущения полноценности — на курсах не учили, как сделать самостоятельно деплой приложения на Django. И никто из студентов не задавался эти вопросом 😁

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

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

Как запустить Django и не потерять время

Information

Rating
Does not participate
Registered
Activity