Pull to refresh
12
0
Александр Лебедев @alexanderlebedev

Фронтенд разработчик, тимлид

Send message

И ещё один день из жизни звезды главной последовательности

Reading time18 min
Views8.1K

Well met!

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

«Хорошего человека должно быть много», применим ли этот же принцип и к небесным телам, освещающих ночное небо? Какие массы могут быть у звёзд и как это влияет на их «наследство», которое они оставляют своим потомкам?

Разбираемся вместе..
Total votes 52: ↑52 and ↓0+52
Comments78

Программист и энтропия

Reading time7 min
Views6.4K
Хаос всегда возрастает. Возрастает непрерывно и неотвратимо. Так гласит второй закон термодинамики: в любой замкнутой системе энтропия – мера хаоса – увеличивается, пока та не достигнет термодинамического равновесия – состояния полной неопределённости, когда ничего нельзя предвидеть и всё ведёт себя предельно беспорядочно. Мы, живые организмы, не являемся замкнутыми системами, и сдерживаем рост энтропии внутри себя за счёт увеличения его снаружи – пока можем. И программные проекты имеют с нами много общего: они тоже вынуждены тратить внешние ресурсы (силы разработчиков, CPU на оверхед абстракций), чтобы сдерживать непрерывно растущую энтропию – иначе в какой-то момент они теряют способность достаточно быстро адаптироваться к изменяющейся действительности и умирают.


Какаду воспринимают тезис про увеличение энтропии снаружи слишком буквально.

Что такое энтропия в контексте программного кода? Википедия приводит восемь разных определений энтропии в разных науках и все они ограниченно применимы в нашем случае, так что я не берусь дать формализованный ответ на этот вопрос. Но при принятии архитектурных решений и написании кода я всё чаще задумываюсь о последствиях в терминах энтропии, так что приглашаю и вас в свой чудный мир сомнительных аналогий.
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments14

Как мы научились запускать 10-часовые UI-тесты за 5 минут в условиях 30 релизов в день

Reading time12 min
Views14K

Привет, Хабр!

На связи Руслан Остропольский, Директор по производству ИТ в СберЗдоровье. Он расскажет, как команда сэкономила кучу времени и денег и добилась колоссального роста производительности благодаря грамотному подходу к автоматизации UI-тестов.

Читать далее
Total votes 9: ↑8 and ↓1+7
Comments10

Развитие Стамбула: султан сказал — султан сделал

Reading time19 min
Views24K
Стамбул, столица четырёх империй, — один из древнейших городов мира, но из-за постоянных землетрясений лишь незначительная часть его зданий сегодня старше хотя бы 100 лет. Конечно, это город контрастов — входит в ТОП-5 по числу проживающих в нём долларовых миллиардеров, но в сохраняющихся ещё районах самостроя (gecekondu) там проживают беднейшие слои населения. Город, безусловно, красивый, немного хаотичный, но живой и свежий. За последние 70 лет он вырос в 15 раз, приезжие из других провинций Турции составляют три четверти его населения. Столь стремительный рост не мог не вызвать перекосов в развитии, которые муниципалитет постепенно уже начинает исправлять. Естественно, не без восточной специфики. При этом, Анкара, нынешняя столица Турции, ревностно следит за его развитием, иногда как чёртик из коробочки выпрыгивая и начиная там новый транспортный мегапроект. Итак, чем живёт сегодня динамичный мегаполис?

Читать дальше →
Total votes 71: ↑70 and ↓1+69
Comments28

Заметки о (не)эффективности

Reading time13 min
Views12K

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

Впервые прочитав эту цитату Кони Бюрера, который работал в Rational Software, я полагал, что корень всех проблем, возникающих при разработке ПО, кроется именно здесь. С тех пор я повзрослел, оброс шлейфом скепсиса и перестал писать код для продакшена. Я больше не несу ответственности за разработку, тестирование или поставку отдельных классов, компонентов и даже сервисов. Я отвечаю за максимально быструю и качественную поставку бизнес-ценности в рамках одного из ключевых бизнесов ЦФТ - сервиса денежных переводов Золотая корона.

Читать далее
Total votes 17: ↑15 and ↓2+13
Comments16

Мой опыт собеседования в Amazon

Reading time6 min
Views62K

О чём эта статья

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

Это история о моем опыте собеседования в Амазоне, почему мне в целом не понравилось по сравнению с другими FAANG. Так же тут будут ответы на “а что конкретно спрашивали на интервью, какие были задачки, что на систем дизайне было”, потому что мне не дали подписать NDA, все с пруфами, скринами и прочее.

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

Начало, предложение от Amazon

В один прекрасный день 6 сентября, мне пришел такой сообщение в Линкедин.

Читать далее
Total votes 93: ↑90 and ↓3+87
Comments177

Имена людей и интерфейс

Reading time13 min
Views49K
Пространство рассуждения статьи затрагивает вопросы различия имен людей во всем мире, и то, как это влияет на дизайн форм ввода, баз данных, онтологий информатики и др. в контексте Всемирной Паутины.

image

Заинтересованная аудитория: авторы HTML-контента, разработчики скриптов серверных приложений (PHP, JSP и т.д.), менеджеры веб-проектов и любые другие люди, так или иначе связанные с дизайном форм ввода данных, дизайна баз данных и онтологий, которые затрагивают личные имена людей.

Следует помнить о различиях формирования и традициях употребления имен людей в других странах. Зачастую создатели сайтов или программ одной культуры не учитывают национальные особенности пользователя другой, что заставляет последнего чувствовать себя непривычно, и ставит дополнительные преграды к использованию продукта.

Читать дальше →
Total votes 314: ↑301 and ↓13+288
Comments121

Локализация продукта: 10 практических советов

Reading time12 min
Views4.8K

Процесс локализации — крайне ответственный этап в разработке и продвижении программного обеспечения. Техническая документация, надписи на элементах интерфейса, сопроводительные файлы — все это должно быть адаптировано к культурным и социальным особенностям, и перевод — лишь один из этапов этой адаптации. Продукты МойОфис сегодня поддерживают 13 языков. В ходе локализации мы научились представлять дату, время, символы валют, единицы измерений, числовые паттерны и функции в виде и формате, которые предпочитает пользователь в той или иной стране.

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

Читать далее
Total votes 19: ↑18 and ↓1+17
Comments3

Опыт МойОфис: как мы повышаем вовлеченность сотрудников и работаем с обратной связью. Рекомендации для тимлидов

Reading time11 min
Views4.9K

Высокие показатели вовлеченности — не повод для бездействия. Помните, как у Кэрролла? «Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!». У любой компании есть красные зоны, идеальная картина встречается крайне редко. Более того, как раз красные зоны помогают той или иной компании понять, куда двигаться и как улучшить ситуацию. На примере МойОфис рассказываем, как мы работаем с исследованием и отзывами коллег о работе в компании, и что помогает нам улучшать свой результат, даже если показатели и так высокие.

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments2

МойОфис представил общедоступные веб-редакторы. Теперь ознакомиться с продуктами компании можно прямо в окне браузера

Reading time3 min
Views6.7K

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

Читать далее
Total votes 18: ↑17 and ↓1+16
Comments36

Gotta go fast. Поиск в почтовом клиенте IMAP

Reading time8 min
Views3K


Приветствую вас в заключительной статье о возможностях IMAP. В предыдущих статьях Быстрая синхронизация писем по IMAP и Оптимизация запросов содержимого письма по IMAP мы рассмотрели базовые операции над папками и письмами, научились слушать новые письма, оптимизировать синхронизацию и загрузку контента писем.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments0

CucumberTalks: избегаем антипаттернов и пишем выразительные сценарии

Reading time12 min
Views5.4K


Фреймворк Cucumber используют как часть bdd-подхода к разработке, так и как отдельный инструмент для автотестов. 40+ млн скачиваний обеспечили фреймворку богатый опыт использования, но актуализировали поверхностное отношение к этому инструменту. Разбираем популярные огуречные антипаттерны и учимся писать действительно выразительные сценарии.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments8

Какие навыки можно прокачать на проекте c большой кодовой базой

Reading time11 min
Views6.4K


Как жить и развиваться на проектах с историей. Что дает разработчику опыт работы c большой кодовой базой, и почему не нужно стремиться переписать все с нуля, если даже очень хочется.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments14

Совместное редактирование. Часть 1

Reading time9 min
Views43K
Добрый день. Последний год я занимаюсь в проекте «МойОфис» вопросами совместного редактирования (collaboration). Оглядываясь назад, могу констатировать, что это непростая и очень интересная задача. Поэтому я хотел бы подробно рассказать о ней и дать ответы на следующие вопросы:

  1. Какие существуют подходы к обеспечению совместного редактирования?
  2. Насколько они сложны в реализации?
  3. Можно ли взять готовую библиотеку и использовать ее в своем проекте?
  4. Можно ли вести разработку без оглядки на совместное редактирование?



Для того чтобы подробно и аргументированно ответить на них, необходимо написать довольно много материала, поэтому статей будет несколько, присаживайтесь поудобнее, мы начинаем.
Читать дальше →
Total votes 46: ↑41 and ↓5+36
Comments29

«Обратные интервью» или Как вовремя перевернуть доску

Reading time4 min
Views22K

Когда я собеседую на руководящие позиции, я часто применяю "обратные интервью": прошу кандидатов рассказать, что бы они сами спросили на моем месте. Это дает мне полезную информацию и приятно разнообразит процесс. Этот пост о том, как и почему я это делаю.


Что спрашивают маленькие девочки у чеширских котов?

Читать дальше →
Total votes 81: ↑75 and ↓6+69
Comments141

Методы борьбы с legacy-кодом на примере GitLab

Reading time14 min
Views11K
Можно бесконечно холиварить о том, является ли GitLab хорошим продуктом. Лучше посмотреть на цифры: по итогам раунда инвестирования оценка GitLab составила 2,7 млрд долларов, в то время как предыдущая оценка была $1,1 млрд. Это означает бурный рост и то, что компания будет нанимать все больше и больше фронтенд-разработчиков.

Так выглядит история появления фронтенда в GitLab.



Это график количества фронтендеров в GitLab, начиная с 2016 года, когда их не было вообще, и заканчивая 2019-м, когда их стало уже несколько десятков. Но сам GitLab существует 7 лет. Значит, до 2017 года основной код на фронтенде писали бэкенд-разработчики, хуже того, бэкенд-разработчики на Ruby on Rails (ни в коем случае никого не хотим обидеть и ниже поясним, о чем идет речь).

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

Total votes 37: ↑35 and ↓2+33
Comments5

Gotta go fast. Быстрая синхронизация писем по IMAP

Reading time12 min
Views3.7K
Привет! Меня зовут Илья. Два года назад я присоединился к работе над мобильным клиентом IMAP. Ранние версии приложения долго загружали список писем и тратили большое количество трафика для обновления ящика. Встал вопрос об оптимизации работы с протоколом и о возможностях этого протокола вообще. О протоколе я не знал ничего и погрузился в чтение документации. Оказывается, все это время клиент использовал протокол напролом и совсем не учитывал особенности реализации. Эти особенности помогли ускорить загрузку почты в 2 — 3 раза. О том что такое IMAP и какие есть фишки для его оптимизации дальше в моей статье.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments0

Как управлять рисками в продуктовом бэклоге

Reading time15 min
Views7.7K

Когда мы планируем разработку, в нашем бэклоге лежат задачи. Рядом с каждой из них могут незаметно притаиться риски — один или несколько. Давайте поговорим о том, как эти риски увидеть и что с ними делать потом. Это обобщение моего опыта в роли тимлида — что я делал по поводу рисков в бэклоге, что получалось, что нет.



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

Total votes 11: ↑10 and ↓1+9
Comments1

Блеск и нищета джавовых веб-фреймворков

Reading time8 min
Views38K

Привет, Хабр! Помоги выбрать веб-фреймворк? Требования: модный, молодежный, популярный, качественный фреймворк для соло-технономада.


Надо ли нам каждый месяц читать очередной пост про это?



Несколько лет участия в проектах на границе энтерпрайза и системщины окончательно отбили нюх. Чтобы разобраться в вопросе, я заглянул в топ гугла и обнаружил там кучу однобоких рейтингов. Наверное, самым лучшим оказался Java Web Frameworks Index от ZeroTurnaround.

Читать дальше →
Total votes 46: ↑44 and ↓2+42
Comments155

Ланнистеры всегда платят свои долги! (и технические тоже)

Reading time10 min
Views11K

Практики управления техническим долгом в отдельно взятой команде


Примерно год назад наша команда перешла из фазы ускоренного наращивания функциональности к более плавной разработке с упором на повышение качества. К этому моменту в наших продуктах накопилось заметное количество неоптимальных решений, некрасивого кода, устаревших библиотек. Со всем этим надо было что-то делать.


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


Что удалось получить в результате:


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

Давайте расскажу, как мы этого добились.


Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments12
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity