huntman's Blog

For Freedom

ORID20170409复习帮助文档(完美主义Vs.心流)

| Comments

Objective

今天把初级练习又做了一遍,加分题的排序还是不记得,不过知道在哪里就行了,毕竟用的不多,后面在看MVC的架构时,在教学影片上发现了下面这张图,感觉在浏览器报错的时候很熟悉哈:)

接下来开始看第二课解说,大部分都能理解了:

  • rake db:migrate的作用是使用刚建立的migration档来更改资料库的(db/migrate/201xxxxxxxxxxxxxxxxxxxxxxx_create_topics.rb),据说该档对于合作写程式是非常重要的。还可以执行rake -T来看其它一些rake指令,上面还有简单的说明。
  • app/models/topic.rb这个档里放的是model的程式码,但几乎是空白的,因为对资料的CRUD操作在Rails是内建的。
  • Rails的view只是HTML加上一些用来显示资料库资料的程式
  • index是用来表示一个网站的“预设”页面
  • 原来def的CRUD之类的都叫method,partial一定是底线 _ 开头的
  • 在routes中,root topics#index可以理解为列出Topics Controller中的index action,基本的RESTful图已经记住了,关键是在于运用,嵌套什么的你能不能熟练的写出来?
  • model与model间的关联叫associations,通常成对出现,这里用has_manybelongs_to来关联,dependent: :destory还是不是很理解,表示destroy时其记录会一并删除,而不会将资料留在资料库中
  • format也不太理解,先有个印象吧,指的是当浏览器向server请求HTML格式的时候要做的事(要做的事在 { ... } 里面)

link_to其实照着理解还是比较简单的:http://docs.qzy.camp/docs/3-11-link-to
<td><%= link_to topic.title, topic %></td>
可以看作把topic的标题(title)变成超链接,然后连到的是topics#show的页面,这样就比较好记了

再如<td><%= topic.description %></td>
这一行用了.description来取得topic的内文,然后直接输出

接着是第三课解说

  • 最重要的应该是对Rails运作原理的解说吧,下面这张图堪称经典,没事时试试自己画一下:)

Rails 是这样运作的:(这一段我觉得现在有必要每天看每天提取练习!)

使用者对网站做“请求”,然后网站会先去解析 config/routes.rb
然后发现网址是 http://localhosts:3000/groups,它就会去找 groups controller 下的 index action(为什么是去找 index action),我们在后面的章节会解释。
Controller 你可以想像成“控制台”,Controller 里面去读出 Group.all,意思是捞出“所有的群”,并指定到 @groups,这是一个变数。
@groups 这个变数,是供 app/views/groups/index.html.erb 使用。View 会根据语法画出整张表格。

  • 2-4<%= yield %>解说中说是你程式码输出印出来的地方,比如说当你在app/views/welcome/index.html.erb里面写Hello world,就会显示出来。个人理解application是控制整张页面要显示的东西,上面显示navbar,下面显示footer,中间这个yield就是用来显示其它内容的,比如在index这张页面,application会把index里的html显示在yield的位置,这样做的目的还是为了使网站有统一的风格:

  • 4-2知道了原来是rails的智能黑魔法——表单产生器,可以把一大垞HTML缩成用form_for表示;

group_params是一个过滤器架构,但先不用去理解,只要知道def group_params会限定只有title和description的信息才能填进来

  • 4-5对Delete按钮的解说相当直白,在Rails架构上它就是这样规定的,记住代码就行:method: :delete, data: {confirm :"Are you sure?"}
  • 6-2resources :groups里又有resources :posts是什么意思?解说里就说双层资源的意思,叫跳回去看RESTful解说,但跳回去看也没有双层资源的解释啊,然后它又说先背下来不是罪,好吧!
  • 6-3params[:group_id]也没怎么解释,个人理解应该是为避免与其中的post的id混淆才标明是group的id

Reflective

今天受离职事宜影响情绪有点低落,后面开始沉下心来学习才有所好转。高峰是整个下午,低谷是上午和餐后。这几天也许是因为季节变换的影响,很容易犯困,特别是上午,几乎没什么效率。所以白天更要珍惜时间,千万别用来做琐碎的杂事!!!

Interpretive

今天理解到的在前面的Objective已经详细说过了,这里主要说说今天最重要的领悟(静下心看帮助文档时想到的):学习的时候不要去管时间,把它忘掉就容易忘我地投入到正在做的要事上。如果一直纠结计划不完美、效率不高或时间不充裕的话,最后反而会什么都做不成。

事实上自己之前就常常犯这个毛病,一开始都要纠结半天怎么安排,等定下决心后精力也耗得差不多了,实在是伤不起。今后一定要有意识地去改善这种学习上过于贪心,生怕漏掉什么,生怕浪费时间的不良思维,放弃所谓的安全感,把更多的时间留给最重要的事情上。

另外,之前总觉得ORID没什么好写的,今天把解说再看一遍后却发现有很多东西都可以写。看来自己之前的练习还是太浮于表面,真正能get到的东西不多。今后应该要像今天一样耐心一点,花点时间在理解记忆上面!!!

Decisional

今天的工作较前两几天有所回转,值得肯定。明天要继续把剩下的一点看完,然后再把101提取一遍,接着快速开始joblisting的课程,不能再拖了!


Ps.

在看完第二课和第三课的解说之后,觉得接下来有必要每星期都再复习一次!甚至可以把它们Post到slack中的个人会话中去,然后每次看的时候都可以添加新的评论,久而久之就可以观察自己在理解上的新变化了!!!

Comments

comments powered by Disqus