一名合格的UiPath开发人员究竟需要具备什么核心技能?业务梳理?沟通技巧?VB.net吗?VBA吗?Python?还是SQL?出于多种原因,关于这一点总是众说纷纭,莫衷一是。尽管这些技术都算沾边,但我始终觉得并没有触及RPA或者UiPath的核心。
 
那么我就反过来想,究竟缺少了哪一点,RPA就不再能够称之为RPA?
 
一上来就直面这个问题,其实是有些困难的。于是我便进一步问自己,RPA到底是什么?
 
我相信许多同行跟我一样,经常被问到——所谓的RPA,跟按键精灵到底有啥区别?我努力试图向人们解释RPA比按键精灵更高大上,但往往人们的表情依然困惑。一个人问,可能只是个疑问,一万个人问,那必定有什么道理。为此我冥思苦想,忽然觉得以往试图强行将它与按键精灵区分开,似乎是个错误的方向。这个东西,本质上跟按键精灵并没有什么不同,都是图形界面的自动化技术。至少在单机环境下,按键精灵和各种RPA工具理应能够实现同样的功能和效果。这么一想,就豁然开朗起来。
 
那么既然RPA是图形界面的自动化技术,这一类技术的核心是什么?
 
当然是找到正确的界面元素,并与其进行预期的交互。所以说,搞明白在UiPath中如何准确地定位界面元素,是UiPath开发的首要技术要求。
 
那么在UiPath中定位元素,有哪些关键知识点呢?
我认为有以下几点。
完整选择器
部分选择器
模糊选择器
绝对定位
相对定位
动态定位
 
其中动态定位技术最复杂,涉及一些相关的Activities,包括但不限于:
Anchor Base
Context Aware Anchor
Element Scope
Find Children
Find Relative Element
Get Ancestor
Indicate On Screen
Pick
Try ... Catch ...
Switch
Throw
Rethrow
Get Position
等等。如何灵活运用以上知识进行准确的元素定位,才是UiPath的核心技术。并且,以上提及的知识点也都是UiPath的难点。UiPath玩过好几年但还是没有完全搞懂上述知识的开发人员,我见过不少。新手更是经常在定位界面元素的问题上翻车。可见吃透定位技术并不容易。据我所知这方面的系统学习资料并不多,官方教程也只做扫盲然而并不深入,只能全凭各人的钻研和经验积累,所以可以用来考察UiPath开发人员的功力深浅。
 
我觉得将它视为UiPath开发人员技术合格与否的第一道分水岭都不为过。
 
核心定义的后半句话是,进行预期交互的能力。预期交互是指什么呢?其实说白了,就是设计和实现逻辑分支的能力。
 
有的人可能会觉得,实现逻辑分支有什么难的?不就写个if/Else,True/False嘛?会这么想虽然算有些理解,但缺少实践支撑。
 
我知道有不少人在设计流程的时候,是线性的思维,流程图是一条直线一二三四走下来,开发的时候也常常喜欢用Sequence一条写到底。这样遇到小的逻辑分支还能修修改改,遇到大的逻辑分支就完蛋了,完全改不动。一个典型的例子就是登录流程的设计,往往一登录就了事,从来不想密码错了流程怎么走,密码过期了流程怎么走,登录成功还是失败也不确认,遇到任何异常就简单粗暴地重试三次了事,最终导致账户被锁定,才回头想办法返工重做。登录的例子还算简单明了,有些场景逻辑分支实现起来相当复杂,需要对业务异常和技术异常全盘考虑尽量处理,还要兼顾用户需求,就很棘手。特别是异常流程要怎么走,应该做到什么,能做到什么,什么动作做不了,这些事心里有没有数,也是应该考察的重点之一。
 
以100分制来打比方的话,定位技术可以用来判断UiPath开发人员达到60分没有,而按预期进行交互的能力则可以用来评判是否达到80分。
 
另外,由于目前大多数RPA客户还处于小打小闹的尝鲜状态,许多RPA项目只是做Front-Office Robot,即前端的,助手形的机器人。这种类型的机器人设计上有一个特点是自动化流程有可能与用户当前的操作同时进行。因此,如何尽量避免影响用户操作,也是一个虽然不大但蛮重要的考察点。
 
与传统IT开发技术不同,准确和稳定是RPA的首要要求,性能虽然也蛮重要但其实很少优先考虑。

(草稿)如何判断一名UiPath开发人员是否合格?的更多相关文章

  1. [置顶] think in java interview-高级开发人员面试宝典(一)

    “生死六重门” 无论你是在职,非在职,高级工程师,工程师,架构师,如果你正在面试阶段,请看完此文! 相信这篇文章对你的职业生涯和阶值观会造成重大的改变! 如果你是一名PM或者是管理者正在物色合适的开发 ...

  2. think in java interview-高级开发人员面试宝典(一)

    "生死六重门" 无论你是在职,非在职,高级工程师,工程师,架构师,如果你正在面试阶段,请看完此文! 相信这篇文章对你的职业生涯和阶值观会造成重大的改变! 如果你是一名PM或者是管理 ...

  3. .NET开发人员值得关注的七个开源项目 .

    NET开发人员值得关注的七个开源项目 软近几年在.NET社区开源项目方面投入了相当多的时间和资源,不禁让原本对峙的开源社区阵营大吃一惊,从微软.NET社区中的反应来看,微软.NET开发阵营对开源工具的 ...

  4. 成为Web开发人员的7个简单步骤

    你想成为一名 Web 开发人员,但现在你面前有这样一个问题,那就是你没有在高科技行业工作的经验.你上了一些课程,也花了时间在个人编码项目上,但是你的简历上关于“经验”的部分仍然不为企业承认.过渡到一个 ...

  5. 你确定你是一个合格的.Net开发人员吗?

    做.net开发已有近5年时间,自认掌握的知识比较全面.最近部门需要招人,今天抽空在网上看了一下,发现我了解的还是不够多啊.下面是我大致的罗列了一下作为一名.Net开发人员所需要掌握的只是.看看你是不是 ...

  6. 适用于 PHP 开发人员的 Python 基础知识

    Thomas Myer, 负责人, Triple Dog Dare Media 简介: 您是一名经验丰富的 PHP 开发人员,并且希望学习 Python 吗?本文将从 PHP 开发人员的角度来探索 P ...

  7. .NET开发人员必须知道的八个网站

    对于不熟悉.NET技术的朋友,需要说明一下,.NET提供了一个平台和一些相应的工具,.NET开发人员可以使用它们来在开发Windows桌面,互联网,甚至是手持移动设备上构建极富交互性的应用.很有可能你 ...

  8. [置顶] think in java interview-高级开发人员面试宝典(二)

    从现在开始,以样题的方式一一列出各种面试题以及点评,考虑到我在前文中说的,对于一些大型的外资型公司,你将会面临全程英语面试,因此我在文章中也会出现许多全英语样题. 这些题目来自于各个真实的公司,公司名 ...

  9. [搬运] 写给 C# 开发人员的函数式编程

    原文地址:http://www.dotnetcurry.com/csharp/1384/functional-programming-fsharp-for-csharp-developers 摘要:作 ...

随机推荐

  1. 一条Top10热销品牌MySQL语句

    表t_alibaba_data的数据结构如下: 各列含义分别是: 用户id(user_id),品牌id(brand_id),用户行为(type, 其中,点击为0,购买为1,加入收藏为2,加入购物车为3 ...

  2. linux实用小命令--查看文本内容

    一.cat命令 $ cat [参数]filename 这还有一些可以和cat命令一起用的参数,可能对你有所帮助. 1.-n 参数会所有的行加上行号: $ cat -n test1 2.这个功能在检查脚 ...

  3. Springboot结合Redis

    安装 Redis   安装 gcc Yum install gcc-c++ 解压 redis.3.0.0.tar.gz 压缩包 tar -zxvf redis-3.0.0.tar.gz 进入解压后的目 ...

  4. java之JVM内存模型

    简而言之: 基础数据类型,值是保存在栈中: 引用数据类型,值保存在堆中,栈中保存的是引用数据类型在堆中的地址: 方法区:保存所有的class和static变量:

  5. CodeForces-Round524 A~D

    A. Petya and Origami time limit per test  1 second   memory limit per test  256 megabytes input stan ...

  6. 关于直线,V形线,Z形线,M形线分割平面的总结

    一:N条直线分割平面 假设,x条线能将平面分为f(x)份,这对于份f(n) 第n条线,和其他n-1条线都有交点时,增加量最大,为n; 则: f(n)=f(n-1)+n; 有f(0)=1:得到:n 条直 ...

  7. 最短路 & 差分约束 总结

     一.引例      1.一类不等式组的解 二.最短路       1.Dijkstra       2.图的存储       3.链式前向星       4.Dijkstra + 优先队列      ...

  8. eviews面板数据的操作

    数据结构: 打开eviews File>new>workfile Object>new object > pool 输入城市名称: _bj 下划线加名称(必须是英文),竖着输入 ...

  9. SpringMvc 跨域处理

    导读 由于浏览器对于JavaScript的同源策略的限制,导致A网站(Ajax请求)不能通过JS去访问B网站的数据,于是跨域问题就出现了. 跨域指的是域名.端口.协议的组合不同就是跨域. http:/ ...

  10. JS基础-this

    this this的指向有哪几种情况? this代表函数调用相关联的对象,通常页称之为执行上下文. 作为函数直接调用,非严格模式下,this指向window,严格模式下,this指向undefined ...