2020都快过去了,一个魔幻的一年!但是,2021年会更加困难,因为从低谷上爬上去,必定是一个涅槃重生的过程。web前端们找工作虽然难,这是一个整体择优的方式,更应该振作起来。
本人系统收集了一下,2020-2021年web前端工作趋势表现为:
会全栈技术更有优势,基于Nodejs, PHP, Python, Java等技术开发中小型项目,微服务和serverless更促进了全栈技术趋势,刘润老师说“成长提升就是要榨干自己所能学到的东西”,如果有全栈技术概念,一定能做更好的技术生涯规划。
2 跨平台跨终端开发经验,包括移动端、桌面端、网页、H5(微信生态)、App内的小程序,这些新技术逐渐被前端渗透,轻量化技术凸显优势,“stay hungry, stay foolish”,才不会被时代淘汰
3 浏览器支持开发生态,尤其3D可视化的技术实现,ThingJS是国产可视化PAAS开发平台,利用JavaScript调用API功能,在线就能够搞定一个3D项目。其他衍生领域如Web AR、音视频、iotjs,使得3D可视化交互生态更丰富,不学会3D开发恐怕会落伍了。
总结来说,前端门槛很低,精通一两个常用框架,对功能点都熟悉,就可以具备一年的初级前端基础能力了。为何还有企业说招不到人呢?不要什么都了解一点,却没有精通的,根本原因在于缺乏实战经历,理论的东西是肤浅的。
推荐关注物联网3D开发师这一岗位,前端转3D开发一点都不难。ThingJS是一个基于WebGL的3D框架,推荐来官网注册,不需要建立3D专业知识储备,让你短时间内树立信心,迅速做出一个实战项目作品!
3D演示 - 隧道可视化项目演示 ThingJS
拿 creator 制作了个排行榜页面,不到20个Item,一个Item里只有两个 Label :名称和关卡。
发现在微信小游戏中打开,会卡顿。 对页面的创建过程计时,发现主要耗时在创建 Label 上。遂来分析下 cocos creator 21 的文本渲染流程。
感叹下,能看到源码真是太好了~~
求教,厦门有什么好的游戏开发的交流渠道呀,群也大都死水一潭,现实中也找不到交流的同好和空间。感觉太封闭了
回归正题
cocos creator 的文本渲染有两种:
其中采用系统字体的,应该也是归属于 ttf 中。
涉及到的文件有:
还有其他相关的文件也是跟文本渲染相关,但是本文聚焦在 2d 、 webgl 和 ttf 渲染上,其他的就略过。
Label组件作为属性的容器,并在属性变更时,调用 _updateRenderData
Label的 _assembler 的定义在 core/renderer/webgl/label/indexjs 找到
根据类型,找到 _assembler 的实现在 core/renderer/webgl/label/2d/ttfjs 中
core/renderer/webgl/label/2d/ttfjs 继承了 core/renderer/utils/label/ttfjs
通过 _getAssemblerData 可知,所有的 Label 组件共享同一个 canvs 元素
updateRenderData 做实际的文本计算(字体、宽高、基线等),并绘制纹理。
_updateTexture 首先清空 canvas (注意,此canvas全局唯一,所有TTF Label共享的)
然后绘制描边,绘制文本,有需要的话,绘制下划线,最后调用 _texturehandleLoadedTexture 将 canvas 提交到 gpu 纹理上。
以上可知,每个 Label 的创建,都要经历清空重绘 canvas ,然后提交纹理的步骤。每个 Label 的纹理都是单独的,并没有重用。
当时在微信小游戏上测试,平均创建一个 Label 耗时约30ms,创建十几二十个 Label ,感知到明显的卡顿。 最终弃用ttf label,改用 bmfont label避开这个问题。感觉这里有优化的空间?
一直以来,好奇 cocos creator 的描边实现,自己一直往 shader 那边,什么纹理扩边,卷积啥的去想。
实际上:
在文件 core/renderer/utils/label/ttfjs 第255行:
Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件。其编辑器运行在Windows 和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览
Web前端灵活多变,能够直观看到成果,所以成就感更容易体现,学习起来也会相对轻松。Java被称为最稳定的语言,应用最为广泛,无论是一线城市还是二三线城市的岗位需求都比较大,容易找到工作,但入行门槛相对更难。 你也可从以下三个方面来作为参考:
工作方向:
Java开发
Java作为编程语言中最热门的技术,可谓无处不在。无论是生活软件、游戏还是电脑软件,从你的每一次购物到每一笔支付的成功,都离不开Java,越来越多的企业也正采用Java语言开发网站,而在所有程序员中,Java开发工程师就占据了30%的比例。Java语言具有面向对象、跨平台、安全性、多线程等特点,这使得Java成为许多应用系统的理想开发语言。学完Java可以:
1编写网站。Java可以用来编写网站,现在很多大型网站都用JSP写的,JSP全名Java Server Pages它是一种动态网页技术,比如我们熟悉的163,一些政府网站都是采用JSP编写的。所以学习Java的同学可以找开发网站方面的工作,而且现在找这方面的岗位比较多。比如:网站开发大多使用JSP、Servlet、JavaBean这些技术。
2做Android。Android是一种基于Linux的自由及开放源代码的操作系统,其源代码是Java。所以市场上见到的手机系统例如MIUI ,阿里云,乐蛙等,都是修改源代码再发行的。Java做安卓不单单是指系统,还有APP,对于更多的开发人员来说,他们更多的时间是花在开发APP上面。
3游戏开发。在以前诺基亚还很流行的时候,你玩的手机游戏有90%以上都是Java开发的。PC端也有Java开发的游戏,比如:《我的世界》(minecraft ,简称MC),《英雄联盟》(简称LoL)等等。
4大数据。都说现在是数据时代。各种大数据技术层出不穷。目前处理大数据的技术有python,Java,R等。虽然说Java没有绝对的优势,但同样也是一大霸主。
5做企业软件。企业级应用开发大多使用Java语言,大到全国联网的系统,小到中小企业的应用解决方案,Java都占有极为重要的地位。
另外,Java在人工智能、科学计算等领域也有一定的应用。Java已成为当今市面上最受欢迎的编程语言了,可以说只要你使用手机、电脑等电子产品,你就会用到跟Java有关的东西。
Web前端
网站的“前端”是与用户直接交互的部分,包括你在浏览网页时接触的所有视觉内容--从字体到颜色,以及下拉菜单和侧边栏,这些视觉内容,都是由浏览器解析、处理、渲染后呈现而来。从狭义上讲,前端工程师使用HTML5、CSS、JavaScript等专业技能和工具将产品UI设计稿实现成网站产品,涵盖用户PC端、移动端网页,处理视觉和交互问题。从广义上来讲,所有用户终端产品与视觉和交互有关的部分,都是前端工程师的专业领域。Web前端工程师在企业里主要负责以下三方面的工作:
1网站设计;
2网页界面开发;
3前台数据绑定和前台逻辑的处理;
技术知识:
Java开发
1、Web前端技术 (HTML5、CSS、JS、jQuery、Ajax)
2、互联网架构(Nginx、Redis、MQ)
3、JavaEE三大核心框架(Spring,SpringMVC,MyBatis)
4、Web服务器端编程(Java基础、Servelt、SSH、SSM)
5、数据库技术(Orale、MySQL、JDBC、DAO)
Web前端
1、html + css。
2、JavaScript。
3、Photoshop、flash。
4、html5和css3。
5、浏览器兼容。懂web标准,熟练手写xhtml css3并符合 符合w3c标准。代码能兼容主流浏览器Firfox,Chrome、Safari、IE、Opera。6、熟悉一门后台编程语言asp、php、jsp等。
就业薪资:
Java开发
web前端
Java开发和Web前端现在都属于热门的方向,从薪资角度来说,Java的工资普遍比Web前端高;从难易度来说,Java要比Web前端难一些;从需求来说,Java的人才需求量要比Web前端多,但相应Java的人才竞争力比Web前端要大一些。 并且,二者之间并无高低之分,墙外的人总以为墙内的人是光鲜亮丽的,但是适合自己的才是最重要的。至于哪一个更好,仁者见仁,智者见智。
其实国内外有不少可视化工具还是相当好用的,比如FineBI、Echart、Tableau等等。借这个话题我盘点了一下国内外的可视化工具,涉及数据分析、软件分析、图像处理等等几乎所有可视化相关领域,大家可以Mark起来当做参考。
1、FineBI
简洁明了的数据分析工具,优点是零代码可视化、可视化图表丰富,只需要拖拖拽拽就可以完成十分炫酷的可视化效果,拥有数据整合、可视化数据处理、探索性分析、数据挖掘、可视化分析报告等功能,更重要的是个人版免费。
2、Infogram
十分强大的图表制作工具,本身带有十分丰富多样的模板,如果个人不满意还可以手动设计,优点也是不需要代码编程,缺点就是只能用来制作图表,更加炫酷的可视化效果实现起来比较困难。
3、Easelly
几年前开始流行的信息图制作软件,界面简洁、操作简便、精美,而且用户只需要登录Easelly官方网站即可开始进行信息图制作,在网站上你可以尽情分享和查找素材,当然有些是不免费的。
4、Color Brewer
强大的配色工具,你在这里面几乎可以找到任何你想要的颜色,它本身也是一个绘图系统,拥有很多配色模板,可以当做一个小工具收藏,配合其他可视化工具使用。
5、ChartBlocks
英国的一家公司开发的制作统计图表的线上工具,省去在Excel软件里制作图表的繁复,让图表更加多样化,无需专业的软件技能就可以轻松制作漂亮的图表,但是功能不多。
6、Visually
在线图表神器,这家网站以丰富的信息图资源而著称,很多用户乐意把自己制作的信息图上传到网站中与他人分享,最近好像爆出消息还能帮助人们制作信息图,不知道免不免费。
7、Nuvi
一款非常简单好用的信息图形生成器,拥有好几百个模版,当然,如果你喜欢,也可以不用模版
8、Dygraphs
用的比较少,网站上资源也几乎没有,在国内属于小圈冷门的可视化工具,但功能其实是很强大的,不想费力找资源的建议选择其他的工具。
9、ECharts
ECharts就不用说了,搞数据可视化的99%都知道,是一款商业级数据图表,纯JavaScript的图标库,缺点是要代码操作,小白上手难度很高,适合码农这样的数据人。
10、Cytoscape
适合做一些文章里的网格图、散点图、结构图、思维图,写论文、报告等场景下非常好用,适合大学生或者搞科研的人。
11、图表秀
适合做PPT时做一些好看的图表,图表制作功能比较强大,但是我记得导出高清的时候要收费,只能导标清图比较坑吧。
12、BDP
BDP个人版是国内海致公司旗下的数据可视化分析产品(BDP也有商业版,针对企业用户,但我非商业版用户,所以就不多说了),有多数据整合、数据合表处理、可视化分析等数据功能,总体来看数据功能还是非常全面的,虽然不免费但是成本低一些
13、xdatainsight
国产的一站式敏捷可视化工具,以前还比较好用,现在基本没人用了
14、Tagul
国外一款词云制作神器,免费的小工具,非常好用
15、Tagxedo
跟上面的tagul一样,也是词云制作工具,而且是在线制作网站,但是需要**
16、Wordle
很老的信息可视化工具了,主要也是制造词云的,当年也是大名鼎鼎,但是也有很多缺点,字体颜色没有意义、可视化还很初级等
17、WordItOut
词语云一键生成网站,非常方便,但是没办法根据频率调整大小,功能比较粗糙
18、ToCloud
ToCloud是一个在线免费标签云生成器,你可以设置词的长度和频率,还能提取短语,是一个比较好的标签云工具之一利用词频生成词云,你可以快速了解页面优化了某些单词
19、图悦
这款国内的在线词频分析工具,在长文本自动分词并制作词云方面还是很出众的,而且也容易上手,还可以自定义定制图形模板:标准、微信、地图等,切换自如,用起来体验很不错
20、语义分析系统
主要是用于分析文章中的各种参数,包括频率等内容,百度的语义分析系统功能还是挺不错的
21、腾讯文智
腾讯的中文语义网站,分析语句、篇章等,教学类平台
22、polymaps
PolyMaps是一个地图库,主要面向数据可视化用户,在地图风格化方面有独到之处,类似CSS样式表的选择器,用来做动态地图的
23、nodebox
可视化进阶神器,NodeBox是OS X上创建二维图形和可视化的应用程序,你需要了解Python程序,NodeBox与Processing类似,但是没有Processing的互动功能
24、processing
堪比python的编程语言,能够实现几乎所有的可视化效果,语句规范上不如python ,但是比较容易上手
25、processingjs
跟上面的一样,是一门可视化编程语言,ProcessingJS是它的JavaScript实现,使用HTML5的canvas,配合现代浏览器来实现web客户端的可视化技术
26、Tangle
Tangle是个用来探索、Play和查看文档更新的交互式库,既是图表,又是互动图形用户界面的小程序
27、FF chartwell
一款自动生成分析图的黑科技字体,字体很多
28、SAS Visual Analytics
SAS可视化分析是一款擅长做交互式可视化分析的产品,同时它同样也可以创建出一些很好的可视化图表,不过比较笨拙,不灵活
29、数字冰雹
国内专门做可视化的,主要是大屏,面向企业而不是个人
30、Data-Driven Documents
简称D3,是一个很神奇的基于Javascript的在网页上实现数据可视化的工具,不过现在已经不更新了,缺点是要学的东西太多,HTML、编程都得掌握才行
31、leafletjs
做全屏地图比较方便,同样是需要掌握编程基础,优点是有手机端
32、Crossfilter
Crossfilter是一个数据计算模型,能够很好地结合DCJS进行数据解析绘图,属于数理类工具
33、openlayers
OpenLayers作为业内使用最为广泛的地图引擎之一,已被各大GIS厂商和广大WebGIS二次开发者采用,入门难度极高
34、wolframalpha
数学开发软件,同时也可以做数理计算可视化,属于专业性质的工具
35、visme5
Visme为用户提供30万张高清、6500种图标、750多种图表模板以及120多种字体
36、databoard
制作仪表板的,关注数据可视化本身,更多地关注利用可视化技术,高效,批判性地监控数据
37、googlecharts
文档和帮助信息丰富的 Google Charts 对于刚刚入门 Java 绘图的人来说是极佳的选择。它的文档里到处都是带注释的代码和逐步的讲解,可以直接用来把 HTML5 / SVG 图标嵌入到你的网页中。
38、timeline
以时间轴的形式进行可视化,别有一番风味
39、FusionCharts
FusionCharts 支持 vanilla Java、jQuery、Angular 等一系列高人气的库和框架。它内置90多种图表和超过1000种地图,相比 Google Charts 和 MetricsGraphics 要完整得多
40、envisionjs
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型
41、Sigma
Sigma 有着自己独特的定位,那就是图模型的绘制。它基于 Canvas 和 WebGL 开发并提供了公开的 API,所以你可以在 GitHub 上找到社区贡献的许多插件
42dcjs
dcjs 是一个开源的 Java 绘图库。它非常适合用来创建交互式的仪表盘(Dashboard),图表之间是有联系的,所以当你与其中一个部分进行交互时,其他部分都会做出实时的反馈
一般四五百就够了。其实对于公立医院,大都价格相差不大。
肠镜和胃镜一样,分为普通的和无痛的,后者有麻醉自然没痛苦,就是多花二三百块钱。步骤:开检查单、交钱、取清肠药+预约肠镜检查的时间、注意饮食、按说明服用清肠药、进行肠镜检查。检查的过程,就是把肠镜管子经肛进入,走完整条大肠,等检查完肠道里的病变后,再把肠镜的管子原路退出来,检查完毕,然后给你肠镜检查报告。