All streams
Search
Write a publication
Pull to refresh
202
0
Артур Заяц @zag2art

Пользователь

Send message
А есть в TODO-MVC? А то в вашем цикле статей не видно статьи с созданием какого-нибудь реального (аля блог) приложения, с использованием компонент.
По RequestAnimationFrame на хабре есть перевод.
А как в нем source maps? Есть ли плагин для browserify?
А еще хорошо бы сказать: «НИКОГДА ТАК НЕ ДЕЛАЙТЕ» в своем коде.
Кстати, русскоязычные вставки взяты отсюда — www.opennet.ru/docs/RUS/HTML4r/sgml/entities.html

Например,

image
Iron Man — советский разведчик. Это будет в следующей части…
Ага, НTML 4.01 либо строгий, либо переходный синтаксис, судя по doctype…
Это не ошибка, handleLine вызывается как процедура. return для досрочного возврата. Покажите что-нибудь свое сходного размера.
Просто, чтобы поддержать беседу — вот скопипастил реальный пример функции:
код
function handleLine(obj) {
    //console.log(obj);

    switch (obj.type) {
        case 'typedef':
            return handleTypeDef(obj);
        case 'typeof':
            return handleTypeOf(obj);
        default:
            throw new Error('Строка начинается на что-то отличное от: typedef/typeof!');
    }

    function handleTypeDef(obj){
        varHash[obj.rightVar] = evaluateShifts(obj);
    }

    function handleTypeOf(obj){
        var expVal = evaluateShifts(obj);

        console.log(getStringOfValue(expVal));
    }

    function evaluateShifts(obj) {
        switch (obj.leftVar) {
            case 'void':
                return addShifts(obj.shift, 0);
            case 'errtype':
                return addShifts('errtype', 0);
            default:
                return addShifts(obj.shift, varHash[obj.leftVar]);
        }

        function addShifts(expressionShift, leftVariableShift){
        
            if (leftVariableShift === 'errtype') {
                return 'errtype';
            }
                    
            if (expressionShift + leftVariableShift < 0) {
                return 'errtype';
            } else {
                return expressionShift + leftVariableShift;
            }
            
        }
    }

    function getStringOfValue(val){

        if (val === 'errtype') return 'errtype';

        return 'void' + Array(val+1).join('*');
    }

}



На вскидку не знаю какой была бы здесь разница, если все обратно засунуть…
В моем примере нет потери пространства (в коде «до переделки» не проставлены 2 пустые строки для читаемости), но вообще я допускаю, что они будут. Это будет платой за читаемость. Я не гонюсь за минимализацией кода, мой приоритет — читаемость.
Я вас никоим образом не хочу оскорбить. Я выразил здесь лишь свое мнение. Кто такой Кармак не знаю. Я никого не банил и не собираюсь. Я ни о чем не кричу ни в какую сторону. Всегда стараюсь думать.

Объясню свой подход к разработке: основной ориентир качества — читаемость кода. Отсюда я, ДЛЯ СЕБЯ, выработал несколько принципов и решений относительно кодирования на JavaScript.

Вложенность — это плохо. Все, что больше 2-х уровней вложенности требует рефакторинга.

Как я избавляюсь от вложенности:

1. Досрочный возврат if (condition) return; в начале функции (именно поэтому — он является единственным исключением. так-как его основное назначение — убирать вложенность)
2. Вынос вложенного функционала в отдельные функции.

Схематичный пример:

function f1(){
    if (условие){
        for(цикл)
        {
            //....
        }
    }
    //....
}

Превращается в:

function f1(){
    if (условие){
        f2();
    }

    //....

    function f2(){
        //....
    }
}


А с учетом первого и в:

function f1(){
    if (!условие) return;
    
    f2();
    
    //....

    function f2(){
        //....
    }
}


Это мое мнение, такое же ИМХО как и у вас в статье. Вы показали свой подход, я свой. Я не говорю, что я прав, а вы не правы. Как говориться на вкус и цвет. Ваш вариант (лично мне) трудно читать, у себя в коде я не допускаю такой вложенности: if if for if.
В JavaScript if без скобок использую ТОЛЬКО в одном случае — досрочный возврат из функции:

if (condition) return;

И больше никак.
Дык у этой статьи рейтинг минус 200…
Ну хз, линукс, вроде, тоже был «академическим» проектом.
Интересная тема для обсуждения. У кого как?
Не шучу. Здесь сказано чья инициатива, а здесь они все перечислены. Сам про ebay не понимаю.
Инициатива по снижению лимита покупок и дополнительному налогообложению интернет-покупок из-за рубежа исходит от АКИТ (Ассоциация компаний интернет торговли).

Страна должна знать героев в лицо:

image

image

Information

Rating
Does not participate
Location
Тула, Тульская обл., Россия
Date of birth
Registered
Activity