自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ruby Tips

Become a Better Ruby Developer Now

  • 博客(66)
  • 收藏
  • 关注

原创 mongo docker-compose

docker-compose.ymlversion: '3.7'services: mongo: image: mongo restart: always environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: root MONGO_INITDB_DATABASE: example volumes: - ./data:/data/

2022-03-16 14:38:46 663 1

原创 后端缓存笔记

建议学时:4 小时。CDN 缓存服务器缓存页面缓存页面缓存是将动态页面直接生成静态的页面放在服务器端页面缓存是将动态页面直接生成静态的页面放在服务器端,用户调取相同页面时,静态页面将直接下载到客户端,不再需要通过程序的运行和数据库的访问,大大节约了服务器的负载。每次访问页面时,会检测相应的缓存页面是否存在,若不存在,则连接数据库得到数据渲染页面并生成缓存页面文件,这样下次访问的页面文件就发挥作用了。数据库缓存数据库会在内存划分一个专门的区域,用来存放用户最近执行的查询。数据库的缓存一般.

2022-03-01 14:25:00 696

原创 Markdown 入门

建议学时:4 小时。Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。程序员有很大比例的时间都在编写文档。Markdown 已经成为了主流的文档格式,并且它的编写也很简单。掌握 Markdown 并不难,简单花点心思即可。可以基于 md-tutorial 这个教程快速上手。写作能力是程序员应该具备的非常重要的技能之一。Markdown 能被使用来撰写电子书,如:Gitbook、mdbook。当前许多网站都广泛使用 Markdown 来撰写帮助文档或是用于论坛上.

2022-03-01 14:24:30 339

原创 OAuth 2.0 学习笔记

建议学时:4 小时。OAuth 2.0 要么用来创建一个能够从其他应用读取用户信息的应用 ,要么创建一个使其他应用访问自己的用户数据的应用。OAuth 2.0 是 OAuth 1.0 的替代品,OAuth 1.0 更加复杂。OAuth 1.0 涉及到了证书等,而 OAuth 2.0 更简单,它不需要任何证书,仅仅就 SSL/TLS。参考教程OAuth 2.0 菜鸟教程OAuth 2.0 怎样被用来在应用间共享数据的例子第一步,用户访问客户端 web 应用。应用中的按钮”通过 Facebo.

2022-03-01 14:23:46 217

原创 自定义 Rails 生成器和模板

自定义 Rails 生成器和模板建议学时:4 小时。如果你计划改进工作流程,Rails 生成器是必不可少的工具。使用 rails 命令创建应用时,使用的其实就是一个 Rails 生成器。创建应用之后,可以使用 rails generator 命令列出全部可用的生成器。$ rails new myapp$ cd myapp$ bin/rails generate你会看到 Rails 自带的全部生成器。如果想查看生成器的详细描述,比如说 helper 生成器,可以这么做:$ bin/ra

2022-03-01 14:22:56 747

原创 Procfile 和 foreman

Procfile 和 foreman建议学时:4 小时。Heroku 应用程序包含一个 Procfile,它指定应用程序在启动时执行的命令。你可以使用 Procfile 来声明各种进程类型,包括:应用的网络服务器多种类型的工作进程单例进程,例如时钟在部署新版本之前运行的任务Procfile 命名和位置Procfile 始终是一个 Procfile 没有文件扩展名的简单文本文件。Procfile 必须位于应用程序的根目录中。如果放在其他任何地方,它就不起作用。Procfile 格式

2022-03-01 14:22:01 1025

原创 阿里云数据库迁移手记

如果没必要,不要去迁移。如果非要迁移,列出服务迁移清单,最后建议两个人完成这个工作,一个操作,一个确认操作。提前通知所有相关开发人员,不要在数据迁移过程中执行数据库变更操作。为了便于管理,我这里的 10 多个系统(姑且认为十个)共用一个阿里云 RDS 实例。访问量基本最核心的一个占了 95% 以上的访问量。数据库基本上也只这样的比例。我们就把这些系统按照类别分为两类:核心系统和非核心系统。数据库迁移规划,为当前的非核心系统单独购置一台阿里云 RDS 实例。虽然是非核心业务,但是也不能停机迁移数据库。.

2022-03-01 14:20:40 1020

原创 如何使用 puma 部署 Rails 应用

要求puma version <= 4.x生成环境使用# 启动sh manage.sh start production# 重启sh manage.sh restart production# 停止sh manage.sh stop production# 更新sh manage.sh upgrade productionconfig/puma.rbthreads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }threads thr

2022-03-01 13:41:16 490

原创 搭建 Rails 开发环境

就算对有经验的开发者来说,安装 Ruby、Rails,以及相关的软件,也要几经波折。这些问题是由环境的多样性导致的,不同的操作系统、版本号、文本编辑器等,都会导致环境有所不同。对于有 Rails 开发经验的开发者来说,大部分会选择 macOS 系统进行 Rails 开发,但是 macOS 系统比较小众,并且 mac 电脑价格比较贵,对于很多想学习 Rails 的开发者来说,这是一个不可忽视的问题。随着 Windows 系统的持续升级,现在可以在 Winddows 系统上借助 WSL 进行 Rails

2022-02-17 22:52:48 1063

原创 添加 Sublime Text 的命令行

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/sb

2022-02-16 10:28:00 568

原创 redis docker-compose.yml

redis: image: redis ports: - "6379:6379"

2022-02-10 23:33:49 1192

原创 pg docker-compose.yml

version: '3'services: postgres: image: postgres:11 environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres ports: - 5432:5432 volumes: - ./data:/var/lib/postgresql/data redis: image: redis:5 p

2022-02-10 23:29:26 648

原创 mysql docker-compose.yml

version: '3'services: mysql: restart: always image: mysql:5.7 volumes: # 文件挂载 - ./data:/var/lib/mysql environment: - "MYSQL_ROOT_PASSWORD=root" # 设置密码 - "MYSQL_ROOT_USER=root" # 设置默认数据库 - "TZ=Asi

2021-12-30 09:56:48 921

原创 如何在 Rails 项目部署时启用 YJIT

RUBY_YJIT_ENABLE=1 rails sYJIT 是一种最简单的提升 Rails 项目性能的手段。随着 Rails 7.0.0 的发布, Ruby 3.1.0 也即将发布。Ruby 3.1.0 虽然默认不启用 YJIT,但是我们可以通过环境变量来启用 YJIT,具体来说就是RUBY_YJIT_ENABLE=1YJIT 加速 Rails 项目的具体原理就不再展开。目前 YJIT 只支持 Ruby 3.1.0 及其以上版本。虽然 YJIT 可以提升 Rails 项目的性能,但是也不要抱太

2021-12-16 22:45:50 554

原创 # Rails7 表单提交概览

Rails 是一款企业级全栈开发框架,如果你使用它做一下 Web 最底层的原理探索,需要先掌握 Rails。对于 Web 开发来说,表单提交时非常重要的功能。Rails 模板项目默认是使用 ajax 异步提交,这更符合现在 Web 开发。下面我们简单探索下 Rails7 的 Form 提交。创建项目gem install rails --prerails new form_demo使用脚手架快速添加资源rails g scaffold Blog title:string content:te

2021-12-15 22:33:21 1595

原创 mrujs ujs 替代者

https://mrujs.com/tutorials/getting-started安装yarn add mrujs导入 mrujsimport mrujs from "mrujs";import * as Turbo from "@hotwired/turbo";// Turbo must be set before starting mrujs for proper compatibility with querySelectors.window.Turbo = Turbo;mr

2021-12-14 10:29:38 181

原创 Homeland 开源、免费的论坛系统

项目地址http://github.com/ruby-china/homeland下载源码git clone git@github.com:ruby-china/homeland.gitRuby 版本选择3.0.3安装项目依赖的 gembundle install项目基础配置 rails about(base) peng@peng-pc:~/RailsTrainCamp/code/1101/homeland$ rails aboutWARNING: table: "settings"

2021-12-12 21:43:12 891

原创 motor-admin 无代码管理面板

motor-adminhttps://github.com/motor-admin下载项目源码git clone git@github.com:motor-admin/motor-admin.gitRuby 版本选择2.7.1安装项目依赖的 gembundle installrails about启动数据库sudo service postgresql start执行数据库迁移执行数据库创建、迁移、填充数据等操作rails db:createrails db:migra

2021-12-12 21:38:56 1781

原创 基于 wreeto_official 项目 学习 PostgreSQL

https://github.com/chrisvel/wreeto_officialwreeto项目地址https://github.com/chrisvel/wreeto_official下载项目源码git clone git@github.com:chrisvel/wreeto_official.gitRuby 版本选择3.0.3安装项目依赖的 gembundle install修改 Gemfile 中 devise 的版本gem 'devise', git: 'git@g

2021-12-10 22:08:30 510

原创 discuss 一个免费、开放、简单的社区讨论的平台

discusshttps://github.com/discourse/discourse下载项目源码git clone git@github.com:discourse/discourse.gitRuby 版本选择3.0.3安装项目依赖的 gembundle installrails about(base) peng@peng-pc:~/RailsTrainCamp/code/1103/discourse$ rails aboutAbout your application's e

2021-12-09 22:05:41 4210

原创 使用 Docker 启动 PostgreSQL 服务 (选学)

企业真实的 Rails 项目,由于业务量大, SQLite 数据库不适合,所以我们需要一个性能和特性都符合企业级别的数据库,通常来说也就两个选择:PostgreSQL 和 MySQL。不过 Rails 项目更喜欢使用 PostgreSQL,因为它更加稳定,更加安全,更加高效,更加可靠,特性也更加丰富。接下来我们主要学习 PostgreSQL 相关的知识。当你掌握了 PostgreSQL 后,只需要花费很少的时间就能掌握 MySQL。参考文档http://www.postgres.cn/docs/13

2021-12-08 22:53:23 4175

原创 Docker PostgreSQL Ruby 示例

.envPOSTGRES_HOST=127.0.0.1POSTGRES_USER=postgresPOSTGRES_PASSWORD=postgresPOSTGRES_DB=test_dbPOSTGRES_PORT=5434docker-compose.ymlversion: '3.9'services: postgres: image: postgres:13 env_file: .env ports: - 5432:5432 volume

2021-12-07 15:57:16 736

原创 Ubuntu 18.04 安装 Ruby 2.3.1

常见的问题就是 openssl 软件版本不一致引起的问题。解决方式也很简单sudo apt purge libssl-dev && sudo apt install libssl1.0-devrbenv install 2.3.1gem install bundler:1.17.3bundle install如果用的是 mysql 数据库,可以使用以下命令安装 mysql client 头文件。sudo apt-get install libmysqlclient-dev

2021-12-07 12:43:13 1195

原创 Linux 更改 max_user_watches

运行查看当前限制:cat /proc/sys/fs/inotify/max_user_watches通过编辑/etc/sysctl.conf 并将此行添加到文件末尾,可以将限制增加到最大值:fs.inotify.max_user_watches=524288更多问题看参考:https://code.visualstudio.com/docs/setup/linux这样就可以愉快地在本地使用 VSCode + Remote-SSH,完整本地云端一体化的开发环境了。...

2021-12-06 23:10:30 2083

原创 低成本 Rails 学习环境搭建方案

做过 Rails 开发的程序员都知道,Rails 最佳开发环境是 macOS 、Ubuntu 等类 Unix 系统。通常不建议新手在 Windows 系统上搞。Ruby 在 Windows 原生系统的表现这么多年过去了还是差强人意。这无疑阻挡了很多 Rails 初学者。特别是当初学者,很容易搜索到这篇文章 新人千万不要在 Windows 上使用 Ruby on Rails随着 Windows 系统的升级,从 Windows 10 开始,我们可以通过 WSL + Ubuntu 的形式在 Windows 系

2021-12-06 07:32:40 333

原创 WSL 中启动的 MySQL 服务在 Windows 中使用

WSL 中使用 Docker 启动 MySQL 服务version: "3"services: mysql: restart: always image: mysql:5.6.36 container_name: my_mysql volumes: - ./data/mysql:/var/lib/mysql # - /docker/mysql/source:/docker-entrypoint-initdb.d environment:

2021-12-06 07:05:09 1114

原创 使用 BeanstalkMQ 初步替代 Sidekiq

对于 Rails 开发者来说,默认会使用 Sidekiq 作为后台作业处理系统,通常来说 Sidekiq 在性能和功能方面都足够优秀。但是还是有一些 Sidekiq 无法满足的需求,比如统一队列中的任务设置不同的优先级以及延迟调度作业等。担心的事情还是发生了。最近一个线上业务的表现越来越差,简单说就是一个通知发生业务,需要做到有些通知需要优先发送,有些通知延迟发送。之前开 Rails API 文档时,通过 backburner 了解到 Beanstalk,Beanstalk 是一个高性能、轻量级的、分

2021-12-04 22:38:24 347

原创 Rails 信条

原文: https://rubyonrails.org/doctrine/译文: https://ruby-china.org/wiki/the-rails-doctrine以下是我的翻译(机翻)。Ruby on Rails 的惊人崛起很大程度上归功于新技术和时机。但技术优势会随着时间的推移而消退,而良好的时机并不能单独维持长期的走势。因此,需要更广泛地解释 Rails 如何继续不仅保持相关性,而且扩大其影响力和社区。我认为,持久的推动因素一直是并且仍然是其有争议的学说。这一学说在过去十年中不断发展

2021-12-03 21:54:24 966

原创 程序员必读书单 (部分)

代码大全 (第 2 版) https://www.amazon.cn/gp/product/B0061XKRXA程序员修炼之道:从小工到专家 https://www.amazon.cn/gp/product/B004GV08CY计算机程序的构造和解释 (原书第 2 版) https://www.amazon.cn/gp/product/B0011AP7RY计算机科学丛书:算法导论 (原书第 2 版) https://www.amazon.cn/gp/product/B0011BVTRK重构:改善.

2021-12-01 19:56:01 3419

原创 Git 学习总结

教程大全Git 入门教程 https://www.runoob.com/git/git-tutorial.htmlGit 使用规范流程 http://www.ruanyifeng.com/blog/2015/08/git-use-process.html?utm_source=tuicool20Git 分支工作流程 https://www.softwhy.com/article-8651-1.html在工作中是如何使用 Git 的 https://zhuanlan.zhihu.com

2021-12-01 19:46:04 947

原创 Rails 后端工程师应该具备的技能

打字速度技术写作LinuxRubyRailsGitSQLiteHTMLCSSJavaScriptjQueryBootstrapMySQLPostgreSQLMongoDBRedisDockerKubernetesAjaxujsNode.jsTurbolinksVue/ReactWebpackTurboStimulusminitest算法

2021-12-01 06:28:03 1078

原创 Ruby 学习资源

Ruby 中文学习资源其实并不多。学习 Ruby,还会需要一定的英语基础,特别是英文阅读基础。我学习 Ruby 时,主要用到的参考资源有:Ruby 基础教程第五版 https://www.ituring.com.cn/book/1843Ruby 教程 https://www.runoob.com/ruby/ruby-tutorial.htmlRuby 2.7.4 标准库文档 http://ruby-doc.org/stdlibRuby 2.7.4 核心库文档 https://ruby-doc.o

2021-12-01 06:25:32 418

原创 用于业余项目的 Rails 技术栈

Ruby on Rails 仍然是创建应用程序最高效的方法之一。它既安全又无聊,可以完成工作。总览Ruby 和 Rails 版本:Ruby 3 和 Ruby on Rails 7;架构:使用 “Rails 方式”;后台作业:Sidekiq;数据库:PostgreSQL;资源管理:Webpacker;CSS:Tailwind;Javascript:Alpine.js、Stimulus、Unpoly.js 和 Vue;分页:Pagy;测试:RSpec 或带 VCR 的 minitest;

2021-12-01 06:23:55 348

原创 Rails 项目简单部署

Rails 项目简单部署nginx 配置upstream rails_server { server 127.0.0.1:3000;}server { listen 80; server_name xxx.com; keepalive_timeout 5; client_max_body_size 38M; root /xxx/public; access_log /xxx/nginx.access.log; error_log /xxx/nginx.erro

2021-12-01 06:21:57 2097

原创 为 Jupyter Notebook 安装 Ruby 内核

做数据科学离不开 Jupyter Notebook,但是显然 Jupyter Notebook 不单单是为了 Python 而设置(但是离开 Python 显然也很不方便)。Ruby 相比于 Python 安装较为复杂。我们可以用 Juptyer Notebook 安装 Ruby Kernel,降低入门的难度。安装软件pythonjupyterRubyiruby下面以 Ubuntu 系统为例通过 miniconda 安装 python#!/usr/bin/bashset -ewge

2021-12-01 06:19:16 334

原创 33行Ruby代码15分钟爬取 ruby-china 的所有精华帖内容

爬虫的本质是网络访问。爬虫库爬虫一般分三部、下载网页、解析抽取网页数据,存储数据。HTTP 库Ruby标准库中的HTTP库不太好用,第三方开发的HTTP常用有如下几个Httpartyrest-clienthttpTyphoeusNet::HTTP用哪一个都行,我选择 http示例代码require 'http'body = HTTP.get("https://ruby-china.org/topics/31784").bodyp body.to_sHTML 解析库no

2021-11-26 21:09:57 1093

原创 212 Ruby 正则【Rails后端开发训练营】

脚本和自动化任务通常需要从输入数据中提取文本的特定部分或将它们从一种格式修改为另一种格式。本章将帮助您学习正则表达式。为什么需要正则表达式正则表达式是一种用于文本处理的多功能工具。大部分的脚本语言把正则表达式内置于标准库中。即使没有,那也能找到第三方库。正则表达式的语法和特性因编程语言而异。Ruby 的正则是基于 Onigmo 正则表示库。虽然 String 类 预装了各种处理文本的方法。但是依然无法代替正则表达式。正则表达式预期说是一个库,不如说一门用于文本处理的迷你编程语言。一下是一些常见的正

2021-11-26 21:09:11 1260

原创 211 循环和迭代器【Rails后端开发训练营】

计算机编程中的某些操作最好使用循环。循环是一块代码重复一个给定的量或直到特定的条件被满足的重复执行。我们将介绍 while 循环、do/while 循环和 for 循环。一个简单的循环在 Ruby 中创建循环的最简单方法是使用 loop 方法。loop 接受一个块,用{ … }或表示 do … end。loop 将执行块内的任何代码(同样,这只是在{}或之间 do … end),直到你手动干预 Ctrl + c 或 break 在块内插入一条语句,这将强制循环停止并且执行将在循环后继续。让我们 loo

2021-11-25 07:39:45 585

原创 210 Ruby 方法、类和模块【Rails后端开发训练营】

Ruby 方法什么是方法以及我们为什么需要它经常会有一段代码需要在程序中多次执行。大多数编程语言中有一个称为过程的功能,而不是一遍又一遍地编写那段代码,它允许你将公共代码提取到一个地方。在 Ruby 中,我们称之为方法。在我们可以使用一个方法之前,我们必须首先用保留字 def 定义它。在 def 之后我们给我们的方法定义一个名字。在方法定义的最后,我们使用保留字 end 来表示它的完成。这是名为 say 的方法定义的示例:def say # 方法体在这里end方法主体中有一条注释,用于向你

2021-11-25 07:39:15 901

原创 209 运算符、条件判断和循环语句【Rails后端开发训练营】

1 运算符Ruby 支持一套丰富的运算符。大多数运算符实际上是方法调用。例如,a + b 被解释为 a.+(b),其中指向变量 a 的 + 方法被调用,b 作为方法调用的参数。Ruby 运算符可以分为如下几类算术运算符;比较运算符;赋值运算符;位运算法;逻辑运算符;三元运算符;范围运算符;defined?运算符;点运算符 “.” 和双冒号运算符 “::”。下面我们通过代码一一做下介绍算术运算符+、 -、 *、 /、 %、 **# 01.rb# 算术运算符# 加法a =

2021-11-25 07:38:41 1023

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除