На данный момент (январь 2019 г.) нет возможности выполнять развертывание облачных функций, как вы описали. Доступна и доступна только последняя версия облачной функции, и вы не можете переключать трафик между версиями, как это было бы с App Engine. Обратите внимание, что уже есть открытый запрос , который включает это.
This is sort of from the top of my head; I'm sure I am missing a lot. Besides the things mentioned here, understanding programming and object-oriented programming in particular is a must, of course.
A few important language features:
[]
, []=
, ==
, +
, <<
, etc. on an object.collect
, inject
, join
, zip
, etc. where appropriate.attr_accessor
and friends, and how you can define them yourself.Module
and Object
).Hash
method argument as a substitute for named arguments (even if it's just because it's a common pattern).Some vital tools:
Some framework knowledge:
Ultimately, keep in mind that the above is "just knowledge", and not skills. It's probably easy to pick up most of this if you're not familiar with it.
Я написал подробный блог о вопросах интервью с ruby и rails, с которыми я столкнулся во время своих интервью.
http://anilpunjabi.tumblr.com/post/25948339235/ruby-and-rails-interview-questions-and-answers
Надеюсь, вы найдете их полезными !!!
It sounds like you are looking for some general theory. I have not read any recently, but a book on the subject of Principles of Programming Languages might be helpful (look for one that discusses both object oriented and functional languages).
Also you may find illuminating to look into how Rails or Rake works (as opposed to how to use it). This may help you get a deeper understanding of what Ruby can do.
You could probably fill in any gaps in knowledge you have due to being a real programmer and not an academic by reading The Ruby Programming Language by the creator of Ruby, Yukihiro Matsumoto. It covers a lot of obscure details, such as the vagaries of multiple assignment in different kinds of lambdas, and is relatively new, covering new semantics in Ruby 1.9.
A boss of mine once told me that a long-term programmer that he knew and trusted once turned to him and asked, "I forget... how many bits are in a byte?" The moral of the story wasn't that this guy was an idiot--it was that it's sometimes possible to write a fair bit of competent code over a long term and miss out on things that seem to others as though they should be elementary.
замыкания являются ключевыми (знайте об их области видимости), собственные классы (или метаклассы, или как вы хотите их называть), миксины (и включают, и расширяют, и все глупые трюки, которые вы можете с ними делать) , и метапрограммирование - это специфические для Ruby вещи, которые приходят на ум. Стандартные методы объектно-ориентированного программирования и функционального программирования также были бы честной игрой.
В список @molf я бы добавил:
DSL - как их использовать и как их писать. Для этого может быть действительно полезно копаться во внутренностях rake и capistrano.
Rack - ключевое преимущество использования Ruby (по сравнению с Python, в частности) для создания веб-приложений. Понять, почему это преимущество, как оно работает и как обычно используется.
Передача сообщений и вызовы функций - еще одно ключевое преимущество Ruby перед чем-то вроде Java. Использование method_missing
и то, как он делает возможными ActiveRecord и DSL.