Community chat: https://t.me/hamster_kombat_chat_2
Twitter: x.com/hamster_kombat
YouTube: https://www.youtube.com/@HamsterKombat_Official
Bot: https://t.me/hamster_kombat_bot
Game: https://t.me/hamster_kombat_bot/
Last updated 5 months, 1 week ago
Your easy, fun crypto trading app for buying and trading any crypto on the market.
📱 App: @Blum
🆘 Help: @BlumSupport
ℹ️ Chat: @BlumCrypto_Chat
Last updated 5 months ago
Turn your endless taps into a financial tool.
Join @tapswap_bot
Collaboration - @taping_Guru
Last updated 1 month, 2 weeks ago
Как обустроить комфортный home office?
Работа дома влияет на продуктивность, если правильно организовать пространство:
Тихое место.
Избегай отвлекающих факторов, используй наушники с шумоподавлением.
Удобная мебель.Инвестируй в хороший стул и стол – осанка важна.
Освещение.Естественный свет или лампа с тёплым, ярким светом спасут зрение.
Порядок.Минимум вещей на столе – максимум концентрации.
Технологии.Второй монитор, эргономичная клавиатура и качественная веб-камера.
Уют.Растения, цитаты или любимая кружка создадут атмосферу.
Как выглядит твоё рабочее место? Делись в комментариях!
———————-Ищите вакансии на удалёнку на нашем канале
Навыки для адаптации к неопределённости
В мире изменений важны компетенции, которые помогут успешно развиваться:
Критическое и творческое мышление.
Анализируй данные, генерируй идеи.
Осознание предубеждений.Понимай когнитивные ошибки, развивай эмпатию.
Интеллектуальная скромность.Признавай ошибки и учись новому.
Умение учиться.Быстро осваивай и перестраивай навыки.
Мультидисциплинарность.Работай на стыке разных знаний.
Видение будущего.Строй прогнозы и стратегии.
Управление изменениями.Эффективно адаптируйся.
Открытость к сложности.Принимай разнообразие и решай сложные задачи.
7 установок для карьерного роста в 2025 году
Почему одни специалисты растут быстро, а другие сталкиваются с трудностями? Всё зависит от подхода. Вот 7 ключевых установок для значимого рывка в карьере:
1️⃣ Усердие без видимых результатов — пустая трата времени. Научитесь «продавать» свои достижения.
2️⃣ Лояльность компании не гарантирует роста. Быстрая смена работы может ускорить ваш карьерный путь.
3️⃣ Не титулы определяют ценность, а навыки. Развивайтесь и используйте возможности, а не цепляйтесь за должности.
4️⃣ Нетворкинг — ваш путь к скрытым возможностям. Многие лучшие проекты и вакансии не доходят до открытого рынка.
5️⃣ Комфорт тормозит развитие. Настоящий рост начинается там, где заканчивается зона комфорта.
6️⃣ Перфекционизм — враг прогресса. Стремитесь к улучшению, а не к идеалу.
7️⃣ Успех — результат вашей инициативы. Берите на себя ответственность за свои цели и планы.
? Что такое паттерн Command (Команда)?
? Спрашивают в 3% собеседований
Паттерн Command (Команда) — это поведенческий шаблон проектирования, который превращает запросы в объекты, позволяя передавать их как аргументы методов, ставить в очередь, логировать и отменять.
? Почему этот паттерн важен?
1️⃣ Инкапсуляция запросов: Превращает запросы в отдельные объекты.
2️⃣ Разделение ответственности: Изолирует отправителя запроса от исполнителя.
3️⃣ Логирование и отмена: Упрощает реализацию таких функций.
4️⃣ Параметризация: Позволяет передавать команды в виде параметров.
? Как это работает?
Паттерн состоит из следующих компонентов:
- Команда (Command): Интерфейс с методом execute.
- Конкретная команда (ConcreteCommand): Реализует команду для конкретного запроса.
- Получатель (Receiver): Объект, который выполняет действия.
- Отправитель (Invoker): Инициирует выполнение команды.
- Клиент (Client): Создаёт команды и связывает их с получателями.
```
// Протокол команды
protocol Command {
func execute()
}
// Получатель
class Light {
func on() {
print("Свет включен")
}
func off() {
print("Свет выключен")
}
}
// Конкретная команда для включения света
class LightOnCommand: Command {
private var light: Light
init(light: Light) {
self.light = light
}
func execute() {
light.on()
}
}
// Конкретная команда для выключения света
class LightOffCommand: Command {
private var light: Light
init(light: Light) {
self.light = light
}
func execute() {
light.off()
}
}
// Отправитель
class RemoteControl {
private var commands = String: Command
func setCommand(button: String, command: Command) {
commands[button] = command
}
func pressButton(button: String) {
commands[button]?.execute() ?? print("Команда не назначена")
}
}
// Клиентский код
let light = Light()
let lightOnCommand = LightOnCommand(light: light)
let lightOffCommand = LightOffCommand(light: light)
let remoteControl = RemoteControl()
remoteControl.setCommand(button: "ON", command: lightOnCommand)
remoteControl.setCommand(button: "OFF", command: lightOffCommand)
remoteControl.pressButton(button: "ON") // Свет включен
remoteControl.pressButton(button: "OFF") // Свет выключен
```
? Преимущества:
1️⃣ Инкапсуляция действий: Упрощает управление действиями.
2️⃣ Поддержка отмены и логирования: Легко добавить эти функции.
3️⃣ Гибкость и расширяемость: Легко добавлять новые команды.
4️⃣ Разделение ответственности: Уменьшает зависимость между компонентами.
? Недостатки:
1️⃣ Усложнение кода: Добавление команд может усложнить проект.
2️⃣ Ресурсоёмкость: Дополнительные объекты команд требуют ресурсов.
? Когда применять?
- Когда нужно параметризовать объекты выполняемыми действиями.
- Когда требуется логирование, отмена и повтор запросов.
- Когда нужно передавать операции в очереди или как аргументы.
- Когда нужно разделить ответственность между отправителем и исполнителем.
Паттерн Command — мощный инструмент для управления действиями и инкапсуляции логики, обеспечивая гибкость и расширяемость системы.
Паттерн проектирования "Строитель" в iOS
? Спросят с вероятностью 3%
? Что такое паттерн "Строитель"?
Паттерн "Строитель" (Builder) позволяет пошагово создавать сложные объекты. В отличие от других паттернов, которые создают объекты за один шаг, "Строитель" разделяет процесс создания на этапы, давая возможность гибко настраивать процесс построения объекта.
Преимущества:
- Гибкость ?: Позволяет создавать различные представления одного и того же объекта.
- Читабельность ?: Разделяет процесс создания на логические шаги, улучшая читаемость кода.
- Независимость ?: Процесс создания объекта независим от его составляющих частей.
Недостатки:
- Сложность ?: Увеличивает сложность кода из-за введения дополнительных классов.
- Многословность ?: Требует написания большего количества кода для реализации всех шагов создания.
Пример использования на Swift
Представим, что мы создаём приложение для заказа пиццы ?. Мы можем использовать паттерн "Строитель" для пошаговой сборки заказа.
```
// Продукт
class Pizza {
var dough: String = ""
var sauce: String = ""
var topping: String = ""
}
// Абстрактный строитель
protocol PizzaBuilder {
func setDough()
func setSauce()
func setTopping()
func getPizza() -> Pizza
}
// Конкретный строитель
class MargheritaPizzaBuilder: PizzaBuilder {
private var pizza = Pizza()
func setDough() {
pizza.dough = "Thin Crust"
}
func setSauce() {
pizza.sauce = "Tomato Basil"
}
func setTopping() {
pizza.topping = "Mozzarella Cheese"
}
func getPizza() \-> Pizza {
return pizza
}
}
// Директор
class Director {
private var builder: PizzaBuilder?
func setBuilder(builder: PizzaBuilder) {
self.builder = builder
}
func constructPizza() {
builder?.setDough()
builder?.setSauce()
builder?.setTopping()
}
func getPizza() \-> Pizza? {
return builder?.getPizza()
}
}
// Использование
let director = Director()
let margheritaBuilder = MargheritaPizzaBuilder()
director.setBuilder(builder: margheritaBuilder)
director.constructPizza()
if let pizza = director.getPizza() {
print("Dough: (pizza.dough), Sauce: (pizza.sauce), Topping: (pizza.topping)")
}
```
Ключевые моменты:
1️⃣ Продукт ?* - объект, который мы создаём (в данном случае, пицца).
2️⃣ *Строитель ?* - интерфейс, определяющий шаги для создания продукта.
3️⃣ *Конкретный строитель ??* - класс, реализующий шаги для создания конкретного типа продукта.
4️⃣ *Директор ?**** - управляет процессом создания продукта, используя строителя.
Использование паттерна "Строитель" позволяет гибко и понятно управлять созданием сложных объектов, разделяя процесс на логические шаги и улучшая читаемость и поддержку кода.
5/14/2024 job openings:
- Canada, Fullstack .Net developer (Azure/React) Apply
- UK, Lead iOS Developer Apply
- US, iOS Developer Apply
- US, iOS Developer Apply
- US, iOS Software Engineer Apply
- US, Mobile Engineer (iOS and Android) with CI/CD experience Apply
- US, Mobile Application Developer Apply
- US, Full- Stack AEM Engineer Apply
- US, Android Quality Engineer Apply
- US, Full Stack Engineer Apply
- US, SAP ABAP - Fiori Full Stack Developer (15839) Apply
- US, iOS Staff Engineer (contract-to-hire) Apply
- Ukraine, iOS Developer for Utility and Gaming Apps (Flexible Tech Stack) Apply
- Ukraine, Full Stack Engineer Apply
Resonaite hiring Fullstack .Net developer (Azure/React) in Canada | LinkedIn
Posted 6:22:04 PM. Our client in the professional services is looking for a contract Senior .Net Fullstack developer…See this and similar jobs on LinkedIn.
Community chat: https://t.me/hamster_kombat_chat_2
Twitter: x.com/hamster_kombat
YouTube: https://www.youtube.com/@HamsterKombat_Official
Bot: https://t.me/hamster_kombat_bot
Game: https://t.me/hamster_kombat_bot/
Last updated 5 months, 1 week ago
Your easy, fun crypto trading app for buying and trading any crypto on the market.
📱 App: @Blum
🆘 Help: @BlumSupport
ℹ️ Chat: @BlumCrypto_Chat
Last updated 5 months ago
Turn your endless taps into a financial tool.
Join @tapswap_bot
Collaboration - @taping_Guru
Last updated 1 month, 2 weeks ago