火币网下载官方app安卓

主页 > 洞察 > 开发资讯 > 人力外包
  • 看看IT的工程方面有哪些就知道为什么要从IT行业人才进行外包了

    adinnet / 2018-01-16 13:37 /人力外包

    长期来看,我更希望有值得信任的外包公司按项目来承接外包,对于非核心业务,不影响公司长期收益的项目我倾向于外包。因为通过外包可以用有限的开发人员(做设计)完成更多的项目,同时解放了开发人员,不必从底层简单代码写起,工作更有挑战性。

    尤其是IT的工程方面,看看有哪些工程就知道为什么愿意从专业从事IT行业的进行人才外包了。

    1.工具化

    我觉得工具化非常突出了,凡是能工具完成的事情,绝对不手工完成。以下几个方面都是可以找到相应工具,帮助开发者管理代码质量

    代码风格检查、工业标准检查、代码整理、代码复杂度检查、单元测试覆盖率检查、依赖管理、压缩代码、重复代码检查、无用代码检查等等,

    2. 工程化

    工程化也是近年来更更突出的一个发展趋势,过去只是选择性的,现在是必须的。

    工程化是以工具化为基础的,没有工具,那么工程化也无从谈起。

    工程的核心就是流程自动化,又称之为构建,这些包括了:代码质量检测,代码压缩,代码合并,代码优化,代码编译,单元测试等等部分。构建就是把这些以工作流程的方式组合起来,然后用一个命令行运行这整个流程。它有点像批处理,但是是程序开发中使用的特殊批处理

    在网页编程的过程中,现在又流行“实时编程”,就是当你在保存代码的时候,以上的构建流程就开始工作完成后自动刷新浏览器,保证新代码效果立刻反应在浏览器上。

    现在,你去 GitHub 的项目库中找软件,首先翻看,是否有工程文件,看看它的构建流程是什么,就知道这个项目的专业程度和项目的质量了

    而自己,没有一个配置一个工程化的流程系统,都不好意思说自己在做软件工程。

    3. 自动化

    自动化是以工程化为基础的,工程化本身就是一种流程自动化。而自动化有在工程化的过程中更进一步的自动化。

    持续集成就是全自动化的一个终极体现。他的主要流程是:版本控制库 ->构建 ->测试 ->报告.持续集成有点像 Windows 的定时任务,但是它是程序开发专用的定时任务。持续集成的特点就是全自动,一个项目一次配置好了后,要求不变的话,就不用管了;然后开发者不断把代码加入到版本控制库里就行了,每当库有新代码时候,持续集成就会下载代码进行构建;当它完成构建和测试后,如果测试没有通过,就会报告给你,然后你根据报告结果进行修改代码。所以你每次往版本库加的新代码时候,持续集成就会全自动的帮你构建和测试代码,尽快的通知你代码的问题。这样程序员就可以更加集中精力编写功能代码和测试代码,而不用担心新代码是否会影响到过去的代码了。持续集成在多人一起开发的时候,更是有用,谁上传的代码没通过测试,能马上知道。这样保证多人项目在代码顺利合并,体现“持续集成”的功效。另外还有个持续部署,其实就是持续集成在测试成功后部署上产品服务器上的流程。如今有些网站一天就要部署几十次,有了持续部署后,部署多少次都毫无压力。工具化,工程化,自动化的关系挺有意思,前者是后者的基础,而后者却极大推动了前者的发展。它们是相互积极作用,相互推动了对方的发展,形成了一个很好的良性循环

    其他方面:

    1. 版本控制,Git,GitHub

    版本控制在编程界中的地位是越来越重要了。在编程界中有个说法:没有版本控制的项目,就等于没有这个项目。版本控制的工具很多过去有 SVN,如今 Git 的强大,用的人也是越来越多,而它和 GitHub 的相同作用下,对编程界的积极影响和积极推动,是令人无法忽视的。比如几乎所有的依赖管理工具的库下载源,都是和 GitHub 绑定的, 就这一点来说,GitHub 的重要性在 IT 就不可估量。

    而 GitHub 上和 Git 的方便管理,上传,查看,统计,bug 报告等功能更是极大地推动了程序员之间的合作;GitHub 上的开源更是改变了开源软件对世界的影响力。GitHub 不是 Git 的全部,Git 也不是版本控制的全部,本质上来说,GitHub 只是一个网站而已;然后 GitHub 确实又是这个编程世界不可缺少的一个重要的模块,已经成为了一个不可或缺的组成部分了。甚至 GitHub 已经跳出了编程界,成为了一个世界级的不可或缺的服务平台了。然而 GitHub 是 2008 年建立的,真正开始流行是在 2012 年的。在 2015 年 Google 宣布关闭自己的 Google Code。可见 GitHub 的影响力,以及在业界的重要程度了。

    2.生态圈意识

    生态圈意识在业界是越来越强了,它应该和编程工具化和工程化有极大的关系。一个语言,框架或者库的出现,人们用它们,不但是因为它们本身的强大,更是因为它们背后的生态圈。

    比如说人们选一个 JavaScript 的框架,选 React 还是选 Ember.js,更多是看支持他们的生态圈如何,React 是有 Facebook 支持的,更有很多程序员为它开发相关工具和库以及有很多文档教程。这样 React 的生态圈就很大,会让更多人愿意选择 React 作为第一开发框架。而 Ember.js 相对来说生态圈小,选择它的人可能就不会很多。选语言也一样,选 JavaScript 编写爬虫还是选 PHP 编写爬虫还是用 Python?更多的是看他们的生态系统了,Python 的爬虫库强大且丰富,所以更多人选用 Python 编写爬虫。

    一个新的语言出现,成熟与否,看的就是它的生态圈了,比如是否有测试框架,是否有 MVC 框架,成熟的时间库,数据库 SDK 等等,这些都是其必要的生态圈组成部分。

    总结:

    以上的这些现象和趋势,其实都是相辅相成的,更终成了一种良性循环。这些现象和趋势都会继续发展下去,并成为以后新趋势的基础。所以这些工作都是非常重要的,而且应该成为每个程序员都应该知道的知识。如果自己公司培养一个程序员知道需要多少的资源了嘛,所以我觉得对于用人单位而言,使用外包更大的好处是节省成本和按需配置人员,坏处就是项目执行风险,如果找错了外包公司,沟通成本也是相当大的,更要命的是更后做出来的东西不是你想要的,所以培养外包公司和公司一起成长也是重要的。


上一篇:外包程序员到外派公司里应该做什么? 下一篇:IT人才外包时先要了解 下用什么语言开发