🦄 2024 独立开发者训练营,一起创业!查看介绍 / 立即报名(剩余10个优惠名额) →

博客

Day 1:Ruby on Rails 的学习资料与 Ruby 语言的基础知识

跟踪了时间才知道,每天的有效工作与学习时间平均只有 5 小时,我需要提高点效率,乱七八糟的事情少干。第一天花了 5 小时 58  分来准备学习资料与学习 Ruby 语言的基础知识。

音乐:http://music.163.com/#/song?id=36024457

学习资料

开始学习之前一般我会去找一些学习资料,我自己也订阅了一些国外的在线教育网站,比如 Lynda.com,Tutsplus 等等。找到适合自己频率的资料挺花时间的,特别是视频,有时候听有些人讲的东西老有骂娘的冲动,特别是当视频里关于铺垫的东西太多的时候,比如 “hey guys,I'm xxx,yesterday we were xxx , today we gonna xxx ... ”。

Lynda.com 的质量基本可以保证。Tutsplus 的课程差别很大,因为不是统一制作,也没有严格的标准,Youtube 上也会找到一些不错的视频,比如你遇到一个特别的问题,而不是想系统的学一样东西的时候,可以到 Youtube 上搜索一下。

记录未来 30 天的学习过程

睡不着的时候就想自己到底想做些什么,我觉得自己可以在 “教” 与 “学” 这两件事情上总结点东西出来。比如在学的时候,动机是什么,动力来自哪里,有没有什么方法,从哪里开始,怎么做才更有效,什么时间最好,遇到问题怎么解决的,当时的心情如何,花了多长时间,为什么会放弃。

有特别多的疑惑,我自己也非常想知道为什么,怎么办。我没有一套科学的理论,方法或者流程,都是很模糊的一些东西。所以我希望在学习的时候,可以记录一下这个过程,时间久了,我觉得就可以提取出来一些有用的东西。

就在刚才,我在亚马逊上搜索了一下关于学习方法的书籍,原来真的有,暂时我并不打算看这些书,想自己总结一些东西出来。通过实践来验证一下自己的一些模糊的概念,看看到底是不是自己想的那样。这个月我打算试一下(每周一至周五,我需要一个周末 :),学一个对我来说相对比较新的东西,记录这个过程,实验期限是一个月,要学的东西是 Ruby on Rails。

Imagine what you could build if you learned Ruby on Rails …

在 Docker 本地开发环境上极快地运行 Drupal

这个方法只在 macOS 上测试过,抱歉啊 :)

在本地,我们可以使用 Docker for Windows 或者 Docker for Mac 作为应用的开发环境。不过如果你打算使用 Docker 的数据卷存储应用的代码,特别是应用的文件比较多,比如 Drupal ,在运行它的时候你会觉得特别慢。这是因为 Docker for Windows 与 Docker for Mac 都使用了本地化的虚拟技术,这是为了给我们提供一个更顺流的体验,但是数据卷的性能是个暂时没能解决的问题。我找到了一个解决方法,就是使用 Unison 同步文件,暂时只在 macOS 上测试过。

安装 Unison 与必备

在 macOS 上安装了 Homebrew 以后,可以很容易用它安装 Unison 。另外你还需要让 Unison 可以监视文件的变化,当有变化时就去执行同步的动作,这些再安装一下 unison-fsmonitor 。

# 安装 unison
brew install unison

# 安装 unox 的依赖
pip install MacFSEvents

# unox 是在 macOS 上用的 unison-fsmonitor 脚本
curl -o /usr/local/bin/unison-fsmonitor -L https://raw.githubusercontent.com/hnsl/unox/master/unox.py
chmod +x /usr/local/bin/unison-fsmonitor

学习路径

对不住大伙,课程的学习路径与顺序一直没整好。暂时弄了个 在线思维导图 ,可以对课程的结构有个大概的了解。还有一个学习路径仓库 ,里面有具体的课程列表,注册一个 github 帐号,然后 Star 一下这个仓库,这样更新的时候会有提醒。您先用这两个东西作为参考来学习。

path

path-repo

阿里云:专有网络 VPC

在创建阿里云服务之前,先去创建一个网络,然后在这个自己独有的网络上添加需要的阿里云产品,这就是阿里云的 VPC (Virtual Private Cloud),直译就是虚拟私有云,产品的中文名是 “专有网络” 。

创建阿里云产品的时候可以选择自己的专有网络,也可以是经典网络。如果选择经典网络,你的产品跟同一区域的其他人的产品会在同一个网络上。如果使用自己的专有网络,你的服务跟其他人购买的阿里云服务是完全隔离的,这样会更安全一些。而且你也可以更好的控制自己的专有网络,比如使用交换机划分不同的网段,配置路由等等。

创建一个使用专有网络的 ECS 云服务器,流程大概是这样的(视频课程制作中 ... ):

  1. 创建一个专有网络
  2. 在专有网络下添加一个交换机
  3. 创建云服务器,选择所属的专有网络与交换机

如果你的云服务器要面向互联网提供服务,你还需要一个公网的 IP 地址,这样你还需要:

  1. 申请弹性公网 IP
  2. 把申请的公网 IP 绑定到指定的云服务器上

Docker Swarm:创建服务器集群

Docker Swarm 是创建服务器集群用的工具。把一堆服务器绑到一块儿用,让它们看起来像是一台服务器,通过统一的接口在这些服务器上运行应用。

集群里的服务器之间相互知道彼此,它们也知道哪些服务器上运行了什么样的服务,如果访问的服务在服务器上不存在,它会把访问转移到集群里的正确的服务器上去处理。一个服务可以用多个容器来支持,这些容器运行在集群里的不同的服务器上,请求可以均衡的分布给这些容器。当有服务器挂掉以后,在它上面运行的服务会被转移到其它的服务器上运行。

Docker Swarm 只需要几行命令就可以为应用创建一个强大的集群,为你的应用提供高可用的服务。宁皓网的 《 Docker:集群 》介绍了使用 Docker Swarm 创建集群服务器的方法。

模拟集群环境

如果你已经有了几台服务器,安装 Docker 以后就可以去创建一个服务器集群了,如果你想在本地测试 Docker Swarm 的功能,可以模拟一个集群环境,也就是在本地创建几台 Linux 系统的虚拟机,安装 Docker ,配置集群。下面介绍使用 Vagrant 创建虚拟机的方法。

Docker Compose:创建本地开发 PHP 应用的环境

Docker Compose 可以让我们用一个文件来描述应用需要的环境,在上面定义应用需要的各种服务,比如 web,数据库,脚本解释,缓存等等,我们也可以配置服务需要的网络与数据卷。这篇文章会创建一个运行 PHP 应用的环境,代码可以在 github 上找到,参考宁皓网课程《Docker:容器化应用》。

定义了下面这些服务:

  • db:使用 mariadb 作为应用的数据库
  • php:解释 php 脚本,使用 php-fpm
  • web:使用 NGINX 作为应用的 web 服务器
  • console:常用工具
  • redis:缓存
  • phpmyadmin:管理数据库的 web 界面

准备

在本地安装 Docker for Mac 或 Docker for Windows ,然后启动 docker ,再打开你喜爱的文本编辑器与命令行工具。为项目创建一个目录,在根目录下创建一个 docker-compose.yml 文件。

Docker:应用从开发到生产的正确方法

扯淡的文章,主要目的是说服你放弃现有的开发环境,比如这些:WAMP,MAMP,XAMPP,Acquia Dev Desktop ... 无论您是一个人,还是一个团队,考虑一下在开发与生产环境中使用 Docker 。

从前

美好的回忆,但那已经是过去。多年前,打算学 PHP 的时候,搜遍互联网寻找搭建运行 PHP 网站的方法,到七八个网站下载环境需要的不同的部分,安装以后还要考虑怎么配置,把它们拼到一块儿工作,当时对我来说是件很难的事情。后来我发现了 WAMP ,只需要到一个地方下载个东西,然后安装一下就可以拥有一个完整的开发环境,感觉很美好。之后很长一段时间我都是用它在本地设计网站,后来我换了 macOS ,所以又用了一阵子 MAMP 。

历史

选择 WAMP 这样的工具,跟我当时的情况有关。设计的网站主要是企业网站,这些网站做好以后很少修改,网站的运行环境一般是虚拟主机,一般只提供使用 FTP 传输文件的权限。使用 WAMP,也限制了整个开发流程,一般像这样:在本地做好网站,感觉差不多了以后就停止继续设计。然后打包网站文件,导出在本地的数据库。把网站文件包扔到虚拟主机上,在线解压,导入数据库。修改网站的配置文件,让网站可以正常运行。从此网站跟本地之间几乎就没有关系了,出现问题直接在线修改。

Docker:把应用放到容器里

在现实生活中,容器就是用来装东西的东西。把你的应用放到容器里,容器里的环境你可以自由定制,你可以在里面安装配置应用需要的任何东西,然后你可以把这个装载着应用的容器拿到任何地方去运行,这些地方不需要知道容器里面到底有什么,它只需要知道怎么样去运行这个容器就行了。Docker 提供了一系列的工具,让我们把应用放到容器里变得更简单。

镜像与容器

镜像与容器,image and container。基于镜像可以去创建容器,镜像有点像是容器的模板,比如你用 centos 镜像创建一个容器,这个容器里的环境就相当于是一个 centos 系统。镜像里可能预装了一些东西,比如 nginx 镜像包含了 nginx 这个 web 服务器,mongodb 镜像里面已经安装好了 mongodb 数据库。这些镜像会基于某些系统类型的镜像去创建,比如 debian,alpine 等等。

我们自己也可以制作镜像,在一个 Dockerfile 文件里描述你的镜像,一般要基于某个系统类型的镜像,然后描述一下安装什么样的软件,做什么配置,公布哪些端口等等,执行 docker build 命令可以生成这个镜像。你可以把自己制作的镜像发布到公开的或者私有的镜像仓库里。

春游

338A4471

在西安,我们走进一家回族泡馍店。一进门,一个十几岁的小男孩招待我们走到座位上,介绍了一下各种泡馍的区别,一会儿他端着两个碗,里面有两个馍,他看出我不会处理馍馍,在一边指导,让我先去洗手,然后告诉我一分为二,二分为四,中间掰开,掰的越小越好吃。他很讲究,并没有动手,只是用小手指,指着馍馍说。吃完以后,我们走出门,他微笑着招呼道,吃好了吗,我问他多大了,他说十五。温和,可爱。让我想起自己十几岁的时候,在父母的餐馆忙活的样子。

微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点