Программистское
Под катом много мата. Накипело.
Лектор по психологии труда - эдакий старичок-профессор толкует (цитирую по памяти): "концепция индивидуального стиля деятельности заключается в том, что каждый индивид достигает максимальной производительности, если имеет свободу варьировать трудовую деятельность под свой темперамент и индивидуальные черты характера. Например, ткачиха-холерик быстро бегает от станка к станку, ткачиха-флегматик двигается медленнее, но более рассчетливо, в результате обе достигают высокой произволительности. Чего бы не было, если бы они пытались подражать друг другу."
Я это к чему. У нас, в программировании, в последние годы, куда ни плюнь - в очередной пиздоблядский злоебучий стандарт попадешь. Жопу почесать нельзя без того, чтобы не вляпаться в очередной RPC, блядь. И как же они заебали этой модой на тотальную стандартизацию, чтобы пизду им только во сне видеть.
Паттерны, блядь, придумали. Напишут два слва, придумают название по-красивше и, сидят довольные, как кусок говна на люстре, вовсю свою писульку рекламируют, хуем помахивая. И ведь, в чем пиздопроебина ниже ватерлинии: особливо любят на паттерны дрочить всякие гандоны, которые какой-нить двоичный поиск за неделю не напишут. Даже у нас на работе на что публика сурьезная - и то нет-нет да про это дело упомянет... А уж в инете жЫвотных от прораммирования - как блядей в кутузке после рейда озабоченных ментов...
Лектор по психологии труда - эдакий старичок-профессор толкует (цитирую по памяти): "концепция индивидуального стиля деятельности заключается в том, что каждый индивид достигает максимальной производительности, если имеет свободу варьировать трудовую деятельность под свой темперамент и индивидуальные черты характера. Например, ткачиха-холерик быстро бегает от станка к станку, ткачиха-флегматик двигается медленнее, но более рассчетливо, в результате обе достигают высокой произволительности. Чего бы не было, если бы они пытались подражать друг другу."
Я это к чему. У нас, в программировании, в последние годы, куда ни плюнь - в очередной пиздоблядский злоебучий стандарт попадешь. Жопу почесать нельзя без того, чтобы не вляпаться в очередной RPC, блядь. И как же они заебали этой модой на тотальную стандартизацию, чтобы пизду им только во сне видеть.
Паттерны, блядь, придумали. Напишут два слва, придумают название по-красивше и, сидят довольные, как кусок говна на люстре, вовсю свою писульку рекламируют, хуем помахивая. И ведь, в чем пиздопроебина ниже ватерлинии: особливо любят на паттерны дрочить всякие гандоны, которые какой-нить двоичный поиск за неделю не напишут. Даже у нас на работе на что публика сурьезная - и то нет-нет да про это дело упомянет... А уж в инете жЫвотных от прораммирования - как блядей в кутузке после рейда озабоченных ментов...
no subject
[ Во-1ых не закрыты конструктор копирования, деструктор и оператор присваивания. ]
Конструктор закрыт
[ Во-2ых никак не определён порядок уничтожения синглтона. ]
Вот потому то деструктор вообще не написан - его реализация зависит от конкретного случая. Если надо, чтобы уничтожался он овнером, то одно, если по счетчику ссылок - другое и т.п. Аналогично с конструктором присваивания.
[ потому что вы забыли выполнить присваивание в getInstance().]
А что в коде, составленному после чтения болтовни по паттернам, я бы ни в коем случае не опачатался бы? :) Так же точно опечатался бы - уж такая работа, что опечатки считаются в порядке вещей.
[ В-4ых - а почему именно так? ]
А почему не так? Работает - и ладно.
[ Ведь можно вместо проверки указателя на null использовать статические переменные -- или класса, или функции. ]
Можно. Можно вообще написать еще 10 вспомогательных классов и красивенькую иерархию в розе нарисовать :) Но это если платят за строки, а не за сроки :)
[ А что начинает твориться, когда есть несколько зависимых синглтонов... ]
А что начинает твориться? :)
Вы так и не ответили на мой вопрос. Вот ввели понятие "синглтон", описали. КАК это помогает производственному процессу? Вы сказали про грабли - на КАКИЕ грабли мешает наступать и почему?
[ Наоборот, во вступлении прямым текстом пишут, что это не так. ]
Ну и зачем новые названия для старых понятий? Что дают новые слова??
no subject
Только обычный, а не копирования.
> Вот потому то деструктор вообще не написан - его реализация зависит от
> конкретного случая. Если надо, чтобы уничтожался он овнером, то одно,
> если по счетчику ссылок - другое и т.п. Аналогично с конструктором
> присваивания.
Конкретных случаев не так уж и много. И вполне полезно их рассмотреть в одном месте во избежание различных граблей. У тех же Влислидеса и Александреску примеров таких граблей именно для синглетона приведено немало.
> А что в коде, составленному после чтения болтовни по паттернам, я бы ни
> в коем случае не опачатался бы? :)
Да стебусь я слегка :)
> А почему не так? Работает - и ладно.
Именно, что работает. А остальные варианты работают далеко не всегда. И если бы я в своё время не прочитал подробного разбора синглетона как шаблона, то непременно бы реализовал бы его на статическом члене класса. Тем более, что строк там меньше.
> А что начинает твориться? :)
Начинает играть неопределённый порядок уничтожения объектов. Сам на такое натыкался, очень неприятный баг.
> Вы так и не ответили на мой вопрос. Вот ввели понятие "синглтон",
> описали. КАК это помогает производственному процессу? Вы сказали про
> грабли - на КАКИЕ грабли мешает наступать и почему?
1. Словарная функция.
2. Грабли у Александреску и Влислидеса, делать конспект у меня охоты нет, уж извините :)
3. Опыт накапливается. Не нравится вам какой-то шаблон -- не используйте. Мне вон Visitor не нравится, так я без него и обхожусь.
> Ну и зачем новые названия для старых понятий? Что дают новые слова??
А зачем математики определения вводят? Вон Ньютон уже вполне спокойно оперировал пределами и производными. Хотя определения появились сильно позже. По вашей логике надо было просто тщательно курить "Флюкции и флюенты", а не страдать чепухой с формальными определениями.
no subject
А зачем? Защита - не самоцель, при остром желании в одном месте можно ведь и memcpy поюзать.
[ У тех же Влислидеса и Александреску примеров таких граблей именно для синглетона приведено немало. ]
И как ПАТТЕРН позволяет грабли обойти? Пример?
[ И если бы я в своё время не прочитал подробного разбора синглетона как шаблона, то непременно бы реализовал бы его на статическом члене класса. Тем более, что строк там меньше. ]
Объясняй, давай, в чем бонус.
[ Начинает играть неопределённый порядок уничтожения объектов. Сам на такое натыкался, очень неприятный баг. ]
При чем тут паттерн?
[ 1. Словарная функция. ]
И только :)
[ 2. Грабли у Александреску и Влислидеса, делать конспект у меня охоты нет, уж извините :) ]
Хоть 1 пример граблей с пояснениями, почему именно ПАТТЕРН от именно этих граблей спасает.
Ошибки разные можно годами описывать - было бы желание :)
[ А зачем математики определения вводят? ]
Затем же, зачем программеры вводят функции - чтобы диповать информацию, обозначить часто встерчающуюся комбинацию слов одним словом.
no subject
no subject
no subject
Не паттерн, а книжка про паттерны. В ней есть комментарии: вот здесь такие-то грабли, не наступите, типовые способы их обхода такие:...
> Объясняй, давай, в чем бонус.
А может, ты сам Александреску почитаешь?
no subject
may be там про те грабли, которые давно знакомы...
no subject
Так вот, для многих из этих задач синглтон как глобальная статическая переменная непригоден. Это и есть грабли.
no subject
[ Высший пилотаж - это задавать отношения между синглтонами ]
Ну если это высший пилотаж, старое поколение программистов может спать спокойно, не изучая паттерны :)
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject