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实现多进程在实际项目中意义也是不容小觑的.比如:日常 ...
随机推荐
- 使用URLConnection获取网页信息的基本流程 分类: H1_ANDROID 2013-10-12 23:51 3646人阅读 评论(0) 收藏
参考自core java v2, chapter3 Networking. 注:URLConnection的子类HttpURLConnection被广泛用于Android网络客户端编程,它与apach ...
- Activity 调用Service的方法
一般来说,Activity调用Service 分为两种:进程内调用和进程间调用.进程内调用时比较常用的一种,在进程内调用中我们常常使用的是bindService来启动Service(关于这种启动方式的 ...
- jQuery中serializeArray方法的使用及对象与字符串的转换
使用jQuery中的serializeArray()方法可以方便的将表单中的各个信息,转化为多个{name:xx,value:xx}对象的数组, 再使用遍历的方式可以方便的将数组转化为json对象, ...
- 【物理/数学】概念的理解 —— pivot、position
0. 基本释义 pivot: n. 枢轴:中心点:旋转运动 vt. 以-为中心旋转:把-置于枢轴上 vi. 在枢轴上转动:随-转移 adj. 枢轴的:关键的 position: n. 位置,方位:职位 ...
- produces在@requestMapping中的使用方式和作用
produces可能不算一个注解,因为什么呢,它是注解@requestMapping注解里面的属性项, 它的作用是指定返回值类型,不但可以设置返回值类型还可以设定返回值的字符编码: 还有一个属性与其对 ...
- Double prefix overrides to provide 16-bit operand size in a 32/64 operating mode
A processor supports an operating mode in which the default address size is greater than 32 bits and ...
- php如何实现读取网易有道词典输出单词的xml格式并且转化为html形式
php实现读取网易有道词典输出单词的xml格式并且转化为html形式 一.总结 一句话总结:将xml中的文件用preg_match_all读出来,然后组合成想要的数据 1.explode除了爆炸的意思 ...
- 【u220】生日礼物
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 一对双胞胎兄妹同一天过生日,这一天,他们的朋友给他俩送来了礼物,每个人送的礼物都是2本书,一本给哥哥, ...
- TensorFlow 学习(十二)—— 高级函数
tf.map_fn(fn, elems):接受一个函数对象,然后用该函数对象对集合(elems)中的每一个元素分别处理, def preprocessing_image(image, training ...
- 【erlang 网络编程学习】 分析cowboy acceptor实现
http://www.tuicool.com/articles/vuymei 不知道为什么就看了cowboy代码,就继续看了下去了. 分析一下吧,主要写写cowboy 的acceptor pool 的 ...