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

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

Send message

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

Reading time11 min
Views9.5K

В рамках релизов 2.0, 2.1 и 2.2 — все они вышли в этом году — мы представили переработанные и усовершенствованные продукты МойОфис. Одним из лидеров по числу внесенных изменений стала «МойОфис Почта 2» — почтовая система для корпоративных пользователей, которая включает в себя средства для работы с почтовыми сообщениями, инструменты календарного планирования и адресную книгу.

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

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

Читать далее
Total votes 47: ↑44 and ↓3+44
Comments25

Как работать с атомарными типами данных в C++

Reading time13 min
Views25K

Насколько популярна сегодня тема атомарных данных, настолько же она обширна для одной статьи. Можно подробно останавливаться на разных аспектах атомарности: например, анализировать memory ordering, рассуждать о lock-free алгоритмах с использованием атомиков или исследовать производительность атомиков на разных платформах.

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

Читать далее
Total votes 55: ↑54 and ↓1+59
Comments13

С потайным компьютером в ботинках можно обыграть даже гроссмейстера

Reading time7 min
Views21K

"Запатентовано" уже немало способов шахматного жульничества: кто-то использует телефоны, примотанные к ногам скотчем, и штуки вроде пультов от телевизора, другие просто выходят в туалет, чтобы подсмотреть варианты хода на телефоне. И это не говоря о случаях с неочевидным и лишь отчасти подтвержденным читерством, вроде недавнего скандала с гроссмейстером Хансом Ниманном.

Программист Джеймс Стэнли* придумал еще один способ выигрывать в шахматы. Миниатюрный компьютер Raspberry Pi Zero, лежащий у него в кармане, подключен к нескольким кнопкам и вибромоторам в его ботинках, так что он может тайком обмениваться данными с шахматным движком на базе Pi. Ноги идеально подходят для этой цели: это единственная часть тела, с помощью которой при известной степени ловкости можно проделывать сложные манипуляции незаметно для окружающих.

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

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

Читать далее
Total votes 69: ↑65 and ↓4+70
Comments38

Я провёл 400 собеседований за год. Мне есть что сказать

Reading time10 min
Views95K

Я немного преувеличил с количеством — часто я был «вторым пилотом» на собеседованиях. Но какой-то опыт проведения собеседований у меня всё- таки есть, ведь только за 3 месяца весны я провел 150 собесов. В статье я выделил некоторые важные моменты от которых зависит — скажу я кандидату «Да» или «Нет», и собрал очень субъективные рекомендации как проходить собесы. Но учитывая то, какое количество людей через меня прошло, статья будет полезна тем, кто только начал проводить собеседования, кому это только предстоит, и тем, у кого впереди поиск работы. 

Читать далее
Total votes 160: ↑78 and ↓82+2
Comments306

Рассказываем о пользе и вреде FullStack-фреймворков на примере Meteor.js

Reading time6 min
Views9.6K

В последнее время появляется довольно много Fullstack-фреймворков, они становятся популярны, их обсуждают.

Если посмотреть на результаты The State of JS 2021 в разделе «Библиотеки — Бэкенд-фреймворки», то минимум 5 из них (возможно, больше) будут как раз FullStack. Отсортировав бэкенд-фреймворки по заинтересованности, в самом верху списка мы снова увидим именно FullStack. Это понятно — они востребованы и лежат в основе разных проектов.

Однако на наш взгляд, область их применимости несколько ограничена. Почему — объясняем под катом.

Читать далее
Total votes 60: ↑55 and ↓5+56
Comments22

Способ представления числовых ключей для обратного поискового индекса

Reading time5 min
Views3.6K

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

Не проще обстоят дела и с программным представлением таких объектов.

Читать далее
Total votes 37: ↑35 and ↓2+34
Comments8

Вот почему вам стоит использовать оператор Walrus в Python

Reading time8 min
Views28K

Выражение присваивания (также известное как оператор walrus) — это функциональность, которая появилась в Python недавно, в версии 3.8. Однако применение walrus является предметом дискуссий и множество людей испытывают безосновательную неприязнь к нему.

Под катом эксперт компании IBM Мартин Хайнц*, разработчик и DevOps-инженер, постарается убедить вас в том, что оператор walrus — действительно хорошее дополнение языка. И его правильное использование поможет вам сделать код более лаконичным и читаемым.

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

Читать далее
Total votes 50: ↑47 and ↓3+52
Comments62

МойОфис выпустил релиз 2.2. Более 700 улучшений в Mailion, редакторах документов и других продуктах компании

Reading time10 min
Views6.4K

МойОфис, российский разработчик офисного программного обеспечения, выпустил релиз 2.2. Изменения коснулись большинства компонентов платформы, включая почту (в том числе Mailion), частное облако, настольную и веб-версию редакторов документов. В продуктах появились сотни новых корпоративных функций и востребованных на рынке решений — от отказоустойчивого поиска в почтовой системе Mailion до интерфейсных улучшений в редакторах и файловом менеджере, а также расширения возможностей «Комплекта средств разработки» (SDK).

О ключевых нововведениях релиза читайте под катом.

Читать далее
Total votes 45: ↑42 and ↓3+43
Comments22

Что читать DevOps-инженеру: 7 полезных книг

Reading time4 min
Views25K

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

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

Девять порочных практик React. Разбираем частые ошибки

Reading time10 min
Views23K

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

Патрик Завадски, старший разработчик ПО в компании Northwestern Mutual, подчеркивает, что практики и привычки могут различаться от разработчика к разработчику, от команды к команде и от компании к компании. В любом случае, важно знать разные подходы к написанию кода в React — это хорошее подспорье для программиста в поисках оптимального для него решения.

Под катом — наш перевод статьи*, в которой Патрик сосредоточился на отрицательных примерах: некоторых из худших React-практик, которые он когда-либо видел (а возможно даже использовал сам). Материал призван помочь вам избежать подобных ошибок в будущем.

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

Читать далее
Total votes 47: ↑46 and ↓1+47
Comments20

Мои собеседования (Golang developer)

Reading time5 min
Views20K

Привет, меня зовут Олег, я разработчик со стажем почти 10 лет.

Разработкой начал заниматься ещё со старшей школы, изучал C/C++ (очень пригодилось при написании скриптов в injection для ультимы онлайн). Профессионально начал работать разработчиком приблизительно с 2014, основной язык до 2020 года был C# с примесью C++. Сначала разрабатывал и поддерживал некоторые проекты в банковской сфере, потом резко поменял предметную область и ушёл писать софт для автоматизации работы одного строительного девелопера. На начальных этапах это было огромное легаси на C# от бывшего архитектора, решившего стать программистом, с кучей багов и неочевидных решений, пришлось много переписывать.

Со временем появились задачи, которые не были привязаны к языку и технологиям в принципе (изначально писал, по сути, плагины к CAD-приложениям), и я попробовал Golang, а вместе с ним и микросервисы, NoSQL, gRPC и прочие модные штуки. Побывал в шкуре админа-девопса, так как новые сервисы я запускал и поддерживал сам.

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

Читать далее
Total votes 20: ↑17 and ↓3+16
Comments12

Вычисления с плавающей запятой: сравниваем вывод в разных языках

Reading time6 min
Views8.3K

С вашим языком программирования все в порядке — он просто производит вычисления с плавающей запятой. Изначально компьютеры могут хранить только целые числа, так что им нужен какой-то способ представления десятичных чисел. Это представление не совсем точное. Именно поэтому, чаще всего, 0.1 + 0.2 != 0.3.

ИТ-эксперт Эрик Уиффин, директор по инжинирингу компании Devetry, провел любопытный эксперимент: сравнил вывод в разных языках программирования при вычислениях с плавающей запятой. В рамках опыта автор продемонстрировал специфику выполнения одной и той же математической операции в нескольких десятках языков.

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

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

Деньги, знания, самооценка: зачем айтишнику становиться ментором

Reading time6 min
Views6.3K

Недавнее исследование MentorcliQ показало, что все компании США из списка топ-50 по версии Fortune используют программы менторства. Также наставничество практикуют 84% компаний, входящих в топ-500. Во время экономического спада из-за Covid-19 у компаний с программами обучения стажёров прибыль была выше, чем у тех, кто не применял такой подход. Но наставничество приносит пользу не только компаниям, но и самим менторам. В статье мы расскажем, в чём заключается эта выгода.

Читать далее
Total votes 30: ↑26 and ↓4+24
Comments6

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

Reading time12 min
Views15K

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

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

Читать далее
Total votes 89: ↑85 and ↓4+84
Comments58

Что читать разработчику C++

Reading time6 min
Views28K

В этой подборке — не только классические рекомендации книг для C++ программистов. Обычно советуют издания про паттерны, развитие стандарта или успехи большой компании. Но за всем этим изобилием «экспертных советов» и best practices теряется одна простая мысль: язык программирования — это средство выражения мысли от одного разработчика другому, а также средство описания пользовательского API в самом широком смысле.

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

Первые 5 книг этой подборки — в меньшей степени про технику, в большей степени об осознанности деятельности C++ программистов любого уровня. Остальные — «золотой фонд» классической литературы для C++ разработчиков.

Читать далее
Total votes 95: ↑85 and ↓10+76
Comments16

Языковая модель GPT-3 умеет объяснять код — рассказываем, как это можно использовать

Reading time8 min
Views11K

За два года с момента релиза GPT-3 эту языковую модель использовали в множестве интересных задач — например, для сочинения поэзии, написания футурологических эссе и подготовки научных статей. Но как алгоритм обработки естественного языка может быть полезен программистам?

На этот вопрос в своей новой статье отвечает британский разработчик Саймон Уиллисон* — директор по архитектуре Eventbrite и один из создателей веб-фреймворка Django. Среди различных вариантов применения языковой модели GPT-3 Уиллисон особенно подчеркивает ее способность объяснять, что делает код. По словам специалиста, в этом GPT-3 поразительно эффективна, поскольку явно обучалась на огромном количестве исходного кода.

Под катом — наш перевод материала, в котором автор демонстрирует недавние примеры из своей практики: объяснение кода на Python, JavaScript, SQL, а также работу в рамках GPT-3 с математическими формулами.

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

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

Почему айтишники не могут пройти собеседование с эйчаром

Reading time7 min
Views84K

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

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

Читать далее
Total votes 281: ↑146 and ↓135+23
Comments378

Предотвращаем утечки памяти в Go, ч. 2. Особенности рантайма

Reading time14 min
Views15K

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

Читать далее
Total votes 83: ↑82 and ↓1+82
Comments8

Предотвращаем утечки памяти в Go, ч. 1. Ошибки бизнес-логики

Reading time11 min
Views18K

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

Но, по сообщениям некоторых пользователей, у программ, написанных на Go, течёт память. Issue-трекер языка Go на github по запросам «high memory usage», «memory leak», «out of memory» выдаёт сотни и тысячи тикетов. А в самом популярном вопросе на stackoverflow по словосочетанию «golang memory» автор пытается разобраться, почему потребление оперативной памяти в рантайме в 4 раза превышает количество реально сделанных аллокаций. Обращения, в которых люди рапортуют о перерасходе оперативной памяти в Go, стали массовым явлением.

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

Читать далее
Total votes 68: ↑66 and ↓2+69
Comments9

Исследуем пользовательский опыт. Как демократизация процессов помогает в UX

Reading time12 min
Views5.4K

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

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

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

Information

Rating
218-th
Works in
Registered
Activity