Pull to refresh
2K+
23
Megazorg@ildarin

Программист, системный архитектор

13
Subscribers
Send message

Всегда есть решения в границе от "здесь и сейчас" и "по правильному". Второй требует больше затрат, а окупаемость зависит от того, насколько правильное и впрямь было правильным.

Монополии регулируются чтобы скрыть неэффективность законов. Это костыль. Потому как монополия рано или поздно лопнет, но чем она крупнее - тем больше ущерба нанесет ее хлопок. Причина этого - попытка консолидации посредством человека, а не правил, наличие человеческого фактора. И на борьбу с этим тратиться 95% усилий, и лишь 5% - на поиск решения. Цифры с потолка, порядки - интуитивные. Все равно как раньше кровопусканием мигрень лечили.

И Y - это не бесконечное значение. ВВП - это попытка рассчитать Y для определенной местности. Если население стареет и не увеличивается - Y не уменьшится только при условии, что совокупно количество труда растет. Либо мы больше работаем. Либо мы более эффективно работаем. Часть труда уходит в само рефлексию. Если она не повышает эффективность - Y будет уменьшатся. На примере одной страны. Население саморефлексирует на тему величия народа. Результат - определенные выводы, что становятся правилами (попытка объяснить закон). В случае, если используется логика и логические ошибки исправляются - Y растет за счет повышения эффективности труда, т.к. правила помогают избежать бессмысленных действий и затрат труда в пустоту (вспомним о количестве еды, которую выбрасывают супермаркеты). В противном случае - законы выведены неверно и либо Y падает, либо растет или держится на том же уровне за счет количества. Раньше ты работал 8 часов с выходными, теперь, ради увеличения Y - ты работаешь 10 часов без выходных. При этом как выкидывали 15% еды - так и продолжают. А может еще и 20% начнут, т.к. например твои 2 часа дали 100 еды, а было 80, а нужно 90.

Деньги - это не универсальное вещество, которое может превратиться во что угодно. Это просто цифры, которыми мы математически пытаемся оценить труд. Золото стоит денег не потому, что его мало. А потому, что чтобы получить X количество золота в указанном месте нужно Y количество труда, которое можно потратить, чтобы получить Z количество пшеницы в указанном месте в указанное время. Y - это и есть деньги.

Это уже частности. Но что важно - человечество не поддерживает целенаправленно. Принцип рынка - работает по законам природы. Эволюция. Нет главного создателя, который ее направляет. Это просто процесс, все равно что пузыри в чайнике кипящем. Единый мировой правитель это настолько же естественно, как и главная рыба в косяке рыб. Королева муравейника не правит. Она - инкубатор. Лев прайда не владеет ничем, он инкубатор. Побеждает не сильнейший, побеждает то, что должно победить. А мы лишь можем пытаться понять причины и давать им названия. Понять правила игры.

"В чем сила, брат?" В деньгах? Власти? В мышцах? Или в Ньютонах?

Может я и детерменист, но тут как с ОТО у Эйнштейна. Зачем нам забивать голову эфиром, если он бессмысленен?

Ну да, а если бы в каждой отдельной стране был бы свой завод видеокарт, а не только в тех, в которой львиная часть экономики наиболее направлена эффективное для нее направление. Не только там, где сформировалась соответствующая инфраструктура. Уж тогда бы конечно такого бы не случилось просто по той причине, что карт бы было настолько мало в мире, что не то что майнить, Duke Nukem 3D играть было бы не просто.

Разделение труда - одно из ключевых достижений человечества в науке экономика. Это природное явление, например муравьи, пчелы. Еще глубже - часть клеток собрались в кучку и поглощают кислород. Другая - передает нервные импульсы. Человечество такая же часть биосферы, как была раньше. Функционирует по тем же принципам. И как мы видим - никогда еще идя против законов природы, против природы самого себя ни одна группа людей не добилась успеха. Создавать законы невозможно, земля вращалась и до того, как мы об этом узнали. А чтобы эти законы знать - нужна наука. Чем больше мы знаем законов - тем лучше мы делаем свою жизнь. Законное право на защиту жизни либо есть, либо его - нет. Это не вопрос этики или философии, без права на защиту само существование человечества - невозможно. Математически.

Так же и разделение труда. Эффективность совокупности может превышать эффективность суммы отдельных ее частей. 10 человек, занятых наукой вместе достигнут в разы большего, чем 10 поодиночке.

Всему свое время и место. Путь решения проблемы ровно один - эмансипация, так уже было тысячи раз в истории. Но это уже оффтоп. Мы тут ит обсуждаем, пообсуждать остальное можем за дверью, на улице. Свободу слова и свободу выражения своей воли никто и никогда не отменял, это Ваше незыблемое право. Например, пойти в кафе и написать на бумажке свой тезис и пригласить к обсуждению. Это не глупо, если это работает.

А из уважения к ресурсу, читателям и автору можно и избежать обсуждений не по теме в топике. Пойдем, выйдем, пообщаемся по мужски ?? лучше.

Я первую игру сделал лет в 10-12, на паскале. Первая моя программа, после привет мир: игра "Один или два". Вторая - текстовая версия The Sims. На продленке по информатике, т.к. своей машины не было. Через три урока учительница сказала, что ей нечему меня учить и посоветовала идти в библиотеку. Надо ли говорить, о качестве литературы в библиотеке по ИТ?

Ну этож скучно, да и единицы потом применяют на практике эти навыки, автоматизация бизнес процессов, оформление ТЗ и т.д. К тому же уже давно есть тенденция, когда работа делится между аналитиками, тестировщиками и разрабами. Да и сомнительно, что есть много смысла штамповать инженеров по ГОСТ'у советского образца. ИТ уже давно вышел за рамки прикладной задачи автоматизации предприятий, теперь это уже самостоятельная дисциплина, и уже предприятия создают под веяния ИТ (Agile).

Да и на примере игры можно написать вполне себе серьезную работу, при этом к б.п. она иметь отношения вообще не будет. Например, какой-нибудь шибко умный ИИ противников с генетическим алгоритмом поведения. Или хитрая архитектура, которая будет держать высокую нагрузку. Шейдеры, оптимизация графики и т.д. Распределенную структуру БД.

На самом деле игропром - один из наиболее сложных в техническом плане направлений в ИТ, ни в одном из бизнесовых крудов нет такой потребности в скорости отклика, как в играх. Я не о 3 в ряд и прочем ширпотребе, а об Играх, которые теперь уже самостоятельно могут формировать вокруг себя инфополе и держать такие проекты, как Twitch.

Специальность "Информатика и вычислительная техника". Не думаю, что тут есть смысл сравнивать со специалитетами, где на 3ем курсе пишут с нуля реализацию трассировки лучей с тенями.

Здорово, что у Вас не встали в позу и дали реализоваться. В тыщу раз лучше, чем переписанная вода без намека на понимание содержания в 146% случаев.

Высшее образование (на самом деле - специальное) - штука полезная, но только при условии сознательного выбора и обучения. В противном случае - это просто трата N лет жизни на протирание штанов. Почему-то в головы со школы вбивают, что образование нужно не самим учащимся, а кому-то другому. "Будешь учиться на двойки - пойдешь дворником работать". Что возможность получать знания - не привилегия, а тяжкая ноша и обязанность. Оценки эти школьные на хлеб не намажешь, на молоко не обменяешь. А вот полученные знания - определяют твою жизнь на десятилетия вперед.

Для начала объясню по понятиям:

DI - это внедрение зависимости. И пример: два класса, один без DI, второй с инъекцией в конструктор (DuckDi). Это реализация принципа IoC, когда зависимости мы отдаем на "внешний код", например, IoC контейнеру, которым является ServiceCollection. Он сам уже по тем или иным принципам выбирает, какой IFeed выдать утке.

class Duck{
  IFeed Feed
  Duck()
    {
    	Feed = new MyFeed();
    }
  }
}

class DuckDi{
  IFeed Feed;
  Duck(IFeed feed)
  {
  	Feed = feed;
  }
}

А вот пример применения паттерна ServiceLocator. Разница с Ioc Contaner в том, где определяются зависимости. Если в самом классе локатора - то, это локатор. Если где-то снаружи - то это контейнер. Как раз в namespace DuckFeed - контейнер снаружи.

class Duck{
 IFeed Feed;
  Duck(){
    var locator = new ServiceLocator();
   	Feed = locator.GetService<IFeed>() 
  }
}
class ServiceLocator{
 T GetService<T>(){
   return new ServFeed();
 }
}

Думаю теперь, когда я привел примеры, тема сабжа стала понятнее. Это как раз то, что я и пропустил в статье в начале, т.к. об этом написано куча статей и даже книг, тот самый Мартин - как раз одну такую написал, рекомендую к прочтению.

Фре́ймворк — программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта.

Без .NET Framework скомпилированный код C# даже не запуститься, поэтому он и Framework. Т.к. компилируется он в байт код для машины CLR, а не в прямые команды процессора.

Ответ на коммент ниже:

2. При вызове конструктора можно вместо ссылки на сервис указать ключевое слово, которое вызывает запрос в DI, типа так:
var obj=new Xyzzy(inject,inject).

Тут я вообще не понимаю, в чем смысл?

А система программирования находит и подставляет реализации сервисов из контейнера DI.

Она и так это делает, только без всяких атрибутов.

Вообще, в самом языке C# никакого DI нет. 

Ну нет так нет) Боб Мартин врал нам всё это время! ? А ведь мы ему верили... как же я был глуп и наивен! ?

У вас фреймворка нет

Ну ок, нет так нет. Прям как в анекдоте "Товарищъ сеньор, я свой фреймворк не чувствую"? Правда не ясно, как код компилится и запускается, без фреймворка, ну да ладно, "как-то магически" тоже вариант))

Scoped, создается обращением к IServiceScope.ServiceProvider где-то внутри фреймворка.

Ну ок, но зачем пересказывать статью в комментарии-критике к этой же статье) И не "где-то", а вполне конкретные места есть и я их даже видел)

DI - это я так сократил di ioc. В карму плюсы всем комментаторам, т.к. чот тут совсем тухло стало, я как бы 8 лет сюда не заходил) Но в коммент - минус, т.к. складывается ощущение, будто пишущие вообще не понимают, о чем пишут.

Можно было бы еще выделить один уровень абстракции и разделить, но просто больше кода будет.

Минус я поставил, если что) Сейчас объясню.

Почему извращенный, почему локатор? Смотрим в namespace DuckFeeding

Там нет ссылок на сервис локатор. Вообще никаких. Т.е. эта область кода не завязывается никак на сервисы. В этом и профит.

А точка сборки не отличается для локатора и DI, она в самом начале листинга. Это и инкапсулировано за реализацией, в .NET, я просто показал, как оно внутри работает.

Советую почитать http://sergeyteplyakov.blogspot.com/2013/03/di-service-locator.html

Дефолтный - пустой? Не слышал, врят-ли.

То, что она будет реализовывать интерфейсы IFeed и IDuck - мы задаем через фабричный метод s => s.GetRequiredService() в противном случае, .NET будет создавать новый экземпляр на каждый тип интерфейса. 

По Вашему - везде где, например, инъекция в конструктор .ctor(IFeed feed) будет создаваться новый объект new Duck() в IFeed. Таков .NET.

Coming soon
ФЗ 169-32 «О запрете модели free to play с непрозрачной системой монетизации для социальных сетей» (с) Ми$%$#на /sczm>
Сатью не читай, коммент пиши? habrahabr.ru/post/189610
Копипаста картинок формул с википедий. Если в конце концов не погрузятся — перезалью через интерфейс.

Information

Rating
Does not participate
Registered
Activity

Specialization

Продуктовый дизайнер
From 1,000,000,000,000,000,000 ₸