LINUX.ORG.RU
ФорумTalks

[JS прекрасен] ООП не нужен


0

2

ООП - это быдлокод, быдлокод не нужен. Убедите меня в обратном. Зачем нужен ООП? Я классы даже никогда не использовал, но проблем читаемости и структуры не наблюдал.

А еще меня бесят такие товарищи, которые боятся делать так:

obj.wrtSel (
	i = addbr (
		"[quote=" +
			(function (){
				if (i = msg.getElementsByClassName ("sign")[0].getElementsByTagName ("a")[0])
					return i.innerHTML;
				else return "anonymous";
			})() + "]"
		+ seltxt.toString ().replace (
			/(?:>>-----Цитата---->>|^)(.*)<<-----Цитата----<</,
			function (str, p){
				if (p!="") return "[quote]" + p + "[/quote]";
				else return "";
			})
		+ "[/quote]"),
	i.length);
(кусок из будущей версии LORCode Tools)

Страшно представить, сколько бы мусоро-переменных у них завелось бы тут. Как обидно, что в единственном популярном языке с нормальным синтаксисом (Python) так, за редким исключением, не сделаешь (и я в нем связывался с теми 100500 муоро-переменных).

cast drBatty, интересно твое мнение. Также, небыдлокодеры, насколько рационален приведенный код?

Ответ на: комментарий от moscwich

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

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

AGUtilities ★★★
()
Ответ на: комментарий от moscwich

Функции (не лямбды) нужны только для того

нет. они ещё и служат для автодокументирования: прочёл название, и уже почти понял что она делает.

AGUtilities ★★★
()
Ответ на: комментарий от moscwich

За рисование {} для одной команды тоже расстреливать надо

наоборот, это существенно повышает безопасность и читабельность кода.

AGUtilities ★★★
()
Ответ на: комментарий от moscwich

Чем хуже оригинальный вариант, который сразу читается?

тем что при багфиксинге, твой код будет легче полностью удалить и переписать, чем прочитать.

AGUtilities ★★★
()
Ответ на: комментарий от AGUtilities

Лишние символы читаемость не повышают никогда. Питоновский код самый читаемый, спорить тут не с чем.

moscwich
() автор топика
Ответ на: комментарий от AGUtilities

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

moscwich
() автор топика
Ответ на: комментарий от moscwich

Лишние символы читаемость не повышают никогда

ты ещё просто не сталкивался с действительно мусорным кодом

AGUtilities ★★★
()
Ответ на: комментарий от AGUtilities

AGUtilities

что конкретно не рационально?

Наличие функции само по себе. Ее вызов. Т. к. это заметно лишнее. Лябды другое дело - они тупо сразу выполняются.

moscwich
() автор топика
Ответ на: комментарий от moscwich

Лишние символы читаемость не повышают

код должен быть завершённым. жаль что ты этого не понимаешь.

AGUtilities ★★★
()
Ответ на: комментарий от moscwich

Я его читаю также, только быстрее

а кроме тебя, над этим кодом больше никто работать не будет?

AGUtilities ★★★
()
Ответ на: комментарий от moscwich

Наличие функции само по себе. Ее вызов. Т. к. это заметно лишнее. Лябды другое дело - они тупо сразу выполняются.

лямбды - это точно такие же функции и вызываются точно также

AGUtilities ★★★
()

Вот эти:

(function (){
				if (i = msg.getElementsByClassName ("sign")[0].getElementsByTagName ("a")[0])
					return i.innerHTML;
				else return "anonymous";
			})

упражнения чтобы ?: не писать?

r ★★★★★
()
Ответ на: комментарий от RedPossum

Да, часть применений паттернов там рассматривается на примере текстового редактора.

Norgat ★★★★★
()
Ответ на: комментарий от moscwich

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

компиляторы давно умеют оптимизировать.

cvs-255 ★★★★★
()
Ответ на: комментарий от moscwich

переменные с полными словами и подчеркиваниями не одобряю

Про минификаторы/пакеры слышал?

JustGuest
()
Ответ на: комментарий от moscwich

пять тыщь строк это 2000$. Такие проекты я даже вряд ли найду

«Даже»? $2000 — это минимальная цена более-менее сложного проекта, за которую берётся квалифицированный программист-одиночка. Нормальная цена среднего приличного проекта — $3000...$5000.

Вообще, по-хорошему, мне кажется, такими проектами целая команда должна заниматься

Ну да. Когда проект на мегабаксы и миллионы SLOC :)

KRoN73 ★★★★★
()
Ответ на: комментарий от moscwich

Дык у тебя 50 тыщь? Ну ты зачетный тролль.

$ find /var/www/bors/bors-core -iname '*.php'|xargs cat|wc -l
54229

Это только типовое ядро. Опенсорс и GPL. Продаю я уже целевые надстройки над ним. Вот, скажем:

$ find /var/www/-------.ru/bors-site/ -iname '*.php'|xargs cat|wc -l
5589

Это в проекте, примерно на $10к. Точно не помню, так как этапов в пять делался.


$ find /var/www/bors/bors-aviaport/ -iname '*.php'|xargs cat|wc -l
30892

Это в проекте авиапорт.ру, в котором я работаю за зарплату.

В совокупности, если собрать всё, написанное за последние лет 10, то тысяч 200..500 строк наберётся, пожалуй. При чём — без копипаста. Ненавижу копипаст. Потому и люблю ООП :)

И, да, безусловно почти весь этот код поддерживается. Лет по 5 — точно.

KRoN73 ★★★★★
()

Раньше не любил JS, а тут немного с node поработал и почти влюбился :) ООП тоже не люблю. А вот такие простенькие плюшки для структурирования кода и создания неймспейсов как в JS и Go радуют душу.

И да, твой код read only.

urxvt ★★★★★
()
Ответ на: комментарий от KRoN73

KRoN73

«Даже»? $2000 — это минимальная цена более-менее сложного проекта, за которую берётся квалифицированный программист-одиночка. Нормальная цена среднего приличного проекта — $3000...$5000.

Я не квалифицированный программист, я фрилансер-быдлокодер. Да и больше html-верстальщик, чем скриптописец вообще. И в квалифицированные программисты (там с соответствующем высшим и т. д. и т. п.) не собираюсь, однако. А $1500 - это месячная зарплата многих инженеров в России на секундочку.

moscwich
() автор топика
Ответ на: комментарий от moscwich

Я не квалифицированный программист, я фрилансер-быдлокодер

А откуда тогда тяга к столь глобальным выводам? :)

А $1500 - это месячная зарплата многих инженеров в России на секундочку.

У меня жена, кандидат наук, 10000 рублей (~$300, ага) в месяц получала. А учителя многие и за 5..6 тыс. рублей работают. Но при чём тут это?

KRoN73 ★★★★★
()
Ответ на: комментарий от HerrWeigel

переменные с полными словами и подчеркиваниями не одобряю

А потом в таком коде сам черт ногу сломит.

Плюсую.

И кстати: вот за какой код расстреливать надо, а не за «лишние символы».

OldFatMan
()
Ответ на: комментарий от moscwich

речь шла конкретно про exit. а вообще, ухожу из треда, твоя неадекватность очевидна.

Binary ★★★★★
()
Ответ на: комментарий от KRoN73

KRoN73

А откуда тогда тяга к столь глобальным выводам? :)

Что ты хотел сказать? Вот тебе профиль и сделай выводы сам, может и посоветуешь чего.

KRoN73

А учителя многие и за 5..6 тыс. рублей работают.

Таки давно уже нет.

moscwich
() автор топика
Ответ на: комментарий от moscwich

Таки давно уже нет.

Таки — да. Правда, может, ты не заметил, что я не сказал «всё». И даже не «большинство». Понятно, что преподаватель в престижной московской гимназии получает поболее квалифицированного программиста :D

KRoN73 ★★★★★
()
Ответ на: комментарий от stack_protector

stack_protector

Экономия переменных была актуальна в каком-нибудь MK-52, а сейчас это просто смешно.

Благодаря этим мнениям появились продукты microsoft и adobe (в адобовских правда качеством интерфейсов и функциональностью быдлокод оправдан).

moscwich
() автор топика

не знаю, что этот код делает, но выглядит он как говно. без ООП (хотя в js функция тоже объект, да) на вложенных функциях и ФВП можно много красивее писать.

anon1984
()
Ответ на: комментарий от KRoN73

В обычной московской школе (пусть даже лучшей в районе) ок. 50к в основном. Ну там от квалификации зависит. Готов поверить, что в регионах ок. 25-30.

moscwich
() автор топика
Ответ на: комментарий от KRoN73

KRoN73

Ненавижу копипаст. Потому и люблю ООП :)

Я тоже не люблю копипаст. и не люблю ООП, но это не мешает мне использовать функции.

moscwich
() автор топика
Ответ на: комментарий от moscwich

Готов поверить, что в регионах ок. 25-30

Это на какой планете?

А то на нешей вот так: (первое попавшееся) http://nabludatel.ru/index.php?modul=news&id=58550

Это _средняя_. А минимальная — раза в два-три меньше.

Кстати, про московские «50 тыс»: http://www.km.ru/v-rossii/2011/07/31/shkolnoe-obrazovanie-v-rossii/s-1-sentya...

KRoN73 ★★★★★
()
Ответ на: комментарий от moscwich

к стати.

ты так и не объяснил, за что ты так не любишь ООП.

AGUtilities ★★★
()

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

stack_protector
()
Ответ на: комментарий от moscwich

Я тоже не люблю копипаст. и не люблю ООП, но это не мешает мне использовать функции.

Когда ты посмотришь дальше собственного носа, ты увидишь, что у тебя скопилось приличное число функций, часть аргументов которых по типу и логике совпадает, т.е. замкнуты они вокруг какого-то одного состояния, которое ты просто хранишь где-то ещё. Так вот, это и есть ООП ;)

yoghurt ★★★★★
()
Ответ на: комментарий от moscwich

Я тоже не люблю копипаст. и не люблю ООП, но это не мешает мне использовать функции.

Я тоже когда-то использовал функции. И даже любил :) Но переход с них на ООП позволил сократить размер кода в 3-5 раз (буквально — довольно много своего кода переписывал с функционального использования на ООП), сильно ускорить время разработки и очень сильно упростить поддержку кода.

Повторное же использование кода в случае ООП вообще нельзя и близко сравнить с функциональным. Последнее вообще практически непригодно для повторного использования :)

KRoN73 ★★★★★
()
Ответ на: комментарий от yoghurt

yoghurt

Когда ты посмотришь дальше собственного носа, ты увидишь, что у тебя скопилось приличное число функций, часть аргументов которых по типу и логике совпадает, т.е. замкнуты они вокруг какого-то одного состояния, которое ты просто хранишь где-то ещё. Так вот, это и есть ООП ;)

+1 Первое вменяемое объяснение за тред. Ну да, ЛОР, конечно, такой ЛОР...

moscwich
() автор топика
Ответ на: комментарий от AGUtilities

интерпретаторы тоже оптимизируют код при интерпретации.

Походу, ты не знаешь, чем интерпретатор от компилятора отличается :)

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.