⑴ 浅谈如何做一名优秀的WEB前端工程师
首先,优秀的Web前端开发工程师要在知识体系上既要有广度和深度!做到这两点,其实很难。所以很多大公司即使出高薪也很难招聘到理想的前端开发工程师。技术非黑即白,只有对和错,而技巧则见仁见智。
再者,优秀的前端工程师需要具备良好的沟通能力,因为前端工程师至少都要满足四类客户的需求。
1、会用PS来进行图片的处理(比如切图,微调等)
2、用HTML/CSS实现mockup(可能还有SASS/LESS等工具)
3、熟悉JavaScript(比如前端的MVVM框架,客户端模板)
4、前端开发的工作流程(代码检查,精简化,模块化CSS,LiveReload,调试)
5、编写测试(静态检查,单元测试)
6、跨浏览器、跨设备的解决方法(不同分辨率,不同厂商)
7、会根据项目的特点选择不同的前端技术栈(移动端,Web站点,响应式设计等)
在有了基础的HTML/CSS/JS技能之后,你会尝试做的更好:
1、如何更高效的操作DOM
2、如何将CSS写的更加清晰易懂
3、如何编写更加易于维护的代码(更有意义的单元测试)
4、如何组织大型的项目结构,模块化,组件化等等
这些要求事实上已经不那么容易做到了。它可能会花费你2到3年时间来全掌握。但是2到3年之后,即便你已经成为了一个“合格的”前端工程师,这也还远远不够。在现实世界中,一个软件产品除了前端,还有非常广阔的空间,还有很多有趣的东西值得学习:
1、HTTP协议本身(缓存,鉴权)
2、Web容器/HTTP服务器如何工作
3、无状态的Web应用的工作原理(如何让网站正确地运行在集群上)
动态,静态内容如何分离部署(反向代理配置)
4、安全机制如何配置
5、监控机制如何配置
有了这些,也算是有点端到端的意思了。这时你也已经不是一个“纯前端”工程师了,系统中的大部分问题你都可以搞定,不过日常工作中可能更多的职责还是做前端的开发。但是这些还不够,软件除了交付之外,还有一些非功能性的需求:
1、端到端测试(UI测试,比如selenium server/web driver)
2、devops(比如数据库环境,测试服务器,CI服务器的自动化provision)
3、基本的UI设计原则(在某些页面确实的情况下,根据系统的已有UI做设计)
4、数据库性能优化
5、性能测试
这时候,你才能算是一个严格意义上的“前端”工程师。可见要想成为一名优秀的Web前端工程师是需要经历一番历练的,有基础的人可以自学,没基础的需要参加Web前端培训课程,这样学起来更方便。
⑵ 如何实现前端工程化和静态资源的管理
提升开发体验
我们主要从以下三个方面来提升我们的开发体验。
规范化
当团队人员不断扩充时,我们需要制定统一的规范来对平时的开发工作做出一定约束和指导。统一的规范包括前端的代码规范,根据规范定义好一套代码检查的规则,在代码提交的时候进行检查,让开发人员知道自己的代码情况。
同时,根据以往的开发经验,我们制定了统一的项目框架,根据业务功能不同,将一个项目(app)拆分成不同的业务模块(mole),而每一个模块都包含自身的页面(page)以及构成页面所需要的组件(widget),每一个项目涉及到app、mole、page、widget这些已经约定好的概念,这样让项目结构更加清晰,而且让团队内不同业务的人员之间切换无障碍。
组件化
在项目中引入组件化的概念,这里的组件对应上文讲到的widget,每一个组件都会包含组件自身的模板、css、js、图片以及说明文件,我们使用组件来拼装页面,像搭积木一样来拼装我们的页面,同时一个组件内可以调用另一个组件。
在拿到设计稿后,我们首先需要确定哪些需要做成公共组件,那些是要做成独立组件,以及组件间如何进行通信。在页面中调用这些组件后,会自动加载组件的模板以及组件的静态资源,而当组件不再需要时,只要移除掉组件引用,那么相应的模板和静态资源也会不再加载。
组件化的好处主要有这么几点
管理方便,我们可以把一个独立功能相关的文件在工程目录中放在一起,这样代码管理起来会非常便利
组件复用,通过抽取公共组件,可以实现组件复用,从而减少工作量,创造价值
分而治之,这是组件化最重要的一点,将页面组件化,就是对页面功能的拆分,将一个大的工程拆成小的零件,我们只需要关注每一个零件的功能,极大地降低了页面的开发与维护的难度
自动化编译
在前端开发中,我们总是会去使用很多工具、手段来优化代码、提升开发效率,例如,我们会使用sass、less等CSS预处理工具来编写更好维护的样式代码,我们也会使用CSSLint、eslint等代码检查工具来检查代码的语法错误,使用文件合并压缩等手段来减少资源大小,除此之外我们还会去做雪碧图合并、多倍图处理、字体压缩处理、代码发布等等。
曾经有大神说过,超过90s的工作都应该自动化掉。而以上所有的这些工作,贯穿我们整个开发流程,但是不同工具的切换不但显得凌乱,而且影响开发效率。在自动化、工程编译的思想早已深入人心的当下,我们当然也要紧跟潮流,所以我们考虑通过自动化手段来提升我们的效率,让所有操作可以一键式开速执行完。
我们将通过定义好一系列的编译任务,按照一定顺序依次对我们的项目自动进行编译操作,最后产生出可上线的代码。
⑶ 为什么有些前端代码审查的时候可以看到,另存到本地或查看源代码就看不到了呢
不是静态的保存到本地是没有的,审查的时候能看到某些代码是因为此刻的网页是动态编译并非静态
⑷ 前端怎么快速筛选页面没用的js和css文件
从我用过的方法,可以从两个层面来说,不过都是没有办法100%的精准和全面的。也可能还有一些更好的方法,不过我没用过。
代码检测
对于JS,可以使用JSHint或者ESLint进行进行代码检测,可以检测到每个代码里面你定义(或者引入)但是并没有用到的变量。你可以在你的编辑器里面安装相关插件,也可以通过在每次代码提交之前进行检测。相关使用方法可以看这里:ESLint,JSHint比如:我使用VI作为编辑器,截图中使用的是ESLint:
.
⑸ 求前端验证js代码
这是一般表单中会用到的 1. 长度限制
<script>
function test()
{
if(document.a.b.value.length>50)
{
alert(”不能超过50个字符!”);
document.a.b.focus();
return false;
}
}
</script>
<form name=a onsubmit=”return test()”>
<textarea name=”b” cols=”40″ wrap=”VIRTUAL” rows=”6″></textarea>
<input type=”submit” name=”Submit” value=”check”>
</form>
2. 只能是汉字
<input onkeyup=”value=”/oblog/value.replace(/[^\u4E00-\u9FA5]/g,”)”>
3.” 只能是英文
<script language=javascript>
function onlyEng()
{
if(!(event.keyCode>=65&&event.keyCode<=90))
event.returnvalue=false;
}
</script>
<input onkeydown=”onlyEng();”>
4. 只能是数字
<script language=javascript>
function onlyNum()
{
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
//考虑小键盘上的数字键
event.returnvalue=false;
}
</script>
<input onkeydown=”onlyNum();”>
5. 只能是英文字符和数字
<input onkeyup=”value=”/oblog/value.replace(/[\W]/g,””) “onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\d]/g,”))”>
6. 验证邮箱格式
<SCRIPT LANGUAGE=javascript RUNAT=Server>
function isEmail(strEmail) {
if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
return true;
else
alert(”oh”);
}
</SCRIPT>
<input type=text onblur=isEmail(this.value)>
7. 屏蔽关键字(这里屏蔽***和****)
<script language=”javascript1.2″>
function test() {
if((a.b.value.indexOf (”***”) == 0)||(a.b.value.indexOf (”****”) == 0)){
alert(”:)”);
a.b.focus();
return false;}
}
</script>
<form name=a onsubmit=”return test()”>
<input type=text name=b>
<input type=”submit” name=”Submit” value=”check”>
</form>
8. 两次输入密码是否相同
<FORM METHOD=POST ACTION=”">
<input type=”password” id=”input1″>
<input type=”password” id=”input2″>
<input type=”button” value=”test” onclick=”check()”>
</FORM>
<script>
function check()
{
with(document.all){
if(input1.value!=input2.value)
{
alert(”false”)
input1.value = “”;
input2.value = “”;
}
else document.forms[0].submit();
}
}
</script>
够了吧 :)
屏蔽右键 很酷
oncontextmenu=”return false” ondragstart=”return false” onselectstart=”return false”
加在body中
二
2.1 表单项不能为空
<script language=”javascript”>
<!–
function CheckForm()
{
if (document.form.name.value.length == 0) {
alert(”请输入您姓名!”);
document.form.name.focus();
return false;
}
return true;
}
–>
</script>
2.2 比较两个表单项的值是否相同
<script language=”javascript”>
<!–
function CheckForm()
if (document.form.PWD.value != document.form.PWD_Again.value) {
alert(”您两次输入的密码不一样!请重新输入.”);
document.ADDUser.PWD.focus();
return false;
}
return true;
}
–>
</script>
2.3 表单项只能为数字和”_”,用于电话/银行帐号验证上,可扩展到域名注册等
<script language=”javascript”>
<!–
function isNumber(String)
{
var Letters = ”1234567890-”; //可以自己增加可输入值
var i;
var c;
if(String.charAt( 0 )==’-')
return false;
if( String.charAt( String.length - 1 ) == ’-’ )
return false;
for( i = 0; i < String.length; i ++ )
{
c = String.charAt( i );
if (Letters.indexOf( c ) < 0)
return false;
}
return true;
}
function CheckForm()
{
if(! isNumber(document.form.TEL.value)) {
alert(”您的电话号码不合法!”);
document.form.TEL.focus();
return false;
}
return true;
}
–>
</script>
2.4 表单项输入数值/长度限定
<script language=”javascript”>
<!–
function CheckForm()
{
if (document.form.count.value > 100 || document.form.count.value < 1)
{
alert(”输入数值不能小于零大于100!”);
document.form.count.focus();
return false;
}
if (document.form.MESSAGE.value.length<10)
{
alert(”输入文字小于10!”);
document.form.MESSAGE.focus();
return false;
}
return true;
}
//–>
</script>
2.5 中文/英文/数字/邮件地址合法性判断
<SCRIPT LANGUAGE=”javascript”>
<!–
function isEnglish(name) //英文值检测
{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) {
if(name.charCodeAt(i) > 128)
return false;
}
return true;
}
function isChinese(name) //中文值检测
{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) {
if(name.charCodeAt(i) > 128)
return true;
}
return false;
}
function isMail(name) // E-mail值检测
{
if(! isEnglish(name))
return false;
i = name.indexOf(” at ”);
j = name dot lastIndexOf(” at ”);
if(i == -1)
return false;
if(i != j)
return false;
if(i == name dot length)
return false;
return true;
}
function isNumber(name) //数值检测
{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) {
if(name.charAt(i) < ”0″ || name.charAt(i) > ”9″)
return false;
}
return true;
}
function CheckForm()
{
if(! isMail(form.Email.value)) {
alert(”您的电子邮件不合法!”);
form.Email.focus();
return false;
}
if(! isEnglish(form.name.value)) {
alert(”英文名不合法!”);
form.name.focus();
return false;
}
if(! isChinese(form.cnname.value)) {
alert(”中文名不合法!”);
form.cnname.focus();
return false;
}
if(! isNumber(form.PublicZipCode.value)) {
alert(”邮政编码不合法!”);
form.PublicZipCode.focus();
return false;
}
return true;
}
//–>
</SCRIPT>
2.6 限定表单项不能输入的字符
<script language=”javascript”>
<!–
function contain(str,charset)// 字符串包含测试函数
{
var i;
for(i=0;i<charset.length;i++)
if(str.indexOf(charset.charAt(i))>=0)
return true;
return false;
}
function CheckForm()
{
if ((contain(document.form.NAME.value, ”%\(\)><”)) || (contain(document.form.MESSAGE.value, ”%\(\)><”)))
{
alert(”输入了非法字符”);
document.form.NAME.focus();
return false;
}
return true;
}
//–>
</script>
1. 检查一段字符串是否全由数字组成
—————————————
<script language=”Javascript”><!–
function checkNum(str){return str.match(/\D/)==null}
alert(checkNum(”1232142141″))
alert(checkNum(”123214214a1″))
// –></script>
2. 怎么判断是否是字符
—————————————
if (/[^\x00-\xff]/g.test(s)) alert(”含有汉字”);
else alert(”全是字符”);
3. 怎么判断是否含有汉字
—————————————
if (escape(str).indexOf(”%u”)!=-1) alert(”含有汉字”);
else alert(”全是字符”);
4. 邮箱格式验证
—————————————
//函数名:chkemail
//功能介绍:检查是否为Email Address
//参数说明:要检查的字符串
//返回值:0:不是 1:是
function chkemail(a)
{ var i=a.length;
var temp = a.indexOf(’@');
var tempd = a.indexOf(’.');
if (temp > 1) {
if ((i-temp) > 3){
if ((i-tempd)>0){
return 1;
}
}
}
return 0;
}
5. 数字格式验证
—————————————
//函数名:fucCheckNUM
//功能介绍:检查是否为数字
//参数说明:要检查的数字
//返回值:1为是数字,0为不是数字
function fucCheckNUM(NUM)
{
var i,j,strTemp;
strTemp=”0123456789″;
if ( NUM.length== 0)
return 0
for (i=0;i<NUM.length;i++)
{
j=strTemp.indexOf(NUM.charAt(i));
if (j==-1)
{
//说明有字符不是数字
return 0;
}
}
//说明是数字
return 1;
}
6. 电话号码格式验证
—————————————
//函数名:fucCheckTEL
//功能介绍:检查是否为电话号码
//参数说明:要检查的字符串
//返回值:1为是合法,0为不合法
function fucCheckTEL(TEL)
{
var i,j,strTemp;
strTemp=”0123456789-()# “;
for (i=0;i<TEL.length;i++)
{
j=strTemp.indexOf(TEL.charAt(i));
if (j==-1)
{
//说明有字符不合法
return 0;
}
}
//说明合法
return 1;
}
7. 判断输入是否为中文的函数
—————————————
function ischinese(s){
var ret=true;
for(var i=0;i<s.length;i++)
ret=ret && (s.charCodeAt(i)>=10000);
return ret;
}
8. 综合的判断用户输入的合法性的函数
—————————————
<script language=”javascript”>
//限制输入字符的位数开始
//m是用户输入,n是要限制的位数
function issmall(m,n)
{
if ((m<n) && (m>0))
{
return(false);
}
else
{return(true);}
}
9. 判断密码是否输入一致
—————————————
function issame(str1,str2)
{
if (str1==str2)
{return(true);}
else
{return(false);}
}
10. 判断用户名是否为数字字母下滑线
—————————————
function notchinese(str){
var reg=/[^A-Za-z0-9_]/g
if (reg.test(str)){
return (false);
}else{
return(true); }
}
2.8. form文本域的通用校验函数
—————————————
作用:检测所有必须非空的input文本,比如姓名,账号,邮件地址等等。
该校验现在只针对文本域,如果要针对form里面的其他域对象,可以改变判断条件。
使用方法:在要检测的文本域中加入title文字。文字是在提示信息,你要提示给用户的该字段的中文名。比如要检测用户名
html如下<input name=”txt_1″ title=”姓名”>,当然,最好用可视化工具比如dreamweaver什么的来编辑域。
如果要检测数字类型数据的话,再把域的id统一为sz.
javascript判断日期类型比较麻烦,所以就没有做日期类型校验的程序了.高手可以补充。
程序比较草,只是提供一个思路。抛砖引玉! :)
哦,对了,函数调用方法:
< form onsubmit=”return dovalidate()”>
function dovalidate()
{
fm=document.forms[0] //只检测一个form,如果是多个可以改变判断条件
for(i=0;i<fm.length;i++)
{
//检测判断条件,根据类型不同可以修改
if(fm[i].tagName.toUpperCase()==”INPUT” &&fm[i].type.toUpperCase()==”TEXT” && (fm[i].title!=”"))
if(fm[i].value=”/blog/=”")//
{
str_warn1=fm[i].title+”不能为空!”;
alert(str_warn1);
fm[i].focus();
return false;
}
if(fm[i].id.toUpperCase()==”SZ”)//数字校验
{
if(isNaN(fm[i].value))
{ str_warn2=fm[i].title+”格式不对”;
alert(str_warn2);
fm[i].focus();
return false;
}
}
}
return true;
}
⑹ 请问,有没有一款综合性的前端测试工具,集成常用的前端测试工具
没有特别集成的总和工具,给楼主列举了一系列的测试工具
1. Browser Shots
Browsershots工具提供了对你的Web设计在不同操作系统和浏览器下截图的功能。它是一个免费的在线开源Web工具,使开发人员能以一种便捷的方式同时测试网页的浏览器兼容情况。在Browsershots上提交的网址将被添加到一个任务队列。随后一些分布式的计算机将在各自的浏览器中打开该网站并截图。最终可通过一个中央服务器来查看这些上传的截图。
2. IETester
IETester是一个免费的Web浏览器调试工具,可以模拟出不同的js引擎来帮助程序员设计效果统一的代码。IETester可以在独立的标签页中开启IE 5.5、IE 6、IE 7以及最新的IE 8(9) beta等不同版本的IE。
3. WebPage Speed Test
使用该工具可在全球不同位置及不同浏览器中测试网页的真实链接速度。除了简单的测速,你还可以执行一些其他高级测试,如多步执行(multi-step transaction)、视频录制、内容阻止等。测试结果将提供丰富的诊断信息,包括资源加载瀑布图、网页速度优化检查及改进建议等。
4. Mobile testing
使用这个工具你可以查看你的网站在移动设备上的效果。可以设置移动设备的类型、录屏,以及结果不公开。
5. Feed validator
免费的W3C Feed校验服务,可用于查找Atom和RSS Feed中的语法错误。
6. Instant Website Test
该工具提供免费即时的网站性能测试服务。可从全球不同位置探测你的网站加载速度有多快,并查明是何者降低了页面性能。
7. Pingdom
输入URL,即可测试页面的加载时间,分析并发现加速的“瓶颈”所在。
8. Link Checker
该工具可用于搜寻查明你网站内的所有链接里是否有断链。
9. DNS Health Checker
正确的DNS设置对网站运行来说是至关重要的。Pingdom的DNS Health test工具可以帮助你发现错误的DNS设置,并检查域名解析是否正确。它能够自动发现你所指定域名使用的DNS服务器,然后执行一系列迭代测试来查明域名设置及DNS服务器响应是否正确。
10. Load impact
Load Impact是一个在线网站负载测试服务,可以帮助你测试网站的负载和压力。
11. Google web page tester
Google的Page Speed Service,可以为第三方网站提供网页加速服务。你只需要把以前的域名CNAME到ghs.google.com,浏览者就不再直接访问网站的服务器,而是转到Google的服务器上。Google的服务器会抓取网站服务器上的网站内容,然后进行重写、缓存。它使用类似CDN(内容分发)的原理,而比普通只提供缓存的CDN多了内容重写的环节,自动为网页提供合并CSS、合并JavaScript、将CSS移到HTML的Head、压缩图片、优化图片、缓存图片、碎片域名、gzip资源等网页加速技巧。
12. Validate you HTML code
该工具可用于检查Web文档中HTML、XHTML、SMIL、MathML等标记的有效性。
13. Website vulnerability tool
免费的在线网络漏洞扫描工具,可用于检查你的网站的安全性。
⑺ javascript代码冗余检查工具有什么推荐的
目前后端语言 静态代码检查工具已经有很多成熟的工具可用,前端代码有的静态代码检查工具
网上有些工具,可以参考。
就这些了。
⑻ 怎么样才算是优秀的前端工程师
首先,优秀的Web前端开发工程师要在知识体系上既要有广度和深度!做到这两点,其实很难。所以很多大公司即使出高薪也很难招聘到理想的前端开发工程师。技术非黑即白,只有对和错,而技巧则见仁见智。
再者,优秀的前端工程师需要具备良好的沟通能力,因为前端工程师至少都要满足四类客户的需求。
这时候,你才能算是一个严格意义上的“前端”工程师。可见要想成为一名优秀的Web前端工程师是需要经历一番历练的,有基础的人可以自学,没基础的需要参加Web前端培训课程,这样学起来更方便。
⑼ 前端的代码code review工具有没有推荐
首先,我们先来看看Code Reivew的用处:
Code reviews 中,可以通过大家的建议增进代码的质量。
Code reviews 是一个传递知识的手段,可以让其它并不熟悉代码的人知道作者的意图和想法,从而可以在以后轻松维护代码。
Code reviews 也鼓励程序员们相互学习对方的长处和优点。
Code reviews 也可以被用来确认自己的设计和实现是一个清楚和简单的。
你也许注意到了在上面的Code Reivew中的诸多用处中,我们没有提到可以帮助找到程序的bug和保证代码风格和编码标准。这是因为我们认为:
Code reviews 不应该承担发现代码错误的职责。Code Review主要是审核代码的质量,如可读性,可维护性,以及程序的逻辑和对需求和设计的实现。代码中的bug和错误应该由单元测试,功能测试,性能测试,回归测试来保证的(其中主要是单元测试,因为那是最接近Bug,也是Bug没有扩散的地方)
Code reviews 不应该成为保证代码风格和编码标准的手段。编码风格和代码规范都属于死的东西,每个程序员在把自己的代码提交团队Review的时候,代码就应该是符合规范的,这是默认值,属于每个人自己的事情,不应该交由团队来完成,否则只会浪费大家本来就不够的时间。我个人认为“meeting”是奢侈的,因为那需要大家在同一时刻都挤出时间,所以应该用在最需要的地方。代码规范比起程序的逻辑和对需求设计的实现来说,太不值得让大家都来了。
10年前,上面这两件事会是理所当然的(10年前的中国的软件开发还没有Code Reivew呢),今天,在中国的很多公司上面这两件事依然被认为是Code Reivew最重要的事,所以,我能够看到很多开发Team抱怨Code Review就是一个形式,费时费力不说,发现的问题还不如测试,而评审者们除了在代码风格上有些见术,别的也就没什么用了,长而久之,大家都会开始厌烦这个事了。
所以,在今天,请不要把上面的那两件事分散了Code Review的注意力,取而代之的是,对于Bug,程序的作者要在Review前提交自己的单元测试报告(如:XUnit的测试结果),对于代码规范,这是程序作者自己需要保证的,而且,有一些工具是可以帮你来检查代码规范的。
⑽ 前端工作的时候主要做些什么
随着WEB前端技术发展,前端的技术已经扩展到任何网站、系统、应用。web前端有广阔的发展空间,app、小程序、移动端、pc端等都是需要前端技术的开发支持才能够完成,技术门槛相对较低、需求量较大,薪资待遇良好。只要是互联网端的客户界面,就需要前端来制作完成,前端开发的编程量不大,但是需要部分编程,入门简单,但是要学的深入需要一个过程。
Web前端招聘岗位
• 前端开发工程师、Web开发工程师、网页开发工程师、HTML开发工程师...
• H5开发工程师、移动应用开发工程师、App开发工程师、小程序开发工程师...
• JS开发工程师、Vue.js开发工程师、Node.js开发工程师、前端架构师...
• 小游戏开发工程师、数据可视化开发工程师、WebGL开发工程师、WebVR开 发工程师、Web安全工程师...
在互联网行业,前端有WEB前端、HTML前端等,随着互联网技术发展,就业方向也有很多。web前端的就业方向有web架构师、web前端工程师、HTML前端开发工程师、网页设计师等等。
HTML前端开发
与Web前端开发不同的是,使用HTML5不仅仅可以开发前端,还有网页游戏,手机APP,使用浏览器进行3D渲染等一系列建立在HTML5标准与搭载其标准浏览器上的开发,而未来可能会有更多的功能分支并入HTML5标准。web前端工程师
这个方向是目前从事Web前端开发的主要就业方向
Web架构师
薪资普遍比较高,技术要求高,掌握多种技能,包括:后端技术、DBA、Platform等等,甚至包括网站优化SEO技术。
数据方向
数据研发这个是在Web开发的基础上用数据附能,懂可视化的一定是有前端能力的,懂hadoop的一定java要熟悉,属于Web开发的拓展方向。
大前端方向
比如阿里,在大量实践rn和weex;由于公司内部安卓/ios式微,一定程度上,前端把ios和安卓收编了,统称大前端。
图形学方向
前端自然是与图形学有千丝万缕的联系,除了上面提到了可视化,还有相关3d引擎的开发工作。做这一行要求也非常高了,图形学相关的算法,3d引擎的开发,这都需要图形学相关知识。