- 1
- 2
- 3
- 4
- 5
- 6
;(function ($) {
// alias Math methods - used a lot!
var min = Math.min
, max = Math.max
, round = Math.floor
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+144
;(function ($) {
// alias Math methods - used a lot!
var min = Math.min
, max = Math.max
, round = Math.floor
lol
wvxvw 06.08.2013 09:43 # −13
roman-kashitsyn 06.08.2013 09:50 # −11
wvxvw 06.08.2013 10:04 # −12
deep 06.08.2013 10:09 # −12
wvxvw 06.08.2013 10:28 # −14
volhv 06.08.2013 10:14 # −13
wvxvw 06.08.2013 10:26 # −13
tir 06.08.2013 10:41 # −12
А вот почему round = floor... Возможно специфично для решаемой задачи.
wvxvw 06.08.2013 11:40 # −11
Еще раз, для особо недоверчивых. При замене переменной с именем round переменной с именем floor в минифицированном коде ничего не меняется. Нет и в принципе не может быть такой "специфической" задачи в которой потребовалось бы переименовать одну примитивную математическую операцию в другую. Все эти имена они только для того, чтобы "помочь" программисту читающему код.
tir 06.08.2013 12:48 # −12
1. Почему вы все сводите к минифицированному варианту? Программист пишет обычный код, а не минифицированный. И каждый раз писать Math.min или Math.max или jQuery('#...') это лишние телодвижения. Не зря же в Java придумали import static. Сравните:
или
Здесь точно такая же ситуация, о чем и написано в комментарии. Я бы только alias заменил на shortcut.
Данный пример - ТОЛЬКО СОКРАЩЕНИЕ КОЛИЧЕСТВА СИМВОЛОВ, КОТОРЫЕ НЕОБХОДИМО НАПИСАТЬ ПРОГРАММИСТУ. Дополнительный плюс - улучшение читаемости кода. Нет никаких оптимизаций - просто желание писать меньше.
tir 06.08.2013 13:02 # −12
Абсолютно НОРМАЛЬНАЯ ситуация.
round - функция ОКРУГЛЕНИЯ В ТЕРМИНАХ ЗАДАЧИ. Не важно, что там за функция.
Когда программист читает код, он видит, что значение надо ОКРУГЛИТЬ. А правила округления устанавливаются в зависимости от контекста задачи.
В 2D графике постоянно приходится использовать Math.floor как алгоритм округления по умолчанию. Только floor не так читаемо как round. Или, например, финансовый калькулятор, где результат надо округлить до целых, до десятков, до девяток на конце и т. п. Программисту важно знать, что результат будет округлен. А как он будет - это уже другое дело.
В коде должна быть читаемость. Не зря в Ruby есть много alias'ов на один метод: size/count, hour/hours и т. п. В каждой конкретной ситуации, в зависимости от контекста, удобнее употреблять тот или иной alias.
wvxvw 06.08.2013 13:56 # −14
> Абсолютно НОРМАЛЬНАЯ ситуация.
Вы серьезно? Как вы определяете нормы? Если вы постоянно используете floor - ну так и используйте, зачем его переименовывать во что-то, чем он не является? А если вы прибавлением пользуетеcь чаще, чем умножение, вы будете называть прибавление умножением? В чем связь вообще?
Это ж каким феноменальным мудаком нужно быть, чтобы "подменить функцию округления" везде на что-то другое? А например конструктор массива вам не приходило в голову подменить, ну, чтобы паттерном "стратегия" воспользоваться, например, тоже замечательно работало бы:
tir 06.08.2013 14:09 # −12
Ни больше и не меньше.
Может моя мысль так понятнее будет:
ПС. К чему этот бред про конструкторы, замену сложения умножением, "подменить функцию округления везде"??? Я же не Math.round подменяю в конце концов.
wvxvw 06.08.2013 14:23 # −12
Но зачем-то назвали ее round. Во всех ваших примерах нет ни капли смысла. Хотите использовать round - используйте, хотите floor - используйте на здоровье, но нахера одно в другое переименовывать?
tir 06.08.2013 14:35 # −11
или может мне нельзя делать вызовы
Или по вашему мнению я должен страдать проктологией в именовании типа myRound и т. п.?
Где вообще зафиксировано, что round должно использоваться в значении Math.round?
roman-kashitsyn 06.08.2013 14:41 # −8
ОФФТОП: У меня тут коллеги макрос глобальный определили #define d(args...), вот это я понимаю, пи***ц.
wvxvw 06.08.2013 18:54 # 0
> Где зафискировано?
В коде приведенном выше. Автор (надеюсь, вы все его узнали) написал код, в котором создал правило: беру функцию "А.Б" и трансформирую ее в "А". И тут же похерил это правило, при этом похерил так, что сходу и не поймешь, что случилось.
О полезности того, что автор сделал тоже можно говорить только с улыбкой, но это отдельная тема.
> Или может мне нельзя делать вызовы?
Закройтесь в комнате, задерните шторы и вызывайте кого хотите. Это говно растекается по всему миру миллионам хомячков, и поэтому к нему немного другие требования.
> Страдать проктологией?
Навания дожны быть такими, чтобы не вызывать когнитивного диссонанса. Они должны быть максимально специфичными, и нужно избегать полисемии. Автор сделал все наоборот.
Вы хоть попробуйте представить какой-нибудь жизненный пример, в котором вам безразлично, используется ли round или floor.
kegdan 10.08.2013 01:20 # 0
Так зачем слона тигром то называть? Пусть слоном и остается.
1024-- 10.08.2013 13:26 # 0
Или Вы удивляетесь записям вида List<...> items = new LinkedList<...>()? "Зачем слона LinkedList называть тигром List?"
Заметьте, автор кода работал в своём лексическом контексте, он не испортил Math. tir привёл хорошие аргументы и абсолютно верно всё описал. А то можно взять и запретить переопределять toString: надо же, объект вернёт не "[object ИмяКласса]", а что-то другое, и этим сломает функции, определяющие имя класса!
Не надо удивляться, если round - это:
kegdan 10.08.2013 14:22 # 0
Вот например в меню написано "Борщ". Заказываешь борщ - получаешь Суп харчо, потому что "Борщ" - это не "ПервыеБлюда.Борщ" а переопредление "ПервыеБлюда.СупХарчо". Обидно ведь?
А теперь остается вопрос - Почему "борщ", если это суп харчо? Какого хрена?
1024-- 10.08.2013 16:59 # 0
Но всё же, floor - это round down, т.е. частный случай.
В терминах кулинарии:
суп - это round
борщ - это round up, или ceil
суп харчо - это round down, или floor
Вопрос уместности и тонкостей терминологии остаётся и активно обсуждается на этой странице, но автора кода следует помиловать :)
kegdan 10.08.2013 17:43 # 0
Ладно если проект домашний, а если нет? Вот достанется Вам код, в котором round будет означать flour тогда и поймете о чем я.
Писать код нужно всегда грамотно
1024-- 10.08.2013 18:44 # 0
> код, в котором round будет означать flour
Понимание в этом случае может зависеть от алгоритма.
Итак, подведём итоги холивара:
Math.floor - длинновато, но стандартно и всем понятно, расово верный вариант
round - коротко, подходит для некоторых алгоритмов, но может вводить в заблуждение.
RoundDown - отражает суть, но длинновато
floor - коротко, отражает суть, но может быть var floor = Math.ceil();
superhackkiller1997 10.08.2013 17:35 # −2
Даже в питух плюсах это сделанно лучше math::round();, можно юзать тупо round() без всякого говна.
Синтаксис такое лютое говнище, что я просто не понимаю - как кто-то в здравом уме может писать на этом говне.
var - даже в питух плюсах с деланно лучше, ибо auto подходит лучше. Семантика говно.
Ващее ООП тоже говно, ибо вы питухи нихрена не знаете о листах. Связный, двусвязный - всё, больше вы ничего не знаете - вам не нужна классификация. Она нужна нормальным пацанам, которые юзают десятки видов списков и то чисто форфан.
Классификация объекдиняет готовые, разные объекты - это индексация. Вы же, питухи, всё наоборот - у вас класс основа. Т.к. ваше ООП ущербно - вы ограничиваете объекты, ибо максимум, что вы можете найти между кошками - это "жрать, бежать", хотя это бесполезно, ибо жрать и бежать могу все звери - и это обощение не имеет смысла, но зачем вам мозг.
А потом спорите о говне, фу.
kegdan 10.08.2013 17:46 # 0
superhackkiller1997 10.08.2013 18:39 # −2
Я не разу не видел профита от классов, как основу для объектов. Единственный профит от класса - это кастыль для прицепления общих данных к функциям - т.е. банальные глобальные методы, где класс - есть песочница.
Во всех ООП смыслах класс провален, не имеет смысла, бесполезен и только мешает. Вместо того, чтобы биндить на функцию контекст - питушки юзают классы.
Питушки кукарекают о компактности - но банальная сишка сливает в говно плюсовой классовый высер, а уж высер какого-нибудь жабаскрипта подавно. А уж банальный #define floor round просто в такую жламину запидаливает то говно, что вы родили выше, ибо это банальные неймспейсы.
Меня это смешит, как одни питушки пытаются из ваше говна сделать Си-стайл код, другие питушки доказывают, что ООП круто. Хотя споси любого ЖС-гуру: "как писать" - он тебе скажет "хочешь понтово - юзай си-стайл" и будет прав, ибо он себе жопу порвал, когда писал жс-движок в броузёрке.
Так же смишно, когда питушки юзают классы и пытаются эмулировать систайл, но не юзать классы они не могут по религиозным причинам. В конечном итоге имеет 99% классов с методами жрать и бежать, когда надо 100500 уникальных методов, либо 100500 обощенных методов, когда надо жрать и бежать. Вам рвёт жопу ваше говно со всех сторон.
1024-- 10.08.2013 19:37 # 0
Хотя бы #include писать придётся.
Но я согласен, что Math каждый раз писать - уныло. Инклюды как в питоне были бы решением этого вопроса.
> Синтаксис такое лютое говнище
Нормальный синтаксис. Похож на сишку, много вкусностей.
> var - даже в питух плюсах с деланно лучше, ибо auto подходит лучше.
var короче и уместней, чем auto. Создать переменную, а не автофигню.
> Ващее ООП тоже говно, ибо вы питухи нихрена не знаете о листах.
> Она нужна нормальным пацанам, которые юзают десятки видов списков и то чисто форфан.
ООП не только в листах проявляется, если им не злоупотреблять, можно писать разумный код.
> Т.к. ваше ООП ущербно - вы ограничиваете объекты, ибо максимум, что вы можете найти между кошками - это "жрать, бежать"
Вот и хорошо, то в JS не ООП. Тем полезны прототипы + возможность добавить поле в любой объект (поле, метод - не важно)
> А потом спорите о говне, фу
Спор ради спора. Всегда интересно поспорить хрен знает с кем из-за хрен знает чего. По-моему, этим живёт интернет.
> Я не разу не видел профита от классов, как основу для объектов. Единственный профит от класса - это кастыль для прицепления общих данных к функциям - т.е. банальные глобальные методы, где класс - есть песочница.
Реентерабельность - уже сильная сторона.
Грамотное использование ООП позволит улучшить читаемость кода.
Наследование полезно для обобщённого использования, чтобы не городить switchей.
И да, я противник ООП. ООП должно использоваться только там, где оно уместно и может упростить работу программиста.
superhackkiller1997 10.08.2013 20:05 # −1
Не придётся.
>Нормальный синтаксис. Похож на сишку, много вкусностей.
Не похож на сишку не разу - это твоя фантазия.
>ООП не только в листах проявляется, если им не злоупотреблять, можно писать разумный код.
Тут 2 пути - либо ты ООП-животное, либо ты понимаешь что это и юзаешь по делу, но когда ты понимаешь и юзаешь по делу - простота кода тебя не интересует.
>Вот и хорошо, то в JS не ООП. Тем полезны прототипы + возможность добавить поле в любой объект (поле, метод - не важно)
Это более-менее вменяемая альтернатива моего бинда. Ну и да, с биндом объекты не нужны - это уже машина состояний и совершенно другая парадигма, которую питушки не осилят.
>Грамотное использование ООП позволит улучшить читаемость кода.
Я уже гвоорил об этом. Когда человек осиливает ЯП - читаемость кода для него - это минимализм, красота и простота. ООП избыточен и не нужен - он нежен лишь для того, чтобы анскильные животные могли писать код.
>Наследование полезно для обобщённого использования, чтобы не городить switchей.
Не смеши мои тапки, какие свичи? Свич - это для питухов, я уже 10раз писал о том, как делается твоё ООП на ПРОсишке.
>И да, я противник ООП. ООП должно использоваться только там, где оно уместно и может упростить работу программиста.
Понимаешь в чём штука - Обощенность это тогда, когда ты объединяешь уже существующие объекты. Именно так пишут Цари. Вы же пишите криво - от обобщения к уникальности, хотя идёт от уникальности к обощению.
Берётся набор уникальных объектов и ищется общее, а потом уже классифицируется. Общность - это уже следствие, его не надо создавать специально.
Всё сводится к тому, что истинный программист вне парадигм, а питушок - заедушная макака, которая выучила одну технологию ваяния говно а ваяет говно за еду.
1024-- 10.08.2013 20:56 # 0
for, while, if, скобочки, формат чисел, строки, приоритет операторов, сами операторы.
> ООП избыточен и не нужен - он нежен лишь для того, чтобы анскильные животные могли писать код.
Анскильные животные и так пишут код, парадигма не важна. Разве что в ФП их меньше.
Не надо выкидывать ООП, не дураки его придумали. ООП можно просто держать про запас, может пригодиться.
> я уже 10раз писал о том, как делается твоё ООП на ПРОсишке.
Тогда можно сразу бинарник писать и не гонять компилятор зря.
> Вы же пишите криво - от обобщения к уникальности, хотя идёт от уникальности к обощению.
Если отталкиваться от существующих объектов, придётся как раз по-царски их обобщать, если проектировать новый мир со своими объектами, можно и от обобщения к конкретным объектам пойти.
А в общем-то, какая разница, главное - чтобы объекты, их иерархия и свойства не противоречили здравому смыслу
> Всё сводится к тому, что истинный программист вне парадигм, а питушок - заедушная макака, которая выучила одну технологию ваяния говно а ваяет говно за еду.
+100500
superhackkiller1997 10.08.2013 21:09 # −1
Это есть ещё в 100500 других языков.
>Анскильные животные и так пишут код, парадигма не важна. Разве что в ФП их меньше.
Ещё как важна - ты попробуй без ООП чего-то написать - будет багет. В любой заедушной пописушке сначала ООП, потом код.
>Не надо выкидывать ООП, не дураки его придумали. ООП можно просто держать про запас, может пригодиться.
Надо. Ты не понимаешь для чего эти не дураки его придумали - для облегчения работы обезъянок, ибо это было на заре программного бума. Если твой скилл позволяет тебе понимать на уровне <5% - тебе не нужны никакие парадигмы и прочее говно. Все вещи из ООП юзались за долго до ООП.
>Если отталкиваться от существующих объектов, придётся как раз по-царски их обобщать, если проектировать новый мир со своими объектами, можно и от обобщения к конкретным объектам пойти.
ООПешники ничего не создают - они собирают кубики. Нет, даже если ты создаёшь мир - ты создаёшь один объект для какой-то цели, потом другой объект - и потом уже объединяешь, ибо в противном случае ты себя ограничиваешь и у тебя с шансом 100% выйдет говно.
>А в общем-то, какая разница, главное - чтобы объекты, их иерархия и свойства не противоречили здравому смыслу
Не нужно. Разница огромна.
1024-- 10.08.2013 21:33 # 0
Не факт. Пусть for есть и в Pascal с Lua, но там надо end писать вместо скобочки. А сейчас придёт ТС напишет свой лисповский defun со скобочками.
Сходство с сишкой заметно. Да, не в jQuery-высерах. В телах функций сходство есть.
> Все вещи из ООП юзались за долго до ООП.
+100500
Особенно радует, когда пиарят инкапсуляцию и модульность в контексте ООП.
> В любой заедушной пописушке сначала ООП, потом код.
ООП ради ООП - зло. Это действительно так.
superhackkiller1997 10.08.2013 22:19 # −1
Не, паскаль вообще не язык. В твоём жс так же много от паскаля, не меньше, чем от сишки. Но явное говнище, типа паскалевского фора, бегинов не попащили - видать не совсем идиотами были.
>Особенно радует, когда пиарят инкапсуляцию и модульность в контексте ООП.
ООП - высер идиотов, которые решили, что домохозяйки могут быть программистами. И ведь были правы - в рашке самый популярный программист - это секретарша.
Я ничего не имею против идей из которых сделали ООП - я ненавижу то говно, которое называют ООП, вернее ООП говного мозга. Юзать что-то это возможность, а не обязанность.
1024-- 10.08.2013 23:08 # 0
Не надо так. С паскаля многие начинали, писали свои первые программы.
> Но явное говнище, типа паскалевского фора, бегинов не попащили
зато в JS '0' == !'0', и это не баг, а фича.
> высер идиотов, которые решили, что домохозяйки могут быть программистами.
сколько понятий из мира IT под это определение попадает :)
> Юзать что-то это возможность, а не обязанность.
Помню, был у меня лютый баттхёрт, когда узнал, что в Java надо создать хоть один класс, чтоб написать программу.
Хм, что-то я сегодня необыкновенно упорот. Надо пару-тройку дней выждать. Терпеть, комменты не писать, может отпустит.
superhackkiller1997 11.08.2013 00:45 # −1
Об этом они должны забыть, искупить грехи - исповедатся перез ричи и не упоминать об этом в приличном обществе.
>зато в JS '0' == !'0', и это не баг, а фича.
И в чём смысл?
>Помню, был у меня лютый баттхёрт, когда узнал, что в Java надо создать хоть один класс, чтоб написать программу.
Ну дак - жаба создавалась в момент программного бума.
kegdan 11.08.2013 10:55 # 0
>Об этом они должны забыть, искупить грехи - исповедатся перез ричи и не упоминать об этом в приличном обществе.
Я с Qbasic начинал. Щас без слез смотреть не могу. И когда кто то говорит, что бейсик говно - меня это не задевает, ибо тут я солидарен.
superhackkiller1997 11.08.2013 11:05 # −1
1024-- 11.08.2013 11:05 # 0
Логическое преобразование !'0' в false, числовое преобразование '0' и false в 0 при сравнении. Побочный эффект преобразования типов, которое - фича, пока им не злоупотреблять.
superhackkiller1997 11.08.2013 11:11 # 0
Хотя это примитивный ПЯП для примитивных задач - аля ваять говно для браузёрки. А требую я с этого говна как с сишки - непорядок, прости.
1024-- 11.08.2013 11:35 # 0
Весело было, когда я захотел по-быстрому написать на JScript.NET (хоть и не JS, но некоторые штуки ECMAScript за собой тянет, хоть и в нём есть фичи .NET) простую обработку изображений. Скорость не была особо важна, главное - возможность поэкспериментировать.
Но всё равно работало уж очень медленно. Из-за того, что при делении числа из целых преобразовывались в плавающие. Типы делимого и делителя были заданы, но всё равно преобразование выкурить не удалось.
superhackkiller1997 11.08.2013 11:43 # −1
Меня смешат питушки, которые говорят, что "жс медленне сишки в 5раз", а когда им говоришь, что минимум на 2порядка - питушки начинают кукарекать, что в сишке юзать оптимизации нельзя, фичи х86 - юзать нельзя и прочее. Эти питушки даже не учитываю того, что в любой браузёрке под любую аппаратную платформу - тысячи х86/арм онли кода - но куда им.
Питухи, фу.
1024-- 11.08.2013 12:20 # 0
Подозреваю, если использовать C#, ситуация будет лучше.
Вот, написал парочку примеров на C# и JScript.NET.
Тот, что на C#, выполняется у меня за 7.48с (с оптимизацией - за 6.3), а другой - за 19.22, хотя я, мать их, типы указал.
superhackkiller1997 11.08.2013 12:59 # −1
32битный инт 2.5сек -m64, 2сек -m32, ибо ггц питух только на -m32 нормально анролит. даблы 3сек, 32битные флоаты будут в районе 2-х, ибо чем длиннее число ты делишь - тем медленнее работает див.
Как мне померить твоё гумно?
superhackkiller1997 11.08.2013 13:03 # −1
1024-- 11.08.2013 12:51 # 0
Все питушки, кто говорят, что JS медленнее в N раз. Да, вероятность написать на C быстрее крайне велика, но дело в конкретном примере.
Кстати, такая штука в хроме 28м за 10.1с выполняется.
А вариант на сишке под GCC 4.5.2 с O3 - за 5.1с
Конечно же, всё это надо оптимизировать, но это дело царей. Я не выжму из сишки меньше 5 секунд.
superhackkiller1997 11.08.2013 13:11 # −2
Собирай gcc -Ofast -march=native -m32 main.c -lgomp -funroll-loops -funroll-all-loops -fno-align-labels
1024-- 11.08.2013 19:35 # 0
JScript.NET скорее всего в винде только доступен. По крайней мере, несколько месяцев назад в mono его не было.
> Собрал v8 - 3.5сек, я выпилил типы - ибо он ругался
Как всё серьёзно. Не надо было ради этого цикла так возиться.
JavaScript можно было и в Firefox запустить
> Собирай gcc -Ofast -march=native -m32 main.c -lgomp -funroll-loops -funroll-all-loops -fno-align-labels
Заинклюдил stdint.h, stdio.h, omp.h, иначе была питушня, вышли те же 5.1-5.2с.
Анроллинг защитан. С ним мой вариант с тем же int ускорился и отработал за 4.5-4.6.
Мой вариант с uint32_t работает 5.3с, следовательно царецикл с его 5.1 защитан (с int_32t - 4.50-4.52)
Пример примитивный я взял только ради деления, из-за которого в JS-подобных языках могут быть проблемы.
В JScript.NET я зафиксировал тип, но при делении числа преобразовывались туда-обратно.
V8 понял, что тип постоянен и из-за деления запилил плавающие числа. Кстати, мой вариант на сишке с float/double даёт 10.1с, как и хром.
Вот что с C# - не очень понятно.
А cscript гарантированно тормозит из-за интерпретации и выдаёт 230 секунд.
Надо будет посмотреть в сторону Asm.JS. Может, прокатит поделить два инта по-человечески.
superhackkiller1997 11.08.2013 20:28 # −2
Я не умею.
Собирается 1минуту. Кстати, для питушков поясню: neon - это sse для арм, т.е. жабаскрипт тормазит на арм так, что потребовалось юзать неон. Пусть мне ещё покукарекают про переносимость жс и то, что я не могу юзать симды.
>Кстати, мой вариант на сишке с float/double даёт 10.1с, как и хром.
Флоаты, вернее конвейерное умножение/деление работает так же. Почему у тебя флоаты так тормазят - вопрос открытый и не ясный.
kegdan 11.08.2013 10:52 # 0
А что в этом такого?
1024-- 11.08.2013 11:13 # +1
Ну вот писал я на сишке и радовался, а тут взяли и навязали мне ООП. Даже, чтобы написать "hello, world", надо класс создать, хотя достаточно одной функции main. ООП ради ООП.
superhackkiller1997 11.08.2013 11:18 # −1
1024-- 11.08.2013 11:46 # +1
Труъ ООПешник скажет, что не надо пихать всё в Main, надо стараться оставить там как можно меньше и предложит создать парочку-десяточек серьёзных классов.
Вон, примерно как в http://habrahabr.ru/company/abbyy/blog/173885/ делали.
kegdan 11.08.2013 10:50 # 0
Сишкаеб детектед.
>ООП - высер идиотов, которые решили, что домохозяйки могут быть программистами
А Си - язык королей?
> Я ничего не имею против идей из которых сделали ООП - я ненавижу то говно, которое называют ООП, вернее ООП говного мозга. Юзать что-то это возможность, а не обязанность.
А тут полностью согласен. Есть такие люди - увидели что-то новое, вкусное, молодежное и давай пихать во все щели. Все хорошо в правильных пропорциях.
superhackkiller1997 11.08.2013 11:02 # 0
Анскильная кукарекушка детектед.
>А Си - язык королей?
Си - это единственный язык, который тебя нивчём не ограничивает. Я на нём могу писать всё, что угодно и как угодно. До гибкости Сишки, её простоты, компактности, быстроты и красоты - тебе, питушку, как до луны пешком - хотя это для тебя, заедушной макаки, не аргументы.
>А тут полностью согласен. Есть такие люди - увидели что-то новое, вкусное, молодежное и давай пихать во все щели. Все хорошо в правильных пропорциях.
Всё хорошо, когда башка варит. Сначала идея, потом реализация - потом воплощение её, и уже по мере воплощения ты выбираешь как писать.
У тебя тотальное нарушение думательных процессов, всё криво в говно - вот до чего сишарпик доводит.
Никакое ООП не нужно пропацанам - пропацан итак знает и понимает всё. Он сам придумает себе и ООП, и хренопе. ООП нужно питушкам, как талмуд, в котором написанно "как нужно делать", причем это "как" не учитывает реальный мир вообще - учитываются лишь капиталистические ценности, аля быстрая взаимозаменяемость макак, низкий порог вхождение - делай по книнижульки и ставь кубики - насыщенность рынка, дешевая рабсила и взаимозаменяемость. Это то, для чего были придуманные жабы/сишарпики, да и ооп в частности.
inkanus-gray 12.08.2013 09:03 # +1
На словах ты Лев Толстой, а без пруфов ну-ты-понял. Жду список заимствований в ЖС из Паскаля.
На мой же взгляд от Паскаля в ЖС ничего нет, ЖС скорее похож на Рапиру.
superhackkiller1997 12.08.2013 09:20 # −1
inkanus-gray 12.08.2013 09:24 # +1
superhackkiller1997 12.08.2013 09:47 # −1
Это семантика, а семантики в паскале нет, ибо он говно.
>Variant — это костыль, такой же можно и в сишечке за несколько минут написать:
Питушок, иди подучи матчасть - в любом ПЯП это такой же кастыль.
inkanus-gray 12.08.2013 09:50 # +1
superhackkiller1997 12.08.2013 10:17 # −1
Запомни, питушок, то, что написанно в твоей говнокнижечке - этим ты можешь подтереться. О семантики сишки могут рассуждать только те, кто это сишку осилил. Осиливаешь сишку - идёшь и смотришь алгол, а потом уже кукарекаешь, повторю 10-й раз.
В очередной раз кто-то из питушков пробалаболился и понеслось. В паскале нет семантики, вменяемой семантики - его семантика такое говно, которое могут юзать лишь тотальные упорошки вроде вас с тарасом.
kegdan 11.08.2013 10:45 # 0
Логично. Сначала думай - потом делай.
>ООПешники ничего не создают - они собирают кубики.
И пока оопшники делают домики из кубиков, сишники плавят пластмассу
Старый мир умирает с теми, кто не способен понять нового
superhackkiller1997 11.08.2013 10:54 # −1
Реально? Какое же ты животной, уйди нахрен, питушок. Вот ты делаешь байду, и вместо того, чтобы подбирать материалы в зависимости от ситуации - будет мне как питух орать "я юзаю только говно - сначала думаю, потом делаю - зачем мне другие материалы - только говно".
>И пока оопшники делают домики из кубиков, сишники плавят пластмассу
Животное, я тебя солью в такое говно с твоим ООП. Разница в нашем скилле колоссальна, и пока ты, питушок, поднимаешь кубик - я создаю себе любой материал. Ты не путай сишника и себя, макаку с атроффированным мозгом.
>Старый мир умирает с теми, кто не способен понять нового
Глупый питушок, кукарекай - пока есть те, за счёт которых ты живёшь. Не станет их - ты поймёшь насколько ты бесполезен. Любая собиралка любит кукарекать, пока есть сишники, которые плавят им пластмассу и ваяют кубики, но по твоей же логике - они не нужны, что ты, говно, будешь делать без кубиков.
Мне смешно смотреть на тебя, питушок. Ты не разу не видел вменяемых сишников и даже не представляешь что такое сишка - фу. Кукарекушка.
j123123 02.01.2020 20:47 # +1
AnalBoy 02.01.2020 21:40 # 0
tir 06.08.2013 13:05 # −14
Не думаю, что в данном примере это имело место, НО
такая реализации позволяет подменить функцию округления внесением изменения в ОДНОМ месте. В целом, паттерн Strategy сила. В примере с финансовым калькулятором в п. 2 выше он был бы очень уместен.