📚Книга "Грокаем алгоритмы"
#книга
Продолжаем нашу подробку книг в библиотеку тру-программиста.
Если собираетесь устраиваться в Яндекс или Google, то книга обязательна к изучению - они любят алгоритмы. Если собираетесь стать высококвалифицированным разработчиком - книга также обязательна к изучению.
Лично для меня она была очень ценным источником знаний, так как заставила мозг шевелиться. С ней я наконец попробовал в действии несколько алгоритмов и структуру данных, произвел сравнение скорости их работы и многое-многое другое.
#книга
Продолжаем нашу подробку книг в библиотеку тру-программиста.
Если собираетесь устраиваться в Яндекс или Google, то книга обязательна к изучению - они любят алгоритмы. Если собираетесь стать высококвалифицированным разработчиком - книга также обязательна к изучению.
Лично для меня она была очень ценным источником знаний, так как заставила мозг шевелиться. С ней я наконец попробовал в действии несколько алгоритмов и структуру данных, произвел сравнение скорости их работы и многое-многое другое.
🔩Сервис для написания и проверки регулярных выражений
#инструменты
Каждому из нас рано или поздно приходит задача обработки текста, для решения которой наиболее удобным вариантом являются регулярные выражения.
Используя эти сервисы вы сможете значительно сократить время на составление правильно функционирующего выражения.
https://regex101.com
https://regexr.com
За ссылки спасибо @IsaevTimur и @linuxv0id
#инструменты
Каждому из нас рано или поздно приходит задача обработки текста, для решения которой наиболее удобным вариантом являются регулярные выражения.
Используя эти сервисы вы сможете значительно сократить время на составление правильно функционирующего выражения.
https://regex101.com
https://regexr.com
За ссылки спасибо @IsaevTimur и @linuxv0id
ПРЕДВАРИТЕЛЬНАЯ Версия Книги # 2 доступна для загрузки всем оформившим заказ на бумажную или элкетронную версии.
Обратите внимание, что в книга в формате PDF и доступны только первые 13 глав (из 20). Вскоре книга будет доверстана и вы получите полную версию в PDF и EPUB!
Скачать книгу в личном кабинете
https://swiftme.ru/my-account/downloads/
По вопросам заказ в Украину писать
@belik_ivan
Оглавление и оформление заказа по ссылке ниже
https://swiftme.ru/buybook2
Обратите внимание, что в книга в формате PDF и доступны только первые 13 глав (из 20). Вскоре книга будет доверстана и вы получите полную версию в PDF и EPUB!
Скачать книгу в личном кабинете
https://swiftme.ru/my-account/downloads/
По вопросам заказ в Украину писать
@belik_ivan
Оглавление и оформление заказа по ссылке ниже
https://swiftme.ru/buybook2
Довольно часто мне требуется получить код цвета в HEX-формате (например, FFFFFF для белого). Иногда для этой цели я использую встроенный в macOS Цифровой колориметр, но код он показывает в десятичном формате. Приходится открывать сайт (тот же ColorScheme), забивать полученные значения и копировать требуемый HEX.
И для меня стало открытием, оказывается, что Цифровой колориметр может показывать значение цвета и в шестнадцетиричной системе. Для этого (см. рисунок) просто выбирает пункт "Вид > Показывать значения > как шестнадцатиричные" и наслаждаетесь результатом.
Но вот вам еще несколько хороших аколорпикеров для macOS.
- ColorSlurp
- Sip
- ColorSnapper 2
Другие полезные программы и утилиты по хэштегу #инструменты
И для меня стало открытием, оказывается, что Цифровой колориметр может показывать значение цвета и в шестнадцетиричной системе. Для этого (см. рисунок) просто выбирает пункт "Вид > Показывать значения > как шестнадцатиричные" и наслаждаетесь результатом.
Но вот вам еще несколько хороших аколорпикеров для macOS.
- ColorSlurp
- Sip
- ColorSnapper 2
Другие полезные программы и утилиты по хэштегу #инструменты
Forwarded from iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT (Anna Banana)
🔥 Хекслет и Podlodka Crew представляют: публичное собеседование для middle iOS-разработчика!
Старт 27 мая (сегодня) в 19:00 по МСК
Действующие лица:
- Глеб Лукьянец, iOS-разработчик из команды мобильной инфраструктуры ВКонтакте: уверенно проведет наш собес
- Николай Клубович, уже почти 3 года в мобильной разработке: смело прособеседуется
- Евгений Елчев, Software engineer в Taiga, с огоньком проведет эту сессию
Напоминаем, что публичное собеседование - это учебный формат интервью, а не трудоустройство в прямом эфире. Его проведут по формату классических публичных собеседований от Podlodka Crew: эфир разделён на логические блоки, а в паузах ведущий с интервьюером разбирают, как отвечает кандидат.
Полезные ссылки:
- Про Podlodka Crew: https://podlodka.io/ioscrew
- Youtube-канал Podlodka: https://www.youtube.com/channel/UCOei1E1Vqq10S913OEqTWGw
- Комьюнити Хекслета: https://slack-ru.hexlet.io
- Публичные собеседования Хекслета: https://www.youtube.com/playlist?list=PLo6puixMwuSOa_0EH6X4OXzFAmyQGS3a3
Старт 27 мая (сегодня) в 19:00 по МСК
Действующие лица:
- Глеб Лукьянец, iOS-разработчик из команды мобильной инфраструктуры ВКонтакте: уверенно проведет наш собес
- Николай Клубович, уже почти 3 года в мобильной разработке: смело прособеседуется
- Евгений Елчев, Software engineer в Taiga, с огоньком проведет эту сессию
Напоминаем, что публичное собеседование - это учебный формат интервью, а не трудоустройство в прямом эфире. Его проведут по формату классических публичных собеседований от Podlodka Crew: эфир разделён на логические блоки, а в паузах ведущий с интервьюером разбирают, как отвечает кандидат.
Полезные ссылки:
- Про Podlodka Crew: https://podlodka.io/ioscrew
- Youtube-канал Podlodka: https://www.youtube.com/channel/UCOei1E1Vqq10S913OEqTWGw
- Комьюнити Хекслета: https://slack-ru.hexlet.io
- Публичные собеседования Хекслета: https://www.youtube.com/playlist?list=PLo6puixMwuSOa_0EH6X4OXzFAmyQGS3a3
YouTube
Публичные собеседования для начинающих программистов
Любой студент, изучающий программирование не ради забавы, а ради дальнейшего трудоустройства, должен пройти через собсеседования. Ведущие разработчики из кру...
Сервис с характеристиками экранов продуктовой линейки Apple.
https://screensizes.app
Все, от iPod 📱 до CarPlay 🚗. Зачем пользоваться официальной документацией, когда есть этот отлично оформленный и крайне удобный сервис?:) Поиск как по устройству, так и по диагонали и типу экрана.
Выглядит и ощущается, как нативное приложение.
Почти все то же самое, но в официальной документации https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/adaptivity-and-layout/
Другие полезные прибамбусины по тегу #инструменты
https://screensizes.app
Все, от iPod 📱 до CarPlay 🚗. Зачем пользоваться официальной документацией, когда есть этот отлично оформленный и крайне удобный сервис?:) Поиск как по устройству, так и по диагонали и типу экрана.
Выглядит и ощущается, как нативное приложение.
Почти все то же самое, но в официальной документации https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/adaptivity-and-layout/
Другие полезные прибамбусины по тегу #инструменты
📚Идеальный руководитель
Ицхак Калдерон Адизес
Любой программист, имеющий амбиции, будет стремиться к тому, чтобы стать тим-лидом. Но работать с людьми, это не просто уметь проводить декомпозицию задач и раздавать тикеты в Jira. Это занятие из категории психологии, где у каждого есть свои желания, потребности, возможности. И как бы вам не хотелось отделить личную жизнь команды от работы и посадить каждого работника в непробиваемый кокон, исключив все эмоциональные контакты, этого сделать не получится. Да и не нужно.
Книга о том, какие типы руководителей бывают, почему невозможно стать идеальным и как эффективно выполнять поставленные задачи. Звучит пессимистично, но в действительно очень книга помогает найти себя и благодаря этому улучшить свои положительные стороны.
Стремитесь становиться лучше!
Развивайтесь не только в профессиональном плане, но и в социальном!
Другие полезные книги для тру-девелопера по тегу #книга
Ицхак Калдерон Адизес
Любой программист, имеющий амбиции, будет стремиться к тому, чтобы стать тим-лидом. Но работать с людьми, это не просто уметь проводить декомпозицию задач и раздавать тикеты в Jira. Это занятие из категории психологии, где у каждого есть свои желания, потребности, возможности. И как бы вам не хотелось отделить личную жизнь команды от работы и посадить каждого работника в непробиваемый кокон, исключив все эмоциональные контакты, этого сделать не получится. Да и не нужно.
Книга о том, какие типы руководителей бывают, почему невозможно стать идеальным и как эффективно выполнять поставленные задачи. Звучит пессимистично, но в действительно очень книга помогает найти себя и благодаря этому улучшить свои положительные стороны.
Стремитесь становиться лучше!
Развивайтесь не только в профессиональном плане, но и в социальном!
Другие полезные книги для тру-девелопера по тегу #книга
🧹Чистим место на вашем mac
- Разрабатываете и постоянно кончается место?
- Не хватает пространства для обновления Xcode?
- У вас 128 ГБ места на ноуте?
- Просто напрягает серое "Другое" (см. скрин)?
Тогда этот пост для вас.
1️⃣ Нажмите кнопку "Управлять" в -> "Об этом Mac" -> "Хранилище" (см. рисунок). В этом окне отобразятся различные массивные файлы, а так же другие данные (по категориям), которые можно удалить. Особое внимание обратите на раздел "Разработчик", где вы сможете удалить кэши Xcode, архивы проектов, ненужные версии iOS (и других систем) для симуляторов. А это обычно - десятки гигабайт.
2️⃣ Удаляем "Мусор" от Xcode, а это архивы сборок проектов, Derived Data и многое другое, накопившеся в процессе разработки. Для этого прекрасно подходит утилита DevCleaner for Xcode. В ней же можно удалить и ненужные версии симуляторов.
Ну или делаем руками:
- открываем Xcode -> Window -> Organizer для удаления архивов сборок
- удаляем все в папке Library / Developer / Xcode / DerivedData
- удаляем старое в папке Library / Developer / Xcode / Archives
- удаляем старое в папке Library / Developer / Xcode / iOS DeviceSupport
3️⃣ Изучите состав папок, имеющих большой объем. Для этого можно использовать Файлоскоп в CleanMyMac или бесплатную OmniDiskSweeper.
Обычно вашего внимания достойны:
- Library / Application Support
- Library / Developer
- Library / Caches
- Library / Logs
- Downloads
Например Wargaming и Steam хранят свои игры именно в Application Support, а отображаются в том самом "Другое".
4️⃣ Запустите очистку мусора с помощью CleanMyMac или аналога.
Если знаете что-то еще, то пишите ответом на это сообщение.
Другие полезные инструменты ищите по хэштегу #инструменты
- Разрабатываете и постоянно кончается место?
- Не хватает пространства для обновления Xcode?
- У вас 128 ГБ места на ноуте?
- Просто напрягает серое "Другое" (см. скрин)?
Тогда этот пост для вас.
1️⃣ Нажмите кнопку "Управлять" в -> "Об этом Mac" -> "Хранилище" (см. рисунок). В этом окне отобразятся различные массивные файлы, а так же другие данные (по категориям), которые можно удалить. Особое внимание обратите на раздел "Разработчик", где вы сможете удалить кэши Xcode, архивы проектов, ненужные версии iOS (и других систем) для симуляторов. А это обычно - десятки гигабайт.
2️⃣ Удаляем "Мусор" от Xcode, а это архивы сборок проектов, Derived Data и многое другое, накопившеся в процессе разработки. Для этого прекрасно подходит утилита DevCleaner for Xcode. В ней же можно удалить и ненужные версии симуляторов.
Ну или делаем руками:
- открываем Xcode -> Window -> Organizer для удаления архивов сборок
- удаляем все в папке Library / Developer / Xcode / DerivedData
- удаляем старое в папке Library / Developer / Xcode / Archives
- удаляем старое в папке Library / Developer / Xcode / iOS DeviceSupport
3️⃣ Изучите состав папок, имеющих большой объем. Для этого можно использовать Файлоскоп в CleanMyMac или бесплатную OmniDiskSweeper.
Обычно вашего внимания достойны:
- Library / Application Support
- Library / Developer
- Library / Caches
- Library / Logs
- Downloads
Например Wargaming и Steam хранят свои игры именно в Application Support, а отображаются в том самом "Другое".
4️⃣ Запустите очистку мусора с помощью CleanMyMac или аналога.
Если знаете что-то еще, то пишите ответом на это сообщение.
Другие полезные инструменты ищите по хэштегу #инструменты
✈TestFlight. Как отключить запрос о соответствии экспортным требования
Каждый раз выкладывая приложения приходится заходить в AppStore Connect и нажимать "Нет" в этом окне (см. рис.), чтобы выложить приложение? А его очень просто отключить.
Для этого в Info.plist создайте ключ App Uses Non-Exempt Encryption со значением NO. После этого все сборки будут автоматически становиться доступными для пользователей.
За подсказку спасибо @Higderin
Другие советы по тегу #xcode
Каждый раз выкладывая приложения приходится заходить в AppStore Connect и нажимать "Нет" в этом окне (см. рис.), чтобы выложить приложение? А его очень просто отключить.
Для этого в Info.plist создайте ключ App Uses Non-Exempt Encryption со значением NO. После этого все сборки будут автоматически становиться доступными для пользователей.
За подсказку спасибо @Higderin
Другие советы по тегу #xcode
🔧LLDB - это низкоуровневый отладчик (debugger), входящий в состав базового элемента компилятора Swift - LLVM. Многие из нас создают программы не зная о том, что могут использовать его возможности при отладке, об этом мы сегодня и поговорим. LLDB имеет множество команд, которые можно использовать прямо в консоли Xcode.
Как только вы приостановили выполнение приложения (например по сработавшему брейкпоинту), в консоли появляется надпись (lldb), сообщаяющая, что вы можете вводить требуемые команды.
1️⃣Вывод значения параметра
Команды print и po, например
(lldb) po UIApplication.shared.delegate.someGlobalSet
При этом в консоли будет выведена полная структура объекта. Команды po и print имею немного отличающийся формат вывода.
po ...
print ...
2️⃣Изменение значение параметра прямо в ходе исполнения
Команды expression и e, например
(lldb) e parameterName = someValue
Эта команда позволит изменить значение параметра parameterName на someValue. При этом прямо в консоли присутсвует автодополнение, а также происходит проверка типов и изменяемости параметров.
Данная команда поддеживает различные флаги, позволяющие значительно расширить ее функциональность.
3️⃣Текущий состав фрейма стека текущего потока
Команда frame, например
(lldb) frame variable
Просто выводит простыню-структуру текущего фрейма (если не помните, что это, то читайте про стек, кучу и память).
Эти команды лишь для затравки вашего интереса. LLDB предоставлет стооолько всего интересно, что я настоятельно рекомендую вам продолжить знакомтсво с ним самостоятельно. Например с помощью этой статьи или этого видео.
Другие полезные штуки по хэштегам #xcode #инструменты #пишемхорошийкод
Как только вы приостановили выполнение приложения (например по сработавшему брейкпоинту), в консоли появляется надпись (lldb), сообщаяющая, что вы можете вводить требуемые команды.
1️⃣Вывод значения параметра
Команды print и po, например
(lldb) po UIApplication.shared.delegate.someGlobalSet
При этом в консоли будет выведена полная структура объекта. Команды po и print имею немного отличающийся формат вывода.
po ...
▿ 2 elements
- 0 : 5
- 1 : 6
print ...
(Set<Int>) $R7 = 2 values {
[0] = 5
[1] = 6
}
2️⃣Изменение значение параметра прямо в ходе исполнения
Команды expression и e, например
(lldb) e parameterName = someValue
Эта команда позволит изменить значение параметра parameterName на someValue. При этом прямо в консоли присутсвует автодополнение, а также происходит проверка типов и изменяемости параметров.
Данная команда поддеживает различные флаги, позволяющие значительно расширить ее функциональность.
3️⃣Текущий состав фрейма стека текущего потока
Команда frame, например
(lldb) frame variable
Просто выводит простыню-структуру текущего фрейма (если не помните, что это, то читайте про стек, кучу и память).
Эти команды лишь для затравки вашего интереса. LLDB предоставлет стооолько всего интересно, что я настоятельно рекомендую вам продолжить знакомтсво с ним самостоятельно. Например с помощью этой статьи или этого видео.
Другие полезные штуки по хэштегам #xcode #инструменты #пишемхорошийкод
Medium
Debugging Swift code with LLDB
It’s extremely important to make the debugging process as simple as possible. Let’s break down some of the LLDB tricks which I personally use…
🙋♂️Привет!
Сегодня я хотел бы узнать, какая аудитория у канала и чата. Просто выберите подходящие для вас варианты ответов (можно несколько).
Сегодня я хотел бы узнать, какая аудитория у канала и чата. Просто выберите подходящие для вас варианты ответов (можно несколько).
Anonymous Poll
61%
Я Начинающий. Ближайшая цель - стать Junior-разработчиком.
13%
Я Junior 👶
7%
Я уверенный Middle🧐
4%
Я своего рода Senior-помидор 🥸
6%
Учусь в универе/школе. Но в будущем обязательно стану разработчиком.
15%
В какой-то жизни момент я выбрал не ту профессию, чем сейчас и занимаюсь. Но скоро все изменится.
11%
Уже работаю iOS, macOS разработчиком.
2%
Подходящих вариантов нет 🤔 и вообще я в чате случайно.
4%
Лучше бы книгу по SwiftUI писал, а не опросы делал 🤬
Что такое универсальные приложения? У этого понятия, с точки зрения iOS-разработчика, есть два определения:
1) Приложения, которые могут работать не нескольких архитектурных решениях (различных устройствах, операционных системах и т.д.). Например, это единое для iOS, iPadOS и macOS приложение. Это круто, но об этом не сегодня.
2) Приложения, пользователем которого может стать человек вне зависимости от региональных и физических особенностей. И именно об этом я хотел бы сказать несколько слов.
Apple создала потрясающую инфраструктуру устройств, которую могут использовать люди по всему миру. И вам, чтобы поддерживать должный уровень удобства, не нужно ничего изобретать, требуется лишь использовать предоставленные Apple возможности.
При создании универсальных приложений вы решаете три вопроса:
Вопрос 1. Локализация - это поддержка приложением нескольких языков. Некоторые относят сюда и часовые пояса/календари, но нет, так как есть ...
Вопрос 2. Интернационализация - это поддержка региональных особенностей пользователя, например форматов чисел и валют, календаря, формата времени и т.д.
Решение двух этих вопросов позволит вам значительно расширить аудиторию приложения, а значит и потенциально повысит продажи.
Немного подробнее об этом можете прочитать в моем гите.
Вопрос 3 - Доступность (Accessibilities). На этом я бы хотел заострить ваше внимание. Крайне важно, чтобы вы создавали универсальные приложения, доступные людям с (не)ограниченными возможностями, например слепым. Более того, для этого достаточно лишь немного предварительно продумать структуру интерфейса и воспользоваться доступными из коробки средствами.
Более того, поддежка механизмов доступности позволит вам:
- исключить излишнюю перегруженность интерфейса (если вы не можете добраться до элемента с помощью встроенного в iOS механизма доступности, то вероятно структура интерфейса слишком перегружена);
- подготовить приложение к UI-тестам, так как для их реализации требуется использование механизмов Accessibilities.
И вот вам отличный выпуск подкаста Запуск завтра "Как незрячие люди пользуются технологиями и как сделать их доступнее" - о важности того, чтобы ваши приложения были доступными. Рассказывает незрячий пользователь о крутости Яндекс.Такси и ужасном состоянии Яндекс.Go.
Apple Подкасты
Яндекс Музыка
YouTube
1) Приложения, которые могут работать не нескольких архитектурных решениях (различных устройствах, операционных системах и т.д.). Например, это единое для iOS, iPadOS и macOS приложение. Это круто, но об этом не сегодня.
2) Приложения, пользователем которого может стать человек вне зависимости от региональных и физических особенностей. И именно об этом я хотел бы сказать несколько слов.
Apple создала потрясающую инфраструктуру устройств, которую могут использовать люди по всему миру. И вам, чтобы поддерживать должный уровень удобства, не нужно ничего изобретать, требуется лишь использовать предоставленные Apple возможности.
При создании универсальных приложений вы решаете три вопроса:
Вопрос 1. Локализация - это поддержка приложением нескольких языков. Некоторые относят сюда и часовые пояса/календари, но нет, так как есть ...
Вопрос 2. Интернационализация - это поддержка региональных особенностей пользователя, например форматов чисел и валют, календаря, формата времени и т.д.
Решение двух этих вопросов позволит вам значительно расширить аудиторию приложения, а значит и потенциально повысит продажи.
Немного подробнее об этом можете прочитать в моем гите.
Вопрос 3 - Доступность (Accessibilities). На этом я бы хотел заострить ваше внимание. Крайне важно, чтобы вы создавали универсальные приложения, доступные людям с (не)ограниченными возможностями, например слепым. Более того, для этого достаточно лишь немного предварительно продумать структуру интерфейса и воспользоваться доступными из коробки средствами.
Более того, поддежка механизмов доступности позволит вам:
- исключить излишнюю перегруженность интерфейса (если вы не можете добраться до элемента с помощью встроенного в iOS механизма доступности, то вероятно структура интерфейса слишком перегружена);
- подготовить приложение к UI-тестам, так как для их реализации требуется использование механизмов Accessibilities.
И вот вам отличный выпуск подкаста Запуск завтра "Как незрячие люди пользуются технологиями и как сделать их доступнее" - о важности того, чтобы ваши приложения были доступными. Рассказывает незрячий пользователь о крутости Яндекс.Такси и ужасном состоянии Яндекс.Go.
Apple Подкасты
Яндекс Музыка
YouTube
GitHub
Swift-Training-Manual/Localization.md at main · DobbyWanKenoby/Swift-Training-Manual
Справочник по возможностям Swift. Contribute to DobbyWanKenoby/Swift-Training-Manual development by creating an account on GitHub.
🗺 Roadmap - карта тем для начинающего разработчика.
Отличный проект прекрасной статьи от @artyom_ivanov. Пока еще версия 0.1 (как говорит автор), но надеюсь на скорый релиз 1.0 😀
В статье рассказывают про большинство доступных на рынке источников знаний, а так же приводится список тем, знание которых позволит вам приблизить тим-лидство 😃 Очень советую ознакомиться начинающим, а судя по последнему опросу, их тут большинство.
https://artyom.space/swift-roadmap/
#продуктивность
Отличный проект прекрасной статьи от @artyom_ivanov. Пока еще версия 0.1 (как говорит автор), но надеюсь на скорый релиз 1.0 😀
В статье рассказывают про большинство доступных на рынке источников знаний, а так же приводится список тем, знание которых позволит вам приблизить тим-лидство 😃 Очень советую ознакомиться начинающим, а судя по последнему опросу, их тут большинство.
https://artyom.space/swift-roadmap/
#продуктивность
Telegram
Dev Channel
🙋♂️Привет!
Сегодня я хотел бы узнать, какая аудитория у канала и чата. Просто выберите подходящие для вас варианты ответов (можно несколько).
Я Начинающий. Ближайшая цель - стать Junior-разработчиком. / Я Junior 👶 / Я уверенный Middle🧐 / Я своего рода Senior…
Сегодня я хотел бы узнать, какая аудитория у канала и чата. Просто выберите подходящие для вас варианты ответов (можно несколько).
Я Начинающий. Ближайшая цель - стать Junior-разработчиком. / Я Junior 👶 / Я уверенный Middle🧐 / Я своего рода Senior…
♥️ Практики, используемые в ядре Swift
Я люблю копать исходный код Swift. Конечно же, как нормальный программист, почти ничего там не понимаю, но от этого интерес только возрастает😂.
Самый сок в том, что периодически я встречаю там интересные реализации довольно обыденных задач, типовое решение которых так и не сформировалось у меня в голове. Например вам нужно вывести в виде строки все элементы массива, разделив их при этом запятыми. Но запятые должны находиться логически верно, не в конце списка, не в начале, а только между элементами.
Каждый раз я изобретаю велосипед и:
- то добавляю запятую перед каждым элементов, и в конце удаляю первый символ;
- то наоборот добавляю ее в конце, и потом удаляю последний символ;
- то контролирую номер элемента и добалвяю только там, где это требуется.
Задача тривиальная и никак не уровня "серьезного" разработчика. Но каждый раз я все делаю новым способом. Причем решение данного вопроса изменяется еще и в зависимости от языка, на котором я пишу код.
Сегодня в процессе изучения исходного кода типа
Запятая добавляется перед каждым элементом, начиная со второго.
P.S. И что самое интересное, в данном куске кода используется
❓А как вы решаете такой тривиальный вопрос в своем коде?
#пишемхорошийкод #swiftcore
Я люблю копать исходный код Swift. Конечно же, как нормальный программист, почти ничего там не понимаю, но от этого интерес только возрастает😂.
Самый сок в том, что периодически я встречаю там интересные реализации довольно обыденных задач, типовое решение которых так и не сформировалось у меня в голове. Например вам нужно вывести в виде строки все элементы массива, разделив их при этом запятыми. Но запятые должны находиться логически верно, не в конце списка, не в начале, а только между элементами.
Каждый раз я изобретаю велосипед и:
- то добавляю запятую перед каждым элементов, и в конце удаляю первый символ;
- то наоборот добавляю ее в конце, и потом удаляю последний символ;
- то контролирую номер элемента и добалвяю только там, где это требуется.
Задача тривиальная и никак не уровня "серьезного" разработчика. Но каждый раз я все делаю новым способом. Причем решение данного вопроса изменяется еще и в зависимости от языка, на котором я пишу код.
Сегодня в процессе изучения исходного кода типа
Array
и работы над разделом по массивам в моем справочнике по Swift на GitHub я наткнулся на довольно изящную реализацию данного вопроса, используемую при вызове свойства description
у коллекций:var result = ""
// ...
var first = true
for item in self {
if first {
first = false
} else {
result += ", "
}
debugPrint(item, terminator: "", to: &result)
}
// ...
Запятая добавляется перед каждым элементом, начиная со второго.
P.S. И что самое интересное, в данном куске кода используется
inout
- аргумент. Так что не такая уж это и плохая практика, видимо.❓А как вы решаете такой тривиальный вопрос в своем коде?
#пишемхорошийкод #swiftcore
🏟Площадки для прокачки навыков программирования
Прошел отпуск, вышел Xcode 13 и Swift 5.5, а значит пора возвращаться к каналу. Скоро мы погрузимся в изучение акторов, новой асинхронки и зароемся в исходный код языка на яблочном гитхабе. А сейчас о другом.
Одним из важнейших этапов в жизненном цикле Swift-разработчика является трудоустройство. Подготовка к собеседованию - особо ценный, сложный и несомненно интересный процесс, в ходе которого вы прокачаете свои навыки.
В скором времени я размещу отзыв и рекомендацию на книгу по данному вопросу, а сегодня хотел бы привести небольшой список игровых площадок с задачками для программистов, частью из которых пользовался сам. Интересные задания, рейтинги, обзор вариантов решений - все это поможет вам в игровой форме отточить изученный материала и подготовиться к собеседованию.
Советую посмотреть каждый из сервисов.
- CoderByte
- Exercism
- Codewars
- CodingGame
Существует и множество других площадок, но вам несомненно хватит и четырех приведенных в статье.
Знаете и используете другие? Советуйте в комментариях.
Удачного кодинга!👩💻👨🏻💻🧑🏾💻
Прошел отпуск, вышел Xcode 13 и Swift 5.5, а значит пора возвращаться к каналу. Скоро мы погрузимся в изучение акторов, новой асинхронки и зароемся в исходный код языка на яблочном гитхабе. А сейчас о другом.
Одним из важнейших этапов в жизненном цикле Swift-разработчика является трудоустройство. Подготовка к собеседованию - особо ценный, сложный и несомненно интересный процесс, в ходе которого вы прокачаете свои навыки.
В скором времени я размещу отзыв и рекомендацию на книгу по данному вопросу, а сегодня хотел бы привести небольшой список игровых площадок с задачками для программистов, частью из которых пользовался сам. Интересные задания, рейтинги, обзор вариантов решений - все это поможет вам в игровой форме отточить изученный материала и подготовиться к собеседованию.
Советую посмотреть каждый из сервисов.
- CoderByte
- Exercism
- Codewars
- CodingGame
Существует и множество других площадок, но вам несомненно хватит и четырех приведенных в статье.
Знаете и используете другие? Советуйте в комментариях.
Удачного кодинга!👩💻👨🏻💻🧑🏾💻
📕 Кое-что интересное, что сделает ваши приложения лучше.
Этот пост для тех, кто хочет научиться делать универсальные приложения, доступные широкому кругу пользователей, включая людей с ограниченными возможностями. О важности этой темы я уже писал ранее.
Несколько дней назад я набрел на книгу Михаила Рубанова «Про доступность iOS». В книге очень доступно описываются доступные в iOS механизмы доступности 🙃 (слишком много доступности не бывает!).
Строго рекомендую к ознакомлению и надеюсь рано или поздно увидеть ее в бумажном формате на своей книжной полке.
Михаил, к слову - ведущий iOS-разработчик DoDo Engineering (пишут весь софт для одноименных пиццерий), и у него есть чему поучиться. Он, как никто другой, знает, насколько важно создавать приложения, которым могут пользоваться все, вне зависимости от физического состояния и возможностей.
☕️ P.S. Я пообщался с Михаилом и он проявил интерес к тому, чтобы стать специальным гостем на одной из наших будущих встреч Coffee&Code в Москве. Ждем с нетерпением!
Ссылка на книгу Про доступность iOS
Другие книги можно найти по тегу #книга
Этот пост для тех, кто хочет научиться делать универсальные приложения, доступные широкому кругу пользователей, включая людей с ограниченными возможностями. О важности этой темы я уже писал ранее.
Несколько дней назад я набрел на книгу Михаила Рубанова «Про доступность iOS». В книге очень доступно описываются доступные в iOS механизмы доступности 🙃 (слишком много доступности не бывает!).
Строго рекомендую к ознакомлению и надеюсь рано или поздно увидеть ее в бумажном формате на своей книжной полке.
Михаил, к слову - ведущий iOS-разработчик DoDo Engineering (пишут весь софт для одноименных пиццерий), и у него есть чему поучиться. Он, как никто другой, знает, насколько важно создавать приложения, которым могут пользоваться все, вне зависимости от физического состояния и возможностей.
☕️ P.S. Я пообщался с Михаилом и он проявил интерес к тому, чтобы стать специальным гостем на одной из наших будущих встреч Coffee&Code в Москве. Ждем с нетерпением!
Ссылка на книгу Про доступность iOS
Другие книги можно найти по тегу #книга