Flutter教程(二) 了解Dart语言,持续更新大厂面试笔试题

先看看 Dart和Java,客观的来讲,Dart语法层面确实比Java更有表现力,在VM层面,Dart VM在内存回收和吞吐量都进行了优化,但具体的性能对比,笔者没有找到相关测试数据,但是在我看来只要Dart语言能流行,vm的性能就不用担心,毕竟Google在go(没用vm但有GC)、javascript(v8)、dalvik(android上的java vm)上已经有了很多积累,值得注意的是Dart在flutter中已经可以将gc做到10ms以内,所以Dart和Java相比,决胜因素并不会是在性能方面,而语法层面,Dart要比java更有表现力,最重要的是Dart对函数式编程支持要远强于java(目前只停留在lamda表达式),而Dart不足的是生态,这会在下文讨论。

Dart vs JavaScript

JavaScript的弱类型一直被抓短,所以typeScript、coffeescript甚至是facebook的flow(虽然不是javascript的一个超集,但也通过标注和打包工具提供了静态类型检查)才有市场。其实在笔者看来,目前最强大的动态化最好的脚本语言就是javascript,支持动态扩展属性、创建函数等,用起来超爽。但是你可能听过另一个声音,javascript的强大的动态化是把双刃剑,毕竟有些人总是对自己写的代码不放心,他们期望有一套静态类型检查系统来帮助自己减少错误,而Dart就有静态类型检查(Dart2.0后加入了动态类型检查,这在最新版的flutter中已经启用了),并且可以通过dart2js将dart代码转成js代码,在这个层面来说,Dart和typeScript、coffeescript是差不多的,所以单独来看,dart并不比typeScript、coffeescript有什么明显优势,但综合起来看,dart既能进行服务端脚本、APP开发、web开发,这就有优势了。

Flutter中的Dart

Flutter能够运行大多数不会直接或间接导入dart:mirrors 或 dart:html的dart代码。Flutter中dart代码会通过AOT编译器编译成本地代码,没有vm,并且dart团队专门针对flutter进行了优化。

Dart生态

一个语言的成败,重要的一点还是在于生态。而生态的好坏,有两个主要指标:第三方库的数量和开发者数量。

Dart目前第三方库还是较少,并且有质量不高,即使是Dart SDK,里面也有很多bug,dart-sdk github现在打开的issue一直维持在5000左右,在最近10天内,我提过一个P0 bug和多个features,由此可见Dart目前还是不怎么完善。 但值得庆幸的是,目前Dart更新迭代快了很多,这是受flutter和Fuchsia的带动。

至于开发者,目前大多数dart使用者是flutter用户,用dart 写服务端脚本的应该非常少,毕竟现在在dart社区没有一个比较著名或经过时间验证的web server框架。从stackoverflow上dart相关的问题来看,用dart 开发js的开发者也有一些,但大概估计不会超过dart开发者的20%。

Flutter中文社区贡献

Flutter中文网发起了一个开源项目计划,旨在开发一系列Flutter SDK之外常用(实用)的Package、插件,以丰富Flutter第三方库,为Flutter生态贡献来自中国开发者的力量, 目前社区已有几个开源项目开始公测,详情请查看: Flutter中文网开源项目 (ps:目前Flutter中文网开源项目组正在寻找有实力、有梦想、热衷于分享的开发者加入,如果你有兴趣,点进去,获取联系方式)。

Dart未来

虽然Dart生态目前还不完善,但可喜的是增速很快,pub上的每天都有5个以上的新包发布,这个数量你也许不以为然,但事实上java 中最常用的包也就200个左右。虽然Dart语言本身自有亮点,但是在其对标的领域,目前都有成熟的并且不赖的解决方案,所以我觉得Dart是否成功目前来看还是主要看flutter和 Fuchsia是否能成功。
Flutter在没有发布第一个正式版的情况下,目前Github上star将近23K,热度相当高了(当然不能和vue等前端web框架相比,都要上100k了,两者开发者群体规模不同,开源时间不同)。 从Flutter自身来看,开发的应用程序性能确实流畅很多,比weex、rn 有明显的性能提升。
还有,随着Google Fuchsia OS的发布, DART 及flutter成为一等公民,也就是说将来具有Fuchsia OS的设备,Dart 都会成为主要的开发语言。
最后

一些资源:

  1. Flutter资源教程,请访问Flutter中文网
  2. Flutter http请求库dio
  3. Flutter教程

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

写在最后

在技术领域内,没有任何一门课程可以让你学完后一劳永逸,再好的课程也只能是“师傅领进门,修行靠个人”。“学无止境”这句话,在任何技术领域,都不只是良好的习惯,更是程序员和工程师们不被时代淘汰、获得更好机会和发展的必要前提。

如果你觉得自己学习效率低,缺乏正确的指导,可以一起学习交流!

加入我们吧!群内有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。

35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。

35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值