项目总结

这篇博客,因为刚好工作了快一个月,那么在工作中用到了哪些知识体系和框架,这里做一个小小的总结,,并且在接下来的工作中,能够认识到自己哪方面的不足,使得自己更加的注重这方面的技术积累。

首先,我的这个项目是关于做介助士的参加考试,报名,评分,发证等等一系列的整体项目,那么在这个项目中,有着非常繁琐的仕様説明等等,但是呢,这里我要总结的是这个项目使用的技术和一些平常没有注意到点。

cares用到的技术框架

归纳图

解释

其实看一个rails的项目主要用了那些技术,其实在gemfile里面就介绍的很清楚了,那么拿到一个新的项目的时候,主要看gemfile里面的gem,对于一个项目有个大概的印象再去细究里面所有的技术,看一下我们这个项目整体用用到了那些gem:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
source 'https://rubygems.org'
gem 'rails', '~> 5.0.0'
gem 'mysql2'
gem 'paranoia'
gem 'devise'
gem 'active_hash'
gem 'bootstrap-sass'
gem 'jquery-rails'
gem 'kaminari'
gem 'bootstrap-datepicker-rails'
gem 'font-awesome-rails'
gem 'settingslogic'
gem 'draper'
gem 'carrierwave'
gem 'rubyzip'
gem 'ken_all'
gem 'dalli'
gem 'pdflib', '9.1.0', path: 'vendor/gems/pdflib-9.1.0'
gem 'gon'
gem 'holiday_japan'
gem 'delayed_job'
gem 'delayed_job_active_record'
gem 'daemons'
gem 'curses'
gem 'migration_comments'
gem 'baby_squeel'
# Use unicorn as the app server
gem 'unicorn'
# For scheduled jobs
gem 'whenever', require: false
# generate seed
gem 'factory_girl_rails'
# use asset:precompile
gem 'sass-rails'
gem 'coffee-rails'
gem 'uglifier'
gem 'therubyracer', platforms: :ruby
group :production do
gem 'newrelic_rpm'
end
group :development do
gem 'better_errors'
gem 'binding_of_caller'
gem 'rack-mini-profiler'
gem 'annotate'
gem 'letter_opener'
gem 'colorize_unpermitted_parameters'
gem 'capistrano', require: false
gem 'capistrano-unicorn', require: false
gem 'capistrano-rails', require: false
gem 'capistrano-rbenv', require: false
gem 'capistrano-bundler', require: false
gem 'capistrano-maintenance', require: false
end
group :development, :test do
gem 'spring'
gem 'rspec'
gem 'rspec-rails'
gem 'rspec-collection_matchers'
gem 'database_cleaner'
gem 'guard-rspec'
gem 'pry'
gem 'pry-doc'
gem 'pry-rails'
gem 'pry-byebug'
gem 'hirb'
gem 'hirb-unicode'
gem 'awesome_print'
gem 'rubocop', require: false
gem 'guard-rubocop', require: false
gem 'parallel_tests'
gem 'rails-controller-testing'
end
group :test do
gem 'simplecov', require: false
gem 'simplecov-rcov', require: false
gem 'rspec_junit_formatter'
gem 'rubocop-checkstyle_formatter', require: false
end

那么,现在我们根据我们的示意图一点一点的看清楚每一个Gem使用了什么技术,并且是如何使用到我们的项目里面的。这里会一点一滴的去查,看以及做。

那么解释这些gem之前,争取针对于每一个gem做到以下几点,并且能够通过自己的话表述出来

  1. 这个gem是干什么的
  2. 这个gem如何使用

常用概念的总结:

  1. Gem: 相当于是Ruby封装起来的应用程序或者代码库,我觉得可以理解成python中的各种package

  2. Gemfile: 相当于这个应用程序中依赖了哪些第三方的包,会用bundle去根据配置的需求去寻找这些gem,这样来说有个非常方便的好处,就是在配置不同电脑的时候,使用相同版本的gem。就和vagrant中,使用相同的配置环境,进行开发一样。

  3. Rake: rake命令就相当于linux 中的make 命令,把源码编译成可执行的程序。
    在rails5之前,ruby on rails 大量使用了rake命令。最常用的两个命令:
    rake db:migrate(迁移数据库,更新数据模型)和rake test(运行自动化测试组件)。
    使用rake时确保使用的是Gemfile文件中指定的版本。
    rails5之前版本:bundle exec rake db:migrate

  4. Rakefile: Rake的执行命令的是由Rakefile来定义,相当于ruby版的makefile

  5. Bundler: 是rails框架里面安装gemfile指定的各种库的工具

  6. Rails API: 相当于开发一个接口,给web应用以外提供一个可以访问的接口。很多开发者使用rails构建后端,在Web应用中和其他原生应用之间共享。

  7. RVM: RVM是装各种版本ruby的,就是ruby的版本管理器。Ruby环境不仅仅是Ruby本身,还包括依赖的第三方Ruby的Gem,都是由RVM进行管理的。

  8. rbenv: 是rvm的另一种方法,都是管理ruby版本的。

Gem包详解

gem ‘mysql2’

参考主页:https://github.com/brianmario/mysql2

一句话来概括,就是连接mysql说使用的包

坚持原创技术分享,您的支持将鼓励我继续创作!