Media is too big
VIEW IN TELEGRAM
Proglib рассказывает базу в формате рилса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Отобрали для вас полезные и проверенные каналы для программистов — в них вы найдете все самое интересное, от технических новостей до практических гайдов.
IT Job Hub | Работа и вакансии в IT — избранные IT-вакансии
Библиотека программиста — новости из мира IT и технологий
Книги для программистов — самые годные книги по любым языкам и стекам
IT-мемы — мемы про жизу айтишника
Proglib Academy — обучение и курсы, чтобы стать топовым специалистом
Азбука айтишника — азы из мира разработки
Библиотека нейросетей — лайфхаки и промпты для разных задач, баттлы нейронок и новости из мира ИИ
Библиотека фронтендера — все о JS, React, Angular и не только
Библиотека мобильного разработчика — лайфхаки и новости из мира Swift и Kotlin
Библиотека хакера — уязвимости, атаки, бэкдоры и как от них защититься
Библиотека тестировщика — самое интересное о том, как крашить код
🦫 Go
Библиотека Go-разработчика
Библиотека задач по Go
Библиотека Go для собеса
Вакансии по Go
#️⃣ C#
Библиотека шарписта
Библиотека задач по C#
Библиотека собеса по C#
Вакансии по C#
🔧 DevOps
Библиотека devops’а
Библиотека задач по DevOps
Библиотека собеса по DevOps
Вакансии по DevOps & SRE
🐘 PHP
Библиотека пхпшника
Библиотека задач по PHP
Библиотека PHP для собеса
Вакансии по PHP, Symfony, Laravel
🐍 Python
Библиотека питониста
Библиотека Python для собеса
Библиотека задач по Python
Вакансии по питону, Django, Flask
☕️ Java
Библиотека джависта
Библиотека задач по Java
Библиотека Java для собеса
Вакансии по Java
📊 Data Science
Библиотека дата-сайентиста
Библиотека задач по Data Science
Библиотека Data Science для собеса
Вакансии по Data Science
🎮 C++
Библиотека C/C++ разработчика
Библиотека задач по C++
Библиотека C++ для собеса
Вакансии по C++
Подписывайтесь на интересные вам каналы и сохраняйте пост в закладки, чтобы не потерять 🔑
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1🔥1
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
🧩💊 Алгоритмическая самоуспокоенность: как мы разучились думать своей головой
Каждый день мы сталкиваемся с бесконечным потоком информации, которая не просто наполняет наш день, а управляет нашими мыслями. Социальные сети, алгоритмы и вечная гонка за вниманием приводят к тому, что мы забываем, как думать собственной головой.
Это не просто влияет на настроение, но и на способность анализировать информацию, принимать решения и, главное, не становиться частью системы манипуляций.
Если вы хотите вернуться к осознанному подходу в восприятии мира и научиться фильтровать контент, то эта тема точно для вас.
🔗 Подробнее в статье
🐸 Библиотека джависта
Каждый день мы сталкиваемся с бесконечным потоком информации, которая не просто наполняет наш день, а управляет нашими мыслями. Социальные сети, алгоритмы и вечная гонка за вниманием приводят к тому, что мы забываем, как думать собственной головой.
Это не просто влияет на настроение, но и на способность анализировать информацию, принимать решения и, главное, не становиться частью системы манипуляций.
Если вы хотите вернуться к осознанному подходу в восприятии мира и научиться фильтровать контент, то эта тема точно для вас.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
📝 Промпт для идеального документирования кода
Чтобы писать доку быстрее, используйте этот промпт для ChatGPT:
Бонус: добавьте «
⚡ Как вы обычно документируете свой код? Делитесь в комментариях!
Библиотека мобильного разработчика #буст
Чтобы писать доку быстрее, используйте этот промпт для ChatGPT:
Include:
1. General description of functionality
2. Description of parameters and return values
3. Usage examples
4. Potential errors and how to fix them
5. Information about algorithm complexity, if applicableCode:[insert your code here]
Бонус: добавьте «
Explain the logic in simple terms for a beginner developer
», чтобы логику вашего кода понял даже новичок.⚡ Как вы обычно документируете свой код? Делитесь в комментариях!
Библиотека мобильного разработчика #буст
🤝3🤔2
📲 ServerSocket для IPC в Android
Идея для статьи возникла из желания разобраться, как организовать общение между браузером и Android‑приложением для передачи данных. В поисках удобного решения автор обратил внимание на
Прежде чем перейти к практической реализации, автор разбирает основные сценарии использования
Библиотека мобильного разработчика #свежак
Идея для статьи возникла из желания разобраться, как организовать общение между браузером и Android‑приложением для передачи данных. В поисках удобного решения автор обратил внимание на
ServerSocket
— простой и гибкий способ локального взаимодействия без лишних сложностей.Прежде чем перейти к практической реализации, автор разбирает основные сценарии использования
ServerSocket
и межпроцессного взаимодействия в рамках одного процесса и приводит примеры рабочего кода.Библиотека мобильного разработчика #свежак
❤4
В нашем чате работает бот Shieldy — он защищает от спама, запрашивая у новых участников решение простой капчи.
⚠️ Проблема, с которой сталкиваются многие: вы нажимаете под постом «Прокомментировать», пишете что-то, а потом получаете бан и не можете писать комментарии.
❓Почему так: Shieldy отправляет капчу в сам чат, а не в комментарии под конкретный пост. Из-за этого капчу можно не увидеть, не отправить ответ на нее, и бот автоматически заблокирует вас.
— Зайдите в описание канала с телефона и нажмите кнопку Discuss / Чат
— Нажмите Join / Присоединиться
— Сразу обратите внимание на сообщение от бота Shieldy
— Решите простой пример и отправьте ответ в чат
После этого бот отправит приветственное сообщение и вы сможете оставлять комментарии. Эту проверку нужно пройти только один раз при вступлении в чат.
❗️ Если вас все-таки забанили
— Это временная блокировка на несколько минут
— Подождите и попробуйте зайти позже, бот снова отправит вам капчу
Админы канала никак не могут ускорить процесс, бот автоматически снимает с вас блокировку через пару минут. Мы понимаем, что эта система неидеальна, и ищем более удобное решение.
👾 Спасибо, что активно участвуете в обсуждении наших постов!
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
🐛 Расскажите про ваш первый баг
Помните тот момент, когда вы впервые обнаружили баг в своём коде? Тот самый момент истины, когда монитор превратился в поле битвы между вами и компилятором, а Stack Overflow стал вашим лучшим другом?
Делитесь в комментариях своими историями о первом баге:
— Что это был за проект?
— Как долго вы искали решение?
— Какие эмоции испытали, когда нашли причину?
— Какой урок вынесли?
Библиотека мобильного разработчика #междусобойчик
Помните тот момент, когда вы впервые обнаружили баг в своём коде? Тот самый момент истины, когда монитор превратился в поле битвы между вами и компилятором, а Stack Overflow стал вашим лучшим другом?
Делитесь в комментариях своими историями о первом баге:
— Что это был за проект?
— Как долго вы искали решение?
— Какие эмоции испытали, когда нашли причину?
— Какой урок вынесли?
Библиотека мобильного разработчика #междусобойчик
❤1
👨💻 Выжимаем максимум из код-ревью
Большинство разработчиков не любит проводить код-ревью. Все понимают, что это важно и нужно, могут с ходу назвать три-четыре причины необходимости этого процесса. Но раз за разом они всячески избегают его. Или участвуют в нём неэффективно.
Поэтому разрушим шаблоны — не будем акцентировать внимание на важности и полезности код-ревью, а разберёмся в причинах сложившейся неприязни к этому процессу. И попробуем понять, как с этим жить.
👉 Читать статью
Библиотека мобильного разработчика #буст
Большинство разработчиков не любит проводить код-ревью. Все понимают, что это важно и нужно, могут с ходу назвать три-четыре причины необходимости этого процесса. Но раз за разом они всячески избегают его. Или участвуют в нём неэффективно.
Поэтому разрушим шаблоны — не будем акцентировать внимание на важности и полезности код-ревью, а разберёмся в причинах сложившейся неприязни к этому процессу. И попробуем понять, как с этим жить.
👉 Читать статью
Библиотека мобильного разработчика #буст
😁5❤1
📊 Собес по Data Science: 10 вопросов, которые разделяют джунов от мидлов
Залетай на тест, который валит даже мидлов! Собрали для тебя 10 каверзных вопросов, которые тимлиды обожают подкидывать на собесах. Здесь нет простых задачек — только те, на которых спотыкаются 80% кандидатов. Пройди этот челлендж, чтобы быть во всеоружии на следующем интервью.
✅ Пройти тест
Библиотека мобильного разработчика #свежак
Залетай на тест, который валит даже мидлов! Собрали для тебя 10 каверзных вопросов, которые тимлиды обожают подкидывать на собесах. Здесь нет простых задачек — только те, на которых спотыкаются 80% кандидатов. Пройди этот челлендж, чтобы быть во всеоружии на следующем интервью.
✅ Пройти тест
Библиотека мобильного разработчика #свежак
❤3
🧩 Айтишный кроссворд
Держите кроссворд — зашифровали 6 понятий, часто используемых среди разработчиков.
1. Полезная фишечка.
2. Файлы и библиотеки, которые нужно использовать вместе, чтобы ускорить процесс загрузки страниц.
3. Перенос кода из разработки на рабочий сервер.
4. Готовый набор инструментов для разработки.
5. Полезная встреча айтишников.
6. Айтишник над айтишниками.
Попробуйте угадать!
Пишите ответы в комментариях 👇
Библиотека мобильного разработчика #междусобойчик
Держите кроссворд — зашифровали 6 понятий, часто используемых среди разработчиков.
1. Полезная фишечка.
2. Файлы и библиотеки, которые нужно использовать вместе, чтобы ускорить процесс загрузки страниц.
3. Перенос кода из разработки на рабочий сервер.
4. Готовый набор инструментов для разработки.
5. Полезная встреча айтишников.
6. Айтишник над айтишниками.
Попробуйте угадать!
Пишите ответы в комментариях 👇
Библиотека мобильного разработчика #междусобойчик
🥱5👏2
📱 Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.
🔹 Соединяем две точки с помощью отрезков прямых линий и закругленных углов в SwiftUI
🔹 Разработка под Apple Vision Pro
🔹 Ликбез по разрешениям в Android
🔹 Создаём многомодульную библиотеку на Android: как же собрать fat-aar?
🔹 Полезные библиотеки для React-приложений в 2025 году: на что обратить внимание
Библиотека мобильного разработчика #свежак
🔹 Соединяем две точки с помощью отрезков прямых линий и закругленных углов в SwiftUI
🔹 Разработка под Apple Vision Pro
🔹 Ликбез по разрешениям в Android
🔹 Создаём многомодульную библиотеку на Android: как же собрать fat-aar?
🔹 Полезные библиотеки для React-приложений в 2025 году: на что обратить внимание
Библиотека мобильного разработчика #свежак
❤2
👾 Это база: companion object (также Singleton)
Объекты можно объявлять внутри класса, при этом нет каких-либо ограничений по их количеству. Но только один объект можно пометить ключевым словом
Синглтон-свойство
Важно отметить, что
Такому объекту можно не указывать свое имя, и обращаться к методам и свойствам объекта через имя содержащего его класса без явного указания имени объекта.
Компилируется в
Библиотека мобильного разработчика #буст
Объекты можно объявлять внутри класса, при этом нет каких-либо ограничений по их количеству. Но только один объект можно пометить ключевым словом
companion object
в рамках одного класса.Синглтон-свойство
companion object
достигается за счет того, что он создается внутри класса в качестве статического поля. Он будет инициализирован при первом обращении к нему или при создании первого экземпляра класса, в котором он объявлен.Важно отметить, что
companion object
будет инициализирован первым, а затем уже будет создан экземпляр класса:class MyClass {
init {
// Выполняется всегда после инициализации companion object
}
companion object {
init {
// Выполняется всегда перед блоком init содержащего класса
}}}
val myClass = MyClass()
Такому объекту можно не указывать свое имя, и обращаться к методам и свойствам объекта через имя содержащего его класса без явного указания имени объекта.
class SomeClass {
companion object {
fun create()
}
}
val someClass = SomeClass.create()
Компилируется в
public static final class
на Java. Работает подобно ключевому слову static
в Java.Библиотека мобильного разработчика #буст
❤7
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
☸️ CKAD 2025. Самый свежий гайд по сдаче сертификации Certified Kubernetes Application Developer
CKAD стал более строгим к деталям — без системной подготовки можно завалить даже на банальных заданиях. Если хочется разобраться, что важно для получения сертификации — эта статья сэкономит часы.
➡️ Читать статью
🐸 Библиотека devops'a
CKAD стал более строгим к деталям — без системной подготовки можно завалить даже на банальных заданиях. Если хочется разобраться, что важно для получения сертификации — эта статья сэкономит часы.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
📱 Размещение UI-компонентов в пределах отступов Safe Area
Безопасная область (safe area) — это часть экрана, которую не загораживают элементы системного UI, такие как строка состояния, панель навигации, динамический остров и пр.
По умолчанию SwiftUI гарантирует, что представления будут размещены в этой безопасной области, чтобы сохранить видимость и доступность. Однако бывают случаи, когда разработчикам требуется больше контроля над тем, как представления взаимодействуют с этими границами.
👉 Читать статью
Библиотека мобильного разработчика #свежак
Безопасная область (safe area) — это часть экрана, которую не загораживают элементы системного UI, такие как строка состояния, панель навигации, динамический остров и пр.
По умолчанию SwiftUI гарантирует, что представления будут размещены в этой безопасной области, чтобы сохранить видимость и доступность. Однако бывают случаи, когда разработчикам требуется больше контроля над тем, как представления взаимодействуют с этими границами.
👉 Читать статью
Библиотека мобильного разработчика #свежак
❤5🌚1
👨💻 How to: оптимизировать производительность iOS-приложения
Вот 10 практических хаков для повышения производительности iOS-приложения, проверенных на производственных проектах.
1️⃣ Безжалостно профилируйте с помощью инструментов.
Инструменты: в Xcode есть Time Profiler, Allocations и Energy Log (Xcode -> Open Developer Tool -> Instruments).
Что делать: выявляйте узкие места, анализируя использование процессора, памяти и энергии. Например, используйте Time Profiler, чтобы выявить неэффективные циклы или чрезмерную нагрузку на DispatchQueue.
Профессиональный совет: отсортируйте трейсы по «тяжелому весу», чтобы найти самые затратные функции.
Почему это важно: 80% проблем с производительностью связаны с 20% вашего кода.
2️⃣ Оптимизируйте Auto Layout с помощью
Проблема: сложные иерархии ограничений приводят к тому, что проходы компоновки резко увеличивают нагрузку на процессор.
Решение: активируйте/деактивируйте ограничения массово, а не добавляйте/удаляйте их по отдельности:
Бонус: используйте UIStackView для более простых макетов и меньшего количества ограничений.
3️⃣ Сокращайте динамическую диспетчеризацию с помощью
Хак Swift: помечайте классы как
Зачем: динамическая диспетчеризация (например, переопределение методов) увеличивает накладные расходы во время выполнения.
4️⃣ Кешируйте дорогостоящие операции.
Пример: хранение декодированных изображений, ответов сети или вычисленных значений:
Пример использования: избегайте повторения тяжелых задач, таких как декодирование изображений или разбор JSON.
5️⃣ Используйте
Когда: рендеринг сложных теней, трансформаций или анимаций.
Как: растеризуйте статичные слои в bitmap изображение один раз:
6️⃣ Выгружайте работы в фоновые потоки.
Золотое правило: держите основной поток свободным для обновления пользовательского интерфейса.
Избегайте: блокирования основного потока синхронными вызовами или тяжелыми вычислениями.
7️⃣ Используйте
Проблема: неправильная ширина меток заставляет выполнять лишние проходы по макету.
Исправление: установите preferredMaxLayoutWidth, чтобы избежать двусмысленных ограничений:
Результат: более быстрая прокрутка
8️⃣ Выбирайте
Почему:
9️⃣ Минимизировать
Издержки: кастомное рисование требует больших затрат процессора.
Альтернатива: используйте предварительно отрисованные изображения или свойства слоя (например,
🔟 Лениво загружайте невидимое содержимое.
Стратегия: отложите загрузку внеэкранных представлений, данных или медиа.
Применяйте: для тяжелых объектов, баз данных или SDK сторонних разработчиков.
Библиотека мобильного разработчика #свежак
Вот 10 практических хаков для повышения производительности iOS-приложения, проверенных на производственных проектах.
1️⃣ Безжалостно профилируйте с помощью инструментов.
Инструменты: в Xcode есть Time Profiler, Allocations и Energy Log (Xcode -> Open Developer Tool -> Instruments).
Что делать: выявляйте узкие места, анализируя использование процессора, памяти и энергии. Например, используйте Time Profiler, чтобы выявить неэффективные циклы или чрезмерную нагрузку на DispatchQueue.
Профессиональный совет: отсортируйте трейсы по «тяжелому весу», чтобы найти самые затратные функции.
Почему это важно: 80% проблем с производительностью связаны с 20% вашего кода.
2️⃣ Оптимизируйте Auto Layout с помощью
isActive
.Проблема: сложные иерархии ограничений приводят к тому, что проходы компоновки резко увеличивают нагрузку на процессор.
Решение: активируйте/деактивируйте ограничения массово, а не добавляйте/удаляйте их по отдельности:
NSLayoutConstraint.activate([ view.topAnchor.constraint(equalTo: parent.topAnchor), view.leadingAnchor.constraint(equalTo: parent.leadingAnchor) ])
Бонус: используйте UIStackView для более простых макетов и меньшего количества ограничений.
3️⃣ Сокращайте динамическую диспетчеризацию с помощью
final
и private
.Хак Swift: помечайте классы как
final
, а методы как private
, чтобы обеспечить оптимизацию компилятора:final class NetworkManager { private func fetchData() { ... } // Static dispatch for faster execution }
Зачем: динамическая диспетчеризация (например, переопределение методов) увеличивает накладные расходы во время выполнения.
4️⃣ Кешируйте дорогостоящие операции.
Пример: хранение декодированных изображений, ответов сети или вычисленных значений:
let imageCache = NSCache() func loadImage(url: URL) -> UIImage? { if let cachedImage = imageCache.object(forKey: url.absoluteString as NSString) { return cachedImage } // Decode and cache... }
Пример использования: избегайте повторения тяжелых задач, таких как декодирование изображений или разбор JSON.
5️⃣ Используйте
CALayer.shouldRasterize
для сложных представлений.Когда: рендеринг сложных теней, трансформаций или анимаций.
Как: растеризуйте статичные слои в bitmap изображение один раз:
layer.shouldRasterize = true layer.rasterizationScale = UIScreen.main.scale
6️⃣ Выгружайте работы в фоновые потоки.
Золотое правило: держите основной поток свободным для обновления пользовательского интерфейса.
DispatchQueue.global(qos: .userInitiated).async { let processedData = parseLargeJSON() DispatchQueue.main.async { self.updateUI(with: processedData) } }
Избегайте: блокирования основного потока синхронными вызовами или тяжелыми вычислениями.
7️⃣ Используйте
UILabel.preferredMaxLayoutWidth
для ячеек.Проблема: неправильная ширина меток заставляет выполнять лишние проходы по макету.
Исправление: установите preferredMaxLayoutWidth, чтобы избежать двусмысленных ограничений:
label.preferredMaxLayoutWidth = UIScreen.main.bounds.width — 32
Результат: более быстрая прокрутка
UITableView/UICollectionView
.8️⃣ Выбирайте
UIImage(named:)
вместо UIImage(contentsOfFile:)
.Почему:
UIImage(named:)
автоматически кэширует изображения в памяти, а contentsOfFile:
— нет.Лучше всего подходит для
: часто используемых ресурсов (иконок, графики пользовательского интерфейса).9️⃣ Минимизировать
drawRect:
переопределения.Издержки: кастомное рисование требует больших затрат процессора.
Альтернатива: используйте предварительно отрисованные изображения или свойства слоя (например,
cornerRadius
, borderWidth
).🔟 Лениво загружайте невидимое содержимое.
Стратегия: отложите загрузку внеэкранных представлений, данных или медиа.
lazy var analyticsManager: AnalyticsManager = { return AnalyticsManager() // Initialize only when first accessed }()
Применяйте: для тяжелых объектов, баз данных или SDK сторонних разработчиков.
Библиотека мобильного разработчика #свежак
❤5🔥1
👨💻📈 Исследование IT-аудитории Proglib 2025: зарплаты, технологии, профессии
Кто такой современный разработчик в 2025 году? Актуальное исследование портрета IT-специалистов: зарплаты, технологии, специализации и демография разработчиков.
👉 Читать статью
Библиотека мобильного разработчика #свежак
Кто такой современный разработчик в 2025 году? Актуальное исследование портрета IT-специалистов: зарплаты, технологии, специализации и демография разработчиков.
👉 Читать статью
Библиотека мобильного разработчика #свежак
❤2
👨💻 Shader Ripple Effect Playground — библиотека шейдерных AGSL эффектов
Shader Ripple Effect Playground — библиотека шейдерных AGSL эффектов для Android. Есть эффект пульсации, реагирующий на касание, непрерывная волновая анимация с настраиваемыми параметрами, переход раскрытия содержимого с эффектом пульсации — все с настрйоками. Полная совместимость с любым элементом пользовательского интерфейса Jetpack Compose, простая интеграция с минимальным количеством кода.
⚙️ Shader Ripple Effect Playground на GitHub
Библиотека мобильного разработчика #буст
Shader Ripple Effect Playground — библиотека шейдерных AGSL эффектов для Android. Есть эффект пульсации, реагирующий на касание, непрерывная волновая анимация с настраиваемыми параметрами, переход раскрытия содержимого с эффектом пульсации — все с настрйоками. Полная совместимость с любым элементом пользовательского интерфейса Jetpack Compose, простая интеграция с минимальным количеством кода.
⚙️ Shader Ripple Effect Playground на GitHub
Библиотека мобильного разработчика #буст
👍4