Phil Karlton: «There are only two hard things in Computer Science: cache invalidation and naming things.»
(В программировании две беды: инвалидация кеша и именование переменных)
поговорим про вторую беду:
onXClick: function(e) {
//..
},
onRemoveClick: function() {
//..
}
плохие имена для методов. в имени сущности (любой) должно быть показано, для чего она.
не глядя в код, сможешь рассказать, что внутри этих методов и зачем они? а для этих?
function SmileList () { }
SmileList.prototype = {
// да, в классе 2 метода.
// и если что-то сломается, то
// для поиска бага в коде придется читать содержимое этих методов.
// и ЭТО НЕ ВЕСЕЛО, когда кода очень много.
// и писал его не ты, а кто-то другой.
click: function(e) {
//..
},
mousedown: function() {
//..
}
};
для сравнения, это имя - получше, но тоже не то.
addTask: function(name) {
//...
},
ещё пример:
Task.prototype = {
constructor: Task,
renderTask: function() {
/// ....
},
edit: function(newName) {
//....
},
onCheckChange: function() {
//...
}
};
Task.renderTask - зачем постфикс (красный)?
Task.edit - неплохо
поподробнее про
TaskList.addTask :
TaskList.addTask
какие сущности могут быть внутри
TaskList ? ничего, кроме
TASK. постфикс "
Task" для
addTask не нужен.
и, судя по названию класса, это
упорядоченный список (
List).
операция
ДОБАВИТЬ (
add) больше подходит для списков, где порядок не важен
пример такого списка - список классов HTML
var li = $('<li/>').*!*addClass*/!*('todo-task animated flash');
а там, где порядок важен, обычно именуют так:
this.list.*!*append*/!*(li);
this.tasks.*!*push*/!*(task)
append, push -
отлично.
т.е. метод переименован из
TaskList.addTask в
TaskList.append.
вообще, имена для переменных - вопрос вкуса, конечно, но лучше именовать их так, чтобы было понятно о методе\переменной без залезания вовнутрь неё