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

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

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

После поверхностного изучения и применения на практике тех же "синглтонов" и "наблюдателей", как у тупого 1сника возникло смутное ощущение, что паттерны проектирования это просто средство в плохо проектированной среде не потерять концы. Может это конечно и обусловлено тем, что сложность всей программы в отличие от 1с взлетает  шопц с каждой строчкой, но привкус ненатуральности остается. Вы как считаете?
1 Mort
 
01.03.17
03:37
Забыл вставить, вот эта книга:

http://www.ozon.ru/context/detail/id/2457392/
2 Неверный Параметр И
 
01.03.17
03:50
Старая песня про то, что 1Сник не сталкивается с типовыми проблемами проектирования большого мира, поэтому архитектурные шаблоны вызывают у него оторопь, а все непонятное объявляется искусственным и ненатуральным.
Там не "программа сложная", а мироздание другое. Jedem das Seine, чо.
3 Курцвейл
 
01.03.17
05:30
(0) Изучал ООП. Про этих четырех не слышал.
4 Курцвейл
 
01.03.17
05:31
Хорошие спецы рекомендуют вот это - https://www.ozon.ru/person/253847/?group=div_book
5 Курцвейл
 
01.03.17
05:31
6 Курцвейл
 
01.03.17
05:32
Кажется понял - речь о фабрике, патернах и прочей шелупони ООП.
7 ILM
 
гуру
01.03.17
06:22
Это скорее всего кирпичи или блоки. Решаешь задачу, взял нужные паттерны набросал в них свой код получил меньший г-код, чем получил бы без них.
8 Dmitry1c
 
01.03.17
07:03
(0) GOF - это не для 1Це.
9 NorthWind
 
01.03.17
07:15
(0) Интересовался еще году в 2000. Познавательно. При работе в C++Builder пользовался.
10 Shur1cIT
 
01.03.17
07:58
Мне понравилась http://www.ozon.ru/context/detail/id/31079082/ достаточно простым не напряжным языком объясняют, более глубоко для меня не надо
11 Asmody
 
01.03.17
08:04
Вечно одинесники ноют, что они "жизнью обиженные". На самом деле, многие паттерны уже реализованы в платформе.
12 1Снеговик
 
гуру
01.03.17
08:13
Вы о чем вообще? Опять заставляете чувствовать натуральных 1с-ников себя тупыми)
13 1dvd
 
01.03.17
08:19
Не толерантно напоминать одинеснекам, что они тупые. Это оскорбляет их чувства
14 lock19
 
01.03.17
08:19
При вдумчивом проектировании следование устоявшимся паттернам выходит само собой и можно даже ничего не знать ни о каких бандах паттернов.
15 Это_mike
 
01.03.17
08:29
(13) (12)
Теорема Бородатой Женщины -Соболя:
Все одинэсники тупые
--
Теорема БЖС в редакции Рупора:
Все одинэсники тупые, в особенности те, кто считает себя умными, ибо сим лишь подтверждают свою тупость, равно и те, кто знают что они тупые, ибо думают, что раз они знают, что они тупые - на самом деле они умные, тем самым подтверждая свою тупость ...
--
Дополнение к теореме БЖС Октябрьского Молота:
если одинэсник в качестве критерия тупости-ума начинает мерять свою... простите... зарплату, то он считается еще и неудачником... Вообще, любой одинэсник, который задается вопросом - тупой он или умный - тупой.
--
Доказательство теоремы БЖС (© Абырвалг):
1Сник = РТФМ+Т1С
РТФМ = ПНХ+[:|||:]
Т1С=LOL
1Сник = LOL+ПНХ+[:|||:]

LOL = тупой смех
ПНХ = пошел ты, тупой

[:|||:] = ну сколько можно, тупой
1Сник = тупой смех+ пошел ты, тупой+ну сколько можно, тупой
1Сник = тупой(смех+ ну сколько можно + пошел ты)
16 NorthWind
 
01.03.17
08:30
(14) в принципе да, но знать хотя бы простейшие типа одиночки или фабрики классов вреда не будет
17 Shur1cIT
 
01.03.17
08:34
(14) "вдумчивое проектирование" - это процесс озобретания велосипеда, зачем это делать когда уже за тебя всё придумали,лучше силы и время непосредственно на разработку потратить плюс остальным разработчикам будет понятно когда скажешь им тут задействован например такой то патерн и не придеться ломать голову что тут вообще такое.
18 lock19
 
01.03.17
08:37
(16) Можно просто читать чужой хороший код - там всё будет.
19 Shur1cIT
 
01.03.17
08:44
(18) даже нужно, но после того как прочитаешь про используемый патерн, просто разглядывая код не понимая для чего  не поймешь зачем тут столько абстрактных классов в цепочке или интерфейсов почему они так переплетены.
20 ILM
 
гуру
01.03.17
08:45
Ветка  какая-то совсем не толерантная выходит0)) Я не вижу разницы или плюсов в GOF и С++ по  сравнению с 1С. За что деньги платят, с тем и работаем...
Ну не буду я синглетон или фабрику на 1С делать, а печатную форму для УПП на С++.

Каждый сверчок, знай свой шесток.
21 Лефмихалыч
 
01.03.17
08:48
(0) Паттерны - это средство не изобретать заново решения типовых задач. У 1сников паттерны тоже есть, только ни гораздо более высокоуровневые и их ни кому не пришло в голову систематизировать
22 lock19
 
01.03.17
08:55
(19) Код разглядывают имея целью разобраться в его работе чтобы модифицировать, или позаимствовать. Естественно возникают вопросы почему сделано именно так.
https://taskinoor.wordpress.com/2011/09/21/the-abuse-of-design-patterns-in-writing-a-hello-world-program/
23 DmitrO
 
01.03.17
09:02
(21) точна! :)

Главный паттерн 1сников - никогда не изменяй типовую конфигурацию.

Главный паттерн TRUE 1сников - никогда не используй типовую конфигурацию.
24 Лефмихалыч
 
01.03.17
09:05
(22) по-русски это можно выразить просто: "с дури можно и хрен сломать".
В программировании нельзя слепо применять какой-то один подход ко всему. Всегда нужно чувствовать грань между адекватным решением и оверинженирингом. Наличием такого чувства профессиональный программист от копрокодера и отличается (в том числе - не только этим).
25 lock19
 
01.03.17
09:14
(24) "Питер Норвиг утверждает, что 16 из 23 шаблонов, описанных в книге «Банды Четверых», в динамически-типизируемых языках реализуются существенно проще, чем в С++, либо оказываются незаметны. Пол Грэхэм считает саму идею шаблонов проектирования — антипаттерном, сигналом о том, что система не обладает достаточным уровнем абстракции, и необходима её тщательная переработка. Нетрудно видеть, что само определение шаблона как «готового решения, но не прямого обращения к библиотеке» по сути означает отказ от повторного использования в пользу дублирования. Это, очевидно, может быть неизбежным для сложных систем при использовании языков, не поддерживающих комбинаторы и полиморфизм типов, и это в принципе может быть исключено в языках, обладающих свойством гомоиконничности (хотя и не обязательно эффективно), так как любой шаблон может быть реализован в виде исполнимого кода"
26 kyvv
 
01.03.17
09:15
Кто может посоветовать книгу по 1С, написанную для программистов, а не для гуманитариев
27 lock19
 
01.03.17
09:15
(26) Кем она написана имеет значение? )
28 Лефмихалыч
 
01.03.17
09:16
(25) я не понимаю, как общаться, если ты своих слов не говоришь
29 kyvv
 
01.03.17
09:17
(27)Нет.
30 Лефмихалыч
 
01.03.17
09:17
(26) профессиональная разработка, которая теперь уже в двух или трех томах. У гумманитариев от нее мозг выкипает
31 kyvv
 
01.03.17
09:19
(30)Терминология там не совсем программистская.
32 lock19
 
01.03.17
09:20
(28) До сих пор говорил своими словами.
Паттерны применять можно, а умеренно и с умом - нужно.
33 FIXXXL
 
01.03.17
09:21
(21) а БСП это паттерны?
34 Лефмихалыч
 
01.03.17
09:22
(31) я не понимаю, чего ты хочешь. Что там не так с терминологией?
37 Лефмихалыч
 
01.03.17
09:22
(32) а, ну, вот так лучше, теперь я тебя понимаю.
38 Бледно Золотистый
 
01.03.17
09:22
(26) Эта книга - СП.
39 kyvv
 
01.03.17
09:24
(33)Там могут применяться паттерны, ИМХО.
40 Kyon8
 
01.03.17
09:24
Вообще 1С-ники ежедневно используют паттерн от "банды четырёх" Iterator, когда пишут цикл
Для Каждого ... Из ... Цикл

А так очень низкоуровневая и малополезная тема в плане 1С.

В плане литературы по программированию (не по паттернам) мне понравилась книга "Совершенный код" Макконела, многое к 1С применимо (и есть краткий обзор этих самых паттернов).
41 Лефмихалыч
 
01.03.17
09:24
(33) нет. БСП - это фрэймворк
42 Лефмихалыч
 
01.03.17
09:25
(40) нет, это просто цикл. А вот те, кто написал объекты платформы, которые можно в этот цикл пихать, вот они использовали паттерн iterator
43 Лефмихалыч
 
01.03.17
09:26
(40) у 1Сников паттерны тоже есть, но они гораздо более высокоуровневые. Например "партионное списание" или "срез последних на каждую дату"
44 Kyon8
 
01.03.17
09:29
(42) << нет, это просто цикл
Это обход коллекции с помощью итератора, т.е. использование реализованного в платворме паттерна.
45 Fish
 
01.03.17
09:32
(0) "И среди них есть некие кто называются "банда четырех"" - Кто эти люди, и зачем о них знать?
46 kyvv
 
01.03.17
09:36
(45) Для внедренцев-сопровожденцев о них знать вредно, будешь чувствовать себя сам знаешь кем.
47 Naf2017
 
01.03.17
09:37
48 trdm
 
01.03.17
09:37
(12) > Опять заставляете чувствовать натуральных 1с-ников себя тупыми)

Невежество - не порок.
Неприятно становится, если мнишь себя всезнайкой, а тут облом.
49 Naf2017
 
01.03.17
09:39
50 Fish
 
01.03.17
09:46
(46) Я не про содержание, а конкретно про авторов. Что они совершили такого, что заслужили звания "богов"? Придумали новый ЯП? Совершили некий прорыв? Или тупо очередной систематизировали (как и многие до них) некие стандартные приёмы, известные и без них?
51 Лефмихалыч
 
01.03.17
09:52
(50) да, они придумали язык проектирования и этим совершили некий прорыв. А вот паттерны - это как раз систематизация.
Другое дело, что все эти концепции немножечко слишком сложны для обычных человеческих мозгов и прорыв получился сильно академический и в обычных полях до сих пор процветают велосипед и костыли.
52 PCcomCat
 
01.03.17
09:57
(50) Эти "боги" просто в отличие от остальных еще умеют описать приемы буковками, о которых и другие знают, не не умеют рассказывать. Как-то так... ;)
53 kyvv
 
01.03.17
10:03
(34)Если бы все было так, то не было бы (40...44). Ну как пример: объекты конфигурации и объекты базы данных, их связь с классами, и есть ли в 1С классы как класс.
54 Asmody
 
01.03.17
10:09
(42) (44) Выборка данных из результата запроса — в чистом виде итератор.
55 Живой Ископаемый
 
01.03.17
10:11
MVC в 1С используется. Практически в каждой форме объекта.
Наблюдатель - аналогично, либо в Подписках на события(на уровне платформы), либо через Обработчик ожидания для формы (есть во многих последних типовых).
56 Лефмихалыч
 
01.03.17
10:16
(54) но это не применение шаблонов. Говорить, что это есть применение шаблонов, это все равно, что говорить, что шаблоны проектирования применяет пользователь, который тыкает кнопку, по которой вызывается цикл "для каждого". Это ж ересь.

Тем более, что наличие поведения у объекта не говорит о том, что при его разработке были применены шаблоны - может автор изобрел велосипед сам, ни чего не зная про шаблоны проектирования.
57 kyvv
 
01.03.17
10:25
(56) Автор может "изобретать" велосипед, на шаблон это не влияет, шаблоны описаны до него. А вот сам велосипед может следовать неким шаблонам или нет. Если нет, то тогда можно говорить об изобретении.
58 Живой Ископаемый
 
01.03.17
10:28
А, делегирование в 1С постоянно используется. Во внешних печатных формах, в формах подбора.
59 kyvv
 
01.03.17
10:29
(57)+ Тыканье в кнопку - тоже шаблон, но к паттернам банды не имеющий никакого отношения.(ИМХО)
60 kyvv
 
01.03.17
10:38
Кстати, среди авторов упоминавшегося выше двухтомника нет ни одного профессионального программиста. Подход 1С в обучении хорош для гуманитариев, для технарей можно было бы поглубже копнуть. Профессиональные программисты могут, конечно, и сами разобраться, но их среди одинесников не так уж и много.
61 Лефмихалыч
 
01.03.17
10:49
а здесь, я вижу, много кто не понимает разницу меду

[применять шаблоны проектирования при разработке программ]
и
[использовать код, при разработке которого применялись шаблоны проектирования]
62 Naf2017
 
01.03.17
10:50
(54) кстати об итераторе:

"Особенностью полноценно реализованного итератора является то, что код, использующий итератор, может ничего не знать о типе итерируемого агрегата."

в 1С это не совсем так с выборками, сравним:

//итерируем по таблице значений
// или табличной части
// или массиву структур
//нам все равно
Для каждого Стр из Нечто Цикл
  А = Стр.Чтото;
КонецЦикла;

//какой-то другой интерфейс итератора выборок
//но почему?
Пока Выборка.Следующий() Цикл

А = Выборка.Количество();
//что? итератор обладает интерфейсом коллекции?
63 Mort
 
01.03.17
11:02
Кстати в БСП используется, например, "наблюдатель". Подсистемы "сами" подписываются на события, которые происходят при старте системы.
64 Жан Пердежон
 
01.03.17
11:03
(62) потому что это фрагмент ADO переведенный на русский.
65 Лефмихалыч
 
01.03.17
11:05
(63) 1С - предметно-ориентированная платформа разработки. Большинство шаблонов проектирования, о которых речь в топике, для нее не имеют смысла, т.к. у них уровень абстракции существенно ниже, чем у платформы. Но у нее есть свои. Ни кто просто не дал себе труда их систематизировать.
66 Mort
 
01.03.17
11:17
(65) Языки низкого уровня это такие языки, где нужно уделять много внимания вещам, никак не связанным с программами на этом языке. (не помню кто сказал) вот я и думаю шо все эти шаблоны как подпорки на более высокий уровень.

(54) По поводу итераторов, недавеча ознакомился с адской конструкцией C# "iEnumerator - yield". Может для гуру всяких замыканий и т.д. выглядело просто, но для 1сника было сначала сложно въехать, таки с разрывами шоблонов. А потом уже привычно стало. Советую кто не в курсе для разминки мозга изучить.
67 Вафель
 
01.03.17
11:19
(66) на js тоже есть
68 Это_mike
 
01.03.17
11:23
(66) "с разрывами паттернов"? :-)
69 Живой Ископаемый
 
01.03.17
11:48
iyeld это типа async/await?
или росто async?
реализуется в 1С через запуск на сервере фонового задания и ожидания его завершения через обработчик ожидания. В рамках одного клиента вроде бы не реализовать никак (разве что запускать паралельно другой клиент)
70 Вафель
 
01.03.17
11:49
yield - это выход из процедуры, а птом продолжение с того же места откуда выщел. например с середины цикла
71 Живой Ископаемый
 
01.03.17
11:52
аа..
72 Господин ПЖ
 
01.03.17
11:53
(0) хавно все это...

пусть софт покажут реальный где есть что-то за пределами синглетона и фабрики

надутие щек
73 Живой Ископаемый
 
01.03.17
11:54
2(70) но ведь это кал коней! Этож очень фигово читается и поддерживается... Как-то человечней нельзя разве реализовать?
74 Вафель
 
01.03.17
11:55
(73) наоборот.
Например у тебя есть цикл обхода перестановок.
Попробуй-ка с срередины в него зайди
75 Garykom
 
гуру
01.03.17
11:55
yield - это бесполезная хре которая ничего кроме немного уменьшения текста кода не делает полезного.

Можно прекрасно обходится или объединив цикл по итератору с его вычислением внутри или передавая-возвращая нужные параметры для продолжения вычисления "следующего значения"
76 Вафель
 
01.03.17
11:56
читабельность кода повышается многократно. нет этих лишних вычислений по ноужным параметрам чтобы попасть в нужную точку входа
77 Garykom
 
гуру
01.03.17
11:56
(75)+ ибо какая разница передавать туда-сюда параметры или неявно сохранять их где то для продолжения цикла/процедуры
78 Garykom
 
гуру
01.03.17
11:57
(76) дада, ну давай покажи класс с 2-3 "елдами"
79 Вафель
 
01.03.17
11:57
(77)ты и замыкания считаешь бесполезной хренью?
80 Mort
 
01.03.17
11:59
yield очень распростанён в геймдеве, где нужно какой-нибудь длительный процесс (например, подгрузка объектов сцены) распределить по кадрам так шоб незаметно было и без присяда до 0.1 fps.
81 Garykom
 
гуру
01.03.17
12:00
(79) Замыкания как и делегаты это немного из другой оперы, на js все функции замыкания и это прикольно ))
82 Garykom
 
гуру
01.03.17
12:01
(80) Эээ а разве для этого не используют классику с несколькими потоками и семафорами?

Или это для тех кто многопоточное программирование не освоил да?
83 Живой Ископаемый
 
01.03.17
12:05
2(82) Ну вот мне тоже кажется что просто асинхронного выполнения кода должно хватить. Но наверное есть какие-то задачи, где и такая штука тоже удобная. Но я манал ее в 1С использовать.
Тем более что многопоточность. Ну вот как ее реализовать в рамках одного сеанса на 1С? В мобильном приложении можно?
84 Лефмихалыч
 
01.03.17
12:06
(70) это просто очень дорогой и сложный способ реализации goto
85 Вафель
 
01.03.17
12:07
(84) как оно внутри работает не важно
86 Господин ПЖ
 
01.03.17
12:07
>Тем более что многопоточность. Ну вот как ее реализовать в рамках одного сеанса на 1С?

фоновыми задачами
87 kyvv
 
01.03.17
12:08
Как работает yield от программистов https://habrahabr.ru/post/132554/
88 Живой Ископаемый
 
01.03.17
12:08
2(86) фоновая задача она ж в рамках другого сеанса выполняется, на сервере. Или нет?
89 Naf2017
 
01.03.17
12:11
yield вообще-то для ленивого возврата коллекций
90 Вафель
 
01.03.17
12:15
(89) можешь пример написать?
91 Naf2017
 
01.03.17
12:21
(90)

using System;
using System.Collections.Generic;

public class Test
{
    public static void Main()
    {
        foreach (var x in Range(5,10)) {
            Console.WriteLine(x);
        }
    }
    
    public static IEnumerable<int> Range(int a, int b)
    {
        for(int i=a; i<=b; ++i) {
            yield return i;
        }
    }
}
92 Вафель
 
01.03.17
12:22
(91) а где тут возврат коллекции?
93 Вафель
 
01.03.17
12:23
аа, range же это коллекция
94 Garykom
 
гуру
01.03.17
12:35
(93) генератор а не коллекция как бы
95 Вафель
 
01.03.17
12:38
(94) IEnumerable is the base interface for all non-generic collections
(c) MSDN
96 Garykom
 
гуру
01.03.17
12:41
97 Garykom
 
гуру
01.03.17
12:42
"виртуальная коллекция" = генератор
98 Вафель
 
01.03.17
12:43
(97) Это и есть ленивый возврат коллекции
99 Garykom
 
гуру
01.03.17
12:46
(98) Да млин, никакая "коллекция" никуда не возвращается!
Фактически запомнили в памяти состояние стека выполнения процедуры и вернули промежуточное значение из генератора.

Затем при следующем вызове (попытке прочитать следующее значение из "виртуальной коллекции" по итератору) вычисляется (по запомненному состоянию процедуры) еще одно значение и снова возвращается и т.д.
100 Garykom
 
гуру
01.03.17
12:47
100
101 Вафель
 
01.03.17
12:47
(99) слово "ленивый" тебе ни о чем не говорит?
102 Вафель
 
01.03.17
12:47
те каждый элемент коллекции появляется тоько тогда когда потребуется
103 Garykom
 
гуру
01.03.17
12:51
(102) Термин "ленивый" обычно относится к загрузке данных а не к вычислению.
Но да может и так, но тут имхо не ленивое а кормление завтраками, когда:
- у тя уже готово?
- да доделываю уже! (на самом деле даже не начинал)
104 Вафель
 
01.03.17
12:54
(103) чем чтение кардинально отличается от вычисления?
105 Волшебник
 
модератор
01.03.17
12:56
Что вы тут курите? Отсыпьте
106 Провинциальный 1сник
 
01.03.17
13:01
(62) Используй вместо выборки выгрузку - и паттерн не сломается
107 Naf2017
 
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(); //вот теперь есть!
108 Garykom
 
гуру
01.03.17
13:01
(104) При "ленивом чтении" коллекция уже есть тока в другом месте, при "ленивом вычислении" где коллекция?
109 Naf2017
 
01.03.17
13:02
(106) выгрузка не "ленива" и жрет память
110 organizm
 
01.03.17
13:38
(105) не мешай мальчик
111 Mort
 
01.03.17
13:46
(103) Как раз в этом и прикол, что можно не возвращать всю коллекцию а только следующий элемент. Т.е. например, можно реализовать бесконечную выборку чисел фибоначчи, а когда остановиться клиент решает.
112 Живой Ископаемый
 
01.03.17
13:58
2(111) ok, а теперь давайте подумаем. Имея какое либо число фибоначчи, мы сможем получить следующее?
Если да, то зачем обязательно делать именно так?
У нас есть функция, которая получает следующее число, относительно текущего. у нас есть коллекция, которая наполнена всеми числами до текущего.
Мы инициируем получение следующего, добавляем в коллекцию, опрашиваем пользователя на предмет останова. Если не получаем сигнала, получаем следующее и т.п.
Почему обязательно йилды? В чем абстракци, переиспользование или другие выгоды?
113 orefkov
 
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С почему-то не любят, да...
115 Naf2017
 
01.03.17
14:19
(112) вы коллекцию храните, а это затратно
к тому же при ленивом вычислении условия могут измениться и вы получите другую коллекцию
116 Asmody
 
01.03.17
14:21
(113) Будьте добры, помедленнее, я записыуаю!
117 Fish
 
01.03.17
14:23
(113) Хорошо сказал. :))
118 Живой Ископаемый
 
01.03.17
14:23
2(115) Ладно, буй с ним, я пока все равно не постигаю зачем нужно уметь получать эффемрную коллекцию, которая как бы и не коллекция.


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

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

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