Как стать автором
Обновить
70
0
Александр Фомин @Sane

Пользователь

Отправить сообщение
Как меня поправили — call-by-ref и Lazy не эквивалентны maybe, они просто являются монадами.
Да, мы используем nuget.org/packages/Tp.Core.Functional повсеместно в наших продакшн проектах. Как перешли? Да, в принципе, никто и не был против. У нас в компании привествуется software craftsmanship движение, а maybe просто добавляют коду явность — я явно указываю, что ожидаю праметр с возможно отсутствующим значением или наоборот — мой метод может вернут пустое значение. И компилятор мне подскажет, где я пренебрегаю этим, выдав ошибку типов. Ошибка в компайл-тайм дешевле ошибки, пойманной в тестах в десятки раз и ошибки из продакшена в сотни — простая арифметика.
Ничем. Это же «Ненормальное программирование», просто забавное наблюдение, что ленивое вычисление (или, скорее, call-by-ref) — это тоже монада, эквивалетная maybe.
8 пункт — неправда. Запрос выполняется, если он возвращает скаляр(Count, Sum, First...). Даже если на нем вызвать foreach (то есть, выполнить GetEnumerator()) он будет выполнен так лениво, как только можно. То есть, такое выражение не выполнится сразу:
	var s =  from f in Foo()
          	group f by f%2;


Схему передавать и не надо — это просто стандратный способ проверить целостность данных, то есть вместо громоздкого текстового описания моего API и тучи реализаций на разных языках, я могу просто предоставить одну схему. Отсутствие схемы — это не минус самого формата, это минус его инфраструктуры, и хорошо, что json schema уже, как минимум, internet draft.

Для дат есть замечательный ISO 8601, самый распротраненный формат данных после строк и чисел. Иметь его в стандрате передачи данных было бы очень приятно.
В json не хватает четырех вещей — схемы, дат, комментариев и NaN. А так — идеальный формат.
Совершенно непонятен возраст. Friends, Теория большого взрыва, Светлячок — TV-14 и даже TV-PG для некоторых эпизодов. Хауз и Шерлок TV-PG.
ToList, как отмечается в статье, все-таки NLogN из-за копирования.
Глупое предположение, всегда думал, что таоке происходит из-за зеленого хромакея, который потом старательно вычищают.
Если сборщик запускается в момент обработки дерева, все текущие объекты попадут в Gen1. Судя по графику, так и происходило — CMS поднимал весь сайт в память, в процессе памяти не хватало, запускался сборщик, и так несколько раз.
Ээ нет. Вы не сможете создать еще один экземпляр класса, реализующего паттерн синглтон. Просто потому что конструктор у него приватный. Плюс с другой стороны, клиенту синглтона абсолютно пофиг, синглтон он или нет — это просто объект нужного ему класса.
Это паттерн state, вообще говоря.
Синглтон сам по себе ни в чем не виноват. Все зло, которое приписывают синглтону, происходит от наличия глобальной переменной (или метода-геттера). Синглтон нужен только для определения единственности объекта, доступ к нему — на совести программиста. Никто не мешает создать синглтон и пропихивать его как зависимость, например, в конструкторы.
Если джуниор приходит на существующий проект, то задавать вопросы — его прямая работа. Нельзя нагуглить решения, которые используются внутри команды, нельзя слепо копировать нагугленные решения — потому что у джуниора нет «чутья», которое должно приобретаться с опытом.
IEnumerator стал Disposable после добавления yield return. Например:
 using (var disposable = new SomeDisposable())
 {
  yield return 1;
  yield return 2;

// some code

 }
}


Когда мы закончим итерироваться по этому генертору (причем, мы же можем закончить даже не доходя до конца), нужно закрыть someDisposable. Поэтому компилятор вычисляет такие структуры и кладет их Dispose в Dispose() метод сгенеренного IEnumerator.
Ты рассматриваешь серию бросков (монетка с памятью) — поэтому веротяность получается равномерной. Задача состоит в единичном опыте.
Мне очень нравится подход, который дает scaloid: github.com/pocorall/scaloid#ui-layout-without-xml
Не совсем так. Скала, насколько я помню, свои range хранит как объект и при par вполне может очень эффективно этот объект разбить, не итерируясь по всему range. Донетовский Range, считай, простой набор yield return.
Для варианта 3 есть замечательные Unicode Character Properties регексы. "\p{Lu}*" для uppercase letter, например.

Информация

В рейтинге
Не участвует
Откуда
Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность