首先开发 spike 解决方案 -- 这是我早期敏捷 / 极限编程所养成的习惯之一. spike 解决方案是一次性原型, 可以帮助你在投入大量时间和精力之前验证你是否走对路.
区别就在于原型, 因为你遵循这样一个规则, 在你完成研究之后, 你最终会扔掉 "spike" 代码. 所以允许你偷工减料, 迅速行动, 因为它不会出现在产品或代码审查中.
此方法有助于迅速发现设计的哪些部位尚不明确, 而不必过早地尝试架构或设计决策.
致力于小而连贯代码块的版本控制 -- 通过类似 CVS/Subversion, 每次提交都直接发送到服务器. 做部分文件的提交并不简单.
随着 Git 的出现, 只提交较大文件的若干行代码变得很容易, 并且可以在 push 到远程代码仓库之前先本地 rebase/merge 提交.
有一次, 我在工作于更大功能的时候, 采用了小型增量提交, 我的工作效率直线上升. 这样做能够清空我的大脑以便于面对更重要的事情.
经常写代码 -- 最近, 我正工作于: 一个基于 web 的企业协作和自动化平台 (PHP / MySQL), 一个基于云的实时指标聚合器和使用循环哈希(Node.JS/ Redis) 的 API, 一个面向 iOS App 商店 (Swift/ SpriteKit) 的棋盘游戏, 专门的基于 URL 的 cron job 可替代基于 Web 的 SaaS 服务(JAVA), 等等.
用过大量框架和语言有助于我的抽象和算法思维.
我从工具, 如 Eclipse RCP,Tapestry 和 Hibernate 中学到了很多伟大的经验教训, 并用到我的 PHP 项目里. 尤其是在 2000 年初, 在有 Java 特征的企业生态系统用于 PHP 存在之前. 我从 Unity3d/C#学到了很多关于网络和面向消息的架构.
如果我只坚持单一平台和社区的话, 就永远不会知道这些概念.
编写简单的代码 -- 我以前习惯于写复杂的代码以作为对自己的挑战. 而现在的挑战是要编写优雅且简单的代码 -- 到一种每个人都觉得他们也能做到的地步(即使他们不能). 简单代码通常来自于若干次复杂代码的迭代.
引用 Antoine de Saint Exupéry 的话就是:"不是没有什么可添加, 而是没有什么可消减的时候, 才算是达到了完美."
这也使得我们在长时间休止之后返回项目, 以及鼓励其他人参与进来变得容易多了.
最后优化 -- 我们很容易掉入试图比用户或计算机更聪明, 并且预优化各种边缘情况的陷阱. 关注帕累托法则(80%的效果来自于 20%的工作). 写代码, 运行代码, 当必要的时候专注于最大的瓶颈. 这也支持保持代码库的简单.
说 "不要首先优化代码" 并不意味着 "编写粗糙的代码". 代码总是应该精益和优雅, 没有必要画蛇添足, 不要将一整天的时间用在挤压剩下的 10%, 但其实已经能够工作良好的一些东西上. 不但工作效率会下降, 而且还会引进更多复杂性, 解决方案变得不那么可归纳, 等等.
着眼于 "最重要的事情优先"-- 总是有一些项目领域比其他的更有趣或更具挑战性. 工作于那些有趣的东西总是比工作于那些必要的东西更有诱惑.
在攻克重要部分时, 将有趣部分作为一种调剂, 也就是说, 两者都做一点也是可以.
因此, 光从这一点上说, 将大的问题分解成小问题的理念是不言自明的. 每个人都懂. 所以, 我会通过计分若干 "quick wins" 来开启我的一天, 这能让我更有冲劲和更专注("quick wins" 可以是任何东西, 包括有趣又小型的挑战), 然后我会首先冲向 "最重要的事情".
了解全栈 -- 当我刚开始干这一行的时候, 没有什么比等别人做完他们那部分东西, 然后我才能继续我那部分工作更糟糕的了(设计师, 后端人员, 前端人员, 数据库人员, 服务器人员, 等等).
于是, 当我 2000 年创办自己的软件开发公司的时候, 我做了一个明智的决定, 那就是涉猎全栈. 我知道我不可能擅长所有东西, 也不可能是最后唯一对所有一切负责的人, 但我想要做终端到终端的原型, 因为我没有耐心看过程.
每当我需要的东西触碰到我不懂的领域时, 我会研究它. 于是乎, 我学会了服务器管理, 数据库管理, 设计, 前端 / 后端开发, 云架构等.
通过了解其他领域是做什么的, 我才能写出包含它们需要的代码.
当然, 其中的一些要点似乎并不是所谓的 "小习惯", 但我向你保证, 它们是小变化历经 20 年时间导致的结果. 重要的行为变化并没有意义, 更多的是关于我是如何频繁地练习这门技术(在过去 10 年时间中每年大概 4000-5000 个小时).
所以, 我的做法更像是去回答这个问题:"什么样的小习惯会导致更糟糕的软件和低效的生产力?", 然后反过来.
最后, 给大家推荐一个前端学习进阶内推交流群 685910553(前端资料分享), 不管你在地球哪个方位,
不管你参加工作几年都欢迎你的入驻!(群内会定期免费提供一些群主收藏的免费学习书籍资料以及整理好的面试题和答案文档!)
如果您对这个文章有任何异议, 那么请在文章评论处写上你的评论.
如果您觉得这个文章有意思, 那么请分享并转发, 或者也可以关注一下表示您对我们文章的认可与鼓励.
愿大家都能在编程这条路, 越走越远.
来源: http://www.jianshu.com/p/48b29caa5db7