Pull to refresh
1
0

User

Send message
a) айтюнс
б) айтюнс

Наверняка многие другие в курсе, просто я ими не пользуюсь и утверждать не берусь.
Что значит без типов? Типы то есть, просто динамические.

Пример на руби:
case my_var
when Integer
  # my_var is an integer
when String
  # my_var is a string
when Array
  # my_var is an array
when some_other_object
  # my_var equals to some_other_object
else
  raise ArgumnentError, "fuck it"
end
Первые шаги в джаваскрипте. Открываем для себя бинд.
Гилс знатно вбросил говна, эту статью бурно обсуждали на HN и дофига где еще. Впрочем, в чем-то он, наверное, прав. Как минимум порог вхождения в рельсы сильно повысился за последние годы.
Кстати, пример с rescue для руби неправильный.

File.delete('file.txt') rescue Errno::ENOENT
на самом деле словит ЛЮБОЙ эксепшен и вернет Errno::ENOENT. Другое дело что тут врядли что-то другое может появиться, но все же, возврат объекта эксепшена — не то что подразумевалось.
В маках руби стоит из коробки как минимум с версии 10.4. Подозреваю что во всех предыдущих тоже стояло, но тут не уверен.
Всегда так делал:

# user.rb

validate :email,
  presence: true,
  email: true
  unless: :skip_email_validation?

validate :password,
  confirmation: true,
  unless: :skip_password_confirmation?

def skip_password_confirmation?
  persisted? and !password_changed?
end

def skip_email_validation?
  twitter_account? # просто пример, но логика, думаю, ясна
end


А дальше уже рулить всем этим по вкусу. Контроль целостности — задача модели. Модель должна быть валидироваться вне зависимости от контекста. Буть то юзер-из-твиттера или обычный.
Это же называется «черпать вдохновение»!
Ничего себе. В 2012 мы ВНЕЗАПНО узнаем что JS-движки кидают эксепшен при обращении к неопределенной переменной!

Какой плохой браузер опера, делает все как надо по стандартам.

Кроме того, myVar и window.myVar никогда не были синонимами. Как минимум потому, что первое — обращение к переменной, которое может сломаться, если переменная неопределена, а второе — обращение к свойству объекта, которое мирно выдаст undefined и поедет дальше. Разные подходы, разные результаты.

Это свойство часто используется при написании мульти-плагинов. Например, для работы с jQuery, zepto и ender можно написать так:

!function($){
  $.fn.myPlugin = something;
}(window.jQuery || window.zepto || window.ender);


Так делал Twitter Bootstrap до версии 1.4
Ну, не обязательно так, но вцелом да.

documentcloud.github.com/backbone/#Events — вот тут это реализовано. Можно пойти и почитать код, он простой как три рубля.
Это любая версия джаваскрипта + враппер, который на коленке пишется в 5-10 строчек.
Блин, а фантазию включать кто будет?

obj.bind('change:prop_1', function(oldValue, newValue){ alert('prop_1 was changed from ' + oldValue + ' to ' + newValue); });
obj.bind('get:prop_2', function(){ alert('prop_2 was accessed'); });


Тут можно понапридумывать все что угодно. Любые коллбеки, любые эвенты.
Ну, как-как.

obj.set('prop', 'value');
obj.get('another_prop');
Ад, вообще, конечно.

А чем, сообственно, не нравится метод с Object#get и Object#set? Там кода на три строчки — все нормальные люди им пользуются и как-то, вцелом, довольны.
Непонятно еще тогда поправь в последнем абзаце :)
Ооох. Как можно было слово например раздельно написать?
А Quake Live же не на флеше.
Тут как никогда в тему ссылка на этот чудеснейший блог: picturesofpeoplescanningqrcodes.tumblr.com/
Для футболок еще обязательно размер, например, с наличием каждого размера, а для автозапчатей цвет, а для школьных тетрадей — в клеточку они или линейку, а для детской одежды еще примерный рост-возраст ребенка, а для кошачих кормов породы кошек, а для резиновых членов длину, форму и флажок ХИТ СЕЗОНА.

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

Information

Rating
Does not participate
Location
Бангкок, Таиланд, Таиланд
Registered
Activity