Участник:Rubynovich: различия между версиями

Перейти к навигации Перейти к поиску
1111 байт добавлено ,  16 лет назад
Нет описания правки
 
== Rubynovich ==
'''Rubynovich''' -- это прозвище дали первые студенты, своему преподавателю по предмету "Программирование на языках высокого уровня". Для демонстрации высокоуровневых алгоритмов преподавательон использовал язык Ruby, что и послужило предпосылкой для появления такого прозвища.
 
Rubynovich преподает предмет "Программирование на языках высокого уровня" в МЭТТ с 2003 года. За это время он сумел сформировать собственную программу обучения и свое уникальное видение сути предмета. Вот некоторые принципы программирования, которых должен придерживаться высокоуровневый программист:
* отстутствие условных конструкций if, case и т.д. (если они есть, то вы делаете, что-то не так);
* должны выполняться правила рефакторинга (код должен "хорошо пахнуть").
 
Многие из этих принципов кажутся дикими. Например, отсутствие условных операторов. Но давайте рассмотрим несколько приемов, которые позволяют их избежать. Допустим у нас есть программа вида:
 
a, b = 5, 6
if a > b
puts "a > b"
elsif a == b
puts "a == b"
else puts "a < b"
end
 
Казалось бы, все очевидно и по другому быть не может. Rubynovich же предлагает заменить результаты массивом вариантов:
 
["a == b","a > b","a < b"]
 
И использовать оператор '''<=>''' для получения индекса варианта. Решение для вышеуказанного примера будет выглядеть так:
 
a, b = 5, 6
puts ["a == b","a > b","a < b"][ a <=> b ]
 
Естественно, что пример был выбран искусственно, но сама по себе идея достаточно интересна.
1581

правка

Навигация