Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #51 (permalink)  
Старый 08.11.2015, 01:29
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

нужно разбить функцию на подфункции. нужно подумать что делает функция, но я так и не онял что делает твоя функция. Что она делает вощвращает инекс? но ведь для этого уже есть indexOf

приведи пример нормальный и ятебе сделаю рефакторинг как надо "по хорошему" писать
Ответить с цитированием
  #52 (permalink)  
Старый 08.11.2015, 01:33
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

Давай лучше пример напишу другой

function getByIndex(array, index){
    unless(index in array) then throw RangeError 'Ошибка чтения с массива'
    return array[index]
}



а дальше используем

item = getByIndex(array, 100)



и вот тут мы думаем, если наша программа предуусматривет что этовполне нормальное поведение что там МОЖЕТ И НЕ БЫТЬ ЭЛЕМЕНТА С ТАКИМ ИНДЕКСОМ, то мы перехватываем это исключение и поступаем так как система должна поступить в таком случае, если же предполагаем что элемнет с таким индексом там ДОЛЖЕН И ОБЯЗАН БЫТЬ, то мы не пишем try catch, а позвозяем ошибке если она появится всплыть и остановить всю программу.

например

try item = getByIndex(array, 100)
catch RangeError:error then item = defaultItem
бла бла бла



вот тут предполагается что мы ловим ТОЛЬКО RangeError который может бросить сгенерировать эта функция, и если там внутри у неё сгенерируются ошибки другого типа, например ошибки работы с памятью "MemoryError" то мы не должны их отлавливать потому что не знаем как они отработают.

Последний раз редактировалось Mаxmaxmаximus, 08.11.2015 в 01:36.
Ответить с цитированием
  #53 (permalink)  
Старый 08.11.2015, 01:37
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

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

Сообщение от loljs
метод indexOf не должен был возвращать -1, а должен был свалить программу.
да он должен был свалить программу. фейловостью было бы НЕ свалить программу в данном случае. а свалить программу это ПРАВИЛЬНОЕ поведение и НЕ фейловость. примеры фейловости моего подхода будут или ты звездун?
Ответить с цитированием
  #54 (permalink)  
Старый 08.11.2015, 01:39
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

Сообщение от loljs
Соответственно, проверка существования вхождения "foo" в массив вообще невозможна.
ты такой неопытный просто поражаюсь, я теперь не удивляюсь почему ты не понял моего видео)

мне правда влом тебе оьяснять но знай что тут фейловости нет, тут просто ты не разбираешься не фига, у тебя слишкомнизкий уровень) вот ты и не в состояни понять. я не хочу тратить на тебя время потму что мне не даст это ничего полезного. рзговор окончен нубик)
Ответить с цитированием
  #55 (permalink)  
Старый 08.11.2015, 01:42
Аспирант
Посмотреть профиль Найти все сообщения от loljs
 
Регистрация: 06.11.2015
Сообщений: 68

Mаxmaxmаximus,
То есть, ты хочешь чтобы любая функция возвращала ошибку в случае фейла, а дефолтные данные возвращать вообще никогда не надо, правильно я понял?
Ответить с цитированием
  #56 (permalink)  
Старый 08.11.2015, 01:43
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

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



function has(array, element){
    try array.indexOf(element)
    catch then return false
    return true
}
Ответить с цитированием
  #57 (permalink)  
Старый 08.11.2015, 01:44
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

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



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

п.с. так же у тебя распространенная ошибка новичков, ты не делаешь декомпозицию, а должен, в этом и суть програмирования - грамотно разбить задачу на четкие мелкие подзадачи. каждая функцяия должны делать ЧЕТКО то что написано веё названии, и ни каких обработок деволтных значений ничего такого прочего, надо будет, код использующий функцию поймает исключение и сам "дефолтное" значение поставит в блоке catch (и это я щас на твоем языке говорю не верном, нет там ни каких дефолтных значений просто ты так это называешь и я чтобы тебе понятно было так выражаюсь)

Последний раз редактировалось Mаxmaxmаximus, 08.11.2015 в 01:48.
Ответить с цитированием
  #58 (permalink)  
Старый 08.11.2015, 01:52
Аспирант
Посмотреть профиль Найти все сообщения от loljs
 
Регистрация: 06.11.2015
Сообщений: 68

Сообщение от Mаxmaxmаximus
для этого надо создать отдельную функцию:
Я все еще надеюсь, что то что ты говоришь это не шизофренический бред. Зачем тебе try там понадобился? Чтобы все тормозило? Для этого достаточно
function has(array, element){
    return array.indexOf(element) > -1? true : false
}

или даже

function has(array, element){
    return (array.indexOf(element) > -1) || false
}

Но даже это не нужно, ты и так можешь возвращаемое значение к булеву привести? Что ты городишь вообще? Ты с программированием знаком хотя бы поверхностно? Какие нахер компиляторы ты собрался писать с такими мозгами?
Ответить с цитированием
  #59 (permalink)  
Старый 08.11.2015, 01:59
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

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

Сообщение от loljs
с такими мозгами?
с таким феноминальным и ясным мышлением как у меня я поменяю мир) а ты тупорылое быдло сниешь во времени. такова судьба) то есть я как гений галилео! человек вне системы вне матрицы! а ты раб матрицы и вас толпы стадо! вы даже ОСОЗНАТЬ не можете всего моего величества) из за своей тупости.

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

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

Последний раз редактировалось Mаxmaxmаximus, 08.11.2015 в 02:01.
Ответить с цитированием
  #60 (permalink)  
Старый 08.11.2015, 02:02
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

Сообщение от loljs
Зачем тебе try там понадобился? Чтобы все тормозило?
Как связаны трай и тормоза? никак. а ты думаешь что как то связаны. ты не прав потому что ты тупое быдло которому внушили что яваскрипт отключает оптимизацию в трай блоках и твой приметивный мозг на этом заканчивает процесс размышления))) ты ж дальше не думаешь, ты БЫДЛО которео мысшит ШАБЛОНАМИ которые закачали в твой приметивный мозг. Не пиши больше мне, мне общение с тобой не приятно, и ты своими ТУПОСТЯМИ нубскими засираешь мой интересный тред для продвинутых людей.


в обещм ты тупорылая тля с которй мне, гению противно даже общаться.


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

вы тупой сброд, рабы системы, быдло, батарейки матрицы) а мы 5% населения земли, интеллектуальная илита, твой приметивный муравьиный ум даже не в состоянии осознать что такое декомпозиция и что код который приводишь ты - убог и написать его может только неопытный новичек))) который не понимает СУТИ программирования и СУТИ операторов и языка.


Если говорить совсем уж коротко, чтобы ТЫ быдло поняло, то мой ответ прозвучит так:

Ты тупорылый новичек который кроме яваскрипта ни че не знает, и проэцирует его на все реальные и гипотетические языки. Ты мыслишь узко и в рамках того что УЖЕ ЗНАЕШЬ и не можешь придумывать нового) впрочем я уже говорил чо ты стадо и быдло и раб систему, представитель 95% населения земли)

Я даже тратить время больше не буду чтобы переубеждать тебя потому что ты настолько отстал в развитии от меня, мне мне понадобится не один час видеолекций тебе запсиать чтобы ты бриблизился к моему уровню мышления чего я делать не собираюсь

Последний раз редактировалось Mаxmaxmаximus, 08.11.2015 в 02:07.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Grunt не работает watch с coffee totoiiiur Библиотеки/Тулкиты/Фреймворки 1 28.02.2015 20:07
Использовать coffee везде Romaboy Javascript под браузер 4 11.04.2014 13:38