Pull to refresh

Comments 10

Единственное место, где я видел использование меток и блоков кода был wtfjs.com

           function f1(f,t) { t:{ f(t) } }
В JS и так, имхо, уровней и скобок многовато часто получается, а вы еще предлагаете… И неоднозначноть со областями видимости (не все пишут только на JS).
Backbone.View.extend({
    initialize: function () {
        // Model Events
        this.model.on('change', this.render);
        this.model.on('add', this.onAdd);
        this.model.on('change:type', this.onResetType);

        // App Events
        app.subscribe('reload', this.render, this);
        app.subscribe('remove', this.remove, this);
        app.subscribe('vodka', this.drink, this);
    }
});

Чем хуже?
Поддерживаю это мнение. Комментарием проще обозначить смысл кода, чем меткою ко блоку, ещё и потому, что в комментарии можно употреблять какие угодно символы (а не только допустимые при записи идентификаторов), так что язык его бывает более естественен. Притом блок нужно обрамлять с двух сторон фигурными скобками, тогда как комментарию достаточно одной строки (его собственной), как правило; если же комментарий всё же получается длинным, то его можно сделать многострочным, тогда как с меткою это далеко не просто сделать.
Поддерживаю оба мнения. Еще о блоках в JavaScript многие просто не знают и при виде
MyBlock: {
    console.log('This is MyBlock');
}

возникнет вопрос «эээ что это??? а так можно?» и человеку придется разбираться. Сегодня как правило, во всех ЯП большие блоки «именуют» путем выноса в отдельную функцию. Вы же не пишете код для себя ;-)
Если вам хочется сплошной кусок кода разбить на блоки, а тем более уровни, то это отличный индикатор того, что вы что-то делаете не так.
UFO landed and left these words here
Меня эти метки скорее запутывают.

Если необходимо разбить кусок кода, то обычно одной пустой строки хватает, чтобы разделить логически их. Да и комментарии никто не отменял.

p.s. у меня при виде различного рода «меток» начинается паника, после того как в своё время допиливал чужой C++ код с кучей goto )=
Тоже самое работает во многих языках, например, в Java и PHP:

public class HelloWorld{

     public static void main(String []args){
       {
       	 System.out.println("Block 1");
         label: {
           System.out.println("Block 2");
         }
       }
     }
} 

// Output
// Block 1
// Block 2


<?php

{
	echo 'Block 1'.PHP_EOL;
    {
    	echo 'Block 2'.PHP_EOL;
    }
    label: {
    	echo 'Block 3'.PHP_EOL;
    }
    label2:
    	echo 'Block 4'.PHP_EOL;
    
}

// Output
// Block 1
// Block 2
// Block 3
// Block 4
> Суть мысли, или даже вопроса — почему никто (встречавшийся мне) не использует блоки кода в своих JavaScript приложениях?

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

Другое дело, что в использовании блоков самих по себе без какого-то предстоящего перед ними выражения нет особого смысла, потому что способов группировки — масса.

Мне кажется тут надо следовать правилу «Бритва Оккама» — не надо плодить лишние сущности без надобности.
Единственное, пожалуй, применение этих самых блоков — фолдинг кода.
Sign up to leave a comment.

Articles