百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

邓淑华讲述显著提升程序员身心健康和工作效率的装备

liuian 2024-11-28 00:51 27 浏览

本文由邓淑华新浪博客http://blog.sina.com.cn/u/1770587702提供。

作为一枚萌妹子,不敢自称程序猿,但也是常年电脑前累弯了肩膀和腰……邓淑华无意中在知乎看到这个问题,如何显著提升程序员身心健康和工作效率的装备。下面分享。

(一)

工作效率:

加速度(一个电脑的有用程度和它里面装的软件数成反比)

  • 给电脑换上SSD吧,你再也不用为了打开Photoshop而等待一分钟了,只需3秒!
  • 给电脑加条内存吧,开虚拟机再也不用等待菊花了
  • IDE上哪些从来都不用的Plugin给Remove掉吧
  • Chrome上打开chrome://memory-redirect/你会惊奇的发现一个再简单不过的Extension也得占用几十M内存,长时间不用的扩展还是删掉吧
  • 开机启动项赶紧T掉(Mac用户不在此列,我们都是几个月不关机的)
  • 舒适的网络环境绝对是非常重要的,还在用小水管,赶紧去换成10M光纤吧,体验下网上冲浪的感觉!
  • 国内环境还不赶紧上VPN,一年才100多快换来的是网络自由,这你都舍不得?
  • 多显示器绝壁是攻城师的不二利器啊!左边敲代码,右边预览、左边敲代码,右边LOG、左边敲代码,右边看电视
  • 实在只有一个显示器也行啊,多建几个虚拟桌面切换
  • 定制好的你的桌面图标(Mac Dock图标),把常用的提上去
  • 使用Quicksilver、Alfred之类的软件能有效的提高操作效率
  • 键盘的速度绝对比鼠标快,所以还是多记一记快捷键吧。Chrome下的Vimium和Firefox下面的Vimperator上手后对比下用数据操作的时间你会合不拢嘴的

专注

  • Coding的时候关掉手机提醒吧
  • 邮件通知、QQ消息等简直是让人分散注意力的罪魁祸首
  • 合理的挑选工作时间也很重要(当然得条件允许了,我是感觉每天晚上12点后的三个小时效率非常高,原谅我每天3点睡觉)
  • 一杯茶或咖啡在快没精神的时候是很有作用的
  • 你机箱是多少天没清理了,风扇的声音都快盖过拖拉机了
  • 对于有些人来说适当的音乐也能够使其更专注(我是那种要听着经典电视更能专注起来的,现在都能背下水浒传了)
  • 我在做事的时候能不能不要扫我桌子底下
  • 哇擦,IDE里这个文件有23层目录,用鼠标去点导航不得点死啊!搜索优于导航,用快捷键进行全局查找,赶紧抛弃文件树吧
  • find、sed、grep、awk好用到流泪

自动化

  • 很多时候我们都喜欢重复造轮子,但是不要造过一次还去造第二次好吗?
  • 每次打开收藏夹里面一堆网站挨个浏览真的比RSS好吗?
  • 每次的重复操作虽然只是占用很少时间,但长时间这样也是很费时的。搞成自动化不好吗?(每周耗时超过1小时的都建议做成自动化)
  • 搞自动化前好好衡量下值不值得,别给耗牛剪毛,越剪越多
  • 经常Google一些函数用法,赶紧将文档下下来本地查!(Mac下非常推荐Dash)

规范性

  • 这个小改动这样改就好了,没必要考虑那么多!- 结果后面又接二连三的来改这个或者这个引起的那个…改的时候考虑全面点
  • 用上Git、Subversion之类的版本控制工具吧,这次出问题了马上回滚到上次正常版本
  • 一定要写注释啊,别面下次看代码又从头看起!(被后面接手的人骂肯定不是滋味)
  • 画好UML图吧!不要每次费劲的想走到哪一步了,下一步是什么
  • 数据库结构关系图同上
  • Deadline的重要性不言而喻
  • 细分任务到最小层级,对每个层级进行耗时预判,做好时间点规划(Mac下推荐OmniPlan)
  • 对项目中突然增加的可有可无的需求说NO

测试驱动开发

  • 单元测试是提升代码质量的最好方法。不要只是看看,赶紧去用起来
  • 代码覆盖率测试也是非常重要的,帮你找回潜在的隐患
  • 代码错误检查(代码右边的红红绿绿的不消灭掉以后就等着被坑吧)

高效工作环境

工作环境是最影响工作效率的。听说没图没人看,那就贴张我自己家里办公环境的图吧!

图解:

椅子:一把舒适的椅子很重要

很多知友对图片里的椅子很感兴趣,那我就简单说说吧!

如果椅子预算在3000+,请忽视以下文字!

》》》忽视开始《《《

我们平常可能经常能看见各类人体工程学XX,比如人体工程系鼠标、人体工程学座椅!

不可否认,大于5k一把的桌椅的确很舒服,但是像我这种屌丝买不起,怎么办?

对比1000内和3000以上的后我发现一些明显的区别(如上图):

1.高端功能(比如座椅记忆功能,看着就高大上!但对于我这种预算有限的又没有实际需求还是pass)

2.靠手可以升降(公司的靠手最开始的时候经常会去调调,结果手也经常被卡着椅子和桌子间,后来发现靠手最合适的高度是手垂直放下,靠手与手关节交汇)

3.材质(透气度、安全度、是否异味)

其实这个还挺在意的,比如透气度、安全度,但是当我详细的看过她的配置后我发现每一把椅子的安全是合格的,在每一把椅子坐垫下都有一块一样的钢板!透气度感觉公司的座椅坐久了屁股也会热,所以坐垫的透气度可以降级!

4.还有其它的一些小区别

同时也发现一些相似处

1.座椅靠背的弧度一样(这是舒适的前提,必须保证!对比厚度也一样)

2.都可以调节成躺着的姿势(连续工作一段时间可以调整椅子平躺着小憩一会)

3.底座都是铝合金的(建议不要选择钢质脚)

根据我们的需求,发现透气度是最明显而又重要的区别,夏天不透气,真的不好受的,1000以下的透气效果不好怎么办?于是我就想到了退而求其次,买个凉席垫,使用后发现比其它透气效果都好!

具体型号请参照上面标准自行选择购买!

》》》忽视结束《《《

环境设备

书架:很多东西都可以放进去,桌上能清爽很多

台灯:夜深人静的时候关上顶灯,打开台灯

白板:我还是习惯放下电脑,用笔去梳理自己的思维逻辑

Macbook Pro: 内存已经加到16G,已更换SSD

键盘:试了好几个,最终还是选了某87,感觉非常好!

鼠标:在Mac下开发触摸板是很管用的,外接鼠标的话建议买多按键的以实现触摸板的特殊功能

显示器:左边是DELL2414H,右边是HP COMPRQ,两个效果差太多,价格差一倍。入DELL不后悔!

显示器支架:买的Loctek,这个的确很值,显示器任意角度、任意位置移动

桌布:到了冬天,很多人都会不愿意开电脑了。除了工作累之外我还发现其中很大一个原因是因为桌面太冷!!!

绿植:平常浇浇水也是一种乐趣

软件方面:

自己写了一个管理个人事务的系统(有点想喝牛奶买头奶牛的感觉)

很多知友问关于这个个人事务系统的一些状况,这里统一回答下:

是否开源:

的确有想过,周围同事也曾想参入进来,而且我做这个的初衷也想过公开给所有人免费使用,所以开源是肯定的!

如果你对效率提升方面有什么产品性建议,希望能够交流!

项目已经加入Github,您的Star和关注就是支持我们前进的动力!

这个项目的目的也是为了提高大家的事务管理效率,所以还是蛮有意义的!

更新一些大图:

其实里面功能大部分都能用世面上成熟产品替代的,但是那些工具无法根据我自己的意愿优化更改,所以我最终还是写了这么一个东西!

主要常用的:

时间目标管理:类似TODO,但是根据我个人制定了一些月度、季度以及年度目标,然后从平常的待办事件中分析大目标的进展

日记本:这个后来还是废弃了,转投印象笔记了

我的钱包:后台也是懒得记了,闲麻烦,本来想做成读取账单的,后台发现账单太多而且又不全,最终还是放弃了

密码保险箱:这个使用频率还是非常高的,存了自己一百多个网站的账号密码等信息,密码采用随机高强度规则生成的,所以我大部分网站密码都是大于18位,且定期更改

人际关系:这个主要管理自己的人际关系,和待办事件里关联的,如果待办事件里@了某人,那么在人际关系中某人的事件里面就会出现!还有人际关系拓扑图以及一些生日提醒之类的

关注新闻:已废弃,转投Reeder。本来是想写成自己的RSS阅读器,结果发现做出来的没有什么优势

常用软件

也不全,主要是这台电脑只在家里用,公司那台的开发软件会齐全些!

主要说下几个别人没提到的:

Alfred:效率神器,必备

Dash:管理各类开发文档的非常好用

iDocument: 管理各类文档

CodeRunner: 写些脚本工具非常快速,如下图

Mou: Markdown写各类报告也很好用

iTerm: 多窗口切割很好用

Reeder: Rss阅读器

补充(偏Mac):

JetBrains系列(IntelliJ IDEA/PhpStorm/PyCharm等)真的好用

Time Sink:曾经为了想知道自己30分钟内做了多少事而买了个漏斗,结果沙漏时间很不准确,然后就发现了这个软件,挺管用的

xSope: 各类辅助工具非常强大

Gas Mask: 上面回答者@李乐佳用这个在工作中屏蔽娱乐网站!而我们是用这个来指向测试环境和生产环境的

Charles:调试手机APP接口很方便

Parallels Desktop:虚拟机神器,一大特点就是融合模式(Coherence),如下图:

Sequel:远程数据库连接,支持SSH模式,如下图

Caffeine: 给电脑灌上咖啡,让它精神起来

Eudic:Mac下最好用的词典,非常方便

喜欢Windows下的PuTTY保存SSH密码功能?Linux下也可以 wufeifei/autossh · GitHub

浏览器插件:

VPN切换起来太顺了。国内网站直连,“国外”网站添加ssl

wufeifei (zhijie) · GitHubFollow 我的Github账号,最新提升效率工具会更新上去!

未完待续...空了再更新!

等你每一项都做到后,我大概会将未完待续部分补充完善!

我说的你可能都懂,但最后你还是没有做到。

为什么?因为你懂的不够深入:当你下一次再遇到想提升效率的时候,你又会去百度各种提升效率的方法,周而复始...

(二)

如果用Linux,找一个顺手的window manager,把常用的应用和窗口操作绑好快捷键,再装个dmenu之类的。(我现在在用openbox。)

==========================

*硬件:

**键盘:机械或静电容。我正在使用的是KBC Poker,红轴。布局如下:

60%布局,有点类似HHKB。(相比HHKB,这货太便宜了。。。)图中标示的键需要搭配Fn。但是这不是问题,因为右边的Fn大拇指非常好摁,而60%布局的好处是手掌根本不需要移动。比如方向键,右手大拇指摁住Fn左手wasd就可以了。这样在任何情况下都可以享受Vim的操作效率了。

此外可以通过开关切换CtrlCaps Lock位置,以及AltWin位置,加分!

唯一缺点是F1-F12比较难摁。但我的环境一般是Mac和Linux,很少需要F键,因此这块键盘对我来说很完美。

推荐一下红轴,青轴的问题是让我的感觉是手指需要配合着键盘的速度和节奏,这让我很不爽。而红轴完全是顺着你手指的速度和节奏的,打起来很轻松。不过这显然是因人而异啦。

当然,终极追求肯定是HHKB

PS:这货现在出了二代了,可编程,搞一个吧。

**轨迹球:强烈推荐罗技M570。如图

习惯需要一小段时间,但之后就再也用不了鼠标了。移动方向靠大拇指,手腕包括手掌完全不需要动啊太舒服了!

** SSD &尽可能大的内存:还要多说么,我还在使用Mid 2010 的 Macbook Pro,2.4 GHz Core 2 Duo(应该是P8600)。配合128GSSD和8G内存完全没有感觉速度不够用啊!

**显示器:不用多说,越多越大越好

**备份方案:没错,我说的当然是这货!Time Capsule

呃。。。我没有。。。买不起。。。

我现在在使用的是Raspberry Pi +希捷桌面硬盘配合Time Machine。虽然简陋了一点,但是满足备份需求完全没有问题。

**/咖啡/食物:写程序的时候有伏特加或者威士忌最好了!喝一口四肢活络头脑清爽啊!(匿,请根据酒量和口味自行选择。。。)还有没有咖啡食物嘴里好难受啊~

** 以及(不限于)USB Hub、无线充电设备、Eneloop电池、说得过去的耳机、螺丝工具箱、打印机甚至包括各种玩具等等所有可以让生活变得方便和美好一点的东西!

==========================

*软件:(我99%时间使用Mac和Linux,因此部分软件特指Mac和Linux下的——

**交换CtrlCaps Lock第一件事,先交换Ctrl和Caps Lock。从此再也不用担心手指变成这样了!

** Github不用多说,必备。

** Dropbox最好直接买Pro。我经常需要(在服务器或者集群上)跑几个小时甚至几天的计算程序。使用Dropbox同步之后去远程启动计算后该干嘛干嘛,计算结果出来后就会乖乖出现在本地硬盘里了。忘了scp和rsync吧!

此外还可以一定程度上弥补Git两次commit之间的版本回溯需求。

** Zsh & oh-my-zsh扔掉Bash吧,就冲自动补全也值了。

**字体:说实话我没太大讲究,只要是等宽字体并且可以区分O/0I/l就可以了。

** 其他必备的软件包括CaffeineMoomAlfredDash&SublimeText

相关推荐

使用Assembly打包和部署Spring Boot工程

SpringBoot项目的2种部署方式目前来说,SpringBoot项目有如下2种常见的部署方式一种是使用docker容器去部署。将SpringBoot的应用构建成一个docke...

java高级用法之:调用本地方法的利器JNA

简介JAVA是可以调用本地方法的,官方提供的调用方式叫做JNI,全称叫做javanativeinterface。要想使用JNI,我们需要在JAVA代码中定义native方法,然后通过javah命令...

Linux中如何通过Shell脚本来控制Spring Boot的Jar包启停服务?

SpringBoot项目在为开发者带来方便的同时,也带来了一个新的问题就是Jar包如何启动?在一般情况下我们都是采用了最为经典的java-jar命令来进行启动。然后通过ps命令找到对应的应用线程通...

牛逼!自己手写一个热加载(人民币手写符号一个横还是两个横)

热加载:在不停止程序运行的情况下,对类(对象)的动态替换JavaClassLoader简述Java中的类从被加载到内存中到卸载出内存为止,一共经历了七个阶段:加载、验证、准备、解析、初始化、使用、...

java 错误: 找不到或无法加载主类?看看怎么解决吧!

问题扫述:项目名称调整,由原来的com.mp.qms.report.biz调整为com.mp.busicen.mec.qms.report.biz后。项目在IDEA直接运行,但打包部署到服务器...

如何将 Spring Boot 工程打包成独立的可执行 JAR 包

导语:通过将SpringBoot项目打包成独立的可执行JAR包,可以方便地在任何支持Java环境的机器上运行项目。本文将详细介绍如何通过Maven构建插件将SpringBoot...

class 增量发包改造为 jar 包方式发布

大纲class增量发包介绍项目目录结构介绍jar包方式发布落地方案class增量发包介绍当前项目的迭代修复都是通过class增量包来发版本的将改动的代码class增量打包,如下图cla...

Jar启动和IDE里启动Sprintboot的区别

想聊明白这个问题,需要补充一些前提条件,比如Fatjar、类加载机制等1、Fatjar我们在开发业务程序的时候,经常需要引用第三方的jar包,最终程序开发完成之后,通过打包程序,会把自己的代码和三...

Java 20年,以后将往哪儿走?(java还能流行多久)

在今年的Java20周年的庆祝大会中,JavaOne2015的中心议题是“Java的20年”。甲骨文公司Java平台软件开发部的副总裁GeorgesSaab的主题演讲就将关注点放在了java...

Spring Boot Jar 包秒变 Docker 镜像实现多环境部署

你是否在互联网大厂后端开发工作中,遇到过这样的困扰?当完成一个SpringBoot项目开发,准备将Jar包部署到不同环境时,却发现各个环境依赖不同、配置复杂,部署过程繁琐又容易出错,不仅耗费...

从0开始,让你的Spring Boot项目跑在Linux服务器

1搭建Linux服务器1.1购买阿里云服务器或安装虚拟机这里建议是CentOS7.X或CentOS8.X,当然其他的Linux如deepin、Ubuntu也可以,只是软件环境的安装包和安装方式...

【技术】Maven 上传第三方jar包到私服

通过nexus后台上传私服以NexusRepositoryManagerOSS2.14.5-02为例。登录nexus后台。定义Maven坐标Maven坐标有两种方式:1.自定义参数;2....

JVM参数、main方法的args参数使用

一、前言我们知道JVM参数分为自定义参数、JVM系统参数,Javamain方法的参数。今天就谈谈怎么使用吧。二、查看jvm参数定义自定义参数我们打开cmd窗口,输入java,就能看到自定义参数的格式...

Maven项目如何发布jar包到Nexus私服

Maven项目发布jar包到Nexus私服在编码过程中,有些通用的代码模块,有时候我们不想通过复制粘贴来粗暴地复用。因为这样不仅体现不了变化,也不利于统一管理。这里我们使用mavendeploy的方...

干货丨Hadoop安装步骤!详解各目录内容及作用

Hadoop是Apache基金会面向全球开源的产品之一,任何用户都可以从ApacheHadoop官网下载使用。今天,播妞将以编写时较为稳定的Hadoop2.7.4版本为例,详细讲解Hadoop的安...