Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Паттерны или фи.... (http://www.flasher.ru/forum/showthread.php?t=171575)

in4core 19.11.2011 02:51

Паттерны или фи....
 
Вопрос скорее риторический, флеймовый ( если нужно перенести в соотв раздел ). Заметил посл время задают вопросы про паттерны, примером может служить топик про паттерн фабрика и т.п.
Допустим я - читал книги про паттерны, знаю как они выглядят, и т.д. - но полноценно ими не пользуюсь, а тем более обдуманно. Что это значит - к примеру, пишу я реализацию проекта, не важно какого... изначально я продумываю стратегию поректа, но не вдумываюсь, каким из паттернов я пользуюсь, почему именно этим и т.д. В итоге я пишу проект - и только потом, могу рассуждать на тему, ОГО тут я юзал фабрику, а тут стратегию, а тут... Толку в этом я не вижу, - знание хорошо - знать и понимать это только + , но в 90% никто целенапрвленно ничего не использует. - пишут и пишут.
Хм... имхо могу ошибаться, конечно, но думаю так оно и есть.
P.s. простите за пьяный разброд и шатания

carrotoff 19.11.2011 11:21

Цитата:

пишут и пишут.
А вы знакомы с этапом проектирования?

Aquahawk 19.11.2011 11:31

Потому флеш и ненавидят, когда баннер с анимацией весь проц сожрал. Если, как вы в статье написали принимать * а потом кастовать к интерфейсу, то понятно что жопа будет. Шаблон нужен чтобы всё было однотипно, и включая в проект нового прогера можно было в трёх словах описать архитектуру модуля над которым он работает. Ну и для удобства конечно тоже.

willis83 19.11.2011 14:35

carrotoff, наверное фраза "изначально я продумываю стратегию поректа" является ответом на ваш вопрос.

Конкретного вопроса топикстартер так и не задал, но думаю имеллось ввиду то, что все эти паттерны это узконаправленные решения. Я тоже перечитал не одну реализацию, но когда думаешь о том, что тебе надо написать, структура приложения сама вырисовывается в голове на основе имеющихся знаний. Если делать всё по одному паттерну, то некоторые приложения будут раза в 3 больше нежели когда их писали руководствуясь рационализмом.

in4core 19.11.2011 14:52

willis83 - понял меня в точности, как я и хотел передать

Bgg 19.11.2011 15:05

Цитата:

Сообщение от willis83 (Сообщение 1047039)
Я тоже перечитал не одну реализацию, но когда думаешь о том, что тебе надо написать, структура приложения сама вырисовывается в голове на основе имеющихся знаний.

А вы не думали что дядьки которые придумывали паттерны имеют гораздо больше знаний и опыта чем вы в несколько раз? И архитектура на основе их паттернов будет лучше вашей в несколько раз? Лучше в смысле масштабируемости, простоты, понятности и тд.

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

in4core 19.11.2011 15:21

Цитата:

И да, если вы пишите код один, то пишите как хотите. Но если вы пишите командой, или пишите код которым будут пользоватся другие люди, то алгоритмы и архитектурные решения должны быть хоть немного стандартезированы, в чем и помогают паттерны.
Так это понятно - командная разработка есть командная, там ВСЕ по чуть чуть выносят вердикт, как будем писать и что юзать, в команде я пока не замечал такого, что каждый пишет так как хочет не советуясь с другими.

Inet_PC 19.11.2011 15:27

Цитата:

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

Ookami 19.11.2011 15:37

а поделитесь ссылкой на адекватную инфу по паттернам пжалста.

Psycho Tiger 19.11.2011 15:38

Цитата:

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

А вы не думали что дядьки которые придумывали паттерны имеют гораздо больше знаний и опыта чем вы в несколько раз? И архитектура на основе их паттернов будет лучше вашей в несколько раз? Лучше в смысле масштабируемости, простоты, понятности и тд.
Я не согласен с тем, что код "паттерн на паттерне" будет понятней, очевидней и более прост в поддержке. Скорее наоборот, черт ногу сломает. Я отношусь к паттернам как к рекомендациям, что неплохо было бы так сделать. Например, нужно устранить жесткую связанность с объектами: реализуем Observer (в контексте флеша - реализуем IEventDispatcher). Но вполне вероятно, что я захожу просто передать ссылку на какой-нибудь метод update, что не по паттернам, но мне это может быть удобно.

Я буду придерживаться мнения, что нужно знать паттерны как приёмы для решения типичных задач, чтобы не изобретать велосипед в коде. Однако, я всегда буду отступать от классических реализаций паттернов, если я получу от этого выигрыш. Приятней работать в хорошем и понятном коде, в котором все паттерны "не соответствуют точному описанию", чем в какой-нибудь каше, зато по всем стандартам.

Inet_PC 19.11.2011 15:41

Цитата:

Цитата: в команде я пока не замечал такого, что каждый пишет так как хочет не советуясь с другими.

Везёт. А я открывая какой-нибудь класс могу сразу сказать, чье это творчество.
Это в идеале, а на практике так и есть. Особой проблемы сказать кто написал кусок кода нет.

in4core 19.11.2011 16:14

по author например :D

ProxyGreen 19.11.2011 17:14

Цитата:

а поделитесь ссылкой на адекватную инфу по паттернам пжалста.
Сейчас как раз читаю "Приёмы объектно ориентированного проектирования. Паттерны проектирования." Э. Гамма, Р. Хелм и др. Хорошая книжка, на мой взгляд. Правда примеры кода на С++ и SmallTalk.

Цитата:

чем в какой-нибудь каше, зато по всем стандартам.
Если по стандартам писать, каша не получится имхо. Каша от того, что на документирование, поддержку и проектирование (времени||денег) вечно всем жалко.

strangedk 19.11.2011 20:01

Цитата:

Сообщение от Psycho Tiger (Сообщение 1047050)
Однако, я всегда буду отступать от классических реализаций паттернов, если я получу от этого выигрыш. Приятней работать в хорошем и понятном коде, в котором все паттерны "не соответствуют точному описанию", чем в какой-нибудь каше, зато по всем стандартам.

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

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

Поэтому я склоняюсь больше к использованию пусть менее простых решений, но за то, если эти решения подходят под общий стиль и шаблон - за это можно будет сказать спасибо.

зы. Заметьте, я говорю в данном моменте о коде, у которого есть вероятность стороннего review, или доработки другими разработчиками. Хотя и в частном случае, я бы всё равно не рекомендовал использовать какие-то чересчур хитрые конструкции.

willis83 19.11.2011 20:28

to Bgg, чё-то я не догнал краями... разве я выразил в своём предыдущем посте какое-то неуважение к паттернам? Или может оскорбил кого-то? Я не в коей мере не претендую на свою превосходность мысли над кем-то, я учусь. Да, Вы правы, я пишу сам, но это не значит что я неуч, и не достоен своего мнения на счёт паттернов. И даже программируя в одно лицо я оптимизирую свой код под общепринятые правила. Но всё же то, что я видел порой не приминимо под мои структуры. Вы пишете всё на одном паттерне? Поделитесь опытом, если вы такой защитник стандартов!

carrotoff 19.11.2011 22:06

Код AS3:

Вы пишете на одном паттерне?

Можно яснее, мне интересно.

willis83 19.11.2011 22:19

Как яснее? Скажем человек придерживается паттерна MVC и пишет баннера и игры через него... или VMC и всё через него... прибавим ещё кучу паттернов к этому. Нельзя на одном паттерне написать разно жанровые приложения.

carrotoff 19.11.2011 22:27

MVC - это не паттерн, а парадигма программирования.
Model (M) - обычно паттерн Observer
View (V) - обычно паттерн Composite
Controller (C) - обычно паттерн Command

Ну это я так, для общего развития. А чем плох хороший продуманный структурированный подход? Bgg уже пытался объяснить, что паттерны - результат многолетнего опыта серьезных программистов. Или вам нравится на собственном опыте устанавливать что хорошо, а что нет. Ну раз так - никто, по-моему, и не против.

Цитата:

Как яснее?
Ну просто паттернов много, каждый решает некоторую проблему в определенной области. И что значит писать "на одном паттерне" мне не понятно.

willis83 19.11.2011 22:39

Чушь какая-то.... нигде не прописаны эти правила программирования.... и ни какая это не парадигма... это элюзия. Ваши расшифровки - абсурд. Чётких правил нет... Вы сможете переубедить меня?

carrotoff 19.11.2011 22:40

Цитата:

Вы сможете переубедить меня?
А мне это надо?:)

willis83 19.11.2011 22:40

Жаль у нас нет возможности опросить ведущих разработчиков по поводу пренадлежности к какому либо паттерну

to carrotoff, смысл тогда вступать в дискуссию? Цель - выразить свою точку зрения.

strangedk 19.11.2011 23:33

Цитата:

Сообщение от willis83 (Сообщение 1047093)
Чушь какая-то.... нигде не прописаны эти правила программирования.... и ни какая это не парадигма... это элюзия. Ваши расшифровки - абсурд. Чётких правил нет... Вы сможете переубедить меня?

Не, ну вы можете код и в одну строчку писать, четких правил же нет.

willis83 19.11.2011 23:39

to strangedk, Не охото быть козлом отпущения, вы тоже пишите всё по одному паттерну?

carorotoff, у вас всё под одним паттерном?

Котяра 20.11.2011 00:52

Паттерны помогают осмысливать архитектуру чужого кода. Я вижу в коде: PlayerView, PlayerPM, PlayerData, ChartacterFactory, CharacterWrapper (Decorator), EventBus и AbstractLinker
и я приблизительно понимаю связи и легенды объектов и классов.

Ookami 20.11.2011 01:18

Внесу свои 5 копеек. Не могу ничего сказать относительно ас3, ибо с ним я только начинаю работать. Но что касается оформления кода и вообще принципов программирования и построения структуры кода - общепринятые стандарты должны соблюдаться. Многие плюются от 1С из-за ее корявости и тупости. Я с этой сранью гадостью 7 лет проработал и могу сказать с полной уверенностью - если бы эсники-фрилансеры (да и работающие во франчах) придерживались стандартов - всем работать было бы проще. Есть у эски замечательная особенность (чуть ли не уникальная) - в любой фирме, не имеющей штатного эсника, код базы ковыряется и переписывается многократно огромным количеством разных программистов, причем каждый пишет по-своему. И в итоге приходишь, смотришь на эту кашу.... это даже кашей-то назвать сложно - так, бесформенная жижа... И вместо 15 минут тратишь на доработку 2-3 часа. Ну это крайности конечно, не всегда все так плохо, но тем не менее весьма наглядно показывает почему стоит придерживаться каких-то стандартов.

А теперь, собственно, ответ на вопрос "А зачем этого придерживаться, если я пишу код сам и никто его не увидит". Тут все очевидно - это как минимум дисциплинирует и прививает привычку писать красиво независимо от ситуации.

Сумбурно пост вышел, но суть надеюсь понятна.

strangedk 20.11.2011 03:36

Цитата:

Сообщение от willis83 (Сообщение 1047107)
to strangedk, Не охото быть козлом отпущения, вы тоже пишите всё по одному паттерну?

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

Я могу ошибаться, но кажется вы потеряли нить противоречия. Что вы доказываете исходя из этого сообщения:
Цитата:

Сообщение от willis83 (Сообщение 1047093)
Чушь какая-то.... нигде не прописаны эти правила программирования.... и ни какая это не парадигма... это элюзия. Ваши расшифровки - абсурд. Чётких правил нет... Вы сможете переубедить меня?

- звучит как отказ от существующих правил.

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

Повторю вопрос - в чем ваше противоречие?

in4core 20.11.2011 03:54

Пока, что тоже непонятно в чем идет дискуссия и кто прав, а кто виноват. Фишка в том, что большенство, если не сказать более - пишут реализацию ТАК, как им хочется, как они видят ее. И только потом - говорят ого а тут я юзал фабрику....)))) С другой стороны работая в команде и создавая ТЗ на архитектуру, можно и изначально заявить о правах реализации на некий паттерн например в каком либо куске коде, и по нему уже работать, чтобы ваши товарищи знали и думали, что вы написали под этот паттерн, значит в Доке об этом будет освещено, и им проще будет понять где оно и как.
Но еще раз повторюсь, мало кто пишет реализацию изначально задумываясь о происходящем... ( утрирую ).
Как то была статья на хабре, про уровни программеров, типа новичек пишет ересь, матерый пишет реализации вдумывается и т.д., ну а проффи пишет как новичек - потому, что ему положить на реализации, главное чтобы все работало и побыстрее и бобос тек рекой ( опять же утрирую, конечно писать он будет не как новчиек - это ясно, но запариваться МВС например в средних и простых проектах, просто не будет... ну тут еще зависит от амбициозности и уровня. скажем сделав 100-200 средних и больших проектов, далее вам уже ниче интересно особо не будет, тем более смотреть на реализацию. стареем... и хоорош )

Psycho Tiger 20.11.2011 12:32

Цитата:

Чушь какая-то.... нигде не прописаны эти правила программирования.... и ни какая это не парадигма... это элюзия. Ваши расшифровки - абсурд. Чётких правил нет... Вы сможете переубедить меня?
Он всё правильно написал. Мне кстати непонятно, где там абсурд и что Вам непонятно.

@strangedk, не в ту степь пошли, всё скорее наоборот. Паттерны призваны любое хитрожопоумное решение стандартизировать под отдельные блоки, назначение которых понятно, что в целом упрощает картину. Я против использования шаблонов, когда они предельно ясную картинку превращает в хитрожопоумное решение.

Добавлено через 15 минут
Цитата:

С другой стороны работая в команде и создавая ТЗ на архитектуру, можно и изначально заявить о правах реализации на некий паттерн например в каком либо куске коде, и по нему уже работать, чтобы ваши товарищи знали и думали, что вы написали под этот паттерн, значит в Доке об этом будет освещено, и им проще будет понять где оно и как.
Ты когда нибудь работал в команде, кстати?

in4core 20.11.2011 14:49

И работал и работаю. а что?

Wolsh 20.11.2011 15:02

Цитата:

"А зачем этого придерживаться, если я пишу код сам и никто его не увидит". Тут все очевидно - это как минимум дисциплинирует и прививает привычку писать красиво независимо от ситуации.
У Боба Мартина ответ на этот вопрос обезоруживающе прост – когда вы пишете код, вы пишите код примерно 5-10% от всего времени написания кода. Все остальное время вы читаете свою писанину – ищете определения переменных, реализации методов, классы, пытаетесь вспомнить что за что отвечает и т.д. В этом вся соль. Может быть, другие никогда и не увидят вашего кода, но сами вы будете возиться с ним не один день.
willis83, я так и не понял Вашу позицию, что за один паттерн и откуда эта странная идея про один паттерн. Паттерны призваны решать стандартные задачи, стандартные ситуации, и никоим образом не позиционируются как решения по организации ВСЕГО проекта (хотя есть и такой класс паттернов, шаблоны уровня приложения, но и они не запрещают Вам использовать "внутри" шаблоны для ситуаций).
Вообще весь этот разговор начинает напоминать баталии про интерфейсы. "Я вот тут попробовал, написал этот дурацкий интерфейс в своем проекте, и что? Без него было все просто и наглядно, а теперь интерфейсы какие-то.."
Еще раз – если вы не занимаетесь проектированием, то шаблоны вам нафиг не нужны. Не ищите, куда их приткнуть. Когда будет четко осознанная задача, шаблон сам вас найдет. Но для этого его надо знать. И изучение шаблонов – не бесполезная трата времени, оно дисциплинирует мозг и учит его думать в пространстве ООП, в котором и реализован ActionScript. Рассматривайте их как "ката" в карате, если еще не создаете больших и сложных проектов. А если уже создаете – таких вопросов просто не возникнет.

kackbip 20.11.2011 17:26

А куда же без шаблонов? Шаблоны они везде и во всем. На кухне, на работе, в отношениях... Они позволяют не выдумывать велосипед, а вместо этого быстро применить готовое архитектурное решение.

Psycho Tiger 20.11.2011 18:12

Цитата:

И работал и работаю. а что?
Можно взглянуть на
Цитата:

правах реализации на некий паттерн
?

in4core 21.11.2011 03:55

ммм. ни разу не понял вопроса, пахнет холиваром. Если есть какие то личные вопросы ТИПА можно взглянуть - пишем вличку. не?

strangedk 21.11.2011 12:28

Цитата:

Сообщение от in4core (Сообщение 1047263)
пахнет холиваром

Дык тема такой и является. Мнений-то много и большинство правильные))

Psycho Tiger 21.11.2011 20:09

Цитата:

Сообщение от in4core (Сообщение 1047263)
ммм. ни разу не понял вопроса, пахнет холиваром. Если есть какие то личные вопросы ТИПА можно взглянуть - пишем вличку. не?

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


Часовой пояс GMT +4, время: 15:35.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.