На Stepik запустили курс по вайбкодингу c Claude Code
Первым делом вы освоите базу Claude Code и научитесь проектировать полноценные приложения.
После этого перейдёте к более продвинутым инструментам и автоматизации:
➡️ Разработаете собственные MCP-серверы и Claude Skills
➡️ Автоматизируете разработку с помощью Agent Loops и хуков
➡️ Освоите Claude Design, Cowork и Connectors
➡️ Построите личную систему знаний на базе Obsidian + Claude Cowork
➡️ Научитесь работать с таблицами при помощи Cowork
➡️ Перестанете постоянно упираться в лимиты Claude
А в финале получите готовую дорожную карту, полезные лайфхаки и 7 практических способов обхода блокировок Claude Code в России.
🔥 В течении 48 часов действует скидка 25%
Первым делом вы освоите базу Claude Code и научитесь проектировать полноценные приложения.
После этого перейдёте к более продвинутым инструментам и автоматизации:
А в финале получите готовую дорожную карту, полезные лайфхаки и 7 практических способов обхода блокировок Claude Code в России.
Please open Telegram to view this post
VIEW IN TELEGRAM
👎2❤1
Чем полезен List.copyOf() в Java?
Иногда объект получает список извне и сохраняет его в поле:
На первый взгляд всё нормально. Но если внешний код потом изменит список, изменится и состояние Order:
Теперь внутри order тоже может оказаться новый элемент, хотя сам Order его не добавлял.
Чтобы защититься, можно сделать копию:
Теперь объект хранит собственный неизменяемый снимок списка:
Если исходный список изменится позже, поле внутри Order уже не поменяется:
И сам список внутри Order нельзя случайно изменить:
Обычно такой список удобно возвращать наружу:
Потому что вызывающий код не сможет незаметно изменить внутреннее состояние объекта.
Важно: List.copyOf() не принимает null-элементы:
List.copyOf() полезен для защитного копирования. Он помогает не отдавать внутреннее состояние объекта под управление внешнего кода.
👉 Java Ready | #совет
Иногда объект получает список извне и сохраняет его в поле:
public Order(List<String> items) {
this.items = items;
}На первый взгляд всё нормально. Но если внешний код потом изменит список, изменится и состояние Order:
List<String> source = new ArrayList<>();
source.add("book");
Order order = new Order(source);
source.add("phone");
Теперь внутри order тоже может оказаться новый элемент, хотя сам Order его не добавлял.
Чтобы защититься, можно сделать копию:
this.items = List.copyOf(items);
Теперь объект хранит собственный неизменяемый снимок списка:
public Order(List<String> items) {
this.items = List.copyOf(items);
}Если исходный список изменится позже, поле внутри Order уже не поменяется:
source.add("phone");
// order всё ещё хранит старый наборИ сам список внутри Order нельзя случайно изменить:
order.items().add("tablet"); // UnsupportedOperationExceptionОбычно такой список удобно возвращать наружу:
public List<String> items() {
return items;
}Потому что вызывающий код не сможет незаметно изменить внутреннее состояние объекта.
Важно: List.copyOf() не принимает null-элементы:
List.copyOf(List.of("a", null)); // NullPointerExceptionList.copyOf() полезен для защитного копирования. Он помогает не отдавать внутреннее состояние объекта под управление внешнего кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2🔥2