Как стать автором
Обновить
740.83

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Использование Java Records в качестве DTO в Spring Boot 3

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 423
Программирование *Java *
Туториал
Перевод

С выходом Spring 6 и Spring Boot 3 Java 17+ стала базовой версией фреймворка.

Поэтому сейчас самое время начать использовать компактные Java Records в качестве объектов передачи данных (DTO, Data Transfer Object) для различных вызовов баз данных и API.

Предпочитаете ли вы читать или смотреть, давайте рассмотрим несколько подходов к использованию записей Java в качестве DTO, которые применимы к Spring Boot 3 с Hibernate 6 в качестве поставщика персистентности.

Читать далее
Всего голосов 3: ↑1 и ↓2 -1
Комментарии 0

Новости

К 70-летию Фортрана. Историческая справка. Часть II

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 720
Программирование *Fortran *История IT
Обзор

Как отмечалось в первой части, условно эволюцию языка Фортран можно разделить на классический период (Фортран I – Фортран IV), когда ведущую роль в разработке занимала фирма IBM, язык абсолютно доминировал среди программистов (особенно в США) и сохранял значительную преемственность с самой первой версией; и современный период (Фортран 90 – Фортран 2018), когда разработка велась в основном ISO, синтаксис и семантика языка были значительно осовременены, но, несмотря на это, язык был уже вытеснен на периферию инструментальных средств. Версия Фортран 77 занимает промежуточное положение между этими периодами.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 3

Когда использовать микросервисы: отвечают Сэм Ньюмен и Мартин Фаулер

Время на прочтение 5 мин
Количество просмотров 1.7K
Блог компании Издательский дом «Питер» Программирование *API *Распределённые системы *Микросервисы *
Перевод
image

Что бывает, когда два легендарных теоретика микросервисов, Мартин Фаулер и Сэм Ньюмен, встречаются, чтобы побеседовать о стратегии разработки под такую парадигму? За минимальное время можно составить впечатление о самых свежих представлениях на тему микросервисов. Ниже мы обсудим взгляды на разработку приложений, которые изложил Сэм Ньюмен, когда Мартин Фаулер задал, казалось бы, простой вопрос: «Когда следует использовать микросервисы?»
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 3

Приглашаем на Samokat.tech Meetup #2 — безопасность, Next JS и микрофронтенды

Время на прочтение 3 мин
Количество просмотров 246
Блог компании Samokat.tech Информационная безопасность *Программирование *Конференции

24 марта 2023 года проведем в Москве Samokat.tech Meetup про frontend. Мы делаем этот митап, чтобы рассказать, как устроена технологическая сторона ритейла реального времени. В программе — три доклада от спикеров из e-commerce и e-grocery. Посмотрим, чем разработка для этих индустрий похожа или отличается от фронтенда в других сферах. После митапа — интерактив и afterparty.

Samokat.tech Meetup пройдет 24 марта в 18:00, офлайн (в Москве) и онлайн (на YouTube).

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Истории

Восемь неочевидных вещей в шаблонах С++

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 1.4K
Блог компании SimbirSoft Программирование *Совершенный код *C++ *
Туториал

Привет, я backend-разработчик IT-компании SimbirSoft Леонид. В этой статье расскажу про 8 нюансов, которые я обнаружил при изучении шаблонов С++. Честно признаюсь, что наткнувшись на некоторые из них, я был удивлен: «Хм, SFINAE есть, а слова нет?» или «А что, есть разница между шаблоном в шаблоне и шаблоном с двумя параметрами?».

Материал будет полезен начинающим разработчикам, которые знакомятся с шаблонами, а также специалистам уровня middle, которые используют шаблоны время от времени.

Некоторые из примеров были описаны в cpp-referernce чуть ли не в самом первом абзаце, некоторые потребовали пошерстить stackoverflow, и в конце концов все есть в стандарте. Но кто учит язык по документации? У кого из нас не было такой ситуации: «Сейчас я код потыкаю, а там разберемся, что к чему». Так вот, сейчас пришло время узнать, как это работает и почему именно так. 

Читать далее
Всего голосов 18: ↑15 и ↓3 +12
Комментарии 1

Делаем бесконечную рабочую область без Canvas

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 1K
Веб-дизайн *JavaScript *Программирование *ReactJS *
Кейс

Рабочее пространство в нашем приложении представляет собой бесконечную доску, по которой могут перемещаться ноды. Необходимо реализовать масштабирование этого пространства и перемещение по нему. Все это мы делаем без использования Canvas, так как приложение построено на React, в дизайн-системе используется antd, а ноды могут быть огромными формами. Согласитесь, реализовывать такие интерфейсы было бы гораздо сложнее, не будь у нас доступа к нативным средствам HTML-5.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 1

Node.JS: заменили модуль SSH2 на OpenSSH и снизили задержки eventloop в 15 раз

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 1.3K
Блог компании Тензор Высокая производительность *JavaScript *Программирование *Node.JS *
Кейс

В нашем сервисе мониторинга и анализа PostgreSQL доступ к серверам осуществляется по протоколу SSH. В качестве ssh-клиента мы используем популярный модуль SSH2 , однако при передаче данных большого объема этот модуль вносит существенные задержки в event loop. Как их можно снизить - расскажем в этой статье.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 3

Пятничные клеточные автоматы: 10 правил «больших, чем жизнь»

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 1.3K
Программирование *Алгоритмы *Математика *Читальный зал Научно-популярное
Обзор

Неделю назад мы сделали шаг в сторону нетоталистичных конфигураций клеточных автоматов, где считали не только количество, но и расположение живых соседей. Сегодня шагнём в другую сторону – увеличим радиус поиска соседей.

Самое популярное подобное расширение конфигурации известно как Larger than Life, или просто LtL. Его мы и рассмотрим.

👾
Всего голосов 22: ↑22 и ↓0 +22
Комментарии 1

Стохастический язык программирования на основе алгоритмов Маркова

Время на прочтение 13 мин
Количество просмотров 6.6K
Ненормальное программирование *Программирование *Математика *
Перевод

MarkovJunior — это вероятностный язык программирования, в котором программы являются сочетаниями правил перезаписи, а инференс выполняется при помощи распространения ограничений. MarkovJunior назван в честь математика Андрея Андреевича Маркова, придумавшего и исследовавшего то, что сейчас называется алгоритмами Маркова.
Читать дальше →
Всего голосов 72: ↑72 и ↓0 +72
Комментарии 14

Краткий обзор нововведений C++23: deducing this

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 5.2K
Программирование *C++ *
Обзор

Документ «deducing this», принятый в последний стандарт C++, вводит новый, третий тип методов классов, сочетающий в себе свойства двух уже существующих: нестатических и статических, открывающий перед нами новые горизонты:

1. Дедупликация большого количества кода.

2. Вытеснение CRTP (Curiously Recuring Template Pattern) на свалку истории, его замена более простой и очевидно понятной записью.

3. Рекурсивные лямбды.

И другое.

Но прежде чем рассмотреть само нововведение и его практические применения, углубимся немного в историю и попытаемся понять, почему в нем собственно возникла необходимость.

Читать далее
Всего голосов 38: ↑38 и ↓0 +38
Комментарии 36

5 паттернов параллельного программирования в GO, которые сделают ваш следующий проект лучше

Время на прочтение 10 мин
Количество просмотров 2.9K
Блог компании OTUS Программирование *Go *Параллельное программирование *
Перевод

Параллельное программирование — одна из самых интересных фич, которые может предложить вам Golang. Идея, лежащая в основе параллелизма, заключается в одновременной работе над несколькими разными процессами, что помогает избежать застревания в задачах, выполнение которых занимает много времени.

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 4

К 70-летию Фортрана. Историческая справка. Часть I

Уровень сложности Простой
Время на прочтение 11 мин
Количество просмотров 3.3K
Программирование *Fortran *История IT
Ретроспектива

В 2023 году исполняется 70 лет с того момента, как Джон Бэкус, сотрудник IBM, убедил начальство утвердить проект первого в мире языка программирования высокого уровня.

Читать далее
Всего голосов 28: ↑27 и ↓1 +26
Комментарии 23

JDK 20 и JDK 21: что мы знаем на сегодняшний день

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 2.3K
Программирование *Java *
Дайджест
Перевод

JDK 20, третий не-LTS-релиз после JDK 17, достиг начальной фазы релиз-кандидата, как заявил Марк Рейнхольд, главный архитектор Java Platform Group в Oracle. Основной репозиторий исходного кода, форкнутый в стабилизационный репозиторий JDK в середине декабря 2022 г. (Rampdown Phase One), определяет набор функций для JDK 20. Критические ошибки, такие как регрессии или серьезные функциональные проблемы, могут быть устранены, но должны быть одобрены в процессе Fix-Request. Согласно графику выпуска, JDK 20 будет официально выпущен 21 марта 2023 года. Стоит отметить, что JEP 438 был добавлен в набор функций в начале марта 2023 года.

В сентябре 2023 года планируется выпустить общедоступный и следующий выпуск LTS В настоящее время в качестве целевых для JDK 21 предлагается два (2) JEP.

Также можно предположить, какие дополнительные JEP могут быть включены в JDK 21, основываясь на ряде проектов и кандидатов JEP.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 0

Python Дайджест: как актуализировать всю кодовую базу с помощью pre-commit

Время на прочтение 6 мин
Количество просмотров 937
Блог компании FirstVDS Open source *Python *Программирование *Django *

Продолжаю рассказывать, как open source проект Python Дайджест спустя 5 лет без обновлений удалось актуализировать по всему стэку технологий. В первой части рассказал, как удалось outdated проект с Python 3.4 обновить до Python 3.11 и Django 4.1.


В этой части расскажу, как удалось максимально дешево привести кодовую базу в актуальное состояние.


Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 0

Язык программирования Rust: безопасность, производительность и преимущества

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 4.3K
Программирование *Системное программирование *Rust *

Язык программирования Rust был разработан компанией Mozilla и впервые представлен в 2010 году. Он считается одним из самых безопасных и производительных языков программирования на сегодняшний день. В данной статье мы рассмотрим основные преимущества Rust, и почему он становится все более популярным в системном программировании.

Читать далее
Всего голосов 31: ↑21 и ↓10 +11
Комментарии 16

Лучшие языки программирования для изучения в 2023 году | Голосование

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 21K
Программирование *Исследования и прогнозы в IT *Учебный процесс в IT Карьера в IT-индустрии
Аналитика

Программирование постоянно развивается, а с ним и языки программирования, которые используются разработчиками. Чтобы быть успешным в мире IT, важно выбрать актуальный и востребованный язык программирования для изучения. Мы решили провести голосование, чтобы выяснить, какие языки программирования считаются самыми актуальными и популярными, а какие самыми неактуальными среди представленных в 2023 году по версии пользователей Habr.

Читать далее
Всего голосов 52: ↑43 и ↓9 +34
Комментарии 211

Численно решаем волновое уравнение разностной схемой

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 3.1K
Программирование *Математика *
Из песочницы

Для меня уравнения в частных производных -- это очень красивая история из студенчества. Почему? Это невероятно красиво. Но что особенно стало для меня захватывающим, так это то, что дифуры в широком смысле прикладной математики -- это тот самый пример, когда математика и компьютер используются вместе, чтобы представить некоторую компьютерную модель вполне реальных процессов. Как вы уже, наверное, догадались, речь пойдёт про то, как вообще можно попробовать решать дифференциальные уравнения в частных производных на компьютере. Мы попробуем это сделать на примере волнового уравнения и с использованием уже ставших привычными python, scipy и numpy. Если вы примерно помните математику, но панически боялись дифуров или они просто как-то обошли вас стороной, то добро пожаловать.

Читать далее
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 4

Выгорание программиста. Интересная работа — самая опасная

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 12K
Блог компании RUVDS.com Программирование *Управление персоналом *Карьера в IT-индустрии Здоровье

Среди айтишников мало жизнерадостных людей… Скорее наоборот, многие выглядят несчастными, а если провести анкетирование, то 83% проявляют признаки выгорания, хотя до крайней степени истощения и цинизма ещё не дошли. Но постоянная когнитивная нагрузка и хронический стресс ведут к закономерному результату:

  • выгорание,
  • физическая деградация,
  • депрессия,
  • ранний уход из профессии.

Все эти последствия хорошо предсказуемы. Поэтому их можно предотвратить.
Читать дальше →
Всего голосов 56: ↑53 и ↓3 +50
Комментарии 120

Переходим на Flutter: за и против

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 4.5K
Программирование *Разработка под iOS *Разработка под Android *Dart *Flutter *
Из песочницы

Привет, Хабр!

Меня зовут Данил Абдрафиков и уже более пяти лет я занимаюсь мобильной разработкой, три из которых — на Flutter. Последние несколько лет я разрабатываю продукты для энтерпрайза в TAGES, и за это время у меня успел накопиться определенный опыт, которым я бы хотел поделиться с вами в сегодняшней статье. Я расскажу, что нужно знать опытному мобильному разработчику для перехода на Flutter, с какими особенностями можно столкнуться и стоит ли вообще переходить на него.

Чтобы вам было удобнее знакомиться с инструментами и технологиями, используемыми во Flutter, в материале будут упоминания нативных языков и инструментов, приближенных к привычному представлению процесса мобильной разработки.

Читать далее
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 43

Оптимизируем изображения в HTML

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 2.3K
Блог компании Нетология Разработка веб-сайтов *Программирование *HTML *Браузеры
Перевод

Вместе со Стивом Сьюэллом, CEO Builder.io, разбираемся, почему с точки зрения оптимизации производительности изображения лучше загружать через HTML, а не через CSS. 

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 8

Вклад авторов