Forwarded from Книги для джавистов | Java
📚Clean Code Cookbook: Recipes to Improve the Design and Quality of your Code (2023)
✍️Автор: Maximiliano Contieri
📃Страниц: 428
На реальных примерах из JavaScript, PHP, Java, Python и многих других языков программирования в этой книге представлены проверенные рецепты, которые помогут вам масштабировать и поддерживать большие системы
Что внутри:
🔸Шаг за шагом изучайте методы рефакторинга
🔸Получите наглядные примеры кода на нескольких современных языках программирования
Скачать книгу
✍️Автор: Maximiliano Contieri
📃Страниц: 428
На реальных примерах из JavaScript, PHP, Java, Python и многих других языков программирования в этой книге представлены проверенные рецепты, которые помогут вам масштабировать и поддерживать большие системы
Что внутри:
🔸Шаг за шагом изучайте методы рефакторинга
🔸Получите наглядные примеры кода на нескольких современных языках программирования
Скачать книгу
#дайджест самых юзабельных фич в Java
✖️ Project Loom — определяет и реализует в Java новые легковесные параллельные примитивы
✖️ Project Amber — исследуйте и внедряйте, ориентированные на производительность функции Java, которые были приняты в OpenJDK JEP Process
✖️ ZGC — оптимизированный и допиленный сборщик мусора
✖️ Project Leyden — призван уменьшить время старта и достижения максимальной производительности для java-приложений
✖️ Project Valhalla — дополнение объектной модели Java объектами-значениями, сочетающими абстракции объектно-ориентированного программирования с характеристиками производительности простых примитивов
✖️ Project Loom — определяет и реализует в Java новые легковесные параллельные примитивы
✖️ Project Amber — исследуйте и внедряйте, ориентированные на производительность функции Java, которые были приняты в OpenJDK JEP Process
✖️ ZGC — оптимизированный и допиленный сборщик мусора
✖️ Project Leyden — призван уменьшить время старта и достижения максимальной производительности для java-приложений
✖️ Project Valhalla — дополнение объектной модели Java объектами-значениями, сочетающими абстракции объектно-ориентированного программирования с характеристиками производительности простых примитивов
#вопрос_с_собеседования
LinkedList — это односвязный, двусвязный или четырехсвязный список?
Двусвязный. Каждый элемент LinkedList хранит ссылку на предыдущий и следующий элементы.
LinkedList — это односвязный, двусвязный или четырехсвязный список?
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
🔟 10 суровых истин, которые должен знать каждый джун
Вы думаете, что карьера в ИТ — это сплошные плюшки? Забудьте! Реальность жестока: низкие зарплаты на старте, бесконечные задачи и битва за релокацию. Откройте глаза на суровые реалии прямо сейчас!
👉 Читать статью
👉 Зеркало
Вы думаете, что карьера в ИТ — это сплошные плюшки? Забудьте! Реальность жестока: низкие зарплаты на старте, бесконечные задачи и битва за релокацию. Откройте глаза на суровые реалии прямо сейчас!
👉 Читать статью
👉 Зеркало
🎉🎉 Вышел Spring AI 0.8.0
Проект призван упростить создание приложений, которые используют ChatGPT и другие AI-модели, предоставляющие API для взаимодействия. Разработчики Spring AI хотят дать абстракции для работы со всеми основными моделями так, чтобы между ними было легко переключаться с минимальным изменением кода. В этой версии представлена такая функциональность:
➖ API для взаимодействия с AI-моделями от разных поставщиков: OpenAI, Microsoft, Amazon, Google, Huggingface и других;
➖ поддержка Vector Store API, которое предоставляет интерфейс для взаимодействия с векторными БД, поддерживается 8 различных БД;
➖ вызов функций — блоков кода в ИИ-моделях, фича для Open AI;
➖ автоконфигурация и стартеры Spring Boot для моделей ИИ и векторных хранилищ;
➖ ETL-фреймворк для Data Engineering.
Продолжение здесь
#почитать
Проект призван упростить создание приложений, которые используют ChatGPT и другие AI-модели, предоставляющие API для взаимодействия. Разработчики Spring AI хотят дать абстракции для работы со всеми основными моделями так, чтобы между ними было легко переключаться с минимальным изменением кода. В этой версии представлена такая функциональность:
➖ API для взаимодействия с AI-моделями от разных поставщиков: OpenAI, Microsoft, Amazon, Google, Huggingface и других;
➖ поддержка Vector Store API, которое предоставляет интерфейс для взаимодействия с векторными БД, поддерживается 8 различных БД;
➖ вызов функций — блоков кода в ИИ-моделях, фича для Open AI;
➖ автоконфигурация и стартеры Spring Boot для моделей ИИ и векторных хранилищ;
➖ ETL-фреймворк для Data Engineering.
Продолжение здесь
#почитать
☕ Хеш-таблицы в Java: секреты производительности
Посмотрим на проблемы, которые возникают при имплементации хеш-таблицы, когда сложность добавления или удаления из нее не O(1), а линейная, и какие потенциальные атаки можно провести на эту структуру данных (и как их избегают в современных языках программирования на примере Java).
🔗Читать статью
Посмотрим на проблемы, которые возникают при имплементации хеш-таблицы, когда сложность добавления или удаления из нее не O(1), а линейная, и какие потенциальные атаки можно провести на эту структуру данных (и как их избегают в современных языках программирования на примере Java).
🔗Читать статью
❓❓ Абстрактный класс в Java
Вы пишете код для обслуживания банковских операций и определяете в нем три класса:
🔹 Person, описывает человека;
🔹 Employee, описывает банковского служащего;
🔹 Client, представляет клиента банка.
Классы Employee и Client будут производными от класса Person, так как оба класса имеют общие поля и методы. Поскольку все объекты будут представлять сотрудника или клиента банка, то напрямую мы от класса Person создавать объекты не будем.
Поэтому имеет смысл сделать его абстрактным, как на картинках.
Тем самым мы придерживаемся принципам ООП — наследование и полиморфизм (переопределяем метод display()). Также есть Инкапсуляция благодаря private полям класса Person.
С помощью всего этого, ваш код более гибкий для изменений, более читабельный и поддерживаемый.
Вы пишете код для обслуживания банковских операций и определяете в нем три класса:
🔹 Person, описывает человека;
🔹 Employee, описывает банковского служащего;
🔹 Client, представляет клиента банка.
Классы Employee и Client будут производными от класса Person, так как оба класса имеют общие поля и методы. Поскольку все объекты будут представлять сотрудника или клиента банка, то напрямую мы от класса Person создавать объекты не будем.
Поэтому имеет смысл сделать его абстрактным, как на картинках.
Тем самым мы придерживаемся принципам ООП — наследование и полиморфизм (переопределяем метод display()). Также есть Инкапсуляция благодаря private полям класса Person.
С помощью всего этого, ваш код более гибкий для изменений, более читабельный и поддерживаемый.
This media is not supported in your browser
VIEW IN TELEGRAM
💬 Open Source по-русски: путь к технологической независимости или обочина прогресса?
Для одних организаций open source является ключом к преодолению зависимости от иностранных вендоров и драйвером инноваций, для других — дырой в безопасности и обочиной технологического прогресса.
Мы хотим изучить текущее состояние и возможности открытого ПО в России. Пройдите опрос и помогите нам увидеть ситуацию глазами IT-профессионалов.
👉 Ссылка на опрос 👈
Прохождение займёт примерно 4 минуты
Для одних организаций open source является ключом к преодолению зависимости от иностранных вендоров и драйвером инноваций, для других — дырой в безопасности и обочиной технологического прогресса.
Мы хотим изучить текущее состояние и возможности открытого ПО в России. Пройдите опрос и помогите нам увидеть ситуацию глазами IT-профессионалов.
👉 Ссылка на опрос 👈
Прохождение займёт примерно 4 минуты
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
💪 Что не так с MVP: как создать конкурентоспособный продукт
Традиционная концепция MVP нуждается в пересмотре — авторы предлагают альтернативный подход, основанный на тесном взаимодействии с целевой аудиторией и непрерывных итерациях для создания действительно ценного продукта.
👉 Читать статью
👉 Зеркало
Традиционная концепция MVP нуждается в пересмотре — авторы предлагают альтернативный подход, основанный на тесном взаимодействии с целевой аудиторией и непрерывных итерациях для создания действительно ценного продукта.
👉 Читать статью
👉 Зеркало
Очередной #дайджест для джависта
🌿 Декомпозиция систем по ограниченным контекстам DDD — глубокое погружение
🌿 Семь принципов хорошей разработки — принципы разработки ПО при создании высококачественных, удобных в сопровождении и эффективных программных систем
🌿 Хакатон: умный помощник для тендеров — пройдет на площадке РЭУ им. Г.В. Плеханова
🌿 Java's Custom Runtime Builder — про мощный инструмент командной строки для создания кастомных сред выполнения Java
🌿 Java в контейнере — особенности эксплуатации
🌿 Декомпозиция систем по ограниченным контекстам DDD — глубокое погружение
🌿 Семь принципов хорошей разработки — принципы разработки ПО при создании высококачественных, удобных в сопровождении и эффективных программных систем
🌿 Хакатон: умный помощник для тендеров — пройдет на площадке РЭУ им. Г.В. Плеханова
🌿 Java's Custom Runtime Builder — про мощный инструмент командной строки для создания кастомных сред выполнения Java
🌿 Java в контейнере — особенности эксплуатации
📈 По просьбе подписчиков «Библиотеки программиста» мы провели опрос и выяснили, что у большинства айтишников зарплата в 2023 году выросла.
⚡️ Как выглядит доход среднего айтишника и какие факторы окажут влияние на динамику ИТ-зарплат в 2024 году — расскажем в статье на VC.
👉 Читать
P. S. Свои предложения для исследований пишите в комменты👇
⚡️ Как выглядит доход среднего айтишника и какие факторы окажут влияние на динамику ИТ-зарплат в 2024 году — расскажем в статье на VC.
👉 Читать
P. S. Свои предложения для исследований пишите в комменты
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Java-программа для преобразования десятичной системы счисления в двоичную
Воспользуемся побитовыми операторами для решения данной задачи.
Временная сложность: O (1)
Вспомогательное пространство: O (1).
Воспользуемся побитовыми операторами для решения данной задачи.
Временная сложность: O (1)
Вспомогательное пространство: O (1).
☕ Хеш-таблицы в Java: секреты производительности
Посмотрим на проблемы, которые возникают при имплементации хеш-таблицы, когда сложность добавления или удаления из нее не O(1), а линейная, и какие потенциальные атаки можно провести на эту структуру данных (и как их избегают в современных языках программирования на примере Java).
Читать статью
#туториал
Посмотрим на проблемы, которые возникают при имплементации хеш-таблицы, когда сложность добавления или удаления из нее не O(1), а линейная, и какие потенциальные атаки можно провести на эту структуру данных (и как их избегают в современных языках программирования на примере Java).
Читать статью
#туториал
Библиотека Apache Commons BeanUtils
Это набор утилит для работы с Java-бинами в проектах на Java. Java-бин — это простой класс Java, который следует определенным соглашениям:
Он имеет поля (атрибуты) для хранения данных.
Он предоставляет методы доступа (геттеры и сеттеры) для чтения и записи значений этих полей.
Обычно он имеет пустой конструктор по умолчанию.
Библиотека BeanUtils упрощает работу с такими классами, избавляя вас от необходимости вручную вызывать методы доступа.
Это набор утилит для работы с Java-бинами в проектах на Java. Java-бин — это простой класс Java, который следует определенным соглашениям:
Он имеет поля (атрибуты) для хранения данных.
Он предоставляет методы доступа (геттеры и сеттеры) для чтения и записи значений этих полей.
Обычно он имеет пустой конструктор по умолчанию.
Библиотека BeanUtils упрощает работу с такими классами, избавляя вас от необходимости вручную вызывать методы доступа.