赵龙 全栈之路

Ruby on Rails 常用编程语法

| Comments

root 方法

root 方法指明如何处理根路径(/)上的请求。
root 路由应该放在路由文件的顶部,因为最常用的路由应该首先匹配。
root 路由只处理 GET 请求。

config/routes.rb
Rails.application.routes.draw do
  root to: 'pages#main'
  root 'pages#main' # 上一行代码的简易写法

# 我们还可以在命名空间和作用域中使用 root 方法,例如:
  namespace :admin do
    root to: "admin#index"
  end
 
  root to: "home#index"
end

Rails101 & JD—Store 常见英文单词

| Comments

常用重要代码

bundle install        捆绑安装
module                模块
method                方法
confirmation          确认

终端指令

uploader              上传
image                 图片
implement             实现
button                按钮
function              功能
checkout              查看
account               账户
payment               付款
mailer                信封

Gemfile

development           发展
test                  测试

基础建设

import                输入
app                   应用程序
views                 视图
common                共同的
layouts               布局
application           应用;运用
alert                 警报;提醒
flash                 闪现
freeze                冻结
slice                 片;一片
uploads               上传
public                公共的

Routes (网页操作链接.路由)

routes                路由;路线
config                配置
devise_for            设计(会员系统gem 相关)
member                会员
namespace             命名空间
resources             资源
config                配置
root                  根
draw                  绘制;绘画

alipay                支付宝
wechat                微信

Model (数据库)

model                 模型
string                字符串
integer               整数
text                  文本
migrate               迁移(v)
migration             数据库迁移
validates             只会验证
presence              存在

columns               列
default               默认
boolean               布尔(数学中表示“真或假”两种状态)
ture                  真
false                 假

mount                 安装;装载
source                资源
through               通过
cart_items            购物车_项目
name                  姓名
address               地址
order                 订购
pay                   付款
generate              生成;产生
token                 代币;符记
mail                  邮件
subject               主题

password              密码
confirmation          确认
seed                  种子
reset                 重启

title                 标题
list                  目录;明细
quantity              数量
price                 价格
description           描述

Views (前端)

self                  自我;自己
bootstrap             引导(引导程序)
sprockets             链轮
navbar                导航栏
footer                页脚
header                标头(网页顶端的标头)
collapse              折叠
example               例子

track                 跟踪
links                 链接
style                 样式
stylesheets           样式表
media                 媒体
decoration            装饰
underline             强调
confirm               确认;证实
trash                 垃圾

select                选择
count                 计数
total                 总计;总数;合计
clearfix              清除修复
colspan               合并单元格

role                  角色
navigation            导航
container             容器
fluid                 流体
primary               主要的
pull                  拉
padding               填充
bottom                底部
border                边
bordered              镶上
margin                页边
text                  文本 
row                   行
nav                   导航
pills                 丸
stacked               堆叠
max-width             最大-宽度

center                中心
registration          注册
danger                危险

dropdown              落下
menu                  菜单
dropdown-menu         下拉菜单
login                 登录
logout                注销
signup                注册
toggle                切换
generate              生成
caret                 没有
font                  字体

input                 输入
submit                提交(修改)
disable_with          禁止(重复提交表单等操作)
link_to               链接到(访问...网页)
present               当下的,现在的
thumb.url             拇指.网址
tag                   标签

Controller (网页控制中心)

controller            调节器
authenticate          认证
authenticate_user!    认证用户
admin                 管理
require               要求
admin_required        管理(权限)_要求
alert                 警报;提醒
notice                注意
warning               警告

product               产品
params                参数数组
permit                许可
path                  路径
redirect              重定向
render                表达;引入
data                  数据

notify                通知
deliver               交付

CRUD

Ruby on Rails 中 MVC 常见英文单词

| Comments

Git

commit 承诺

Modle

nil        零
null       空
destroy    破坏

unique     独特的
attribute  属性
Methods    方法
dependent  依赖的
private    私人的
ensure     确保
Active Record 活动记录
validation 验证
rollback   回滚
after_initialize ;  initialize(初始化)
after_find 回调
after_touch  ;  after(之后)  touch(触发),触发后
object     物体

decrement  减量
decrement_counter 递减计数器
delete       删除
delete_all   删除所有
increment  增量
increment_counter 增量计数器
toggle     切换
touch      触摸
update_column     更新列
update_columns    更新列(复数)
update_all        全部更新
update_counters   更新计数器
valid      有效的
setup      建立

references     引用
conditions     条件
through        通过
polymorphic    多态
class_name     班级名称
primary_key    主键
foreign_key    外键
invers_of      对面的(根据代码上下文语义猜测)
association    协会
association=(associate)  协会=(关联)
reload         重装

autosave       自动保存
counter_cache  计数器缓存
validate       验证
optional       可选的
readonly       只读
select         选择
includes       包括
source         资源
collection     采集
singular       单数
clear          清除
empty          空
size           尺寸
build          建立
exists         存在

extending      扩展
limit          限制
offset         偏移量
order          排序
distinct       不同,不一样的

proxy_association.owner          代理_关联.所有者
proxy_association.reflection     代理_关联.反射
proxy_association.target         代理_关联.目标
type           类型
parent         父母

find           找
create_with    创造
eager_load     急切_加载
from           从
group          组
having         有
joins          加入
left_outer_joins   左边_外_加入
lock           锁
none           没有
preload        预紧
references     引用
reorder        重新排序
reverse_order  相反的顺序
where          哪里
batch_size     批量_尺寸
start          开始
finish         结束
error_on_ignore    错误忽略
export         输出

Views

builder        建设者
shared         共享;共享的
partial        部分
locals         本地
render         表达;引入
renderer       渲染器
spacer_template   间隔_模板
template       模板

layouts        布局
redirect_to    重定向
redirect_back  重定向返回(上个页面)
head           头部
inline         内联
content_type   内容_类型
content_for    内容
location       位置;定位
status         状态
format         格式
except         去除
special        特别的;重要的
bad_request    错误的请求

auto_discovery_link_tag      自动_发现_链接_标签
javascript_include_tag       JavaScript_包括_标签
stylesheet_link_tag          样式表_链接_标签
image_tag                    图像_标签
video_tag                    视频_标签
audio_tag                    音频_标签

local_assigns      本地分配
shallow            浅的
concern            有关
member             成员;会员
preview            预览
static segment     静态片段
constraints        限制约束
root               根;根源
scope              范围

prepend            前置
append             附加
capture            捕获
distance           距离
second             秒
fields             领域
radio              无线电
buttons            按钮
options            选项

Controller

protected          保护
raise              提高
rescue             拯救
require            要求
request            请求
query              询问
permit             允许
accepts            接受
nested             嵌套
attributes for     属性
accepts_nested_attributes_for    接受_嵌套_属性
reset              重启
encrypted          加密
respond            响应(动词)
response           响应(名词)
skip               跳跃
ensure             确保
send               发送
data               数据
stream             流
attachment         附件
inline             一致
close              关闭
open               打开
force              强制
devise             设计

ruby 语法基本结构

| Comments

在 ruby 中,一切皆对象。

对象本质上就是状态加行为,状态保存于实例变量中,相同类的不同对象可以拥有不同的状态。

代码影响范围:类 > 模块 > 方法 > 块

类:表示对象的种类,所有对象都属于一种类。

类的程序语法
class 类名 # 类名的首字母必须大写
  类的定义
end
  • 实例:类的对象。
  • 继承:通过扩展已经定义的类创建新类的过程。
  • 父类:被继承的类。
  • 子类:创建的新类。 -
“类的继承”的程序语法
class 类名 < 父类名
  类的定义
end
“单例方法”程序语法实例
class << HeloWorld
  def hello(name)
   puts "#{name} said hello."
  end
end 

HelloWorld.hello("John")    #=> John said hello.

模块:与类表现形式相似,只表示事物的行为本身。

模块的程序语法
  module 模块名 # 模块名的首字母必须大写
    模块定义
  end
  • 模块不能拥有实例(对象)。
  • 模块不能被继承。
    • 定义类时使用 include,模块中的方法、常量就能被类使用。
  • 模块函数:使用 “模块名.方法名” 的形式调用模块中定义的方法。
    • 如果没有定义与模块的方法、常量等同名的名称,那么引用时就可以省略模块名。

方法:在 Ruby 中,所有有关对象的操作都被封装为方法。

方法的程序语法
  def 方法名(参数1,参数2,···)
    希望执行的处理
  end
  • 实例方法:接受者为一个对象(实例)的方法。
  • 类方法:接受者是类本身(类对象)的方法。
  • 函数式方法:没有接受者的方法。
  • 方法的标记法:“类名.方法名”、“类名::方法名”(与实际程序语法一致);“类名#方法名”(帮助文档或使用说明使用)。

块:调用方式时能与参数一起传递的多个处理集合。

“带块的方法调用”的程序语法
  对象.方法名(参数列表) do |块变量|
    希望循环的处理
  end
  
  或
  
  对象.方法名(参数列表) { |块变量|
    希望循环的处理
  }

网页结构 RMVC 解读

| Comments

全栈构建网站需要了解一个基本的概念—— RMVC

R——route,网站路由,当用户点击超链接按钮时,向网站后端发出对应的指令,调出相应的网页。
M——model,网站处理与调用后台数据库信息的中心。
V——view,网页内容的前端展示台。
C——controller,网站后端的控制中心。

点击网页链接,网站运作逻辑流程:R >> C >> M >> V

举个例子来解释,当你浏览任意网站时,点击一个超链接按钮,Route 会发送相应的指令到网站的控制中心 Controller ,Controller 指挥 Model 处理涉及到网站数据库的部分并发送给 View,View 再展现用户需要的网页前端内容。

jQuery 小总结

| Comments

jQuery 是一套最多人使用的 JavaScript 函式库,可以实现各种网页前端效果,它的作用就是操控以 app/views/pages/jquery_1.html.erb 为代表的 HTML 文件

app/views/pages/jquery_1.html.erb
<p>
  <a id="my-click">Click Me</a>
</p>

<div id="foo" style="border: 1px solid red;">
  <p>bar</p>
</div>

<script>
  $("#my-click").click(function(){
    $("#foo").html('<h1>zoo</h1>');
  })
</script>
  • <script>...</script> 包起来的部分就是写 JavaScript 的地方 这个钱号 $ 等同于 jQuery
  • $("#my-click") 是 jQuery 的选择器用法,会挑出 id 是 my-click 的元素,在这里就是指 Click Me 的超连结。在 HTML 上 id 是唯一的,不能有重复的 id。
  • .click( function(){...} ) 会绑订一个点击(click)事件在该元素上面,当用户点击这个元素时,就会执行里面的 function
  • $("#foo").html('<h1>zoo</h1>') 会把 #foo 这个元素的内容置换成 <h1>zoo</h1>

html 元素内容替换
text 文字替换
prepend 把内容插在指定元素里面的最前面
append 把内容插在指定元素里面的最后面
before 把内容插在指定元素的前面
after 把内容插在指定元素的后面
show 显示隐藏元素内容,hide 隐藏元素内容,突然式
fadeOutfadeIn ,效果同上,渐变式, fade渐变
slideUpslideDown ,效果同上,滑入式, slide滑入
toggle 搭配 hover 事件,可以实现:鼠标移过去自动打开和隐藏内容
remove 移除元素内容
replaceWith 会连同指定元素一起移除掉,因此整个 #foo 包含 <div> 都一起被换掉了
addClass 增加元素的 class 属性 和 removeClass 移除元素的 class 属性

数据库SQL 自学02

| Comments

20-3 分析票种的总金额、20-4 分析票种的报名人数,并根据状态分类,当时是把数据全部捞出然后用 Ruby 进行分类,请改用 SQL 的 GROUP BY 语法来做。

  • 20-3 分析票种的总金额: SELECT t.name, (count(r.id )* t.price) as "Of Amount" FROM tickets t LEFT JOIN registrations r ON t.id = r.ticket_id where r.status = "confirmed" GROUP BY ticket_id having t.name in("Guest", "VIP 第一期","VIP 第二期"); 
  • 20-4 分析票种的报名人数:
    SELECT t.name, count(status) as "报名尚未完成" from tickets t LEFT JOIN registrations r ON r.ticket_id = t.id where r.status = "pending" group by ticket_id having t.name in("Guest", "VIP 第一期","VIP 第二期");

  • SELECT t.name, count(status) as "报名成功" from tickets t LEFT JOIN registrations r ON r.ticket_id = t.id where r.status = "confirmed" group by ticket_id having t.name in("Guest", "VIP 第一期","VIP 第二期");

数据库SQL 自学01

| Comments

Sub Heading

假设我们有一个 Table 叫做 people,里面有字段 id, first_name, last_name, gender (值可能是 M 或 F), birthday

  • 请写出 SQL 捞出所有资料
    SELECT * FROM people;

  • 请写出 SQL 捞出所有男生
    SELECT * FROM people WHERE gender = "M";

  • 请写出 SQL 插入一笔资料
    INSERT INTO people (id, first_name, last_name, gender, birthday)
    VALUES
    ("9", "Zhao", "Long", "M", "2000-02-12")

  • 请写出 SQL 更新 id 为 3 的资料,将姓名修改成你的名字
    SELECT * FROM people WHERE id="3";
    UPDATE people SET first_name="Zhao", last_name="Long" WHERE id="4";

  • 请写出 SQL 删除 id 为 4 的资料
    SELECT * FROM people WHERE id="4";
    DELETE FROM people WHERE id="4";

RVM 实现 Ruby/Rails 版本切换

| Comments

在学习Ruby on Rails的过程中,不同教程使用的Ruby和Rails版本不一样,为了保持和教程中使用的版本一致,我们可以用RVM(Ruby Version Manager)来控制当前的Ruby/Rails版本,方便切换。

安装RVM

$ \curl -sSL https://get.rvm.io | bash -s stable

安装完再输入以下指令,让 RVM 生效
$ source ~/.rvm/scripts/rvm

安装 RVM 的套件
$ brew install libxml2

安装其他版本Ruby

安装当前最新版本2.3.1
$ rvm install 2.3.1

查看目前安装的Ruby版本
$ rvm list

切换到指定版本(前提是已安装)
$ rvm 2.0.0

指定default版本
$ rvm --default use 2.3.1

创建gemset

gemset是绑定在ruby版本底下的:

$ rvm 2.3.1
$ gem install rails -v 5.1.4

$ rvm gemset create rails514 rails506
Gemset 'rails511' created.
Gemset 'rails501' created.

$ rvm 2.3.1@rails514
$ gem install rails -v 5.1.4

$ rvm 2.3.1@rails506
$ gem install rails -v 5.0.6

切换 rails 版本

$ rvm 2.3.1@rails514 ; rails --version

Rails 5.1.4

$ rvm 2.3.1@rails506 ; rails --version

Rails 5.0.6

$ rvm use 2.3.1@rails506 --default

查看目前使用的设定档

$ rvm gemset list

参考文章:

全栈日记 80 2017-10-03 编程的世界有这样基本逻辑构建

| Comments

Objective

关于今天的学习与工作,记得什么?完成什么?

“编程基础练习簿” 教程练习进度:4. 控制流程

  • 前天就完成了 “Rails 百宝箱 第三集” 教程第一遍练习,由于生病提不起精神做全栈日记,生病耽误学习。
  • 昨天看了一些视频教程。
  • 今天上午,好好的坐享了1个多小时,精神恢复很多。

Reflective

如何形容今天的情绪,今天的高峰与低点什么?

高峰:
  • 上午的坐享体验小巅峰的感觉,舒畅啊。
  • “编程基础练习簿” 教程渐入佳境时,让我体验到了根据题目,独立完成一个小编程的快感,这就像是一个难度不断提升的挑战游戏。
低点:
  • 刚练习 “编程基础练习簿” 教程时,未理解教程含义,没有使用 atom 软件打开专案文件,只使用终端操作,自己进入了死胡同。这类教程最好还是做成傻瓜式教学最好,我这样的必然还会出现。还有教程有吐槽按钮,能反馈问题。

Interpretive

我们今天学到了什么?今天的重要领悟是什么?

学到:
  • 标准萤幕输出(STDOUT): puts 会输出变量在萤幕上,并且有换行,print 也会输出变量在萤幕,不会换行。
  • 字符串串接,用 + 的,例如 "a" + "b"
  • #{} 的语法可以将变量内嵌在字符串中 。
  • 基本算术:+ 加;- 减;* 乘;/ 除;% 馀数,例如 20 % 3 是 2; 注意,整数除整数还是整数。只有浮点数运算的结果才会是浮点数,例如 10/4 会是 2。要 10.0 / 4 才是 2.5
  • 型别转换 (Type Conversion):字符串和数字是不能直接相加的,会出现 TypeError 的错误,需要先做型别转换:
    • 透过 to_i 可以将字符串转成整数,例如 "123".to_i 变成 123
    • 透过 to_f 可以将整数转乘浮点数,例如 123.to_f 变成 123.0
    • 透过 to_s 可以转成字符串,例如 123.to_s 变成 "123"
感悟:
  • 编程的世界,就是由这些基本的逻辑判断组成,不能出现 bug 。
  • 应聘编程的工作,重点在于能独立帮助公司解决问题。

Decisional

如何用一句话形容今天的工作,明天还需要继续努力完成那些工作?

各种小收获不断。

明天:
  • 继续编程学习。
  • 为北京的编程求职做准备。

报错集 045 Atom 软件中批量修改快捷键 “⌘ + F” 使用中需要注意的bug

| Comments

错误记录

“Rails 百宝箱 第三集” 教程:19-2 上传多档,完成这一章节后,先后出现两个问题,1、无法上传图片;2、网址框突然出现错误提示,之前没有这样的情况;

分析与解决方式

使用 Atom 软件中批量修改快捷键 “⌘ + F” ,删除教程中无用的代码修改提示 “+” 符号,无意中删除有用的 “+” 代码。

感悟

Atom 软件的批量修改快捷键 “⌘ + F” ,虽然好用,但是也要注意到这个 bug ,在使用的过程中需要注意。

全栈日记 79 2017-09-28 死读书是没前途的

| Comments

Objective

关于今天的学习与工作,记得什么?完成什么?

“Rails 百宝箱 第三集” 教程第一遍练习进度:16. 多步骤表单

  • 昨天,完成了 “Rails 百宝箱 第二集” 教程第二遍练习.手打代码。前几天由于生病了,实在是提不起精神写全栈日记了。

Reflective

如何形容今天的情绪,今天的高峰与低点什么?

心平气和。

高峰:
  • 看到手中的 rails 专案做出更多实用功能。
低点:
  • 由于生病引起多次头晕的时候。

Interpretive

我们今天学到了什么?今天的重要领悟是什么?

学到:
Gemfile
+  gem 'jquery-ui-rails'
  • 制作多步骤的表单(Multi Step Form,又叫做 Wizards),google "wizards rails" 就可以找到如何做这个功能的教程。
感悟:
  • 负面情绪不能积累,要及时排出,病由心生。除了恶性病毒感染的疾病,大多数疾病都与自身的状态有关,尤其是长时间的坏情绪。
  • 步子迈大了,容易扯到蛋。话糙理不糙。
  • 学习任何专业教材,最好先看一遍目录,知识点的重要性要排序。
  • 不要死学习,这次我就犯了这个低级错误。忽略了 “求职指南” 这个重要章节。

Decisional

如何用一句话形容今天的工作,明天还需要继续努力完成那些工作?

病情有些好转,抓紧时间继续学习。

明天:
  • 理发
  • “Rails 百宝箱 第三集” 教程剩下的进度赶紧完成。

全栈日记 78 2017-09-23 远离情绪化建议,会坑死你

| Comments

Objective

关于今天的学习与工作,记得什么?完成什么?

“Rails 百宝箱 第二集” 教程第一遍练习完成:14. 批次编辑 (Bulk Editing),复制黏贴代码,快速完成了第一遍练习。

  • 昨天,完成了“Rails 百宝箱 第一集” 教程第三遍练习。

Reflective

如何形容今天的情绪,今天的高峰与低点什么?

特别想发泄!!!!

高峰:
  • 完成 “Rails 百宝箱 第二集” 练习时,看到各项功能在眼前实现,例如:批次修改与删除、通用浏览器日期插件“datepicker”,编辑器 “Rich Editor”。
低点:
  • 长期不晒太阳,运动少,生病了,难受。

Interpretive

我们今天学到了什么?今天的重要领悟是什么?

学到:
  • 好看的日历工具—— bootstrap-datepicker 这个 jQuery Plugin,并且有现成包好的 gem 可以直接使用 bootstrap-datepicker-rails
  • 通过建立 app/assets/stylesheets/admin.scss , app/assets/javascripts/admin.js 两个文件,可以将 app/assets/stylesheets/application.scss , app/assets/javascript/application.js 两个共享文件拆分,解决随着 Plugins 功能越装越多,有很多 css/js 前后台是不一样的,这部分的 css/js 也可以前后台拆开,除了可以让前台下载更有效率,也可以让代码分开管理。 注意:config/initializers/assets.rb 文件要及时修改,其他具体操作在“Rails 百宝箱 第二集:12. 拆开前后台的 CSS 和 JS
config/initializers/assets.rb
- # Rails.application.config.assets.precompile += %w( search.js )
+ Rails.application.config.assets.precompile += %w( admin.css admin.js )
  • 所见即所得(WYSIWYG) 的编辑器,又叫做 Rich Editor ,一种前端插件,“Rails 百宝箱 第二集” 教程中推荐的是 ckeditor,有现成的 Rails gem :gem 'ckeditor'可以快速安装。
  • Rails 百宝箱 第二集 14. 批次编辑 (Bulk Editing):实现后台的批量删除与编辑,以 CRUD 为主要框架,辅助多种小技巧实现,
感悟:
  • 心情好了,生活作息规律,多晒太阳,适当运动才能保持健康。
  • 多晒太阳很关键,没有多出去走走很有用。
  • 在影响人生的重大决定,绝对不能感情用事,人生没有多少时间与机会能让你浪费。尤其是情绪化的建议,更不能采用,不是当事人无法给出合理建议,更何况情绪激动下的建议,采用坑死你!!!!!

Decisional

如何用一句话形容今天的工作,明天还需要继续努力完成那些工作?

疼痛的一天。

明天:
  • 继续 “Rails 百宝箱 第二集” 教程的练习。

全栈日记 77 2017-09-21 程序员的职业发展要跟随科技与时代发展的潮流

| Comments

Objective

关于今天的学习与工作,记得什么?完成什么?

“Rails 百宝箱 第一集” 教程第二遍练习完成:10. 嵌套表单(1-to-many)

  • 今天,我与摄影师李恋深入交流许多话题,收益匪浅:
    • 现代社会,科技发展太快,行业发展必须跟上技术发展的潮流,一切固守的行业都会慢慢被淘汰。
    • 儿童摄影店,是暂时的蓝海市场,6个大人关注一个孩子,父母愿意在孩子身上花钱。
    • 程序员的发展方向,做出一款类似 “滴滴” 这样的受欢迎的 APP ,靠平台运营赚钱。
    • 从好的影视作品能学习到许多的哲理,开阔思维。

Reflective

如何形容今天的情绪,今天的高峰与低点什么?

跟一个真正的聪明人交流,一点就透,放松自如。

高峰:
  • 我与摄影师李恋深入交流时,许久僵化的思路开始开阔起来。
低点:
  • 无明显低点。

Interpretive

我们今天学到了什么?今天的重要领悟是什么?

感悟:
  • 我去北京找工作,找项目开发的工作,例如,app开发等。以做出类似“滴滴”这样的一流产品为目标。

Decisional

如何用一句话形容今天的工作,明天还需要继续努力完成那些工作?

收获满满的一天。

明天:
  • 继续编程学习。

全栈日记 76 2017-09-20 利用上瘾机制促进编程学习

| Comments

Objective

关于今天的学习与工作,记得什么?完成什么?

“Rails 百宝箱 第一集” 教程第二遍练习进度:8. 表单多选 UI 和 Select2 Plugin,第二遍练习时仔细手打代码,加强编程肌肉记忆。


Reflective

如何形容今天的情绪,今天的高峰与低点什么?

被人类先天的上瘾机制折腾的跌宕起伏。

高峰:
  • 敲代码时,能大概理解代码的作用,内心觉得好值得。
低点:
  • 下午,玩手机浪费了两个多小时,让人无奈。现在的 app 的信息瀑布流等设置,太容易让人沉迷了。

Interpretive

我们今天学到了什么?今天的重要领悟是什么?

感悟:
  • 练习编程时,一定要屏蔽掉手机干扰。太容易造成影响。
  • 让编程成瘾,这是对抗手机上瘾的最佳手段。用可能带来收入的上瘾项目覆盖无收益的上瘾项目。

Decisional

如何用一句话形容今天的工作,明天还需要继续努力完成那些工作?

深刻理解上瘾的威力,要善用它。

明天:
  • 继续 “Rails 百宝箱 第一集” 教程的练习。
  • 写一篇自学 lodgown 。

全栈日记 75 2017-09-19 新教程第一遍练习快速复制黏贴代码,形成编程基本框架记忆

| Comments

Objective

关于今天的学习与工作,记得什么?完成什么?

“Rails 百宝箱 第一集” 教程第一遍练习完成,整个过程 debug 不少,有难度的 debug 记录下来,一下子就解决的就没有记录了。


Reflective

如何形容今天的情绪,今天的高峰与低点什么?

debug

高峰:
  • 完成 “Rails 百宝箱 第一集” 教程的那一刻。
低点:
  • 无明显低点

Interpretive

我们今天学到了什么?今天的重要领悟是什么?

感悟:
  • 学习的编程新教程,第一遍快速复制黏贴代码,形成基本框架记忆很重要。速度第一。

Decisional

如何用一句话形容今天的工作,明天还需要继续努力完成那些工作?

这一天在 debug 中度过。

明天:
  • 尝试用自己的语言理解 CRUD 。

报错集 044 CRUD是 rails 基础中的基础,必须要精熟

| Comments

错误记录

“Rails 百宝箱 第一集” 教程:9-2 单独的 resource 编辑 UI,网页刷新出现网页红色报错,如截图所示:

分析与解决方式

config/routes.rb 文件中 resources :users do 相应代码放错位,如截图所示

正确位置如截图所示:

感悟

表面是我的第一次复制黏贴练习的疏忽,更深层的原因是对 “Rails 百宝箱 第一集” 教程中各个 CRUD 的理解太弱造成的,要抽时间仔细研究 CRUD 。

全栈日记 74 2017-09-18 想办的事早点做,时间拖的越长越不好

| Comments

Objective

关于今天的学习与工作,记得什么?完成什么?

“Rails 百宝箱 第一集”教程第一遍练习进度:5-2 Rails 时间 to_s 方法


Reflective

如何形容今天的情绪,今天的高峰与低点什么?

心态平和。

高峰:
  • 无明显高峰
低点:
  • 无明显低点

Interpretive

我们今天学到了什么?今天的重要领悟是什么?

学到:
  • 从教程 2-3 方案二: 乱数 ID ,学会利用产生自动乱数的 friendly_id ,为特定网站页面设定乱数网址,适合应用与购物网站的订单页面等。
  • 从教程 4. 时区设置 ,学会了 rails 内置的 time_zone 进行时区设置与用户自行切换时区。
  • 从教程 5. 格式化日期时间 ,学会 rails 内建的 strftimeto_s设置时间显示格式。
感悟:
  • 想办的事情早点做,拖的时间越长越不好。

Decisional

如何用一句话形容今天的工作,明天还需要继续努力完成那些工作?

平淡又充实的一天。

明天:
  • 继续 “Rails 百宝箱 第一集” 教程的练习,剩下的都搞定。
  • 尝试找其他收入的工作。

全栈日记 73 2017-09-17 编程的世界中,数据库的维护是极其重要

| Comments

要点:先求生存,再求发展。

觉察点:
1、编程的世界中,数据库的维护是极其重要的,
2、代码 `rake db:rollback` 只能让 rails 专案的数据库回滚一次,无法多次使用,要慎用。
3、先求生存,再求发展。连眼前的生存都无法保证了,如何追求未来的发展?两者是先后关系,并不冲突。

总结:需要找机会让自己获得额外收入。

Objective

关于今天的学习与工作,记得什么?完成什么?

“Rails 实战:购物网站” 教程练习完成。

  • 连续2个编程操作小失误,导致了后面的数据库 bug ,无奈ing。这种失误以后不能再犯了。

Reflective

如何形容今天的情绪,今天的高峰与低点什么?

遇到小波折,内心任然平静。

高峰:
  • 无明显高峰
低点:
  • “Rails 实战:购物网站” 教程练习:10-2 Step 2 : 寄送订单确认通知信,出现了数据库错误,导致专案重做,

Interpretive

我们今天学到了什么?今天的重要领悟是什么?

学到:
  • 代码 rake db:rollback 只能让 rails 专案的数据库回滚一次,无法多次使用,要慎用。
感悟:
  • 编程的世界中,数据库的维护是极其重要的,要极其小心,这天的数据库失误就是一次教训。
  • 先求生存,再求发展。连眼前的生存都无法保证了,如何追求未来的发展?两者是先后关系,并不冲突。

Decisional

如何用一句话形容今天的工作,明天还需要继续努力完成那些工作?

“Rails 实战:购物网站” 教程练习专案的数据库操作失误,让我深刻理解数据库的重要性。

明天:
  • 开始 “Rails 百宝箱 第一集” 教程的练习。

全栈日记 72 2017-09-16 自由职业者并不适合大多数人,因为人类是社会动物

| Comments

要点:2个月内的首要目标:完成全栈营的全部课程(尝试参加全栈营的精进班),到北京找一份编程的工作。

觉察点:
1、昨天下午,“Rails 实战:招聘网站”练习搞定,总共用时2天
2、自己总结出一个 debug 的小规律:报错集 043 总结 CRUD 代码常见错误,快速定位代码位置方法
3、大家平时说的大脑肌肉记忆,其实指的是程序性记忆为核心搭建的记忆组块。
4、大多数人并不适合自由职业,因为人类是社会动物,缺少必要的社会沟通后,会造成一系列不良后果,例如生活不规律、逐步丧失时间感、目标感等等。

总结:我要给自己重新的制定生活规律,没有工作约束自己,那就知道几个简单计划约束自己。

Objective

关于今天的学习与工作,记得什么?完成什么?

“Rails 实战:购物网站” 教程练习进度:4-4 STORY 3 - 上传图片。

  • 昨天下午,“Rails 实战:招聘网站”练习搞定,总共用时2天

- 完成一篇报错记录:报错集 043 总结 CRUD 代码常见错误,快速定位代码位置方法

Reflective

如何形容今天的情绪,今天的高峰与低点什么?

平淡而舒服的一天。

高峰:
  • 敲代码时,脑子的相应的记忆不断浮现,挺神奇的。
低点:
  • 无明显低点

Interpretive

我们今天学到了什么?今天的重要领悟是什么?

学到:
感悟:
  • 2个月内的首要目标:完成全栈营的全部课程(尝试参加全栈营的精进班),到北京找一份编程的工作。
  • 大多数人并不适合自由职业,因为人类是社会动物,缺少必要的社会沟通后,会造成一系列不良后果,例如生活不规律、逐步丧失时间感、目标感等等。
  • 大家平时说的大脑肌肉记忆,其实指的是程序性记忆为核心搭建的记忆组块。

Decisional

如何用一句话形容今天的工作,明天还需要继续努力完成那些工作?

开始找到了自己的生活节奏。

明天:
  • 完成 “Rails 实战:购物网站” 教程的练习。

报错集 043 总结 CRUD 代码常见错误,快速定位代码位置方法

| Comments

错误记录

“Rails 实战:招聘网站”:教程:8-2 (解答)招聘网站第五部分,Step 5 : 设计按钮,将“隐藏职缺”改成是一个按钮,按下去“隐藏职缺”,再按一次“显示职缺”,进化网站后台页面出现红色报错,如截图所示:

分析与解决方式

发现在 config/routes.rb 文件中缺失两段代码,补上就解决了,如截图所示:

感悟

发现类似这样 NoMethodError in Admin::Jobs#index 网页红色报错提示,出现代码错误的的文件在 config/routes.rb 、 controller/***_troller.rb 、 view/***/***.html.erb 基本集中在这几个文件中。

全栈日记 71 2017-09-13 一天搞定“rails 101专案练习”

| Comments

Objective

关于今天的学习与工作,记得什么?完成什么?

“rails 101教程” 练习,一天内就搞定了。

- 报错记录一篇:报错集 042 终端新建文件时,文件名多出一个“.”

Reflective

如何形容今天的情绪,今天的高峰与低点什么?

充实与快乐的一天。

高峰:
  • 曾经看不懂的代码,现在能理解其中的部分含义,心中挺嗨的。
低点:
  • 无明显低点

Interpretive

我们今天学到了什么?今天的重要领悟是什么?

学到:
  • 谷歌浏览器的网页翻译功能,在 debug 用处挺大的。
感悟:
  • 多问自己这几个问题“什么重要?什么更重要?什么最重要?”,分清主次很关键。

Decisional

如何用一句话形容今天的工作,明天还需要继续努力完成那些工作?

充实的一天

明天:
  • 明天开始练习 “job-listing 教程”。