В нашем сервисе мониторинга и анализа PostgreSQL доступ к серверам осуществляется по протоколу SSH. В качестве ssh-клиента мы используем популярный модуль SSH2 , однако при передаче данных большого объема этот модуль вносит существенные задержки в event loop. Как их можно снизить - расскажем в этой статье.
Марковевед
Любимая задачка на знание React
Всем привет! Меня зовут Олег и я fullstack-программист в компании Тензор. Опыт в разработке, без малого, 20 лет (как-то раз батя спаял на кухне ZX Spectrum и все заверте..., сам не понял как так вышло). В данный момент являюсь тимлидом собственной команды разработчиков, которая периодически нуждается в пополнении толковыми программистами.
Как и многие руководители, я активно принимаю участие в подборе сотрудников для себя и помогаю на собесах коллегам соседних отделов.
Наша команда занимается разработкой веб-приложения на React. Соответственно, мне важно найти программистов уверенно владеющих основами (!) этого фреймворка. Есть много способов проверки компетенций на собеседовании, один из любимых - задача по написанию hook для загрузки данных.
Если вы тоже в вечном поиске классных фронтендеров или сами часто проходите собесы - велком в эту статью :)
Простой саботаж в мире ПО
В кульминационный момент Второй мировой войны ЦРУ выпустило потрясающую книгу Simple Sabotage. В ней изложены различные способы, которыми диверсанты могут снижать продуктивность компании. Некоторые из этих советов не стареют, например, раздел «Общие помехи организациям и производству»:
1. Настаивайте на том, чтобы всё выполнялось через «каналы». Не допускайте того, чтобы для ускорения реализации решений выбирались кратчайшие пути.
2. Делайте «доклады». Говорите как можно чаще и пространнее. Иллюстрируйте свои «идеи» долгими историями из жизни и ссылайтесь на личный опыт. С готовностью делайте «патриотические» комментарии.
3. По возможности отправляйте все вопросы в комитеты для «более глубокого изучения и рассмотрения». Стремитесь делать комитеты как можно больше, не менее чем из пяти членов.
4. Как можно чаще поднимайте вопросы о несущественных проблемах.
5. Спорьте о чётких формулировках в общении, протоколах, резолюциях.
6. Возвращайтесь к темам, по которым было принято решение на последнем совещании, и пытайтесь повторно открыть вопрос о целесообразности этого решения.
7. Советуйте «быть аккуратными». Будьте «разумны» и подталкивайте других участников совещаний к «разумности», к тому, чтобы они избегали спешки, которая может в будущем вызвать неудобства или сложности.
8. Беспокойтесь о правильности каждого решения, поднимайте вопрос о том, будет ли рассматриваемое действие относиться к юрисдикции группы или оно может вызвать конфликт с политикой какого-то более высокого эшелона.
Меня всегда поражало, насколько хорошо эти советы прошли проверку временем.
Управление требованиями
Что такое управление требованиями, как оно устроено, и почему приходится им заниматься? Уже давно стало ясно, что для преуспевания компании недостаточно просто иметь товар и продавать его. Продукт должен быть востребованным и удобным для потребителя. А позже появилось понимание, что продукт требует каких-то сервисов, что необходим переход к сервисной модели. Более того, потребитель хочет не владеть товаром, а пользоваться им. Отсюда — арендные или подписочные модели.
Как ответить на вопрос «Когда будет готово?» на основе статистики
Всем привет! Я Анастасия Жадринская, деливери-менеджер в Тинькофф. Да, эта статья опять про оценки и сроки выполнения задач. Сроки без вуду, астрологии, гаданий и привлечения экспертов. В статье рассмотрю метод Монте-Карло — элегантный и простой в применении математический подход для прогнозирования сроков завершения проектов или объема выпуска задач.
Ethers js — основы
Всем привет!
Сегодня я хотел бы разобрать, как можно взаимодействовать с блокчейном в javascript приложениях. Мы будем двигаться к этой задаче планомерно, чтобы разобрать весь процесс взаимодействия с блокчейном. Разбирать будет на примере библиотеки ethers. Чуть ниже вы можете ознакомиться с содеражнием и выбрать интересующий вас раздел.
Event Loop в деталях
В данной статье поговорим о том, почему Event Loop вообще был создан, как с ним работать и почему про него спрашивают на собесах.
JS был спроектирован как однопоточный язык программирования. Это значит, что он может выполнять только одну операцию одновременно. Тем не менее у JavaScript есть такой механизм как Event Loop, который как раз и позволяет выполнять "асинхронные" операции. Почему "асинхронные" в кавычках? Да просто потому что JavaScript тоже выполняет их синхронно, асинхронности в самом JavaScript как таковой нет. Вперед под кат, будем разбираться)
Полный релиз бесплатного интерактивного 700-страничного учебника по тестированию
Гуд ньюз эвриван! Спустя полтора года работы восьми айтишников с суммарным опытом в IT 130 лет достигнут результат в виде учебника по тестированию, которого еще никто и никогда не делал.
Как определить стоимость технически-сложного продукта?
Всем привет, меня зовут Максим Гусев!
Каждому человеку хоть раз в жизни приходила в голову гениальная бизнес или продуктовая идея. Если Вы уже придумали идею продукта или решили предложить новый проект своему руководству, как определить его стоимость? Что делать если проект находится на концептуальной стадии или проект/продукт настолько уникален, что такой тип работ никогда в мире не проводился? Как оценить то, чего ещё не было? Как оценить решение проблем, с которыми ты ещё не столкнулся? Как оценить и не промахнуться в несколько раз?
Я руководитель международных проектов (PMP) и портфелей (PfMP) с реализованными проектами в Турции, Арабских Эмиратах, Германии, Франции, России и Беларуси. С более чем 10-летним опытом управления проектами и 4-летним опытом разработки автономных транспортных средств/робототехники и сегодня я хочу Вам рассказать об определении стоимости технически сложных продуктов и проектов.
Пишем на Питоне сразу хорошо
Привет Хабр!
Сегодня я сниму костюм аниматора и вместо развлечений расскажу вам немного за питон.
Я довольно посредственный программист, но иногда мне удаётся усыпить что-нибудь бдительность, и меня считают сеньором. И вот как-то так получилось, что я стал делать много код ревью. Просматривая файл за файлом, я вдруг увидел, что люди и проекты меняются, а вот моменты, к которым я, зануда такая, придираюсь, остаются теми же. Поэтому я решил собрать самые частые паттерны в эту сумбурную статью и надеюсь, что они помогут вам писать более чистый и эффективный питон-код.
Python декораторы на максималках. Универсальный рецепт по написанию и аннотированию от мала до велика
Декорирование функций - это, наверное, самая сложная среди базовых и самая простая среди продвинутых фич языка Python. С декораторами, наверное, знакомы все джуны (хотя бы в рамках подготовки к собеседованиям). Однако, крайне мало разработчиков пишут их правильно. Особенно принимая во внимания тенденции последних нескольких лет к аннотированию всего и вся. Даже популярные open-source проекты (если основная часть их кода была написана до 2018 года) вряд ли дадут вам примеры декораторов, отвечающих всем современным требованиям к коду.
Так давайте разбираться!
Материал полностью написан на основе моего опыта по работе над OSS проектами, поэтому в нем вы найдете примеры достаточно сложных кейсов, которые никогда не рассматриваются в других подобных гайдах. В то же время я постарался подвести к ним максимально "мягко", чтобы было понятно даже начинающим питонистам.
В рамках статьи мы разберемся с декорированием функций в Python от простого к самому сложному. Рассмотрим, как их правильно писать и аннотировать, чтобы другие потребители вашего кода не страдали от близкого знакомства с ним. Уверен, что даже если вы чрезвычайно опытный разработчик, вы найдете для себя полезные советы (хотя и можете пропустить солидную часть материала).
Я люблю питон, и вот почему он меня бесит
Вас приветствует ваш зануда!
Если вы следите за моей ленивой активностью, то заметили бы, что у меня много от чего пригорает. Вот, например:
- У меня пригорает от низкосортных статей на потоке: Питон против Безумного Макса, или как я посты на Хабре замораживал
- У меня пригорает от Django: Окей, Джанго, у меня к тебе несколько вопросов
- И от Яндекса тоже: Собеседование в Яндекс: театр абсурда :/
- И от рекрутеров: Я единственный из 1400, или самый крутой рекрутинг, что я проходил
Посмотришь так - я уже давно должен был сгореть. Но я, аки феникс, возрождаюсь, и сегодня у меня горит от, внезапно, Питона, на котором я пишу больше десяти лет. Если вам интересно, что же, по моему мнению, с ним не так - то прошу под кат.
Обработка больших и очень больших графов
Однажды ко мне обратилась одна крупная фруктовая телефонная компания с просьбой подготовить для них курс по Apache Spark продвинутого уровня, и в нем обязательно должен быть раздел про обработку графов (Neo4j не предлагать). На тот момент я знал про классические алгоритмы обработки графов на базе DFS (поиск в глубину) и BFS (поиск в ширину). При этом неотъемлемым условием применения того или иного подхода является локальная поддержка стека (DFS) или очереди (BFS). Следовательно, классические алгоритмы можно применять для обработки графов, которые умещаются в память одной машины.
В современном мире данные накапливаются очень быстро, и классические подходы, ориентированные на обработку графов в рамках одной машины, перестают работать, а значит высока потребность в алгоритмах распределенной обработки графов. Интуитивно можно предположить, что необходимо разбивать граф на части, но каким образом и как потом их собирать вместе?
Рутина продакта: путешествие из ХЗ в ТЗ
Привет, Хабр! Я Кристина — продакт-менеджер компании Selectel. В статье расскажу, как мы строим гипотезы и проверяем потенциальную полезность и выгоду от фичей до того, как на их реализацию будут потрачены долгие годы.
Статья будет наиболее интересна тем, кто только начинает свой путь в продакт-менеджменте или работает в продуктовой команде разработки и хочет узнать, чем занимаются вечно пропадающие на встречах продакты. Однако, даже если вы уже зрелый продакт, вы с большой вероятностью найдете для себя что-то полезное и применимое в работе.
Feature-Sliced Design – альтернативный подход к организации кода приложений
Feature-Sliced Design — это архитектурная методология, активно набирающая популярность в последнее время. И не зря: организация разработки по её правилам позволяет упростить процессы, сделать их быстрее и гибче. Больше не нужно будет переживать из-за совместной работы в одном домене и конфликтов кода, долго искать ответ на вопрос «А куда же впилить новую фичу, тут и так намешано…»
О том, как устроена Feature-sliced Design, чем она отличается от «классической» организации кода, плюсах и минусах от её внедрения — в этой статье.
«Возьмите инициативу на себя»: готовимся к System Design Interview
Рассказываем, для чего в Авито проводят интервью по System Design, чего от него ожидать и что нужно знать, чтобы его успешно пройти.
Определение области коллизии
Поиск контактных точек коллизии
Одна из важных тем при разработке своего физического движка - нахождение контактных точек. Применение этим данным масса - от определения центра удара, до построения градиента приложенных сил.
Давайте же посмотрим как это сделать!
Begin /* Техническое интервью
Может быть я сейчас залезу немного не на свою территорию и вызову тем самым возмущение определенных специалистов, но есть в этом определенная цель. Может быть я таким образом получу ответ на вопрос: вы кого ищете то с такими интервью? Я не специалист по прохождению и уж тем более по проведению технического интервью, но с точки зрения логики и по косвенным признакам складывается стойкое ощущение, что большинство исполняет их по какой-то дурацкой кальке ничуть не задумываясь о целях и результатах, которые предполагаются.
Смотрите, понятно, что всё зависит от позиции, должности, требований к квалификации. Нет одинаковых интервью, нет одинаковых интервьюеров. Однако цель то всегда одна - найти подходящего специалиста. А не выставить оценку в зачетной книжке, и уж тем более не поблистать собственным умом или самоутвердиться за счет кандидатов.
Опыт прохождения интервью у меня лично небольшой. Как-то так выходило, что меня до сих пор брали сразу. Может везло, может претензий у меня было меньше. Таким образом я не могу говорить за всех. С другой стороны, можно примерно догадываться о том, какие вопросы задают на технических собеседованиях по многочисленным роликам и шпаргалкам. Примерная суть разговоров понятна, и что важнее, она подтвердилась на примере пары известных организации. Более того есть разные статьи на данную тему, есть даже специальные люди, которые не безвозмездно натаскивают кандидатов.
В итоге получается ситуация весьма похожая на выпускные или вступительные экзамены в школе или в вузе. Есть набор типовых, часто совершенно несвязанных с реальностью, вопросов, на которые человеку надо ответить в каком-то диапазоне верных вариантов. А раз есть такой набор, то есть и способы и тактики к ним подготовиться. В общем, если не ходить вокруг да около, типовое техническое интервью отбирает кандидатов, которые специально к этому подготовились.
Принципы по улучшению QA процессов в Agile команде
Построение правильного процесса тестирование очень важно. Это помогает сделать в целом весь процесс разработки более стабильным и предсказуемым, уменьшить нагрузку на тестировщиков, расширить тестируемое покрытие и самое главное уменьшить количество багов на проде. В этой статье хочу рассказать по каким правилам (принципам) мы следовали для построения QA процесса, какой смысл в них вкладывался и как они были реализованы.
Information
- Rating
- Does not participate
- Location
- Уфа, Башкортостан(Башкирия), Россия
- Works in
- Date of birth
- Registered
- Activity