🐘🔮 Иллюзия согласованности в PostgreSQL: как избежать неприятных сюрпризов
Несмотря на то, что PostgreSQL обеспечивает строгую согласованность данных благодаря использованию многоверсионного параллельного контроля (MVCC), порядок выполнения транзакций может быть неожиданным для клиента. Это может привести к ситуации, когда записи появляются в неправильном порядке. Рассказываем, как и почему это происходит, и что делать для минимизации подобных проблем.
Читать статью
Несмотря на то, что PostgreSQL обеспечивает строгую согласованность данных благодаря использованию многоверсионного параллельного контроля (MVCC), порядок выполнения транзакций может быть неожиданным для клиента. Это может привести к ситуации, когда записи появляются в неправильном порядке. Рассказываем, как и почему это происходит, и что делать для минимизации подобных проблем.
Читать статью
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Локальные переменные в лямбда-выражениях
Java позволяет использовать локальные переменные внутри лямбда-выражений, но с одним важным ограничением: переменные должны быть эффективно финальными (effectively final).
Это означает, что после их инициализации переменные не могут быть изменены.
Использование локальных переменных в лямбда-выражениях может быть очень полезным для передачи дополнительных данных в лямбда-выражения
Java позволяет использовать локальные переменные внутри лямбда-выражений, но с одним важным ограничением: переменные должны быть эффективно финальными (effectively final).
Это означает, что после их инициализации переменные не могут быть изменены.
Использование локальных переменных в лямбда-выражениях может быть очень полезным для передачи дополнительных данных в лямбда-выражения
#дайджест перед выходными
⬅️ Hibernate WITH RECURSIVE query — статья посвящена запросам WITH RECURSIVE в Hibernate, как они работают и как могут быть использованы для иерархических структур данных.
⬅️ How to Identify Dependencies in Your Codebase During Microservices Migration — туториал о миграции с монолита на микросервисы с использованием Digma для сбора информации о зависимостях внутри кодовой базы
⬅️ Генерация HTTP клиентов для Spring Boot приложения по OpenAPI спецификации — в руководстве объясняют, как генерировать код HTTP клиентов для Spring Boot, используя плагин openapi-generator для Gradle
⬅️ Scalatra — крошечный веб-фреймворк, похожий на Sinatra, для Scala
⬅️ Разработка Java-проекта с ChatGPT-4 — от идеи до реализации
⬅️ Hibernate WITH RECURSIVE query — статья посвящена запросам WITH RECURSIVE в Hibernate, как они работают и как могут быть использованы для иерархических структур данных.
⬅️ How to Identify Dependencies in Your Codebase During Microservices Migration — туториал о миграции с монолита на микросервисы с использованием Digma для сбора информации о зависимостях внутри кодовой базы
⬅️ Генерация HTTP клиентов для Spring Boot приложения по OpenAPI спецификации — в руководстве объясняют, как генерировать код HTTP клиентов для Spring Boot, используя плагин openapi-generator для Gradle
⬅️ Scalatra — крошечный веб-фреймворк, похожий на Sinatra, для Scala
⬅️ Разработка Java-проекта с ChatGPT-4 — от идеи до реализации
Forwarded from Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
🎮🚀 Saturated Outer Space: как инди-разработчики перезапускают игру и бросают вызов жанровым стереотипам
Разработчики S.O.S. рассказывают, как создавать и продвигать инди-игру с нулевым бюджетом и что делать, если не хватает ресурсов продолжать дальше.
👉 Статья
👉 Группа игры ВК
👉 Стим
Разработчики S.O.S. рассказывают, как создавать и продвигать инди-игру с нулевым бюджетом и что делать, если не хватает ресурсов продолжать дальше.
👉 Статья
👉 Группа игры ВК
👉 Стим
Привет, друзья! 👋
Мы готовим статью о возможном снижении уровня знаний среди IT-специалистов и хотим узнать ваше мнение. Поделитесь своими мыслями, ответив на следующие вопросы:
Как вы оцениваете уровень знаний современных IT-специалистов по сравнению с их предшественниками 10-15 лет назад? 🤔
- Значительно снизился 📉
- Немного снизился 🔻
- Остался на том же уровне ➡️
- Немного повысился 🔼
- Значительно повысился 📈
Какие факторы, по вашему мнению, наиболее сильно влияют на уровень знаний IT-специалистов сегодня? (выберите до 3 вариантов) 🧠
- Качество образования в вузах 🎓
- Доступность онлайн-курсов и самообучения 💻
- Требования рынка труда 💼
- Развитие технологий и инструментов разработки 🛠️
- Влияние социальных сетей и информационного шума 📱
- Отток квалифицированных специалистов ✈️
- Другое (укажите в комментариях) 🗨️
Как вы считаете, что нужно сделать для повышения уровня знаний IT-специалистов? 💡
Поделитесь своими идеями в комментариях! Самые интересные и конструктивные предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙏
Мы готовим статью о возможном снижении уровня знаний среди IT-специалистов и хотим узнать ваше мнение. Поделитесь своими мыслями, ответив на следующие вопросы:
Как вы оцениваете уровень знаний современных IT-специалистов по сравнению с их предшественниками 10-15 лет назад? 🤔
- Значительно снизился 📉
- Немного снизился 🔻
- Остался на том же уровне ➡️
- Немного повысился 🔼
- Значительно повысился 📈
Какие факторы, по вашему мнению, наиболее сильно влияют на уровень знаний IT-специалистов сегодня? (выберите до 3 вариантов) 🧠
- Качество образования в вузах 🎓
- Доступность онлайн-курсов и самообучения 💻
- Требования рынка труда 💼
- Развитие технологий и инструментов разработки 🛠️
- Влияние социальных сетей и информационного шума 📱
- Отток квалифицированных специалистов ✈️
- Другое (укажите в комментариях) 🗨️
Как вы считаете, что нужно сделать для повышения уровня знаний IT-специалистов? 💡
Поделитесь своими идеями в комментариях! Самые интересные и конструктивные предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙏
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
🌐 9 основных паттернов для проектирования распределенных систем
В этой статье мы рассмотрим 9 основных паттернов и области их применения, что поможет вам в проектировании высоконагруженных приложений.
Читать статью
В этой статье мы рассмотрим 9 основных паттернов и области их применения, что поможет вам в проектировании высоконагруженных приложений.
Читать статью
1722832257768 (1).gif
4.4 MB
10 важнейших компонентов веб-приложения
1. CI/CD pipelines: Все начинается с непрерывной интеграции и доставки (Jenkins, GitHub).
2. Запросы пользователей: После разрешения DNS запросы поступают на сервера.
3. Балансировщики: Равномерно распределяют запросы между серверами (Nginx, HAProxy).
4. CDN: Запросы могут обслуживаться через сеть доставки контента.
5. API: Веб-приложение взаимодействует с бекендами через API.
6. Базы данных и кэши: Бекенды взаимодействуют с базами данных или кэшами для получения данных.
7. Очереди задач: Большие задачи отправляются на воркеры с помощью очередей.
8. Поисковые службы: Поиск поддерживается службами полнотекстового поиска (Elasticsearch, Apache Solr).
9. Мониторинг и логирование: Хранение логов помогает анализировать данные, чтобы убедиться, что все работает исправно (Sentry, Grafana, Prometheus).
10. Службы оповещения: Уведомляют разработчиков о проблемах для быстрого реагирования.
💬 Какие еще компоненты вы добавили бы в архитектуру производственного веб-приложения?
1. CI/CD pipelines: Все начинается с непрерывной интеграции и доставки (Jenkins, GitHub).
2. Запросы пользователей: После разрешения DNS запросы поступают на сервера.
3. Балансировщики: Равномерно распределяют запросы между серверами (Nginx, HAProxy).
4. CDN: Запросы могут обслуживаться через сеть доставки контента.
5. API: Веб-приложение взаимодействует с бекендами через API.
6. Базы данных и кэши: Бекенды взаимодействуют с базами данных или кэшами для получения данных.
7. Очереди задач: Большие задачи отправляются на воркеры с помощью очередей.
8. Поисковые службы: Поиск поддерживается службами полнотекстового поиска (Elasticsearch, Apache Solr).
9. Мониторинг и логирование: Хранение логов помогает анализировать данные, чтобы убедиться, что все работает исправно (Sentry, Grafana, Prometheus).
10. Службы оповещения: Уведомляют разработчиков о проблемах для быстрого реагирования.
💬 Какие еще компоненты вы добавили бы в архитектуру производственного веб-приложения?
Forwarded from Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
😨 Страх ошибок: как он мешает вам писать код
Страх совершить ошибку при внесении изменений в код может серьезно ограничивать профессиональный рост программиста. Как преодолеть этот психологический барьер и стать более эффективным разработчиком? Ответы — в нашей статье.
Страх совершить ошибку при внесении изменений в код может серьезно ограничивать профессиональный рост программиста. Как преодолеть этот психологический барьер и стать более эффективным разработчиком? Ответы — в нашей статье.
Ещё и Илон Маск
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Книги для программистов
🔸 Java для опытных разработчиков
Книга раскрывает внутренние механизмы работы языка. Она предлагает уникальные главы по конкурентному выполнению, сборке и развертыванию современных проектов, а также отдельные разделы, посвященные альтернативным языкам для JVM, таким как Kotlin и Clojure. Эта книга поможет вам не только овладеть передовыми методологиями разработки ПО, но и освоить принципы функционального программирования и оптимизации быстродействия, что делает её незаменимым инструментом для профессионального роста.
🔸Java: устранение проблем
Книга предоставляет практические методы для анализа и улучшения незнакомого кода, помогая разработчикам выявлять скрытые зависимости и устранять критические сбои в Java-приложениях. Идеально подходит для продвинутых разработчиков, желающих глубже понять процессы профилирования и отладки.
🔸 Реактивное программирование с применением RxJava
Книга подробно и практично раскрывает принципы реактивного программирования на примере RxJava, помогая Java-программистам создавать более надежные, масштабируемые и быстрые программы. Авторы делятся реальными примерами и стратегиями, что делает книгу ценным ресурсом как для новичков, так и для опытных разработчиков, стремящихся освоить эту перспективную парадигму.
🔸 97 вещей, о которых должен знать каждый Java-программист.
Книга объединяет мнения и советы нескольких десятков опытных Java-разработчиков, создавая единое руководство для начинающих программистов. Читатели найдут подробные инструкции по основным темам работы с Java, а также истории профессионального роста от экспертов. Книга служит отличным путеводителем для тех, кто хочет глубже погрузиться в мир Java-программирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Свежий #дайджест по Java
👩💻 Compose Desktop ShadowJar — статья посвящена созданию автономного JAR-файла для приложений на Compose Desktop с использованием ShadowJar и ProGuard.
👩💻 Состояние Spring в 2024 году — статья обсуждает последние тенденции в разработке программного обеспечения на платформе Spring, выделяя ключевые изменения и вызовы, с которыми сталкиваются разработчики.
👩💻 Нахождение сильно преобладающего элемента последовательности >n/2 (алгоритм большинства голосов Бойера-Мура) — статья рассматривает задачу "Majority Element" с LeetCode и сравнивает решение с использованием хэш-таблицы с более эффективным по пространственной сложности алгоритмом Бойера-Мура.
👩💻 Вышел Hibernate 7.0.0.Beta1 — статья рассказывает о выпуске обновления Hibernate 7.0.0.Beta1, которое включает в себя изменения и улучшения, такие как переход на новую версию технологии, улучшение проверки моделей и более строгие требования.
Please open Telegram to view this post
VIEW IN TELEGRAM
1723006850012 (1).gif
2 MB
Тестирование играет важнейшую роль в обеспечении качества и надежности ваших приложений. Пять популярных фреймворков для тестирования:
1. JUnit:
🔹 Используется для модульного тестирования.
🔹 Простой, удобный в использовании и легко интегрируется с инструментами разработки.
🔹 Идеален для написания и запуска повторяемых тестов, обеспечивая правильное функционирование отдельных частей кода.
2. TestNG:
🔹 Поддерживает различные категории тестирования.
🔹 Гибкий, масштабируемый и подходит как для простых, так и для сложных тестов.
🔹 Предлагает расширенные функции, такие как параллельное тестирование, тестирование на основе данных и подробные отчеты.
3. Mockito:
🔹 Фреймворк для создания мок-объектов в модульных тестах.
🔹 Легкость в использовании, уменьшение шаблонного кода и интеграция с JUnit/TestNG.
🔹 Позволяет разработчикам тестировать части кода изолированно, не полагаясь на внешние зависимости.
4. Selenium:
🔹 Фреймворк для автоматизации веб-браузеров.
🔹 Поддержка кроссплатформенности, интеграция с TestNG/JUnit и активная поддержка сообщества.
🔹 Обеспечивает правильное функционирование веб-интерфейсов на разных браузерах и платформах.
5. Cucumber:
🔹 Инструмент для разработки на основе BDD.
🔹 Улучшает коммуникацию с нетехническими заинтересованными сторонами.
🔹 Использует спецификации на простом языке для написания тестов, что позволяет заказчику лучше понимать тестовые кейсы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека C/C++ разработчика | cpp, boost, qt
💻 15 продвинутых лайфхаков для работы в терминале Linux
Рассказываем, как использовать малоизвестные, но мощные инструменты терминала: от редактирования длинных команд в текстовом редакторе до автоматизации сложных процессов с помощью tmux.
👉 Ссылка
Рассказываем, как использовать малоизвестные, но мощные инструменты терминала: от редактирования длинных команд в текстовом редакторе до автоматизации сложных процессов с помощью tmux.
👉 Ссылка