Pull to refresh
-6
0
Send message

Уровни изолированности транзакций для самых маленьких

Reading time5 min
Views274K


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

Немного теории


Сами транзакции особых объяснений не требуют, транзакция — это N (N≥1) запросов к БД, которые выполнятся успешно все вместе или не выполнятся вовсе. Изолированность же транзакции показывает то, насколько сильно влияют друг на друга параллельно выполняющиеся транзакции.
Выбирая уровень транзакции, мы пытаемся прийти к консенсусу в выборе между высокой согласованностью данных между транзакциями и скоростью выполнения этих самых транзакций.
Стоит отметить, что самую высокую скорость выполнения и самую низкую согласованность имеет уровень read uncommitted. Самую низкую скорость выполнения и самую высокую согласованность — serializable.
Читать дальше →

Как работать вне офиса и не сойти с ума

Reading time6 min
Views18K
В последние годы полностью удаленные компании, такие как GitLab, Zapier и InVision, доказали, что культура удалённой работы — это не просто привилегия, но и явное преимущество для бизнеса. Кроме того и некоторые UI/UX дизайн-агенства использую практику удаленной работы. И развитие технологий лишь ускоряет этот переход. Мы можем мгновенно общаться в Slack или других мессенджерах, скоординировать глобальную видеоконференцию через Zoom и отслеживать всю нашу дорожную карту проекта в Asana.

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

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

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


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

Бесплатная трансляция DotNext и HolyJS

Reading time5 min
Views3.6K


6 ноября, то есть уже завтра, начнется конференция DotNext 2019 Moscow. Это два дня докладов для .NET-разработчиков: хардкор, низкоуровневые подробности, максимальный перформанс, best practices, архитектура и так далее.

А сразу следом за ней, 8 и 9 ноября, состоится конференция HolyJS 2019 Moscow. Это два дня бесконечного фронтендерского веселья.

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

За ссылками и подробностями ныряйте под кат.
Читать дальше →

Какие soft skills нужны разработчику? Мнения из Яндекса

Reading time7 min
Views22K
Скоро начнется большая студенческая олимпиада «Я — профессионал». Она уже несколько лет проходит в онлайне и офлайне. Участвовать могут студенты самых разных специальностей, включая технические. Олимпиаду организуют 26 ведущих вузов: НИУ ВШЭ, МГУ, МГТУ, МФТИ, МИФИ, СПбГУ, Университет ИТМО и другие.

Яндекс — технический партнер проекта. Для нас «Я — профессионал» уже второй год подряд становится хорошим поводом поговорить про важность софт-скиллз (гибких навыков) в работе разработчиков и других специалистов. Год назад в нашем московском офисе прошла встреча для участников олимпиады, посвященная софт-скиллам. Говорил о них и руководитель офиса разработки Яндекса в Новосибирске Сергей Бражник, выступая на тренинге, входящем в программу «Я — профессионал». Сегодня Сергей и еще двое руководителей в Яндексе — Анна Федосова и Олег Мохов Olegbl4 — расскажут для Хабра о гибких навыках: какие они бывают, какие из них нужны разработчику, где их получать и как их наличие сказывается на росте в компании.

Сергей Бражник, руководитель офиса разработки в Новосибирске, директор по развитию региональных образовательных проектов




— Для разработчика важны «4К»: критическое мышление, креативность, кооперация и коммуникация. Принято считать, что коммуникация в этой профессии — не важный навык, но если задуматься, он необходим для профессионального роста: нужно уметь задавать вопросы, слушать и слышать собеседника, объяснять свою точку зрения и принимать чужую, говорить и договариваться. Стажер может не уметь работать в команде или критически мыслить — и это нормально, потому что у него еще нет такого бэкграунда.
Читать дальше →

DevOps — всё

Reading time5 min
Views24K
[Этот материал представляет собой перевод серии твитов Майкла ДеХана, одного из создателей популярного движка автоматизации Ansible — прим.перев.]

Итак, у opsmop — та же проблема с графиком принятия и вовлечения, что и у vespene_io, и я также не вижу смысла продолжать. Я упорно верю в саму идею, но думаю, что целый мир IT с открытыми исходниками выгорел, а я устал пытаться заинтересовать людей.
Читать дальше →

Введение в Git

Reading time17 min
Views160K

Оглавление


Предисловие
1. Настройка git
....1.1 Конфигурационные файлы
....1.2 Настройки по умолчанию
....1.3 Псевдонимы (aliases)
2. Основы git
....2.1 Создание репозитория
....2.2 Состояние файлов
....2.3 Работа с индексом
....2.4 Работа с коммитами
....2.5 Просмотр истории
....2.6 Работа с удалённым репозиторием
3. Ветвление в git
....3.1 Базовые операций
....3.2 Слияние веток
....3.3 Rerere
4. Указатели в git
....4.1 Перемещение указателей
5. Рекомендуемая литература

Предисловие


Git — самая популярная распределённая система контроля версиями.[1][2]

Основное предназначение Git – это сохранение снимков последовательно улучшающихся состояний вашего проекта (Pro git, 2019).
Читать дальше →

Универсально храним настройки приложения через IConfiguration

Reading time7 min
Views5.6K
image

В рамках разработки продукта Docs Security Suit мы столкнулись с задачей хранения множества разнотипных настроек приложения как в БД, так и в конфигах. Да и еще так, чтобы их можно было удобно читать-писать. Здесь нам поможет интерфейс IConfiguration, тем более, что он универсальный и удобный для использования, что позволит хранить всевозможные настройки в одном месте
Читать дальше →

Основы DevOps. Вхождение в проект с нуля

Reading time16 min
Views29K
В ноябре 2018 года в ЛитРес создали отдел информационного обеспечения и пригласили руководить Андрея Юмашева. Последний год отдел помогает компании работать и развиваться и держит под контролем всю инфраструктуру. Но так было не всегда. Перед тем, как наладить работу, Андрей столкнулся с руинами: полуживой Nagios, условно живой Cacti и коматозный Puppet, мертвая Вики на 120 страниц, несвязные таблицы с задачами и списком железа, устаревшая архитектура, 340 бездействующих ядер, 2 Тбайта оперативной памяти и 17 Тбайт дискового пространства, которые почему-то не были записаны в инвентарных таблицах. Планы, которые не работают, сроки, которые срываются, рабочее окружение и инструменты, которых нет — все это ждало Андрея в новом проекте.



На DevOpsConf 2019 Андрей выступил с докладом, в котором на живых примерах показал, что стоит, а что не стоит делать, когда входишь в проект, которого еще не видел или плохо знаешь. Под катом дополненная версия рассказа — как правильно анализировать спектр проблем и выстроить план деятельности, как правильно рассчитать KPI и когда следует вовремя остановиться.

Советы для кандидатов от программиста, проводящего собеседования в Facebook

Reading time7 min
Views11K


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

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

ДА вздрогнет FAANG* или [практическое руководство] по поиску работы в США/Европе для айтишника

Reading time5 min
Views24K
*FAANG — акроним 5 крупнейших tech компаний (Facebook, Apple, Amazon, Netflix and Google), предоставляющих одни из самых хороших возможностей для разработчиков, которые мечтают/планируют/хотят приобщиться к волне IT-эмиграции.

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

К сожалению, на практике подобный процесс поиска работы часто заканчивается неудачами. Сайты со списком вакансий — один из самых низкоэффективных способов, по крайней мере в США.

Под катом я поделюсь практическими рекомендациями, которые помогут «твикнуть» систему и существенно увеличить шансы на получение предложения от топ-компаний в сжатые сроки.

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

Микросервис на GO для граббинга видео из твитов

Reading time4 min
Views7.1K

Добрый день, Хабравчане! Статья для новичков, каких то сверх новых идей вы здесь не увидите. Да и данный функционал, скорее всего, реализовывался десятки раз на различных языках. Идея состоит в том, что бы получив ссылку на пост в твиттере в котором содержится видео, забрать это видео и конвертировать в mkv.

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

Простые методы оптимизации программ Go

Reading time11 min
Views16K
Я всегда забочусь о производительности. Точно не знаю, почему. Но меня просто бесят медленные сервисы и программы. Похоже, я не одинок.

В тестах A/B мы попытались замедлять выдачу страниц с шагом 100 миллисекунд и обнаружили, что даже очень небольшие задержки приводят к существенному падению доходов. — Грег Линден, Amazon.com

По опыту, низкая производительность проявляется одним из двух способов:

  • Операции, которые хорошо выполняются в небольших масштабах, становятся нежизнеспособными с ростом числа пользователей. Обычно это операции O(N) или O(N²). Когда база пользователей мала, всё работает отлично. Продукт спешат вывести на рынок. По мере роста базы возникает всё больше неожиданных патологических ситуаций — и сервис останавливается.
  • Много отдельных источников неоптимальной работы, «смерть от тысячи порезов».
Читать дальше →

Один день из жизни разработчика

Reading time4 min
Views14K


В прошлой статье мы рассказали о том, как проходит обычный день нашего системного инженера. Сегодня же расскажем про один день из жизни нашего разработчика. Добро пожаловать под кат.
Читать дальше →

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

Reading time6 min
Views88K
image

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

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

Зачем я об этом пишу? Мой интерес прост – чтобы классные ребята находились легче, чем это получается сейчас :)
Читать дальше →

Непрерывное профилирование в Go

Reading time7 min
Views8.5K

pprof — основной инструмент профилирования в Go. Профилировщик включен в стандартную библиотеку Go и про него, за годы, написано уже очень много. Чтобы подключить pprof в существующее приложение нужно просто добавить одну строчку кода:


import _ “net/http/pprof”

В HTTP-сервере по-умолчанию — net/http.DefaultServeMux — по пути /debug/pprof/ будут зарегистрированы обработчики, отдающие результаты профилирования.


curl -o cpu-profile.pb.gz http://<server-addr>/debug/pprof/profile

(подробнее см. https://godoc.org/net/http/pprof)


Но по опыту, не всегда все так просто и на практике с использованием pprof в бою, есть подводные камни.

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

Делаем из Vim-а конфетку

Reading time17 min
Views154K

Вы под давлением коллег или сокурсников из более успевающих групп решились на отчаянный шаг, способный разделить вашу жизнь на период "до" и "после" (прошли vimtutor), и теперь не знаете что делать с вашими новообретёнными способностями? А может вы всё ещё сидите в какой-нибудь IDE и в ус не дуете зачем вам "эти ваши программистские блокноты" и "какой-то там Vim"? Тогда присаживайтесь поудобнее и налейте себе лимонад, сейчас я вам всё по полочкам разложу.


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

Внутренности Go: оборачиваем переменные цикла в замыкании

Reading time9 min
Views25K


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


А еще я хотел бы пригласить вас на Golang Conf 2019, которая пройдет 7 октября в Москве. Я член программного комитета конференции, и мы с коллегами выбрали много не менее хардкорных и очень, очень интересных докладов. То, что я люблю!


Под катом передаю слово автору.

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

Автостопом по DevOps с Экспресс 42

Reading time4 min
Views4.1K
DevOps уже у всех на слуху, но DevOps-трансформация для многих еще похожа на путешествие в неизведанный космос. Сегодня хочу рассказать о партнерстве, которое помогает нам самим исследовать эту вселенную и прокладывать надежный путь для других.

Все началось в 2015-м году, когда мы, Экспресс 42, совместно с Онтико воссоздали конференцию RootConf. Формально направление конференции значилось как «Профессиональная конференция по эксплуатации и DevOps», но фактически на докладах в основном обсуждали задачи системного администрирования.

В 2018-м стало понятно, что в мире, где Dev и Ops живут в одном общем процессе, конференция только про системное администрирование уже неактуальна. Тогда мы начали постепенно менять формат конференции. Теперь наша конференция обо всем, что касается DevOps — от Kubernetes, до обсуждения изменения процессов и эффективного обмена знаниями.



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

Теория и практика стандартизации Docker-сервисов

Reading time17 min
Views6.8K

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



Источник изображения:


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

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

Полное практическое руководство по Docker: с нуля до кластера на AWS

Reading time39 min
Views1.8M



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


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



Ого! Как много информации.

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

Information

Rating
Does not participate
Registered
Activity