Какую новую технику покажут на Параде Победы 24 июня — Российская газета
Олег Салюков, командующий Парадом Победы, который состоится 24 июня на Красной площади, сообщил, что в торжественном марше примут участие современные боевые машины.
«В состав механизированной колонны впервые включены 23 типа образцов новой и модернизированной техники. Впервые по Красной площади пройдут, например, танки Т-90М и Т-80БВМ, боевые машины пехоты «Курганец-25» и «Армата» с 57-мм боевыми модулями, боевая машина пехоты БМП-2 с боевым отделением «Бережок», реактивная система залпового огня «Торнадо-С», тяжелая огнеметная система ТОС-2, зенитная ракетная система С-300В4, береговой ракетный комплекс «Бал». Не стану перечислять все новинки — пусть сохранится интрига. Будет, поверьте, очень интересно», — пообещал главком Сухопутный войск России в интервью газете «Красная звезда».
Он уточнил, что вся эта техника сейчас находится в подмосковном Алабине. Именно там с 8 июня начнутся сводные тренировки пеших и механизированных колонн. Они продолжатся в Алабине до 15 числа. «На 17 и 18 июня намечены ночные репетиции на Красной площади, согласованные с руководством города Москвы. А 20 июня там же, на главной площади страны, состоится генеральная репетиция парада», — сказал Салюков.
Главком подтвердил, что Парад Победы на Красной площади вновь будет содержать воздушную часть. В ней будут участвовать 75 воздушных судов. «В готовности летчиков к воздушной части парада страна и весь мир убедились 9 Мая, когда самолеты и вертолеты, строго соблюдая места в строю, пролетели над Москвой», — напомнил Салюков.
По его словам, военные парады пройдут в 28 городах, в том числе в девяти городах-героях и 19 городах, где дислоцированы штабы военных округов, флотов, общевойсковых армий, Каспийской флотилии и армейских корпусов. «В общей сложности к участию в праздничных мероприятиях привлекается свыше 177 тысяч человек и более 4,5 тысячи единиц вооружения и военной техники. Сомнений быть не может: к парадам и всем остальным мероприятиям войска и силы будут готовы полностью», — заявил Салюков.
SMART-библиотека опубликовала новую подборку детских изданий
На полках библиотек и магазинов представлено огромное количество детских книг — и с каждым днем их число только растет. Но отбор детской литературы — ответственная задача. Поэтому на помощь регулярно приходит SMART-библиотека имени Анны Ахматовой. Специалисты библиотеки выкладывают на своем Youtube-канале видеоролики в рамках рубрики «Детская полка», в которых рассказывают, на что из детских книжных новинок стоит внимания.
Свежую подборку подготовила библиотекарь детского отдела Ольга Соловьева.
— «Детская полка» — рубрика для молодых читателей и их родителей. Вас ждут обзоры самых интересных новых книг, любимой классики и наиболее популярных книг для детей любых возрастов. Она поможет самым юным читателям и их родителям подобрать те книги, которые будут отвечать на важные вопросы и помогать сформировать гармоничную личность, — говорит Ольга.
В новом ролике от 15 марта Ольга рекомендует такие произведения как «День глухого кита», «Не ВКонтакте», «Ежики» Кристины Стрельниковой, «Календарь ма(й)я», «Светлик Тучкин и Украденные каникулы» виктории Ледерман, «Чердакус и Фаня», «Голос» Дарьи Доцук. Кроме того, в список вошли серия «Экстремальный пикник» и книга «Ворон» писателя Евгения Рудашевского, и произведения «Мороженое в вафельных стаканчиках», «Маяк – смотри!», «Внутри что-то есть» Марии Ботевой.
В ходе ролика Ольга подробно рассказывает о каждой истории — для ребят какого возраста она подойдет, какие вопросы там поднимаются, и в какой жизненной ситуации эта книга будет наиболее уместна. А еще добавляет интересные факты о современных детских писателях, работы которых вошли библиотечную выборку: где они родились, где выросли, почему начали писать книги для детей. Это тоже важно: ведь иногда именно личность писателя побуждает родителей и детей взять его книгу в руки.
Посмотреть новый выпуск «Детской полки» и другие видео можно на Youtube-канале «SMART-библиотека имени Анны Ахматовой».
Спишите, вставляя пропущенные окончания. Какую новую информацию вы получили? В каком из
» он пролежал сорок лет»
числительное в этом предложении морфологизованное или нет?
Определите тип каждого текста, способ связи между предложениями и ключевые слова для понимания замысла автора. Докажите свою позицию:
1. Вот я вижу с
…
ебя снова в деревне, глубокой осенью. Дни стоят синеватые, пасмурные. Утром я сажусь в седло и с одной собакой, с ружьем и с рогом уезжаю в поле. Ветер звонит и гудит в дуло ружья, ветер крепко дует навстречу, иногда с сухим снегом. Целый день я скитаюсь по пустым равнинам… Голодный и прозябший, возвращаюсь я к сумеркам в усадьбу, и на душе становится так тепло и отрадно, когда замелькают огоньки. Выселок и потянет из усадьбы запахом дыма.
2.Любите чтение, потому что литература даёт вам обширнейший и глубочайший опыт жизни. Она делает человека интеллигентным, развивает в нём не только чувство красоты, но и понимание — понимание жизни, всех её сложностей, служит проводником в другие эпохи ик другим народам, раскрывает перед вами сердца людей, — словом, делает вас мудрыми.
3. Нынче никто не живет в этом доме, и он стоит одинокий, сумрачный и неприветливый. Таков же, впрочем, был этот серый двухэтажный дом с двумя ярусами маленьких окошек и в те дни, когда в нем еще обитали живые люди и в окна его светили мерцающие огоньки неугасимых лампадок. Дом этот не хотел иметь сообщения ни с кем и немилосердно карал тех из своих обитателей, у кого по какому-нибудь случаю замечалось хоть малейшее желание сблизиться с новым миром.
Задание по русскому языку, помогите пожалуйста
Лексика — наиболее подвижная, изменчивая часть языка. Она чутко откликается на изменения во внешней, не
…
языковой действительности: в материальной и культурной жизни общества, в социальном укладе, в отношениях между людьми. Но значит ли это, что словарь текуч, неустойчив, что темп изменений в нем параллелен темпу общественных перемен? Если бы это было так, то мы бы не понимали не только Пушкина и Поля, но и Чехова и даже Горького. А ведь Пушкин писал более полутора столетий назад. Тем не менее «нам внятно все». о чем? ом сказал в своем творчестве.
Дело в том, что язык по своей природе консервативен. Это хорошо видно по сохраняющимся в языке названиям. Например, мы продолжаем называть пером то, что совсем не похоже на гусиные перья, которыми писали паши предки; нож называем перочинным, хотя никакие перья им давно не чинят.
И подобных примеров множество.
1. В каком значении употребляется слово консервативный?
2. Докажите, что текст научно-популярного стиля?
3. С помощью каких языковых средств осуществляется связь между предложениями, между абзацами?
4. Найдите в тексте заимствованные слова, обьясните их значения. Из какого языка они заимствованы?
5. Какие орфографические, пунктуационные правила можно проиллюстрировать примерами из текста?
Определите стилистическую природу и жанровую принадлежность текста. Сделайте стилистический анализ с примерами из текста (лексические, морфологические
…
, синтаксические особенности).
На заседании администрации Великого Новгорода, прошедшем на этой неделе, было принято решение с 20 сентября начинать отопительный сезон. В первую очередь тепло поступит в больницы, школы и детские сады, а уже затем в наши квартиры. Все неисправности, связанные с отоплением, будут устранены за две недели со дня подачи тепла. Остается только надеется, чтобы к этому времени погода не приготовила неожиданных сюрпризов, как это было в 1996 году.
Помогите решить ………………………………
Перепишите предложения. Найдите в каждом из них случай нарушения лексических норм, подчеркните слово/словосочетание. Укажите в скобках корректный вари
…
ант.
! Переделывать предложение полностью не нужно !
Образец: В ходе проверки были отработаны пять автомобилей. (проверены)
1) Во время проведения данного профилактического мероприятия была проверена привокзальная площадь, пропатрулированы улицы. 2) В рамках операции «Алкоголь» на административном участке мной проведена беседа с гражданами с целью установления и определения мест производства алкогольной продукции. 3) Гр-ка Петрова пояснила, что после ссоры Данилов А.Г. сел за управление т/с в состоянии алкогольного опьянения. 4) В ходе работы по материалу проверки КУСП № 24 от 12.12.2019 года по сообщению Петровой П.П. фактов нарушения тишины и покоя жильцами дома 12 по ул. Ленина не было. 5) Семья проживает в трехкомнатной благоустроенной квартире, взаимоотношения в семье доброжелательные, доверчивые.
Многозначные слово — это
1)Слово имеющие несколько лексических значений
2)Слово имеющие несклоько лексических значений,сходных между собой
3)Противопо
…
ложные по смыслу слова
4)Похожие по лексическому значению слова
синтаксический разбор предложения ярко на небе сверкали звёзды.
Практическая работа по теме односоставные предложения
Дайте характеристику предложений(ремарки к первому действию пьесы М.Горького «На дне»)
Подвал
…
похожий на пещеру. Потолок-тяжелые каменные своды, закопченные, с обвалившейся штукатуркой
синтаксический разбор предложения ярко на небе сверкали звёзды.
Аналитики выяснили, какую деталь чаще всего меняют в новом автомобиле
МОСКВА, 25 мар — ПРАЙМ. Большинство водителей, которые сразу после покупки хотят что-то усовершенствовать в своей новой машине, чаще всего начинают с колес, показало исследование сервиса «Авто.ру», с которым ознакомилось РИА Новости.
Россияне назвали главные сложности при продаже автомобиля
Сервис опросил около 1 тысячи пользователей в России и выяснил, что 75% из них дорабатывают свои автомобили после покупки.
«Большинство делают «апгрейд» колёс: об этом заявили 22% пользователей. Такую позицию можно назвать разумной, ведь хорошие покрышки — важный элемент безопасности, а грамотный подбор дисков поможет продлить жизнь подвеске и уменьшить расход топлива», — рассказали аналитики.
Кроме того, каждый десятый в первую очередь едет на тонировку, устанавливает или меняет аудиосистему и делает шумоизоляцию. В приоритетах у водителей также защита кузова от внешних повреждений: 7% респондентов предпочитают сначала обработать машину «антикором» или наклеить антигравийную пленку.
Автоэксперт назвал неожиданные способы сэкономить на бензине
Четверть опрошенных выбрали несколько пунктов из списка обновлений. Они, например, ставят сигнализацию, тонируют заднее стекло и ставят защитную сетку на решетку радиатора. Лишь 3% сразу после покупки автомобиля дорабатывают технику (двигатель, трансмиссию, подвеску и так далее), либо внешнюю и внутреннюю эстетику. Устанавливают багажник на крышу или рейлинги также только 3% автомобилистов. И всего 2% опрошенных докупают фаркоп и оборудование для офф-роуда.
Примечательно, что 45% автовладельцев предпочитают дорабатывать свои машины самостоятельно. А большинство тех, кто выбирают довериться профессионалам (33% респондентов) обращаются в сторонние сервисы, потому что те же услуги здесь обойдутся дешевле, чем у дилера. К услугам официальных сервисов прибегают 24% респондентов. Остальные устанавливают дополнительное оборудование непосредственно у производителя.
«Ситилинк»: какую технику приобретали россияне зимой 2021
Нынешней зимой погодные условия повлияли на продажи техники в сети магазинов «Ситилинк». Так, например, в середине февраля, в период прохождения циклона «Волькер» продажи снегоуборочной техники выросли до 8,5 раз.
Аналитики сети магазинов электроники и бытовой техники «Ситилинк» сравнили продажи периода декабрь 2020-февраль 2021 с аналогичным периодом 2019/2020 года и зафиксировали рост продаж в 4 раза в денежном выражении и в 3,3 раза в количестве реализованных единиц.
Холода и обильные снегопады оказали сильное влияние на продажи оборудования для уборки снега, продажи бытовых обогревателей и пускозарядных систем для автомобилей.
В число самых популярных товаров в этот период вошли: снегоуборочная техника (рост в 4,5 раза в денежном выражении и в 4 раза в штучном выражении), лопаты (рост в 4 раза в денежном выражении и в 3 раза в штучном выражении), бытовые обогреватели (рост в 3 раза в денежном и в штучном выражении), а также пускозарядные комплексы для запуска автомобилей в условиях сильных холодов (рост в 3,5 раза в денежном и в штучном выражении).
Наиболее активно все категории продавались в январе и в феврале этого года, а, например, отдельно продажи снегоуборочной техники выросли до 8,5 раз в период прохождения циклона «Волькер» в середине месяца.
«Особенности этой зимы повлияли на продажи в отдельных категориях прямым образом. Техника для уборки приобреталась как частными лицами, так и организациями для преодоления последствий значительных снегопадов», – прокомментировал итоги продаж в зимний сезон Олег Пчельников, директор по закупкам компании «Ситилинк».
«Ситилинк» – одна из крупнейших сетей магазинов электроники и бытовой техники, входит в ГК Merlion. На рынке с 2008 года. В инфраструктуре компании интернет-магазин, более 800 магазинов и пунктов выдачи заказов в 360 городах России.
Читайте также:
Сбербанк может купить «Ситилинк»
***
Самые интересные новости читайте в наших группах в Facebook и VKontakte, а также на канале Яндекс.Дзен.
Больше новостей и возможность поделиться своим мнением в комментариях на нашем канале в Telegram.
И подписывайтесь на итоговую рассылку самых важных новостей.
New Retail
Стоит ли брать машину в кредит
Не все автолюбители располагают нужной суммой для покупки выбранной модели машины. Решением для многих в этой ситуации становится автокредитование. Но стоит ли брать машину в кредит? С одной стороны, это реальная возможность разделить большой платеж на несколько посильных частей. С другой стороны, за то время, что автолюбитель будет выплачивать кредит, авто может выйти из строя и взносы при этом не аннулируются.
Преимущества кредитного договора
- Банки часто дают кредиты без поручителей и дополнительных залогов – под залог нового транспортного средства. Это повышает безопасность автокредита: если Вы не сможете вносить платежи, Вы потеряете только купленный автомобиль.
- Большинство банков требует у заемщика оформления страховки на авто. Это гарантирует, что машина останется на ходу и будет отлично функционировать.
- Благодаря кредиту Вы можете выбирать из большого количества как новых, так и подержанных авто различной стоимости.
- Многие автосалоны с банками связывают партнерские отношения. Это позволит получить при оформлении кредита скидки и бонусы, низкие проценты или даже нулевую ставку.
- Кредит поможет Вам купить комфортабельный дорогой автомобиль при среднем доходе.
- Разнообразие программ автокредитования позволяет выбрать наиболее выгодную схему сотрудничества.
- Вы можете досрочно погасить кредит, реструктурировать его и др.
Недостатки автокредитования
- Переплата по кредиту за 5 лет в среднем составляет 50% от стоимости автомобиля. При этом машины с каждым годом дешевеют.
- Сумма ежемесячного взноса может измениться только в результате реструктуризации, которой довольно сложно добиться. Такая ситуация может возникнуть, если Вы потеряли работу или вынуждены платить, например, за ремонт или лечение.
- Банк имеет право увеличивать проценты по кредитам или реструктурировать долг по своему усмотрению.
- Оформление кредита требует времени и сил: нужно собрать документы, подать их на рассмотрение, дождаться решения и подписать множество документов.
- По сути, до окончания выплат по кредиту автомобиль принадлежит Вам не полностью. Вы не сможете его подарить или продать.
- За каждые сутки просрочки платежа начисляется пеня.
- Платежи нельзя пропускать.
- Во время оплаты кредита при среднем уровне доходов придется отказаться от развлечений и отдыха – путешествий, поездок в другие города, экскурсий, проведения праздников и др.
- Если Вы не выплатили долг, банк может начать процедуру отчуждения имущества. В результате автолюбитель может остаться и без авто, и без денег. Некоторые финансовые организации начисляют пеню, которую нужно платить даже после отчуждения имущества. Это связано с тем, что штрафы в тело кредита не входят.
Все штрафные санкции касаются только нерадивых плательщиков. С заемщиками, которые своевременно делают взносы и ответственно подходят к вопросам кредитования, не возникнет подобных ситуаций.
Подводные камни кредитования
- При покупке транспортного средства в кредит нужно оформить полис КАСКО. Стоимость страховки составляет приблизительно 8% от стоимости автомобиля в год. Если в автосалоне Вам предложили специальную цену или беспроцентный кредит, то из-за КАСКО Вы не получите никакой выгоды. А еще придется оформить и ОСАГО.
Каждый банк продвигает услуги страховой компании-партнера. В результате Вам могут предложить не самую демократичную по стоимости программу.
Также стоит учесть, что многие банки предусматривают комиссию за открытие и закрытие счета, его обслуживание. Это также составляет несколько процентов от стоимости выбранного автомобиля.
- Покупка авто за наличные более выгодна, чем автокредитование. Но зачастую автовладелец принимает решение исходя из сроков получения авто. Если Вы копите деньги, то можете потратить пару лет, а если берете кредит в банке, то можете сесть за руль уже через несколько дней.
- Беспроцентный кредит на деле часто оборачивается высокими процентными ставками, дорогой страховкой, небольшим сроком погашения (не более 2 лет), 50% первоначальным взносом. При таком кредитовании выбор моделей авто достаточно бедный.
- Экспресс-кредиты, кредиты без справок о доходах и первоначального взноса должны насторожить. Кредиты на самых выгодных для заемщика условиях выдаются с подтверждением доходов, приличным первым взносом и полной страховкой.
Когда стоит брать кредит?
Смело покупать авто в кредит можно в следующих случаях:
- Для бизнеса (например, такси). Автомобиль, который Вы используете, принесет Вам постоянный доход и окупит стоимость кредита.
- Резкое повышение цен. В такой ситуации гораздо выгоднее взять кредит и получить авто сейчас, чем бесконечно копить наличные.
- Решение транспортного вопроса. Это касается в первую очередь жителей пригорода, где общественный транспорт ходит нерегулярно или не ходит вообще (в ночное время).
- Приобретение уникального авто. Кредит можно брать, если случайно Вам попался автомобиль, который Вы очень долго искали: например, машина из лимитированной серии, которой нет в свободной продаже.
Оправдан кредит и в том случае, если:
- Ваш доход высок, но и тратите Вы много. Кредит планируете погасить за несколько месяцев.
- Вы располагаете значительной суммой (70% от суммы) и берете кредит на небольшой срок (год).
- У Вас есть сумма для покупки базовой комплектации авто. Небольшой кредит нужен для приобретения дополнительного комплекта опций.
Можно сделать следующий вывод: кредит выгоднее всего брать на непродолжительное время – это позволит избежать многотысячных переплат.
Когда кредит не нужен?
Стоит несколько раз подумать, прежде чем брать кредит, если:
- Вы располагаете единственным источником дохода;
- Платеж по кредиту равен 30% от ежемесячного дохода;
- Вы покупаете первый автомобиль. Расходы на обслуживание авто, ремонт и топливо нередко становятся сюрпризом для начинающих автолюбителей.
Чтобы взять кредит, у Вас должна быть постоянная работа и доход, позволяющий вносить обязательные платежи. Остается только выбрать авто и банк с подходящей программой. При оформлении документов внимательно изучайте каждый пункт, а лучше проконсультируйтесь насчет возможных рисков с проверенным юристом. Просчитайте итоговую стоимость кредита, ежемесячные платежи и потенциальные форс-мажорные ситуации. В этом случае кредит будет безопасным и не доставит Вам проблем.
Кредитный калькулятор КИА
новая форма и правила заполнения — СКБ Контур
С чем связаны изменения
30 октября опубликован Приказ ФНС России от 15.10.2020 № ЕД-7-11/751@. Он изменил форму, порядок заполнения и электронный формат. Приказ вступает в силу начиная с представления РСВ за 2020 год.
Поправки к форме и порядку заполнения связаны с изменениями в налоговом законодательстве. Так, в 2020 году отменили отчет о среднесписочной численности, ввели пониженные тарифы взносов для субъектов МСП, а с 1 января 2021 года снизятся взносы для IT-сферы.
Сроки сдачи остались прежними. Представьте РСВ за 2020 год не позднее 1 февраля 2021 года, так как 30 января выпадает на субботу.
Среднесписочная численность на титульном листе
На титульный лист добавили новый реквизит — «Среднесписочная численность (чел.)». Её определяют в порядке, установленном Приказом Росстата от 27.11.2019 № 711. По этим же правилам страхователи рассчитывали показатель для отменённой формы «Сведения о среднесписочной численности работников за предшествующий календарный год».
Поправки в ч.1 НК РФ внёс Федеральный закон от 28.01.2020 № 5-ФЗ. П. 3 ст. 80 НК РФ в новой редакции звучит так: «Сведения о среднесписочной численности работников представляются в налоговые органы плательщиками страховых взносов, производящими выплаты и иные вознаграждения физическим лицам, в составе расчёта по страховым взносам». По правилам старой редакции страхователи подавали сведения за предшествующий календарный год в отдельном отчёте и делали это раз в год — не позднее 20 января текущего года.
Также в перечень сведений, которые налоговые органы вправе требовать от плательщиков страховых взносов, добавили «сведения о среднесписочной численности работников, подлежащие включению в РСВ» (пп. 7 п. 7 ст. 80 НК РФ).
Положения в новой редакции применяются к правоотношениям, связанным с представлением РСВ, начиная с расчёта по итогам 2020 года.
За 2020 год не нужно сдавать сведения о среднесписочной численности до 20 января 2021 года по специальной форме. Достаточно указывать среднесписочную численность в специально отведённом поле на титульном листе РСВ за расчётный период 2020 года и в последующие периоды.
В Экстерне появилось много фишек, чтобы вы могли заполнить РСВ быстро и без ошибок. Попробуйте, это бесплатно
Новое приложение 5.1 для страхователей из IT-сферы и электронщиков
Раздел 1 дополнили приложением 5.1. С I-го квартала 2021 года его заполняют IT-компании и разработчики и проектировщики электроники, чтобы подтвердить соответствие условиям применения пониженного тарифа.
С 2021 года для российских организаций этих категорий действуют пониженные ставки страховых взносов (ст. 427 НК РФ в ред. Федерального закона от 31.07.2020 № 265-ФЗ): ОПС — 6 %, ВНиМ — 1,5%, ОМС — 0,1 %.
Условия для применения пониженного тарифа (ст. 427 НК РФ):
- Доля доходов от основной деятельности по итогам расчётного периода — не менее 90 % в сумме всех доходов за период;
- Организация имеет госаккредитацию или включена в реестр организаций, оказывающих услуги по проектированию и разработке электронной продукции, который ведёт Минпромторг;
- Среднесписочная численность работников за расчётный период — не менее 7 человек.
В поле 001 приложения 5.1 указывается код плательщика:
- «1» — плательщики из пп. 3 п. 1 ст. 427 НК РФ;
- «2» — плательщики из пп. 18 п. 1 с. 427 НК РФ.
Остальные строки идентичны, кроме строки 060. Она не заполняется, если в поле 001 указан код «2».
Новые коды тарифа плательщика и категорий застрахованных лиц для сферы электроники
При заполнении Приложений 1 и 2 к Разделу 1 РСВ проектировщики и разработчики изделий электронной компонентной базы и электронной (радиоэлектронной) продукции будут указывать код тарифа «22».
При заполнении Раздела 3 с I квартала 2021 года им следует применять соответствующие коды категорий застрахованных лиц из приложения № 7:
- ЭКБ — физлица, с выплат и вознаграждений которым исчисляются страховые взносы;
- ВЖЭК — застрахованные в системе ОПС лица из числа иностранных граждан или лиц без гражданства, временно проживающие на территории РФ. Сюда же относятся временно пребывающие на территории РФ иностранные граждане или лица без гражданства, которым предоставлено временное убежище, с выплат и вознаграждений которым исчисляются страховые взносы;
- ВПЭК — иностранные граждане или лица без гражданства (за исключением высококвалифицированных специалистов), временно пребывающие на территории РФ, с выплат и вознаграждений которым исчисляются страховые взносы.
Елена Кулакова, эксперт по персучёту и страховым взносам
Новые и улучшенные функции | Последний выпуск Photoshop
Узнайте, что нового в последней версии Photoshop.
a {
цвет: #fff; !важный;
текст-украшение: нет! важно;
}
]]>
Выпуск от мая 2021 г. (версия 22.4)
.dexter-FlexContainer-Items {
минимальная высота: 50 пикселей;
маржа: -10px;
}
# root_content_flex_items_position_position-par_multi_column_2386257>.dexter-FlexContainer-Items> * {
граница: 0 сплошная прозрачная; ширина границы: 10 пикселей;}
# root_content_flex_items_position_position-par_multi_column_2386257> .dexter-FlexContainer-Items> *: nth-child (1) {
ширина: 33%; максимальная ширина: 33%;
мин-высота: авто;
заказ: 1;}
# root_content_flex_items_position_position-par_multi_column_2386257> .dexter-FlexContainer-Items> *: nth-child (2) {
ширина: 33%; максимальная ширина: 33%;
мин-высота: авто;
заказ: 2;}
]]>
Сохранить копию
Необходимо сохранить копию своей работы с другим именем или другим форматом файла? Используйте «Файл»> «Сохранить копию» и сохраните версию в выбранном вами формате.
Улучшенные нейронные фильтры
Нейронные фильтры стали еще лучше! С легкостью используйте Colorize, чтобы без труда оживить серые изображения, или Depth Blur, чтобы реалистично размыть фон в мгновение ока.
Выпуск от апреля 2021 г. (версия 2.4)
В выпуске, выпущенном в мае 2021 года, Photoshop на iPad 2.4.1 содержит исправления некоторых серьезных проблем, о которых сообщили клиенты. Подробнее см. В разделе Исправленные проблемы в Photoshop.
.dexter-FlexContainer-Items {
минимальная высота: 50 пикселей;
маржа: -10px;
}
# root_content_flex_items_position_position-par_multi_column_1227261039>.dexter-FlexContainer-Items> * {
граница: 0 сплошная прозрачная; ширина границы: 10 пикселей;}
# root_content_flex_items_position_position-par_multi_column_1227261039> .dexter-FlexContainer-Items> *: nth-child (1) {
ширина: 33%; максимальная ширина: 33%;
мин-высота: авто;
заказ: 0;}
# root_content_flex_items_position_position-par_multi_column_1227261039> .dexter-FlexContainer-Items> *: nth-child (2) {
ширина: 33%; максимальная ширина: 33%;
мин-высота: авто;
заказ: 1;}
# root_content_flex_items_position_position-par_multi_column_1227261039>.dexter-FlexContainer-Items> *: nth-child (3) {
ширина: 33%; максимальная ширина: 33%;
мин-высота: авто;
заказ: 2;}
]]>
Что нового в Swift 5.5? — Взлом с помощью Swift
До
WWDC21 осталось меньше двух недель, что означает, что первая бета-версия Swift 5.5 уже почти здесь, и она содержит массивных улучшений — async / await, актеров, свойства бросания и многое другое. Впервые, вероятно, будет проще спросить: «Что не является новым в Swift 5.5», потому что многое меняется.
В этой статье я рассмотрю каждое из изменений с примерами кода, чтобы вы могли увидеть, как каждое из них работает на практике.Прежде чем мы начнем, есть два важных предупреждения:
- Это первый раз, когда так много огромных предложений Swift Evolution были так тесно связаны между собой, поэтому, хотя я попытался организовать эти изменения в единый поток, некоторые части работы по параллелизму имеют смысл только после того, как вы прочитали несколько предложения.
- Некоторые основные части этого все еще проходят Swift Evolution, и хотя они в настоящее время доступны в последних снимках Swift 5.5, они могут развиваться дальше до и даже после WWDC21. Эта статья почти наверняка изменится, когда все уляжется.
Спонсируйте взлом со Swift и войдите в крупнейшее в мире сообщество Swift!
Async / ожидание
SE-0296 вводит в Swift асинхронные (асинхронные) функции, что позволяет нам запускать сложный асинхронный код почти так же, как если бы он был синхронным. Это делается в два этапа: помечаем асинхронные функции новым ключевым словом async
, затем вызываем их с помощью ключевого слова await
, как и в других языках, таких как C # и JavaScript.
Чтобы увидеть, как async / await помогает языку, полезно посмотреть, как мы ранее решали ту же проблему. Обработчики завершения обычно используются в коде Swift, чтобы позволить нам отправлять обратно значения после возврата из функции, но, как вы увидите, у них был сложный синтаксис.
Например, если бы мы хотели написать код, который извлекает 100000 записей погоды с сервера, обрабатывает их для расчета средней температуры с течением времени, а затем загружает полученное среднее значение обратно на сервер, мы могли бы написать это:
func fetchWeatherHistory (завершение: @escaping ([Double]) -> Void) {
// Здесь сложный сетевой код; мы просто отправим обратно 100000 случайных значений температуры
DispatchQueue.global (). async {
let results = (1 ... 100_000) .map {_ в Double.random (in: -10 ... 30)}
завершение (результаты)
}
}
func calculateAverageTemperature (для записей: [Double], завершение: @escaping (Double) -> Void) {
// Суммируем наш массив, затем делим на размер массива
DispatchQueue.global (). Async {
пусть total = records.reduce (0, +)
пусть среднее = всего / Двойное (records.count)
завершение (среднее)
}
}
func upload (результат: Double, завершение: @escaping (String) -> Void) {
// Более сложный сетевой код; мы просто отправим обратно "ОК"
DispatchQueue.global (). async {
завершение («ОК»)
}
}
Я заменил реальный сетевой код поддельными значениями, потому что сетевая часть здесь не имеет отношения. Важно то, что выполнение каждой из этих функций может занять некоторое время, поэтому вместо того, чтобы блокировать выполнение функции и возвращать значение напрямую, мы вместо этого используем завершение, чтобы отправить что-то обратно только тогда, когда мы готовы.
Когда дело доходит до использования этого кода, нам нужно вызывать их один за другим в цепочке, обеспечивая закрытие завершения для каждого из них, чтобы продолжить цепочку, например:
fetchWeatherHistory {записи в
CalculateAverageTemperature (для: записей) {среднее значение в
загрузить (результат: средний) {ответ в
print ("Ответ сервера: \ (ответ)")
}
}
}
Надеюсь, вы заметите проблемы с этим подходом:
- Эти функции могут вызвать свой обработчик завершения более одного раза или забыть вызвать его полностью.
- Синтаксис параметра
@escaping (String) -> Void
может быть трудночитаемым. - На месте вызова мы получаем так называемую пирамиду гибели, в которой код со все большим отступом для каждого обработчика завершения.
- До тех пор, пока Swift 5.0 не добавил тип
Result
, было труднее отправлять сообщения об ошибках с помощью обработчиков завершения.
Начиная с Swift 5.5, мы теперь можем очистить наши функции, пометив их как асинхронно возвращающие значение, а не полагаясь на обработчики завершения, например:
func fetchWeatherHistory () async -> [Double] {
(1...100_000) .map {_ в Double.random (in: -10 ... 30)}
}
func calculateAverageTemperature (для записей: [Double]) async -> Double {
пусть total = records.reduce (0, +)
пусть среднее = всего / Двойное (records.count)
средний доход
}
func upload (результат: Double) async -> String {
"ОК"
}
Это уже устранило большую часть синтаксиса, связанного с асинхронным возвратом значений, но на месте вызова он стал еще чище:
func processWeather () async {
let records = await fetchWeatherHistory ()
let average = await calculateAverageTemperature (для: записей)
let response = await upload (результат: средний)
print ("Ответ сервера: \ (ответ)")
}
Как видите, все замыкания и отступы исчезли, что привело к тому, что иногда называют «прямолинейным кодом» — за исключением ключевых слов await
, он выглядит точно так же, как синхронный код.
Есть несколько простых и конкретных правил работы асинхронных функций:
- Синхронные функции не могут просто напрямую вызывать асинхронные функции — это не имеет смысла, поэтому Swift выдаст ошибку.
- Асинхронные функции могут вызывать другие асинхронные функции, но они также могут вызывать обычные синхронные функции, потому что Swift может неявно преобразовывать их, точно так же, как функции, не вызывающие выброса, могут использоваться как функции выброса, если это необходимо.
- Если у вас есть асинхронные и синхронные функции, которые могут быть вызваны одинаково, Swift предпочтет ту, которая соответствует вашему текущему контексту — если сайт вызова в настоящее время является асинхронным, то Swift вызовет асинхронную функцию, в противном случае он вызовет синхронную функцию.
Последний пункт важен, потому что он позволяет авторам библиотек предоставлять как синхронные, так и асинхронные версии своего кода без необходимости специально называть асинхронные функции.
Добавление async
/ await
идеально сочетается с try
/ catch
, что означает, что асинхронные функции и инициализаторы могут вызывать ошибки при необходимости. Единственная оговорка здесь заключается в том, что Swift обеспечивает соблюдение определенного порядка для ключевых слов, и этот порядок обратный между сайтом вызова и функцией.
Например, у нас могут быть функции, которые пытаются получить количество пользователей с сервера и сохранить их на диск, обе из которых могут завершиться ошибкой из-за выдачи ошибок:
перечисление UserError: Error {
case invalidCount, dataTooLong
}
func fetchUsers (count: Int) async throws -> [String] {
if count> 3 {
// Не пытайтесь получить слишком много пользователей
бросить UserError.invalidCount
}
// Здесь сложный сетевой код; мы просто отправим обратно до `count` пользователей
return Array ([«Антони», «Карамо», «Тан»].префикс (количество))
}
func save (users: [String]) async throws -> String {
пусть savedUsers = users.joined (разделитель: ",")
if savedUsers.count> 32 {
бросить UserError.dataTooLong
} еще {
// Фактический код сохранения будет здесь
вернуть "Saved \ (savedUsers)!"
}
}
Как видите, обе эти функции помечены как async throws
— это асинхронные функции, и они могут вызывать ошибки.
Когда дело доходит до , вызывающего им, порядок ключевых слов меняется на попробуйте ждать
, а не ждать попробуйте
, например:
func updateUsers () async {
делать {
let users = попробуйте await fetchUsers (количество: 3)
let result = try await save (пользователи: пользователи)
печать (результат)
} ловить {
print ("Ой!")
}
}
Итак, «асинхронный, бросающий» в определении функции, но «бросающий, асинхронный» в месте вызова — подумайте об этом как о раскручивании стека.Мало того, что пытается await
читать немного более естественно, чем await try
, но он также больше отражает то, что на самом деле происходит: мы ждем завершения некоторой работы, и когда завершает , она может закончиться .
С async / await now в самом Swift тип Result
, представленный в Swift 5.0, становится гораздо менее важным, поскольку одним из его основных преимуществ было улучшение обработчиков завершения. Это не означает, что Result
бесполезен, потому что это лучший способ сохранить результат операции для последующей оценки.
Важно: Создание функции асинхронной не означает, что она волшебным образом выполняется одновременно с другим кодом. Это означает, что, если вы не укажете иное, вызов нескольких асинхронных функций по-прежнему будет запускать их последовательно.
Все функции async
, которые вы видели до сих пор, в свою очередь, вызывались другими функциями async
, что является преднамеренным: само по себе это предложение Swift Evolution на самом деле не предоставляет никакого способа запуска асинхронного кода из синхронного контекста. .Вместо этого эта функциональность определена в отдельном предложении по структурированному параллелизму, хотя, надеюсь, мы увидим некоторые важные обновления и в Foundation.
Async / await: последовательности
SE-0298 представляет возможность перебора асинхронных последовательностей значений с использованием нового протокола AsyncSequence
. Это полезно для мест, когда вы хотите обрабатывать значения в последовательности по мере их появления, а не предварительно вычислять их все сразу — возможно, потому, что на их вычисление требуется время, или потому, что они еще недоступны.
Использование AsyncSequence
почти идентично использованию Sequence
, за исключением того, что ваши типы должны соответствовать AsyncSequence
и AsyncIterator
, а ваш метод next ()
должен быть помечен как async
. Когда придет время для завершения вашей последовательности, убедитесь, что вы отправили назад nil
из next ()
, так же, как с Sequence
.
Например, мы могли бы создать последовательность DoubleGenerator
, которая начинается с 1 и удваивает свой номер при каждом вызове:
struct DoubleGenerator: AsyncSequence {
Элемент typealias = Int
struct AsyncIterator: AsyncIteratorProtocol {
var current = 1
мутирующая функция next () async -> Int? {
отложить {текущий & * = 2}
if current <0 {
вернуть ноль
} еще {
возврат тока
}
}
}
func makeAsyncIterator () -> AsyncIterator {
AsyncIterator ()
}
}
Подсказка: Если вы просто удалите «async» везде, где оно встречается в этом коде, у вас будет действующая последовательность
, делающая то же самое — вот насколько они похожи.
Когда у вас есть асинхронная последовательность, вы можете перебирать ее значения в цикле, используя для await
в асинхронном контексте, например:
func printAllDoubles () async {
для числа ожидания в DoubleGenerator () {
печать (число)
}
}
Протокол AsyncSequence
также предоставляет реализации по умолчанию для множества общих методов, таких как map ()
, compactMap ()
, allSatisfy ()
и другие.Например, мы могли бы проверить, выводит ли наш генератор определенное число, например:
func containsExactNumber () async {
let doubles = DoubleGenerator ()
let match = await doubles.contains (16_777_216)
печать (совпадение)
}
Опять же, чтобы использовать это, вам нужно находиться в асинхронном контексте.
Эффективные свойства только для чтения
SE-0310 обновляет свойства Swift только для чтения для поддержки async.
и выдают
ключевых слов, по отдельности или вместе, что делает их значительно более гибкими.
Чтобы продемонстрировать это, мы могли бы создать структуру BundleFile
, которая пытается загрузить содержимое файла в пакет ресурсов нашего приложения. Поскольку файла может не быть, он может быть там, но не может быть прочитан по какой-то причине или может быть читаемым, но настолько большим, что требуется время для чтения, мы могли бы отметить свойство содержимого
как
async выдает
следующим образом:
перечисление FileError: Error {
чехол отсутствует, нечитаемый
}
struct BundleFile {
пусть имя файла: Строка
var contents: String {
get async throws {
охранник let url = Bundle.main.url (forResource: filename, withExtension: nil) else {
бросить FileError.missing
}
делать {
вернуть try String (contentsOf: url)
} ловить {
бросить FileError.unreadable
}
}
}
}
Поскольку содержимое
одновременно асинхронно и выбрасывается, мы должны использовать try await
при попытке его чтения:
func printHighScores () async throws {
let file = BundleFile (имя файла: "рекорды")
попробуйте дождаться печати (файл.содержание)
}
Структурированный параллелизм
SE-0304 представляет целый ряд подходов к выполнению, отмене и мониторингу параллельных операций в Swift и основывается на работе, представленной последовательностями async / await и async.
Для упрощения демонстрации, вот несколько примеров функций, с которыми мы можем работать - асинхронная функция для имитации получения определенного количества показаний погоды для определенного места и синхронная функция для вычисления того, какое число находится в определенной позиции в Последовательность Фибоначчи:
перечисление LocationError: Error {
случай неизвестен
}
func getWeatherReadings (для местоположения: String) async throws -> [Double] {
сменить местоположение {
корпус «Лондон»:
возврат (1...100) .map {_ в Double.random (in: 6 ... 26)}
корпус «Рим»:
return (1 ... 100) .map {_ в Double.random (in: 10 ... 32)}
дело «Сан-Франциско»:
return (1 ... 100) .map {_ в Double.random (in: 12 ... 20)}
По умолчанию:
бросить LocationError.unknown
}
}
func fibonacci (of number: Int) -> Int {
var first = 0
var second = 1
для _ в 0 .. <число {
пусть предыдущий = первый
первый = второй
второй = предыдущий + первый
}
вернуться первым
}
Самый простой асинхронный подход, представленный структурированным параллелизмом, - это возможность использовать атрибут @main
для немедленного перехода в асинхронный контекст, что делается просто путем пометки метода main ()
с async
, например:
@ основной
struct Main {
static func main () async throws {
let readings = попробуйте await getWeatherReadings (для: "Лондон")
print ("Показания: \ (показания)")
}
}
Совет: Перед выпуском также должна быть возможность запускать асинхронный код непосредственно в main.swift, без использования атрибута @main
.
Основные изменения, внесенные структурированным параллелизмом, поддерживаются двумя новыми типами: Task
и TaskGroup
, которые позволяют нам выполнять параллельные операции индивидуально или скоординированно.
В простейшей форме вы можете начать параллельную работу, создав новый объект Task
и передав ему операцию, которую хотите запустить. Это немедленно начнет работать в фоновом потоке, и вы можете использовать await
, чтобы дождаться возврата его законченного значения.
Итак, мы можем вызвать fibonacci (of :)
много раз в фоновом потоке, чтобы вычислить первые 50 чисел в последовательности:
func printFibonacciSequence () async {
let task1 = Task {() -> [Int] в
var числа = [Int] ()
для i в 0 .. <50 {
пусть результат = фибоначчи (из: i)
numbers.append (результат)
}
вернуть числа
}
let result1 = await task1.value
print ("Первые 50 чисел в последовательности Фибоначчи: \ (результат1)")
}
Как видите, мне нужно было явно написать Task {() -> [Int] в
, чтобы Swift понимал, что задача вернется, но если ваш код задачи проще, в этом нет необходимости.Например, мы могли написать это и получить точно такой же результат:
let task1 = Task {
(0 .. <50) .map (фибоначчи)
}
Опять же, задача запускается, как только она была создана, и функция printFibonacciSequence ()
продолжит работу в каком бы потоке она ни была, пока вычисляются числа Фибоначчи.
Совет: Поскольку задача немедленно запускает свою операцию, а не сохраняет ее для дальнейшего использования, это закрытие без экранирования , что означает, что если вы используете Task
внутри класса или структуры, вам не нужно использовать self
для доступа к свойствам или методам.
Когда дело доходит до чтения законченных чисел, await task1.value
гарантирует, что выполнение printFibonacciSequence ()
приостанавливается до тех пор, пока вывод задачи не будет готов, после чего он будет возвращен. Если вам все равно, что возвращает задача - если вы просто хотите, чтобы код запускался и заканчивался в любое время, - вам не нужно нигде хранить задачу.
Для операций задачи, которые вызывают неперехваченные ошибки, чтение свойства value
вашей задачи также автоматически вызовет ошибки.Итак, мы могли бы написать функцию, которая выполняет две части работы одновременно, а затем ожидает их завершения:
func runMultipleCalculations () async throws {
let task1 = Task {
(0 .. <50) .map (фибоначчи)
}
let task2 = Task {
попробуйте await getWeatherReadings (для: "Рим")
}
let result1 = await task1.value
let result2 = попробуйте await task2.value
print ("Первые 50 чисел в последовательности Фибоначчи: \ (результат1)")
print ("Погода в Риме: \ (результат2)")
}
Swift предоставляет нам встроенные приоритеты задач: высокий
, по умолчанию
, низкий
и фон
.В приведенном выше коде он не устанавливается специально, поэтому он получит по умолчанию
, но мы могли бы указать что-то вроде Task (priority: .high)
, чтобы настроить это. Если вы пишете только для платформ Apple, вы также можете использовать более знакомые приоритеты userInitiated
вместо высокого и утилита
вместо low
, но вы не можете получить доступ к userInteractive
, потому что это зарезервировано для основного потока.
Помимо выполнения операций, Task
также предоставляет нам несколько статических методов для управления запуском нашего кода:
- Вызов
Task.sleep ()
переведет текущую задачу в спящий режим на определенное количество наносекунд. Пока не появится что-то лучшее, это означает, что 1_000_000_000 будет означать 1 секунду. - Вызов
Task.checkCancellation ()
проверит, запрашивал ли кто-то отмену этой задачи, вызвав его методcancel ()
, и, если да, выдастCancellationError
. - Вызов
Task.yield ()
приостанавливает текущую задачу на несколько секунд, чтобы дать некоторое время любым задачам, которые могут ожидать, что особенно важно, если вы выполняете интенсивную работу в цикле.
В следующем примере кода вы можете увидеть как спящий режим, так и отмену, который переводит задачу в спящий режим на одну секунду, а затем отменяет ее до завершения:
func cancelSleepingTask () async {
let task = Task {() -> Строка в
print ("Запуск")
ждать Task.sleep (1_000_000_000)
попробуйте Task.checkCancellation ()
вернуть "Готово"
}
// Задача началась, но мы ее отменим, пока она спит
task.cancel ()
делать {
let result = try await task.значение
print ("Результат: \ (результат)")
} ловить {
print («Задача была отменена.»)
}
}
В этом коде Task.checkCancellation ()
поймет, что задача была отменена, и немедленно выдаст CancellationError
, но это не дойдет до нас, пока мы не попытаемся прочитать task.value
.
Совет: Используйте task.result
, чтобы получить значение Result
, содержащее значения успеха и неудачи задачи. Например, в приведенном выше коде мы вернем Result
.Это не , а требует вызова try
, потому что вам все еще нужно обрабатывать случай успеха или неудачи.
Для более сложной работы вы должны вместо этого создать группы задач - коллекции задач, которые работают вместе, чтобы произвести конечное значение.
Чтобы свести к минимуму риск того, что программисты используют группы задач опасными способами, у них нет простого общедоступного инициализатора. Вместо этого группы задач создаются с использованием таких функций, как withTaskGroup ()
: вызовите это с основной частью работы, которую вы хотите выполнить, и вам будет передан экземпляр группы задач для работы.Оказавшись внутри группы, вы можете добавить работу с помощью метода async ()
, и он немедленно начнет выполняться.
Важно: Вы не должны пытаться скопировать эту группу задач за пределы тела с помощьюTaskGroup ()
- компилятор не может вас остановить, но вы просто создадите проблемы для себя.
Чтобы увидеть простой пример того, как работают группы задач - наряду с демонстрацией важного момента того, как они упорядочивают свои операции, попробуйте следующее:
func printMessage () async {
let string = await withTaskGroup (of: String.self) {группа -> Строка в
group.async {"Привет"}
group.async {"От"}
group.async {"A"}
group.async {"Задача"}
group.async {"Группа"}
var Собранные = [Строка] ()
для значения ожидания в группе {
collect.append (значение)
}
возврат собран. соединен (разделитель: "")
}
печать (строка)
}
Создает группу задач, предназначенную для создания одной законченной строки, а затем ставит в очередь несколько закрытий, используя метод async ()
группы задач.Каждое из этих замыканий возвращает одну строку, которая затем собирается в массив строк, а затем объединяется в одну строку и возвращается для печати.
Совет: Все задачи в группе задач должны возвращать один и тот же тип данных, поэтому для сложной работы вам может потребоваться вернуть перечисление со связанными значениями, чтобы получить именно то, что вы хотите. Более простая альтернатива представлена в отдельном предложении Async Let Bindings.
Каждый вызов async ()
может быть любой функцией, которая вам нравится, если результатом будет строка.Однако, хотя группы задач автоматически ожидают завершения всех дочерних задач перед возвратом, когда этот код запускается, это немного подбрасывает то, что он будет печатать, потому что дочерние задачи могут выполняться в любом порядке - мы с большей вероятностью получим « Привет от группы задач A », а мы, например,« Привет от группы задач ».
Если ваша группа задач выполняет код, который может вызвать ошибку, вы можете либо обработать ошибку непосредственно внутри группы, либо позволить ей всплыть за пределы группы для обработки там.Этот последний вариант обрабатывается с помощью другой функции, withThrowingTaskGroup ()
, которую необходимо вызывать с помощью try
, если вы не отловили все выдаваемые вами ошибки.
Например, в следующем примере кода рассчитываются показания погоды для нескольких местоположений в одной группе, а затем возвращается общее среднее значение для всех местоположений:
func printAllWeatherReadings () async {
делать {
print («Расчет средней погоды…»)
let result = try await withThrowingTaskGroup (of: [Double].self) {группа -> Строка в
group.async {
попробуйте await getWeatherReadings (для: "Лондон")
}
group.async {
попробуйте await getWeatherReadings (для: "Рим")
}
group.async {
попробуйте await getWeatherReadings (для: "Сан-Франциско")
}
// Преобразуем наш массив массивов в единый массив двойников
let allValues = попробуйте await group.reduce ([], +)
// Рассчитываем среднее значение всех наших удвоений
пусть среднее = все значения.уменьшить (0, +) / Double (allValues.count)
return "Общая средняя температура \ (средняя)"
}
print ("Готово! \ (результат)")
} ловить {
print ("Ошибка вычисления данных.")
}
}
В этом случае каждый из вызовов async ()
идентичен, за исключением передаваемой строки местоположения, поэтому вы можете использовать что-то вроде для местоположения в [«Лондон», «Рим», «Сан-Франциско»] {
для вызова async ()
в цикле.
Группы задач имеют метод cancelAll ()
, который отменяет любые задачи внутри группы, но при использовании async () после этого
продолжит добавлять работу в группу.В качестве альтернативы вы можете использовать asyncUnlessCancelled ()
, чтобы пропустить добавление работы, если группа была отменена - проверьте возвращенное логическое значение, чтобы узнать, была ли работа добавлена успешно или нет.
async let
привязок
SE-0317 предоставляет возможность создавать и ожидать дочерние задачи с использованием простого синтаксиса async let
. Это особенно полезно в качестве альтернативы группам задач, где вы имеете дело с разнородными типами результатов, то есть если вы хотите, чтобы задачи в группе возвращали разные типы данных.
Чтобы продемонстрировать это, мы могли бы создать структуру с тремя различными типами свойств, которые будут исходить от трех разных асинхронных функций:
struct UserData {
let имя пользователя: String
позвольте друзьям: [String]
пусть рекорды: [Int]
}
func getUser () async -> String {
"Тэйлор Свифт"
}
func getHighScores () async -> [Int] {
[42, 23, 16, 15, 8, 4]
}
func getFriends () async -> [String] {
[«Эрик», «Мейв», «Отис»]
}
Если мы хотим создать экземпляр User
из всех трех этих значений, async let
- самый простой способ - он запускает каждую функцию одновременно, ждет завершения всех трех, а затем использует их для создания нашего объекта.
Вот как это выглядит:
func printUserDetails () async {
async let имя пользователя = getUser ()
async let scores = getHighScores ()
async let friends = getFriends ()
let user = await UserData (имя: имя пользователя, друзья: друзья, рекорды: очки)
print ("Здравствуйте, меня зовут \ (user.name), и у меня есть друзья \ (user.friends.count)!")
}
Важно: Вы можете использовать async let
только в том случае, если вы уже находитесь в асинхронном контексте, и если вы явно не ожидаете результата async , let
Swift будет неявно ждать его при выходе из своей области.
При работе с функциями метания вам не нужно использовать попробуйте
с async let
- это может быть автоматически перенесено туда, где вы ожидаете результата. Точно так же подразумевается ключевое слово await
, поэтому вместо того, чтобы вводить try await someFunction ()
с async let
, вы можете просто написать someFunction ()
.
Чтобы продемонстрировать это, мы могли бы написать асинхронную функцию для рекурсивного вычисления чисел в последовательности Фибоначчи.Этот подход безнадежно наивен, потому что без мемоизации мы просто повторяем огромный объем работы, поэтому, чтобы не приводить к остановке, мы собираемся ограничить диапазон ввода от 0 до 22:
.
перечисление NumberError: Error {
case outOfRange
}
func fibonacci (of number: Int) async throws -> Int {
если число <0 || number> 22 {
throw NumberError.outOfRange
}
if number <2 {return number}
async let first = fibonacci (of: number - 2)
async let second = fibonacci (of: number - 1)
вернуться попробуйте подождать первый + второй
}
В этом коде рекурсивные вызовы fibonacci (of :)
неявно являются try await fibonacci (of :)
, но мы можем оставить их выключенными и обработать их непосредственно в следующей строке.
антракт
Несмотря на все мои попытки представить эти изменения доступным образом, на данный момент вы, вероятно, морально истощены.
Что ж, боюсь, вы прошли только половину всех изменений. Итак, сделайте перерыв! Сварить кофе, размять ноги и дать глазам отдохнуть - эта статья все еще будет здесь, когда вы вернетесь.
Продолжения для взаимодействия асинхронных задач с синхронным кодом
SE-0300 представляет новые функции, которые помогают нам адаптировать старые API в стиле обработчика завершения к современному асинхронному коду.
Например, эта функция возвращает свои значения асинхронно с использованием обработчика завершения:
func fetchLatestNews (завершение: @escaping ([String]) -> Void) {
DispatchQueue.main.async {
завершение ([«Выпуск Swift 5.5», «Apple приобретает Apollo»])
}
}
Если вы хотите использовать это с помощью async / await, вы можете переписать функцию, но есть несколько причин, по которым это может быть невозможно - например, это может быть из внешней библиотеки.
Продолжения позволяют нам создать прокладку между обработчиком завершения и асинхронными функциями, чтобы мы обернули старый код в более современный API. Например, функция withCheckedContinuation ()
создает новое продолжение, которое может запускать любой код, который вы хотите, а затем вызывать resume (возвращая :)
, чтобы отправить значение обратно, когда вы будете готовы - даже если это часть обработчика завершения. закрытие.
Итак, мы могли бы создать вторую функцию fetchLatestNews ()
, которая является асинхронной, обернув старую функцию обработчика завершения:
func fetchLatestNews () async -> [String] {
ожидание withCheckedContinuation {продолжение в
fetchLatestNews {items in
продолжение.возобновить (возврат: предметы)
}
}
}
Теперь мы можем получить нашу исходную функциональность в асинхронной функции, например:
func printNews () async {
let items = ждать fetchLatestNews ()
for item in items {
печать (элемент)
}
}
Термин «проверенное» продолжение означает, что Swift выполняет проверки времени выполнения от нашего имени: вызываем ли мы resume ()
один раз и только один раз? Это важно, потому что, если вы никогда не возобновите продолжение, у вас будет утечка ресурсов, но если вы вызовете это дважды, у вас, скорее всего, возникнут проблемы.
Важно: Чтобы быть предельно ясным, вы должны возобновить продолжение ровно один раз.
Поскольку проверка ваших продолжений связана с производительностью выполнения, Swift также предоставляет функцию withUnsafeContinuation ()
, которая работает точно так же, за исключением того, что , а не , выполняет проверки времени выполнения от вашего имени. Это означает, что Swift не предупредит вас, если вы забудете возобновить продолжение, а если вы вызовете его дважды, поведение будет неопределенным.
Поскольку эти две функции вызываются одинаково, вы можете легко переключаться между ними. Таким образом, похоже, что люди будут использовать withCheckedContinuation ()
при написании своих функций, поэтому Swift будет выдавать предупреждения и даже запускать сбои, если продолжения используются неправильно, но некоторые могут затем переключиться на withUnsafeContinuation ()
, когда они готовятся к отправке если на них влияют затраты времени выполнения проверенных продолжений.
Актеры
SE-0306 представляет акторов, которые концептуально похожи на классы, которые можно безопасно использовать в параллельных средах.Это возможно, потому что Swift гарантирует, что к изменяемому состоянию внутри вашего актора в любой момент времени может получить доступ только один поток, что помогает устранить множество серьезных ошибок прямо на уровне компилятора.
Чтобы продемонстрировать, какие проблемы решают акторы, рассмотрим этот код Swift, который создает класс RiskyCollector
, способный обмениваться картами из своей колоды с другим сборщиком:
class RiskyCollector {
var deck: установить
init (deck: Set ) {
себя.колода = колода
}
func send (выбрана карта: String, человеку: RiskyCollector) -> Bool {
guard deck.contains (selected) else {return false}
deck.remove (выбрано)
person.transfer (карта: выбрана)
вернуть истину
}
func transfer (card: String) {
deck.insert (карта)
}
}
В однопоточной среде этот код безопасен: мы проверяем, содержит ли наша колода указанная карта, удаляем ее, а затем добавляем в колоду другого сборщика.Однако в многопоточной среде наш код имеет потенциальное состояние гонки, что является проблемой, при которой результаты кода будут различаться, поскольку две отдельные части нашего кода будут выполняться бок о бок.
Если мы вызовем send (card: to :)
более одного раза одновременно, может произойти следующая цепочка событий:
- Первый поток проверяет, есть ли карта в колоде, и так продолжает.
- Второй поток также проверяет, есть ли карта в колоде, и так продолжает.
- Первая нить удаляет карту из колоды и передает ее другому человеку.
- Второй поток пытается удалить карту из колоды, но на самом деле она уже ушла, поэтому ничего не произойдет. Однако он все равно передает карту другому человеку.
В этой ситуации один игрок теряет карту, а другой получает две карты , и если эта карта оказалась Черным лотосом из Magic the Gathering, то у вас большая проблема!
Акторы решают эту проблему, вводя изоляцию акторов. : сохраненные свойства и методы не могут быть прочитаны извне объекта актера, если они не выполняются асинхронно, а сохраненные свойства не могут быть записаны извне объекта актера вообще.Асинхронное поведение не влияет на производительность; вместо этого это происходит потому, что Swift автоматически помещает эти запросы в очередь, которая обрабатывается последовательно, чтобы избежать состояния гонки.
Итак, мы могли бы переписать класс RiskyCollector
в актер SafeCollector
, например:
субъект SafeCollector {
var deck: установить
init (deck: Set ) {
self.deck = колода
}
func send (выбрана карта: String, человеку: SafeCollector) async -> Bool {
караульная палуба.содержит (выбрано) еще {return false}
deck.remove (выбрано)
ожидание person.transfer (карточка: выбрана)
вернуть истину
}
func transfer (card: String) {
deck.insert (карта)
}
}
В этом примере следует обратить внимание на несколько моментов:
- Актеры создаются с использованием нового ключевого слова
субъект
. Это новый конкретный номинальный тип в Swift, объединяющий структуры, классы и перечисления. - Метод
send ()
помечен какasync
, потому что ему нужно будет приостановить свою работу, ожидая завершения передачи. - Хотя метод передачи
(card :)
- это , а не , помеченный какasync
, нам все равно нужно вызвать его сawait
, потому что он будет ждать, пока другой субъектSafeCollector
не сможет обработать запрос .
Для ясности, субъект может использовать свои собственные свойства и методы свободно, асинхронно или иным образом, но при взаимодействии с другим субъектом это всегда должно выполняться асинхронно. Благодаря этим изменениям Swift может гарантировать, что все изолированные состояния акторов никогда не будут доступны одновременно, и, что более важно, это делается во время компиляции, чтобы гарантировать безопасность.
Актеры и классы имеют некоторое сходство:
- Оба являются ссылочными типами, поэтому их можно использовать для общего состояния.
- Они могут иметь методы, свойства, инициализаторы и индексы.
- Они могут соответствовать протоколам и быть универсальными.
- Любые свойства и методы, которые являются статическими, ведут себя одинаково в обоих типах, потому что они не имеют понятия
self
и, следовательно, не изолированы.
Помимо изоляции акторов, есть еще два важных различия между актерами и классами:
- Акторы в настоящее время не поддерживают наследование, что значительно упрощает их инициализаторы - нет необходимости в удобных инициализаторах, переопределении, ключевом слове
final
и многом другом.Это может измениться в будущем. - Все субъекты неявно соответствуют новому протоколу
Actor
; ни один другой конкретный тип не может использовать это. Это позволяет вам ограничивать другие части вашего кода, чтобы он мог работать только с актерами.
Лучший способ объяснить, чем акторы отличаются от классов, заключается в следующем: «акторы передают сообщения, а не память». Таким образом, вместо того, чтобы один актер копался в свойствах другого или вызвал его методы, мы вместо этого отправляем сообщение с запросом данных и позволяем среде выполнения Swift безопасно обрабатывать их за нас.
Глобальные участники
SE-0316 позволяет изолировать глобальное состояние от гонок данных с помощью субъектов.
Хотя теоретически это может привести к появлению множества глобальных акторов, главным преимуществом, по крайней мере, на данный момент, является введение глобального актора @MainActor
, который вы можете использовать для пометки свойств и методов, доступ к которым должен осуществляться только в основном потоке.
В качестве примера у нас может быть класс для обработки хранилища данных в нашем приложении, и по соображениям безопасности мы отказываемся записывать изменения в постоянное хранилище, если мы не находимся в основном потоке:
class OldDataController {
func save () -> Bool {
Защитная нить.isMainThread else {
вернуть ложь
}
print («Сохранение данных…»)
вернуть истину
}
}
Это работает, но с @MainActor
мы можем гарантировать, что save ()
всегда вызывается в основном потоке, как если бы мы специально запускали его с помощью DispatchQueue.main
:
class NewDataController {
@MainActor func save () {
print («Сохранение данных…»)
}
}
Это все, что нужно - Swift гарантирует, что всякий раз, когда вы вызываете save ()
на контроллере данных, эта работа будет выполняться в основном потоке.
Примечание: Поскольку мы проталкиваем работу через актера, вы должны вызвать save ()
, используя await
, async let
или аналогичные.
@MainActor
- это глобальная оболочка актора вокруг базовой структуры MainActor
, которая полезна, поскольку имеет статический метод run ()
, который позволяет нам планировать выполнение работы. Это выполнит ваш код в основном потоке, при необходимости отправив результат.
Закрытия Sendable и @Sendable
SE-0302 добавляет поддержку «отправляемых» данных, то есть данных, которые можно безопасно передавать в другой поток.Это достигается с помощью нового протокола Sendable
и атрибута @Sendable
для функций.
Многие вещи безопасно отправлять по потокам:
- Все основные типы значений Swift, включая
Bool
,Int
,String
и аналогичные. - Optionals, где обернутые данные являются типом значения.
- Коллекции стандартной библиотеки, содержащие типы значений, такие как
Array
илиDictionary
. - Кортежи, все элементы которых являются типами значений.
- Метатипы, например
String.self
.
Они были обновлены для соответствия протоколу Sendable
.
Что касается нестандартных типов, это зависит от того, что вы делаете:
- Акторы автоматически соответствуют
Sendable
, потому что они обрабатывают свою синхронизацию внутренне. - Пользовательские структуры и перечисления, которые вы определяете, также будут автоматически соответствовать
Sendable
, если они содержат только значения, которые также соответствуютSendable
, аналогично тому, как работаетCodable
. - Пользовательские классы могут соответствовать
Sendable
, если они наследуются отNSObject
или вообще от ничего, все свойства постоянны и сами соответствуютSendable
, и они помечены какfinal
, чтобы остановить дальнейшее наследование.
Swift позволяет нам использовать атрибут @Sendable
для функций или закрытия, чтобы пометить их как работающие одновременно, и будет применять различные правила, чтобы мы не стреляли себе в ногу.Например, операция, которую мы передаем в инициализатор Task
, помечена как @Sendable
, что означает, что этот вид кода разрешен, потому что значение, захваченное задачей Task
, является константой:
func printScore () async {
пусть оценка = 1
Задача {печать (оценка)}
Задача {печать (оценка)}
}
Однако этот код , а не был бы разрешен, если бы оценка
была переменной, потому что к нему могла получить доступ одна из задач, пока другая изменяла свое значение.
Вы можете пометить свои собственные функции и закрытия с помощью @Sendable
, что будет применять аналогичные правила для захваченных значений:
func runLater (_ function: @escaping @Sendable () -> Void) -> Void {
DispatchQueue.global (). AsyncAfter (крайний срок: .now () + 3, выполнить: функция)
}
#if
для выражений постфиксных членов
SE-0308 позволяет Swift использовать условия #if
с выражениями постфиксных членов. Это звучит немного непонятно, но это решает проблему, обычно наблюдаемую в SwiftUI: теперь вы можете при желании добавлять модификаторы в представление.
Например, это изменение позволяет нам создавать текстовое представление с разными размерами шрифта в зависимости от того, используем ли мы iOS или другую платформу:
Текст («Добро пожаловать»)
#if os (iOS)
.font (.largeTitle)
#еще
.font (.headline)
#endif
Вы можете вложить их, если хотите, хотя это немного сложно для ваших глаз:
#if os (iOS)
.font (.largeTitle)
#if DEBUG
.foregroundColor (.red)
#endif
#еще
.font (.headline)
#endif
При желании вы можете использовать совершенно разные постфиксные выражения:
пусть результат = [1, 2, 3]
#if os (iOS)
.считать
#еще
.reduce (0, +)
#endif
print (результат)
Технически вы можете получить результат , если хотите,
будут двумя совершенно разными типами, но это кажется плохой идеей. То, что определенно не может сделать , - это использовать другие виды выражений, такие как использование + [4]
вместо .count
- если оно не начинается с .
, то это не выражение постфиксного члена.
Разрешить взаимозаменяемое использование типов
CGFloat
и Double
:
SE-0307 представляет небольшое, но важное улучшение качества жизни: Swift может неявно преобразовывать между CGFloat
и Double
в большинстве мест, где это необходимо.
В простейшей форме это означает, что мы можем сложить CGFloat
и Double
вместе, чтобы получить новый Double
, например:
пусть сначала: CGFloat = 42
пусть второй: Double = 19
пусть результат = первый + второй
print (результат)
Swift реализует это, вставляя неявный инициализатор по мере необходимости, и всегда будет отдавать предпочтение Double
, если это возможно. Что еще более важно, ничего из этого не достигается путем переписывания существующих API: технически такие вещи, как scaleEffect ()
в SwiftUI, по-прежнему работают с CGFloat
, но Swift незаметно связывает это с Double
.
Кодируемый синтез для перечислений со связанными значениями
SE-0295 модернизирует систему Swift Codable
для поддержки записи перечислений со связанными значениями. Ранее перечисления поддерживались только в том случае, если они соответствовали RawRepresentable
, но это расширяет поддержку общих перечислений, а также случаев перечисления с любым количеством связанных значений Codable
.
Например, мы могли бы определить перечисление Weather
следующим образом:
enum Weather: Codable {
чехол солнце
case wind (скорость: Int)
case rain (количество: Int, шанс: Int)
}
У этого есть один простой случай, один случай с одним связанным значением и третий случай с двумя связанными значениями - все являются целыми числами, но вы можете использовать строки или другие типы Codable
.
Определив это перечисление, мы можем создать массив погоды для прогноза, затем использовать JSONEncoder
или аналогичный и преобразовать результат в печатаемую строку:
пусть прогноз: [Погода] = [
.солнце,
.wind (скорость: 10),
.солнце,
.rain (количество: 5, шанс: 50)
]
делать {
let result = попробуйте JSONEncoder (). encode (прогноз)
let jsonString = String (декодирование: результат, как: UTF8.self)
печать (jsonString)
} ловить {
print ("Ошибка кодировки: \ (error.localizedDescription)")
}
За кулисами это реализовано с использованием нескольких перечислений CodingKey
, способных обрабатывать вложенную структуру, которая является результатом наличия значений, прикрепленных к случаям перечисления, что означает, что написание собственных пользовательских методов кодирования для выполнения того же самого требует немного больше работы.
ленивый
теперь работает в локальных контекстах
Ключевое слово lazy
всегда позволяло нам записывать сохраненные свойства, которые вычисляются только при первом использовании, но начиная с Swift 5.5 и далее мы можем использовать lazy
локально внутри функции для создания значений, которые работают аналогично.
Этот код демонстрирует локальный ленивый
в действии:
func printGreeting (to: String) -> String {
print ("В printGreeting ()")
return "Привет, \ (кому)"
}
func lazyTest () {
print ("Перед ленивым")
ленивое приветствие = printGreeting (кому: "Пол")
print ("После ленивого")
печать (приветствие)
}
lazyTest ()
При этом вы увидите сначала напечатанные «Before lazy» и «After lazy», затем «In printGreeting ()», затем «Hello, Paul» - Swift запускает код printGreeting (to :)
только тогда, когда его результат доступен в строке печати (приветствия)
.
На практике эта функция будет действительно полезна в качестве способа выборочного запуска кода, когда у вас есть условия: вы можете лениво подготовить результат некоторой работы и фактически выполнить работу только в том случае, если она все еще понадобится позже.
Расширить оболочки свойств до параметров функции и закрытия
SE-0293 расширяет оболочки свойств, чтобы их можно было применять к параметрам функций и замыканий. Параметры, переданные таким образом, остаются неизменными, если вы не берете их копию, и вы по-прежнему можете получить доступ к базовому типу оболочки свойств, используя начальное подчеркивание, если хотите.
В качестве примера мы могли бы написать функцию, которая принимает целое число и выводит его:
func setScore1 (для оценки: Int) {
print ("Установка балла на \ (балл)")
}
При его вызове мы можем передать ему любой диапазон значений, например:
setScore1 (до: 50)
setScore1 (до: -50)
setScore1 (к: 500)
Если бы мы хотели, чтобы наши оценки лежали только в диапазоне 0 ... 100, мы могли бы написать простую оболочку свойств, которая фиксирует числа по мере их создания:
@propertyWrapper
struct Clamped {
пусть wrappedValue: T
init (wrappedValue: T, range: ClosedRange ) {
себя.wrappedValue = min (max (wrappedValue, range.lowerBound), range.upperBound)
}
}
Теперь мы можем написать и вызвать новую функцию, используя эту оболочку:
func setScore2 (@Clamped (диапазон: 0 ... 100) для оценки: Int) {
print ("Установка балла на \ (балл)")
}
setScore2 (до: 50)
setScore2 (до: -50)
setScore2 (к: 500)
Вызов setScore2 ()
с теми же входными значениями, что и раньше, распечатает другой результат, потому что числа будут ограничены до 50, 0, 100.
Совет: Наша оболочка свойств тривиальна, потому что параметры, передаваемые в функцию, неизменяемы - нам не нужно обрабатывать повторное закрепление обернутого значения при его изменении, потому что оно не изменится. Однако вы можете сделать свои обертки свойств настолько сложными, насколько вам нужно; они работают так же, как со свойствами или локальными переменными.
Расширение поиска статических элементов в общих контекстах
SE-0299 позволяет Swift выполнять статический поиск членов протоколов в общих функциях, что звучит неясно, но на самом деле устраняет небольшую, но важную проблему разборчивости, которая особенно сильно ударила по SwiftUI.
В настоящее время SwiftUI не обновлен для поддержки этого изменения, но если все пойдет по плану, мы можем перестать писать это:
Toggle ("Пример", isOn: .constant (true))
.toggleStyle (SwitchToggleStyle ())
.
И вместо этого напишите что-то вроде этого:
Toggle ("Пример", isOn: .constant (true))
.toggleStyle (.switch)
.
Это было возможно в ранних бета-версиях SwiftUI, потому что Apple использовала обширные обходные пути, но они были отозваны перед выпуском.
Чтобы увидеть, что на самом деле здесь меняется, представьте протокол Theme
с несколькими соответствующими ему структурами:
Тема протокола
{}
struct LightTheme: Theme {}
struct DarkTheme: Theme {}
struct RainbowTheme: Theme {}
Мы также могли бы определить протокол Screen
, который может вызывать метод theme ()
с какой-то темой:
Экран протокола {}
extension Screen {
func theme (_ style: T) -> Экран {
print («Активация новой темы!»)
вернуть себя
}
}
И теперь мы можем создать экземпляр экрана:
struct HomeScreen: Экран {}
Следуя старому коду SwiftUI, мы могли включить светлую тему на этом экране, указав LightTheme ()
:
пусть lightScreen = HomeScreen ().тема (LightTheme ())
Если бы мы хотели упростить доступ к нему, мы могли бы попробовать добавить статическое свойство light
к нашему протоколу Theme
следующим образом:
extension Theme, где Self == LightTheme {
статическая переменная света: LightTheme {.init ()}
}
Однако , использующий , который с методом theme ()
нашего универсального протокола был причиной проблемы: до Swift 5.5 это было невозможно, и вам приходилось использовать LightTheme ()
каждый раз.Однако в Swift 5.5 или новее это теперь возможно:
let lightTheme = HomeScreen (). Theme (.light)
И еще ...
Это была огромная статья, и я понимаю, что все эти изменения могут казаться немного асинхронными сами по себе - иногда, чтобы понять одно, вам нужно обратиться к двум другим! Надеюсь, мне удалось представить ключевые изменения логически, что поможет вам увидеть, как они дополняют друг друга.
Хотя я попытался охватить все основные новые функции Swift 5.5 есть еще кое-что, о чем я не рассказал, в частности:
Конечно, нам еще предстоит увидеть, как эти изменения повлияют на Foundation, SwiftUI и другие фреймворки Apple - и я уверен, что они повлияют. Фактически, все здесь, похоже, указывает на существенные изменения в разработке iOS, поступающие на WWDC, частично в результате этих изменений, частично из-за того, что эти изменения, похоже, позволяют использовать еще не объявленный API, а частично потому, что Apple, похоже, сделала большая работа по созданию больших частей Swift 5.Функциональность параллелизма 5 может быть развернута обратно в более ранние версии ОС, возможно, с использованием библиотеки совместимости.
Учитывая огромное количество изменений, кажется странным, что Swift 5.5 - это Swift 5.5 в отличие от Swift 6.0, но, возможно, Apple планирует сохранить это название до тех пор, пока не появится вторая фаза предложения участников. Я не обсуждал это здесь, потому что это в значительной степени , а не часть Swift 5.5, но в сложившейся ситуации вторая фаза изоляции акторов, вероятно, вызовет такие нарушения кода, которые оправдывают скачок в основной версии.
В любом случае, я не собираюсь здесь спекулировать дальше, кроме как сказать, что с нетерпением жду возможности перечитать эту статью после основного выступления WWDC21, потому что я подозреваю, что мы увидим ключевые части фреймворков Apple, уже адаптированных для Swift 5.5.
То, что я, , могу, , сказать, так это то, что команда Swift чрезвычайно усердно работает, чтобы предоставить потрясающий набор изменений за относительно короткое время. Эти изменения не только предоставляют основные новые языковые функции, которые обеспечивают мощность и безопасность для разработчиков Swift, но они также получили обширный вклад сообщества через Swift Evolution - одно предложение участников прошло семь презентаций и два предложения, прежде чем было окончательно одобрено.
Итак, команде Swift: спасибо за то, что действительно сделали все возможное, чтобы создать что-то невероятное в сжатые сроки. И всем остальным: пристегнитесь, потому что WWDC21 будет чертовски крутой…
Спонсируйте взлом со Swift и войдите в крупнейшее в мире сообщество Swift!
Что нового в Jira Software Cloud
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Представляем собственное приложение Jira Mac с темным режимом: мы представляем собственное настольное приложение для клиентов, использующих Mac.Настольное приложение - это быстрое и гибкое приложение-компаньон для людей, которые хотят управлять своим рабочим процессом прямо на своем рабочем столе. Приложение было разработано с учетом лёгкости и простоты, поэтому поиск и переключение проектов никогда не было таким простым. Пользователи также получат все преимущества собственного приложения в MacOS, включая настраиваемые push-уведомления. "," textOnlyLower ":" представляем собственное приложение jira для Mac с темным режимом: мы представляем собственное настольное приложение для клиентов, использующих Mac.настольное приложение - это быстрое и гибкое приложение-компаньон для людей, которые хотят управлять своим рабочим процессом прямо на своем рабочем столе. приложение было разработано с учетом легкости и простоты, поэтому поиск и переключение проектов никогда не было таким простым. пользователи также будут пользоваться всеми преимуществами нативного приложения в macos, включая настраиваемые push-уведомления. "}," 03adb97b ": {" title ":" Находите то, что вам нужно, с новыми улучшениями навигации "," lozengeColor ":" lilac "," lozengeLabel ":" "," useLearnMoreLink ": true," learnText ": «Узнать больше», «learnLink»: «https: // community.atlassian.com/t5/Jira-articles/4-more-ways-we-re-making-it-easier-to-find-what-you-re-looking/ba-p/1198545 "," описание ":"
Мы постоянно дорабатываем навигацию Jira, чтобы было быстрее и проще находить то, что вам нужно.
- Мы добавили в Jira новую страницу под названием «Ваша работа», чтобы вам было проще находить элементы, которые вы ранее просматривали или помечали, а также неполные задачи, назначенные вам.
- Недавно мы добавили ссылки в навигацию, в отмеченных и недавних ящиках, чтобы помочь вам быстро "просмотреть все" ваши доски, проекты, фильтры или информационные панели.
- Мы добавили хлебные крошки в верхнюю часть экрана, чтобы вы могли легко вернуться к тому месту, где раньше находились в продукте.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Более удобный поиск того, что вам нужно, с новыми улучшениями навигации: мы постоянно настраиваем навигацию Jira, чтобы сделать ее быстрее и проще найди то, что тебе нужно. Мы добавили в Jira новую страницу под названием «Ваша работа», чтобы вам было проще находить элементы, которые вы ранее просматривали или помечали, а также неполные задачи, назначенные вам.Недавно мы добавили ссылки в навигацию, в отмеченных и недавних ящиках, чтобы помочь вам быстро перейти к «просмотру всех» ваших досок, проектов, фильтров или панелей мониторинга. Мы добавили хлебные крошки в верхнюю часть экрана, чтобы вы могли легко вернуться туда, где вы раньше были в продукте. "," textOnlyLower ":" находите то, что вам нужно, более плавно с помощью новых улучшений навигации: мы постоянно дорабатываем навигацию jira, чтобы облегчить и ускорить поиск того, что вам нужно. мы добавили в jira новую страницу, которая называется «ваша работа», чтобы вам было проще находить элементы, которые вы ранее просматривали или помечали, а также неполные задачи, назначенные вам.мы недавно добавили ссылки в навигацию, в отмеченных и недавно использованных ящиках, чтобы помочь вам быстро перейти к «просмотру всех» ваших досок, проектов, фильтров или панелей мониторинга. мы добавили хлебные крошки в верхнюю часть экрана, чтобы вы могли легко вернуться к тому месту, где раньше находились в продукте. "}," fe23cf2d ": {" title ":" Ускорьте загрузку благодаря новым улучшениям производительности Jira "," lozengeColor ":" lilac "," lozengeLabel ":" "," useLearnMoreLink ": true," learnText ":" Подробнее "," learnLink ":" https: // community.atlassian.com/t5/Jira-articles/6-ways-we-ve-improved-performance-in-Jira-Cloud/ba-p/1118182 "," description ":"
Performance - это постоянный путь, в котором мы продолжаем инвестировать. Недавно мы выпустили несколько важных обновлений:
- Боковая панель навигации теперь загружается в 2 раза быстрее.
- Каталог проектов Jira теперь загружается в 10 раз быстрее.
- Платы нового поколения загружаются в 1,5 раза быстрее.
- Задержки нового поколения загружаются в 1,8 раза быстрее.
В ближайшие кварталы вы по-прежнему будете замечать улучшения производительности Jira Cloud.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Ускорение загрузки благодаря новым улучшениям производительности Jira: производительность - это постоянный путь, в который мы продолжаем инвестировать. Недавно мы выпустили несколько важных обновлений: боковая панель навигации теперь загружается в 2 раза быстрее. Каталог проектов Jira теперь загружается в 10 раз быстрее. Платы нового поколения загружаются в 1,5 раза быстрее. Бэклоги нового поколения загружаются в 1,8 раза быстрее. В ближайшие кварталы вы и дальше будете замечать улучшения производительности Jira Cloud."," textOnlyLower ":" наслаждайтесь более быстрой загрузкой с новыми улучшениями производительности jira: производительность - это постоянный путь, в который мы продолжаем инвестировать. недавно мы выпустили несколько важных обновлений: боковая панель навигации теперь загружается в 2 раза быстрее. Каталог проектов jira теперь загружается в 10 раз быстрее. платы следующего поколения загружаются в 1,5 раза быстрее. бэклоги следующего поколения загружаются в 1,8 раза быстрее. в ближайшие кварталы вы продолжите видеть и ощущать улучшения производительности в облаке jira. "}," c07f79b8 ": {" title ":" Создайте масштабируемый макет для задач Jira с большим количеством полей "," lozengeColor ":" lilac "," lozengeLabel ":" "," useLearnMoreLink ": true," learnText ": «Узнать больше», «learnLink»: «https: // confluence.atlassian.com/adminjiracloud/defining-a-screen-776636475.html?_ga=2.233552798.1874216388.1578347200-2048269774.1569802396 "," описание ":"
Мы сделали выпуск Jira более доступным для клиентов, у которых много полей с нашим новым " * функция вкладок полей, которая позволяет группировать несколько полей в небольшие папки. Узнать больше
* Доступно только в классических шаблонах
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Создайте масштабируемый макет для задач Jira с множеством полей: мы создали проблему Jira более доступным для клиентов, у которых много полей, благодаря нашей новой функции «вкладки полей» *, которая позволяет группировать несколько полей в небольшие папки.Узнать больше * Доступно только в классических шаблонах "," textOnlyLower ":" создать масштабируемый макет для проблем jira со многими полями: мы сделали проблему jira более доступной для клиентов, у которых есть много полей, с нашей новой функцией "вкладки полей" * , который позволяет группировать несколько полей в небольшие папки. подробнее * доступно только в классических шаблонах "}," 43330bfe ": {" title ":" Создавайте уникальные уровни безопасности в новом представлении Jira "," lozengeColor ":" lilac "," lozengeLabel ":" "," useLearnMoreLink " : true, "learnText": "Подробнее", "learnLink": "https: // confluence.atlassian.com/adminjiracloud/configuring-issue-level-security-776636711.html "," description ":"
Убедитесь, что только выбранные вами заинтересованные стороны могут просматривать определенные рабочие элементы, создав отдельные разрешения безопасности для проблем Jira.
* Доступно только в классических шаблонах
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Создавайте уникальные уровни безопасности в новом представлении задач Jira: убедитесь, что только выбранные вами заинтересованные стороны могут просматривать определенные рабочие элементы, создавая детализированные разрешения безопасности для проблем Jira.* Доступно только в классических шаблонах "," textOnlyLower ":" создайте уникальные уровни безопасности в новом представлении задач jira: убедитесь, что только выбранные вами заинтересованные стороны могут просматривать определенные рабочие элементы, создавая отдельные разрешения безопасности для проблем jira. * доступно только в классических шаблонах "}," 3a908cd2 ": {" title ":" Контроль конфиденциальности комментариев по вопросам Jira "," lozengeColor ":" lilac "," lozengeLabel ":" "," useLearnMoreLink ": true, "learnText": "Подробнее", "learnLink": "https: // confluence.atlassian.com/jirakb/add-restricted-comments-on-jira-962353957.html "," description ":"
Обеспечьте больший контроль над тем, кто может видеть конкретные комментарии по вопросам Jira, будь то только администраторы или люди с определенной ролью. .
* Доступно только в классических шаблонах
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Контроль конфиденциальности комментариев по вопросам Jira: более полный контроль над тем, кто может видеть определенные комментарии в Jira проблемы, будь то только администраторы или люди с определенной ролью.* Доступно только в классических шаблонах "," textOnlyLower ":" контролировать конфиденциальность комментариев по вопросам jira: усилить контроль над тем, кто может видеть определенные комментарии по вопросам jira, будь то только администраторы или люди с определенной ролью. * доступно только в классических шаблонах "}," 20710f52 ": {" title ":" Держите свою команду в курсе с помощью team @mentions "," lozengeColor ":" lightGray "," lozengeLabel ":" "," useLearnMoreLink ": false, «learnText»: «Узнать больше», «learnLink»: «https://www.atlassian.com/software/jira/mac», «description»: «
Мы упрощаем вам задачу сохранения всех в курсе с командой @mentions.Держите свою команду в курсе проблемы или уведомляйте команду об ошибке. Вы сможете @ упомянуть команду точно так же, как и отдельного человека сегодня.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Держите свою команду в курсе событий с помощью team @mentions: мы упрощаем вам держать всех в курсе с помощью team @ упоминания. Держите свою команду в курсе проблемы или уведомляйте команду об ошибке. Вы сможете @ упомянуть команду точно так же, как и отдельного человека сегодня. "," textOnlyLower ":" держите свою команду в курсе событий с помощью team @mentions: мы упрощаем вам задачу держать всех в курсе с помощью team @mentions.держать вашу команду в курсе проблемы или уведомлять команду об ошибке. вы сможете @ упомянуть команду точно так же, как вы сделали бы это сегодня частное лицо. "}," 527d1492 ": {" title ":" Делитесь ссылками на конкретные комментарии по вопросам Jira "," lozengeColor ":" lightGray "," lozengeLabel ":" "," useLearnMoreLink ": false," learnText ":" Learn подробнее »,« learnLink »:« https://www.atlassian.com/software/jira/mac »,« description »:«
Ускорьте общение и совместную работу вашей команды, используя постоянные ссылки в представлении новой задачи.Вскоре вы сможете делиться и связывать людей с конкретным комментарием или элементом рабочего журнала.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Делитесь ссылками на конкретные комментарии по проблемам Jira. Ускорьте общение и совместную работу вашей команды, используя постоянные ссылки в новом представлении задач. Вскоре вы сможете делиться и связывать людей с конкретным комментарием или элементом рабочего журнала. "," textOnlyLower ":" делитесь ссылками на конкретные комментарии по вопросам jira: ускорьте общение и совместную работу вашей команды, используя постоянные ссылки в новом представлении задач.Скоро вы сможете поделиться и связать людей с конкретным комментарием или элементом рабочего журнала. "}," 06e1ee67 ": {" title ":" Перейдите к работе, которую нужно быстрее найти на странице "Ваша работа", "lozengeColor": "lightGray", "lozengeLabel": "", "useLearnMoreLink": false , "learnText": "Подробнее", "learnLink": "https://www.atlassian.com/software/jira/mac", "description": "
Найдите и возобновите работу, которая вам больше всего нравится, в ' Страница вашей работы. Вскоре вы сможете получить доступ к пяти последним проектам, которые вы посетили.Погрузитесь прямо в свою доску одним щелчком мыши. Или просмотрите всю назначенную вам работу с помощью фильтра «Мои открытые проблемы».
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Перейдите к работе, которую вам нужно быстрее найти на странице "Ваша работа": Найдите и возобновите работу, которая вам больше всего нравится, на странице ' Страница вашей работы. Вскоре вы сможете получить доступ к пяти последним проектам, которые вы посетили. Погрузитесь прямо в свою доску одним щелчком мыши. Или просмотрите всю назначенную вам работу с помощью фильтра «Мои открытые проблемы»."," textOnlyLower ":" перейти к работе, которую вам нужно найти быстрее, на странице "ваша работа": найдите и возобновите работу, которая вам больше всего нравится, на странице "ваша работа". Скоро вы сможете получить доступ к пяти последним проектам, которые вы посетили. ныряйте прямо в доску одним щелчком мыши. или просмотреть всю назначенную вам работу с помощью фильтра «Мои открытые вопросы». "}," fd1b4f1f ": {" title ":" Интеллектуальный поиск "," lozengeColor ":" lightGray "," lozengeLabel ":" "," useLearnMoreLink ": false," learnText ":" Подробнее "," learnLink " : "https: // www.atlassian.com/software/jira/mac "," description ":"
Находите то, что вам нужно, быстрее благодаря грядущим улучшениям быстрого поиска Jira. Скоро вы увидите больше результатов с более точными метаданными, чтобы вы знали, что нашли то, что нужно. Мы также добавляем индивидуальные быстрые фильтры для людей и мест, с которыми вы работаете больше всего.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Интеллектуальный поиск: быстрее находите то, что вам нужно, благодаря предстоящим улучшениям быстрого поиска Jira. Скоро вы увидите больше результатов с более точными метаданными, чтобы вы знали, что нашли то, что нужно.Мы также добавляем индивидуальные быстрые фильтры для людей и мест, с которыми вы работаете больше всего. "," textOnlyLower ":" Интеллектуальный поиск: находите то, что вам нужно, быстрее благодаря грядущим улучшениям быстрого поиска в jira. скоро вы увидите больше результатов с более точными метаданными, чтобы вы знали, что нашли то, что нужно. мы также добавляем индивидуальные быстрые фильтры для людей и мест, с которыми вы работаете больше всего. "}," 12bb5f39 ": {" title ":" Составьте общую картину с помощью дорожных карт для классических проектов "," lozengeColor ":" lightGray "," lozengeLabel ":" "," useLearnMoreLink ": true," learnText ":" Подробнее "," learnLink ":" https: // confluence.atlassian.com/jirasoftwarecloud/enable-and-disable-the-roadmap-1004952906.html "," description ":"
Набросайте общую картину, поделитесь планами с заинтересованными сторонами и убедитесь, что ваша дорожная карта связана с работой вашей команды - все в несколько щелчков мышью в Jira Software Cloud.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Планируйте общую картину с помощью дорожных карт для классических проектов: нарисуйте общую картину, поделитесь планами с заинтересованными сторонами и убедитесь, что ваша дорожная карта соответствует вашим командная работа - всего за несколько кликов в Jira Software Cloud."," textOnlyLower ":" спланируйте общую картину с помощью дорожных карт для классических проектов: нарисуйте общую картину, поделитесь планами с заинтересованными сторонами и убедитесь, что дорожная карта связана с работой вашей команды - и все это в несколько щелчков мышью в облаке программного обеспечения jira. "}," 9d1aed20 ": {" title ":" Просмотр списка в навигаторе задач для быстрого обзора "," lozengeColor ":" lightGray "," lozengeLabel ":" "," useLearnMoreLink ": true," learnText ":" Подробнее "," learnLink ":" https://community.atlassian.com/t5/Jira-articles/Take-control-of-your-issues-with-list-view-and-exports/ba-p/1560473 "," description ":"
Наше новое представление списка, доступное как в шаблонах проектов нового поколения, так и в классических шаблонах проектов, помогает вам получить обзор всех проблем в вашем проекте в простой таблице, которую можно легко фильтровать, сортировать и экспортировать. .Читайте дальше, чтобы узнать, что эта новая функция позволяет вам делать (лучше) то, что вы не могли делать раньше.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Представление списка в навигаторе задач для быстрого обзора: наше новое представление списка, доступное как в шаблонах проектов следующего поколения, так и в классических, поможет вам Получите обзор всех проблем вашего проекта в простой таблице, которую можно легко фильтровать, сортировать и экспортировать. Читайте дальше, чтобы узнать, что эта новая функция позволяет вам делать (лучше) то, что вы не могли делать раньше."," textOnlyLower ":" представление списка в навигаторе задач для быстрого обзора: наше новое представление списка, доступное как в шаблонах проекта следующего поколения, так и в классическом, поможет вам получить обзор всех проблем в вашем проекте в простой таблице, которая можно легко фильтровать, сортировать и экспортировать. читайте дальше, чтобы узнать, что эта новая функция позволяет вам делать (лучше) то, что вы не могли делать раньше. "}," 1390f10b ": {" title ":" Поиск, сортировка и изменение проблем с помощью более мощного навигатора проблем проекта "," lozengeColor ":" lightGray "," lozengeLabel ":" Team-Managed "," useLearnMoreLink " : false, "learnText": "", "learnLink": "https: // community.atlassian.com/t5/Jira-articles/Take-control-of-your-issues-with-list-view-and-exports/ba-p/1560473 "," description ":"
Более интуитивно понятный и быстрый выпуск опыт поиска с более надежным навигатором задач проекта: в дополнение к текстовому поиску теперь вы можете фильтровать по исполнителю, репортеру, статусу и типу проблемы.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Поиск, сортировка и изменение проблем с помощью более мощного навигатора проблем проекта: наслаждайтесь более интуитивным и быстрым поиском проблем с более надежным Навигатор проблем проекта: в дополнение к текстовому поиску теперь вы можете фильтровать по исполнителю, репортеру, статусу и типу проблемы."," textOnlyLower ":" искать, сортировать и изменять проблемы с помощью более мощного навигатора проблем проекта: наслаждайтесь более интуитивным и быстрым поиском проблем с более надежным навигатором проблем проекта: в дополнение к текстовому поиску теперь вы можете фильтровать по правопреемник, репортер, статус и тип проблемы. "}," 44c2cc9b ": {" title ":" Информация о разработке в одном месте в Jira Cloud для Mac "," lozengeColor ":" lightGray "," lozengeLabel ":" "," useLearnMoreLink ": true," learnText " : "Узнать больше", "learnLink": "https: // community.atlassian.com/t5/Jira-Mobile-and-Desktop-Apps/September-2020-update-What-s-new-and-what-s-coming-to-Jira-Cloud/ba-p/1472058 "," description ":"
Mac-приложение расширяет информацию о разработке, что позволяет быстрее и эффективнее завершить рабочий процесс гибкой разработки программного обеспечения - без необходимости переключаться между несколькими продуктами.
Новая «панель обзора» в задачах позволяет быстро просматривать: сведения о ветвях, коммиты, запросы на вытягивание, сборки, обзоры. Скоро вы сможете напрямую переходить к связанному запросу на перенос одним щелчком мыши и другими способами!
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Вся информация о разработке в одном месте в Jira Cloud для Mac: приложение Mac расширяет информацию о разработке, что позволяет быстрее завершить рабочий процесс гибкой разработки программного обеспечения и более эффективно - без необходимости переключаться между несколькими продуктами.Новая «панель обзора» в задачах позволяет быстро просматривать: сведения о ветке, коммиты, запросы на вытягивание, сборки, обзоры. Скоро вы сможете напрямую переходить к связанному запросу на перенос одним щелчком мыши и другими способами! "," textOnlyLower ":" Вся информация о разработке в одном месте в облаке jira для Mac: приложение для Mac расширяет информацию о разработке, что позволяет быстрее и эффективнее завершить рабочий процесс гибкой разработки программного обеспечения - без необходимости перемещаться между несколькими продуктами. новая «панель обзора» в задачах позволяет быстро просматривать: сведения о ветке, коммиты, запросы на вытягивание, сборки, обзоры.Скоро вы сможете напрямую переходить к связанному запросу на перенос одним щелчком мыши и другими способами! "}," 4f648fae ": {" title ":" Планирование невыполненных работ в Jira Cloud для Mac лучше, чем когда-либо "," lozengeColor ":" lightGray "," lozengeLabel ":" "," useLearnMoreLink ": true," learnText ": «Узнать больше», «learnLink»: «https://community.atlassian.com/t5/Jira-Mobile-and-Desktop-Apps/September-2020-update-What-s-new-and-what-s- come-to-Jira-Cloud / ba-p / 1472058 "," description ":"
Обработку невыполненных работ и планирование спринтов можно легко выполнить в приложении Mac.
Теперь отображаются бэклоги:
- Аватары исполнителей
- Очки истории и общее количество очков за спринт
- Быстрые фильтры
- Цели спринта
- Эпики, ярлыки и статус
"," belowDescription ":" "," pageContent " : "", "textOnly": "Планирование невыполненных работ в Jira Cloud для Mac стало лучше, чем когда-либо. Обработку невыполненных работ и планирование спринтов можно легко выполнить в приложении Mac. Жалобы теперь отображаются: Аватары исполнителей Очки истории и общее количество очков за спринт Быстрые фильтры Цели спринта Эпики, метки и статус "," textOnlyLower ":" планирование невыполненных работ лучше, чем когда-либо в облаке jira для Mac: обработка невыполненных работ и планирование спринтов могут быть легко сделать в приложении для Mac.в журналах теперь отображаются: исторические баллы и общее количество баллов за спринт. lightGray "," lozengeLabel ":" "," useLearnMoreLink ": true," learnText ":" Узнать больше "," learnLink ":" https://community.atlassian.com/t5/Jira-articles/A-better- Navigation-for-Jira-Cloud-is-come-скоро / ba-p / 1216077 "," description ":"
Мы создаем новый интерфейс навигации, который помещает навигацию в верхнюю часть экрана для более знакомого вида и Чувствовать.Мы также добавляем множество столь востребованных улучшений, как добавление раскрывающегося списка для ваших любимых панелей мониторинга и фильтров.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Создание улучшенной навигации для Jira Cloud: мы создаем новый интерфейс навигации, который помещает навигацию в верхнюю часть экрана для большего удобства. знакомый внешний вид. Мы также добавляем множество столь востребованных улучшений, как добавление раскрывающегося списка для ваших любимых панелей мониторинга и фильтров. "," textOnlyLower ":" создание улучшенной навигации для облака jira: мы создаем новый интерфейс навигации, который помещает навигацию в верхнюю часть экрана для более знакомого внешнего вида.мы также добавляем множество столь востребованных улучшений, как добавление раскрывающегося списка для ваших любимых панелей мониторинга и фильтров. "}," 3fdfe336 ": {" title ":" Предоставьте каждому пользователю возможность настраивать уведомления по электронной почте "," lozengeColor ":" lightGray "," lozengeLabel ":" "," useLearnMoreLink ": true," learnText ":" Подробнее "," learnLink ":" https://confluence.atlassian.com/adminjiracloud/configuring-email-notifications-776636790.html "," description ":"
Дайте возможность всем в вашей команде настраивать уведомления по электронной почте от Jira Software, поэтому они получают обновления только о тех проблемах, которые им нужны.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Предоставьте каждому пользователю возможность настраивать уведомления по электронной почте: разрешите всем в вашей команде настраивать уведомления по электронной почте от Jira Software, чтобы они получали только обновления о вопросы, которые они хотят. "," textOnlyLower ":" предоставить каждому пользователю возможность настраивать уведомления по электронной почте: разрешите всем в вашей команде настраивать уведомления по электронной почте из программного обеспечения jira, чтобы они получали обновления только о тех проблемах, которые им нужны. "}," 19b0a598 ": {" title ":" Новые надежные функции в Jira Cloud для Mac "," lozengeColor ":" lightGray "," lozengeLabel ":" "," useLearnMoreLink ": false," learnText ":" Подробнее "," learnLink ":" https: // www.atlassian.com/software/jira/mac "," description ":"
В октябре прошлого года мы запустили Jira Cloud для Mac, новый, быстрый и простой способ использования Jira. В начале 2020 года мы представим три интересные функции:
- Статус инструмента разработчика: информация о фиксации, запросах на вытягивание, сборках и / или развертываниях будет видна в представлении проблемы, поэтому при необходимости можно будет предпринять дополнительные действия.
- Отслеживайте ход выпуска выпусков: теперь команды могут отслеживать производительность в Jira Cloud для Mac, отслеживая ход выпуска своих выпусков.
- Измерение и мониторинг: скоро появятся отчеты о выгорании, скорости и совокупной блок-схеме.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Новые надежные функции в Jira Cloud для Mac: в октябре прошлого года мы запустили Jira Cloud для Mac, новый, быстрый и простой способ использовать Jira. В начале 2020 года мы представим три интересные функции: Статус инструмента разработчика: информация о фиксации, запросах на вытягивание, сборках и / или развертываниях будет отображаться в представлении проблемы, поэтому при необходимости можно будет предпринять дополнительные действия.Отслеживайте ход выпуска выпусков: теперь команды могут отслеживать продуктивность в Jira Cloud для Mac, отслеживая ход выпуска своих выпусков. Измерение и мониторинг: скоро появятся отчеты о выгорании, скорости и совокупной блок-схеме. "," textOnlyLower ":" новые надежные функции в jira cloud для mac: в прошлом октябре мы запустили jira cloud для mac, новый, быстрый и простой способ использования jira. в начале 2020 года мы представим три захватывающие функции: статус инструмента разработчика: коммиты, запросы на вытягивание, сборка и / или информация о развертывании будет отображаться в представлении проблемы, поэтому при необходимости можно будет предпринять дополнительные действия.отслеживать ход выпуска выпусков: теперь команды могут отслеживать продуктивность в jira cloud для Mac, отслеживая ход выпуска своих выпусков. Измерение и мониторинг: скоро появятся отчеты о выгорании, скорости и совокупной блок-схеме. "}," 22540a44 ": {" title ":" Ссылки и панели инструментов разработчика Jira Cloud для Mac "," lozengeColor ":" сиреневый "," lozengeLabel ":" "," useLearnMoreLink ": false," learnText ":" Подробнее "," learnLink ":" "," description ":"
Просматривайте инструменты сторонних разработчиков и взаимодействуйте с ними прямо из приложения Mac без перехода между несколькими продуктами.
Скоро вы сможете получить доступ ко всей информации об инструменте разработки непосредственно из связанных задач в приложении, включая запросы на вытягивание, фиксации, репозитории и сборки - вплоть до конкретного кода в отдельных ветвях, что экономит время и ускоряет работу. .
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Ссылки и панели инструментов разработчика Jira Cloud для Mac: просмотр и взаимодействие со сторонними инструментами разработчика непосредственно из приложения Mac без перехода между несколькими продуктами .Вскоре вы сможете получить доступ ко всей информации об инструменте разработки непосредственно из связанных задач в приложении, включая запросы на вытягивание, фиксации, репозитории и сборки - вплоть до конкретного кода в отдельных ветвях, что экономит время и ускоряет работу. "," textOnlyLower ":" ссылки и панели инструментов разработчика jira cloud для Mac: просматривайте и взаимодействуйте со сторонними инструментами разработчика прямо из приложения для Mac без перехода между несколькими продуктами. вскоре вы сможете получить доступ ко всей информации об инструменте разработки непосредственно из связанных задач в приложении, включая запросы на вытягивание, фиксации, репозитории и сборки - вплоть до конкретного кода в отдельных ветвях, что экономит время и ускоряет работу."}," 1dab2748 ": {" title ":" Более эффективный поиск с настраиваемыми полями в навигаторе задач "," lozengeColor ":" сиреневый "," lozengeLabel ":" "," useLearnMoreLink ": false," learnText ":" Подробнее "," learnLink ":" "," description ":"
Выполняйте эффективный поиск с настраиваемыми полями в навигаторе задач.
Мы расширяем набор полей, которые вы сможете использовать для поиска: метки, разрешение, приоритет и некоторые другие будут добавлены в навигатор задач. Используя эти поля, вы можете дополнительно уточнить результаты поиска, что сэкономит ваше время и повысит эффективность вашей работы над проектами.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Более эффективный поиск с настраиваемыми полями в навигаторе задач: запускайте эффективный поиск с настраиваемыми полями в навигаторе задач. Мы расширяем набор полей, по которым вы сможете выполнять поиск: метки, разрешение, приоритет и некоторые другие будут добавлены в навигатор задач. Используя эти поля, вы можете дополнительно уточнить результаты поиска, что сэкономит ваше время и повысит эффективность вашей работы над проектами. "," textOnlyLower ":" более эффективный поиск с настраиваемыми полями в навигаторе задач: запускайте эффективный поиск с настраиваемыми полями в навигаторе задач.мы расширяем набор полей, по которым вы сможете выполнять поиск: метки, разрешение, приоритет и некоторые другие будут добавлены в навигатор задач. используя эти поля, вы можете уточнить результаты поиска, что сэкономит ваше время и повысит вашу эффективность при работе над проектами. "}," c3b00b41 ": {" title ":" Просмотр панелей мониторинга в приложениях для iOS, Android и Mac! "," lozengeColor ":" сиреневый "," lozengeLabel ":" "," useLearnMoreLink ": false," learnText ": "Узнать больше", "learnLink": "", "description": "
Теперь будет намного проще просматривать информационные панели и делиться ими с вашей командой, заинтересованными сторонами и руководством.
Скоро вы сможете получать доступ к панелям управления Jira со своих устройств. Быстро просматривайте обзор задач, отслеживайте прогресс и достижения или даже выявляйте узкие места, даже когда вы находитесь вдали от ноутбука.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Просмотр панелей мониторинга в приложениях для iOS, Android и Mac !: Просмотр и совместное использование панелей мониторинга с вашей командой, заинтересованными сторонами и руководством скоро получит намного проще. Скоро вы сможете получить доступ к своим панелям управления Jira со своих устройств.Быстро просматривайте обзор задач, отслеживайте прогресс и достижения или даже выявляйте узкие места, даже когда вы находитесь вдали от ноутбука. "," textOnlyLower ":" просматривать информационные панели в приложениях для ios, android и mac !: просмотр и обмен информационными панелями с вашей командой, заинтересованными сторонами и руководством станет намного проще. скоро вы сможете получить доступ к своим панелям управления jira со своих устройств. быстро просматривать обзор задач, отслеживать прогресс и достижения или даже выявлять узкие места, даже когда вы находитесь вдали от ноутбука."}," e8bd5021 ": {" title ":" Быстрые действия в журнале "," lozengeColor ":" lightGray "," lozengeLabel ":" Управляется командой "," useLearnMoreLink ": true," learnText ":" Учиться подробнее »,« learnLink »:« https://community.atlassian.com/t5/Next-gen-articles/Perform-common-actions-quicker-in-the-next-gen-Backlog-view/ba-p/ 1544699 "," description ":"
Поддерживать движение вашей команды стало еще проще. Теперь вы можете сразу просматривать статус работы в журнале невыполненных работ и выполнять стандартные действия, такие как обновление статуса, правопреемника и очков истории, прямо на карточке - даже не открывая проблему.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Быстрые действия в невыполненной работе: теперь ваша команда может двигаться быстрее. Теперь вы можете сразу просматривать статус работы в журнале невыполненных работ и выполнять стандартные действия, такие как обновление статуса, правопреемника и очков истории, прямо на карточке - даже не открывая проблему. "," textOnlyLower ":" быстрые действия в невыполненной работе: держать вашу команду в движении стало еще проще. Теперь вы можете быстро просмотреть статус работы в невыполненной работе и выполнять стандартные действия, такие как обновление статуса, правопреемника и очков истории, прямо на карточке - даже не открывая проблему."}," ba2a998e ": {" title ":" Включить Code в качестве первоклассного гражданина в навигации по проекту "," lozengeColor ":" lightGray "," lozengeLabel ":" Team-Managed "," useLearnMoreLink ": true, «learnText»: «Узнать больше», «learnLink»: «https://community.atlassian.com/t5/Jira-Software-articles/Code-in-Jira-a-new-Jira-Software-feature-for- classic-and-next / ba-p / 1464514 "," description ":"
Мы добавили Code в качестве первоклассного гражданина в навигацию проекта Jira Software и добавили новое представление, чтобы предоставить вам и вашей команде больше информации о вашем Работа.После того, как вы подключите управление исходным кодом к Jira Software, каждый раз, когда член команды включает ключ проблемы в свою фиксацию, название ветки или сводку PR, мы автоматически отображаем репо, в котором произошло это действие, и на странице! Каждый член команды может видеть все репозитории, с которыми он работает, и каждый в организации может видеть код, которого касается команда, и все в одном месте.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Включить Code в качестве первоклассного гражданина в навигации по проекту: мы добавили Code в качестве первоклассного гражданина в навигацию проекта Jira Software и включил новое сетевое представление, чтобы предоставить вам и вашей команде больше информации о вашей работе.После того, как вы подключите управление исходным кодом к Jira Software, каждый раз, когда член команды включает ключ проблемы в свою фиксацию, название ветки или сводку PR, мы автоматически отображаем репо, в котором произошло это действие, и на странице! Каждый член команды может видеть все репозитории, с которыми он работает, и каждый в организации может видеть код, которого касается команда, и все в одном месте. "," textOnlyLower ":" включить код как первоклассный гражданин в навигации по проекту: мы добавили код как первоклассный гражданин в навигацию проекта программного обеспечения jira и включили новое сетевое представление, чтобы предоставить вам и вашей команде больше информации о вашем Работа.как только вы подключите управление исходным кодом к программному обеспечению jira, каждый раз, когда член команды включает ключ проблемы в свою фиксацию, название ветки или сводку PR, мы автоматически отобразим репозиторий, в котором произошло это действие, и на странице! все в команде могут видеть все репозитории, с которыми они работают, и каждый в организации может видеть код, которого касается команда, и все в одном месте. "}," a0ca2940 ": {" title ":" Экономьте время с помощью быстрых клавиш "," lozengeColor ":" lightGray "," lozengeLabel ":" Управляется командой "," useLearnMoreLink ": true," learnText ":" Учиться подробнее "," learnLink ":" https: // community.atlassian.com/t5/Next-gen-articles/Keyboard-shortcuts-have-arhibited-for-next-gen-projects/ba-p/1485369 "," description ":" Сочетания клавиш
- отличный способ ускорить редактирование, навигация и выполнение действий, не убирая пальцы с клавиатуры.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Экономьте время с помощью сочетаний клавиш: сочетания клавиш - отличный способ ускорить редактирование, навигацию и выполнение действий без необходимости пальцы от клавиатуры."," textOnlyLower ":" экономьте время с помощью сочетаний клавиш: сочетания клавиш - отличный способ ускорить редактирование, навигацию и выполнение действий, не убирая пальцы с клавиатуры. "}," 81fe1732 ": {" title ":" Легко очистить вашу доску от выполненной работы "," lozengeColor ":" lightGray "," lozengeLabel ":" Team-Managed "," useLearnMoreLink ": true," learnText " : «Узнать больше», «learnLink»: «https://community.atlassian.com/t5/Next-gen-articles/Introduction-manual-board-clearing-for-your-next-gen-Kanban-board/ba. -p / 1411958 # "," description ":"
Удалите проблемы \ "Готово \" с вашей доски за пару кликов, чтобы у вас было четкое представление обо всех соответствующих проблемах и вы могли легко удалить уже завершенные проблемы.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Легко очистите свою доску от выполненной работы: Удалите с доски проблемы \ "Готово \" за пару кликов, чтобы у вас была чистая просмотр всех соответствующих проблем и может легко удалить проблемы, которые были завершены. "," textOnlyLower ":" легко очистить вашу доску от выполненной работы: очистить \ "готовые \" проблемы с вашей доски за пару кликов, чтобы у вас было четкое представление обо всех соответствующих проблемах и вы могли легко удалить проблемы, которые были выполнены. "}," b3fc0d81 ": {" title ":" Лучший способ спланировать отставание с помощью новой эпической панели "," lozengeColor ":" lightGray "," lozengeLabel ":" Team-Managed "," useLearnMoreLink ": true , "learnText": "Подробнее", "learnLink": "https: // community.atlassian.com/t5/Next-gen-articles/Introduction-manual-board-clearing-for-your-next-gen-Kanban-board/ba-p/1411958# "," description ":"
Мы улучшили планирование невыполненных работ в проектах, управляемых командой, с помощью новой эпической панели, которая делает разбивку работы более эффективной. Быстро добавляйте работы к эпосу с помощью перетаскивания. Создавайте новые эпопеи и просматривайте прогресс существующей эпопеи. Отфильтруйте представление невыполненных работ, выбрав один или несколько эпиков.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Лучший способ планировать отставание с помощью новой эпической панели: мы улучшили планирование невыполненных работ в командных проектах с новой эпической панель, чтобы сделать разбивку работы более эффективной.Быстро добавляйте работы к эпосу с помощью перетаскивания. Создавайте новые эпопеи и просматривайте прогресс существующей эпопеи. Отфильтруйте представление невыполненных работ, выбрав один или несколько эпиков. "," textOnlyLower ":" лучший способ планировать невыполненные задания с помощью новой эпической панели: мы улучшили планирование невыполненных работ в командных проектах с помощью новой эпической панели, чтобы сделать разбивку работы более эффективной. быстро добавить работу к эпику с помощью перетаскивания. создавать новые эпические произведения и следить за развитием существующего эпоса. отфильтруйте представление невыполненных работ, выбрав один или несколько эпиков."}," 3d1ec8df ": {" title ":" С легкостью ищите, сортируйте и изменяйте проблемы с помощью навигатора задач проекта "," lozengeColor ":" lightGray "," lozengeLabel ":" "," useLearnMoreLink ": true," learnText ":" Узнать больше "," learnLink ":" https://community.atlassian.com/t5/Next-gen-articles/Introduction-issue-navigator-in-next-gen-projects/ba-p/1339049 "," description ":"
Навигация и поиск станут намного проще благодаря навигатору проблем проекта в проектах, управляемых командой: поиск любой проблемы в проекте с помощью текстового поиска или фильтрации по исполнителю, репортеру и статусу.Отсортируйте список по множеству критериев и измените проблемы прямо из списка.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" С легкостью ищите, сортируйте и изменяйте проблемы с помощью навигатора задач проекта: навигация и поиск скоро станут намного проще с проблемой проекта навигатор в проектах, управляемых командой: поиск любой проблемы в проекте с помощью текстового поиска или фильтрации по исполнителю, репортеру и статусу. Отсортируйте список по множеству критериев и измените проблемы прямо из списка."," textOnlyLower ":" с легкостью ищите, сортируйте и изменяйте проблемы с помощью навигатора проблем проекта: навигация и поиск станут намного проще с навигатором проблем проекта в проектах, управляемых командой: ищите любую проблему в проекте, используя текстовый поиск или фильтрация по исполнителю, репортеру и статусу. отсортируйте свой список по множеству критериев и измените проблемы прямо из списка. "}," a8363be0 ": {" title ":" Разрешить каждому члену команды персонализировать свой взгляд на доску "," lozengeColor ":" lightGray "," lozengeLabel ":" Team-Managed "," useLearnMoreLink ": true, "learnText": "Подробнее", "learnLink": "https: // community.atlassian.com/t5/Next-gen-articles/Feature-Announcement-User-based-Swimlanes-for-Next-gen/ba-p/1357909#M1317 "," description ":"
Мы открываем конфигурацию дорожки так что каждый член команды может просматривать свою работу на доске наиболее удобным для него способом - будь то группировка задач по исполнителям, по эпикам или по подзадачам.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Разрешить каждому члену команды персонализировать свой вид доски: мы открываем конфигурацию дорожки, чтобы каждый член команды мог просматривать свою работу на доске наиболее полезным для них способом - будь то группировка задач по исполнителям, по эпическим или подзадачам."," textOnlyLower ":" позволяют каждому члену команды персонализировать свое представление о доске: мы открываем конфигурацию дорожки, чтобы каждый член команды мог просматривать свою работу на доске наиболее удобным для них способом - независимо от того, это путем группировки задач по исполнителям, по эпикам или подзадачам. "}," 2709a2eb ": {" title ":" Создавать и настраивать разрешения "," lozengeColor ":" lightGray "," lozengeLabel ":" Team-Managed "," useLearnMoreLink ": true," learnText ":" Подробнее "," learnLink ":" https: // community.atlassian.com/t5/Next-gen-articles/Managing-Roles-and-Permissions-for-Next-gen-projects/ba-p/1309972 »,« description »:«
Создайте пользовательские роли и назначьте им разрешения. в командных проектах. Теперь, в дополнение к стандартным ролям, которые вы получаете из коробки (администратор, участник и наблюдатель), вы можете создавать роли по своему выбору. Создав новую роль, вы можете: просматривать и изменять связанные с ней разрешения, клонировать ее и удалять.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Создание и настройка разрешений: создание пользовательских ролей и назначение разрешений этим ролям в проектах, управляемых группой.Теперь, в дополнение к стандартным ролям, которые вы получаете из коробки (администратор, участник и наблюдатель), вы можете создавать роли по своему выбору. Создав новую роль, вы можете: просматривать и изменять связанные с ней разрешения, клонировать ее и удалять. "," textOnlyLower ":" создавать и настраивать разрешения: создавать настраиваемые роли и назначать разрешения этим ролям в проектах, управляемых группой. Теперь, в дополнение к стандартным ролям, которые вы получаете из коробки (администратор, участник и наблюдатель), вы можете создавать роли по вашему выбору.после создания новой роли вы можете: просматривать и изменять связанные с ней разрешения, клонировать и удалять. "}," 2108d55d ": {" title ":" Получите лучшее представление о готовности к выпуску с помощью версий "," lozengeColor ":" lightGray "," lozengeLabel ":" Team-Managed "," useLearnMoreLink ": true," learnText ":" Узнать больше "," learnLink ":" https://community.atlassian.com/t5/Jira-articles/New-features-for-next-gen-projects-in-Jira-Software-Cloud/ba- p / 1232149 "," description ":"
В проектах, управляемых командой, мы будем предоставлять версии и поле с фиксированной версией, чтобы вы могли планировать и отслеживать множественные проблемы, возникающие в выпуске, в зависимости от того, как вы на самом деле поставляете программное обеспечение.Версии также могут быть полезны для лучшего понимания готовности к выпуску, а также для проверки того, что было выпущено постфактум, например, для исследования проблем или празднования достижений.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Получите лучшее представление о готовности к выпуску с помощью версий: в проектах, управляемых командой, мы будем предоставлять версии и поле с фиксированной версией, так что вы можете планировать и отслеживать несколько проблем, возникающих в выпуске, в зависимости от того, как вы на самом деле поставляете программное обеспечение.Версии также могут быть полезны для лучшего понимания готовности к выпуску, а также для проверки того, что было выпущено постфактум, например, для исследования проблем или празднования достижений. "," textOnlyLower ":" лучше понять готовность к выпуску с помощью версий: в проектах, управляемых командой, мы будем предоставлять версии и поле фиксированной версии, чтобы вы могли планировать и отслеживать несколько проблем, возникающих в выпуске, с учетом как вы на самом деле поставляете программное обеспечение. версии также могут быть полезны для лучшего понимания готовности к выпуску, а также для проверки того, что было выпущено постфактум, например, для исследования проблем или празднования достижений."},"
84c ": {" title ":" Посмотрите, как поднимаются ваши проблемы до общей картины из дорожной карты Jira "," lozengeColor ":" lightGray "," lozengeLabel ":" Team-Managed "," useLearnMoreLink " : true, «learnText»: «Узнать больше», «learnLink»: «https://community.atlassian.com/t5/Jira-articles/Introduction-new-features-for-Jira-Software-Cloud-s-roadmap / ba-p / 1250287 "," description ":"
Получите лучшее представление о том, над чем работает ваша команда, с первого взгляда, прямо из дорожной карты. С добавлением иерархии дорожной карты вы сможете видеть все истории, задачи и другие дочерние проблемы, которые добавляются к вашим эпикам.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Посмотрите, как поднимаются ваши проблемы до общей картины из дорожной карты Jira: Получите лучшее представление о том, над чем работает ваша команда, на взгляд прямо из дорожной карты. С добавлением иерархии дорожной карты вы сможете видеть все истории, задачи и другие дочерние проблемы, которые добавляются к вашим эпикам. "," textOnlyLower ":" посмотрите, как ваши проблемы поднимаются до общей картины из дорожной карты jira: получите лучшее представление о том, над чем работает ваша команда, с первого взгляда, прямо из дорожной карты.с добавлением иерархии дорожной карты вы сможете увидеть все истории, задачи и другие дочерние проблемы, которые добавляются к вашим эпосам. "}," cc9b5706 ": {" title ":" Разбейте работу, прямо из дорожной карты Jira "," lozengeColor ":" lightGray "," lozengeLabel ":" Team-Managed "," useLearnMoreLink ": true," learnText ":" Узнать больше "," learnLink ":" https://community.atlassian.com/t5/Jira-articles/Introduction-new-features-for-Jira-Software-Cloud-s-roadmap/ba-p/ 1250287 "," description ":"
Теперь вы можете создавать небольшие части работы одним щелчком мыши прямо из дорожной карты Jira.Это поможет командам работать быстрее, делая больше с меньшим количеством щелчков мыши.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Разделите работу прямо из дорожной карты Jira: теперь вы можете создавать меньшие части работы одним щелчком мыши прямо из дорожной карты Jira. Это поможет командам работать быстрее, делая больше с меньшим количеством щелчков мышью "," textOnlyLower ":" разбивая работу прямо из дорожной карты jira: теперь вы можете создавать более мелкие части работы одним щелчком мыши прямо из дорожной карты jira. это поможет командам работать быстрее, делая больше с меньшим количеством щелчков "}," fda4f22d ": {" title ":" Сохраняйте подробную информацию с помощью нового поля абзаца "," lozengeColor ":" lightGray "," lozengeLabel ":" Team -Managed "," useLearnMoreLink ": true," learnText ":" Узнать больше "," learnLink ":" https: // confluence.atlassian.com/jirasoftwarecloud/available-custom-fields-for-next-gen-projects-957511207.html "," description ":"
Это новое настраиваемое поле позволяет записывать подробные текстовые ответы в основной части ваших проблем. Добавьте маркеры, нумерацию, стили заголовков и многое другое, чтобы создать богатый контент, необходимый для описания работы вашей команды.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Сохраняйте подробную информацию с помощью нового поля абзаца: это новое настраиваемое поле позволяет вам записывать подробные текстовые ответы в основной части ваших проблем.Добавьте маркеры, нумерацию, стили заголовков и многое другое, чтобы создать богатый контент, необходимый для описания работы вашей команды. "," textOnlyLower ":" собирать подробную информацию с помощью нового поля абзаца: это новое настраиваемое поле позволяет вам записывать подробные текстовые ответы в основной части ваших проблем. добавьте маркеры, нумерацию, стили заголовков и многое другое, чтобы создать богатый контент, необходимый для описания работы вашей команды. "}," 2aa07dbb ": {" title ":" Новый взгляд на спринт "," lozengeColor ":" lightGray "," lozengeLabel ":" Team-Managed "," useLearnMoreLink ": true," learnText ":" Подробнее "," learnLink ":" https: // community.atlassian.com/t5/Next-gen-articles/We-are-reinventing-the-Sprint-burndown-for-next-gen-projects/ba-p/1192403 "," описание ":"
Мы объединили отчет о спринте и диаграмма выгорания в единый отчет в проектах, управляемых командой. Диаграмма выгорания спринта показывает объем работы, выполненной за спринт, и общую оставшуюся работу. Он также отлично подходит для понимания постепенного увеличения объема работ и для составления резюме в ретроспективе спринта.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Новый взгляд на спринт-сгорание: мы объединили отчет о спринте и сгорающую диаграмму в один отчет в проектах, управляемых командой.Диаграмма выгорания спринта показывает объем работы, выполненной за спринт, и общую оставшуюся работу. Он также отлично подходит для понимания постепенного увеличения объема работ и для составления резюме в ретроспективе спринта. "," textOnlyLower ":" переосмысливая процесс выгорания спринта: мы объединили отчет по спринту и диаграмму выгорания в один отчет в проектах, управляемых командой. диаграмма выгорания спринта показывает объем работы, выполненной за спринт, и общую оставшуюся работу. он также отлично подходит для понимания постепенного увеличения объема работ и для составления резюме в ретроспективе спринта."}," 410d5203 ": {" title ":" Проблемы с временем регистрации "," lozengeColor ":" lightGray "," lozengeLabel ":" Командное управление "," useLearnMoreLink ": true," learnText ":" Подробнее , "learnLink": "https://confluence.atlassian.com/jirasoftwarecloud/logging-time-on-issues-
9028.html", "description": "
Мы добавили отслеживание времени, чтобы вы могли регистрировать часы, которые вы работать над проблемами в командных проектах. Это может быть особенно полезно для людей, которым нужно отслеживать, сколько времени они тратят на решение проблем, или выставлять счет клиентам за работу, которую они делают.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Регистрация проблем со временем: мы добавили функцию отслеживания времени, чтобы вы могли регистрировать часы работы над проблемами в проектах, управляемых командой. Это может быть особенно полезно для людей, которым нужно отслеживать, сколько времени они тратят на решение проблем, или выставлять счет клиентам за работу, которую они делают. "," textOnlyLower ":" регистрировать проблемы с временем: мы добавили отслеживание времени, чтобы вы могли регистрировать часы своей работы над проблемами в командных проектах. это может быть особенно полезно для людей, которым нужно отслеживать, сколько времени они тратят на решение проблем, или выставлять счет клиентам за работу, которую они делают."}," 52dbfaea ": {" title ":" Определите узкие места в вашем рабочем процессе с помощью новой совокупной блок-схемы "," lozengeColor ":" lightGray "," lozengeLabel ":" Team-Managed "," useLearnMoreLink ": true, «learnText»: «Узнать больше», «learnLink»: «https://community.atlassian.com/t5/Next-gen-articles/Introduction-our-first-Kanban-report-for-next-gen-projects/ ba-p / 1152420 "," description ":"
Совокупная блок-схема помогает группам видеть совокупные статусы проблем с течением времени, что может быть полезно для выявления узких мест в рабочем процессе вашей команды.В этом отчете вы увидите новые легенды для переключения столбцов для повышения удобства использования, а также улучшения производительности для проектов с большими объемами данных и несколько новых цветов.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Определите узкие места в вашем рабочем процессе с помощью новой совокупной блок-схемы: совокупная блок-схема помогает командам видеть агрегированные статусы проблем за определенный период быть полезным для выявления узких мест в рабочем процессе вашей команды. В этом отчете вы увидите новые легенды для переключения столбцов для повышения удобства использования, а также улучшения производительности для проектов с большими объемами данных и несколько новых цветов."," textOnlyLower ":" определите узкие места в рабочем процессе с помощью новой совокупной блок-схемы: совокупная блок-схема помогает командам видеть совокупные статусы проблем с течением времени, что может быть полезно для выявления узких мест в рабочем процессе вашей команды. В этом отчете вы увидите новые легенды для переключения столбцов для повышения удобства использования, а также улучшения производительности для проектов с большими объемами данных и несколько новых цветов. "}," 02615b8c ": {" title ":" Более точное представление с дополнительными фильтрами для досок и невыполненных журналов "," lozengeColor ":" lightGray "," lozengeLabel ":" Team-Managed "," useLearnMoreLink ": false, "learnText": "Подробнее", "learnLink": "", "description": "
Дополнительные фильтры дадут вам гибкость, чтобы найти именно то, что вам нужно, в Backlog и Board, независимо от того, основано ли это на настраиваемом поле, вы были созданы или основаны на одном из общих полей, предоставленных во время настройки.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Более точное представление с дополнительными фильтрами для досок и невыполненных работ: дополнительные фильтры дадут вам гибкость, чтобы найти именно то, что вам нужно в Backlog и Board, будь то на основе настраиваемого поля, созданного вами, или на основе одного из общих полей, предоставленных во время настройки. "," textOnlyLower ":" более точное представление с дополнительными фильтрами для досок и невыполненных работ: дополнительные фильтры дадут вам гибкость, чтобы найти именно то, что вам нужно, в невыполненной работе и доске, независимо от того, основано ли это на созданном вами настраиваемом поле или на основе одного из общих полей, предоставленных во время настройки."}," a4f6d580 ": {" title ":" Более гибкие конфигурации оценки "," lozengeColor ":" lightGray "," lozengeLabel ":" Team-Managed "," useLearnMoreLink ": false," learnText ":" Подробнее "," learnLink ":" "," description ":"
Трудно с уверенностью предсказать, когда команда создаст программное обеспечение. Процесс оценки поощряет открытые беседы, выявляет риски или неопределенность и помогает командам разбивать работу на более мелкие задачи. Некоторые команды предпочитают оценивать в сюжетных точках, а затем делать еще один шаг и предоставлять оценки времени, чтобы помочь ориентировочно распределить ресурсы и расставить приоритеты в работе.В проектах следующего поколения команды будут иметь возможность устанавливать оценки в зависимости от того, что соответствует их конкретным потребностям.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Более гибкие конфигурации оценки: трудно надежно предсказать, когда группа поставит программное обеспечение. Процесс оценки поощряет открытые беседы, выявляет риски или неопределенность и помогает командам разбивать работу на более мелкие задачи. Некоторые команды предпочитают оценивать в сюжетных точках, а затем делать еще один шаг и предоставлять оценки времени, чтобы помочь ориентировочно распределить ресурсы и расставить приоритеты в работе.В проектах следующего поколения команды будут иметь возможность устанавливать оценки в зависимости от того, что соответствует их конкретным потребностям. "," textOnlyLower ":" более гибкие конфигурации оценки: трудно надежно предсказать, когда группа поставит программное обеспечение. процесс оценки поощряет открытые беседы, выявляет риски или неопределенность и помогает командам разбивать работу на более мелкие задачи. некоторые команды предпочитают оценивать в сюжетных точках, а затем делать еще один шаг и предоставлять оценки времени, чтобы помочь ориентировочно распределить ресурсы и расставить приоритеты в работе.в проектах следующего поколения команды будут иметь возможность устанавливать оценки в зависимости от того, что соответствует их конкретным потребностям. "}," 891f46ff ": {" title ":" Рабочие процессы по типу задачи и сопоставлению статуса столбца "," lozengeColor ":" lightGray "," lozengeLabel ":" Team-Managed "," useLearnMoreLink ": false," learnText " : "Узнать больше", "learnLink": "", "description": "
Мы предлагаем новый способ определения, адаптации и корректировки рабочих процессов на вашей доске, предоставляя вам больше контроля над тем, как ваша работа продвигается к соответствовать тому, как работает ваша команда.
Для каждого типа задачи может быть свой собственный набор статусов, переходов и правил. Поэтому, когда работа продвигается вперед, она переходит к контрольным точкам, которые вы уже определили.
Столбцы и статусы на ваших досках будут разделены, чтобы вы могли сопоставить несколько статусов одному столбцу, создавая более сфокусированную и лаконичную доску. Мы даже дадим вам специальное пространство для управления всем этим, помогая отличить настройку от работы.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Сопоставление рабочих процессов по типу задачи и статусу столбца: мы предлагаем новый способ определения, адаптации и корректировки рабочих процессов на вашем доску, давая вам больше контроля над тем, как продвигается ваша работа, в соответствии с тем, как работает ваша команда.У каждого типа задачи может быть свой собственный набор статусов, переходов и правил. Поэтому, когда работа продвигается вперед, она переходит к контрольным точкам, которые вы уже определили. Столбцы и статусы на ваших досках будут разделены, поэтому вы можете сопоставить несколько статусов одному столбцу, создав более сфокусированную и краткую доску. Мы даже дадим вам специальное пространство для управления всем этим, помогая отличить настройку от работы. "," textOnlyLower ":" рабочие процессы по типу задачи и сопоставление статуса столбца: мы предлагаем новый способ определения, адаптации и корректировки рабочих процессов на вашей доске, предоставляя вам больше контроля над тем, как продвигается ваша работа, в соответствии с тем, как ваша команда работает.Каждый тип задачи может иметь свой собственный набор статусов, переходов и правил. поэтому, когда работа продвигается вперед, она переходит к контрольным точкам, которые вы уже определили. столбцы и статусы на ваших досках будут разделены, так что вы можете сопоставить несколько статусов одному столбцу, создавая более сфокусированную и лаконичную доску. мы даже дадим вам специальное пространство для управления всем этим, помогая отличить настройку от работы. "}," 0f498233 ": {" title ":" Новый взгляд на редактор рабочего процесса "," lozengeColor ":" lightGray "," lozengeLabel ":" Коллективное управление "," useLearnMoreLink ": false," learnText ":" Подробнее "," learnLink ":" "," description ":"
В проектах, управляемых командой, мы переосмыслили многие из основных функций Jira Software, чтобы оптимизировать их автономность и простоту использования.Мы переносим эту философию в новый редактор рабочих процессов.
В нашем проекте, управляемом компанией, рабочие процессы являются глобальными объектами, что означает, что вы можете сделать их согласованными для нескольких проектов. Это хорошо подходит для масштабирования конкретного рабочего процесса между несколькими командами, но также требует, чтобы любые изменения управлялись администратором, поскольку они могут повлиять на несколько проектов Jira.
Проекты, управляемые командой, полностью независимы друг от друга, то есть вы можете что-то изменить в одном проекте, и это не повлияет ни на что в другом.Рабочие процессы живут в проектах и будут привязаны к конкретным типам задач. Так, например, у вас может быть определенный рабочий процесс для ваших ошибок и другой рабочий процесс для ваших историй. Поскольку проекты полностью независимы друг от друга, это дает командам больше автономии для настройки и непрерывной оптимизации своих рабочих процессов, не влияя на другие команды и не беспокоя администраторов. В редакторе рабочих процессов в проектах, управляемых командой, также была проведена серьезная реконструкция, которая упростит редактирование и наглядную визуализацию рабочих процессов.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Переосмысление редактора рабочего процесса: в проектах, управляемых командой, мы переосмыслили многие из основных функций Jira Software, чтобы оптимизировать их автономность и удобство. использования. Мы переносим эту философию в новый редактор рабочих процессов. В нашем проекте, управляемом компанией, рабочие процессы являются глобальными объектами, что означает, что вы можете сделать их согласованными для нескольких проектов. Это хорошо подходит для масштабирования конкретного рабочего процесса между несколькими командами, но также требует, чтобы любые изменения управлялись администратором, поскольку они могут повлиять на несколько проектов Jira.Проекты, управляемые командой, полностью независимы друг от друга, то есть вы можете что-то изменить в одном проекте, и это не повлияет ни на что в другом. Рабочие процессы живут в проектах и будут привязаны к конкретным типам задач. Так, например, у вас может быть определенный рабочий процесс для ваших ошибок и другой рабочий процесс для ваших историй. Поскольку проекты полностью независимы друг от друга, это дает командам больше автономии для настройки и непрерывной оптимизации своих рабочих процессов, не влияя на другие команды и не беспокоя администраторов.В редакторе рабочих процессов в проектах, управляемых командой, также была проведена серьезная реконструкция, которая упростит редактирование и наглядную визуализацию рабочих процессов. "," textOnlyLower ":" переосмысление редактора рабочих процессов: в проектах, управляемых командой, мы переосмыслили многие из основных функций программного обеспечения jira, чтобы оптимизировать их автономность и простоту использования. мы переносим эту философию в совершенно новый редактор рабочих процессов. В нашем проекте, управляемом компанией, рабочие процессы являются глобальными объектами, что означает, что вы можете сделать их согласованными для нескольких проектов.это хорошо работает для масштабирования конкретного рабочего процесса между несколькими командами, но также требует, чтобы любые изменения управлялись администратором, поскольку они могут повлиять на несколько проектов jira. Командные проекты полностью независимы друг от друга, то есть вы можете что-то изменить в одном проекте, и это не повлияет ни на что в другом. рабочие процессы живут внутри проектов и будут привязаны к конкретным типам задач. так, например, у вас может быть определенный рабочий процесс для ваших ошибок и другой рабочий процесс для ваших историй.поскольку проекты полностью независимы друг от друга, это дает командам больше автономии для настройки и непрерывной оптимизации своих рабочих процессов, не влияя на другие команды и не беспокоя администраторов. Редактор рабочих процессов в проектах, управляемых командой, также претерпел значительные изменения, которые упростят редактирование и наглядную визуализацию рабочих процессов. "}," 21d19a67 ": {" title ":" Узнайте, что было отправлено и когда с развертываниями в Jira "," lozengeColor ":" lightGray "," lozengeLabel ":" Team-Managed "," useLearnMoreLink ": true," learnText ":" Подробнее "," learnLink ":" https: // support.atlassian.com/jira-software-cloud/docs/enable-deployments/ "," description ":"
Мы создали новый интерфейс развертывания, чтобы помочь вам, вашей команде и вашей организации понять ценность, которую вы " ve отправлено и когда. Подключив инструменты CI / CD, вы можете использовать это новое представление, чтобы отслеживать, где в конвейере доставки находятся ваши функции, чтобы вы могли определить, когда они могут привлечь клиентов.
"," belowDescription ":" "," pageContent ":" "," textOnly ":" Узнайте, что и когда было отправлено с развертываниями в Jira: мы создали новый интерфейс развертывания, чтобы помочь вам, вашей команде и вашей организации понять ценность, которую вы отправили, и когда.Подключив инструменты CI / CD, вы можете использовать это новое представление, чтобы отслеживать, где в конвейере доставки находятся ваши функции, чтобы вы могли определить, когда они могут привлечь клиентов. "," textOnlyLower ":" понять, что и когда было отправлено с развертываниями в jira: мы создали новый опыт развертывания, чтобы помочь вам, вашей команде и вашей организации понять, какую ценность вы отправили и когда. подключив инструменты ci / cd, вы можете использовать это новое представление, чтобы отслеживать, где в конвейере доставки находятся ваши функции, чтобы вы могли определить, когда они могут привлечь клиентов."}}," labels ": {" goingSoon ":" В разработке "," shipped ":" Shipped "," search ":" Search "," noResults ":" Результаты не найдены "," allFeatures ":" Все функции "}," jumpToContent ": false," contentJumpDistance ":" 80 "," hideSearch ": false}}
Что нового в Microsoft Edge на сборке Microsoft Build 2021
Добро пожаловать в Microsoft Build! Где бы вы ни оказались, мы надеемся, что вы в безопасности и здоровы.
С момента последней сборки платформа Microsoft Edge продолжает предоставлять разработчикам новейшие инструменты, готовые к сегодняшнему развивающемуся веб-ландшафту.В приведенном ниже видео о состоянии платформы руководители программ Скотт Лоу и Зохер Гадяли подробно рассказывают, что нового и что улучшено в веб-платформе Microsoft Edge.
Итак, что нового для разработчиков со времени сборки прошлого года?
- WebView2 общедоступен и теперь включен в WinUI 3: За последний год WebView2 стал общедоступным и поддерживается во всех платформах приложений, таких как Win32 C / C ++, WPF / WinForms, а теперь и WinUI 3! WebView2 - это встроенный веб-элемент управления Microsoft, построенный на основе Microsoft Edge (Chromium).WebView2 отделен от операционной системы Windows и позволяет сочетать простоту и гибкость разработки для Интернета с возможностями создания собственного настольного приложения. Будь то веб-приложения, гибридные или собственные приложения, WebView2 рассматривает эти поддерживаемые платформы приложений как первоклассных граждан, поэтому вы можете привнести в свои приложения лучшее из Интернета.
- Morgan Stanley использует WebView2, чтобы обеспечить соответствие своих технологий требованиям завтрашнего дня. : С тех пор, как мы начали работать над WebView2, Morgan Stanley был нашим близким партнером в предоставлении обратной связи, помогая нам обеспечить соответствие WebView2 бизнес-потребностям.Приняв WebView2, Morgan Stanley предоставил своим сотрудникам возможность использовать собственные приложения в сочетании с новейшими технологиями веб-приложений. Использование WebView2 позволяет этой веб-технологии постоянно обновляться и обеспечивать безопасность, чего не удавалось их предыдущему решению с контейнерами Chromium.
- Среда выполнения WebView2 более широко доступна для поддержки приложений WebView2: Планируете ли вы разрабатывать приложения WebView2 в фиксированном или вечнозеленом состоянии, вам потребуется среда выполнения WebView2 для их поддержки.Для поддержки ваших приложений WebView2 мы делаем среду выполнения WebView2 доступной в большем количестве мест - например, через специальные установщики и будущие выпуски Windows, - чтобы она была готова к использованию вами и вашими пользователями.
А что улучшено?
- 5 300 принятых коммитов Chromium: Сделать Интернет лучше для всех необходимо для нашей миссии Microsoft Edge. С момента запуска в проект Chromium было принято более 5 300 коммитов, поэтому многие из улучшений, над которыми мы работали для Microsoft Edge, могут быть реализованы другими пользователями, использующими браузер на основе Chromium.
- Пробные версии Edge Origins продолжаются и расширяются: Объявленная в прошлом году и принятая сообществом разработчиков, наша программа испытаний Edge Origins продолжает предлагать разработчикам новые возможности для тестирования и предварительного просмотра - присоединитесь к сотням других разработчиков в пробной версии Origin, зарегистрировавшись через https://aka.ms/EdgeOriginTrials.
- PWA присоединяются к Microsoft Store: Progressive Web Apps («PWA»), построенные на платформе Microsoft Edge, теперь доступны в Microsoft Store, и ваши могут быть тоже! Расширьте возможности своего PWA за 3 простых шага:
- Создание резервирования приложения в Центре партнеров Windows
- Упакуйте PWA для Windows с www.pwabuilder.com
- Отправьте пакет в Microsoft Store на утверждение
Microsoft Edge выводит производительность на новый уровень
Вы заботитесь об инструментах разработчика, но мы также знаем, что вам нужны удобные возможности, когда люди используют ваш веб-сайт или приложение, и для этого важна производительность браузера. Со времени последней сборки мы добавили новые функции для повышения производительности браузера, и благодаря этому Microsoft Edge станет самым производительным браузером в Windows 10, когда Microsoft Edge версии 91 выпустит позже на этой неделе!
Итак, почему мы можем так говорить? Это просто: вкладки «Ускорение при запуске» и «Режим сна».
Во-первых, при ускорении запуска Microsoft Edge запускается быстрее за счет запуска набора основных процессов Microsoft Edge в фоновом режиме без добавления дополнительных ресурсов, когда окна браузера Microsoft Edge открыты. Включение компьютера и выход в Интернет с Microsoft Edge стало намного быстрее.
Во-вторых, новая функция спящих вкладок дает Microsoft Edge повышение производительности при одновременном использовании нескольких вкладок браузера. Это помогает оптимизировать производительность вашего браузера Microsoft Edge, освобождая системные ресурсы из неиспользуемых вкладок.В этом месяце вкладки для сна дополнительно улучшены и позволяют сэкономить до 82% памяти на основе внутренних данных, собранных в наших предварительных сборках. Он делает это, немедленно переводя рекламу в спящий режим, когда вы переводите вкладки в фоновый режим для мгновенной экономии ресурсов. Спящие вкладки теперь имеют дополнительные улучшения для экономии системных ресурсов в Windows.
Будущее Internet Explorer в Microsoft Edge
Наконец, вы, возможно, слышали наше недавнее объявление о том, что будущее Internet Explorer в Windows 10 находится в Microsoft Edge и что настольное приложение Internet Explorer 11 («IE11») будет прекращено 15 июня 2022 года для определенных версий Windows 10.Мы знаем, что поддержка конкретных браузеров - это основная проблема для вас, поэтому эта новость означает, что вы сможете сосредоточить больше усилий на современных веб-интерфейсах. Но мы не оставили позади и ваших клиентов, и пользователей. В режиме Internet Explorer в Microsoft Edge потребители и организации смогут использовать сайты и приложения на базе IE наряду с современными в Microsoft Edge - это то, что мы называем преимуществом двойного ядра в Microsoft Edge.
С установленной датой вывода из эксплуатации мы рекомендуем вам разработать план прекращения поддержки IE11 для ваших веб-сайтов и приложений, а также организовать процесс перехода пользователей с Internet Explorer с течением времени и с легкими путями продвижения вперед.Когда вы будете готовы, мы поможем вам с этим. Когда конечные пользователи попадают на веб-сайт, который больше не поддерживает их браузер, это может быть неприятным и неприятным. Мы можем помочь с управляемым процессом перехода и возможностью одним щелчком мыши перенести важные пользовательские данные, такие как пароли и избранное. Дополнительные сведения см. В статье «Переход пользователей с Internet Explorer на Microsoft Edge». Переходы трудны, но их можно упростить.
Для получения дополнительной информации об этом объявлении прочтите наш блог и ознакомьтесь с нашими часто задаваемыми вопросами.
Enjoy Edge при сборке
Мы надеемся, что вам понравится сборка Microsoft Build в этом году и вы почувствуете прилив энергии от всех новых инноваций для разработчиков! Не пропустите следующие занятия, чтобы узнать больше о Microsoft Edge и WebView2:
И чтобы увидеть все ресурсы для разработчиков, связанные с Microsoft Edge, мы собрали все для вас здесь: https://aka.ms/build-2021-msedge.
Удачной сборки!
Что нового
Заседание государственного консультативного комитета NC Pre-K пройдет в четверг, 13 мая 2021 года, , WebEx , начало в 12:00 pm .
Присоединяйтесь к совещанию в качестве участника, щелкнув ссылку WebEx или набрав номер аудиоконференции WebEx, указанный ниже:
Ссылка WebEx: https://ncgov.webex.com/ncgov/onstage/g.php?MTID=ecd4bffc32a347a87630a573462b5f52e
Номер аудиоконференции WebEx: +1 (415) 655-0003 Код доступа: 161 209 9496
Комиссия по уходу за детьми Северной Каролины проведет специальное заседание в понедельник, 10 мая 2021 г., в рамках WebEx, начало в 9:00 a.м. Комиссия проголосует за публикацию правил 10A NCAC 09 .3101 -3104 и своей финансовой заметки для запланированных публичных слушаний, которые состоятся 28 июня 2021 года. Комиссия также продолжит обсуждение Плана CCDF от 26 апреля -го. встреча. Время для общественного обсуждения во время этого собрания не назначено, однако общие комментарии можно направить в Комиссию по электронной почте [email protected] или по почте США на имя Дедры Алстон, Отдел развития детей и дошкольного образования. , Административная секция, 2201 Центр почтовых услуг, Роли, NC 27699-2200.
Общественность приглашается присоединиться к собранию в качестве участника, щелкнув ссылку ниже:
https://ncgov.webex.com/ncgov/onstage/g.php?MTID=eba62b681f869abf6805522fccebc865b
Объявление:
DCDEE рада объявить о новом Уведомлении о наличии финансирования для гранта на дошкольное развитие Birth-Five Грант на продление дошкольного развития B-5 (PDG B-5) Коучинг продления гранта на пути к мастерству Крайний срок подачи заявок на подачу заявок продлен.
С 1 сентября 2021 г. по 31 декабря 2022 г. для этого проекта доступно до 1 014 052 долл. США.
Заявки принимаются до 17:00 4 июня 2021 г. .
Представителям общественности предлагается прокомментировать план Фонда ухода за детьми и развития (CCDF) Северной Каролины на 2022–2024 годы. В Плане описывается, как программа будет управляться Отделом развития детей и дошкольного образования Северной Каролины (DCDEE) в период с 1 октября 2021 года по 30 сентября 2024 года.Фонд CCDF является основным источником федеральных средств для DCDEE и системы раннего детства в этом штате. Эти средства используются для оказания помощи семьям в уходе за детьми и для финансирования инициатив по улучшению и поддержке качества ухода за детьми в Северной Каролине.
В Северной Каролине CCDF поддерживает:
- Субсидированные услуги по уходу за детьми для более чем 120 000 детей ежегодно
- Ресурсы по уходу за детьми и справочные службы для семей
- Повышение уровня образования и оплаты труда учителей по уходу за детьми
- Техническая помощь и обучение воспитателей
- Мониторинг программ ухода за детьми
- Система звездных лицензий Северной Каролины для детских учреждений
Прогнозируемая сумма финансирования, доступного через CCDF на федеральный финансовый год, составляет более 350 миллионов долларов.
- По проекту Плана CCDF будут проведены два виртуальных общественных слушания:
- Понедельник, 17 мая с 12:00 до 13:00. по следующей ссылке ZoomGov:
https://www.zoomgov.com/j/1617236343?pwd=d3IzN05XaURpU3B3S1pYREc4TVN1QT09
Номер встречи: 161 723 6343
Код доступа: 596370
Мобильный в одно касание
(646) 828-7666, код доступа 1617236343 #
- Вторник, 18 мая с 6:30 - 7:30 п.м. по следующей ссылке:
https://www.zoomgov.com/j/1600526523?pwd=V25VNkM1YWFjOFlaV0cyUlMzQVJrZz09
Номер встречи: 160 052 6523
Код доступа: 853880
Мобильный в одно касание
(646) 828-7666, код доступа 1600526523 #
DCDEE приветствует участие и комментирует проект плана CCDF. Для тех, кто не может присутствовать на собрании, письменные комментарии могут быть отправлены до даты слушания по адресу [email protected] или по почте США по адресу:
Загрузить следующие 5 артикулов (осталось 106) Загрузка...
Что нового | MyFonts
за последние 7 днейпоследние 14 днейпоследний 21 деньпоследние 28 дней2021-май2021-апрель2021-март3021-февраль2021-январь2020-декабрь2020-ноябрь2020-октябрь2020-сентябрь2020-август2020-июль2020-июнь2020-май2020-апрель2020-март3020-февраль2020- Январь2019-декабрь2019-ноябрь2019-октябрь2019-сентябрь2019-август2019-июль2019-июнь2019-май2019-апрель2019-март3019-февраль2019-январь2018-декабрь 2018-ноябрь 2018-октябрь 2018-сентябрь 2018-август 2018-июль 2018-июнь 2018-май 2018-апрель 2018-март 3018-февраль 2018-февраль 2018 Декабрь 2017 г. ноябрь 2017 г. октябрь 2017 г. сентябрь 2017 г. август 2017 г. июль 2017 г. июнь 2017 г. май 2017 г. апрель 2017 г. март 30 17 г. февраль 2017 г. январь 2016 г. декабрь 2016 г. ноябрь 2016 г. октябрь 2016 г. сентябрь 2016 г. август 2016 г. июль 2016 г. июнь 2016 г. май 2016 г. апрель 2016 г. март 30 2016 г. февраль 2016 г. январь 2015 г. Ноябрь 2015 г. октябрь 2015 г. сентябрь 2015 г. август 2015 г. июль 2015 г. июнь 2015 г. май 2015 г. апрель 2015 г. март 30 г. 2015 г. февраль 2015 г. январь 2014 г. декабрь 2014 г. ноябрь 2014 г. октябрь 2014 г. сентябрь 2014 г. -Август 2014-июль 2014-июнь 2014-май 2014-апрель 2014-март 3014-февраль 2014-январь 2013-декабрь 2013-ноябрь 2013-октябрь 2013-сентябрь 2013-август 2013-июль 2013-июнь 2013-май 2013-апрель 2013-март 3013-февраль 2013-январь 2012-декабрь 2012-ноябрь 2012-октябрь 2012-сентябрь 2012-август -Июль 2012-июнь 2012-май 2012-апрель 2012-март 3012-февраль 2012-январь 2011-декабрь 2011-ноябрь 2011-октябрь 2011-сентябрь 2011-август 2011-июль 2011-июнь 2011-май 2011-апрель 2011-март 3011-февраль 2011-январь 2010-декабрь 2010-ноябрь 2010-октябрь 2010-сентябрь 2010-август 2010-июль 2010 -Июнь 2010-май 2010-апрель 2010-март 3010-февраль 2010-январь 2009-декабрь 2009-ноябрь 2009-октябрь 2009-сентябрь 2009-август 2009-июль 2009-июнь 2009-май 2009-апрель 2009-март 3009-февраль 2009-январь 2008-декабрь 2008-ноябрь 2008-октябрь 2008-сентябрь 2008-август 2008-июль 2008-июль 2008 -Май 2008-апрель 2008-март 3008-февраль 2008-январь 2007-декабрь 2007-ноябрь 2007-октябрь 2007-сентябрь 2007-август 2007-июль 2007-июнь 2007-май 2007-апрель 2007-март 3007-февр uary2007-январь 2006-декабрь 2006-ноябрь 2006-октябрь 2006-сентябрь 2006-август 2006-июль 2006-июнь 2006-май 2006-апрель 2006-март 3006-февраль 2006-январь 2005-декабрь 2005-ноябрь 2005-октябрь 2005-сентябрь 2005-август 2005-июль 2005-июнь 2005-май 2005-апрель 2005-март-300 Январь 2004 г., декабрь 2004 г., ноябрь 2004 г., октябрь 2004 г., сентябрь 2004 г., август 2004 г., июль 2004 г., июнь 2004 г., май 2004 г., апрель 2004 г., март, 2004 г., февраль, 2004 г., январь 2003 г., декабрь 2003 г., ноябрь 2003 г., октябрь 2003 г., сентябрь 2003 г., август 2003 г., июль 2003 г., июнь 2003 г., май 2003 г., апрель 2003 г., март, 2003 г. Декабрь 2002 г., ноябрь 2002 г., октябрь 2002 г., сентябрь 2002 г., август 2002 г., июль 2002 г., июнь 2002 г., май 2002 г., апрель 2002 г., март 300 г., февраль, 2002 г., январь 2001 г., декабрь 2001 г., ноябрь 2001 г., октябрь 2001 г., сентябрь 2001 г., август 2001 г., июль 2001 г., июнь 2001 г., май 2001 г., апрель 2001 г., март 3001, февраль 2001 г., январь 2000 г. Ноябрь 2000 г., октябрь 2000 г., сентябрь 2000 г., август 2000 г., июль 2000 г., июнь 2000 г., май 2000 г., апрель 2000 г., 9000 г., март
г. Что нового в Unity 2021.1.9
2D: [URP] Камера отображает черный экран, когда постобработка включена в модуле 2D-рендеринга и в компоненте камеры.
(1318500)
AI: сбой с ComputeTileMeshJob при создании Navmesh
(1329346)
Анимация: [Регрессия производительности] AnimationWindowState: get_allCurves требуется приблизительно 5000 мс для загрузки анимации в окно анимации
(1320250)
Конвейер импорта активов: сбой редактора при выполнении действия «Отменить» после добавления компонента «Источник звука» в префаб
(1335691)
Аудио: открытые параметры AudioMixer при скрытии вызывают утверждения и препятствуют работе раскрывающегося списка
(1336173)
Global Illumination: датчики отражения не содержат непрямого освещения сцены после запекания GI по требованию из окна освещения
(1324246)
Global Illumination: При использовании кнопки «Generate Lighting» датчики отражения необходимо дважды пересчитать для обновления.
(1334283)
Global Illumination: [GPUPLM] Сбой в RadeonRaysMeshManager :: RemoveGeometry при запекании игрового объекта Terrain с 4k световыми картами на определенном графическом процессоре
(1255993)
HD RP: сбой редактора на GfxDeviceD3D12Base :: DrawBuffersCommon при переключении между сценами
(1329083)
IL2CPP: сбой сборки при использовании в проекте комбинации сообщений, SyncVars и SyncList
(1328966)
IMGUI: содержимое окна ModalUtility невидимо, когда оно запускается из контекстного меню Unity
(1313636)
Linux: редактор Linux аварийно завершает работу в "_XFreeX11XCBStructure" при загрузке руководств.
(1323204)
Metal: Gfx существенно влияет на производительность в Game View.WaitForPresentOnGfxThread при подключении второго монитора
(1327408)
Mobile: [Android] приложение останавливается из-за того, что OnPixelCopyFinishedListener не поддерживается на устройствах с менее чем 24 SDK
(1331290)
Мобильный: [Android] значение Time.deltaTime становится постоянным 0,3 (3) после отправки в фоновый режим и возобновления работы приложения.
(1328545)
Mono: [macOS] Unity аварийно завершает работу при возникновении исключения после загрузки библиотеки DLL.
(1318755)
OpenGL: SRP Batcher не работает с API OpenGL при сборке проекта
(1331098)
Packman: пользователь не может легко настроить расположение локального кеша пакетов UPM и Asset Store
(1317232)
Профилирование: GarbageCollectAssets часто запускается, когда установлено более высокое количество кадров
(1332708)
Управление сценами: сбой на BuildPrefabInstanceCorrespondingObjectMap при переопределении вложенного префаба внутри AssetDatabase.Блок StartAssetEditing ()
(1324978)
Сценарии: сбой mono_class_init при входе в режим воспроизведения после перекомпиляции скриптов
(1262671)
Сценарии: увеличено время перезагрузки сборки сценария
(1323490)
Сериализация: сбой в SerializedProperty :: IsValid при переупорядочивании списка SerializedProperty
(1320319)
Рельеф: параметр «Прозрачность ландшафта как плотность» приводит к появлению артефактов в областях с альфа-каналом на 5-м или более высоком слое.
(1283124)
uGUI: Свойство мягкости RectMask2D не действует при использовании в TextMeshPro Text
(1331297)
2D: исправленная документация руководства по 2D-анимации.
2D: Исправлено описание пакета 2D-анимации.
2D: Исправлено описание пакета 2D PSDImporter.
2D: Исправлен сбой при отключении Sprite Skin, когда включен многопоточный рендеринг.
(1296355)
2D: Исправлено окно редактора спрайтов, которое не обновлялось при изменении выделения, когда оно не в фокусе.
(1327065)
2D: Исправленное окно редактора спрайтов отображается пустым при перезапуске Unity в определенных случаях.(1330622)
2D: Исправлено сбрасывание окна редактора спрайтов после применения в определенных случаях.
(1322204)
2D: Исправлено зависание Unity при импорте определенных файлов PSD.
(1312835)
AI: Исправлен редкий сбой, который происходил, когда OffMeshLink на пути NavMeshAgent отключался из-за изменений в базовом NavMesh.
(1298211)
Android: исправлен сбой при запуске на устройствах Android 4.4.(1331290)
Android: исправлена ошибка, из-за которой слишком большой список настроек без сжатия нарушал процедуру сборки apk.
(1272592)
Аудио: Реализована отсутствующая функция сброса для аудиогрупп.
(1256250)
Конвейер сборки: исправлена ошибка, из-за которой создание сборки, включающей скрипт, с использованием сериализуемого вложенного типа, производного от типа, в который он вложен, могло привести к сборке во время выполнения.
(1310970)
Пакет: сбой из-за отладочной информации функций-членов на tvOS.
Burst: исправлено NullReferenceException
в компиляторе Burst при использовании многомерных массивов. Теперь компилятор выдает правильное сообщение об ошибке, сообщающее пользователям, что многомерные массивы не поддерживаются Burst.
Пакет: исправлено поведение маршалинга заданий времени выполнения DOTS для правильной обработки маршалинга универсальных типов заданий, когда не все закрытые формы универсального типа требуют маршалинга.
Редактор: Сжатие текстур ASTC теперь должно быть инвариантным для платформы и оборудования (т.е.е. дают точно такие же результаты между процессорами AMD и Intel, например, что не всегда было так раньше).
(1307140)
Редактор: исправлено исключение ArgumentOutOfRangeException в TreeView при быстром последовательном сворачивании строк.
(1315468)
Редактор: Исправлены элементы в меню правой кнопки мыши, которые ничего не делали в не переупорядочиваемых массивах в объекте с возможностью сценария с помощью настраиваемых редакторов.
(1307389)
Редактор: решена проблема, из-за которой поля больших эскизов объектов неправильно масштабировали свою текстуру.(1330963)
GI: Исправлено снижение производительности при запекании световых зондов с легким печеньем в сцене.
(1323393)
Графика: исправлена ситуация, которая могла приводить к сбою графического процессора, когда рендереру Skinned Mesh Renderer назначается сетка, которая не соответствует ожидаемым настройкам размера / шага, и это средство Skinned Mesh Renderer затем используется непосредственно перед тем, как появится возможность создания скинов произойдет.
Графика: исправлен артефакт фильтра ACES из-за ошибки половины числа с плавающей запятой на некоторых мобильных платформах.
Графика: Исправлена потоковая передача mip для статических пакетных сеток и использование CombineMesh API.
(1329555)
HDRP: исправлена ошибка, из-за которой пользовательский интерфейс окна отладки во время выполнения мог пропускать игровые объекты.
HDRP: исправлена ошибка, из-за которой иногда пристыкованный lookdev мог отображаться с нулевым размером и разрываться.
HDRP: исправлен артефакт, появляющийся, когда диффузная и зеркальная нормали слишком сильно различаются для шейдера глаза с пространственным освещением.
HDRP: Исправлено блочное налет при использовании динамического масштабирования разрешения.
HDRP: Исправлены расчеты координат плитки контактных теней.
HDRP: исправлена точность тумана в некоторых положениях камеры.
(1329603)
HDRP: исправлена проблема с распределением буфера истории для AOV, когда запрос не поступает в первом кадре.
HDRP: Исправлена проблема с ошибкой сборки RAS, когда в LOD отсутствовал модуль рендеринга.
HDRP: Исправлено представление отладки LightCluster для трассировки лучей.
HDRP: Исправлена ошибка, из-за которой свойства излучения материала не начинали анимироваться при записи анимации.(1328108)
HDRP: фиксированные NaN при шумоподавлении пикселей, где скалярное произведение между нормалью и направлением обзора близко к нулю.
(1329624)
HDRP: Исправлено исключение нулевой ссылки в компоненте объема SSS при трассировке лучей.
HDRP: Исправлен неправильный цвет пирамиды при включенном аппаратном динамическом разрешении.
HDRP: исправлены отражения с трассировкой лучей, которые были слишком темными для неосвещенных материалов. Отражения теперь больше соответствуют излучательной способности материала.
HDRP: фиксированное накопление SSR со смещением со смещением прямоугольника видового экрана на камере.
HDRP: Исправлена отмена некоторых свойств в редакторе освещения.
iOS: исправлен случайный сбой при завершении работы в UnityMetalMemorylessDepth.
(1333487)
macOS: исправлен знак кода жирных файлов ppc.
(1319067)
macOS: исправлена потеря ввода и случайные сбои при подключении и переподключении контроллеров.
(1315229)
macOS: обновлен шаблон проекта xcode для использования «современной» системы сборки.(1326316)
Диспетчер пакетов: исправлена ошибка, из-за которой при закрытии диалогового окна повторного импорта образца в любом случае выполнялось действие повторного импорта.
(1335115)
Диспетчер пакетов: исправлена ошибка, из-за которой при повторном импорте образца удалялись родительские папки.
(1334082)
Диспетчер пакетов: исправлена проблема в логике выбора порта диспетчера пакетов, которая иногда могла препятствовать подключению Unity к нему при запуске.
(1328669)
Частицы: Добавлена поддержка копирования / вставки целых модулей через контекстное меню заголовка модуля.(1314490)
Частицы: учитывайте весь объем частицы при использовании модуля триггера.
(1325421)
Частицы: поток вершин с фиксированной скоростью для частиц сетки.
(1328115)
Physics: Исправлен сбой при попытке доступа к Rigidbody в результате обратного вызова OnCollision, когда объект, с которым мы столкнулись, является ArticulationBody. В этом случае член Collision.rigidbody теперь равен нулю.
(1320314)
Physics: исправлена ошибка, из-за которой установка массива нулевых преобразований костей в SkinnedMeshRenderer через свойство 'bone' приводила к сбою, если компонент Cloth присутствовал в том же GameObject.(1328023)
Prefabs: доступ к Prefab Mode теперь доступен для немодельных неизменяемых Prefabs с помощью кнопок со стрелками в Hierarchy, а для моделей включена кнопка Open Inspector.
(1324356)
Просмотр сцены / игры: исправлено значение SceneView.rotation, некорректно влияющее на поворот камеры в 2D-режиме.
(1314928)
Сценарии: исправлен атрибут RuntimeInitializeOnLoadMethod для методов во вложенных классах.
(962800)
Сценарии: установка свойства тайм-аута для объекта HttpClient теперь корректно распространяет значение тайм-аута на любые объекты HttpWebRequest, созданные им для асинхронного обмена сообщениями.(1313205)
Сценарии: если установлена переменная среды UNITY_DIAG_ENABLE_DOMAIN_RELOAD_TIMINGS, записывать подробные тайминги для всего, что происходит в перезагрузках домена, в журналы редактора.
(1328820)
Shadergraph: исправлена ошибка, из-за которой при обновлении более старой версии ShaderGraph ключевые слова Enum не отображались.
(1332510)
Terrain: исправлен сбой, вызванный установкой TreeInstances для Terrain между временем, когда Terrains отбирается, и временем, когда Trees визуализируются.(1317966)
UI: чтобы исправить отсечение с помощью VisualElements, которые используют подсказку GroupTransform, вложенное маскирование, которое не поддерживается в этой версии, заставляет конечный элемент GroupTransform вернуться к отсечению прямоугольника, но утверждение предполагало, что этого не могло произойти.
(1328734)
UI Toolkit: Исправлено отключенное состояние, которое не отображалось должным образом после применения иерархических изменений.
(1321042)
Универсальная платформа Windows: исправлена ошибка, из-за которой предложение слова не отображалось на экранной клавиатуре Windows при редактировании элемента управления InputField или TextMeshPro.(1332468)
Видео: задержка звука при приостановке VideoPlayer.
(1316817)
Видео: аудио десинхронизируется при воспроизведении через AudioSource.
(1304061)
Видео: звук воспроизводится во время VideoPlayer.Prepare.
(1316819)
Видео: неудачный импорт видео загружается в Unity Accelerator и извлекается из него.
(1292668)
Windows: закрепленные вкладки сохраняют фокус при перетаскивании из другого окна.
(1296690)
Windows: GetMouseButton (int) правильно отображается при нажатии в игровом представлении после щелчка по другому окну или вкладке во время работы проигрывателя.(1326568)
Windows: OnMouseDown правильно отображается при переходе из одного игрового окна в другое во время работы проигрывателя.
(1327556)
XR: проверьте значение maxMultiviewViewCount в VkPhysicalDeviceMultiviewProperties для лучшего обнаружения поддержки Vulkan Multiview.