Форум 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)

wvxvw 16.05.2010 14:03

Спор по поводу типизации, традиций и всего подобного
 
Жуть какая... :) Прям 1C :) Ну, кроме всего прочего - return - это не функция, не нужны там скобки, а вот функциям нужны возвращаемые типы.

YarikMudry 16.05.2010 16:24

Ну что касается ретурна, привык я так. А функциям не обязательно ставить подпись возвращаемого типа. Это кому как больше нравится. В конкретно этой функции и так понятно что возвращается строка. Вида "Каталог(Каталог()Каталог(Каталог()))" В общем древовидная структура имеющая корневым каталогом экранныхобъект заданный в параметрах. http://vkontakte.ru/app1865199_46242160
Вот собственно ещё сырой пример работающий только со спрайтами. Вначале создаётся 100 вложенных случайным образом спрайтов, затем верхний из них отдаётся на растерзание вышеуказанной функции и из этого безобразия составляется деревце. Когда разберусь с типами можно будет составлять иерархию экранных объектов для реальных приложений... Про выход за пределы экрана не говорите, потом поставлю скрол рэкт и 2 скрол бара... Сейчас не до этого.

Похоже мне нужны просто getQualifiedClassName () и getQualifiedSuperclassName(). Сейчас буду эксперементировать...

Psycho Tiger 16.05.2010 16:31

Цитата:

А функциям не обязательно ставить подпись возвращаемого типа. Это кому как больше нравится.
А ещё можно трусы на голове носить. Нормальные компиляторы это не скомпилируют.

YarikMudry 16.05.2010 16:50

Сколько криков слышал по поводу того как ПРАВИЛЬНО давать идентификаторы, как ПРАВИЛЬНО писать то-то и то-то. Компилятор компилирует это необходимо и достаточно, остальное вопрос стиля и привычки. Кто-то делает отступы, кто-то нет, кто-то пишет "{" в той же строчке что и объявление функции, кто-то на следующей. Обсуждать такие мелочи это обычный холивар)))

HotIceCream 16.05.2010 17:09

Цитата:

Сообщение от YarikMudry (Сообщение 908532)
Сколько криков слышал по поводу того как ПРАВИЛЬНО давать идентификаторы, как ПРАВИЛЬНО писать то-то и то-то. Компилятор компилирует это необходимо и достаточно, остальное вопрос стиля и привычки. Кто-то делает отступы, кто-то нет, кто-то пишет "{" в той же строчке что и объявление функции, кто-то на следующей. Обсуждать такие мелочи это обычный холивар)))

ты не прав. в as можно указывать тип переменных :* при этом если нужно он станет к примеру Number, компилироваться будет нормально, но при этом скорость работы будет намного больше, если прописать явно тип. Тоже самое и с функциями. И тут стиль и привычка совсем не причем.

ps в flash develop без указания типа функции ты не скомпилируешь.

YarikMudry 16.05.2010 17:21

Беру свои слова обратно. Но частично. По поводу быстродействия согласен, но ИМХО, это уже стоит делать когда всё готово, когда нужно просто вылизать код. Туда же точную расстановку идентификаторов доступа и т.п. Можно конечно сразу, а можно как-нибудь в другой раз. В cs3 всё нормально компилится, потому и говорю что без разницы. Тем более когда я код без особых раздумий создаю, сейчас у меня эта функция возвращает стринг, потом что-то ещё, потом может вообще решу что не нужно ничего возвращать... И если я буду расставлять каждой функции тип возвращаемого значения а потом забывать про него, то это ошибка и потерянное время ибо комп очень медленно у меня компилирует.

КорДум 16.05.2010 17:32

Да правильно. Зачем тогда вообще все функции выносить отдельно. Нужно все лепить в одно место! Все в одном классе, прям в конструкторе. Зачем проводить кастомизацию? Без типизации, вообще - зачем? - компилятор сам догадается!
А как же традиции? Встретил я как-то очень хорошую фразу, что плохие программисты выходят чаще всего из тех, кто не чтит традиции.

HotIceCream 16.05.2010 17:44

YarikMudry Вместо того что бы "вылизывать" можно сначала все продумать - в том числе и то, что будет возвращать функция, а уже потом приступать к работе. Это куда более продуктивно, чем если " код без особых раздумий создавать" (вы же заботитесь о "потерянном времени")

YarikMudry 16.05.2010 18:00

Срач по поводу типизации, традиций и всего подобного
 
Цитата:

Да правильно. Зачем тогда вообще все функции выносить отдельно. Нужно все лепить в одно место! Все в одном классе, прям в конструкторе. Зачем проводить кастомизацию? Без типизации, вообще - зачем? - компилятор сам догадается!
А как же традиции? Встретил я как-то очень хорошую фразу, что плохие программисты выходят чаще всего из тех, кто не чтит традиции.
Про лепить в одно место речи не было. Традиции как таковые не нужны особенно глупейшая из них первую программу на каком либо языке писать с функциональностью вывода на экран строки "Hello world".
Традиция это бездумное необоснованное повторение чего либо. Ежели есть смысл делать так, а не иначе, то это уже целесообразность)))
Во время проектирования как я уже говорил необходимо и достаточно чтобы компилятор не ругался и работал как надо. Остальное не так уж и важно. Это уже потом можно вылизывать код расставляя доступ к функциям, классам, раскидывать по пакетам, проводить типизацию...
Всё оно желательно, но не обязательно по крайней мере в черновом варианте. Зачастую как раз наоборот мешает, отвлекает, является источником лишних ошибок...

Psycho Tiger 16.05.2010 18:13

Пристрелите меня.

wvxvw 16.05.2010 18:21

Немного не красиво скопировалось, но лучше не будет.
А по сути, чем пререкаться - задумались бы. Кроме того, ВКонтакте - редкостное *****, на него не то, что ссылаться, просто вспоминать без улыбки нельзя.

HotIceCream 16.05.2010 18:26

YarikMudry все же, какой размер максимальный был у проекта который ты делал?

VVall 16.05.2010 18:34

Цитата:

Сообщение от YarikMudry (Сообщение 908545)
Традиции как таковые не нужны особенно глупейшая из них первую программу на каком либо языке писать с функциональностью вывода на экран строки "Hello world".

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

КорДум 16.05.2010 18:40

Да правда, зачем сразу по-нормальному писать. Давайте все сразу в кадрах. Черновой же вариант.

Psycho Tiger 16.05.2010 18:42

Цитата:

ВКонтакте - редкостное *****
Подпишусь под каждым словом. Речь про API, естественно. Как соц. сеть меня вполне устраивает.

gldrawworld 16.05.2010 18:42

мда ну и программисты пошли …*

wvxvw 16.05.2010 19:00

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

gldrawworld 16.05.2010 22:19

Цитата:

Сообщение от wvxvw (Сообщение 908571)
По поводу типизации, вот, представьте, стоите вы на футбольном поле у ворот противника, и к вам круглое летит... вы его "подправили" головой в ворота, а круглое оказалось пудовой чугуниевой гирей... А все порому, что тип летящего круглого объекта заранее не был известен.
Что до традиций, ну так вы выработали свою традицию, но только она ни на чем не основывалась, более того, как оказалось была ошибочной. От того, что вы что-то неправильно сделаете много раз, правильнее оно не станет... А традиции вообще - ну это как грабли, кто-то наступил, поставил знак - "тут не ходить", ну, нужно конечно понимать почему тут не ходить, но даже если слепо поверить написаному, на первых порах хуже не будет.

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

NoCD 17.05.2010 06:58

Типизация = Объяснение новичкам не писать в клипах. Аналогично. Если код компилируется и делает свое дело, то о типизации задумываются в последнюю очередь. Если же проект ресурсоемок в плане быстродействия, то конечно, нужно обязательно делать типизацию. Многим лень ее делать. Если планируется устраиваться в какую нибудь контору, то приходится следовать традициям.
К то му же лояльность компилятора к типизации, помогает быстрее понять язык программирования, а все остальное зависит от самого программиста.

Lou 17.05.2010 12:15

Цитата:

Зачастую как раз наоборот мешает, отвлекает, является источником лишних ошибок...
Типизация помогает избежать(!) скрытых ошибок. И здорово, наверное, копаться в своем коде через пару месяцев, пытаясь вспомнить, что же все эти * возвращают на самом деле...

CrazyFlasher 17.05.2010 12:20

2Oleg: а мне за слово "г*вно" + подарили :(

proxiServer 17.05.2010 12:42

Типизация - нужна.
Кодстайл - нужен.
Традиции - тоже не просто так.

Вменяемых аргументов против этого не вижу в этой теме.

wvxvw 17.05.2010 13:10

CrazyFlasher
Тебе за орфографию и флейм :)

Molecula 17.05.2010 16:51

У меня срач в шкафу.

Furinax 17.05.2010 17:34

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

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

Zebestov 17.05.2010 19:20

особенно покорило:
Цитата:

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

Psycho Tiger 17.05.2010 19:24

Цитата:

Сообщение от NoCD (Сообщение 908643)
Типизация = Объяснение новичкам не писать в клипах. Аналогично. Если код компилируется и делает свое дело, то о типизации задумываются в последнюю очередь. Если же проект ресурсоемок в плане быстродействия, то конечно, нужно обязательно делать типизацию. Многим лень ее делать. Если планируется устраиваться в какую нибудь контору, то приходится следовать традициям.
К то му же лояльность компилятора к типизации, помогает быстрее понять язык программирования, а все остальное зависит от самого программиста.

Да ну. Обьяснение не писать в клипах, как и объяснение не писать в кадрах - это как объяснять доисторическому человеку как долбить перфоратором. Ведь молотком как то привычнее, да и работает. Это не традиции, это здравый смысл. Лояльность к типизации, это кстати скорее помощь новичкам, у которых код не выходит за 20 строк. В остальном это гадость.

2Crazy: а мне за "к*кашулечку"

Zebestov 17.05.2010 20:52

Crazy, Psycho Tiger =) я за "м*ск" отмечен

Psycho Tiger 17.05.2010 20:53

Хахах) iNils с отпуска вышел работящий, теперь на всех плюсов хватит =)

Furinax 17.05.2010 21:48

Цитата:

Сообщение от Psycho Tiger (Сообщение 908789)
Хахах) iNils с отпуска вышел работящий, теперь на всех плюсов хватит =)

хех хе! тебе прям вчера влепили :) Как не стыдно? Взрослый человек ведь, а до сих пор ловишь плюсы на форуме :taunt: Ай яй яй!

Psycho Tiger 17.05.2010 22:01

Цитата:

Сообщение от Furinax (Сообщение 908814)
хех хе! тебе прям вчера влепили :) Как не стыдно? Взрослый человек ведь, а до сих пор ловишь плюсы на форуме :taunt: Ай яй яй!

Может мне выложить пару твоих классов здесь, взрослый дядя? :D

iNils, как отдохнул? =)

MrPoma 17.05.2010 22:03

Цитата:

Сообщение от Psycho Tiger (Сообщение 908826)
Может мне выложить пару твоих классов здесь, взрослый дядя? :D

Давай. Все равно тут только срач.

iNils 17.05.2010 22:04

Отпуск у меня летом.

Psycho Tiger 17.05.2010 22:31

Хм, а мне поступала информация что отгул брал недельку =) От форума отдыхал?

iNils 17.05.2010 22:39

А я никуда от форума и не уходил.

Zebestov 17.05.2010 23:08

0о ну я представляю что будет после отпуска =)

lowka 17.05.2010 23:22

Определение типов возвращаемых значений(и не только их, но и полей, констант и проч.) вполне может быть возложено на компилятор. В action script сие не доступно (к сожалению).
Код:

def func(a:int, b:int) = a + " " + b

func: (int,int) => string

val c = new MyObject

c: [MyObject]

И ничего плохо от этого никому не будет.

gloomyBrain 17.05.2010 23:33

Так же скорбят об этом все JAVA- и Си-программисты. Только непонятно - где польза от того, что не видно с первого взгляда какой у переменной тип? Компилятору, допустим, видно =) А мне-то как?
Если честно, для меня строгая типизация послужила отличным способом начать писать более-менее внятный код
Как вспомню AS1/2 бррр...

Furinax 17.05.2010 23:52

[quote=Psycho Tiger;908826]Может мне выложить пару твоих классов здесь, взрослый дядя? :D/QUOTE]

Если б я хотел чтоб меня здесь забанили, двно бы сам выложил :D
Зато плюс отбил у тебя охту плодить единорогов :mosking:

Кстати хорошая идея: давайте банить за плохо оформленный код?

gldrawworld 18.05.2010 00:09

Цитата:

Сообщение от Furinax (Сообщение 908859)
Кстати хорошая идея: давайте банить за плохо оформленный код?

вам мало того что etc заколит вас вилами за такой код ?


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

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