Вход

Просмотр полной версии : Стиль программирования


SlavaPav
17.06.2011, 23:10
Хотелось бы узнать кто какого стиля придерживается и почему? А так же какие шаблоны ипользуете? И у кого какие "Ага!" моменты сохранились в памяти?

SlavaPav
17.06.2011, 23:33
Один из "Ага!" моментов произошел тогда, когда я понял что наилучших результатов в JavaScript можно достичь если не пытаться копировать методы написания кода не присущие JS , а использовать особенности языка выгодно отличающие его от других (литералы объектов ,функций, массивов; динамическая типизация; функции-данные, замыкания, прототипы и т.д.). Для повтрного использования кода использовать копирование и смешивание объектов, "применять" функции, отказаться от классического наследования.

Именование. Для имен функций camel case:
thisIsFunction();

Для имен модулей и классов:

Module.some_prop;
new SomeMagicClass();


Для данных:
some_piece_of_data = 100;

SlavaPav
17.06.2011, 23:56
Переменные предпочитаю объявлять как можно ближе к месту использования и с одним var:

var str = 'some string', // для строк одинарные кавычки т.к. часто '<a class="slide"></a>'
num = .007,
arr = [1, 2, 3],
obj = {
x: 100,
y: 200,
z: 300
};

melky
18.06.2011, 14:05
предпочитаю 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' ;

}

SlavaPav
18.06.2011, 14:47
То есть ты пытаешься эмулировать строгую типизацию? Для JS по-моему это излишество. Для того что явно показать предназначение переменной, лучше просто давать более ясные имена:

var txt_msg = 'text message',
year_in_days = 365,
man = new Man(),
is_cool = true

melky
18.06.2011, 15:47
То есть ты пытаешься эмулировать строгую типизацию?

нет, просто чтобы было понятно и удобно выводить всё это дело в интерфейс


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,например

monolithed
19.06.2011, 10:51
чтобы вместо s_message не написать пользователю i_message,например
хм. что может быть проще объединения в группу?

var foo = {
text : 'some',
count : 10
};

куда понятней и наглядней

melky
19.06.2011, 10:53
ну, объекты,память, все дела :)

не люблю

x-yuri
22.06.2011, 22:06
венгерская нотация очень редко используется, как это было задумано. И соответственно редко приносит пользу. Чаще приносит вред. Речь шла не о типе данных, хранящихся в переменной, а о том, что хранится в переменной. Т.е. с помощью префиксов можно выделять отдельные категории переменных. Вот хорошие примеры (http://www.joelonsoftware.com/articles/Wrong.html) применения (http://vitaly.harisov.name/article/independent-blocks.html)