Самое полезное упражнение для программиста - для увлажнения глаз, тоже из йоги:
Вращаем закрытыми глазами с максимальной амплитудой в одну сторону, затем в другую. Несколько раз крепко-крепко зажмуриваемся. Часто моргаем. При необходимости повторить.
Давно искал, где бы изложить идеи аксессуаров, которые хотел бы иметь.
Ключница, которой можно пользоваться одной рукой. Сдвигаешь замок, футляр открывается в руке, как ракушка. Одним движением выкидываешь связку наружу и используешь. Затем так же одним движением закидываешь её внутрь, сжимаешь футляр и он защелкивается. Можно закрывать и с ключами наружу.
Минималистическая поясная сумка на три отделения — телефон, ключи (см. выше), паспорт. Первые два достаются одной рукой.
В йоге есть упражнение — ловить равновесное положение головы при полностью расслабленной шее. Теперь расслабьте глаза и вы получите как раз вышеописанную позу. Для меня она много лет является самой естественной и комфортной.
Мужской подход — все спланировать, разломать до основания, отстроить заново, подпирая костылями при необходимости. Waterfall.
Женский подход — всякий раз, когда что-то можно улучшить, надо не откладывая улучшить, по возможности не разрушая среды. Agile.
Подруга была счастлива, когда я сказал, что в пределе оба метода достигают результата, и есть условия, когда "женский" подход предпочтительнее или даже единственно возможен.
А более общо — бывает необходимость работать с данными разной степени валидности, и в этом случае полезно иметь отдельно структуры данных и их валидаторы.
В общем случае, валидация может предполагать соответствие каким-либо внешним данным, и потому принципиально не может быть выражена системой типов. Тем не менее, декларировать работу с данными, прошедшими валидацию, довольно просто.
abstract class Validated<T> {
public T Value;
public Validated(T value) {
if (!IsValid(value)) throw new Exception("Not valid");
Value = value;
}
public abstract bool IsValid(T value);
}
class Int42Validated : Validated<int> {
public Int42Validated(int value) : base(value) { }
public override bool IsValid(int value) {
return value==42;
}
}
void Foo(Int42Validated arg) { }
Ну что ж, я хотел написать решение с async/await, для сравнения, но обнаружил, что этот функционал доступен только начиная с .NET 4.5. Мы же продолжаем писать под 3.5. И пока все работает, решение о переходе на следующую версию рантайма принято не будет.
Самое полезное упражнение для программиста - для увлажнения глаз, тоже из йоги:
Вращаем закрытыми глазами с максимальной амплитудой в одну сторону, затем в другую.
Несколько раз крепко-крепко зажмуриваемся.
Часто моргаем.
При необходимости повторить.
Верно. В 9.0 это есть.
А я еще на 7.3.
Предлагаю использовать при инициализации ключевое слово "new":
public List<string> Names { get; new; }
Заменяет Names = new List<string>(); в конструкторе.
Реклама Теле2 с обменом и манипуляцией минутами и мегабайтами однозначно читается так - нормальных тарифов нет, и люди вынуждены заниматься фигней.
Давно искал, где бы изложить идеи аксессуаров, которые хотел бы иметь.
В йоге есть упражнение — ловить равновесное положение головы при полностью расслабленной шее. Теперь расслабьте глаза и вы получите как раз вышеописанную позу. Для меня она много лет является самой естественной и комфортной.
В точку! Все зеленые галочки теперь при мне.
У меня много лет нет никаких бумаг, все в компьютере.
Я не в коробе, а рядом. И от окошка сквозняк.
180, худощавый.
Сейчас я могу лечь на столешницу грудью и растопырить локти. Но для работы это не нужно.
Никогда не испытывал необходимости.
По личному опыту проведения разных ремонтов:
Мужской подход — все спланировать, разломать до основания, отстроить заново, подпирая костылями при необходимости. Waterfall.
Женский подход — всякий раз, когда что-то можно улучшить, надо не откладывая улучшить, по возможности не разрушая среды. Agile.
Подруга была счастлива, когда я сказал, что в пределе оба метода достигают результата, и есть условия, когда "женский" подход предпочтительнее или даже единственно возможен.
А более общо — бывает необходимость работать с данными разной степени валидности, и в этом случае полезно иметь отдельно структуры данных и их валидаторы.
А если так:
bool IsValid(int value) {
return value==(int)DateTime.Now.DayOfWeek;
}
В общем случае, валидация может предполагать соответствие каким-либо внешним данным, и потому принципиально не может быть выражена системой типов. Тем не менее, декларировать работу с данными, прошедшими валидацию, довольно просто.
Пойду прыгать с парашютом в продакшен.