php 模型怎么写,Facebook用户量十分庞大?
2004年成立的Facebook很快便占据了社交网站的榜首,智能手机出现标志着互联网全面转向手机端,在移动互联网时代Facebook的APP也同样霸占着社交APP排名榜首。有很多网友就非常好奇Facebook使用哪个数据库来存储庞大的用户资料?通过了解社交网络的老大哥Facebook的数据库演变,从中吸取宝贵的经验教训。
Facebook中的个人资料不仅仅是姓名、Email、兴趣等属性列表,而是一个非常丰富的社交图谱,包括了亲人/朋友、群组、喜欢、分享等等。刚开始的Facebook社交页面非常简单,采用PHP来构建应用程序,MySql作为长期使用数据库,采用Memcache作为后备缓存支持。PHP应用程序可以直接访问MySql和Memcache,中间没有数据抽象层。
这种简单的数据库架构在访问量很少的情况下优势确实非常明显,但Facebook从2005年开始用户量就飞速增长,最终这种数据架构导致了开发人员敏捷性急剧下降。因为工程师需要使用两种截然不同的数据模型来对数据进行处理,MySql存储主从对集合、Memcache则用于存储和提供派生的平面键值的SQL查询,MySql和Memcache相互协作成为了一个很大的难题,开发者使用数据库前首先要获得关于这两个数据库如何相互协作的复杂知识。
Facebook的数据量暴增也使得MySql的缺点凸显出来,MySql的单体架构很早强制应用程序级的分片,应用程序则需要跟着哪个MySql实例复杂存储哪个用户的配置文件,数据量暴增之后,开发和操作的复杂程度就呈现指数级增长。多数据中心、异地冗余复制也成为了MySql一个非常关键性的问题,主从异步复制转移时,最近的数据无法避免不会丢失。
于是Facebook自2009年开始自研构建小而美的存储系统TAOTAO可以将facebook现有成百上千的Mysql主从对转化成一个高度可扩展、自动分片、基于地理分布式的数据库集群。TAO可以将分片迁移或者克隆到同一个集群的不同服务器,这样就能平衡负载并消除负载峰值。
如果一次分片更新后、第二次分片更新前出现故障,TAO的异步修复作业就会清除挂起的关联。
使用TAO架构之后本质上还是没有放弃MySQL,因为当时的MySQL和其他数据库都无法单独解决爆炸式数据量的增长。TAO本质上只是创建了一个自定义数据库的查询层,这层抽象了底层分片的MySql数据库。
分布式SQL应运而生很多人都喜欢SQL普遍性以及灵活性,都不愿意放弃SQL的情况下对它进行扩展。虽然很多企业没有Facebook这样大规模数据增长的问题,也同样希望按照自己的意愿来拓展SQL数据库。
第一波分布式SQL数据库叫做NewSql,包括了Clustrix、NuoDB、Citus、Vitess等等,但这些都不足以从根本上简化开发人员、运营的体验,反而阻碍了开发人员。于是就有了第二波分布式SQL数据库,灵感源于Google的Spanner,数据库层内置了大规模可扩展性和全球数据分布,而不需要像之前Facebook必须内置在应用程序层中。
总结Facebook、Google等等这样的科技巨头的数据库扩展的历程,都是值得很多人学习和借鉴的。TAO保留了MySql的现有投资,但应用工程师失去了使用SQL的能力。Google则创建了Spanner,走了一条不同的道路创建了一个全新的SQL数据库。
以上个人浅见,欢迎批评指正。
认同我的看法,请点个赞再走,感谢!喜欢我的,请关注我,再次感谢!数据可视化工具有哪些?
给大家推荐一款人人可上手的可视化工具,那就是Excel,好评度五星!全文7688字,阅读需要10分钟,赶时间的朋友先点赞收藏,方便下次学习!
为什么要推荐Excel呢?
兼容性,Excel与PPT可以实现数据同步,数据修改后能直接呈现在PPT,一劳永逸。内在:Excel有5大类常规的数据可视化表达,图表类多达13种,还可以通过自定义制作多变的数据可视化表达,满足95%的日常办公需求。
跟其他数据可视化工具对比,
①对比可视化网站工具,Excel拥有强大的数据分析(Excel函数,数据透视表等),而大多数在线工具只能输入结果,而无法运算。 ②对比R、Python等,Excel对于初学者的友好高,基本2周就能大概掌握,而这些语言太难了! ③普及率高:哪台电脑没有装Excel,你要表达你的观点也容易。
想快速掌握Excel可视化表达,先了解一下可视化的全面架构:
以下就是课件内容的例子,先给同学看一下效果:
基础图表:《王者之星★》
三维地图:《广州武汉之❤》
Excel控件:《520❤你的名字》
《进阶の图表》
《智联之薪》
接下来,我们从第一个开始撩:
E01.认识数据可视化数据可视化就是通过图形,呈现出数据大小,占比,分布等特点,从而传递信息给大家。
下面我就用地图简单举栗子吧
腾讯位置大数据https://heat.qq.com/
地图越亮的地方代表定位次数越多的地方,这个定位跟我们人口分布一致的。
通过流量折线图比较,我们就能直观看出欢乐谷的应该是9点开门,19点闭门。
关于数据可视化,大家可以多去一些可视化网站看看,其实我们大多数人接触数据可视化应该是小学、初中、高中的地理课本。
E02.Excel的数据可视化表达在Excel中常见可视化表达有五类,分别是REPT函数、条件格式、迷你图、Excel图表,三维地图。
点击获取Excel图表视频教程和源文件模板★★★★★N0.1 REPT函数表达式:=REPT(text,number_times) =REPT(重复文本,重复次数)
注意重复文本要用英文状态下引用,通过具体的实例去实战吧~
01.给课程做数据条
表达式子:=REPT("|",C5)&C5
选择适合的字体很重要,一般适合展示20至100的数据
02.网站流量漏斗图
03.电影评分表
04.相亲心动指数
05.人口金字塔图
NO.2 条件格式01.突出显示单元格规则
点击【开始】→【条件格式】即可选择相关的规则,突出显示相关的单元格。
1.查找重复值,查找班里不及格的人等等
02.最前最后的规则利用前N项或者后N项,通过突出显示快速找到对应的数据。
例如我们可以显示数学成绩高于平均分的同学、显示各位同学最低的一门科目成绩、班里成绩最好的3位同学
03.图标集许多小伙伴不知道这些小图标是来自条件格式,导致了误以为是图表上的。
优点:其实这些精致的小图标设置很简单,通过默认的设置就能得出来。 缺点:就是精度不高,只能表示大概。图标集分为方向、形状、标记、等级四个归类,根据归类我们日常主要分别应用在
方向:表示涨↑跌↓,一般用于数据对比
形状:一般用于分类划分的信号
标记:用于标记状态,某件事做了与否,达成目标与否
等级:表示占比划分
04.色阶色剂可以设置双色色阶或者三色色阶。
05.半自定义规则如果还不过瘾可以通过自定义格式来设置,整体设置也不难,所有的框和图标均可以自定义设置。
06.公式自定义条件格式公式自定义条件格式,相对与上面的会难点,但通过简单标志有更高的灵活度。
自定义格式百分比图
2.动态考勤记录表
3.项目计划甘特图
03.迷你图迷你图有三种形式,柱形、折线和盈亏图,它的优点是能大概表示数据状态,确定就是精准度低,图形无法表示数据真实差距。
无排版可视化的表格
经过可视化后↓
点击获取Excel图表视频教程和源文件模板★★★★★04.三维地图武广之恋❤
本题版本要求:2016及以上,2013版本可以安装power map插件还能拯救。
点击获取Excel图表视频教程和源文件模板★★★★★本道题可以简单拆分为:心形图形表达式+三维地图
01.第一步构建数据源
我们在百度或者一些论坛上找到心形的函数Excel表达式,然后在Excel上列出具体的数据源,这是最关键的又是最麻烦的一部分工作。就能直接下载该我精心为大家准备源文件啦!
02.打开三维地图
1.我们把标准的心形函数表达式放到三维地图上,其表达效果这样紫滴,地理曾经满分的我一下子恍然大悟,这不就是本初子午线(经度=0)与赤道(纬度=0)交界的地方嘛。
2.当我们把坐标的中心定位到广州,不就是将原来的表达式加上广州的经纬度,我马上百度了一下广州的经纬度。广州(东经113.23,北纬23.16)大小老可爱们直接在我的城市填上经纬度就OK啦↓
以广州为例↓
延伸:西经与南纬,需要把坐标写成负数。如西经113.23,南纬23.16(-113.23,-23.16)这样表达。
于是我们在茫茫的太平洋找到这个东西↓
03.添加异地坐标
在对应我的城市,和你的城市填上对应的坐标轴,可得到:
广州与武汉❤
广州与珠海❤
05.特别提醒
更改过数据源后一定要刷新数据啊!
E03.了解Excel图表的规范与应用E03-1.参考优秀的图表借鉴样式、布局、配色等
a.echart网站
b.设计网站
c.可视化平台等:如网易数读
d.商业杂志
E03-2.一份专业商务图表具备哪些特图表原有元素:2.主标题;5.图例;6绘图区(1.纵坐标、2.网格线、3.横坐标、4.图形)
添加元素:1.logo;3.副标题,4.单位,7.备注
E03-3.快速了解图表基础设置E03-4.配置表格主题颜色
E03-5.系统设置整个表格主题
了解整个表格和图表的基础和规范设置后,我们马上去了解各种基础图表。
E04.玩王者荣耀,学习基础图表学习基础图表,大家只需要吧这个《王者荣耀看板》做一遍,基本就你能掌握90%日常工作的应用,更重要你做完后会有一股成就感。
王者荣耀数据看板
王者荣耀动态看板
那我们分解一下,都是由哪些图表构成的,从这个图表就能从主标题看出是哪些图表,我们还可以通过点击图表左上方蓝色■形状,进行跳转到对应的图表联系区域。
教学部分主要采用了《经济学人》的配色风格演示,大家可以通过设置页面布局的主题,变换主题颜色。
E04-1.柱形图01.表格开始页引导:
02.图表练习区域展示:
02.图表小结区域:
每个图表做了实践之后,我们会给大家总结主要的知识点,方便大家快速上手图表。
E04-2.条形图条形图在王者荣耀中很常见,例如对战战绩图,血量、蓝量还有回城图都是由条形图来展示的。
03.知识点小结:
接下来的图表,就简单跟介绍一下需要注意的事项,或者一些与其他图表的不同点或共同点:
E04-3.折线图E04-4.环形/饼状图:占比分析E04-5.面积图:占比趋势分析这个在王者中的经济占比运用的就是面积图。
03.知识点小结:
E04-6.散点图:双变量分析03.知识点小结:
E04-7.气泡图:三变量分析03.知识点小结:
E04-8.雷达图:多维度分析最常见在我们的综合战力分析上,几乎每个游戏都会常常用到这种的对比。
03.知识点小结:
以前的案例示范:
E04-9.树状图:分级占比分析E04-10.旭日图:分级占比分析E04-10.直方图:区间分布分析直方图更像简化版的正态分布图,它经常用于统计数值区间的分布,例如年龄段的人数、收入水平、工资收入分布等。
E04-12.瀑布图E04-13.组合图E04.最后一招,数字放大法!
最后,我们把上面的所有图表拼合在一起,可得:
把我们所学的图表,一一放进去,可得到:
暂时补充到这里,如果想看动态图表的,请留言,我抽空补充一下这方面的知识。
私信回复:基础图表,即可获得一份基础图表的源文件❤
Hbuilder编辑器怎么用Hbuilder编辑器新手使用攻略?
设计理念及常用功能
设计理念
HBuilder追求无鼠标的极速操作,有很多的快捷设定,包括语法库/语法结构模型/AST语法分析引擎
HBuilder主要用于开发HTML/js/css,同时配合HTML的后端脚本语言如php/jsp也可以适用,还有前端的预编译语言如less及markdown都可以良好的编辑
常用功能
代码块:一个代码块少敲20下键盘
代码块是常用的代码组合,比如在js中输入$,回车,则可以自动输入document.getElementById(id);在HTML中输入i,回车,可以得到input button标签
1
查看/编辑代码块可以在工具-自定义代码块中,选择相应的代码块进行查看和编辑;也可以在激活代码块的代码助手中,点击详细信息右下角的修改图标进行修改和查看
代码块激活字符原则1:连续单词的首字母;比如:dg激活document.getElementById(""),vari激活var i=0,dn激活display: none
代码块激活字符原则2:整段HTML一般使用tag的名称;比如script/style,通常,敲最多4个字母即可匹配到需要的代码块,不需要完整录入,如sc回车/st回车,即可完成script/style标签的输入
代码块激活字符原则3:同一个tag有多个代码块输出,则在最后加后缀,比如meta输出,但metau则输出,metag同理
代码块激活字符原则4:如果原始语法超过4个字符,针对常用语法,则第一个单词的激活符使用缩写;比如input button,缩写为inbutton,同理intext是输入框
代码块激活字符原则5:js的关键字代码块,是在关键字最后加一个重复字母;比如if直接敲会提示if关键字,但iff回车,则出现if代码块;类似的有forr/withh等;由于funtion字母较长,为加快输入速度,取fun缩写,比如funn,输出function代码块,而funa和func,分别输出匿名函数和闭包
php高级工程师?
高级php工程师可以往几个方向去发展:
1.深度方向一个工程师要往高阶发展,必须同时强化几个技术能力:设计能力:懂得如何利用分层、面向对象、设计模式等设计组织代码编码能力:熟悉php语法特性,知道怎么用一两行代码代替初级开发者十几上百行代码。工程能力:学会如何快速构建工程,学会如何构建可读、可扩展性的工程,学会如何避免埋坑给后人,学会如何与人协作维护工程,学会如何保证工程质量,学会如何权衡利弊,学会如何在困难面前妥协。抽象能力:初级开发者通常会等到逻辑重复时再抽象封装(甚至怕拖进度或者懒惰而放弃),而高级开发者通常一开始写出的逻辑就为了以后的重用,并且深知一开始多付出的思考设计时间最终都会因为复用得到回报。很多开发框架就是一步步抽象/埋坑/优化而来的。架构能力:一个业务系统如何划分模块,模块之间如何协作通信,每个模块的技术选型如何做,系统细节如何规避问题等等。优化能力:学会如何评估、分析、提升系统性能。优化途径很多,产品功能优化、业务逻辑优化、基础技术优化、操作系统底层硬件的优化等等。
2.广度方向php开发基本上离不开操作系统、存储、缓存、网络、webserver等等配套设施,因此这也是高阶必备技能。一旦业务系统出问题了,必须要能快速定位解决(不一定自己解决,但要知道找到哪个负责人来解决)。比如存储mysql,高级开发者会懂得利用索引、利用分表分库提高查询性能,懂得负载均衡和灾备提高性能提高可靠性(虽然是DBA的工作,但了解了有助于出问题时排查)比如缓存,高级开发者懂得如何有效且最大限度利用缓存系统提高应用性能。比如http,初级开发者往往只懂得http网络请求就只一去一回两个包,高级开发者会去深究网络七层模型、会深究http请求的各个环节(DNS、三次握手等等)比如web前端,学习如何依靠浏览器缓存、CDN缓存、压缩代码、合并文件等等提高前端性能,学习如何进行前端安全攻防。3,软素质懂得团队管理,项目管理,沟通技巧等等。
golang和java开发选哪个?
我有朋友是资深程序员,目前现在依据他的兴趣循序渐进地学习Go,而他过去十年一直在利用Java做开发,再往前他是利用C ++。
过去他会利用Java为银行和医疗领域做开发,即便站在今天的时间点上,仍旧可以相信java仍旧是首选安全、成熟的技术。
Java的强项是有像Spring这样成熟的框架。如果有人要解决业务问题,尤其是那些适合OO数据模型的业务问题,用java是很容易实现的。
我了解的目前在使用Go的团队,基本是在搞大数据项目。
我们认为,Go会是java(因为在国内太主流了)的一个备选方案,譬如当你发现你希望某个项目/产品非常有挑战,有可能是有技术创新和突破的那类,并且发现Java的优势在这样的项目中不怎么突出,那Go一定是不错的选择。
Go与Java:相似之处1、Go和Java都是C族语言,这意味着它们共享相似的语言语法。因此,Java开发人员经常发现阅读Go代码相当容易,反之亦然。Go在语句的末尾不使用分号(';'),但在少数情况下除外。对我来说,Go的行分隔语句更加清晰易读。
2、Go和Java都使用了我最喜欢的功能之一,即垃圾收集器(GC),以帮助防止内存泄漏。与C ++不同,C系列程序员必须担心内存泄漏,垃圾回收器是使内存管理自动化并因此简化工作的功能之一。Go的GC仅GOGC变量可设置初始垃圾回收目标百分比。在Java中,有4个不同的垃圾收集器,每个垃圾收集器都有大量的设置。
3、Java和Go都被认为是跨平台的,但是Java需要Java虚拟机(JVM)来解释编译后的代码。Go可以简单地将代码编译为任何二进制文件。实际上,我认为Java与Go相比,Java的依赖程度更低,因为Go每次为一个平台编译代码时都需要您创建一个二进制文件。从测试和DevOps的角度来看,分别编译不同平台的二进制文件非常耗时,并且跨平台的Go编译在某些情况下不起作用,尤其是当我们使用CGo部件时。同时,使用Java,您可以在拥有JVM的任何地方使用相同的jar。Go需要更少的RAM,并且不需要任何有关安装和管理虚拟机的事项。
4、反射,与Java不同,Go的反射似乎更复杂且不那么明显。Java是一种面向对象的语言,因此除原语之外的所有内容都被视为对象。如果要使用反射,则可以为对象创建一个类,并从该类中获取所需的信息,如下所示:
Class cls = obj.getClass();
Constructor constructor = cls.getConstructor();
Method[] methods = cls.getDeclaredFields();
在Go中,没有类的概念,并且结构仅包含已声明的字段。因此,我们需要“反射”包以提供所需的信息。
Go与Java:差异1、Golang不是OOP语言。Go的核心是缺少Java的继承,因为它没有通过继承实现传统的多态性。实际上,它没有对象,只有结构。它可以通过提供接口来模拟一些面向对象的模式。同样,可以将结构彼此嵌入,但是嵌入式结构无法访问宿主结构的数据和方法。Go使用组合而不是继承来组合一些所需的行为和数据。
2、Go是一种命令式语言,而Java则是一种声明式语言。在Go中,我们没有像依赖注入那样的东西。相反,我们必须将所有内容明确地包装在一起。因此,建议在Go中进行编程的方法是使用尽可能少的魔术。对于外部代码审阅者来说,一切应该都是显而易见的,程序员应该了解Go代码如何使用内存,文件系统和其他资源的所有机制。
另一方面,Java需要开发人员更多地关注于自定义编写程序的业务逻辑部分,以确定如何创建,过滤,更改和存储数据。就系统基础架构和数据库管理而言,所有这些都是通过配置和通过Spring Boot等通用框架进行的注释来完成的。我们对重复的基础结构部分感到枯燥乏味,而将其留给了框架。这很方便,但也会颠倒控制权,并限制了我们优化整个过程的能力。
变量定义的顺序。在Java中,可以编写如下内容:
String name;
但是在Go中,会这样写:
name string
Go的优点简单优雅的并发。 Go具有强大的并发模型,称为“通信顺序过程”或CSP。Go使用n-to-m探查器,该探查器允许在n个系统线程中发生m个并发执行。可以使用该语言的关键字(与该语言的名称相同)以非常基本的方式启动并发例程。例如,编码人员可以编写以下字符串:go doMyWork()
并且函数doMyWork()将同时开始执行。进程之间的通信可以使用共享内存(不推荐)和通道来完成。它允许使用GOMAXPROCS环境变量定义进程一样多的核心并行。默认情况下,进程数等于核心数。
Go提供了一种特殊模式来运行二进制文件并检查运行情况。这样,可以测试并证明软件是并发安全的。
go run -race myapp.go
我真的很欣赏Go 提供了非常有用的基本功能,即开即用 (https://golang.org/dl/)。一个很好的例子是同步“ sync” https://golang.org/pkg/sync/ 并发包。对于“一次”组类型单例模式实现,可以编写:
包同步还为并发映射实现,互斥锁,条件变量和等待组提供了一种结构。软件包“ atomic” https://golang.org/pkg/sync/atomic/ 还允许并发安全转换和数学运算-实质上是制作并发就绪代码所需的一切。
指针。使用指针,Go可以更好地控制如何分配内存,垃圾收集器有效负载以及其他Java无法实现的有趣的性能调整。与Java相比,Go感觉像是一种更底层的语言,并且支持更轻松,更快速的性能优化。鸭子打字。 “如果它走路像鸭子,却像鸭子一样嘎嘎叫,那它一定是鸭子。” 这句话在Go中是正确的:无需定义某种结构实现给定的接口。如果该结构在给定的接口中具有相同签名的方法,则它将实现它。作为库的客户端,可以定义外部库结构所需的任何接口。在Java中,对象必须显式声明其实现了接口。探查器。 Go的性能分析工具使分析性能问题变得方便,快捷和容易。Go中的事件探查器有助于揭示程序所有部分的内存分配和CPU使用情况,并可以在可视化图形中进行说明,从而使执行优化性能的操作非常容易。从Java VisualVM开始,Java也有许多探查器,但是它们不像Go探查器那么简单。相反,它们的功效取决于JVM的工作,因此与它们获得的统计信息和垃圾收集器的工作相关。CGO。Go允许对C进行非常简单而强大的集成,因此可以在Go项目中编写带有C代码片段的平台相关应用程序。本质上,CGo使开发人员能够创建调用C代码的Go程序包。为了排除/包括给定平台的C代码段,有各种构建器选项,这些代码段允许应用程序的多平台实现。用作参数。Go函数可以用作变量,传递给另一个函数或用作结构的字段。这种多功能性令人耳目一新。从Java的1.8版本开始,它结合了lambda的使用,它们不是真正的函数,而是单功能对象。尽管这有助于实现类似于在Go中使用函数的行为,但这种想法从一开始就存在于Go中。明确的代码风格准则。 Go背后的社区充满了支持和热情。那里有大量关于使用示例和解释进行操作的最佳方法的信息。函数可以返回许多参数。 这也是非常有用和不错的。Go的缺点除接口外,没有多态性。 Go中没有继承多态性,这意味着如果在同一个程序包中有两个函数具有不同的参数但含义相同,则必须给它们指定不同的名称。例如,使用此代码:最终会采用许多方法来做相同的事情,但所有方法都具有不同的名称。
此外,如果嵌入结构,则嵌入式结构仅知道其自己的方法,而不会知道“宿主”结构的方法。
错误处理。 完全由你决定返回什么错误以及如何返回错误,因此作为开发人员,需要每次都返回错误并相应地传递错误。毫不奇怪,错误可能会被隐藏,这可能是真正的痛苦。记住要检查错误并把它们传递出去,这很烦人而且不安全。在Java中,异常要方便得多。如果它是RuntimeException,则甚至不必将其添加到函数的签名中。
没有泛型。虽然很方便,但泛型增加了复杂性,并且当Go类型的创建者键入系统和运行时,它们被认为代价高昂。在Go中进行构建时,基本上必须针对不同的类型重复使用自己或使用代码生成。没有注释。 虽然可以用代码生成部分替换编译注释,但不幸的是,运行时注释根本不能替换。这是有道理的,因为Go不是声明性的,并且代码中不应包含任何魔术。我喜欢在Java中使用注释,因为它们使代码更加优雅,简单。Go中的依赖管理。 最初,除了“ Gopgk”之外没有任何依赖项管理,但最终发布的“供应商”实验后来被“ vgo”取代,然后又被1.10版“ go mod”取代。如今,可以手动更改go.mod文件描述符,也可以使用各种Go命令(例如“ go get”)进行更改。不幸的是,这使得依赖关系变得不稳定。也没有即开即用的依赖关系管理机制提供的源镜像。有点可惜,尤其是因为Java具有诸如Maven和Gradle之类出色的声明式工具来进行依赖关系管理,它们也可用于构建,部署和处理其他CD / CI用途。
我们实际上必须使用Makefile,docker-composes和bash脚本自定义构建所需的依赖关系管理,这只会使CD / CI的过程和稳定性变得复杂。
Go微服务通常始于容器,并在本地,虚拟Linux机器或不同平台上同时终止。有时,它会使CD / CI在开发和生产周期中的工作比所需的更为复杂。
软件包的名称包括托管域名。 例如:import “github.com/pkg/errors”
这真的很奇怪,尤其不方便,因为如果不更改整个项目代码库的导入,就无法用自己的实现替换某人的实现。
在Java中,导入通常以公司名称开头,例如:
import by.spirascout.public.examples.simple.Helper;
区别在于,在Go中,go get将转到by.spirascout.public并尝试获取资源。在Java中,程序包和域名不必关联。
golang和java开发选哪个?
不一定有最佳答案,在于你希望用他们开发什么项目/产品。。。。。。
Java是行业标准,相比之下,现在使用Go做开发的还是比较少,基本是些大厂和涉及大数据的项目。
但是,我非常喜欢Go。
我认为最好的办法是环顾四周,看看每种语言都可以提供哪些工作机会。
无疑,你可能不会找到很多Go作业,但是会找到很多Java。