做外包中学到的

p0
2015.09.11,我狠下心入手了自己的第一个 MacBook ,购买的初衷是为了专心开发,虽然现在也没能做到全心投入开发,但也有了非常巨大的收获了。
自打那天开始,为了还款,我开始了接外包的生涯。
我这大半年接了大大小小几十个,到今天,我手中还有单子在做,整个过程中感觉自己学到了很多,在此整理成文本,希望多多少少有一些干货能够启发到现在看着这些苍白文字的你。

接单的心理准备

在网上接外包是一种没有安全保障的工作。通常在最开始的时候,你的外包来自于熟人。接熟人的单子代表着后期维护时间较长(不过我这种前端项目通常都不会叫你去维护),代表着项目款有保障。
而慢慢你不得不接触一些来自外部的单子,如果是熟人介绍的还好一些,不是熟人介绍的就不清楚会不会被跑单。我被跑过两单,第一单是一套移动端的web前端,虽然是熟人介绍的,但是最后拿着代码走的时候只付了20%(300/1500)。第二单是借着熟人的名义找我有偿debug,¥800 / 1 day,需要处理他项目中d3.js的相关代码来增加三个功能,我如约实现之后只付了62.5%(500/800)。虽然第二单看起来价格也不低,但是这算是一个警钟,因为当时没有及时和熟人沟通,导致的部分项目款遗失,确实是自己的意识不足。
我的运气相对好一些,没被人坑过大单,个人观点是,大型单子,没有靠谱的熟人亲口保障,一定一定要收预付款/阶段付款。代码完成之后部署之前一定一定要收全款
后端的代码放在自己服务器展示的时候相对是很安全的,但是像我这种做前端比较多的,适当的时候要学会保护自己的源码。
保护前端源码可以分几种情况:

静态前端

可以使用前端代码混淆。混淆后,使用js来生成html,原有的代码状态会打乱。

动态前端

可以在浏览器完成渲染之后,ctrl+s(cmd+s)进行静态化保存加载。

canvas游戏

放上一些版权性质的东西之后混淆js代码。

尽可能避免跑单,言语之间不要太相信对方。阶段性付款在进行过程中就相当于“即使跑单手里也会得到数值为XXX的项目款”,所以尽量保证阶段性付款,保护好自己的劳动成果。

接单的注意事项

这里是个人观点下做外包时要注意的几个点。

谨慎处理引用代码的版权

这里要关注一下你所引用的代码的许可证/协议。我们常见的有GPL协议,BSD,MIT,Apache等,做web端外包通常不会碰到Apache协议,以MIT协议居多。这些协议的具体区别可以自己搜索,个人认为必须要注意的点:

  • 保留作者的版权信息
  • 注明引用
  • 有些项目注明了禁止商业使用 / 商业使用需要购买,不要随便引火烧身
提高代码的可维护性

提高代码的维护性非常关键,相对来说我只有前端方面有些经验可以提几点:
使用前端工程化处理
前端工程化可以让 html 和 css 代码便于批量维护,善用 mixin 和模板语言是很重要的。个人习惯性采用的是Gulp&Jade&Sass这一套,所以前段时间 Fork 了一个个人觉得可用性很高的项目(项目地址),当然也可以使用我的增加了 CSS Sprite 生成的版本(项目地址),我的修改版中雪碧图放在 public/sprite 文件夹,正常运行即可,会根据图片名得到.icon-图片名这样的类。
项目要注意可配置化处理
基础参数需要写成配置,不要一直使用静态数据,修改成本会非常高。

阶段性技术总结

这里是近期写外包总结出的一些技术心得。(好像大部分都是我才感受到的常识

尽量减少盲目的复制粘贴

一开始接单的时候不注意复用性,导致我做了很多无用功。要增加代码的复用性,减少复制粘贴,可以用第一点中的解决办法,通过使用预处理的 类html 类css 语言来进行代码书写。要尽量一劳永逸。

提高工作效率

扩充自己的 mixin 容量,同时优化自己的 IDE,安装自己顺手的插件。插件和工具的重点还是自己用着顺手,不要墙头草。同时你也可以根据需求多写一些 Live Template 来提高自己的编码效率,也要记得熟练更多的 IDE 快捷键。关于 IDE 的选择和各种工具的使用……这里引用 Laravist站长曾经说过的一句话(不清楚源头是不是他反正挺有道理的)

stick to your value
还有自己的 Terminal 什么的,也要养成及时优化的习惯,至少要换成自己看着顺眼的主题。

经常性反思

要有反思的习惯。对于自己每个项目中自己写的舒服的地方和写的不舒服的地方,虽然项目已经完成了,自己也通常不会想着做二次开发去优化,但是要反思已完成项目的不足和优势,及时优化自己的 workflow ,或者使用更加符合时代特征的框架/库。

保持学习态

技术一直在迭代,自己的技术栈随时可能过时,保持学习态,培养自己短时间上手一个未知框架/库的能力,是非常有必要的。同时,要体验跨域开发,比如前端程序员可以接触一下后端啊、系统啊之类的,后端程序员可以换换语言换换框架。新的事物和语言能够刺激自己在本职语言上的领悟,非常值得体验。

最后

赚钱的过程中学习,这种体验是很棒的。我这半年多不停地在优化自己的代码,提升自己的能力,接触越来越多的东西,什么东西都敢接(/////),当然这份勇气也确实带给我很多宝贵的人脉资源。坚守本心,并不忘前行,才是技术人员的出路。
外包经历嘛,目前做过的有:

  • 微信端H5活动页面
  • canvas 小游戏
  • 各种网站前端页面重构
  • 大数据的 canvas 动态展示
  • nodejs/php 后端全站
    以上都是个人观点,有思路错误的还请指出,博客系统没优化过所以个人通常不会来回复评论,有事的话可以发邮箱

标签: none

已有 2 条评论

  1. Addams Chen Addams Chen

    谢谢,看完后明白了很多坑,不过感觉内容还缺点什么 ...

  2. 切记不要使用 GPL
    它具有传染性
    意味着你所有的其它代码都要毫无保留的、使用 GPL 许可证开源
    (LGPL 的话好一点,只要重新发布引用的源代码)

添加新评论