Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Где брать знания ? (https://javascript.ru/forum/offtopic/19054-gde-brat-znaniya.html)

SlavaPav 25.07.2011 01:45

Цитата:

Сообщение от monolithed (Сообщение 115214)
SlavaPav,
Мне вот интересно стало, что вы подрузумеваете под шаблонным проектированием в JS и для каких целей вы советуте использовать TDD?

Не уловил суть последнего вопроса. Мне TDD кажется отличной методикой разработки. При своей простоте и простительности к небогатым опытом разработчикам, за счет небольших итераций и отсутствия детального предварительного проектирования, она дает заметный результат в виде устойчивого, чистого кода. А шаблонное проектирование я вроде не упоминал.

SlavaPav 25.07.2011 01:48

Цитата:

Сообщение от monolithed (Сообщение 115216)
Заснет на вступлении первой)

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

Я хотел посоветовать книги конкретно по JavaScript, но мне показалось что он уже читал их. Если нет, то ваш совет вполне соответствовал бы моему. На русском, кроме Ресига, вроде больше ничего и нет?

monolithed 25.07.2011 02:02

Цитата:

Сообщение от SlavaPav
Не уловил суть последнего вопроса.

Такая методика возможно уместна при разработке больших проектов, где может нарушиться ветвление и связанность, но в реалии не один работодатель (возьмем веб-студию) не даст сотруднику время на проектировании и тестирование какой-нибудь менюшки.

Ну или если не сложно, то покажите (можно псевдокодом) как вы себе это представляете.
Цитата:

Сообщение от SlavaPav
На русском, кроме Ресига, вроде больше ничего и нет?

Стефанов, Фленаган, Закас

SlavaPav 25.07.2011 02:12

Цитата:

Сообщение от monolithed (Сообщение 115220)
Стефанов, Фленаган, Закас

Я и имел ввиду этих авторов + Ресиг. Забыл про Закаса. Потому что так и не читал.
Мне TDD кажется эффективной и для небольшого кода. Если привыкнуть, то циклы - "тест-провал-код-успех-рефакторинг" будут занимать немного времени, плюс экономится время затрачиваемое на поиск и устранение ошибок.
// очень простая функция, которую писал по задаче из ЕГЭ
function extractMaxNumber(str) {
    argumentMustBe('string');
    
    return assembleMaxNumber( extractDigits(str) );
    
    function argumentMustBe(type) {
        if (typeof str != type) {
            throw new TypeError('Argument must be a ' + type);
        }
    }
    
    function extractDigits(str) {
        var digits = str.match(/[1-9]/g);
        return digits ? digits.sort() : [];
    }
    
    function assembleMaxNumber(digits) {
        return (digits.length !== 0) ? generateMaxNumber(digits) : 0;
    }
    
    function generateMaxNumber(digits) {
        return trimMeaningless(digits.reverse().join('')) * 1;
    }
    
    function trimMeaningless(str) {
        return str.replace(/(\d)\1+/g, '$1');
    }
}

// очень простые тесты
TestCase('TestExtractMaxNumber', {
   'test should throw error argument not string': function() {
       assertException(invalidArg, 'TypeError');
       
       function invalidArg() {
           extractMaxNumber(null);
       }
   },
   'test should return number': function() {
       assertTrue(typeof extractMaxNumber('1992') == 'number');
   },
   'test should return zero if empty string': function() {
       assertEquals(extractMaxNumber(''), 0);
   },
   'test should return zero if string without digits': function() {
       assertEquals(extractMaxNumber('string'), 0);
   },
   'test should return ordered digits': function() {       
       assertEquals(98721, extractMaxNumber('9882string71820'));
   }
});

Gozar 25.07.2011 12:56

Sundro,
незачет, на форуме целый раздел посвящен учебным материалам, может вам лучше заняться чем-то другим, например махать лопатой?

melky 25.07.2011 13:08

Цитата:

Сообщение от Gozar (Сообщение 115253)
Sundro,
незачет, на форуме целый раздел посвящен учебным материалам, может вам лучше заняться чем-то другим, например махать лопатой?

ну-с. лопатой в армии поработает, а пока можно и программирование помусолить :)

Sundro 25.07.2011 13:24

Цитата:

Сообщение от Gozar (Сообщение 115253)
Sundro,
незачет, на форуме целый раздел посвящен учебным материалам, может вам лучше заняться чем-то другим, например махать лопатой?

Мне хотелось в первую очередь узнать как махать этим инструментом, что бы рыть быстрее.

melky 25.07.2011 13:47

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

Gozar 25.07.2011 14:39

Цитата:

Сообщение от Sundro (Сообщение 115259)
Мне хотелось в первую очередь узнать как махать этим инструментом, что бы рыть быстрее.

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

"Добро пожаловать в реальный мир" (из матрицы школы)

monolithed 25.07.2011 14:42

Цитата:

Сообщение от melky
ну-с. лопатой в армии поработает, а пока можно и программирование помусолить

после нашей армии в разработку не возвращаются))


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