Вход | Регистрация

  1  2
Информационные технологии ::

Метки:

Банда четырёх и прочие боги "настоящего программирования"

Я
   Mort
 
01.03.17 - 03:35
У нас один бог (ну или два), а там целая кодла. И среди них есть некие кто называются "банда четырех". Если ты не знаешь кто это такие, можешь на собеседование на кресты не соваться.

В ходе изучения C# в рамках использования в Unity плотно пообщался с гуру использования C++ в QT.

На каждый вопрос - используй тот или иной паттерн, особо часто описанный в книге вышеупомянутых четырёх. Ну и пресловутый MVC, конечно.

После поверхностного изучения и применения на практике тех же "синглтонов" и "наблюдателей", как у тупого 1сника возникло смутное ощущение, что паттерны проектирования это просто средство в плохо проектированной среде не потерять концы. Может это конечно и обусловлено тем, что сложность всей программы в отличие от 1с взлетает  шопц с каждой строчкой, но привкус ненатуральности остается. Вы как считаете?
 
 
   Вафель
 
101 - 01.03.17 - 12:47
(99) слово "ленивый" тебе ни о чем не говорит?
   Вафель
 
102 - 01.03.17 - 12:47
те каждый элемент коллекции появляется тоько тогда когда потребуется
   Garykom
 
103 - 01.03.17 - 12:51
(102) Термин "ленивый" обычно относится к загрузке данных а не к вычислению.
Но да может и так, но тут имхо не ленивое а кормление завтраками, когда:
- у тя уже готово?
- да доделываю уже! (на самом деле даже не начинал)
   Вафель
 
104 - 01.03.17 - 12:54
(103) чем чтение кардинально отличается от вычисления?
   Волшебник
 
Модератор
105 - 01.03.17 - 12:56
Что вы тут курите? Отсыпьте
   Провинциальный 1сник
 
106 - 01.03.17 - 13:01
(62) Используй вместо выборки выгрузку - и паттерн не сломается
   Naf2017
 
107 - 01.03.17 - 13:01
(103) "ленивое" это когда данные получают/создают не изначально готовыми, а по мере необходимости использования

IEnumerable<int> range1 = Range(5,10); //никакой коллекции никто и не думал создавать

IEnumerable<int> range2 = range1.Where(s=>a%2==0); //и снова нет коллекции

Array c = range2.ToArray(); //вот теперь есть!
   Garykom
 
108 - 01.03.17 - 13:01
(104) При "ленивом чтении" коллекция уже есть тока в другом месте, при "ленивом вычислении" где коллекция?
   Naf2017
 
109 - 01.03.17 - 13:02
(106) выгрузка не "ленива" и жрет память
   organizm
 
110 - 01.03.17 - 13:38
(105) не мешай мальчик
 
  Рекламное место пустует
   Mort
 
111 - 01.03.17 - 13:46
(103) Как раз в этом и прикол, что можно не возвращать всю коллекцию а только следующий элемент. Т.е. например, можно реализовать бесконечную выборку чисел фибоначчи, а когда остановиться клиент решает.
   Живой Ископаемый
112 - 01.03.17 - 13:58
2(111) ok, а теперь давайте подумаем. Имея какое либо число фибоначчи, мы сможем получить следующее?
Если да, то зачем обязательно делать именно так?
У нас есть функция, которая получает следующее число, относительно текущего. у нас есть коллекция, которая наполнена всеми числами до текущего.
Мы инициируем получение следующего, добавляем в коллекцию, опрашиваем пользователя на предмет останова. Если не получаем сигнала, получаем следующее и т.п.
Почему обязательно йилды? В чем абстракци, переиспользование или другие выгоды?
   orefkov
 
113 - 01.03.17 - 14:13
"Если б Остап узнал, что он играет такие мудреные партии и сталкивается с такой испытанной защитой, он крайне бы удивился. Дело в том, что великий комбинатор играл в шахматы второй раз в жизни." (с) 12 Стульев

На самом деле одинэсники вовсю используют самые лучшие паттерны, тщательно отобранные заботливыми методистами и разработчиками платформы 1С.
Когда ты пишешь свой тупой код для простенькой управляемой формы, на самом деле ты юзаешь model-view-controller с double-way data binding в three-layered-data-app-engine, сдобренный high level object-relation-mapping на базе declarative metadata description, имеющей свой platform-independed query language, c declarative data-driven user interface, complete transparent serialization и domain-oriented programm language.

В чём разработчики 1С отличаются от западных коллег, так это в пиаре. Те любят любой фигне дать громкое имя и носится с ней, как с писаной торбой.
   Живой Ископаемый
114 - 01.03.17 - 14:19
ну незападные тоже уже любят. Пример - Котлин и VIPER.
1С почему-то не любят, да...
   Naf2017
 
115 - 01.03.17 - 14:19
(112) вы коллекцию храните, а это затратно
к тому же при ленивом вычислении условия могут измениться и вы получите другую коллекцию
   Asmody
 
Ведущий
116 - 01.03.17 - 14:21
(113) Будьте добры, помедленнее, я записыуаю!
   Fish
 
117 - 01.03.17 - 14:23
(113) Хорошо сказал. :))
   Живой Ископаемый
118 - 01.03.17 - 14:23
2(115) Ладно, буй с ним, я пока все равно не постигаю зачем нужно уметь получать эффемрную коллекцию, которая как бы и не коллекция.


Динамический список, кстати - не такая коллекция?
   Asmody
 
Ведущий
119 - 01.03.17 - 14:24
сука, (113) в твит не влазит!
   Это_mike
 
120 - 01.03.17 - 14:26
(113) !!!!!!
   mrDru
 
121 - 01.03.17 - 14:39
(113) примерно так же думал, когда на Java слез. Там, на самом деле, под капотом до задницы всего понареализовано: i18n, ORM, cross-compiling, event bus, jobs (+cron) и тд и тп.
Прикол в том, что в любом достаточно крупном проекте (привет SAP) те же грабли - свой DSL и сотни слоев абстракций. Даже прикол такой есть: "когда у нас закончились названия для новых слоев абстракций, мы начали называть их по именам архитекторов".

Имхо с GOF нарочно знакомиться не надо, иначе руки так и тянутся "натянуть сову на глобус" и будешь потом клепать "фабрики синглтонов". Паттерны при трудоустройстве спрашивают только те, у кого ума на большее не хватает, а туда идти и не надо.
   mrDru
 
122 - 01.03.17 - 14:41
+ (121) :
Там, на самом деле, под капотом ... - читай "Там (в 1С)..."
   Лефмихалыч
 
123 - 01.03.17 - 14:44
(119) скриншот сделай
   Naf2017
 
124 - 01.03.17 - 14:50
(118) смотря что под коллекцией понимать
здесь мы вовсю говорили про IEnumerable и паттерн итератор, а в динамическом списке никаких итераторов нет )))
   jsmith82
 
125 - 01.03.17 - 15:03
Живые примеры для предметного обсуждения были?
   Господин ПЖ
 
126 - 01.03.17 - 15:09
(119) внесите в цитаты мисты
   Лефмихалыч
 
127 - 01.03.17 - 15:29
(126) готово
   uno-group
 
128 - 01.03.17 - 15:36
ХВАТИТ. А то будет как с сороконожкой.
Это все для менеджеров в программирование.
Когда из чела далекого от программирования делают программиста. Остальные научатся плавать сами и им не надо спасательные круги чтобы не утонуть.
   Garykom
 
129 - 01.03.17 - 16:15
Короче типовые шаблоны/паттерны это для тех, кто не умеет применять алгоритмы и придумывать/изобретать собственные решения.

Разделение идет еще в школе, когда одним скучно решать задачки а другие вызубрили как решать подобную задачу и все.
   lock19
 
130 - 01.03.17 - 16:40
(75) Представь несколько yield во вложенных циклах/условиях. Там нехилый конечный автомат рисовать придётся.
(94) А от генератора до корутины - рукой подать.
   Вафель
 
131 - 01.03.17 - 16:49
(129) Ты себя конечно к умным относишь?
   Asmody
 
Ведущий
132 - 01.03.17 - 17:08
(126) аж 2 раза!
   Garykom
 
133 - 01.03.17 - 17:11
(131) К быстрообучаемым, ум это немного другое, у меня просто высокая скорость освоения новой информации, как и забывания ненужной.
 
  Рекламное место пустует
   Вафель
 
134 - 01.03.17 - 17:23
(133) я печатаю со скоростью 600 знаков в минуту. правда ерунда такая получается (с) анекдот
   Torquader
 
135 - 02.03.17 - 02:09
Чем вам yeild не сдался ?
Просто, если подходить к вопросу - есть некоторые данные Data и есть функция, которая выбирает следующий блок этих данных:
GetNext(Data,PrevValue) и всё.
Просто, некоторые программисты сразу не могут понять как это реализовать - вот им и придумали всякие упрощения.
   lock19
 
136 - 02.03.17 - 06:56
а
value = yield foo()
куда?
   Naf2017
 
137 - 02.03.17 - 08:52
(135) понятно, что и ООП реализуемо через процедурный стиль, но удобно же
(136)это что за набор букв?
   lock19
 
138 - 02.03.17 - 09:04
(137) Вполне себе валидный набор букв, если обсуждение не ограничивать ущербностями C#.
   Лефмихалыч
 
139 - 02.03.17 - 09:36
(132) ну, цитата атомная, она того стоит.
   oleg_km
 
141 - 02.03.17 - 09:47
(113) Только местами недоделанная. Например на форме обработчики изменения элемента срабатывают только если сделаны интерактивно, а если я поменял в коде, то сам должен их дернуть. тогда как например в фокспре when и valid дергались независимо каким способом изменяется элемент. И так во многих местах у 1С как-то недоделано. Зато географические схемы, встроенные скипе. А элементарно сделать захват объектов конкретной подсистемы - это не барское дело.
   spock
 
142 - 02.03.17 - 09:50
(136) Мы не поняли этого лаконичного примера. Можно раскрыть мысль что-куда?
   Oftan_Idy
 
143 - 02.03.17 - 09:55
(0) Пиши код, блеять!
   lock19
 
144 - 02.03.17 - 09:58
(142) Я же у вас не спрашиваю о тонкостях работы с async/await в C#? Когда состоялся сходняк банды ни диезов ни питонов в проекте не было.
   spock
 
145 - 02.03.17 - 10:05
(144) Нет, не спрашиваешь. Я и не собирался выступать наставником.
В (142) спрашивал я.
   lock19
 
146 - 02.03.17 - 10:12
   spock
 
147 - 02.03.17 - 10:15
(146) Ага-ага, спрошу еще раз.
В (136) приведен код с вопросом "куда?".
К чему этот код был приведен и что подразумевалось под "куда?"?
   lock19
 
148 - 02.03.17 - 10:20
(147) Генератор, который получает, а не только отдаёт, наверное больше чем просто генератор. То есть "куда/к чему отнести подобную конструкцию".
   spock
 
149 - 02.03.17 - 10:25
(148) Понятно. Тонкий намек на корутины?
Но этот код не тянет на полноценный намёк - нет декларации foo() и соответствующего декоратора.
 
  Рекламное место пустует
   lock19
 
150 - 02.03.17 - 10:33
(149) Для выраженной мысли достаточно примера с yield в rvalue.
   omgwtf
 
151 - 02.03.17 - 10:36
подскажите нюфагу, где прочитать "цитаты мисты"? Очень уж (113) понравилось, вдруг так много интересного еще есть
   Вафель
 
152 - 02.03.17 - 10:37
(151) https://yandex.ru/search/?text=цитаты cite%3Amista.ru
   Asmody
 
Ведущий
153 - 02.03.17 - 10:45
   lock19
 
154 - 02.03.17 - 12:16
(149) http://pastebin.com/HKfXerYb - Тут тебе декораторов хватает?

  1  2

Список тем форума
Рекламное место пустует   Рекламное место пустует
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует