Честный подход к управлению людьми, или Почему я никогда не делаю контрофферы

Автор: admin от 22-01-2018, 22:05, посмотрело: 116

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



Честный подход к управлению людьми, или Почему я никогда не делаю контрофферы



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



Пару слов о себе. Я CTO в сервисе Яндекс.Здоровье, отвечаю за всю его техническую часть: разработку, тестирование, эксплуатацию и т. д. Сервис растёт стремительными темпами, мы активно расширяем команду, собеседуем технарей (разработчиков, тестировщиков, админов) и в большом количестве приглашаем их на работу. Время от времени случается, что хорошие кандидаты отказываются от подтверждённого ими на словах оффера. В большинстве случаев, расспросив кандидата, мы узнаём, что на текущей работе ему или ей сделали встречное «предложение, от которого нельзя отказаться», и оно звучит вкуснее и интереснее, чем наше.

Категория: Операционные системы » Linux

 

Про ошибки и исключения

Автор: admin от 22-01-2018, 22:05, посмотрело: 113

Про ошибки и исключения


В прошлый раз я разобрал два примера (раз, два), как можно перейти от императивной валидации входных значений к декларативной. Второй пример действительно «слишком много знает» про аспекты хранения и имеет подводные камни (раз, два). Альтернатива – разбить валидацию на 3 части:




  • Модел байндинг: ожидали int, пришел string – возвращаем 400

  • Валидация значений: поле email, должно быть в формате your@mail.com, а пришло 123Petya – возвращаем 422

  • Валидация бизнес-правил: ожидали что корзина пользователя активна, а она в архиве. Возвращаем 422



  • К сожалению стандартный механизм байндинга ASP.NET MVC не различает ошибки несоответствия типа (получили string вместо int) и валидаци, поэтому если вы хотите различать 400 и 422 коды ответа, то придется это сделать самостоятельно. Но речь не об этом.


    Как слой бизнес-логики может вернуть в контроллер сообщение об ошибке?



    Самый распространенный по мнению Хабра способ (раз, два, три) – выбросить исключение. Таким образом между понятием «ошибка» и «исключение» ставится знак равно. Причем «ошибка» трактуется в широком смысле слова: это не только валидация, но и проверка прав доступа и бизнес-правил. Так ли это? Является ли любая ошибка «исключительной ситуацией»? Если вы когда-нибудь сталкивались с бухгалтерским или налоговым учетом, то наверняка знаете, что существует специальный термин «корректировка». Он означает, что в прошлом отчетном периоде были поданы неверные сведения и их необходимо исправить. То есть в сфере учета, без которой бизнес не может существовать в принципе, ошибки – объекты первого класса. Для них введены специальные термины. Можно ли назвать их исключительными ситуациями? Нет. Это нормальное поведение. Люди ошибаются. Программисты — просто чересчур оптимистичный народ. Мы просто никогда не снимаем розовых очков.
    Читать статью полностью желаешь

    Категория: Операционные системы » Linux

     

    Опыт построения логов на Postgres

    Автор: admin от 22-01-2018, 22:05, посмотрело: 129

    Мы разработали свою систему логирования на PostgreSQL… Да я знаю, что есть надстройки над ElasticSearch (GrayLog2, Logstash), и что есть другие похожие инструменты, и есть те, про которые не знаю. Тем не менее, наш инструмент на текущий момент построен на PostgreSQL, и он работает.



    Во время рабочей недели со всех сервисов СБИС в облаке к нам поступает в сутки более 11 млрд записей, хранятся они 3 дня, общий объем занимаемого при этом места не превышает 32 Тб. Все это обрабатывает 8 серверов с PostgreSQL 9.6. Каждый сервер имеет 24 ядра, RAM 16Гб и 4 SSD диска по 1Тб.



    Опыт построения логов на Postgres

    Категория: Операционные системы » Linux

     

    Новое поколение сетей: представлена первая спецификация 5G

    Автор: admin от 22-01-2018, 22:05, посмотрело: 104

    В конце декабря консорциум 3GPP официально объявил о завершении спецификации для пятого поколения мобильных сетей — 5G.



    Однако это лишь первая часть официального документа, которая описывает стандарт 5G New Radio (NR) для развертывания 5G-сетей на базе существующей LTE-инфраструктуры (non-standalone). Вторая часть спецификации для создания сетей на автономной инфраструктуре (standalone) ожидается в этом году.



    Подробнее о спецификации и особенностях стандарта расскажем далее.



    Новое поколение сетей: представлена первая спецификация 5G

    Категория: Операционные системы » Linux

     

    Лабораторная работа: введение в Docker с нуля. Ваш первый микросервис

    Автор: admin от 22-01-2018, 22:05, посмотрело: 139

    Привет, хабрапользователь! Сегодня я попробую представить тебе очередную статью о докере. Зачем я это делаю, если таких статей уже далеко и не одна? Ответов здесь несколько. Во-первых не все они описывают то, что мне самому бы очень пригодилось в самом начале моего пути изучения докера. Во-вторых хотелось бы дать людям к теории немного практики прямо по этой теории. Одна из немаловажных причин — уложить весь накопленный за этот недолгий период изучения докера (я работаю с ним чуть более полугода) в какой-то сформированный формат, до конца разложив для себя все по-полочкам. Ну и в конце-концов излить душу, описывая некоторые грабли на которые я уже наступил (дать советы о них) и вилы, решение которых в докере просто не предусмотрено из коробки и о проблемах которых стоило бы задуматься на этапе когда вас расприет от острого желания перевести весь мир вокруг себя в контейнеры до осознавания что не для всех вещей эта технология годна.



    Что мы будем рассматривать в данной статье работе?



    В Части 0 (теоретической) я расскажу вам о контейнерах, что это и с чем едят

    В Частях 1-5 будет теория и практическое задание, где мы напишем микросервис на python, работающий с очередью rabbitmq.

    В Части 6 — послесловие

    Категория: Операционные системы » Linux

     

    Я ненавижу константы в Ruby

    Автор: admin от 22-01-2018, 21:40, посмотрело: 90

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



    Несмотря на заголовок, гнева в посте не будет.

    Категория: Программирование » Веб-разработка

     

    Постигаем Си глубже, используя ассемблер. Часть 3

    Автор: admin от 22-01-2018, 13:10, посмотрело: 88

    В третьей статье мы продолжим разбирать условия. В прошлый раз мы так и не посмотрели оптимизированные версии if-else.

    Категория: Информационная безопасность

     

    ГК InfoWatch подвела итоги года

    Автор: admin от 22-01-2018, 13:10, посмотрело: 180

    Деятельность группы компаний (ГК) InfoWatch в 2017 году подарила такое количество интересных событий, что только их официальное изложение потребовало бы издать небольшую книжку объемом чуть более 300 страниц. К счастью для издателей, а также для тех, кто не всегда успевает следить за нашими новостями, мы уменьшили объем излагаемого материала примерно в 100 раз и представляем вашему вниманию только самые важные факты из жизни компании в уходящем году.



    Развитие бизнеса



    Оборот бизнеса компании растет высокими темпами уже пять лет подряд. В 2016 финансовом году выручка ГК InfoWatch превысила 1,5 млрд рублей, а число проектов внедрений DLP-решений увеличилось на треть.



    ГК InfoWatch подвела итоги года

    Категория: Информационная безопасность

     

    Серия #notNULL — Twig

    Автор: admin от 22-01-2018, 12:50, посмотрело: 107

    Приветствую, Хабрасообщество!



    Давно я забросил переводы тех. литературы по Objective-C / Swift и несколько непереведённых глав из Core Data остались далеко в черновиках. Однако любовь к переводам, разработке и обучению не угасла — изменился подход и мысли о том, как можно всё это упаковывать и организовывать.



    Я влюбился в формат обучающих видео.Серия #notNULL — Twig

    Категория: Программирование

     

    Принцип работы потокового шифра с примерами на C#. От Одноразового блокнота до потокового шифра на основе хеш-ф-и и CTR

    Автор: admin от 22-01-2018, 12:50, посмотрело: 136

    По ходу статьи, развивая идею «Одноразового блокнота», «изобретем» потоковый шифр на основе хеш-функции. Узнаем, что такое Counter Mode Encription CTR.



    Знание терминов «хеш-функция» и «Одноразовый блокнот» для чтения не обязательно.



    Одноразовый блокнот



    В «Одноразовом блокноте» шифротекст получается путем наложения ключа на открытый текст. Наложение можно сделать, например, с помощью побитового XOR: каждый бит открытого текста XOR-ится с соответствующим (таким же по порядку) битом ключа.



    Принцип работы потокового шифра с примерами на C#. От Одноразового блокнота до потокового шифра на основе хеш-ф-и и CTR


    Рис 1. Каждый бит открытого текста XOR-ится с таким же по порядку битом ключа

    Категория: Программирование, Информационная безопасность, Криптография

     
    Назад Вперед