1.4, Аноним (-), 11:19, 24/04/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –5 +/– |
и эти не осилили ООП на прототипах? Одна из немногих вещей, которая очень нравиться в JavaScript, не знаю почему её все так боятся.
| |
|
2.7, Аноним (-), 11:46, 24/04/2017 [^] [^^] [^^^] [ответить]
| +4 +/– |
> ООП на прототипах
Какое же это ООП, когда _приватный метод дочернего класса способен перекрыть _приватный метод родительского класса просто по факту того, что оба имеют одно и то же название?
| |
|
|
4.10, Аноним (-), 11:57, 24/04/2017 [^] [^^] [^^^] [ответить]
| +4 +/– |
Инкапсуляция? Не, не слышал. Тебя легко завалить на собеседовании уже на первом вопросе.
| |
|
5.13, Аноним (-), 12:21, 24/04/2017 [^] [^^] [^^^] [ответить]
| –4 +/– |
Жаль, я давно не хожу на собеседования, т.к. обычно получаю прямые приглашения на работу.
А теперь минутка матчасти:
1. В JS нет приватных методов.
2. "Инкапсуляция не является необходимым требованием объектно-ориентированного программирования" ©
3. К родительскому методу всегда можно получить доступ из экземпляра через "this.constructor.prototype".
Еще вопросы, о великий рекрутер?
| |
|
6.15, Аноним (-), 12:39, 24/04/2017 [^] [^^] [^^^] [ответить]
| +4 +/– |
Наследуясь и определяя _приватный член, нужно креститься, чтобы не дай бог не перезатереть _приватный член родительского класса, о котором, разумеется, ничего не сказано в документации (оно и логично, зачем там упоминать о _приватных членах?) Эта проблема неактуальна только в неизменных хелловорлдах, когда с течением времени никто ничего не добавляет ни в базовые, ни в дочерние классы, а в т. н. "цепочке прототипов" не более двух-трех объектов.
> В JS нет приватных методов.
А я думаешь просто так ставлю знак подчеркивания в слове _приватный?
> Инкапсуляция не является
"Заметим, что инкапсуляция является безусловно необходимым требованием для каждого объекта" ©
| |
|
7.16, Аноним (-), 12:46, 24/04/2017 [^] [^^] [^^^] [ответить]
| –3 +/– |
> А я думаешь просто так ставлю знак подчеркивания в слове _приватный?
_приватные члены в JS -- это ещё более бестолковая вещь, чем _приватные члены в Python. В последнем для них хотя бы имена манглятся (как раз чтобы решить проблему с переопределением, кстати). В JS на уровне языка приватных членов нет. Всё. Точка. То, что вы к именам дописываете underscore -- это бесполезная попытка добавить в язык то, чего там нет.
| |
|
8.19, Аноним (-), 12:58, 24/04/2017 [^] [^^] [^^^] [ответить] | +3 +/– | Приватных членов нет, а нужда в них есть Это как раз к вопросу о не знаю почем... текст свёрнут, показать | |
|
9.91, Аноним (-), 01:17, 26/04/2017 [^] [^^] [^^^] [ответить] | +1 +/– | Нужда в них есть если вы хотите переиспользовать переиспользуемый код Другими с... текст свёрнут, показать | |
|
8.26, Аноним (-), 14:52, 24/04/2017 [^] [^^] [^^^] [ответить] | +1 +/– | Сказал так, будто обсосал название любимой библиотеки Фронтендщики любят обмазы... текст свёрнут, показать | |
|
9.29, Аноним (-), 15:01, 24/04/2017 [^] [^^] [^^^] [ответить] | +/– | В C нет ООП вообще, значит ли это, что разработчики ядра Linux любят обмазывать... текст свёрнут, показать | |
|
|
|
6.18, Crazy Alex (ok), 12:48, 24/04/2017 [^] [^^] [^^^] [ответить]
| +5 +/– |
Не знаю, что там насчёт рекрутеров, но если нет хорошей инкапсуляции - про более-менее крупные приложения при вменяемых затратах можно забывать. Собственно, именно поэтому JS и стал проблемным - размеры приложений в вебе выросли, и у него оказалось слишком уж много енудобных теперь особенностей - от прототипов до динамики.
| |
|
7.23, Аноним (-), 14:39, 24/04/2017 [^] [^^] [^^^] [ответить]
| +2 +/– |
Бедные программисты C, а уж программисты ядра... и как они бедные выживают. Нет ничего бессмысленней, чем ООП ради ООП.
| |
|
8.25, Alexey (??), 14:48, 24/04/2017 [^] [^^] [^^^] [ответить] | –1 +/– | Да, именно по этой причине а также некоторых других так мало крупных приложени... текст свёрнут, показать | |
8.46, Comdiv (ok), 18:28, 24/04/2017 [^] [^^] [^^^] [ответить] | –1 +/– | В Си вполне вменяемое сокрытие данных, пригодное в том числе и при программирова... текст свёрнут, показать | |
|
|
|
5.24, angra (ok), 14:40, 24/04/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
Начни с того, что не существует какого-то эталонного ООП. Есть множество ЯП с разными вариантами ООП. Потом открой хотя бы статью на wikipedia для ознакомления с тем, что и на инкапсуляцию есть разные взгляды и в разных ЯП она различна. Ну и закончить можешь на 'Because inheritance exposes a subclass to details of its parent's implementation, it's often said that "inheritance breaks encapsulation"'
При этом за счет замыканий в js возможны действительно приватные методы/функции/свойства, которые не будут перекрыты потомками.
| |
|
6.31, Аноним (-), 15:10, 24/04/2017 [^] [^^] [^^^] [ответить] | +2 +/– | 10 Базовый класс все еще может предоставлять дочернему некий внутренний апи в ви... большой текст свёрнут, показать | |
|
|
|
|
|
|
12.67, Аноним (-), 23:35, 24/04/2017 [^] [^^] [^^^] [ответить] | +/– | Ох ты ж, как вежливо честно Редко тут такое встретишь, поэтому отвечу Надеюс... большой текст свёрнут, показать | |
|
13.72, Аноним (-), 00:32, 25/04/2017 [^] [^^] [^^^] [ответить] | +/– | а вы 8212 технарь на белом коне и со шпагой Теперь прошу прощения отношусь к ... большой текст свёрнут, показать | |
|
|
|
|
|
|
7.81, angra (ok), 08:37, 25/04/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
Повторю еще раз. Нет никакого эталона ООП. Его реализации весьма отличаются в разных ЯП. Проблема не в ООП js, а в людях с синдромом утенка, которые пытаются распространить принципы ООП первого понравившегося им ЯП на все остальные.
| |
|
|
|
|
3.21, Аноним (-), 13:53, 24/04/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
В JavaScript приватных методов в прототипах нет.
или публичные. Или публичные помеченные _
| |
3.94, KonstantinB (ok), 17:25, 26/04/2017 [^] [^^] [^^^] [ответить]
| +/– |
В прототипном ООП нет операции наследования. И приватных методов тоже нет.
Но если так уж хочется - есть Тайпскрипт, он такое просто не скомпилирует. В рантайме через прототипы - да, и в typescript нем можно, конечно, но раз уж такой хитрый код написан, значит, так и надо (а бывает, когда надо - для ORM или для юнит-тестов). В Java ведь тоже можно через Reflection.
| |
|
|
1.5, Аноним (-), 11:21, 24/04/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
26.03.2015 Google отказался от включения Dart в состав браузера Chrome
Но вы пишите, пишите...
| |
|
2.17, Аноним (-), 12:47, 24/04/2017 [^] [^^] [^^^] [ответить]
| +/– |
> 26.03.2015 Google отказался от включения Dart в состав браузера Chrome
> Но вы пишите, пишите...
А что толку от языка в одном браузере, когда надо поддерживать несколько. Всё равно придётся транслировать в JS и обрабатывать этими вашими вебпаками.
| |
|
3.85, Андрей (??), 15:54, 25/04/2017 [^] [^^] [^^^] [ответить]
| +/– |
"Вы можете выполнить код Dart различными способами:
— Транслировать код Dart в JavaScript затем запустить код в современном браузере: Chrome, Safari 5+, и Firefox 4+ (другие браузеры будут поддерживаться позднее).
— Выполнить код Dart в виртуальной машине на стороне сервера
— Использовать Dartboard для написания и выполнения маленьких программ на Dart в окне браузера."
https://habrahabr.ru/post/130064/
| |
|
|
1.6, Аноним (-), 11:29, 24/04/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –6 +/– |
Те, кто не ставят открывающиеся и закрывающиеся фигурные скобки на один уровень, не способны создать хороший язык
| |
|
2.8, Егор (??), 11:53, 24/04/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
Те, кто постят анонимно на опеннете, не способны создать хороший комментарий.
| |
2.20, Аноним (-), 13:40, 24/04/2017 [^] [^^] [^^^] [ответить]
| +5 +/– |
Те, кто не ставят открывающиеся и закрывающиеся фигурные скобки на один уровень
Периодически являюсь членом жюри конкурсов по программированию. Часто вижу такое:
if (a[0] > a[1]) {
maxValue = a[0];
maxIndex = 0;
} else {
maxValue = a[1];
maxIndex = 1;
}
Уверен, уж эти-то ребята создать хороший язык могут.
| |
2.39, F (?), 17:01, 24/04/2017 [^] [^^] [^^^] [ответить]
| –2 +/– |
if (a == b) {
c = true;
d = false;
}
очень удобно!
| |
|
3.45, PSV (?), 18:20, 24/04/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
Вот, вот. И не писать тупые возвраты из функций там, где они нафиг не нужны
| |
3.55, Добрый (?), 20:36, 24/04/2017 [^] [^^] [^^^] [ответить]
| +/– |
Вот я пробовал всякие разные стили оформления кода, в итоге доверяю это дело стандартному форматировальщику из иде.
Если другие разработчики правят тот же код что и я, и так же пользуются стандартным форматировантем - то изменений визуально меньше и коммиты легче читать. Да и вообще на скорость написания кода положительно влияет.
| |
|
|
|
2.22, Аноним (-), 14:11, 24/04/2017 [^] [^^] [^^^] [ответить]
| +/– |
Чтобы отлаживать не оттранслированный код, постоянно пытаясь сопоставить его в голове с исходным, а, собственно, исходный.
| |
2.28, Аноним (-), 14:56, 24/04/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
А зачем вообще нужен этот вебпак, если и без него в целом неплохо? Нажать кнопку и восхититься побежавшим по экрану консольным строчкам, прибавляя ЧСВ фронтендным макакам?
| |
|
3.30, Добрый анон (?), 15:10, 24/04/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ахахаха, что это значит без него в целом неплохо? Вы вообще не в теме?
Вебпак это бандлер, который собирает разрозненные куски кода, разметки, css'a и прочего фронтенд хлама в один жирный bundle.js, по ходу минифицируя, запуская транспилеры и прочее. Это чем-то напоминает классическую компиляцию, когда дерево проекта собирается и оптимизируется одним инструментом. Без него будет лапша и стыд в исходниках. Можно конечно использовать другие бандлеры, но по состоянию на сегодняшний день webpack является самым навороченным.
| |
|
4.33, Аноним (-), 15:26, 24/04/2017 [^] [^^] [^^^] [ответить]
| +/– |
Я в курсе для чего нужны бандлеры. Лапша и стыд в исходниках уж точно не из-за отсутствия вебпаков, скорее из-за кривизны рук разработчиков. Да, где-то они нужны, но чаще необходимости в них нет. И да, прямо сейчас я ковыряю проект, в котором предыдущий разработчик минифицирует все это барахло не при деплое на сервере, а на своей машине, после чего коммитит в репозиторий. Уровень владения инструментами потрясает. И такое в моей практике постоянно.
| |
|
5.36, ygaergafhedg (?), 16:12, 24/04/2017 [^] [^^] [^^^] [ответить]
| +/– |
намешал в кучу про дев, прод, неопытность другого разработчика и не забыл распетушить свое ЧСВ. А потом обижаетесь, почему вас веб-макаками называют. Вы не люди.
| |
|
6.41, Аноним (-), 17:16, 24/04/2017 [^] [^^] [^^^] [ответить]
| +/– |
Такое впечатление, что ты не понял, что я написал. И кто из нас макака?
| |
|
5.42, Аноним (-), 17:41, 24/04/2017 [^] [^^] [^^^] [ответить]
| +2 +/– |
Другой разработчик, очевидно, не хочет, чтобы от него избавлялись, раз коммитит минификацию. Молодец, одним словом.
| |
|
4.80, Аноним (-), 05:05, 25/04/2017 [^] [^^] [^^^] [ответить]
| +/– |
> Вебпак это бандлер, который собирает разрозненные куски кода, разметки, css'a и прочего
> фронтенд хлама в один жирный bundle.js, по ходу минифицируя, запуская транспилеры
> и прочее. Это чем-то напоминает классическую компиляцию, когда дерево проекта собирается
> и оптимизируется одним инструментом.
Н-да. Очередноые откровения о работе капутеров от вебщиков.
Интересно, упаковка всего в архив типа zip у вас под типа инсталляцие проходит?
| |
|
|
|
|
2.40, F (?), 17:02, 24/04/2017 [^] [^^] [^^^] [ответить]
| +/– |
как бы они хром в darts не перевели. И будут поставлять его с darts vm как машиной для исполнения.
ох уж эти NIH-привычки у них...
| |
|
|
2.65, Аноним (-), 22:50, 24/04/2017 [^] [^^] [^^^] [ответить]
| –3 +/– |
А кто такой Гугл и почему меня должно интересовать его мнение?
| |
|
3.88, JSMonkeyAndHelloWorlder (?), 18:39, 25/04/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
Following my keynote at ng-conf 2017 that seemed to indicate that Typescript is now an official language at Google. + тот момент, что angular написан на ts, а не на dart о многом говорит. по сути было давно понятно, что гугл закaпывает дарт, еще со времен анг.конф и выступлений разработчиков с объяснением причин такого выбора.
| |
|
|
|