aravel 之父 Taylor Otwell :我是如何工作的
知名 PHP Web 开发框架 Laravel 之父 Taylor Otwell 发文描述了自己的日常工作状态:全职做 Laravel ,朝八晚五,使用 Sublime Text 3 写代码,终端使用 iTerm2 和 Oh My Zsh 。大致内容如下:
经常有人问我这样一些问题:如何管理时间、使用哪些工具、喜欢什么编辑器和配色方案?所以,在这篇文章中,我将尝试回答这些问题。
日常
我在自己的家庭办公室全职从事 Laravel 相关工作。通常,我上午 8:00 到办公室,第一件事是回答前一天晚上收到的所有 Forge、Envoyer 和 Spark 客户邮件。我在 iOS 上使用 Outlook,在 Mac 上使用 Apple Mail 。通常会有大约 15 封电子邮件需要回答。我喜欢清空我的收件箱,然后再继续做其他事情。我会定期刷新我的邮箱,以保持即时清空。
收件箱清空后,我会去查看 Laravel GitHub 存储库中的所有未完成的请求。我试图在整个 Laravel 组织中保持不超过 10-12 的 PR 数目。通常,我处理邮件和 PR 的工作会持续到上午 9 点,Mohamed 会帮我审查和分类 Github 的 issues 和 PR。
当我合并或者关闭了前一夜的所有新 PR 之后,我便准备开始一些自己想做的项目。通常,都是跟 Laravel 相关的。最近,我主要在为 Horizon 工作,这是一个新的 Laravel 包,我会在 Laracon US 会上详细讲解。(编者注:此文发布于今年5月)
下午5点我会结束工作,吃晚饭和陪伴家人。晚上 9:30 左右,我通常会重新刷新我的邮箱,以清除下午5点后发过来的邮件。这通常只需要10-15分钟,以帮助我减少早上的邮件负担。
开发环境/办公室
我的主要开发机器是一台 4Ghz 处理器、16GB 内存的 5K iMac。 我在 iMac 的每边都外置了一台 24” 4K 显示器,我将它们的背景设置为深灰色,使得它们在我不使用时看起来似乎是关闭着的。这将保持所有的像素显示都很显眼。

我有一把 Steelcase Leap 的椅子,一个 Swell 保温杯,和一个 Fidget Cube。办公室的屋顶有一个飞利浦 Hue 照明。
开发工具
编辑器
我主要使用的文本编辑器是 Sublime Text 3 。主要使用 Soda 主题和 Inspired GitHub 配色方案。使用 Operator Mono 作为主编码字体。使用 SublimeLinter 在 Sublime 中检查 PHP 语法。
我的整个 Sublime Text 参数文件如下:
{
"added_words":
[
"Laravel"
],
"caret_style": "phase",
"color_scheme": "Packages/User/SublimeLinter/One Dark (SL).tmTheme",
"ensure_newline_at_eof_on_save": true,
"findreplace_small": true,
"font_face": "OperatorMono-Book",
"font_size": 15,
"highlight_line": false,
"hot_exit": false,
"ignored_packages":
[
"SublimeLinter-jshint",
"Vintage"
],
"line_numbers": true,
"line_padding_bottom": 9,
"line_padding_top": 9,
"phpunit-sublime-terminal": "iTerm",
"remember_open_files": false,
"show_definitions": false,
"show_panel_on_build": false,
"tab_size": 4,
"tabs_small": false,
"theme": "Soda Dark.sublime-theme",
"translate_tabs_to_spaces": true,
"trim_trailing_white_space_on_save": true,
"word_wrap": false
}
在开发时,我通常会将实际的 Sublime 字体大小保持在 10 左右。
终端
我使用 iTerm2 和 Oh My Zsh ,和内置的 “robbyrussell” 提示符风格。使用 Arthur 配色方案,并在 iTerm2 中增加行间距,使行与行之间有呼吸空间。和 Sublime 一样,我使用 Operator Mono 作为终端字体。

数据库
我使用 Sequel Pro 与任何需要处理的MySQL数据库进行交互。令人惊讶的是,它还是免费的。我很乐意为此付出数百美元。我使用 Medis 与 Redis 交互。
SaaS 服务
我使用多个不同的服务,来运行 Forge 和 Envoyer:
DigitalOcean 用于服务器
Linode 用于更多的服务器
Cloudflare 用于 DNS 和 SSL
Ottomatik 用于数据库备份
AWS 用于存储和队列
Pusher 用于实时事件
Authy 用于双因子认证
生产力
我主要使用 Bear、Wunderlist 和 Trello 保持事务的组织化。我在 Bear 中有非常多的笔记,把它作为 Apple Notes 的替代品。使用 Wunderlist 作为个人清单和所有边缘项目的任务清单。使用 Trello 跟踪 Laravel 相关的任务,例如即将到来的功能,或需要编写文档的重大变化。
我还创建了一个小的 Laravel 应用,向我发送 Telegram 提醒,例如:倒垃圾、更换房屋空气过滤器、每月报税,等等。这个应用使用 Laravel 的调度功能,利用 Guzzle 通过 Telegram 的 API 发送消息。
音乐
我整天都使用 Spotify 听歌。我最喜欢的播放列表有:Night Rider、Lush + Atmospheric 和 RetroWave / Outrun 。
>>>【评论有礼】7月10日-31日在下方评论资讯,即有机会获得 9 活跃积分和开源中国实物周边。活动详情
https://www.oschina.net/news/86775/how-taylor-otwell-work
aravel 之父 Taylor Otwell :我是如何工作的的更多相关文章
- qt新进程工作目录的设置(工作目录确实是被子进程继承的,但也可以设置)
经过试验,qt启动一个新的进程时,这个进程的工作目录是继承父进程的,无论是通过start还是startDetached来启动. 其实对于linux系统,qt底层应该也是调用fork.exec之类的函数 ...
- vue子组件如何向父组件传值
子组件: <template> <div class="app"> <input @click="sendMsg" type=&q ...
- 使用-MM生成include指令和依赖生成(make include directive and dependency generation with -MM)
I want a build rule to be triggered by an include directive if the target of the include is out of d ...
- git workflow常用命令
git init git status git add readme.txt git add --all Adds all new or modified files git comm ...
- 利用 Composer 一步一步构建自己的 PHP 框架(四)——使用 ORM
本教程示例代码见 https://github.com/johnlui/My-First-Framework-based-on-Composer 回顾 经过前三篇文章 基础准备 . 构建路由 和 设计 ...
- 关于《Swift开发指南》背后的那些事
时间轴(倒叙)2014年8月底在图灵出版社的大力支持下,全球第一本全面.系统.科学的,包含本人多年经验的呕心沥血之作<Swift开发指南>(配有同步视频课程和同步练习)全线重磅推出2014 ...
- 为什么Laravel是最成功的PHP框架?
Laravel 是一个有着美好前景的年轻框架,它的社区充满着活力,相关的文档和教程完整而清晰,并为快速.安全地开发现代应用程序提供了必要的功能.在近几年对PHP 框架流行度的统计中,Laravel始终 ...
- [转]laravel 4之视图及Responses
http://dingjiannan.com/2013/laravel-responses/ laravel 4之视图及Responses 16 Aug 2013 Laravel的Response ...
- PHP多进程学习(一)__来初步了解一下PHP多进程及简单demo
php是一门单进程弱类型的语言,PHP处理多并发主要是依赖服务器或PHP-FPM的多进程及它们进程的复用,多进程的作用优点大家可以去网上了解,PHP实现多进程在实际项目中意义也是不容小觑的.比如:日常 ...
随机推荐
- 翻译 | Qt研发副总裁分享2018年工作计划
原文作者:TuukkaTurunen,高级研发副总裁 翻译校审:Haipeng.Yulong和Ryan 引言:2018年,我们将继续完善Qt 5.9 LTS,现在我们正在为5月份发布Qt 5.11进行 ...
- Annotation研究的一些学习资料
转自chanyinhelv原文Annotation研究的一些学习资料 下面是我最近对Annotation研究的一些学习资料,收集于此,供大家学习之用. 一.Annotation要素类介绍 在GeoDa ...
- Android 升级到Android Studio2.2 后打不开以前版本的项目
1.找到 build.gradle 用记事本打开,修改如下: // Top-level build file where you can add configuration options commo ...
- synology
入手群晖261J无法正常安装DSM 错误代码38 求教各位恶魔https://www.chiphell.com/thread-1599081-1-1.html(出处: Chiphell - 分享与交流 ...
- PathRemoveFileSpec 函数的作用:将路径末尾的文件名和反斜杠去掉(与GetModuleFileName配合)
PathRemoveFileSpec 函数的作用:将路径末尾的文件名和反斜杠去掉. 例如,我们想获取EXE文件自身所在的文件夹,可以这样: #include <stdio.h> #incl ...
- thinkphp5如何使用ajax(变化的核心,也就是ajax作用的核心是什么)
thinkphp5如何使用ajax(变化的核心,也就是ajax作用的核心是什么) 一.总结 一句话总结:ajax的核心在于页面的不刷新而获取后台数据,所以后台的操作还是一样(获取参数,返回数据),只是 ...
- Spring学习笔记之六(数据源的配置)
1.前言 上一篇博客分析了,Spring中实现AOP的两种动态代理的机制,以下这篇博客.来解说一下Spring中的数据源的配置. 2.DAO支持的模板类 Spring提供了非常多关于Dao支持的模板 ...
- [转]Redis 与Mysql通信
http://blog.csdn.net/hpb21/article/details/7852934 找了点资料看了下.学习心得如下: 1 Mysql更新Redis Mysql更新Redis借鉴mem ...
- Python 标准库 —— zipfile(读取 zip 文件)
Python模块学习:zipfile zip文件操作 Python 学习入门(16)-- zipfile 0. 解压 with zipfile.ZipFile('../data/jaychou_lyr ...
- vuex与vue-router学习方案
1.vuex,官方vuex2.0的文档写得太简略了,先1.0的文档,研究1.0分支的counter例子.1.0文档只需看核心概念和API参考文档.2.0的用法先不管,需要的时候再说,先把1.0高熟练. ...