Pull to refresh
3
0

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

Send message

Рецепт полезного код-ревью от разработчика из Яндекса

Reading time9 min
Views47K



Привет. Меня зовут Сергей, последние пять лет я работаю в Яндексе. За это время участвовал в разработке одиннадцати проектов. Писал код на JavaScript, Python и C++. Некоторые проекты делал в одиночку, другие разрабатывал в группе из восьми человек. Но в каждой команде, на всех проектах, вне зависимости от языка программирования я использовал код-ревью.


С помощью код-ревью я постоянно узнаю что-то новое. Иногда, глядя на чужой код, хочется воскликнуть: "А что, так тоже можно?". В чужом коде я нахожу интересные приёмы и беру их себе на вооружение. Много новых знаний черпаю из комментариев к моему коду. Для меня стало открытием, что люди любят делиться своим опытом. Даже когда я разрабатываю проект в одиночку, то прошу ребят из другой команды посмотреть мои пулреквесты. Это мотивирует писать красивый и понятный код.


Но так было не всегда. Когда-то ревью было для меня наказанием. Я мог неделю с вдохновением писать код, вкладывая в него все силы. Отправлял пулреквест, трижды пинговал ревьювера, а в ответ получал сухое "вроде ок" или, что ещё хуже, десятки комментариев не по существу.


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


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

Читать дальше →
Total votes 77: ↑68 and ↓9+59
Comments172

Вы и ваша работа *

Reading time40 min
Views817K
Длинный материал. Время чтения – около 40 минут.

image

Доктор Ричард Хэмминг, профессор морской школы Монтерея в штате Калифорния и отставной учёный Bell Labs, прочёл 7 марта 1986 года очень интересную и стимулирующую лекцию «Вы и ваши исследования» переполненной аудитории примерно из 200 сотрудников и гостей Bellcore на семинаре в серии коллоквиумов в Bell Communications Research. Эта лекция описывает наблюдения Хэмминга в части вопроса «Почему так мало учёных делают значительный вклад в науку и так многие оказываются в долгосрочной перспективе забыты?». В течение своей более чем сорокалетней карьеры, тридцать лет которой прошли в Bell Laboratories, он сделал ряд прямых наблюдений, задавал учёным очень острые вопросы о том, что, как, откуда, почему они делали и что они делали, изучал жизни великих учёных и великие достижения, и вёл интроспекцию и изучал теории креативности. Эта лекция о том, что он узнал о свойствах отдельных учёных, их способностях, чертах, привычках работы, мироощущении и философии.
Читать дальше →
Total votes 239: ↑229 and ↓10+219
Comments127

Настройка домашней среды для разработки (docker + gitlab + DNS)

Reading time5 min
Views35K

Intro


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


У большинства из нас есть какие-нибудь мелкие личные поделки, которые не выходят за рамки наших домов. Кто-то хостит их на рабочем компьютере, кто-то — на Heroku, кто-то — на VPS, а у кого-то есть домашний сервер. На реддите даже есть сообщество r/homelab, в котором люди обсуждают разные железки и софт для т.н. домашней лаборатории.


Я не настолько увлечен этим вопросом, но у меня дома стоит Intel NUC, который проигрывает музыку с NAS с помощью MPD. Помимо MPD на нем крутятся мои мелкие поделки, которые помогают мне с ним работать: ныне мертвый бот для телеграма, HTTP API на синатре и корявенький фронтенд для него.


В посте я без особых подробностей (многих из которых сам не понимаю) опишу процесс установки DNS-сервера для работы с доменными именами для сервисов, схему одновременной работы нескольких сервисов с помощью Docker и установку Gitlab с CI. Ничего нового вы не узнаете, но вдруг кому-нибудь пригодится этот "гайд". К тому же я бы хотел услышать предложения по поводу того, как можно было бы сделать это проще/элегантнее/правильнее.

Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments21

Песочница и шпаргалка по изучению Python

Reading time3 min
Views53K

Изучать Python3 я начал с документации на официальном сайте. Мне понравились примеры кода, но, к сожалению, они были там не интерактивными. Хотелось попробовать выполнить код самостоятельно, с разными входными данными и посмотреть на выводимый результат. Так же мне лично легче запоминаются конструкции языка, если я их набрал несколько раз вручную. Python консоль для этого подходит отлично, но хотелось так же иметь своего рода шпаргалку, к которой можно было бы вернуться при написании программ в дальнейшем, если, например, возникнет вопрос, как в Python-е написать цикл for и т.п. И последней каплей стало желание автоматической проверки стиля написания кода в соответствии с существующими стандартами. Читать и вникать в них было лень, поэтому хотелось чтобы проверка кода была автоматической и подсказывала какие ошибки я делаю и как их исправить.


В итоге все свои эксперименты я вылил на GitHub.


Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments20

CSRF-уязвимости все еще актуальны

Reading time14 min
Views77K
CSRF (Сross Site Request Forgery) в переводе на русский — это подделка межсайтовых запросов. Михаил Егоров (0ang3el) в своем докладе на Highload++ 2017 рассказал о CSRF-уязвимостях, о том, какие обычно используются механизмы защиты, а также как их все равно можно обойти. А в конце вывел ряд советов о том, как правильно защищаться от CSRF-атак. Под катом расшифровка этого выступления.


О спикере: Михаил Егоров работает в компании Ingram Micro Cloud и занимается Application security. В свободное время Михаил занимается поиском уязвимостей и Bug hunting и выступает на security-конференциях

Дисклаймер: приведенная информация является сугубо мнением автора, все совпадения случайны.


В том, что CSRF-атаки работают виноват этот Cookie-монстр. Дело в том, что многие веб-приложения используют куки (здесь и далее считаем уместным называть cookies по-русски) для управления сессией пользователя. Браузер устроен так, что, если у него есть куки пользователя для данного домена и пути, он их автоматически отправляет вместе с HTTP-запросом.
Total votes 54: ↑54 and ↓0+54
Comments20

Практический видеокурс Школы информационной безопасности

Reading time3 min
Views34K
Нет смысла лишний раз напоминать, почему при разработке сервисов важно уделять внимание безопасности. Поговорим о том, как строить системы защиты, поддерживать их в актуальном состоянии и развивать с увеличением числа угроз. Довольно много практических знаний по этой теме можно получить из интернета. Теория, в свою очередь, неплохо освещается в нескольких российских вузах. Есть и множество полезной литературы. Но хорошего специалиста по безопасности отличает не просто знание инструментов и теории, а способность применять теорию в реальных ситуациях.

В апреле этого года мы впервые провели бесплатную Школу информационной безопасности. Лекции в школе подготовили и прочитали сотрудники службы ИБ Яндекса — те специалисты, которые непосредственно отвечают за защиту наших продуктов. Мы получили более 700 заявок, 35 человек успешно закончили школу, 9 из них получили офферы в Яндекс (7 — на позицию стажёра, 2 — на штатную позицию).

Сегодня мы публикуем видеокурс со всеми лекциями Школы. Вы можете почерпнуть те же знания, что и студенты — разве что интерактива поменьше и не нужно делать домашнее задание. Для просмотра стоит знать хотя бы один язык программирования (JS, Python, C++, Java), на начальном уровне разбираться в принципах построения и работы веб-приложений, понимать принципы работы операционных систем и сетевой инфраструктуры, а также основные типы атак и виды уязвимостей.


Надеемся, этот курс прокачает вас в роли специалиста по ИБ, а также поможет защитить ваши сервисы от утечек данных и атак злоумышленников.
Total votes 23: ↑23 and ↓0+23
Comments3

Небольшие трюки с Elasticsearch

Reading time7 min
Views15K
Небольшая заметка, скорее для себя, о мелких трюках по восстановлению данных в Elasticsearch. Как починить красный индекс если нет бэкапа, что делать если удалил документы, а копии не осталось — к сожалению в официальной документации об этих возможностях умалчивают.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments5

Splunk How-to, или Как и где научиться Splunk

Reading time4 min
Views14K


В этой статье мы хотим поделиться с вами полезными материалами и ресурсами, с помощью которых можно научиться работать в Splunk. Понятно, что самый лучший опыт — это участие в проектах и набивание собственных шишек на практике, но все таки теория тоже важна. В этой статье мы расскажем как и где лучше изучать Splunk.
Total votes 16: ↑15 and ↓1+14
Comments2

Интересности и полезности python

Reading time6 min
Views41K
Я уже несколько лет программирую на python, однако, недавно осознал, что множество полезных приёмов и интересных моментов прошли мимо меня, возможно, я не один такой, поэтому решил перечислить их здесь, надеюсь, данные приёмы пригодятся кому-то в работе или побудят познакомиться с этим языком поближе.
Читать дальше →
Total votes 53: ↑49 and ↓4+45
Comments44

Основы повышения привилегий в Windows

Reading time10 min
Views50K
Решил для себя и для тех, кому будет полезно, собрать все что знаю, но не помню по теме, в этой статье. Делитесь советами. Основным источником этой статьи является эта.

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

В общем, тут представлены способы, которые помогут нам достигнуть цели повышения привилегий.
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments13

Мониторинг Elasticsearch без боли и страданий

Reading time10 min
Views41K
«А оно там делает магию»
кто-то из тех, кого я удалённо консультировал по Эластику.

Я всегда говорю, что верю в три вещи: мониторинг, логи и бэкапы.

Тема про то, как мы собираем и храним логи, достаточно полно была раскрыта в предыдущих статьях, тема про бэкапы в Elasticsearch — совсем отдельная история, поэтому в этой, возможно заключительной, статье цикла я расскажу как происходит мониторинг моего любимого кластера. Это не очень сложно (и не требует использования дополнительных плагинов и сторонних сервисов) — ибо REST API, предоставляемое самим Elasticsearch простое, понятное и удобное в использовании. Всего-то надо немного углубиться в его внутреннее устройство, понять, что означают все эти метрики, пулы тредов, веса распределения шардов по нодам, настройки очередей — и не останется никаких вопросов о том, что же за «магию» эластик делает прямо сейчас.



На недавней конференции Highload++ 2017 я рассказал о том, как строил кластер своей мечты, и говорил, что недостаточно просто построить сервис. Критически важно в любой момент знать, в каком он состоянии, причём контроль обязательно должен быть многоуровневым. Разбудите меня посреди ночи (отделу мониторинга привет!) — и через две минуты я буду знать, в каком состоянии находится кластер. Причём одна минута из двух уйдёт на подключение к корпоративному VPN и логин в Zabbix.
Так как же мы это делаем?
Total votes 28: ↑27 and ↓1+26
Comments7

Искусство подбирать чужие пароли

Reading time8 min
Views40K

В культовом фильме начала двухтысячных «Пароль «Рыба-меч» талантливому хакеру необходимо подобрать пароль в течение одной минуты. В этом ему помогает приятель, который заботливо держит пистолет у виска и темпераментная блондинка, прячущаяся под столом. Что делать, если таких друзей поблизости нет, а пароль подобрать необходимо? Например, в ходе тестирования на проникновение…



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

Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments65

Девять граблей Elasticsearch, на которые я наступил

Reading time7 min
Views73K
Автор иллюстрации — Anton Gudim


«Подготовленный человек тоже наступает на грабли.
Но с другой стороны — там, где ручка.»


Elasticsearch — прекрасный инструмент, но каждый инструмент требует не только настройки и ухода, но и внимания к мелочам. Некоторые — незначительны и лежат на поверхности, а другие спрятаны так глубоко, что на поиск уйдет не один день, не один десяток кружек кофе и не один километр нервов. В этой статье расскажу про девять замечательных граблей в настройке эластика, на которые я наступил.
Давайте приступим
Total votes 59: ↑58 and ↓1+57
Comments69

Как Яндекс готовит фронтендеров. От программы на Coursera до курсов в университете

Reading time4 min
Views17K
Мы в Яндексе не только много работаем с фронтендом, но и делимся своим опытом с другими. За шесть лет преподавательской практики мы запустили разные форматы обучения, о которых сегодня расскажем читателям Хабра.

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



Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments11

SOC – это люди. «Алло, мы ищем таланты» или откуда берутся аналитики центра мониторинга и реагирования на кибератаки

Reading time7 min
Views7.8K
Сегодня даже беглый поиск по hh.ru выдает около 90 разных по задачам и функционалу вакансий с магическим словом «аналитик» и довольно приличными условиями оплаты. Перед глазами многих кандидатов сразу проплывают большие данные и машинное обучение, зарплата начинает плясать сильно выше рынка и заигрывать нулями. Так кто же такие аналитики центра мониторинга, «отвечающие за то, чтобы заказчика не взломали»? Чем они занимаются и что нужно знать и уметь, чтобы попасть на эту позицию?


Читать дальше →
Total votes 28: ↑24 and ↓4+20
Comments4

Научитесь создавать собственные команды bash менее чем за 4 минуты

Reading time4 min
Views22K
В этой статье я научу вас создавать собственные псевдонимы команд bash, а также как одновременно запускать несколько команд с помощью одной команды bash.

TL;DR В первой части описывается, почему псевдонимы — это так важно, сколько времени они экономят и т.д., но, если вы просто хотите узнать, как создать собственные псевдонимы, то перейдите к шагу 1.


Читать дальше →
Total votes 37: ↑21 and ↓16+5
Comments29

Новая техника атаки WPA2, не требующая наличия клиента на AP

Reading time3 min
Views83K
image

 
Участниками проекта hashcat обнаружен новый вектор атаки на беспроводной стандарт WPA2, не требующий классического перехвата "рукопожатия" между клиентом и точкой доступа. Данная уязвимость выявлена в рамках исследования потенциальных проблем безопасности нового протокола WPA3.

Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments50

Английская грамматика как математика. С чего начать тем, у кого не сложилось

Reading time6 min
Views43K
Английская грамматика – удивительна своей простотой. Её очень сложно не любить: почти всё логично, структурировано, понятно, если знать (конечно). Это не русский, где можно что угодно сказать как угодно, но и в этом есть свой шарм. Поэтому мне всегда кажется, что людям с математическим складом ума природа просто кричит в ухо, что английский надо учить и для них это просто. Полно конечно всяких исключений, куда без них, но в общей массе всё логично.
Допустим, решились, нашли какую-то мотивацию. Так как же начать, с чего подойти? С алфавита? С неправильных глаголов? С произношения? Можно как угодно подходить, но, если ваша цель заговорить, правильнее всего будет подойти к преподавателю. Если к преподавателю лично подойти не можете, подойдите сюда.

Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments52

Страх и ненависть Threat Intelligence или 8 практических советов по работе с TI

Reading time7 min
Views9K


У нас было две коммерческих APT-подписки, десять информационных обменов, около десяти бесплатных фидов и список exit-node Тора. А еще пяток сильных реверсеров, мастер powershell-скриптов, loki-scanner и платная подписка на virustotal. Не то чтобы без этого центр мониторинга не работает, но если уж привык ловить сложные атаки, то приходится идти в этом увлечении до конца. Больше всего нас волновала потенциальная автоматизация проверки на индикаторы компрометации. Нет ничего более безнравственного, чем искусственный интеллект, заменяющий человека в работе, где надо думать. Но мы понимали, что с ростом количества заказчиков мы рано или поздно в это окунемся.
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments8

Как я осилил английский

Reading time13 min
Views349K
Всем привет. Я – айтишник «за 30», и я люблю английский язык. Так получилось, что на протяжении многих лет английский никак не хотел полюбить меня. Перед вами живой пример человека с «плохой памятью», «неспособностью к языкам», богатейшим опытом неудачного изучения английского как на курсах, так и самостоятельно, упущенными из-за незнания языка шансами и возникшими на этой почве комплексами. Все, что можно было сделать в изучении иностранного языка плохо, я попытался сделать еще хуже. Не смотря на все это, перед вами история с хэппи эндом, которая, верю, поможет кому-то избежать глупых ошибок, сэкономить время, избавится от иллюзий и предрассудков по поводу изучения нового языка с около нулевого уровня.
Читать дальше →
Total votes 155: ↑151 and ↓4+147
Comments256

Information

Rating
Does not participate
Registered
Activity