Pull to refresh
78
6.4
МойОфис @myoffice_ru

Официальный аккаунт компании

Send message

Битва фреймворков: сравнение высокопроизводительных HTTP-библиотек

Reading time5 min
Views14K

Мир веб-разработки предлагает бесконечное количество вариантов HTTP-фреймворков для разных языков программирования. Но как разработчикам понять, какие из них обеспечивают действительно высокую производительность? Под катом команда блога CodeReliant* проводит прямое сравнение некоторых из лучших претендентов на быстродействие. Рассматривает популярные варианты на Javascript/Bun, Java, C#, Go и Rust, проводит бенчмаркинг, оценивает их пропускную способность и время отклика при тестировании.

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

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 28: ↑23 and ↓5+20
Comments22

Как мы создаём редакторы документов. Ядро и его роль в кроссплатформенной разработке

Reading time10 min
Views3.4K

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

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

О том, что представляет собой ядро наших редакторов, принципах его работы, преимуществах и специфике, читайте под катом.

Читать далее
Total votes 31: ↑29 and ↓2+35
Comments10

Гайд по публичным выступлениям для программистов

Reading time8 min
Views5.2K

«У вас отличные технические скиллы, но вам нужно улучшить навыки общения». — Ваш менеджер.

По мнению разработчика ПО Джордана Катлера*, такая обратная связь может фрустрировать программиста. Почему? Вероятно потому, что тот всегда был уверен: в своей должности ему достаточно «общаться» с помощью кода. Но нет. Зачастую концентрация только на коде ограничивает потенциал развития и продвижения по службе.

Преуспевание в коммуникациях — комплексная задача, и под катом автор рассматривает лишь то, что касается публичных выступлений. А именно:

— Наиболее важные нюансы языка тела, формулировок и тональности;

— Создание структуры презентации, которая заставит людей вас слушать.

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

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 21: ↑19 and ↓2+21
Comments5

Почему так важна открытость и как её прокачать

Reading time6 min
Views7.3K

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

Под катом собрали полезные советы и материалы, которые помогут развить открытость.

Читать далее
Total votes 22: ↑16 and ↓6+12
Comments4

API-автотесты: как достичь наиболее полного покрытия?

Reading time9 min
Views9.7K

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

Под катом мы подготовили практический шаблон, который поможет вам в этом.

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

Ускоряем анализ данных в 170 000 раз с помощью Python

Level of difficultyMedium
Reading time15 min
Views19K

В статье «Ускоряем анализ данных в 180 000 раз с помощью Rust» показано, как неоптимизированный код на Python, после переписывания и оптимизации на Rust, ускоряется в 180 000 раз. Автор отмечает: «есть множество способов сделать код на Python быстрее, но смысл этого поста не в том, чтобы сравнить высокооптимизированный Python с высокооптимизированным Rust. Смысл в том, чтобы сравнить "стандартный-Jupyter-notebook" Python с высокооптимизированным Rust».

Возникает вопрос: какого ускорения мы могли бы достичь, если бы остановились на Python?

Под катом разработчик Сидни Рэдклифф* проходит путь профилирования и итеративного ускорения кода на Python, чтобы выяснить это.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 51: ↑50 and ↓1+56
Comments3

Как я случайно сэкономил компании полмиллиона долларов

Reading time7 min
Views67K

Разработчик под ником Ludic*, автор технического блога Ludicity, сэкономил своей компании полмиллиона долларов за пять минут. Это больше, чем он заработал для работодателей за всю его карьеру, поскольку сфера деятельности, о которой далее пойдёт речь, — обман. Он всего лишь нажал на пять кнопок.

Под катом Ludic рассказывает, как так получилось, и почему ему обидно, что произошедшая ситуация возможна в принципе.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 95: ↑89 and ↓6+97
Comments107

Обновлённая «МойОфис Таблица»: как мы ускорили работу с документами в 50 (и более) раз

Reading time5 min
Views8.5K

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

В одном из хабр-постов автор @Coffe4wolf рассказал о своем опыте работы с приложением «МойОфис Таблица». Критические замечания относились, по большей части, к производительности решения: например, скорости открытия «тяжёлых» документов и высокому потреблению оперативной памяти при работе с ними.

С момента публикации этой статьи мы основательно улучшили продукт. Уже в релизе 2.3, который вышел в начале этого года, работать в «МойОфис Таблица» стало гораздо комфортнее: открытие документов с большим количеством формул ускорилось на 66%, а потребление «оперативки» снизилось в среднем на 43%. Но это далеко не предел! Мы продолжаем оптимизировать приложение, и сегодня расскажем о том, чего добились в свежем релизе 2.7. Забегая вперед: теперь массивные документы с некоторыми популярными формулами открываются в нашем продукте в 20-50 раз быстрее, чем в предыдущей версии 2.6. А пересчёт формул при изменении содержания таблиц ускорился до 100 раз.

Об усовершенствовании работы с диапазонами и алгоритма действия формул в «МойОфис Таблица» читайте под катом.

Читать далее
Total votes 44: ↑42 and ↓2+44
Comments45

Вы — новый руководитель. Как успешно пройти адаптацию в сложившемся коллективе?

Reading time5 min
Views11K

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

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

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

Читать далее
Total votes 37: ↑34 and ↓3+34
Comments4

Как мы создаём Squadus: реальна ли выгода от использования open-source?

Reading time7 min
Views3.8K

В апреле 2023 года мы выпустили Squadus — инструмент деловых коммуникаций, фундаментом которого стало СПО. Над проектом мы работаем около трёх лет, и сегодня это комплексный, многофункциональный продукт для компаний любой численности.

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

Почему в случае со Squadus мы предпочли сделать форк, и оправдал ли ожидания такой подход? Реальны ли выгоды от использования СПО при создании нового продукта? Обо всем этом рассказываем под катом.

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

Анализ «Пяти неправд»

Reading time8 min
Views6.7K

«Пять почему» — это распространённый метод исследования первопричин события. Он основан на предположении, что задав вопрос «почему» пять раз, можно найти ответ, который и будет являться первопричиной. Программист Сергей Целовальников* уверен: такая практика может оказаться полезной, но её бездумное применение часто приводит к не самым лучшим результатам.

Под катом автор рассуждает о специфике этого метода на примере выдуманного инцидента в компании Acme Corp.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 26: ↑25 and ↓1+25
Comments9

Знакомьтесь с Hurl, ужасной (но милой) идеей для языка

Reading time8 min
Views18K

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

К сожалению, ntietz решила воплотить этот язык в жизнь — и теперь заранее просит у читателей прощения. Если вы решите перейти под кат, знайте, что делаете это на свой страх и риск.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 35: ↑31 and ↓4+33
Comments27

Как мы создаём Squadus. Реализуем «прыжок к сообщению» в мобильной версии

Reading time9 min
Views3.3K

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

Сегодня расскажем о том, как в мобильной версии Squadus реализовали востребованную функцию — «прыжок к сообщению» в чате (jump to message).

Для чего современным чатам нужна эта возможность? Прыжок позволяет «отмотать» чат от цитируемого сообщения к оригиналу. Открыть чат, который игнорировался пару дней, не с последнего сообщения, а с момента прошлого открытия. Или отыскать в истории нужное сообщение двухгодичной давности, которое во время жаркой дискуссии можно привести собеседникам как сильный аргумент. Наконец, благодаря функции пользователь может оказаться в нужном чате и на нужном месте в истории сообщений, просто кликнув push-уведомление.

О технических аспектах реализации «прыжка к сообщению» читайте под катом.

Читать далее
Total votes 26: ↑25 and ↓1+26
Comments3

Почему малые языки — это будущее программирования

Reading time10 min
Views47K

Разработчик веб-приложений и распределённых систем под псевдонимом chreke* убеждён: «малые языки», то есть специализированные языки, созданные для решения конкретных задач, являются будущим программирования. Это убеждение укрепилось в нём после прочтения статьи Габриэллы Гонсалес «Конец истории программирования» и просмотра лекции Алана Кея «Программирование и масштабирование».

Под катом автор объясняет, что подразумевает под «малыми языками», и почему они так важны.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 54: ↑51 and ↓3+56
Comments75

МойОфис обновил продукты: 1300 изменений для повышения эффективности офисной работы

Reading time4 min
Views3.3K

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

Изменения коснулись практически всех компонентов платформы — расширились возможности «МойОфис Стандартный», «МойОфис Почта», «МойОфис Частное Облако», «МойОфис Профессиональный» и Squadus. Теперь, если в организации будет развернуто несколько продуктов экосистемы МойОфис, то её сотрудники получат еще больше возможностей для сквозной работы с документами и коммуникаций.

Читать далее
Total votes 22: ↑21 and ↓1+21
Comments18

Как мы за один день наняли много C++ разработчиков: рекомендации МойОфис для нанимающих менеджеров

Reading time7 min
Views6.9K

Уже как минимум пару лет формат быстрого найма сотрудников, или One day offer, набирает популярность в ИТ-компаниях. У него есть неоспоримые плюсы для всех участников: всего за один день работодатель закрывает вакансию (а то и несколько), а кандидат получает ответ (и, возможно, предложение о работе). 17 июня этого года мы провели ряд онлайн-собеседований c C++ разработчиками уровня middle и senior — и в итоге пополнили команды сразу нескольких отделов. В этом посте делимся ценными наблюдениями по итогам проекта и важными инсайтами — если вы нанимающий менеджер, вы точно найдете здесь немало полезного.

Читать далее
Total votes 26: ↑24 and ↓2+25
Comments18

10 самых влиятельных (и почти мёртвых) языков программирования

Reading time13 min
Views50K

Гиллель Уэйн*, разработчик и консультант по формальной верификации, обратил внимание на статью «20 наиболее значимых языков программирования в истории», которую сам автор называет «нелепой, только что придуманной таблицей». По мнению Уэйна, эта характеристика вполне справедлива: автор таблицы называет Go «наиболее значимым», но не включает в список ALGOL, Smalltalk или ML. И не учитывает Pascal, потому что тот «почти мёртв». Абсурд! Это противоречит всей сути понятия «значимость в истории».

Так давайте обсудим некоторые «почти мёртвые» языки и причины их важности.

Дисклеймер: Да, не все из этих языков мертвы и забыты. Ведь большинство людей слышали о Smalltalk, правда? Также, скорее всего, в этой статье полно ошибок, ведь их легко допустить, когда вы анализируете 60-летнюю историю компьютерных вычислений. Не стесняйтесь возражать, если что-то заметите!

Дисклеймер 2: Да, некоторые из упомянутых здесь языков были «первыми изобретёнными», а другие — «первыми популярными». История — это сложно!

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 107: ↑104 and ↓3+120
Comments469

Ускоряйте принятие решений

Reading time5 min
Views4.9K

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

Джеймс Стэньер*, технический директор компании Shopify, уверен: улучшить ситуацию помогут небольшие изменения в подходах к задачам. В своей заметке он описывает некоторые модели поведения, которые на первый взгляд кажутся продуктивными, но фактически мешают рабочим процессам. Наряду с этим Джеймс описывает альтернативные варианты того, как можно справляться с задачами — гораздо более быстро и эффективно.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 29: ↑27 and ↓2+31
Comments6

Подводные камни С++. Решаем загадки неопределённого поведения, ч. 1

Reading time11 min
Views16K

Изучение и понимание неопределённого поведения — важный шаг для разработчика C++, поскольку undefined behavior бывает источником серьёзных ошибок и проблем в программах. UB может проявляться в разных аспектах языка, включая операции с памятью, многопоточность, арифметические вычисления, работу с указателями и так далее.

Под катом мы погрузимся в мир неопределённого поведения в C++ и рассмотрим некоторые примеры ситуаций, в которых оно может возникать.

P.S.: Часть приведённых в статье примеров вдохновлены материалами, которые можно посмотреть в разделе «Полезные ссылки».

Читать далее
Total votes 42: ↑40 and ↓2+44
Comments44

Крупное обновление МойОфис: 1300 изменений, улучшений и новых функций

Reading time4 min
Views3.7K

МойОфис выпустил масштабное обновления продуктов своей экосистемы. Изменения коснулись всех компонентов платформы офисных решений, в том числе были улучшены настольные, мобильные и веб-редакторы, серверные продукты и почтовая система Mailion.

Среди нововведений: возможность использовать электронную подпись в редакторах «МойОфис Стандартный 2», функция валидации надстроек в настольных приложениях, расширенный поиск в почтовой системе Mailion.

Подробнее о составе релиза 2.5 читайте под катом.

Читать далее
Total votes 27: ↑25 and ↓2+24
Comments10

Information

Rating
835-th
Works in
Registered
Activity