php怎么输出轮播图,数据可视化工具有哪些?
DataTalk:开放的通用BI可视化平台分享嘉宾|金家兴 腾讯 大数据平台部应用开发负责人
编辑整理|吴亚茹 得到出品社区|DataFun现实中,大家经常会收到各种各样的数据需求,比如最常见的:当产品迭代后,老板想要查看迭代功能的 PV、UV 分布。按照传统的工作方式,基本上都是运营马上去提需求,然后开发去埋点,再进行 ETL 清洗入仓入库,最后设定好维度和指标,当这些准备工作都完成之后,开发同学去制作报表,运营截图发送给老板,整个过程是非常漫长的,这个时候,老板一旦想要看一些其他维度、或者其他指标,该怎么办呢?很多过程都要推倒重来。今天为大家分享一款开放的通用 BI 可视化平台——DataTalk ,用来解决上面提到的问题。
主要内容包括以下几大方面:
DataTalk 的诞生架构设计开放能力建设腾讯内的实践和展望01/DataTalk 的诞生1.DataTalk 是什么?
DataTalk 直译为 “使用数据去对话”。数据驱动的理念在不断地深入人心,目前大大小小的公司都会做出与销售、招聘以及目标等相关的决策。尽管大多数企业都能访问某种类型的数据,但是在没有数据分析和统计学背景的情况下,尝试理解这些数据还是比较困难的,或者说即使我们了解这些数据,但想要通过易于理解的方式传达给他人也是一项非常巨大的挑战。DataTalk 就是消除了这些可视化分析的困难。通过连接不同的数据源,我们提供了多个画布场景和多端应用场景,你可以快速地通过拖拽的方式去搭建一个精美的仪表盘,进行一些数据交互和分析。所以说 DataTalk 是一款面向不同用户角色、支持多种数据源、开放且自由创作的 BI 可视化平台。2. DataTalk 是在重复造轮子吗?可能会有人问,市场上类似的工具很多,我们是不是在重复造轮子?作为一个技术人员,一般都会秉承着业务有需求、技术有使命这样的精神去做一些工具,我们的目标是要做一套标准化的数据工具,这还是比较难的。首先对于一个平台来说,不同的用户,他们的诉求也是不一样的,对于 BI 产品来说,老板的诉求可能是需要在移动端及时查看数据;运营同学需要圈选一些人群,便于进行活动的运营和推广;对于数据开发同学,可能需要多维度多角度的下钻分析,需要自助写 SQL;对于业务开发同学,可能需要平台提供一些扩展能力,便于他们去二次开发完成一些自定义业务需求。我们也是秉承着同一平台满足不同用户不同诉求的目标去实现 DataTalk。我们不是直接去造轮子,而是先站在巨人的肩膀上学习,比如说学习行业内比较有名的 Superset、Power BI、泛 BI 等等;经过大量的对比分析,结合市场上和腾讯内部的实际诉求,从用户角色、数据源、多端场景、开放能力等多个维度去考虑实现。我们提供了简单、易用、高级三种不同的模式去满足不同用户的诉求;也支持很多主流的数据源,在这里可以看到有 ClickHouse、PostgreSQL 等;也提供了面向多端的场景,以及很多丰富的功能,可以在PC端、移动端、大屏去进行报表查看;最主要的是我们是以一种 Low Code 加 Plugin 开放式的形式去架构,可以很好地满足个性化的诉求。3. DataTalk 在腾讯内部的使用整个产品是由腾讯内部多个团队和部门共同打造的,其中包含腾讯灯塔、手 Q、新闻及微信等等,所以说在腾讯内有大量的应用实践、证明。下图是 Data Talk 的腾讯内容多端实践场景,图中依次是王者荣耀的大屏直播展示、日报/周报的推送、移动端的展示。02/架构设计1. 腾讯灯塔的介绍
首先为大家介绍腾讯灯塔,灯塔提供了一站式的敏捷分析方案,它包含了各种业务端的数据上报采集,和无埋点数据的收集,各类不同的数据源在进行 ETL 后,会进行入湖、入仓的操作。DataInsight 是一款用户行为分析工具,支持多维度下钻和关联目标人群分析。这些数据也可以在 DataTalk 中通过拖拽的方式去生成一张精美的仪表盘,然后再通过多种通信手段触达用户,比如发送邮件、企业微信等等,形成分析闭环。2. DataTalk 的整体架构下图为 DataTalk 整体架构:数据采集、ETL传输、引擎、应用全链路。① 多种数据源:即连即用,关联整合企业内各部门数据,解决数据孤岛问题下面我们对 DataTalk 本身进行更详细的讲解,最主要的特性是支持多种数据源链接,可以连接市面上所有的主流数据库,比如刚刚介绍的 Clickhouse 、 MySQL 、PostgreSQL 等;也支持很多本地文件的上传,比如腾讯在线文档,以及各种 OpenAPI,都可以作为数据源本身,可以关联和整合企业内各种部门的数据,解决数据孤岛问题。连接方式有两种:DataTalk 直连,和通过 MixQuery 进行加速查询。此外我们也会进行结果集的二次开发,也就是将查询后的结果,使用 JS 通过在线编码的方式去进行聚合,主要是为了解决各种图表配置时的个性化需求。② 数据使用场景:支持不同的 SQL 方式在数据使用场景上,可以自助写 SQL 去查询不同的数据源。我们支持两种不同的SQL 方式:支持按照 DB 的原生方式写,比如 MySQL、Clickhouse。之后我们会提供 One SQL 的能力,使用我们的引擎通过 One SQL 能力帮助大家进行方言的翻译,去查询各种不同的数据源。支持对原有的数据进行加工建模生成虚拟表,生成表后可以使用界面拖拽、SQL 和 API 等方式查询数据。对于一些有搭建报表需求,但是不会写 SQL 的用户(比如:销售人员、运营人员),该怎么办呢?针对这些用户我们出具了对应的功能,通过简单的拖拽,可以生成看板。链接数据源、选择表、选择想要查看的指标和维度,通过拖拽的方式就可以查询出来了,然后挑选对应的图形,进行样式的配置。这样一个简单的指标卡片就做好啦!整个过程都是一种 Low Code 的形式,不需要写一行代码就可以完成整个操作。3. 画布相关内容介绍DataTalk 提供了两种模式:简易模式:适合销售人员、运营人员快速的搭建一张报表,整个过程不需要写一行代码。高级模式:适合进行各种二次开发,可以在线写 SQL、在线写变量,使用变量去关联各种指标卡,进行全局或者局部的交互;或者写 SQL,结合 AI 的能力进行指标异动的归因查询和处理等。对于画布的排列,也提供了两种模式:三格布局:可以按需按行按列进行排列,特点就是简单、整齐。自定义布局:可以任意的排列组合,可以搭建任何想要的内容,特点就是自由。同时我们也提供了整个六套官方主题,可以自由切换,比如黑色系、清新色系,可以自由挑选,如果这些主题还不够用,用户也可以通过在线平台去搭建自己想要的风格,发布到我们的系统中。4. 组件相关内容介绍从下图可以看到,我们的组件库有六大类组件,每类组件都有十几款,这些组件基本可以满足用户日常的所有需求。比如想要在看板上配置一个流程图、交互图,该怎么办?我们提供了 draw.io 的能力。如果你想写一些 MB 文档,我们也会提供一些精美的 MB 编辑器,还有一些副文本的编辑器。所以说无论你是研发还是产品还是设计,那都可以找到你想要的这种组件。如果说这些还不够,该怎么办?可以一起看看我们下一节的开放能力。在传统的 BI 分析中,可能我们会直接在数仓中按照固定的指标和维度查询数据,然后展示就可以了。现在很多场景我们都想要进行一种科学的分析方式,这里我们也结合了 Zeppelin 和腾讯云的 Serverless 云函数进行洞察分析。下图中有一些只能洞察,进行了时间和数据的预测。5. 页面模版介绍对于不太擅长 UI 和交互的同学,但又想做出精美的看板,可以直接在模版库中选择合适的模版进行使用。使用模版,提升创作效率,让美化页面更简单。6. 触达通道介绍我们是一个完整的数据分析闭环。为了更好的触达用户,我们支持通过订阅到邮件、QQ、企业微信等多个渠道,让我们实时看到一些数据的变化。我们也提供了非常丰富的办公协同效果,我们本身可以在图表上进行一些批注,比如说有运营同学问为什么今天的 GMV 这么高?然后下面可能会有同学进行回复。整个过程既可以在看板本身,也可以联动企业微信,在微信推送消息体后,我们可以进行一些回复和修改。我们也会提供完整的业务指标的监控告警,让你可以随时随地洞察整个业务的波动。7. 仪表盘是如何诞生的?下面我们从技术的角度讲解看板的设计。这里讲仪表盘到底是如何诞生的?DataTalk 是重前端的应用。为了未来的开放性,我们将所有的报表都固化成一个 JSON 文件,其实也可以通过 YAML 去配置它。所以为了方便,我们是以这种配置化和声明化的方式去声明一个仪表盘。在仪表盘内,我们将所有的内容都固化成组件,所以说一切都是组件,一个组件等于一份 JSON 的配置,我们可以通过拖拽的方式,也可以通过未来提供的 Open API 的方式,让你去快速大奖各类想要的组件和想要的仪表盘效果。举个例子,在腾讯内部有很多种BI可视化工具,我们是如果做到让大家快速切换使用的呢?首先我们不断地提升自己的能力,去满足各种各样的需求;其次是我们可以以 JSON 的形式进行配置,减少大家切换平台的工作量。我们将 DataTalk 的组件抽象为两部分:ViewWrapper(组件展示)和 EditorForm(组件编辑)。大家可以在仪表盘上看到的就是组件,每个组件都有它自己的配置。比如一个折线图,我想要配置它的展示效果,可以通过 JSON Schema 去配置,也是不需要写代码。那我们对这些组件的交互是怎么做到的?是以一种变量的形式去进行的。举一个例子,我们想做一个省市的联动,然后通过省市联动去查询报表的数据。一般是拖两个 Slide,那再拖一个折线图出来,这完全没有交集的。通过变量的方式,我们可以看到上面省是一个 Select,它选择后的结果其作为平台本身的变量,将这个变量传送给第二个 select 通过省级去查市级,最终将这两个变量的组合传递给报表。这样就可以任意的组合查询数据了,整个过程不需要写代码,通过配置就可以生成。还有一些更特殊的情况,该怎么处理呢?比如我有一份数据在 MySQL,有一份数据在 Post Gray,这两份数据在入仓的时候没有做关联,想要查询是比较困难的,但是 DataTalk 可以对一些结果记进行二次处理。那这两其实我们在如果没有做一些入仓的处理的时候,那想想要先结合还是非常困难的。那这里我们也可以对一些结果集进行二次的处理,在查询结果后,可以通过 SQL 变量拿到结果传递给函数,通过函数变量进行组合展示。从下图的右边我们可以看到各个图表的维度下钻,还有全局联动。DataTalk 是一个前端应用,我们的报表都是自定义的,用户可能会在一个看板中拖出无数个图卡,每一个图卡都是需要查询的,那打开一个看板,将会是漫长的等待。为了提升用户体验,我们会通过 PopTier 进行整个的首屏的看板的预刷。我们通过一些用户行为和定时器的处理,主动帮用户做刷新工作。通过 Pubtier 将所有的页面直接静态,静态导出为 HTML 之后,通过 Nodejs 服务达到 SSR 的效果,也就是页面的植出效果,让用户可以体验到秒打开的效果。当然这只是以前端角度来看,我们还要以整个查询的内容去看。如果这时候查询没有触发到缓存的预刷怎么办呢?我们也可以智能预刷,比如通过整个的访问频次,还有热度在后端帮用户做预刷。当然了这些都是为了 T+1 的数据效果。如果是实时的数据,需要进行直连查询。报表工具只是一个数据的展示,不会帮助你进行查询的加速,当然我们也会通过引擎进行加速。这里主要讲的是通过前后端不同的角度帮助大家不断地提升查询缓存命中率,还有一些实时命中率等。03/开放能力建设面向业务大量需求如何高质量快速交付?DataTalk 学习国内外先进的技术和方案,来解决该类问题,总结起来有三部分:提供 SDK 满足不同用户的嵌入需求提供 Open API 支持不同数据平台的数据迁移通过Ccore 加 Plugin 开放式架构,让大家去实现想要实现的需求前文一直提到 Plugin ,那么我们到底需要什么样的插件呢?下面这张PPT的左图看出,上面是一个插线插排,下面是我们电脑中的主板,这两个都有一个共同的特点,它本身就是一个容器,提供了诸多插槽,但是通过很多这种接口的扩展,它能提供出很多各种各样的能力。我可以连 CPO,也可以挂 SS 硬盘,还可以挂很多内存,这些都是通过主板提供接口让你去扩展出来的。那与此我们也是通过它去推理出来。插件具体是用来解决什么问题呢?帮助我们快速扩展各种能力可以进行各种各样定制化开发减少插件和代码耦合,提升生产效率下面以灯塔为例,讲解我们的开放式架构。我们可以看到在灯塔里,我们有很多应用产品,提供了完整的数据分析闭环。在这里我们都依托于灯塔的整个公共服务,它会提供元数据管理、缓存、文件、下载以及权限管理,整个服务都是通过一整套的通用服务去搭建的。除此之外,我们的应用还依托于开放平台本身。1. 开放平台提供什么能力?那开放平台提供什么能力呢?刚才我提到的整个的插件,这种注册、管理、声明以及我们多种多样的共建方式。比如我们会提供出很多云函数,让大家去写,提供出很多 Open API;会提供了一款 Beacon 的 Cli,也就是命令行的一个工具,让大家通过我们的 Cli 去创建插件的前端项目以及后端的项目,整个的插件的发布、更新、定制、卸载都是通过它可以做到的。我们也会提供出很多的标准的,比如说标准的 CICD 、文档建设等,以此会推导出我们整个的应用的建设。当然我们底层是依托于整个 MixQuery(融合分析引擎)的能力进行一些加速查询。这里我更多的是以整个应用层的视角去给大家讲解。2. 开放平台如何使用的?我们通过 Cli 去将构建一个前端仓库,每一个组件都是一个独立的仓库,它不需要去和原有的项目耦合,完全是解耦的。这样的话也可以做到很多插件热更新、热加载等等。最终前端我们会发布成一个组件的 JS 包,发布到我们的 CDN 上,然后后端会生成一个 Jar 包,发布到 Mapping 上。前后端所有组件都通过这种动态加载的方式去做的。我们每一个应用其实都是一个数组的 Application。那这里我们应用本身会提供诸多的插槽,比如说我想去开发可视化组件,我可以提供出插头;我想连接各种数据源,DataTalk 提供了一款开发能力( data connector) 通过它可以去连接各种你想要的数据源。这个时候你不需要去完全了解整个平台架构能力是什么,你只需要关心你自身需求即可。我们平台本身会提供一些整个的 API,通过发布订阅模式进行一些插件间的通信以及注册管理,所有的内容大家只需要去关心功能本身即可。3. 发布和加载插件的流程开发者通过 Cli 去生成自己的仓库后,可以进行一个打包编译。打包编译后,我们直接会把这些插件本身发布到我们的公共的 COS 上。我们通过 CN 的方式去挂载,把对应的信息去加载到我们的入户,写入我们 DB 里,然后所有的插件发布和变化,我们完全可以通过 MIS 系统去控制它。比如说在 A 空间里,我想去加载某一类组件,那我完全可以通过 MIS 去动态地加载。而且我们整个的插件加载方式完全是一种异步的动态加载,也支持热更新的方式,无论是前端的插件以及后端的 Jar 包都是支持的。另外我们也提供了比较完整的本地调试环境,供大家直接去开发和调试。4. 在线开发组件能力DataTalk 不仅是一个 Low Code 平台,也是一个 Low Code 。我们提供了两种不同的开发组件能力,来支持一些个性化的需求。在线 Code 能力 ,快速实现组件;在线手写任意 Vue 组件能力,实现更复杂的前端组件能。如果你自己编写的组件特别受欢迎,也可以直接把它发布到我们的公共市场里,供更多的人使用。04/腾讯内的实践和展望1. DataTalk 的用户是谁?DataTalk 是由腾讯内部多个团队共同建设的,经历了社交、游戏、教育、医疗多个领域。不同的部门和产品都会使用我们的产品,目前在腾讯内部有大量的用户。2. DataTalk 自身的开放能力的实践QQ 推出了一个 QQ 频道的功能,QQ 频道本身是需求去看数的,看用户的访问量、用户的分布,以及一些 PV/UV 等。在传统的开发中,会定制化开发一个 H5,然后加载进去,这样是比较繁琐的。DataTalk 不止能完成可视化看板的配置,也可以以一些低代码的能力去帮助用户配置出这种数据页面。我们也管它叫 Data App 相当于这里头的整个数据报表,整个的数据页面完全是通过 DataTalk 配置出来的,然后直接去发布到 QQ 上。所以说这也可以看到我们整个 DataTalk 的能力、场景和用户范围有多少。3. DataTalk 的相关案例在一些节假日,我们都会收到一些总结数据、反馈数据等等。这个产品也支持类似的场景,会直接通过企业微信发推送给到用户。下面这款是我们的实时大屏场景,最开始看到的一个王者荣耀仪表盘的场景,也是通过 DataTalk 配置出来的。这里可以动态地、实时地去查看用户数。对外我们已经在汽车、金融、政务等很多种场景去进行了一些商业化。4. 接下来灯塔是一个全链路的大数据套件产品矩阵。在 2022-06-30 会进行一个云化的版本,纯基于云上的云原生版本的套件会与大家见面。现在在腾讯云上,可以收到整个 DataTalk,它是以单独独立产品形态去部署的。未来我们会把从上报到分析、以及行动、画像、实验等整个套件,以云原生角度发布到云上。未来也期待大家去使用。想了解更多的关于腾讯灯塔的内容,也可以关注我们的公众号,谢谢大家!灯塔大数据套件,正在对外公测;立即注册,即可免费获得1年个人专业版权益。诚邀「数据相关领域」的专业伙伴们体验产品,多反馈多建议,一起参与进来,共同打造一款「新一代」的数据产品。产品体验链接:https://beacon.qq.com/?entrance=10002705/问答环节Q: DataTalk 在公司内的用户都有哪些类型?A:DataTalk 在公司内的用户还是非常丰富的。我们刚才也提到了 DataTalk 是面向多种用户的,现在我们整个的 DAU 基本上过万人,你可以想象到一款 BI 产品,一款可视化产品,哪能这么多人去使用,基本上涉及到我们所有不同的角色,比如销售、运营、产品都会有的。然后以及涉及到多个 BG 不同业务。今天的分享就到这里,谢谢大家。分享嘉宾金家兴|腾讯 大数据平台部应用开发负责人
超过十年的研发经验、曾就职于百度从事LBS方向toC的研发工作、目前在腾讯负责大数据相关的应用开发和架构工作。
WEB培训有什么好的学习建议么?
目前,在移动互联网行业中较为火热、势头猛烈的当属Web前端开发。且在2019年招聘旺季中,Web前端开发程序员处于供不应求的状态,对于0基础想要从事互联网行业的小伙伴们,Web前端将会是最合适的入门编程语言。而且根据后期的职业发展规划来看,只要入门Web前端,在职场上发展个三到五年,基本上都能做到总监级别。
所以,有很多小伙伴要么想进入到Web前端开发行业,要么是工作不太理想的,想要转行做Web前端开发。那么,为什么会有这么多的人想要学习Web前端开发呢?
什么是web前端?Web前端,主要是用来开发用户通过浏览器可以浏览和使用的Web页面的。 一般而言,所涉及的内容主要包括W3C中的HTML、CSS和JavaScript这三方面的内容。
HTML+CSS:也就是网站的骨架和样子,包括你看到的知乎的界面,一段文字,一个图片,都是一个HTML元素,至于字号是多大的,什么颜色,放在什么位置,这叫CSS,在HTML5里,CSS还能让元素运动起来,旋转,跳跃,只要你想;
Javascript:简单的说就是页面的大脑,把后端获取的数据添加到网页里,或者让元素运动起来,或者是改变页面的CSS,或者是操作HTML元素等等。当然,这些都是最基础的做法,作为一个前端,还要考虑JS的性能,可维护,可扩展的程度等等;
但是随着前端的发展,前端开发所涉及到的内容肯定不仅限于这三方面。分析这三个层面内容的本质可以看到,这三个层面分别涉及Web页面的结构、Web的外观视觉表现以及Web层面的交互实现。
因而,归根结底,Web前端以及Web前端开发可以说是针对Web的结构、行为和表现来进行相应的开发的,也可以说,前端开发主要是做Web端的结构、行为以及表现。
Web前端学习什么?web前端学习是一个先易后难的过程,主要包括三个要素:HTML、CSS和JavaScript,这就要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化、SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码的可维护性、组件的易用性、分层语义模板和浏览器分级支持等。
Web前端开发后期要懂一些前端框架,如nodejs、Angualrjs、还有bootstrap等,以及ued用户体验,后台开发也要懂一些。
看到这里,发现web前端要学习太多,想加入web前端行业的同学要抓紧脚步开始了,无论你是有一些基础知识,还是零基础小白,这些都没关系,只要你想学,只等你来,只管相信你自己,肯定能学会!
关于学习web前端的误区和学习建议:1.只看教程,不动手实战
这个可以说是学习的最大的一忌,也是提醒过最多的一个注是事项!网上的教程有许多许多,各个语言,各个知识点,各方面的都有,javascript,html5,css3等的一些,随便一搜就一大把,毕竟互联网最大的优势之一就是资源共享!但是很多人看教程就只是看教程,不动手实操。即使博客的教程,视频教程再好,自己不动手实操,写代码,这样的学习方式,记忆根本不深刻,容易遗忘,到头来,可能什么都没学会!而且有些教程,如果没有跟着动手实操,可能会蒙圈。
个人建议:要挑觉得适合自己的教程,也要动手实操,写代码。即使不是边看教程编写代码!在看完了教程之后,一定要自己动手实操!过程中,可能会遇到些问题,但是这样才会学习到更多,记忆也更加牢固!
2.只学框架或者库
这个情况,针对javascript现在没有以前严重了,在以前还是jquery傲视群雄的时候。很多人会在聊天的时候会说:有了jquery,为什么还要学js?有了vue,为什么还要学js?面对这样的提问,我那时候没有回答,心里想:jquery或者vue就是用js实现的,不会js,学jquery或者vue第一学得吃力,第二学jquery或者vue肯定不会很深入。而且,万一有时候,项目不允许用jquery或者vue,那就基本不会写代码了。这时候,如果学习其它的框架或者库,基本又等于重新学一门语言了。
个人建议:先把基础(html+css+js)打牢,再学其他框架或者库。虽然在会js的情况下,我不敢说学js的框架或者库就是查文档,查API。但至少学js框架或者库可以不会那么吃力!
3.只顾着写代码
这个就是我之前的一个习惯,只顾着写代码,不知道:耦合,实例化,继承等专业术语,和别人交流,无限蒙圈!根本不知道别人在说什么!互联网的技术更新的速度非常的快,隔三差五就发布一个框架,一个库,一个工具。虽然不是每一个更新的技术都需要学习。但是如果只顾着写代码,不了解新的技术。这样很容易使自己停止不前,失去竞争力。
个人建议:在写代码之余,要确保自己是不是了解代码,对代码有没有一个认识。以及多点留意消息,看下有没有什么技术更新!如果觉得更新的技术很实用,或者自己有兴趣,可以多了解下!毕竟互联网是一个做到老,学到老的一个领域,技术更新的很快,如果跟不上流行的趋势,说不定自己会被淘汰呢!
4.太早接触复杂项目
这个情况,比较普遍,无论是在学校或者是现在的培训机构。很多学习前端的人,基础没打牢,就在那里扬言要做一个大项目,我听到的有的人想做知乎,有的人想做世纪佳缘等等一些伟大的目标!但是全部人都是连网站的业务流程和逻辑都没弄清,最后越搞越乱,就放弃了!之前的伟大目标都成了烂尾楼,作用最多就是一个代码练习的作用!花了大量的时间,做了一件没很大的实际意义的事情!
个人建议:从简单到复杂,复杂的网站,都是有很多简单的模块。不妨先从简单的功能做起,做完了一个功能再往里面加功能!现在所处的公司就是这样,开发的后台管理系统,开发几个月了,从一个只有员工的登录注册的功能,然后再逐一加功能,到现在项目逐渐完善!
5.好高骛远,急于求成
这个情况就是多见于培训机构出来的人。我不知道是不是所有城市都是这样,但是广州这边,给我的感觉就是这样。就是目标不切实际,对自己也不够认识!之前在群聊的时候,在金三银四那段时间,很多人找工作,聊天的时候也遇到过很多培训机构的人。简历上是各种精通,刚毕业在培训机构培训几个月,要么就是自带两三年工作经验,要么就是说自己培训了几个月,技术水平和市面上两三年的人差不多。总之就是把自己吹得无所不能!但是一出题,就十问九不知。问闭包是什么,不知道;问原型是什么,不知道。问继承是什么,还是不知道。
上面所说的,只是一个表面的现象,更重要的就是,好高骛远这个情况,很有可能会导致自己难以找到工作!因为一些企业认为最高只能给你4000工资,但是你自己却认为自己有实力拿到9000以上的工资。这样情况,很难找到工作!给人的印象也不好!更重要的是,这可能会影响自己的职业选择!
个人建议:从实际出发,评估自己。想下自己会什么,能给企业带来什么!也可以停下别人的建议,和对比下别人的技术水平和工资,或者是上网找一些面试题,看下自己能不能完成那些面试题!最后评估下自己,认为自己处于什么位置!
6.看到难点就逃避
这一点,相信很多人都有感触,就在开发上,遇到上一个或者几个自己觉得没办法实现的需求或功能。千方百计地想着逃避,比如:这个功能不是很重要,不做可以吗?这个功能我从来没弄过,搞不定的。这个功能外包给别人做吧,我们做不了!很多一些逃避话语。大家可以想下,如果每次都是逃避,那么时间一久,自己技术水平是不是还停留在基础那个阶段?以后要怎么提升自己的技术水平。
个人建议:迎难而上。在web前端开发这块,如果遇上了难题是正常的,如果没遇到难题就是见了鬼!面对难题,我们应该是挑战难题,而不是逃避!大家都想提升自己的技术水平,挑战难题不就是一个很好的提升技术水平的实战机会吗?如果完成了之前认为不可能完成的难题,这样就是一个技术水平提升的见证!不是吗?我也觉得,每天就写简单的业务代码,不探索新知识,不挑战难题,这样做开发也没多少意思!
7.能用就行,不想优化
这个也是一个很常见的情况,很多人认为写的代码能用就行,能实现需求就行!根本不管日后的优化。在开发项目或者开发插件上,虽然我也是提倡:先实现,再优化这个方式!但是并不代表我开发完了就完了,不会再想优化!如果不试着去优化自己的代码,不探索写代码的更好方式,以后别说编写高质量,简洁的代码了,因为自己把学习编写高质量,简洁的代码的一个重要途径给封锁了。
还有一个就是,项目上,有些问题可能是潜在的,就是现在看着项目没出现什么问题,但并不代表以后不会出现问题。反而在项目开发完了之后,试着去优化自己的代码,探索更好的实现方式,试着编写出高质量,简洁的代码。这样难道不是一个很好的学习过程吗?至于优化代码的方式,很多很多(比如常说的:代码过于重复,是否引入设计模式?网站性能一般,可否进行优化?),优化这一块,也不是说一步就优化到最好的,而是至少不会比以前差!关于优化,我之前也发过一些资源。很容易找到,网上的资源更是很多!大家挑着看便是!
8.不懂不问和不懂立刻问
不懂不问,这个大家都知道,就是遇到问题,从不问同事或者通过其他方式咨询别人。就是自己在那里苦思冥想,尝试各种解决方案。这样的方式,最坏的结果就是最终还是解决不了问题,让同事来询问开发情况。最好的结果问题解决了,但是解决问题所花的时间会肯定很多。
不懂立刻问,这个就是词面的意思。遇到问题马上问别人。自己没怎么思考或者根本不思考。这样能解决问题,但是这样会导致自己可能会频繁的问同事,会搞得同事很不耐烦。如果把同事的耐心磨没了,可能回答的语气可能不会很好。这样不仅影响同事之间的关系,还会让自己之后不敢再请教同事,有让自己处于上面所说的不懂不问的风险。
个人建议:适时请教。遇到不懂的问题,先自己结合上下文思考下,想下以前有没有遇到这个问题,解决不了去网上找解决方案,如果还没有解决问题,这个时候再问别人,问同事或者通过其它渠道问别人。这样自己有了思考,解决问题的时候记忆也很深刻,也不会频繁的打扰同事!
9.不懂装懂
这个次面上跟上面的差不多,但实际上不一样!不懂装懂就是去问别人的时候,实际上别人的讲解并没有完全听懂,可能是碍于面子或者是因为不好意思打扰别人那么久,或者担心打扰别人太久,所以装作很懂。但是这样可能忽悠得了一时,很快又会露出马脚。这样会搞得隔一会又要去问别人同样的问题,这样反而会搞得别人更加尴尬,更加为难!自己也会打扰别人更多的时间!
个人建议:如果有问题去问别人,只要你问的人不是一个非常没有耐心的人。他都会耐心的解答你的问题!所以,当问别人问题的时候,一定要确保自己是已经弄懂了问题的缘由,同事一遍没解释清楚,自己直接回答不明白,相信很多人都会再详细的解释一遍。如果担心同事工作忙或者其它原因,可以挑一个合适的时间!我现在问同事就是,要么不问,要问就切底弄懂!当然了,我的同事都很有耐心,每次我有什么问题,他们都会耐心解答,甚至是扩展开来讲!
10.没理清楚需求就写代码
很多人在接到需求之后,第一反应就是写代码,即使是在自己没把需求理清楚之前也是照样写代码。另一种情况就是,很多人是边写代码,边想需求。这个开发方式,万一自己对需求理解有误!可能会导致自己写的代码,很大一部分都要修改,甚至是全部删除重写。
没理清楚需求就写代码这个情况,发生的概率应该挺大的,但是一般来说很难发现这个情况,毕竟程序员对代码的增删改查是再正常不过了!我本身也不知道,就是在一次的技术分享中,老大提出来的,他的建议就是对于一些稍微复杂一点的需求,先理清楚需求,简单画个流程图,然后在代码里面,先写上一点注释,再开始动手写代码!对于这一点,我现在就是在执行当中!
除非需求真的很简单,否则我都会在草稿本上简单画一下流程图。比如下面这个,这个已经是我画的流程图里比较简单的一个了。根据流程图,写好注释,再写代码,这样会比较有条理,代码也清晰,日后的返工也可能会有,但是不会像以前那么多!在开发时间上,效率上,都得到了一个提升!
前端后端脚本是什么意思?
前端后端脚本的意思是:
前端就是显示给用户看的哪一部分,比如 网页,JavaScript 脚本,css这些属于前端。
而后端是负责处理前端传递的数据的。 比如登录的时候,前端表单的数据发送到后端,然后后端通过访问数据库然后判断是否让你登录。
想做一个网站?
搭建一个网站需要哪些技术呢?分两种情况:
如果你是一名技术人员如果你是一名技术人员,就可以自己开发部署网站,用的技术就非常多。目前最流行的语言当然是Java,也是开发网站首选语言。Java相应的框架也非常成熟,最常用的框架当然是SpringBoot,数据库根据你的网站预估数据大小选择,中小型网站选择Mysql,大型网站选择Oracle。所以,总结来说,后端技术采用Java SpringBoot+Mysql就可以完成,当然也会用到一些中间件技术,例如Redis、Kafka等,根据实际情况选择即可。
前端技术目前流行的是Vue,这是一套用于构建用户界面的渐进式框架,Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。当然前提是你要掌握Html、css、javascript等前端基本知识。
网站开发完成以后,我们就需要有服务器部署。这里我建议购买阿里云的ECS机器,价钱合适,云服务器也比较稳定,售后也可以,当然腾讯云、华为云、百度云的服务器也可以选择,根据个人喜好即可。购买好服务器以后我们就需要部署代码。代码部署好以后,我们通过本地localhost访问如果没问题的话,说明代码运行ok。
接着我们需要购买域名,如果选择的是阿里云的服务器,那阿里云提供了域名购买服务。我们可以在阿里云上购买域名,域名购买成功以后,通过阿里云DNS解析服务,将域名解析到你购买的阿里云ECS主机上,此时就可以通过域名访问你的服务了。当然你还需要在服务上搭建Nginx负载均衡服务,Nginx既可以做端口转发,又可以实现后端集群服务,也可以实现动态服务和静态资源服务分离,例如,你的前端页面就可以通过Nginx服务来访问。
网站备案。阿里云目前限制比较严格,网站必须备案,负责域名是解析不到网站的。所以,备案要提前。不过阿里云现在备案可以通过移动端,移动端备案速度非常快,原来备案需要21天,现在只需要不到一周就可以备案完成。备案完成以后,网站就可以通过域名访问了。
如果你是一名非技术人员非技术人员网站一般外包出去,别人做好网站以后,你验收通过以后,你只需要购买云服务器、域名、备案域名,具体的部署以及后续运维工作交给乙方去弄。
我是阿迈达,有趣的互联网软件工程师。专业角度分析技术原理,幽默的态度解读科技互联网资讯。
怎么开发一个自己的网站?
如果你是从事这方面工作的话,完全可以自己搭建,基本的流程就是购买域名备案>编写代码>部署上线,其中最困难应该就是编写代码了,一个完整的网站是由前后端组成的,也就是说你必须所有的技术都会才能完成,不过呢你可以选择模板自助建站,根据现有的模板,加以修改就可以了,阿里云就有推出云速美站,没有技术要求,只需会电脑的基础操作就可以了,千套模板可以选择,针对几乎每个行业,专业人员一对一解答,云·速成美站16大功能亮点
点击了解:https://ac.aliyun.com/application/webdesign/sumei?userCode=pbr3yqtc
但对于需求很多,业务逻辑复杂的项目来说,模板建站可能会满足不了,那么就可以选择定制建站了,你无需任何操作,只需提供相关的需求说明,阿里云专家会一对一的完成建站,点击了解:https://ac.aliyun.com/application/webdesign/yunqi?userCode=pbr3yqtc