Всем привет! В этой статье мы расскажем о том, как технология GraalVM Native Image помогла нам решить ряд задач в одном из наших новых продуктов, написанном на Java, расскажем о проблемах, с которыми столкнулись в ходе применения этой технологии, и о том, как эти проблемы решали.
Алексей @moderndev
Разработчик бизнес приложений
Финал WorldSkills, разработка IT-решений для бизнеса — что это, как это было и почему там победили 1С-программисты
14 мин
14KWorldSkills — это международное движение, занимающееся проведением профессиональных соревнований для молодых людей в возрасте до 22 лет.
Международный финал проводится раз в два года. В этом году местом проведения финала стала Казань (прошлый финал был в 2017 году в Абу-Даби, следующий будет в 2021 году в Шанхае).
Чемпионаты WorldSkills — это самые большие мировые чемпионаты профессионального мастерства. Начались они с рабочих профессий, а в последние годы все больше внимания уделяется “профессиям будущего”, включая IT-дисциплины, под которые на чемпионате в Казани был выделен отдельный огромный кластер.
В IT-блоке есть компетенция (конкретный «вид спорта») под названием «Программные решения для бизнеса» (IT Software Solutions for Business).
В каждом из соревнований ограничивается разрешенный список используемых инструментов. И если, например, для «ландшафтного дизайна» ограничивается именно список возможных инструментов (конечно, без указания явного производителя или цвета), то в компетенции «Программные решения для бизнеса» список допущенных технологий, которые могут использовать участники, жестко ограничен с указанием конкретных технологий и конкретных платформ (.NET и Java с определенным набором фреймворков).
Позиция фирмы 1С по этому вопросу следующая: информационные технологии – это очень динамичная область, в мире постоянно появляются новые технологии и средства разработки. С нашей точки зрения правильно позволить специалистам использовать те инструменты, с которыми они хотят и привыкли работать.
Осенью 2018 г дирекция WorldSkills услышала нас. Теперь предстояло обкатать методику включения новых технологий в соревнования. Это непросто.
В инфраструктурный лист чемпионата в Казани включили платформу 1С:Предприятие (1С:Enterprise) и организовали экспериментальную площадку IT Software Solutions for Business Sandbox.
+9
Мой опыт работы в Фирме 1С
8 мин
128KКажется, писали уже обо всех: от Яндекса до Мэйлру, от Люксофта до Туту. Но про самую отстраненную, самобытную и изолированную компанию на ИТ рынке еще не было. Расскажу о своем опыте работы в отечественной Корпорации зла.
К тому чтобы поделиться своим опытом меня подтолкнула эта статья, а не состоявшееся накануне увольнение, я работал в фирме несколько лет назад, поэтому что-то я могу помнить не совсем точно, а что-то могло уже измениться. С другой стороны, 1С — не стартап и изменения там происходят неспешно.
+265
Как мы перевели 10 миллионов строк кода C++ на стандарт C++14 (а потом и на C++17)
7 мин
49KНекоторое время назад (осенью 2016), при разработке очередной версии технологической платформы 1С:Предприятие внутри команды разработки встал вопрос о поддержке нового стандарта C++14 в нашем коде. Переход на новый стандарт, как мы предполагали, позволил бы нам писать многие вещи элегантней, проще и надежней, упрощал поддержку и сопровождение кода. И в переводе вроде бы нет ничего экстраординарного, если бы не масштабы кодовой базы и специфические особенности нашего кода.
Для тех кто не знает, 1С:Предприятие – это среда для быстрой разработки кросс-платформенных бизнес-приложений и runtime для их выполнения в разных ОС и СУБД. В общих чертах в состав продукта входят:
Мы стараемся по максимуму писать один код для разных ОС — кодовая база сервера общая на 99%, клиента — примерно на 95%. Технологическая платформа 1С:Предприятие преимущественно написана на C++ и ниже приведены приблизительные характеристики кода:
И все это хозяйство надо было перевести на C++14. О том, как мы это делали и с чем столкнулись в процессе, мы сегодня и расскажем.
Для тех кто не знает, 1С:Предприятие – это среда для быстрой разработки кросс-платформенных бизнес-приложений и runtime для их выполнения в разных ОС и СУБД. В общих чертах в состав продукта входят:
- Кластер серверов приложений, работает на Windows и Linux
- Клиент, работающий с сервером по http(s) или по собственному бинарному протоколу, работает на Windows, Linux, macOS
- Веб-клиент, работающий в браузерах Chrome, Internet Explorer, Microsoft Edge, Firefox, Safari (написан на JavaScript)
- Среда разработки (Конфигуратор), работает на Windows, Linux, macOS
- Инструменты администрирования серверов приложений, работают на Windows, Linux, macOS
- Мобильный клиент, подключающийся к серверу по http(s), работает на мобильных устройствах под управлением Android, iOS, Windows
- Мобильная платформа — фреймворк для создания оффлайновых мобильных приложений с возможностью синхронизации, работающих на Android, iOS, Windows
- Среда разработки 1C:Enterprise Development Tools, написана на Java
- Сервер Системы Взаимодействия
Мы стараемся по максимуму писать один код для разных ОС — кодовая база сервера общая на 99%, клиента — примерно на 95%. Технологическая платформа 1С:Предприятие преимущественно написана на C++ и ниже приведены приблизительные характеристики кода:
- 10 миллионов строк С++ кода,
- 14 тысяч файлов,
- 60 тысяч классов,
- полмиллиона методов.
И все это хозяйство надо было перевести на C++14. О том, как мы это делали и с чем столкнулись в процессе, мы сегодня и расскажем.
+72
Как мы в «1С: Предприятии» решаем системы алгебраических уравнений
5 мин
16KРабота с числовыми матрицами в целом и решение систем линейных алгебраических уравнений в частности — классическая математическая и алгоритмическая задача, широко используемая при моделировании и расчёте огромного класса бизнес-процессов (например, при расчёте себестоимости). При создании и эксплуатации конфигураций «1С:Предприятия» многие разработчики сталкивались с необходимостью вручную реализовывать алгоритмы расчёта СЛАУ, а после — с проблемой длительного ожидания решения.
«1С:Предприятие» 8.3.14 будет содержать функциональность, позволяющую значительно сократить время решения систем линейных уравнений за счёт использования алгоритма, основанного на теории графов.
Он оптимизирован для использования на данных, имеющих разреженную структуру (то есть содержащие не более 10% ненулевых коэффициентов в уравнениях) и в среднем и в лучшем случаях демонстрирует асимптотику Θ(n⋅log(n)⋅log(n)), где n — количество переменных, а в худшем (при заполненности системы ~100%) его асимптотика сопоставима с классическими алгоритмами ( Θ(n3)). При этом на системах, имеющих ~105 неизвестных, алгоритм показывает ускорение в сотни раз по сравнению с реализованными в специализированных библиотеках линейной алгебры (например, superlu или lapack).
Важно: статья и описанный алгоритм требуют понимания линейной алгебры и теории графов на уровне первого курса университета.
«1С:Предприятие» 8.3.14 будет содержать функциональность, позволяющую значительно сократить время решения систем линейных уравнений за счёт использования алгоритма, основанного на теории графов.
Он оптимизирован для использования на данных, имеющих разреженную структуру (то есть содержащие не более 10% ненулевых коэффициентов в уравнениях) и в среднем и в лучшем случаях демонстрирует асимптотику Θ(n⋅log(n)⋅log(n)), где n — количество переменных, а в худшем (при заполненности системы ~100%) его асимптотика сопоставима с классическими алгоритмами ( Θ(n3)). При этом на системах, имеющих ~105 неизвестных, алгоритм показывает ускорение в сотни раз по сравнению с реализованными в специализированных библиотеках линейной алгебры (например, superlu или lapack).
Важно: статья и описанный алгоритм требуют понимания линейной алгебры и теории графов на уровне первого курса университета.
+9
Знакомство с Timeline в Unity
12 мин
34KПеревод
[В туториале около 50 МБ изображений, в том числе анимированных GIF]
Чтобы рассказать часть сюжета игры или увлечь игрока, разработчики часто используют катсцены. В некоторых играх создают специально отрендеренные анимированные сцены с моделями высокой детализации, в других же применяют настоящие внутриигровые модели. Благодаря использованию внутриигровых моделей можно сэкономить много средств и времени, потому что вам не придётся создавать новые модели, риги и анимации исключительно для катсцен. Но даже если вы используете уже готовые модели, то это не означает, что нужно жертвовать спецэффектами или драматизмом! В Unity есть мощный инструмент, позволяющий создавать захватывающие катсцены — Unity Timeline!
В этом туториале вы познакомитесь с Timeline и узнаете, как создавать катсцены с анимациями и сменами камер.
Скачайте проект-заготовку и готовый проект отсюда.
Откройте файл Starter Project и загрузите сцену Main. Она будет нашим фундаментом. В ней есть герой, стоящий на башне и глядящий на мир:
С вашей помощью он сможет спрыгнуть с башни, развернуться, подойти к сундуку с сокровищами и пинком открыть его. При этих анимациях камера тоже будет менять своё положение.
Чтобы рассказать часть сюжета игры или увлечь игрока, разработчики часто используют катсцены. В некоторых играх создают специально отрендеренные анимированные сцены с моделями высокой детализации, в других же применяют настоящие внутриигровые модели. Благодаря использованию внутриигровых моделей можно сэкономить много средств и времени, потому что вам не придётся создавать новые модели, риги и анимации исключительно для катсцен. Но даже если вы используете уже готовые модели, то это не означает, что нужно жертвовать спецэффектами или драматизмом! В Unity есть мощный инструмент, позволяющий создавать захватывающие катсцены — Unity Timeline!
В этом туториале вы познакомитесь с Timeline и узнаете, как создавать катсцены с анимациями и сменами камер.
Приступаем к работе
Скачайте проект-заготовку и готовый проект отсюда.
Откройте файл Starter Project и загрузите сцену Main. Она будет нашим фундаментом. В ней есть герой, стоящий на башне и глядящий на мир:
С вашей помощью он сможет спрыгнуть с башни, развернуться, подойти к сундуку с сокровищами и пинком открыть его. При этих анимациях камера тоже будет менять своё положение.
+12
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность