Введение в теорию социального дна
Теория социального дна - неофитами воспринимается в штыки. Как и Апостолы и миссионеры Христа (забрасываемые камнями, изгоняемые из городов, сажаемые на колья и.т.д) - несущие свет в сообщество разработки программного обеспечения не бывают встречены с распростертыми объятиями.
Причина прозаична - смотреть на свое отражение в зеркале и наблюдать там отвратительное и страшное существо не приятно. Куда веселее забраться на самокат и укатить в даль своего прекрасного офиса.
Целью данного блога является всестороннее освещение теории социального дна и процессов, происходящих внутри пищеварительного тракта индустрии разработки программного обеспечения. В компаниях от кровавого энтерпрайза до безумия разработки игр.
И если непосредственно кодеркам, данный ресурс позволит понять и переосмыслить свое место в мире (что вряд ли), то людям которых безжалостная петля кармы связала с ними - понять, что нужно теперь делать и узнать рецепт невероятной «харьковской двойной ухи»
Теория социального дна - неофитами воспринимается в штыки. Как и Апостолы и миссионеры Христа (забрасываемые камнями, изгоняемые из городов, сажаемые на колья и.т.д) - несущие свет в сообщество разработки программного обеспечения не бывают встречены с распростертыми объятиями.
Причина прозаична - смотреть на свое отражение в зеркале и наблюдать там отвратительное и страшное существо не приятно. Куда веселее забраться на самокат и укатить в даль своего прекрасного офиса.
Целью данного блога является всестороннее освещение теории социального дна и процессов, происходящих внутри пищеварительного тракта индустрии разработки программного обеспечения. В компаниях от кровавого энтерпрайза до безумия разработки игр.
И если непосредственно кодеркам, данный ресурс позволит понять и переосмыслить свое место в мире (что вряд ли), то людям которых безжалостная петля кармы связала с ними - понять, что нужно теперь делать и узнать рецепт невероятной «харьковской двойной ухи»
👍3🔥1
Лучшее место для пароля - в грейлоге или кибане
Добро пожаловать в 2019 и в замечательную семью разработчиков ПО. Пташки (с насеста в коворкинге, конечно-же) нашептывают о чрезвычайных событиях на сайте "альбом лиц". Невероятным образом оказалось, что все ваши пароли не видны никому вне facealbum.com.
> As part of a routine security review in January, we found that some user passwords were being stored in a readable format within our internal data storage systems. This caught our attention because our login systems are designed to mask passwords using techniques that make them unreadable. We have fixed these issues and as a precaution we will be notifying everyone whose passwords we have found were stored in this way.
Это событие лучшим способом иллюстрирует профессионализм так называемых разработчиков. Ведь совершенно не важно, сидите ли вы на берегу Ганга, Байкала, Москва-реки или Западного побережья. В любом случае вы ведете себя как ребёнок, для которого никогда и ничего страшного не случится.
По результатам заявления никого не уволили. Ну или не сообщили об этом. Уверен люди допустившие утечку паролей в открытый доступ для всей компании на хорошем счету, успешно решают алгоритмические задачки и при увольнении (даже если оно случилось) благодаря закрытости информации найдут себе работу с повышением в должности и зарплате.
Тем временем мест где это может происходить огромное количество:
* логирование;
* обработка исключительных ситуаций с коллектом стектрейсов;
* записи в базах данных;
* аудит-логи;
* противо-хоббитовая система (anti fraud);
* анти-спам система.
И если это происходит у лидеров рынка, представьте градус безумия у всех остальных.
Добро пожаловать в 2019 и в замечательную семью разработчиков ПО. Пташки (с насеста в коворкинге, конечно-же) нашептывают о чрезвычайных событиях на сайте "альбом лиц". Невероятным образом оказалось, что все ваши пароли не видны никому вне facealbum.com.
> As part of a routine security review in January, we found that some user passwords were being stored in a readable format within our internal data storage systems. This caught our attention because our login systems are designed to mask passwords using techniques that make them unreadable. We have fixed these issues and as a precaution we will be notifying everyone whose passwords we have found were stored in this way.
Это событие лучшим способом иллюстрирует профессионализм так называемых разработчиков. Ведь совершенно не важно, сидите ли вы на берегу Ганга, Байкала, Москва-реки или Западного побережья. В любом случае вы ведете себя как ребёнок, для которого никогда и ничего страшного не случится.
По результатам заявления никого не уволили. Ну или не сообщили об этом. Уверен люди допустившие утечку паролей в открытый доступ для всей компании на хорошем счету, успешно решают алгоритмические задачки и при увольнении (даже если оно случилось) благодаря закрытости информации найдут себе работу с повышением в должности и зарплате.
Тем временем мест где это может происходить огромное количество:
* логирование;
* обработка исключительных ситуаций с коллектом стектрейсов;
* записи в базах данных;
* аудит-логи;
* противо-хоббитовая система (anti fraud);
* анти-спам система.
И если это происходит у лидеров рынка, представьте градус безумия у всех остальных.
Борьба за жизнь в верхних слоях атмосферы
Замечательная история, демонстрирующая яркий пример одного из аспектов философии социального дна.
Наша диспозиция - крупный магазин с облачным доменным именем - кислород.ру. Так уж получилось, что пока в мире дикого капитализма прорастал непонятный (наверняка наполненный змеями) Амазон, в России вырос заоблачный "кислород".
Но беда кислорода была типичной для бизнеса из нулевых годов. Платформа на С#, хранилище данных на MS SQL. А там где есть база данных и энтерпрайзный стек (да не будем лукавить - любой стек), появляются любители запихнуть в базу данных вершину эволюции работы с ней - хранимые процедуры.
Проблема с хранимыми процедурами проста и она одна - данная процедура это код, для которого скорее всего (а для нулевых полностью так) отсутствует возможность протестировать его малыми тестами. А раз так, значит крупный бизнес оказывается гигантом на глиняных ногах - с определенного момента с каждой новой итерацией (привет аджайл и спринты) темп внедрения функционала снижается и в какой-то момент становится нулевым.
Хранимые процедуры же становятся основным катализатором этого процесса, как и полное отсутствие автоматизированных средств гарантирующих работоспособность функционала продукта. А наш дорогой кислород.ру тестировал свой огромный продукт с большим оборотом и продажами - ручками несчастных девочек.
На минуточку - настоящие компании внедряли культуру тестирования в команды, но российские гиганты рынка, вместо того чтобы создавать облачные платформы, внедрять свое влияние по всему миру и снимать фильмы - превращались в непреодолимое болото наполненное дерьмом.
Но история компании "Портал", описанная неким Ашмановым, многому нас научила. Настоящие шматы дерьма не тонут быстро - у них случаются вторые и даже третьи шансы. Так и у кислорода - появился инвестор. Ну или всегда был, но решил сделать из говна (актива) конфетку (прогрессивный бизнес).
И вот из зарубежного амазона/кислорода, с берегов южных морей (пляжи которых наполнены девушками с подвохой в бикини), выписаны настоящие профессионалы. Но как и девушки с тех песчаных пляжей - они принесли с собой ловушку в виде злобного хомяка (языка Go).
Именно на хомяка возложено счастливое будущее проекта. Ведь на нем будет написан идеальный и производительный код. Специально нанятыми настоящими профессионалами. С руководством, создавшим великолепный бизнес в теплых странах (у редакции тут вопрос возникает, зачем же покидать теплую страну ради мерзкой Московии?).
Бизнес, даже понимающий, что он зашел в тупик, не обязательно понимает, а где собственно из этого тупика выход. Ответом на проблемы кислорода, должен был стать анализ причин, по котором разработка и развитие разработки прекратилось. Понятие причин должно было привести к созданию плана предотвращения подобного в будущем и неукоснительное следование этому плану.
Беда в том, что единственный план кислорода - это переписать все с С#, на go. И в период термического процесса разрастания, компания наняла несколько команд автоматического тестирования. Кроме них она наняла настоящих профессионалов - кодерков.
Всю это команду профессионалов характеризует следующий код:
Здесь все прекрасно. Все ошибки проверены, решения приняты. Главная проблема в том, что это тест, который вместо того, чтобы запаниковать из-за невозможности создать продавца - просто тихонько игнорирует проблему. Ничего страшного, что половина тестов написанных в одной из команд не работает - и покрытие кода отрицательное. Главное, что эта команда любит тестирование и аки пчелки пишут и код и тесты и делают фичи. И да это лишь начало теста - свалиться тихо он любит и в других местах.
Замечательная история, демонстрирующая яркий пример одного из аспектов философии социального дна.
Наша диспозиция - крупный магазин с облачным доменным именем - кислород.ру. Так уж получилось, что пока в мире дикого капитализма прорастал непонятный (наверняка наполненный змеями) Амазон, в России вырос заоблачный "кислород".
Но беда кислорода была типичной для бизнеса из нулевых годов. Платформа на С#, хранилище данных на MS SQL. А там где есть база данных и энтерпрайзный стек (да не будем лукавить - любой стек), появляются любители запихнуть в базу данных вершину эволюции работы с ней - хранимые процедуры.
Проблема с хранимыми процедурами проста и она одна - данная процедура это код, для которого скорее всего (а для нулевых полностью так) отсутствует возможность протестировать его малыми тестами. А раз так, значит крупный бизнес оказывается гигантом на глиняных ногах - с определенного момента с каждой новой итерацией (привет аджайл и спринты) темп внедрения функционала снижается и в какой-то момент становится нулевым.
Хранимые процедуры же становятся основным катализатором этого процесса, как и полное отсутствие автоматизированных средств гарантирующих работоспособность функционала продукта. А наш дорогой кислород.ру тестировал свой огромный продукт с большим оборотом и продажами - ручками несчастных девочек.
На минуточку - настоящие компании внедряли культуру тестирования в команды, но российские гиганты рынка, вместо того чтобы создавать облачные платформы, внедрять свое влияние по всему миру и снимать фильмы - превращались в непреодолимое болото наполненное дерьмом.
Но история компании "Портал", описанная неким Ашмановым, многому нас научила. Настоящие шматы дерьма не тонут быстро - у них случаются вторые и даже третьи шансы. Так и у кислорода - появился инвестор. Ну или всегда был, но решил сделать из говна (актива) конфетку (прогрессивный бизнес).
И вот из зарубежного амазона/кислорода, с берегов южных морей (пляжи которых наполнены девушками с подвохой в бикини), выписаны настоящие профессионалы. Но как и девушки с тех песчаных пляжей - они принесли с собой ловушку в виде злобного хомяка (языка Go).
Именно на хомяка возложено счастливое будущее проекта. Ведь на нем будет написан идеальный и производительный код. Специально нанятыми настоящими профессионалами. С руководством, создавшим великолепный бизнес в теплых странах (у редакции тут вопрос возникает, зачем же покидать теплую страну ради мерзкой Московии?).
Бизнес, даже понимающий, что он зашел в тупик, не обязательно понимает, а где собственно из этого тупика выход. Ответом на проблемы кислорода, должен был стать анализ причин, по котором разработка и развитие разработки прекратилось. Понятие причин должно было привести к созданию плана предотвращения подобного в будущем и неукоснительное следование этому плану.
Беда в том, что единственный план кислорода - это переписать все с С#, на go. И в период термического процесса разрастания, компания наняла несколько команд автоматического тестирования. Кроме них она наняла настоящих профессионалов - кодерков.
Всю это команду профессионалов характеризует следующий код:
func TestUpdateEnititySuccessful() {
facade := NewTestFacade()
entityID := RandomInt()
account, err := facade.GetEntity(entityID)
if err != nil {
err = facade.CreateEntity(entityID)
if err != nil {
return
}
}
}Здесь все прекрасно. Все ошибки проверены, решения приняты. Главная проблема в том, что это тест, который вместо того, чтобы запаниковать из-за невозможности создать продавца - просто тихонько игнорирует проблему. Ничего страшного, что половина тестов написанных в одной из команд не работает - и покрытие кода отрицательное. Главное, что эта команда любит тестирование и аки пчелки пишут и код и тесты и делают фичи. И да это лишь начало теста - свалиться тихо он любит и в других местах.