starting out with Ruby
前言:
本文的目标是隻要高中畢業,具有基本的計算機概念,都能輕松上手的傻瓜版教程。
// 特别是我這種零基礎文科小白
基礎概念篇
- 我們目前使用的開發語言都是經過封裝和優化的,更接近人類語言的存在,是以我們需要:
- 程式運作環境,e.g. Java 的JDK,Ruby和Go的基礎lib
- 具備諸如代碼補全、高亮、運作…的編輯器/IDE
當然也有大神直接用記事本/notepad撸代碼,那種非人類的操作隻可遠觀不可随意模仿
- 開發語言,無論Python、Go、Perl、Prolog…最終目的都是通過一系列的邏輯來處理資料,那麼我們需要:
- 一個容器可以承載和運作我們的處理邏輯
- 一些容器用來儲存我們的資料
- 一些路徑可以讓我們控制邏輯去做處理
- 一些方式讓我們看到處理的結果
- 在了解了這些之後我們了解到需要做以下到準備:
- 計算機/伺服器上開發和編譯程式用的環境
- 趁手的IDE
- 程式運作和部署工具
環境準備篇
-
開發環境(以下的手順都以Mac為基礎環境)
0. Java JDK (somehow bazel 的安裝需要JDK 1.8…emmmm…)
>https://blog.csdn.net/deliciousion/article/details/78046007
- Ruby的安裝
- Mac自帶有Ruby,可以檢視ruby版本
chens-MacBook-Pro:~ chenchen$ ruby --version ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin17]
- ruby的包管理器gem也是預裝過的,可以檢視版本
chens-MacBook-Pro:~ chenchen$ gem --version 2.5.2.3
- Mac自帶有Ruby,可以檢視ruby版本
-
接下來安裝HomezBrew,這是Mac上的包管理器,類似Notepad++裡面的pluginmanager。
這玩意同時依賴了Xcode和Ruby,本着要用就用最新的想法(希望能避免好多坑),直接搞最新版。
這指令我抄的,在指令行裡敲:
一大堆下一步,會有一些需要輸入管理者密碼的地方,用來在系統目錄裡建立一些檔案/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
因為這玩意會依賴xcode,是以可能會提示要求裝xcode-select
果斷自己先手動安裝掉
當然,像我臉這麼黑的肯定是安裝失敗了,隻好去Apple developer裡面去下了自己裝chens-MacBook-Pro:~ chenchen$ xcode-select --install xcode-select: note: install requested for command line developer tools
需要登陸appleId
https://developer.apple.com/download/more/
- 安裝Xcode相關的東西,主要為了編譯各種C++的包
上一步已經做好了的話,就隻做3和4就好
- xcode-select install
- 如果失敗了,從app store裡裝一下xcode
- 更新一把
- 然後重定向xcode:sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
- 裝下xcode的license:sudo xcodebuild -license
- xcode-select install
- 安裝protobuf
-
brew install protobuf
0. https://blog.csdn.net/u014534808/article/details/80203018
-
遇到類似 xxx Permission denied xxx /usr/local/Frameworks的時候:
0. 可能是這個檔案夾不存在,跑一下
- sudo mkdir /usr/local/Frameworks
- sudo chown $(whoami):admin /usr/local/Frameworks
- 再run一下#1 裡面的 install 指令就好了
-
- 安裝gRPC相關元件
- grpc 使用環境
gem install grpc
- grpc 編譯工具
gem install grpc-tools
- grpc 使用環境
- 安裝mysql
- brew install [email protected] (目前線上環境有5.6和5.7兩種instance,裝5.7也一樣。不過需要自己建my.cnf)
這個功能貌似已經在新版本裡被幹掉了,需要确認一下是否可以指定安裝版本
- 重裝mysql連結庫 mysql2
由于5x和8x的路徑不一樣,互相又不相容,是以可能需要重裝一遍
通過
gem list | grep mysql2
确定是否存在
存在就執行第三步否則跳過
- 解除安裝目前的mysql2
gem uninstall mysql2
- 安裝mysql2 并指定配置檔案位置
gem install mysql2 -v '0.4.10' -- --with-mysql-config=/usr/local/Cellar/[email protected]/5.6.42/bin/mysql_config
其中通過 -v 指定 mysql2 版本,通過 --with-mysql-config 指定mysql配置檔案路徑,這個路徑可能根據安裝包的不同而不同
mysql本尊
ln -sf /usr/local/Cellar/mysql\@5.6/5.6.42/bin/mysql /usr/local/bin/mysql
mysql.server
ln -sf /usr/local/Cellar/mysql\@5.6/5.6.42/bin/mysql.server /usr/local/bin/
mysqldump
然後驗證一下ln -sf /usr/local/Cellar/mysql\@5.6/5.6.42/bin/mysqldump /usr/local/bin/
mysql --version
mysql Ver 14.14 Distrib 5.6.42, for osx10.14 (x86_64) using EditLine wrapper
這個可能不一樣,以真實安裝為準
- 啟動mysql
mysql.server start
- 這個安裝過程可能需要重複很多遍,參考這個地方來來回解除安裝MySql
sudo rm /usr/local/mysql sudo rm -rf /usr/local/mysql* sudo rm -rf /Library/StartupItems/MySQLCOM sudo rm -rf /Library/PreferencePanes/My* rm -rf ~/Library/PreferencePanes/My* sudo rm -rf /Library/Receipts/mysql* sudo rm -rf /Library/Receipts/MySQL* sudo rm -rf /var/db/receipts/com.mysql.* 其實不同的安裝方式有些東西的存儲位置不一樣,删除完檢查一下下面這些檔案是否删除了,沒有的話則删除掉: /usr/local/Cellar 裡的mysql檔案 /usr/local/var 裡的mysql檔案 /tmp 裡的mysql.sock, mysql.sock.lock, my.cnf檔案 pid檔案和err檔案都在/usr/local/var/mysql裡確定删除了 brew安裝的安裝包存儲在/usr/local/Library/Cache/Homebrew也可以一并删除 執行brew cleanup
- brew install [email protected] (目前線上環境有5.6和5.7兩種instance,裝5.7也一樣。不過需要自己建my.cnf)
- 安裝redis
- 官網下載下傳 stable版的安裝包
- 解壓縮然後挪到 /usr/local/
tar -vxf redis-5.0.0.tar -C /usr/local/
- 進redis的目錄編譯一下,參考這篇
cd /usr/local/redis* sudo make test sudo make install
- 背景啟動redis
redis-server &
- Ruby的安裝
-
各種開發工具,目前主流的是用IDEA和VSCode來進行開發,也歡迎用其他的
0. IDEA
0. 直接官網下載下傳
1. 破解方法百度"lan yu",支援正版從我做起:)
2. 安裝各種插件,比如"ruby"
-
VSCode
0. 直接官網下載下傳
- 安裝各種插件,比如"ruby"
-
DB工具
0. 我直接用的MySql自己的MySQLWorkbench
- 連結一下本地DB試試,記得改root密碼 :)
-
-
運作容器
0. 一般來說有三種方式運作程式
0. 本地直接運作
1. 虛拟機
2. docker
三種方式各有優缺點可以自己找資料
-
安裝docker
0. 官網安裝教程
- 下載下傳普通安裝略
- 版本驗證
chen1:llspay chenchen$ docker --version Docker version 18.06.1-ce, build e68fc7a chen1:llspay chenchen$ docker-compose --version docker-compose version 1.22.0, build f46880f chen1:llspay chenchen$ docker-machine --version docker-machine version 0.15.0, build b48dc28d
- 然後在狀态欄小鲸魚裡面裝Kubernetes
-
導入項目
涉及公司資訊,略。
ruby依賴庫
- bundler:Manage dependencies of an application
ref: https://rubygems.org/gems/bundler
- pry: Ruby的debug工具。可能裝了,如果沒裝:
gem install pry
ref: https://github.com/pry/pry
-
Debug Ruby用的一些玩意兒
0. debase
gem install debase
ref: https://rubygems.org/gems/debase/
- ruby-debug-ide
gem install ruby-debug-ide
ref: https://rubygems.org/gems/ruby-debug-ide/
- ruby-debug-ide
關于開發
- 教程
- Ruby on Rails Guides
官方文檔,不過是英文的
- 菜鳥教程
這裡面從安裝到基本文法都寫的挺詳細,而且是中文文檔
- Ruby on Rails Guides
- CI/CD
- 持續內建持續部署(大概這樣翻譯) Continuous Integration/Continuous Deployment
ref: https://blog.csdn.net/sinat_35930259/article/details/79429743
- 持續內建持續部署(大概這樣翻譯) Continuous Integration/Continuous Deployment