17.06.2011, 23:10
|
|
Аспирант
|
|
Регистрация: 25.02.2010
Сообщений: 57
|
|
Стиль программирования
Хотелось бы узнать кто какого стиля придерживается и почему? А так же какие шаблоны ипользуете? И у кого какие "Ага!" моменты сохранились в памяти?
|
|
17.06.2011, 23:33
|
|
Аспирант
|
|
Регистрация: 25.02.2010
Сообщений: 57
|
|
Один из "Ага!" моментов произошел тогда, когда я понял что наилучших результатов в JavaScript можно достичь если не пытаться копировать методы написания кода не присущие JS , а использовать особенности языка выгодно отличающие его от других (литералы объектов ,функций, массивов; динамическая типизация; функции-данные, замыкания, прототипы и т.д.). Для повтрного использования кода использовать копирование и смешивание объектов, "применять" функции, отказаться от классического наследования.
Именование. Для имен функций camel case:
thisIsFunction();
Для имен модулей и классов:
Module.some_prop;
new SomeMagicClass();
Для данных:
some_piece_of_data = 100;
|
|
17.06.2011, 23:56
|
|
Аспирант
|
|
Регистрация: 25.02.2010
Сообщений: 57
|
|
Переменные предпочитаю объявлять как можно ближе к месту использования и с одним var:
var str = 'some string', // для строк одинарные кавычки т.к. часто '<a class="slide"></a>'
num = .007,
arr = [1, 2, 3],
obj = {
x: 100,
y: 200,
z: 300
};
|
|
18.06.2011, 14:05
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
предпочитаю camelCase, underscore, а также венгерскую нотацию (это когда в функции дофига переменным с разными типами)
например, вместо :
function count(){
var vsego = a+v,
sdacha = b-h,
message= sdacha > 0 ? 'foo' : 'bar' ;
}
предпочту
function count(){
var i_a = a+v,
i_b = b-h,
s_c = sdacha > 0 ? 'foo' : 'bar' ;
}
|
|
18.06.2011, 14:47
|
|
Аспирант
|
|
Регистрация: 25.02.2010
Сообщений: 57
|
|
То есть ты пытаешься эмулировать строгую типизацию? Для JS по-моему это излишество. Для того что явно показать предназначение переменной, лучше просто давать более ясные имена:
var txt_msg = 'text message',
year_in_days = 365,
man = new Man(),
is_cool = true
|
|
18.06.2011, 15:47
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от SlavaPav
|
То есть ты пытаешься эмулировать строгую типизацию?
|
нет, просто чтобы было понятно и удобно выводить всё это дело в интерфейс
function count () {
var i_sum = a+b,
i_sdacha = h - j,
// например , тут
b_good = i_sum > i_sdacha,
// или тут
s_message = "Вы foobar",
i_message = 1000;
}
короче говоря, при использовании переменных определенного типа.
чтобы вместо s_message не написать пользователю i_message,например
|
|
19.06.2011, 10:51
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от melky
|
чтобы вместо s_message не написать пользователю i_message,например
|
хм. что может быть проще объединения в группу?
var foo = {
text : 'some',
count : 10
};
куда понятней и наглядней
|
|
19.06.2011, 10:53
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
ну, объекты,память, все дела
не люблю
|
|
22.06.2011, 22:06
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
венгерская нотация очень редко используется, как это было задумано. И соответственно редко приносит пользу. Чаще приносит вред. Речь шла не о типе данных, хранящихся в переменной, а о том, что хранится в переменной. Т.е. с помощью префиксов можно выделять отдельные категории переменных. Вот хорошие примеры применения
|
|
|
|