Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   Спор по поводу типизации, традиций и всего подобного (http://www.flasher.ru/forum/showthread.php?t=139965)

Furinax 18.05.2010 00:16

Цитата:

Сообщение от gldrawworld (Сообщение 908863)
вам мало того что etc заколит вас вилами за такой код ?

вилы - слабое оружие, тут нужен АК-47 либо сразу базука :cool:

gldrawworld 18.05.2010 00:56

смотря какие вилы и в чьих руках ))))) ведь можно и … )))

NoCD 18.05.2010 08:01

Цитата:

Сообщение от Zebestov (Сообщение 908766)
особенно покорило:

слово то какое придумали: "типизация", ага? именно так и представляется себе такой неподъемный труд, эстимация конкретно этой составляющей проекта: "на типизацию уйдет 9 часов не иначе".

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

Для новичка в программировании я думаю первой задачей будет написать рабочий код. А вторым делом подводить к каким то традициям.

Psycho Tiger 18.05.2010 08:15

Цитата:

Зато плюс отбил у тебя охту плодить единорогов
Единарог тут непричём =)


Хахахахах, щас NoCD плюс получит за нами в кучу :D:D:D

NoCD 18.05.2010 08:50

Цитата:

Сообщение от Psycho Tiger (Сообщение 908898)


Хахахахах, щас NoCD плюс получит за нами в кучу :D:D:D

Я никого не оскор бля л!

CrazyFlasher 18.05.2010 11:38

2 NoCD: http://www.flasher.ru/forum/showpost...8&postcount=28

Zebestov 18.05.2010 12:47

Хха! NoCD =) добро пожаловать =)

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

Еще раз выскажу свое мнение: типизация — это не какой-то головоломный процесс, подвластный лишь гуру программирования, отнимающий человеко/часы и путающий мысли. Это банальная повседневная составляющая программирования любого процесса.

P.S.
Еще немного и мы начнем женам рекомендовать что-то типа: да не заморачивайся ты что готовить. первое. второе. кроши все подряд в каструлю и жми "огонь" поярче — съедим! главное чтобы твое произведение типа :* было из пакета кухня.еда =)

wvxvw 18.05.2010 14:23

NoCD
А почему написать код без типизации должно быть проще? Ну, скажем, если новичек до этого писал на яваскрипте, то может быть, а если на яве или сишарпе, то у него от нетипизированого кода инфаркт может быть :)

NoCD 18.05.2010 14:39

Я понял твою мысль еще в первом посте и полностью с ней согласен. Но могу привести аналогичный противоположный пример:

Когда студент открывает холодильник и смотрит, что есть в нем съедобного. Ставит сковородку и кидает туда все, что может вместе поджариться и употребиться в конечном варианте. А супы и другие гарниры, это ближе к кулинарии и гуру ИМХО.

cauchy 18.05.2010 14:40

Читаю тему и вообще не понимаю, ума не приложу, в чём проблема написать, что возвращает функция.
Ну если потом вдруг она станет возвращать что-то другое (у меня такое что-то не часто бывает), в чём проблема - правиться за 2 секунды.
А учитывая факт, что типизированный код работает быстрее, вопросов помоему вообще никаких не должно оставаться. ИМХО.

gldrawworld 18.05.2010 14:51

Цитата:

Сообщение от cauchy (Сообщение 908998)
Читаю тему и вообще не понимаю, ума не приложу, в чём проблема написать, что возвращает функция.
Ну если потом вдруг она станет возвращать что-то другое (у меня такое что-то не часто бывает), в чём проблема - правиться за 2 секунды.
А учитывая факт, что типизированный код работает быстрее, вопросов помоему вообще никаких не должно оставаться. ИМХО.

ну а чем же мы тогда будем пополнять - слово, которое нельзя говорить-кодру ? должны быть те, кто так пишут, иначе обсуждать будет не чего ^^*

NoCD 18.05.2010 14:59

Цитата:

Сообщение от wvxvw (Сообщение 908992)
NoCD
А почему написать код без типизации должно быть проще? Ну, скажем, если новичек до этого писал на яваскрипте, то может быть, а если на яве или сишарпе, то у него от нетипизированого кода инфаркт может быть :)

+100500. Полностью согласен. Дело привычки и дисциплины.

Взять к примеру этот сайт, да вообще любой. Часто наблюдается такой момент, когда только что зарегестрированный пользователь. Интересуется как оживить выдранный код. Или как в клипе прописать то или иное событие. На php форумах такая же ситуация. Там вообще этим не пахнет. Особенно когда тема называется "ПОМОГИТЕ,СРОЧНО, ЗАВТРА СДАВАТЬ!" Главное выполнить заказ. Как гласит пословица: "Если работает, не трогай". К тому же если сам язык программирования от программиста не требует этой строгости, то это оседает в подсознании. Тоже самое, что не запрещать ребенку смотреть диснеевские мульты, шреков, боевики, порнуху, ужасы.

Под проще я понимаю то, что не нужно каждой функции и переменной давать тип.
Когда мысля идет, то пишешь машинально(да, еще не выработалось это делать автоматом).

gldrawworld 18.05.2010 15:12

Цитата:

Сообщение от NoCD (Сообщение 909007)
+100500. Полностью согласен. Дело привычки и дисциплины.

Взять к примеру этот сайт, да вообще любой. Часто наблюдается такой момент, когда только что зарегестрированный пользователь. Интересуется как оживить выдранный код. Или как в клипе прописать то или иное событие. На php форумах такая же ситуация. Там вообще этим не пахнет. Особенно когда тема называется "ПОМОГИТЕ,СРОЧНО, ЗАВТРА СДАВАТЬ!" Главное выполнить заказ. Как гласит пословица: "Если работает, не трогай". К тому же если сам язык программирования от программиста не требует этой строгости, то это оседает в подсознании. Тоже самое, что не запрещать ребенку смотреть диснеевские мульты, шреков, боевики, порнуху, ужасы.

Под проще я понимаю то, что не нужно каждой функции и переменной давать тип.
Когда мысля идет, то пишешь машинально(да, еще не выработалось это делать автоматом).

уля ля ля ) 100500 прозвучало ^^, сейчас прийдет тигер и отсчитает вас за лексикон :taunt:

Psycho Tiger 18.05.2010 15:33

Цитата:

Когда студент открывает холодильник и смотрит, что есть в нем съедобного. Ставит сковородку и кидает туда все, что может вместе поджариться и употребиться в конечном варианте. А супы и другие гарниры, это ближе к кулинарии и гуру ИМХО.
Не-а. Всё, что может поджариться - это IFryable, и съедобное - это IEatable. Врятли тот кто даже типизацию не использует будет этим баловаться =) Пример плох.

gldrawworld, лень )

wvxvw 18.05.2010 15:49

NoCD
Вот поэтому хороших ПХП или яваскрипт програмистов почти что и нет в природе. Потому что в ПХП мануале люди постят код с ошибками, на форумах традиционно копипейст всякой дряни, которую сто лет назад непонятно зачем и почему написали.
Кроме человека, который получит ответ, тему на форуме прочитает еще сотня, которые догадались, как поиском пользоваться. И вот за что им свинью подкладывать? С другой стороны, посмотрите на стак оверфлоу (сайт, не ошибку :) ). Как правило нормальные вопросы и нормальные ответы. А человека типа please send me solution asap!!! я думаю, на таком форуме вообще забанят ;)

gldrawworld 18.05.2010 15:51

Цитата:

Сообщение от wvxvw (Сообщение 909027)
please send me solution asap!!! я думаю, на таком форуме вообще забанят ;)

я бы если честно и на этом форуме банил …*на гд просто игнорят и в флейм сплавляют, где все дружно стебутся пока тему не удаляют

HotIceCream 18.05.2010 16:34

Сегодня задумался об одной традиции. В Сборнике рецептов AS упоминалось о том, что глобальные переменные нужно начинать с нижнего подчеркивания _x ... При этом не вижу в этом логики: Глобальные переменные используются чаще, чем локальные, следовательно логичнее было бы локальные начинать с нижнего подчеркивания. Плюс к открытым методам и свойствам удобнее обращаться естественно без _ ... хотя они то скорее всего глобальные.

ps На эту мысль меня навел урок сегодняшней информатики - прога на с++, и препод писал именно локальные переменные в функции с нижним подчеркиванием.

Zebestov 18.05.2010 16:42

0о-оп-па =) я шота тоже всю дорогу с подчеркивания пишу именно приватные переменные... это чиво это я — неформал что ли?

HotIceCream 18.05.2010 16:49

ну приватные и открытые это не то что я имел ввиду. Хотя я мог чтото напутать)

Щас найти в книге не могу тот абзац, но все глабальные переменные у них с _ ... а локальные без. Про приватные не знаю.

Zebestov 18.05.2010 16:51

ясно. глобальных же у нас вроде нет как таковых. а в классе все приватное с подчеркиванием, все публичное — без. особенно удобно (если не первопричина) когда прописываешь геттер/сеттер — практически одноименные методы, просто убрать подчеркивание.

HotIceCream 18.05.2010 16:55

к примеру...

Код AS3:

private x:int;
public  y:int;
 
public function f(_x:int; _y:int):void
{
      x=_x;
      y=_y;
}

или

Код AS3:

private _x:int;
public  _y:int;
 
public function f(x:int; y:int):void
{
      _x=x;
      _y=y;
}


gloomyBrain 18.05.2010 16:56

Я как-то так пишу:
Код AS3:

private var _sync:Boolean; // если есть геттер/сеттер
private var systemTime:Number; // просто приватная переменная
public var someThings:Vector<SomeThing> // просто паблик переменная


Psycho Tiger 18.05.2010 17:02

А я все не не паблик переменные пишу с _.

Zebestov 18.05.2010 17:05

2HotIceCream

у меня так обычно:

Код:

private var        _x:int;
public var        y:int;

public function f(x:int; y:int):void
{
        this._x = x;
        this.y = y;
}

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

2gloomyBrain:

на заре думал об этом, но понял, что мне удобней с первого взгляда определять видимость переменной в середине кода. да и вместо двух вариантов теперь имел бы три =) никак не оптимизация.

Psycho Tiger 18.05.2010 17:08

Цитата:

с той лишь оговоркой, что я бы не назвал переменную зарезервированным именем.
А где оговорки, что класс наследуется от того, где это имя определенно? )
Порой часто когда рисуется что то в битмапдату у меня классы имеют свойства x,y,width,height, но не имеют отображения как таковых. Не наследуются от DisplayObject`ов и я не вижу в этом ничего плохого. Хотя, дело вкуса =)

gloomyBrain 18.05.2010 17:10

Это будет холивар, но.. зачем? =)
Ведь внутри одного участка кода по сути нет разницы между public и private переменными. А вот между запуском сеттера и присвоением значения разница зачастую весьма ощутима (иначе нафига сеттер нужен?).
Необходимо (на мой взгляд) разграничить функции (а сеттер это функция) и переменные. По этому я пишу подчеркивания перед переменными, для которых есть сеттер. Ну и переменную и сеттер удобно назвать одинаково - там где "_" есть, там переменная, там где нет - сеттер/геттер

Psycho Tiger 18.05.2010 17:15

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

Zebestov 18.05.2010 17:18

Цитата:

Сообщение от Psycho Tiger (Сообщение 909065)
Хотя, дело вкуса =)

угу =) не предмет...

HotIceCream 18.05.2010 17:19

мм ну вобщем то мнение общественности ясно) private с _

gloomyBrain 18.05.2010 17:50

Цитата:

Сообщение от Psycho Tiger (Сообщение 909070)
если я вдруг захочу для переменной сделать сеттер и геттер

Ты хочешь сказать, что причина написания "_" перед приватными переменными - это гипотетическая ситуация возникновения желания? =)
В общем, объявляю тебе холивар =)

Psycho Tiger 18.05.2010 18:02

Нет, причина написания перед переменными "_" - причина подчеркивания, что это всё таки приват. Причина написания даже перед теми переменными, где нет гет\сет - как и в общем случае, подчеркивание приватности, но и до кучи "ситуация возникновения желания" =)

orcpochta 18.05.2010 18:05

Цитата:

Сообщение от gloomyBrain (Сообщение 909059)
Я как-то так пишу:
Код AS3:

private var _sync:Boolean; // если есть геттер/сеттер
private var systemTime:Number; // просто приватная переменная
public var someThings:Vector<SomeThing> // просто паблик переменная


точно так же пишу

публичных переменных у меня практически не случается, если только не статические, а подчеркивание сразу дает понять, что переменная имеет геттер/сеттер обертку с таким же именем без подчеркивания

Furinax 18.05.2010 18:10

Цитата:

Сообщение от orcpochta (Сообщение 909121)
точно так же пишу

публичных переменных у меня практически не случается, если только не статические, а подчеркивание сразу дает понять, что переменная имеет геттер/сеттер обертку с таким же именем без подчеркивания

и я также пишу :)

orcpochta 18.05.2010 18:22

Цитата:

Сообщение от Furinax (Сообщение 909122)
и я также пишу :)

и тоже не даете внешнему коду возможность ковыряться зубилом в классе?))

iNils 18.05.2010 18:27

Оказывается сколько у нас генераторов хаоса.

gloomyBrain 18.05.2010 18:33

Цитата:

Оказывается сколько у нас генераторов хаоса.
Пап, а ты сейчас с кем разговаривал? (c) Iv

Psycho Tiger 18.05.2010 18:34

Цитата:

Сообщение от orcpochta (Сообщение 909134)
и тоже не даете внешнему коду возможность ковыряться зубилом в классе?))

Это называется инкапсуляция и каждый вменяемый программист это делает.

orcpochta 18.05.2010 18:36

Цитата:

Сообщение от Psycho Tiger (Сообщение 909141)
Это называется инкапсуляция и каждый вменяемый программист это делает.

опять эрудицией блещете?

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

Psycho Tiger 18.05.2010 18:43

Цитата:

Сообщение от orcpochta (Сообщение 909143)
опять эрудицией блещете?

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

Ну значит ваша точка зрения неправильная.

udaaff 18.05.2010 19:38

Psycho Tiger, тебе сколько лет, мальчик? :D

Цитата:

а подчеркивание сразу дает понять, что переменная имеет геттер/сеттер обертку с таким же именем без подчеркивания
А зачем это понимать? :)


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

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