Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Стиль программирования (https://javascript.ru/forum/misc/18119-stil-programmirovaniya.html)

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

Цитата:

Сообщение от SlavaPav (Сообщение 109314)
То есть ты пытаешься эмулировать строгую типизацию?

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

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

Цитата:

Сообщение от melky
чтобы вместо s_message не написать пользователю i_message,например

хм. что может быть проще объединения в группу?
var foo = {
    text : 'some',
    count : 10
};


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

melky 19.06.2011 10:53

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

не люблю

x-yuri 22.06.2011 22:06

венгерская нотация очень редко используется, как это было задумано. И соответственно редко приносит пользу. Чаще приносит вред. Речь шла не о типе данных, хранящихся в переменной, а о том, что хранится в переменной. Т.е. с помощью префиксов можно выделять отдельные категории переменных. Вот хорошие примеры применения


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