Найти в Дзене
Глоссарий по параллелизму в Swift
Было бы неплохо иметь одно место, куда можно обратиться за всеми терминами, ключевыми словами и аннотациями, связанными с параллелизмом в Swift. Вот оно. Вам совсем необязательно понимать всё здесь, чтобы успешно использовать параллельность. Сообщите мне, если я что-то пропустил! И конечно же, я добавил несколько комментариев. Тип: Ключевое слово Использование: Определяет новый ссылочный тип, который защищает изменяемое состояние Введено: SE-0306 Актеры Актеры определяют единицу изоляции. Их легко создать, но для успешного использования требуется хорошее понимание и практика...
8 месяцев назад
Concurrency шаг за шагом: системы состояний
Знаете что? Придумать примерный материал сложно. Это может показаться глупым или несущественным, но это действительно важно! Естественно, хороший пример помогает понять суть дела. Он также делает написание более приятным. Но письмо все равно требует много работы. Именно поэтому я так разозлился, когда Джеймс Демпси прислал мне отличную идею. Он отметил, что оба первых сообщения использовали исключительно систему только для чтения. Это совершенно нереально! Реальные приложения записывают данные в локальное хранилище, удаленные службы и вообще погружаются в изменяемое состояние...
8 месяцев назад
Параллелизм шаг за шагом: чтение данных из хранилища
Не так давно я перечитывал вводную статью, которую написал ранее. Честно говоря, мне было трудно дочитать её до конца. Думаю, большая часть проблемы заключалась в том, что моё понимание того, что такое «введение» в контексте параллелизма, сильно изменилось. Когда я читал эту статью, я представлял себе новичка, который делает то же самое. Это было неловко! Я не собираюсь удалять этот пост, но чувствую себя не очень хорошо по этому поводу. Тем не менее, я всё ещё считаю, что крайне важно уделять больше внимания тому, чтобы люди начинали работать с параллельными вычислениями...
8 месяцев назад
Проблемные шаблоны асинхронного программирования на Swift
Недавно заданный вопрос Недавно кто-то спросил меня о лучших практиках при использовании асинхронного программирования на Swift. У меня смешанные чувства относительно понятия «лучшая практика». Я вернусь к этому чуть позже. Но в данном случае я сказал, что эта технология все еще очень молода, и мы все пока пытаемся разобраться в ней. Затем я добавил, что столкнулся с рядом техник, которые часто не работают должным образом. Это не значит, что они плохие! Просто я вижу их довольно часто, и они нередко приводят к проблемам...
8 месяцев назад
Как же работает @preconcurrency?
Я постоянно нахожу, что атрибут @preconcurrency сбивает с толку. Но я устал от этого. Давайте просто раз и навсегда разберемся, как пользоваться этой штукой. Помните, что принцип параллелизма в Swift основан на системе типов. Это означает, что определения чрезвычайно важны для функционирования системы. Атрибут @preconcurrency изменяет способ интерпретации определений компилятором. В целом, это ослабляет некоторые правила, которые в противном случае могли бы затруднить или даже сделать невозможным использование определения...
8 месяцев назад
Следующая глава в технологиях Swift Build
Swift продолжает набирать популярность как кроссплатформенный язык, поддерживающий самые разные сценарии использования, с поддержкой различных встраиваемых устройств, форм-факторов, охватывающих от носимых устройств до серверов, и широкого спектра операционных систем. По мере развития Swift целесообразно инвестировать в соответствующие кросс-платформенные инструменты сборки, которые обеспечивают мощный, последовательный и гибкий опыт во всей экосистеме. В качестве основополагающего шага в этой новой...
8 месяцев назад
Корейская ассоциация Бадук рассматривает инцидент на LG Cup Приветствую вас от Корейской ассоциации Бадук. Мы приносим наши самые искренние извинения болельщикам, которые возлагали большие надежды на финальный матч между двумя игроками мирового класса. Мы также выражаем глубокое сожаление в связи с нанесением ущерба репутации LG Cup, а также нашему спонсору LG и принимающей стороне Чосон Ильбо. Во время финала 29-го турнира LG Cup Chosun Ilbo Kiwang произошла беспрецедентная ситуация, когда победитель был определен из-за неустойки, полученной в результате нарушения правил обращения с камнями. LG Cup - это турнир, организованный Корейской ассоциацией Бадук и проводимый в соответствии с корейскими правилами Бадук. Эти правила были пересмотрены и введены в действие в ноябре 2024 года и были публично объявлены всем международным ассоциациям заранее. Правила учета камней, которые стали предметом обсуждения в данном случае, обусловлены различиями в методах подсчета камней в двух странах. В Корее, где собранные камни влияют на итоговый результат, такие правила необходимы. Однако в Китае, где захваченные камни учитываются по-другому, это правило может показаться непривычным. Более того, поскольку правило было пересмотрено всего три месяца назад, у китайских игроков, возможно, не было достаточно времени для адаптации. Корейская ассоциация Бадук искренне надеется, что этот инцидент не нанесет ущерба доверию, сложившемуся между Кореей и Китаем за эти годы, и что текущая проблема может быть решена быстро и мирным путем. Мы активно работаем над урегулированием ситуации, поддерживая тесные контакты с Китаем. В настоящее время международные турниры не имеют единого регламента и вместо этого проводятся по правилам принимающей страны. Мы признаем настоятельную необходимость установления единых правил для глобализации Бадука и стандартизации регламента международных турниров. Корейская ассоциация Бадук стремится сотрудничать с Китайской ассоциацией Киюань, Японской ассоциацией Го и другими организациями для обсуждения и установления единых правил, подходящих для международных турниров. Мы еще раз приносим свои извинения фанатам Baduk и всем, кого затронул этот инцидент. Мы приложим все усилия, чтобы подобное больше не повторилось. Спасибо». Фонд Корейская ассоциация Бадук www.cyberoro.com/...n=0
8 месяцев назад
Vapor 5 Использование экосистемы
По мере продвижения к Vapor 5 мы начинаем понимать, как будут выглядеть наши пакеты в современной экосистеме. Отчасти это связано с интеграцией на сервере множества пакетов, которые становятся неотъемлемой частью Swift. Ярким примером этого является JWTKit, в новой основной версии которого используются преимущества Swift 6, тестирование Swift, пакет тестов и последние улучшения в Swift Crypto. Важным релизом был JWTKit v5, в котором была удалена готовая копия BoringSSL, чтобы сократить время сборки для всех, кто ее создает, и который с самого начала создавался с учетом параллелизма Swift. MultipartKit - это следующий пакет, который получит такую же поддержку...
9 месяцев назад
Swift 6
Мы рады объявить о выходе Swift 6. Это новый крупный выпуск, который расширяет возможности Swift на большее количество платформ и доменов. Многие знают Swift как язык для разработки приложений, ведь в App Store уже миллион приложений. Но Swift подходит не только для приложений. Безопасность, скорость и доступность Swift делают его отличным выбором для многих других областей применения, включая библиотеки, интернет-сервисы, а также наиболее критичный к производительности и безопасности код. Swift...
1 год назад
Будущее Vapor
Спустя почти 4,5 года и около 400 релизов только основного проекта Vapor, Vapor 4 начинает показывать свой возраст. Пару лет назад мы обсуждали расплывчатый план для Vapor 5, что мы хотели бы добавить и как, по нашему мнению, будет выглядеть будущее экосистемы. За эти годы многое изменилось, и мы немного рисковали со сроками выхода Swift 6, которые не оправдались. Но такова жизнь! Изменения в экосистеме были существенными: появился async/await, добавилась поддержка Sendable с использованием большого количества блокировок...
1 год назад
Swift + VSCode + RaspberryPi 4 + Docker + Vapor
Продолжение поиска подходящего рабочего пространства для Swift. С момента описания прошлого рабочего пространства с NanoPi Neo 3 утекло достаточно времени, за которое одноплатник показал себя уверенно как машинка для конечного использования (запустил и забыл), но не как платформа для тестов и разработки (нехватка 1/2ГБ, слабый процессор дают о себе знать), VSCode в конце 2023 прекратил поддержку High Sierra, высвободилась малина 4 и появился macmini m2. Поэтому решил заняться перестройкой рабочего пространства, пока особо далеко не уходя от прошлой связки...
1 год назад
Начните работу с Embedded Swift на микроконтроллерах ARM и RISC-V
Мы рады представить Вам репозиторий примеров проектов, демонстрирующих, как можно использовать Embedded Swift для разработки программного обеспечения на различных микроконтроллерах. Swift - это масштабируемый язык, который отлично подходит для написания настольных и мобильных приложений, серверных бэкендов и системного программного обеспечения. И, как вы могли заметить, благодаря новому экспериментальному режиму компиляции вы можете использовать Swift для встраиваемых сред, таких как микроконтроллеры...
1 год назад