Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Что-то вроде учебника начального уровня. (https://javascript.ru/forum/project/20727-chto-vrode-uchebnika-nachalnogo-urovnya.html)

DarkGoodWIN 15.08.2011 13:39

Что-то вроде учебника начального уровня.
 
Недавно начал изучать JavaScript, решил описать поэтапно как это происходило. Собственно это можно считать чем-то типа учебника или набора статей для тех, кто только только начинает изучать этот язык.
Если кому-то интересно - посмотрите, буду признателен за комментарии, критику и отзывы.

http://www.my-free-soft.ru/2011/07/javascript.html
http://www.my-free-soft.ru/2011/07/blog-post_11.html
http://www.my-free-soft.ru/2011/07/blog-post_7160.html
http://www.my-free-soft.ru/2011/07/blog-post_7160.html

P.S. На самом деле не знаю, стоит-ли это продолжать или пациент скорее мёртв, чем жив и это никому не нужно:)

kobezzza 15.08.2011 13:49

Почти всё - вода) Куча неточностей, например смешиваешь 2 понятия: атрибуты и свойства, а ето не гуд, на счёт this в JS тоже нельзя так однозначно писать:) В общем: для учения других - противопоказано, для записи своих собственных мыслей - оч правильный подход, т.к. так лучше запоминается и осмысливается) Удачи в освоении!

DarkGoodWIN 15.08.2011 14:04

Спасибо за ответ))) Почитал про атрибуты и свойства - действительно не совсем одно и то же.

Riim 15.08.2011 14:57

Хороший материал для совсем новичков (в т. ч. в программировании вообще), неточности допустимые для такого уровня, "плохих" неточностей я не увидел. Вода? Новичкам она нужна, они чуствуют себя в более дружественной обстановке.
DarkGoodWIN, у тебя хорошо получается.

DarkGoodWIN 15.08.2011 14:59

Цитата:

Сообщение от Riim (Сообщение 120667)
Хороший материал для совсем новичков (в т. ч. в программировании вообще), неточности допустимые для такого уровня, "плохих" неточностей я не увидел. Вода? Новичкам она нужна, они чуствуют себя в более дружественной обстановке.
DarkGoodWIN, у тебя хорошо получается.

Спасибо, приятно слышать:)

monolithed 15.08.2011 16:30

DarkGoodWIN, какова цель этих статей?

Gozar 15.08.2011 16:32

не гуд писать так:

<table ID = "tbl8765875120451524678" BORDER = 2 width = 80% height = 80%>


гуд как минимум так:
<table id="tbl8765875120451524678" border="2" width="80%" height="80%">


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

Цитата:

Сообщение от monolithed (Сообщение 120683)
какова цель этих статей?

стянуть побольше народу, для показы рекламы

monolithed 15.08.2011 16:43

Цитата:

Сообщение от Gozar
<table id="tbl8765875120451524678" border="2" width="80%" height="80%">

предпочитаю так:
<table />

:)

DarkGoodWIN 15.08.2011 17:11

Цитата:

Сообщение от Gozar (Сообщение 120684)
стянуть побольше народу, для показы рекламы

Да, да, килобайты текста ради десятка посетителей в день:)
Именно этому я и посвящу свою жизнь.

Цитата:

Сообщение от Gozar
не гуд писать так:

<table ID = "tbl8765875120451524678" BORDER = 2 width = 80% height = 80%>

уж извините, кто как пишет, в оригинале этой книги, например:
http://www.amazon.com/JavaScript-Def...3413606&sr=8-3
используется именно ID.
Как я понял из того, что видел, для HTML атрибутов используются большие буквы, а вот уже для обращения к методам/свойствам JS - классический вариант.

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

За отсутствие кавычек - спасибо, думаю и правда лучше поставить.
Так или иначе - спасибо за критику.

P.S. так или иначе, следовало писать или всё заглавными буквами или всё маленькими. Полностью согласен, что для новичков важно внимательное и последовательное оформление кода. Если буду продолжать этим заниматься пересмотрю повнимательней.

DarkGoodWIN 15.08.2011 17:14

Цитата:

Сообщение от monolithed
DarkGoodWIN, какова цель этих статей?

не успел ответить - ответили за тебя:)
Показалось, что это может быть полезным для тех, кто вообще не знает с чего начать.
То есть я ничего толком не знаю что это за язык, решил его изучить, у меня возникают вопросы, пока я их не забыл, решил написать ответы.

kobezzza 15.08.2011 17:26

Цитата:

Сообщение от DarkGoodWIN (Сообщение 120692)
уж извините, кто как пишет, в оригинале этой книги, например:
http://www.amazon.com/JavaScript-Def...3413606&sr=8-3
используется именно ID.
Как я понял из того, что видел, для HTML атрибутов используются большие буквы, а вот уже для обращения к методам/свойствам JS - классический вариант.

По стандарту xhtml вообще запрещено использовать верхний регистр в названии тегов или атрибутов и данный документ считается не валидным)

В html разумеется без разницы)

http://validator.w3.org/check

DarkGoodWIN 15.08.2011 17:35

Отсюда вывод, даже классика может устареть:(
Благодарю за информацию.
Ну и да, вероятно если я пишу на JS, необходимо адаптироваться к стандартам сообщества именно JS программистов.

kobezzza 15.08.2011 17:45

Цитата:

Сообщение от DarkGoodWIN (Сообщение 120698)
Отсюда вывод, даже классика может устареть:(
Благодарю за информацию.
Ну и да, вероятно если я пишу на JS, необходимо адаптироваться к стандартам сообщества именно JS программистов.

Ну почему устареть, в HTML5 прекрасно валидируется и верхний регистр и атрибуты без кавычек и т.д. Тут дело в том, что xhtml основан на xml и наследуют многие его строгости, а html во первых основан на другом языке (sgml) и гораздо более терпящий в плане синтаксиса.

У JS вообще нету как такового стандарта написания кода (если конечно не считать стандарт от Крокфорда и т.д.). Как правило программисты приходят в ЖС с других языков и тащут за собой свои привычки и т.д. Кому-то нравится ставить точку с запятой, кому то нет (я например названия методов в объектах всегда начинаю с заглавной буквы, ибо мне так нравится:) )

А вот что касается вёрстки, то там стандарты как раз есть и если уж учить новичков, то выбор однозначно - xhtml, ибо он дисциплинирует.

DarkGoodWIN 15.08.2011 17:52

Согласен, всегда лучше писать так, что не придерёшься.:)
По крайней мере стремиться к этому.
В общем что нашёл, поправил, всем ещё раз спасибо за критику.

Gozar 15.08.2011 19:55

Цитата:

Сообщение от DarkGoodWIN (Сообщение 120692)
уж извините, кто как пишет

А потом тех, кто пишет как хочет "бьют по почкам" и не берут на работу.

DarkGoodWIN 15.08.2011 20:03

Цитата:

Сообщение от Gozar (Сообщение 120729)
А потом тех, кто пишет как хочет "бьют по почкам" и не берут на работу.

Ну мне уже объяснили, что как Вы написали - правильней.
Насчёт не берут на работу - сильно как повезёт. Если это не касается соблюдения стандартов языка - в каждой компании приветствуется свой стиль оформления.
В любом случае согласен с тем, что пытаться учить как делать неправильно или даже не совсем правильно - зло, вроде всё о чём мне написали исправил, постараюсь впредь меньше "косячить".

B~Vladi 16.08.2011 21:22

Цитата:

Сообщение от kobezzza
я например названия методов в объектах всегда начинаю с заглавной буквы, ибо мне так нравится

За такие вещи по рукам надо давать, как минимум (про работу вообще молчу). В JS с первой заглавной буквы пишутся конструкторы. Константы все с заглавных. остальное - camelCase. Ещё распространено именование "приватных" свойств с префиксом "_".

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

PS: даже не хочу ничего слушать про другие стили именования - это всё "от лукавого" :)

kobezzza 16.08.2011 22:09

Я слышал про такое мнение) Но увы, у меня своё:) И кстати на работе мне меньше от этого не платят (а платят мне не мало):)

Ну то что константы лучше писать в верхнем регистре с подчёркиванием - это я согласен, про приватные свойства - тут я тоже считаю иначе, да и вообще - это глупая тема ведущая к холивару:) Если меня берут в проект, где есть стандарт стиля оформления кода, то разумеется я его придерживаюсь, а так - это сугубо моё дело:)

Уважаю, не уважаю - по моему глупый аргумент:)

Gozar 16.08.2011 22:14

B~Vladi,
+1
kobezzza,
-1
уважение превыше всего ))

kobezzza 16.08.2011 22:17

Исходя из ваших умозаключений, если я не пишу в нативном для JS стиле, то я не уважаю язык, НО если я не пишу в стиле, который нравится мне, то я не уважаю себя и наконец, если я не пишу в стили, в котором пишут мои коллеги по работе, то я не уважаю их + тут есть бонус в виде возможности быть уволенным:haha:

Чёрт, я запутался:-?

B~Vladi 16.08.2011 22:38

Цитата:

Сообщение от kobezzza
стандарт стиля оформления кода

Не путай стиль написания и стиль именования. К стилю написания относятся переносы строк, пробелы и прочие мелочи. Стиль именования задан самим языком. В PHP, например, тебя как минимум не поймут за camelCase.

Цитата:

Сообщение от kobezzza
если я не пишу в нативном для JS стиле, то я не уважаю язык

Если ты пишешь не в нативном стиле именования - ты пишешь разными стилями. Читать такой код сложно и не очевидно с первого взгляда.
Цитата:

Сообщение от kobezzza
если я не пишу в стиле, который нравится мне, то я не уважаю себя

Если твой стиль именования не соответствует нативному стилю языка, на котором ты пишешь - значит у тебя каша в голове. Это, как правило, происходит после перехода с другого языка, на котором ты писал до этого. Такие как ты придумывают "классы" в JS, потому что чувствуют себя не уютно. Тоже самое чувствуется и при именовании.
Цитата:

Сообщение от kobezzza
если я не пишу в стили, в котором пишут мои коллеги по работе, то я не уважаю их

Если твои коллеги такие же быдлокодеры как ты, то их и уважать не за что. Ссышь отстаивать свою позицию? Стадный инстинкт? Ну что же, далеко пойдешь.
Цитата:

Сообщение от kobezzza
+ тут есть бонус в виде возможности быть уволенным

Если компания не ценит мнения своих сотрудников - самому нужно бежать. Опять же - ссышь.

И где ты работаешь? Что бы мне вдруг не попасть в ваше быдлостадо.

B~Vladi 16.08.2011 22:48

Цитата:

Сообщение от kobezzza
Как правило программисты приходят в ЖС с других языков и тащут за собой свои привычки и т.д.

Это одно из проявлений быдлокодерства. Знаешь такую поговорку - со своим самоваром в гости не ходят?

И ещё. Стиль именования должен быть один - нативный. Этот аргумент бьёт все остальные, я уже молчу про "мне так нравиться". Стиль оформления можно автоматически (предварительно настроенный, в любой профессиональной IDE) поправить перед коммитом простой комбинацией клавиш (CTRL+ALT+L в IDEA, например).
Таким образом, не нарушаются правила оформления и не придется переучиваться.

kobezzza 16.08.2011 22:52

B~Vladi не будь такой букой:) Кстати у тебя много противоречий, ну да ладно)

Ссу, не ссу - "Никто не смеет называть меня трусом" (С) Марти, Назад в будущее:D
Глупый аргумент, как и глупая тема для обсуждения, которая уже превращается в флейм. Не хочу продолжать, удачи мой дорогой госу:)

Kolyaj 16.08.2011 22:58

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

B@rmaley.e><e 16.08.2011 23:03

Цитата:

Сообщение от B~Vladi
В PHP, например, тебя как минимум не поймут за camelCase.

Да ну? И это, прошу отметить, один из наиболее популярных php фреймворков.

kobezzza 16.08.2011 23:03

Цитата:

Сообщение от Kolyaj (Сообщение 120971)
kobezzza,
тебя не смущает, что у тебя половина вызовов в одном стиле, половина в другом? И тебе всегда приходится задумываться, вызываемый метод тобой реализован или кем-то другим, чтобы понять, как его записать?

Ну не совсем так, например если я пишу расширение, то разумеется я пишу в стиле того, что расширяю, а если у меня есть либа, которая полностью написанная мною и т.д. то я пишу в стиле, который нравится мне (за исключением, если я пишу на заказ и т.д. и заказчик обратил на это внимание). Кстати моё стиль в принципе очень похож на нативный JS, есть некоторые изменения и всё:) И я не думаю, что это повод сжечь меня за инакомыслие.

B~Vladi 16.08.2011 23:17

Цитата:

Сообщение от kobezzza
Кстати у тебя много противоречий, ну да ладно)

Хоть одно приведи.
Цитата:

Сообщение от kobezzza
Глупый аргумент

No comments... У тебя вообще никаких аргументов нет.
Цитата:

Сообщение от B@rmaley.e><e
Да ну?

if($isClass && (class_exists($className,false) || interface_exists($className,false)))

По твоему исходники этого фреймворка является примером для подражания? Вообще я не пишу на PHP и не знаю точно как у них там принято. За то я знаю что на PHP достаточно быдлокодеров. Ты когда-нибудь видел достойные коды на Perl, написанные в_левом_стиле? Или другом, более серьезном языке, чем PHP.
Цитата:

Сообщение от kobezzza
И я не думаю, что это повод сжечь меня за инакомыслие.

А я думаю.

UPD: Вообще, пробелы после запятых ставят везде, так что этот фреймворк мне уже не нравится.

B@rmaley.e><e 16.08.2011 23:39

Цитата:

Сообщение от B~Vladi
Вообще я не пишу на PHP и не знаю точно как у них там принято.

Цитата:

Сообщение от Yii sources
$filter['class']=$filterClass;
$filter=Yii::createComponent($filter);

Я тоже не пишу, но знаю, что в PHP единого стиля, в общем-то, нет. Где-то используется разделение нижним подчеркиванием (старые функции, типа array_keys), где-то camelCase (преимущественно новый объектно-ориентированный функционал), а где-то вообще ничего (htspecialchars, addslashes, etc).

Цитата:

По твоему исходники этого фреймворка является примером для подражания?
Да, я полагаю, что они достаточно хороши.
Цитата:

Сообщение от B~Vladi
UPD: Вообще, пробелы после запятых ставят везде, так что этот фреймворк мне уже не нравится.

Да, пробелов маловато.

Код, как известно, пишется для человека, а не для компилятора. Поэтому и стиль именования нужно выбирать удобный для команды. С поправкой, конечно, на стиль языка. Особенно если придется часто и много работать со встроенными средствами. Если же бо́льшую часть времени придется работать с собственным кодом, то тут стиль языка особой роли не играет.

B~Vladi 17.08.2011 01:19

Цитата:

Сообщение от B@rmaley.e><e
Поэтому и стиль именования нужно выбирать удобный для команды.

Если команда давно пишет на JS - обычно проблем не возникает в этом вопросе.
Если это команда "веб-мастеров", то всё равно нужно выбирать удобный стиль (как ты верно и указал), который может и не сходиться с нативным (скорее всего так и будет с теми, чей основной язык PHP). Но это не значит, что это единственно верный вариант.

За стиль именования я готов биться до конца :yes:
Если есть желание - могу очно вправить мозг :)
Завяжем на этом.

Kolyaj 17.08.2011 08:11

Цитата:

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

Т.е. у вас всё ещё хуже. Вам мало помнить, как называется функция, ещё надо помнить, как она записана. Жуть в общем.

x-yuri 17.08.2011 09:06

Цитата:

Сообщение от DarkGoodWIN
Согласен, всегда лучше писать так, что не придерёшься.

придраться всегда можно ;)

Цитата:

Сообщение от DarkGoodWIN
Ну мне уже объяснили, что как Вы написали - правильней.

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

Цитата:

Сообщение от B~Vladi
Не путай стиль написания и стиль именования. К стилю написания относятся переносы строк, пробелы и прочие мелочи. Стиль именования задан самим языком. В PHP, например, тебя как минимум не поймут за camelCase.

Zend Framework что ли упомянуть...

Цитата:

Сообщение от kobezzza
я например названия методов в объектах всегда начинаю с заглавной буквы, ибо мне так нравится

чтобы писать в ненативном стиле, должны быть причины. Большинство причин именно такие

Цитата:

Сообщение от kobezzza
А вот что касается вёрстки, то там стандарты как раз есть и если уж учить новичков, то выбор однозначно - xhtml, ибо он дисциплинирует.

хм, неужели существует что-то, что дисциплинирует лучше, чем свои собственные ошибки?

Цитата:

Сообщение от Kolyaj
Т.е. у вас всё ещё хуже. Вам мало помнить, как называется функция, ещё надо помнить, как она записана. Жуть в общем.

есть такой анекдот, когда в переходе играют два музыканта, молодой и старый. Молодой играет очень быстро, очень технично... в общем старается из всех сил. А старый тупо дергает одну струну. При этом все люди столпились в основном у старого музыканта. Ну и спрашивают его:
- А в чем дело, собственно?
- Понимаете... он просто еще не нашел свою ноту :)

DarkGoodWIN 17.08.2011 12:01

Цитата:

Сообщение от x-yuri
забудь это слово. Его обычно используют, когда не знают причин или думают, что знают

О том, что как писать не могут договориться даже производители браузеров. Если бы существовали универсальные решения в языке - можно было бы говорить о том что нет понятия "правильней" или "не правильней", а есть понятие "правильно", то есть по стандарту или нет. Насколько я слышал, если писать исключительно по стандартам - работать всё будет весьма печально.

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

DarkGoodWIN 17.08.2011 12:12

Цитата:

Сообщение от x-yuri
я например названия методов в объектах всегда начинаю с заглавной буквы, ибо мне так нравится

Добавлю. Да, я всю жизнь программировал на компилируемых языках и не могу сразу полностью избавится от их наследия. Так вот там, например, в Delphi именование переменных и методов регистронезависимое, то есть DoSmth, doSmth и dosmth будет для компилятора одним и тем же, в C++ это разные вещи.
Если я пишу на делфи, я стараюсь всегда вызывать методы в том регистре, в котором они написаны, но, если я вызову метод doSmth как DoSmth - это не будет не правильно, потому что компилятор это позволяет.
Стандарты придуманы для упрощения общения между программистами и тут они весьма ценны, если я не собираюсь никому показывать свой код, я думаю я вполне могу себе позволить использовать тот стиль, в котором мне комфортнее. И это не будет быдлокодерством, быдлокодерство во всех языках это прежде всего Copy/Paste.

DarkGoodWIN 18.08.2011 16:00

Добавил всё-таки ещё статью:

http://www.my-free-soft.ru/2011/08/blog-post_17.html

x-yuri 18.08.2011 16:58

дело не в том, правильней или правильно. Может, я как-то по-своему понимаю это слово. Но, во-первых, оно какбы намекает, что есть правильный способ решения проблемы, а все остальные - неправильные, вне зависимости от обстоятельств. Во-вторых, оно не вызывает вопрос "почему?", способствует тому, что люди не думают, а делают "так", ибо правильно. Ну и просто, от него веет пафосом, религией и пуризмом. Есть слово "лучше", так вот оно лучше :)

DarkGoodWIN 18.08.2011 17:07

Цитата:

Сообщение от x-yuri
Есть слово "лучше", так вот оно лучше

Согласен, слово лучше сюда подходит лучше:)

DarkGoodWIN 28.09.2011 17:57

Ещё статья:

http://www.my-free-soft.ru/2011/09/blog-post_22.html

DarkGoodWIN 05.10.2011 18:19

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

http://www.my-free-soft.ru/2011/09/blog-post_29.html
http://www.my-free-soft.ru/2011/10/blog-post_4520.html


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