Как сейчас с работой '25?
если тебе и придет автоотказ, так это потому что тыпросто дурачокродом из России
Вот говорят, что американцы привыкли при смене работы менять и место жительства, и они к переездам морально готовы. В отличии от немцев, присосавшихся к своим крупным городам и хаткам в них. Но меня вот всегда удивляло, почему в американских фильмах переезд это от силы десяток коробок в фургоне или комбике? Они что, заезжают в полностью обставленный дом, причём всё содержимое остаётся от прежних хозяев? Ну т.е. не возят с собой всё барахло несколькими ходками большого грузовика, как это делают скажем в России, да и в Германии многие тоже, заряжая себя упаковкой, тасканием (даже с учётом нанятых грузчиков), распаковкой на неделю-другую, попутно теряя и ломая вещи?
Тогда неудивительно, почему они переезжают легко.
Нервно как-то у вас.
Ну чисто из опыта моего окружения: ни у кого не было проблем. все спокойно пишут в резюме и русский универ и русские места работы.
На почве национальности только особо упоротые, проникшиеся местной пропагандой, резюм положат в корзину.
Вспомнил видос. Вот скажите, в какую такую дупу упёрся этот уровень языка С1? Тут не сильно далеко от "лэт ми спик фром май харт" ушло. Причём от обеих сторон разговоров. И ничего, чел находит работу в за рубежом и переезжает. Не сразу конечно, но пытается, пытается, и наконец добивается. Там правда к техсобесам надо ещё готовиться.
Единственное что, предложения составлять более-менее правильно надо, не сильно лезть за словом в карман. Но сами фразы стандартные и, главное, через несколько подобных разговоров их можно уже на автомате проговаривать, создавая первоначальное впечатление владения языком. А вот акценты и произношения - местами ужас с обеих сторон.
PS. Зачем в Сишарпе паттерн декоратов, когда есть методы расширения? Это ж для языков, не поддерживающих подобные расширения. Так-то конечно можно и на современных языках писать как деды, но зачем?
PPS. Давайте начнём с банальщины - что там в Германии, всё ещё требуется бевербунгсфото на резюм, или и без него рассматривают?
PS. Зачем в Сишарпе паттерн декоратов, когда есть методы расширения? Это ж для языков, не поддерживающих подобные расширения. Так-то конечно можно и на современных языках писать как деды, но зачем?
Расширение - это синтаксический сахар. По факту расширения - это статические функции со всеми их плюсами и минусами. При этом минусов у статических функций гораздо больше (а если длина статической функции больше 3-5 строк, то это уже сигнал, что что-то не ладно в датском королевстве).
PPS. Давайте начнём с банальщины - что там в Германии, всё ещё требуется бевербунгсфото на резюм, или и без него рассматривают?
Фото требуется, но никто не проверяет актуальность :D Хотя если сильно изменился, то лучше обновить. Моему бевербунгсфото лет 15 наверное :)
Моему бевербунгсфото лет 15 наверное :)
Смотрит ашарка - молодой, красявый. А приходит почти дед согнутый. )))
а если длина статической функции больше 3-5 строк, то это уже сигнал, что что-то не ладно в датском королевстве
А если у меня там АЛГОРИТМ!?
пришлось вспоминать, что такое паттерн декоратор
И как ты напишешь такое с методами расширения?
https://chatgpt.com/s/t_695ce182652881919e5252d050d392d7
// Базовый компонент
public interface IMessageSender
{
void Send(string message);
}
// Конкретный компонент
public class EmailSender : IMessageSender
{
public void Send(string message)
{
Console.WriteLine($"Отправка Email: {message}");
}
}
// Базовый декоратор
public abstract class MessageSenderDecorator : IMessageSender
{
protected readonly IMessageSender _sender;
protected MessageSenderDecorator(IMessageSender sender)
{
_sender = sender;
}
public virtual void Send(string message)
{
_sender.Send(message);
}
}
// Конкретный декоратор
public class LoggingDecorator : MessageSenderDecorator
{
public LoggingDecorator(IMessageSender sender) : base(sender) { }
public override void Send(string message)
{
Console.WriteLine("Логирование отправки...");
base.Send(message);
}
}
// Ещё один декоратор
public class EncryptionDecorator : MessageSenderDecorator
{
public EncryptionDecorator(IMessageSender sender) : base(sender) { }
public override void Send(string message)
{
message = $"ENCRYPTED({message})";
base.Send(message);
}
}
IMessageSender sender =
new LoggingDecorator(
new EncryptionDecorator(
new EmailSender()));
sender.Send("Hello");
При желании можно и до чёртиков упороться - абстрактная фабрика асбтрактных фабрик на базовых и конкретных декораторах и иерархии наследования в 20 уровней с переопределениями и частичными реализациями методов и свойств на каждом. Ну и ясен-красен, всё это надо на микросервисах сделать, с аркестрированием и многоуровневыми взаимозависимыми конфигами. Главное, не говорить потом, что ты создатель всего этого, тому, кто это дебажить будет. А то и убить может. Главное, высрать рахитектуру и убежать вовремя с проекта.
При желании можно и до чёртиков упороться - абстрактная фабрика асбтрактных фабрик на базовых и конкретных декораторах и иерархии наследования в 20 уровней с переопределениями и частичными реализациями методов и свойств на каждом.
А потом на собеседовании задать вопрос "а что выведет метод ToString?", стопицот раз переопределённый по всей этой иерархии со всеми возможными комбинациями ключевых слов наследования. А потом с умным видом поцокать язычком - "ммм, не знаете базовых вещей - ваще не программист". Ну и по классике, сам в этом время подсматривает в шпаргалку под столом - что же он на самом деле выведет. )))
Почему бы не заменить эту портянку инъекцией нужного отправителя?
Есть у вас класс, который вы хотите, чтобы он по-разному отправлял сообщения. Ставите ему в конструктор параметр IMessageSender, и пусть он хранит его у себя и использует где надо. Декораторы городить - какой-то лес там, где нужны три палки.
Тут приведён один из вариантов, где если заморочиться, то можно сказать, что методы расширений не подходят. Но декораторы не обязательно лишь для таких замороченных вариантов используют.
Кроме того, можно сделать метод расширения для интерфейса, и уже в самом методе делать разные возвраты для разных конкретных типов. Другой вопрос, что архитекторы головного мозга не согласятся, и будут городить десять классов по пять строк вместо кейсов по две строки в одном и том же методе расширения.

список