Ship Better Code

在没有体验过一整个软件开发过程并参与其中的工程师是很难说自己是一个合格全栈工程师或者说是独立开发者的。在工作了整整四年后,我可以说我已经是一个合格的独立开发者了。这其中踩过了无数的坑,也付出了很多精力去解决这些问题。

在各个群里面,其实我也遇见了很多觉得自己很厉害的php工程师或者nodejs工程师,觉得自己能够写(App,Web,Backend,Desktop)当中任意排列组合的两三个后就会觉得自己很厉害,觉得自己是一个全栈工程师了,并且也被很多不明觉厉的小白称赞两句,哇好厉害。

然,php5。With all my respect, well, I allege that you guys thoroughly suck.

私以为一个完整且健壮的产品是应该涵盖以下八个方面的:

  • 规划
  • 设计
  • 代码
  • 测试
  • CI/CD
  • 沟通
  • 交付
  • 贡献

规划

我们并不是大师,但是我们是一群为了理想而奋斗终身的敏捷武士,我们坚持精益的理念:通过不断的学习和有价值的用户反馈,对产品进行快速迭代优化。

在项目开始之初,就需要对整个项目所涉及的行业有一个大概的了解,也需要去了解一些专有名词,并熟记于心。不同的行业可以共用很多模块,但是在细节的处理上就能够体现出一个优秀的程序员所具备的素质。
这个阶段最重要的角色并不是Programmer而是一个Planner,在这里你需要给User和Client讲故事,并把写好的故事做成一个Storyboard,然后让Client以及User自己挑选符合自己口味的Story以及Timeline,没错,就是让User和Client演绎自己的故事。与此同时,你需要根据你的经验并且用“恰当”的方式去引导他们的观点,我把“恰当”拿出来单独讲是因为很多时候,一个Planner的角色是由产品经理或者项目经理去担当的,但是作为一个全栈的程序员,这里就要求不要把自己的角色固定住。只是觉得自己是一个程序员,而不去思考产品的本身是对与错,在任何时候,用“恰当”的方式去据理力争是卓有成效的,但也不要盲目的更具自己的经验去据理力争,你需要去了解这个矛盾背后产生的原因,这需要调查,收集一些信息,不能盲目的下结论。
实践是检验真理的唯一标准。

设计

很遗憾,我不是设计师,但是我见过太多设计师了。
我依旧不能设计出一款好看的产品。
其实很多工科生的审美是奇怪的,特指做出来的东西,他们的爱好可能很文艺很清新,或是很有艺术细胞,那么为什么做出来的东西会一塌糊涂呢,这个也是我反思了很久的问题,究其原因我觉得应该是我把很多固有的思维生搬硬套进来,然后做出了一个四不像,尽管能够从各种渠道去怎么完成一个效果,但是由于缺乏专业人士的指导,所以做出来的东西往往是更符合自己的审美,但却不是一个普遍美观的产品。
在推荐使用Sketch以及一些设计协作相关的产品搭配使用。

代码

在交付软件的过程中,代码其实只是其中的一个小环节,说到底就是把你解决掉问题的方法翻译成电脑能够理解出来的语言。
而如何Ship Better Code呢?
需要考虑很多边界条件?没错。
需要写更优雅的代码?没错。
需要动脑?没错。
在写代码之前,你要思考这样写是不是很"得体",如果你用了很多层很多次循环反复绕自己,那么你完了,也不要喷别人的代码差了,反思一下自己。
常言道,三思而后行,代码本身并不是一个体力活,一味的堆砌一些shit code并没有什么作用,就是传说中屎糊的代码;作为一个脑力劳动,写出来的每一行代码都是需要提现出自己思考的价值的。

测试

测试其实是一个老生常谈的问题,无论是从Unit Test到Integration Test还是到Acceptance Test,从任何一个地方增加测试都可以让你更有信心的写代码以及方便的修改代码,因为测试结果会告诉你,Everything is under control。

很多人一开始会偷懒不写测试,只是一个很小的功能,或者说不知道如何去写一个测试,我就是这样的,随着项目的code base增大,你每一次很小的修改都会带来不知道会发生什么的结果,比如程序崩溃,比如少了一个值等。这些都可以通过测试来给你解决掉。

这些比单纯地调用Postman查看结果会更加的优秀,代码可以使你更加自由的组合你需要的测试工具,比如每次测试完你都需要clean database,在某一个模块面前,你需要mock一些数据,或者stub一些第三方的返回。

CI/CD

如果说在上一部分是让你更加自信的写,修改代码,那在这一块就是让你更加自信的交付代码,可以保证软件在各种各样的环境下面尽可能的统一起来。通过Git加上一些CI/CD工具就可以很方便的设置起来,可以减少很大一部分的手工劳动,9102年了,大家可以尝试一下Git配套的CI/CD服务了。


Coding.net

无论是Github,Coding,BItbucket这些提供Git服务的供公司,其实都会提供配套的持续集成服务,毕竟代码不能跑起来就是一坨代码,而不是一个产品而已,而一个好的产品是需要不停的打磨的,与此同时持续集成显得尤为重要。

BTW,推荐阅读
GitHub 为什么免费了

沟通

沟通贯穿始终,无论是项目开始之初,亦或是开发正在进行时,举个例子,作为开发,你需要和产品,设计,测试等角色沟通,而作为设计师,也同样需要和各个角色沟通。


image.png

所以大家在这张强连通图里面,更多时候是需要扮演各种各样的角色,去交流,而不是Play your part well就够了。

交付

生产从第一天就开始了。从第一天写下第一行代码开始,我们就把软件看作了已经投产,而不是遥远的明天。通过持续集成,保证我们交付的代码已经生产就绪。

参考

  • 测试
  • 代码
  • CI/CD

贡献

Last but not least,分享你所学会的并且教会别人也是一件值得肯定的事情,在教的过程中也是在学习的过程,卖视频,卖课程是可耻的,如果有心,知识是不需要付费的。
在分享之前,你需要对自己的knowledge base进行梳理归档,然后把它们写下来,再进行分享,这样对于自己所掌握的知识是一个很好的复习与巩固。

最后

语言不是相通的,Lisp的代码与Java的代码看起来也是截然不同的,背后所体现的思想也是截然不同的,也许他们没有好坏之分,但是你一个英语都学不好的人和我来说语言是相通的。

Go home
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容