Search
Write a publication
Pull to refresh
1
0
Send message

Ад своими руками

Reading time19 min
Views174K
Многие говорят – рассказывать надо не только об успехах, но и о неудачах. Полностью с этим согласен — понимание своих неудач, их причин и последствий, иногда ценнее любых успехов.

Был у меня в жизни такой опыт автоматизации, за который долгое время было стыдно. Не потому, что система плохо работала, или метаданные кривые были, или ТЗ не соответствовала — ровно наоборот. Все красиво, быстро, с полным внедрением во всей компании. С точки зрения формальных критериев это был полный успех.

Но компанию, ее культуру это внедрение превратило в ад — бюрократический, системный и бессмысленный.

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

Обо всем по порядку.
Читать дальше →

Как генерировать осмысленные коммиты. Применяем стандарт Conventional Commits

Reading time8 min
Views133K


Привычный хаос в названиях коммитов. Знакомая картина?

Наверняка вы знаете git-flow. Это отличный набор соглашений по упорядочиванию работы с ветками в Git. Он хорошо документирован и широко распространен. Обычно мы знакомы с правильным ветвлением и много говорим об этом, но, к сожалению, уделяем слишком мало внимания вопросу наименования коммитов, поэтому часто сообщения в Git пишутся бессистемно.

Меня зовут Ержан Ташбенбетов, я работаю в одной из команд Яндекс.Маркета. И сегодня я расскажу читателям Хабра, какие инструменты для создания осмысленных коммитов мы используем в команде. Приглашаю присоединиться к обсуждению этой темы.

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

Сериализация в Java. Не все так просто

Reading time9 min
Views144K


Сериализация (Serialization) — это процесс, который переводит объект в последовательность байтов, по которой затем его можно полностью восстановить. Зачем это нужно?
Читать дальше →

Тема бронелифчиков в культуре Востока и Запада

Reading time8 min
Views88K

......


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


Явление «бронелифчиков» существует уже довольно давно. Есть несколько вариантов названий, часто еще используется «бронетрусы», но смысл от этого не меняется. Бронелифчик это броня, которая предназначена для чего угодно кроме, собственно, защиты стратегически уязвимых мест.


Такая броня ужасно неудобна, она натирает и гарантирует носящему простуду в регионе со средним климатом и огромное количество укусов насекомых в регионах с теплым климатом. Ну и конечно же все колюще-режущие предметы которые в вас летят достигнут цели.


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


Для начала я бы хотела внести небольшое уточнение. Современный игропром сейчас буквально поделен на два лагеря — «Восток» и «Запад». Под Востоком обычно подразумевается Япония, чуть реже Китай или Корея, история и культуры которых взаимодействовали и переплетались веками. Запад это, по сути, все страны современной Европы (там практически каждая побывала чьей-нибудь колонией или имела колонии, что способствовало культурному обмену).


Какое это имеет отношение к бронелифчикам?


Игровая индустрия сейчас тоже разделена на восточную и западную. Если выбрать любую японскую или корейскую игру и любую европейскую а потом попросить человека угадать какая где, то абсолютное большинство угадает с первого раза. Серия TES и серия Metal Gear Solid. World of Warcraft и, например, Perfect World или более современная Black Desert, Лара Крофт и Байонетта.

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

Прекратите нанимать «эффективных менеджеров». Они не только бесполезны, но и вредны

Reading time7 min
Views238K
Каждая компания проходит несколько жизненных циклов от момента своего основания до собственной «крышки гроба». Конец у разных компаний разный: кто-то не выдерживает конкуренции с более молодыми и гибкими командами, продукты которых годами не вылазят из состояния ранней беты, но все же являются более успешными, другие — становятся частью более крупных корпораций.



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

Вот как раз в этот момент компанию начинают захватывать «эффективные менеджеры».
Читать дальше →

Не автоматизируй это: вредные советы бизнесу

Reading time22 min
Views39K
Допустим, вы решили съездить на машине на море, например, из Москвы в Сочи. Вам придёт в голову за день до отъезда перебрать двигатель в гараже или наконец поставить колёса-бигфуты и провести тотальный тюнинг, чтобы мчаться по трассе М-4 во всей новоявленной красе? Вряд ли. Это же вопрос комфорта, безопасности и трезвого мышления водителя.

А вот взять и автоматизировать компанию так, чтобы она завтра начала приносить сверхприбыли — это пожалуйста. «Что значит, невозможно? Вы же вендор! Я вам плачу.» Вам кажется, что вы можете прямо завтра внедрить CRM, ERP и другое ПО в компании, в которой вы работаете или которую вы возглавляете? Это ошибочное мнение. Любое ваше чаяние, начинание и внедрение с первого же поискового запроса до начала работы в новой ИТ-инфраструктуре будет сталкиваться с препятствиями. Некоторые из них свалятся откуда и не ждали — неожиданностей ровно столько, сколько их будет с бигфутами на М-4. И даже больше. Для более эффектного провала следуйте нашим вредным советам — мы их 11 лет потом и кровью собирали. Короче, внедренческий хардкор, местами хоррор и плохие четверостишия от нашей команды. Не стреляйте в программистов — сочиняем, как умеем.


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

Как сделать мощную лестницу Иакова из трансформатора от микроволновки своими руками

Reading time8 min
Views66K
Желание написать данный пост побудила вот это фотография со студенческой конференции технического ВУЗа.



— Видел, что студенты показывали на конференции? — спросил товарищ, показывая фотографию.
— Ничего себе! Это же полный *****! И ты там был?
— Да, я к ним подходил, разговаривал, но они не стали меня слушать. Что я мог сделать???

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

Ассортимент — классическая задача оптимизации

Reading time7 min
Views29K


Ассортимент очень влияет на выручку магазина, но управляется не самим магазином. Судя по последним исследованиям, ассортиментом в России в целом мало кто управляет эффективно. Просто если поддерживать нужные товары в нужном количестве в нужных местах, можно дико поднять эффективность продаж многих магазинов. Дико — это, например, на треть.

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

Первый вопрос в том, почему вообще может не быть какого-то товара. Это очевидная вещь для любого человека из розницы, но крайне нелогичная для человека со стороны. Столетиями работает рынок, так почему, чёрт побери, до сих пор случаются неувязки?
Читать дальше →

Азы работы магазина

Reading time7 min
Views34K


Первое, что нужно понять — факт, что магазин не является точкой генерации прибыли компании. Это инструмент по переработке загруженного товара в деньги, и он создаёт только расходы. Источник прибыли часто далеко за пределами самого магазина.

Магазин работает как цепочка конверсий, где каждый показатель поддаётся контролю сменой, владельцем точки, закупщиком или тем, кто определяет политику всей сети. Задача магазина как бизнес-юнита — переработать товар в выручку и принести при этом позитив клиенту. Поэтому задача продавца №1 всегда — чтобы человек вышел довольным. И только №2 — что-то продать. Исходя из этого строится отношение к правилам работы продаж и весь остальной здравый смысл. Быть хорошим, адекватным, правильным — экономически оправдано.
Читать дальше →

Как мы искали признаки врачебных ошибок

Reading time8 min
Views19K


В 2006 году в голове моего тестя разорвалась аневризма и его свалил инсульт. К вечеру того дня он уже шутил и порывался ходить по больничной палате. Повторный инсульт, который случился под наблюдением врачей, его мозг не выдержал — тесть перестал разговаривать, ходить и узнавать родных. В другом госпитале его поставили на ноги, но из-за врачебной ошибки при первоначальном лечении он навсегда лишился речи, а его личность изменилась до неузнаваемости.

То, что с ним произошло, называется внутрибольничным инсультом и это один из маркеров (или иначе — триггеров) системных проблем в медицинской организации. Их нужно анализировать, чтобы снизить число предотвратимых врачебных ошибок в стационарах и повысить качество лечения пациентов.

В США этим вопросом озадачились в начале 2000-х. Массачусетский Institute for Healthcare Improvement (IHI) разработал методику IHI Global Trigger Tool for Measuring Adverse Events, которую затем внедрили передовые клиники США и Европы.

В 2016 году мы (российский офис SAS) попытались создать систему анализа медицинских триггеров по методике IHI в России. Расскажу, что из этого вышло.

Текстовый редактор — это вам не высшая математика, тут думать надо

Reading time17 min
Views98K
Современные текстовые редакторы умеют не только бибикать и не давать выйти из программы. Оказывается, внутри них кипит очень сложный метаболизм. Хотите узнать, какие ухищрения предпринимаются для быстрого пересчета координат, как к тексту приделываются стили, фолдинги и софтврапы и как это всё обновляется, при чем тут функциональные структуры данных и очереди с приоритетами, а также как обманывать пользователя — добро пожаловать под кат!



В основе статьи — доклад Алексея Кудрявцева с Joker 2017. Алексей уже лет 10 пишет Intellij IDEA в JetBrains. Под катом вы найдете видео и текстовую расшифровку доклада.
Читать дальше →

Коллекции в Java: о чём многие забывают

Reading time6 min
Views143K
Из опыта code-review и ответов на StackOverflow набралось немало моментов, касающихся Java Collections API, которые мне казались очевидными, но другие разработчики о них почему-то не знали или знали, но не чувствовали уверенности их применять. В этой статье я собираю в общую кучу всё, что накопилось.

Содержание:


  1. List.subList
  2. PriorityQueue
  3. EnumSet и EnumMap
  4. Set.add(E) и Set.remove(E) возвращают булево значение
  5. Map.put(K, V), Map.remove(K), List.set(idx, E), List.remove(idx) возвращают предыдущий элемент
  6. Map.keySet() и Map.values()
  7. Arrays.asList может быть ключом
  8. Collections.max
  9. LinkedList, Stack, Vector, Hashtable
Читать дальше →

Java 11 / JDK 11: General Availability

Reading time1 min
Views28K

Товарищи по оружию, Java-бойцы Хабра! Этот день мы приближали как могли.


Сегодня стала доступна релизная версия JDK 11 — референсная реализация Java 11, и первая LTS-версии Java, выпущенная по быстрому 6-месячному релизному циклу. Самый большой и важный релиз новейшего времени, который даст толчок всему Java-сообществу переходить на самые новые и продвинутые технологии.



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

Как не выстрелить себе в ногу из конечного автомата

Reading time15 min
Views28K
Конечный автомат редко применяется мобильными разработчиками. Хотя большинство знает принципы работы и легко реализует его самостоятельно. В статье разберемся, какие задачи решаются конечным автоматом на примере iOS-приложений. Рассказ носит прикладной характер и посвящен практическим аспектам работы.

Под катом вы найдете дополненную расшифровку выступления Александра Сычева (Brain89) на AppsConf, в котором он поделился вариантами применения конечного автомата при разработке неигровых приложений.


О спикере: Александр Сычев занимается iOS-разработкой восемь лет, за это время участвовал в создании как простых приложений, так и сложных клиентов для социальных сетей и финансового сектора. В данный момент является техлидом в компании Сбербанк.

Моё разочарование в софте

Reading time11 min
Views393K

Суть разработки программного обеспечения
— Нужно проделать 500 отверстий в стене, так что я сконструировал автоматическую дрель. В ней используются элегантные точные шестерни для непрерывной регулировки скорости и крутящего момента по мере необходимости.
— Отлично, у неё идеальный вес. Загрузим 500 таких дрелей в пушку, которые мы сделали, и выстрелим в стену.


Я занимаюсь программированием уже 15 лет. Но в последнее время при разработке не принято думать об эффективности, простоте и совершенстве: вплоть до того, что мне становится грустно за свою карьеру и за IT-отрасль в целом.

Для примера, современные автомобили работают, скажем, на 98% от того, что физически позволяет нынешняя конструкция двигателя. Современная архитектура использует точно рассчитанное количество материала, чтобы выполнять свою функцию и оставаться в безопасности в данных условиях. Все самолёты сошлись к оптимальному размеру/форме/нагрузке и в основном выглядят одинаково.

Только в программном обеспечении считается нормальным, если программа работает на уровне 1% или даже 0,01% от возможной производительности. Ни у кого вроде нет возражений.

Старые песни о главном. Java и исходящие запросы

Reading time8 min
Views75K

(Иллюстрация)

Одна из задач, с которой сталкиваются 99,9% разработчиков, — это обращение к сторонним endpoint’ам. Это могут быть как внешние API, так и «свои» микросервисы. Сейчас все и вся бьют на микросервисы, да. Получить или отправить данные просто, но иногда изобретают велосипеды. Можете назвать 5 способов реализации запросов на Java (c использованием библиотек и без)? Нет — добро пожаловать под кат. Да? Заходите и сравните ;)
Читать дальше →

Я не буду учить твой Garbage Query Language

Reading time2 min
Views26K

Это будет немного напыщенная речь, но меня действительно раздражает софт, в котором люди пытаются изобрести очередной собственный язык запросов. У нас уже есть триллион различных ORM, еще триллион баз данных с собственным языком запросов каждая, и еще триллион SaaS-продуктов, для доступа к которым нужно освоить какой-нибудь очередной DSL, которые они придумали.


Верните мне мой SQL обратно. Это язык понятный каждому, существует аж с 70-х и за это время успел стать стандартом. Он прост в чтении и может использоваться кем угодно, от бизнеса до инженеров.


Однако вместо этого мне приходится изучать целый ворох разных "garbage query language", потому что люди по-прежнему пытаются изобрести колесо заново.

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

Договоры бывают разные, или на что вы подписались

Reading time5 min
Views20K
Периодически отслеживаю на тостере вопросы по юриспруденции. И не раз сталкивался с тем, что у людей возникают проблемы из-за непонимания разницы между подрядом и услугами. Казалось бы, какая разница в этих ваших правовых дефинициях? Есть же контракт! А вот и нет, подходы отличаются весьма существенно. В некоторых случаях настолько кардинально, что лучше заранее понимать, на что подписываешься.

image

Что это вообще, блин, такое?


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

KPI — три буквы преткновения

Reading time11 min
Views27K
Disclaimer: в этой статье есть целый блок рассуждений о том, как считать показатели KPI для сотрудников-программистов и разработчиков — по многочисленным просьбам читателей.

KPI обсуждаются на конференциях, про KPI пишут сложные статьи в журналах, KPI ненавидят сотрудники и недолюбливают боссы. KPI своей медалькой и работой считают HR-специалисты. И почти всё это с KPI происходить не должно, потому что это обыденная метрика, показывающая результативность каждого сотрудника и обеспечивающая конвертацию результатов труда в некие баллы, а уже баллы при желании в деньги. Время идёт, проблемы не убывают, KPI в ИТ-сфере — так вообще притча во языцех. В этот раз мы решили разобрать три важных вопроса использования ключевых показателей в компаниях. Даёшь тянуть правильную морковку!


KPI должен быть правильным

Information

Rating
Does not participate
Registered
Activity