пятница, 27 сентября 2013 г.

Ваш код должен выглядет как лего



Это моя любимая программерская аналогия всех времен, и повторюсь еще раз, ваш код должен выглядет как лего, а не как пластилин Play-doh. Лего – понятно, с ним легко играть, с помощью лего вы можете сделать все что угодно. Вы можете выбросить некоторые элменты, превратить дом в автомобиль, или поменять цвет крыши на филетовый. Если у вас есть все составные части – вы можете построить все что только пожелаете.


Стиль вашего программирования должен быть соответствующим, вы должны стараться создавать маленькие кусочки лего, и после этого объединять их в элементы побольше. Это очень важно, особенно сейчас, когда продукты и веб-сайты подвержены постоянным изменениям. Пример ниже иллюстрирует что я имею ввиду когда говорю по лего (http://jsfiddle.net/mxpatel29/YLSJ7/)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var chair = {"name": "Chair","price": "$75",
        "desc": "Hardwood dining room chair."};

//Create Lego Components for the chair object above
 var name = $("
", {
    "text": chair.name,
     "class": "name"
 });

 var price = $("
", {
    "text": chair.price,
     "class": "price"
 });

 var desc = $("
", {
    "text": chair.desc,
    "class": "desc"
 });

//Create a new Lego piece for A/B Test
 var sale = $("", {
    "text": " - limited time offer",
    "class": "sale"
 });

//Basic Example, put together pieces (variant A)
 $("#products").append(name).append(price).append(desc);

//Test for sale (variant B)
var random_num = Math.floor((Math.random()*2)+1);

//add sale info to price for variant
if(random_num == 1)
    $(price).append(sale);
 



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


статья базируется на публикации http://blog.raavel.com/2013/08/06/lego/