首页 文章 精选 留言 我的

精选列表

搜索[测试人员],共10000篇文章
优秀的个人博客,低调大师

这13位专家关于kotlin的看法,80%移动开发人员都没听过。

我究竟要不要学习Kotlin呢? 要回答这个问题,我们先把时间拨回到2017年5月18日,安卓团队在谷歌 I/O 2017 大会上宣布 Kotlin 成为官方头等支持语言。 彼时谷歌技术大牛 Steve Yegge 发表了一篇关于 Kotlin 的使用体会总结文章:“为什么说 Kotlin 比你们用的那些垃圾语言都好?” 一时间这条爆炸性资讯在引发的热议一直持续到了今天。 时间是检验真理的唯一标准,接下来我们来看看国内外技术专家,使用kotlin开发的感受! Google Android 专家Annyce Davis:“当 Kotlin 出现时,我立刻被它吸引了,因为它的很多语法特性让我想起了 Groovy。它既整洁又精炼。” Google Android 专家Sebastiano Poggi:“我真的真的很喜欢这门语言。我个人认为它在很多情况下使得编码变成一件愉快的事情,相比之前,同样的情况下用 Java 语言编码将会感到痛苦和繁琐。Kotlin 有时让我觉得自己就像一个 10 倍效率开发者。” Google Android 专家Jorge Barroso:“Kotlin 迈出了 Android 开发的一大步,在这之前,Android 缺少 Kotlin 所带来的特性,相比于其他的 Java 平台,Android 平台的 Java 开发有些过时,即使现在有在推动 Java 8,但它还是不会变成我们喜欢的现代编程语言。 Google Android 专家Mark Allison:“虽然我也很喜欢 Kotlin,但我不认为它已经足够成熟到能够在线上产品中使用。成熟模式和最佳实践的缺乏,使得 Kotlin 编写的代码可能难以维护。” Google Android 专家Dmytro Danylyk:“对于那些停留在 Android 世界的开发者而言,Kotlin 是一个真正的规则改变者,它拥有很多我喜欢的特性:空类型安全,data classes,属性和懒加载属性,扩展函数,协程,不变性等等。 我很享受使用 Koltin 来编码,因为我没有必要在项目中引入太多的第三方库,Kotlin 已经非常好的提供了大部分的支持。” Google Android 专家Anup Cowkur:“我曾经使用过像 Haskell 和 Elixir 这样的语言进行编码,因此当我进行 Android 开发时时常在想:“为什么 Android 中不能有这样好用的特性?”。现在使用 Kotlin,我们可以做到了。” Google Android 专家David Vávra:“在我的主要应用(Settle Up)的生产环境中我使用了 Kotlin,它已经足够成熟,而且相比 Java(任何版本) 有很多的优点。Kotlin 完全兼容现有的 Java 工具和函数库,同时能够很好的在 Android Studio 中使用。如果现在新创建一个 APP,我肯定会选择 Kotlin。” 听完了Google大牛的各种夸 ,难免有黄婆卖瓜自卖自夸的嫌疑?接下来我们看看国内移动开发领域大神对kotlin的看法: 鸿洋:“我每天都会看一些新的库或者文章,包括Google对外的一些库,已经有非常多的一部分都是用Kotlin对外输出的,如果我不会,对我学习起来有一定阻碍。所以我选择学习Kotlin,是为了更好的学习!总之,我们应该了解自己当下最需要的,而不是什么技术最热门。” 郭霖:“之前喷kotlin,觉得用了kotlin后项目的构建速度会大幅降低,现在我改真香了!” 美团团点评企业平台研发部刘自鹏:“我认为Kotlin 应用于 Android 开发相比传统 Java优势,在于依赖于 Kotlin 大量的语法糖以及更简洁易表现的语法风格能够大大提高开发效率,减少代码量,降低维护成本。 目前来看最大的劣势就是普及率太低了吧!团队开发,如果你一个人用 Kotlin ,那必定会产生某些沟通问题,或者矛盾。” 阿里水滴技术团队:“如果你用Kotlin开发过业务,很快就会意识到它相较于Java的语法更加简洁、高效。比如Kotlin做了这些改良: 在很大程度上实现了类型推导,而Java在SE 10才支持了局部变量的推导。放弃了static关键字,但又引入了object,可以直接用它来声明一个单例。而作为比较,Java则必须依靠构建所谓的“单例模式”才能等效表达。引入了一些在Java中没有的“特殊类”,比如Data Classes(数据类)、Sealed Classes(密封类),我们可以构建更深程度上的代数数据类型,结合when表达式来使用。” 腾讯Bugly:“我们为什么需要 Kotlin?答:消失的 Getter 和 Setter、又见空指针、Smart Cast、打日志、再见Utils、晚安ButterKnife...” 听完了上述专家们使用kotlin的感受,接下来我们再从技术层面剖析你应该完全学习Kotlin 语言的理由: 0# Java 互操作性 Kotlin是 100% 与 Java 具备互操作性的。你可以使用 Kotlin 继续你老的 Java 项目开发。所有你熟悉的 Java 框架仍然可用,任何框架,不管是 Kotlin 写的,还是你固执 Java 小伙伴写的都可以。 1# 熟悉的语法 Kotlin 不是诞生于学术界的怪异语言。其语法是 OOP 领域的任何开发者都熟悉的,可以或多或少的有一些了解。当然和 Java 还是有些不同的,例如重构后的构造函数以及使用 val 的变量声明等等。下面是一个基本的 Kotlin 示例代码: 2# 字符串插值 这相当于是更智能,更具备可读性的 Java 的 String.format() 方法的 Kotlin 实现: 3# 类型推断 4# 智能类型转换 Kotlin 编译器会跟踪你的逻辑代码并在需要的时候进行自动的类型转换,这意味着我们不需要在显示转换时做更多的 instanceof 检查: 5# 更直观的相等性比较 你不再需要调用 equals(),因为 == 操作符也可以用来比较结构的相等性: 6# 默认参数值 不需要像 Java 那样定义很多包含不同参数的相似方法: 7# 命名参数 结合默认参数值,命名参数可以消除 builders 的使用: 8# When 表达式 9# Properties 可以给公共字段自定义 set 和 get 行为,这意味着不再会因为那些没用的 getters & setters 导致代码疯狂膨胀。 10# Data 类 这是一个 POJO 类,包含 toString(), equals(), hashCode(), 和 copy()方法,和 Java 不同的是,它不会超过 100 行代码: 11# 操作符重载 可以重载预定义的一组操作符来提升代码的可读性: 12# 解构声明 一些对象是可以解构的,一个很有用的例子就是对 Map 进行迭代: 13# Ranges 14# 扩展函数 还记得你第一次用 Java 实现一个 List 的排序吗?你找不到一个 sort() 函数,然后你就四处求助,最终找到了Collections.sort()。后来你需要将一个字符串的首字符变成大写,最终你还是自己写了一个方法来实现,因为你当时还不知道有这么个东西StringUtils.capitalize(). 如果只有一种方法可以向已有的类添加新的函数,这样 IDE 就可以帮助你在代码完成时找到正确的函数。在 Kotlin 里你可以这么做: Java 是我们应该称之为是一个几乎静态类型的编程语言。Java 的 String 变量类型无法保证它不会等于 null。尽管我们已经习惯了这样的情况,但它否定了静态类型检查的安全性,导致 Java 程序员总是活在各种空指针异常的恐惧中。 Kotlin 通过区分非空类型和允许为空类型来解决这个问题。类型默认是不允许为空的,可以通过在后面加一个 ? 问号来表示允许为空,例如: Kotlin 强制你必须在访问一个可为空的类型变量时候必须确保不会发生空指针: 虽然看起来有点麻烦,但这的确是 Kotlin 一个微小却又非常重要的特性。我们仍可以使用智能的转换,可以在需要的时候将允许为空的类型转成不允许为空: 我们也可以使用安全调用方法?. 该表达式在 b 为空时返回 null,而不是抛出空指针异常: 安全调用可以链接在一起,以避免像其他语言一样存在大量嵌套的 if-not-null 检查,如果我们想要一个默认值而不是 null 时,可以用 ?: 操作符: 如果没有适合你的,那么你应该是需要一个空指针了,你将不得不显式的进行处理: 16# 更好的 Lambdas 嘿,帅哥,这是一个很好的 Lambda 系统 —— 在完美的可读性和简洁之间取得非常好的平衡,这得益于非常聪明的设计选择。其语法简单直接: 优点体现在: 如果 lambda 是方法的最后一个参数或者是唯一参数的话,那么方法的括号可以移动或者省略. 如果我们选择不去声明单参数的 lambda 表达式的参数,那么 Kotlin 会隐式的将之命名为 it. 结合上述优点,下面的三个不同的语句效果一样: 这个可以让你编写更加简洁的函数式代码,就像下面这样优雅: Kotlin 的 lambda 系统和扩展函数结合,可以非常棒的用来开发各种 DSL。例如 Anko 这个 DSL 的例子可以增强 Android 的开发: 17# IDE 支持 如果你打算开始使用 Kotlin 开发项目,在工具上你会有很多的选择。但我强烈推荐使用 IntelliJ ,因为它自带 Kotlin 的支持 — 它的特点展示了同一组人设计的开发工具和语言时的优势。 如何学习kotlin? 需要我们去学习官网教程 或者 google 提供的快速学习的教程,当然这里只是快速浏览就行了,主要还是得靠实践,先熟悉基本的语法,然后找时间对语法进行了解,最后在实践开发中使用高阶特性。 官网教程-中文:https://www.kotlincn.net/docs/reference/需要上述kotlin项目实战专题资料的朋友,添加VX:13203163609,即可免费领取

优秀的个人博客,低调大师

疫情限制出行期间,让开发人员躺着床上就把活给干了

远程工作,是我等一直期待的工作状态。每天早上睡到自然醒(五点就醒的人闭嘴),洗个牙刷个脸,悠悠哉哉吃碗红薯稀饭。回到床上,打开笔记本电脑,看看新闻,刷刷动弹。开始干活! 今年的疫情就让大家提前进入远程工作状态,相比 2003 年非典时还没有那么发达的互联网来说,现在的条件要成熟很多。 对于程序员来说,远程工作可不只是一个即时通讯、任务管理和视频会议就能搞定滴。 我们最需要的是一个代码协作平台。以前我们可能在公司内部跑了一套 SVN 或者 Git 的代码管理软件,但是多数公司没有提供 VPN 远程接入,导致延迟上班很多开发者无法访问公司的代码。非常影响工作节奏有没有! 现在,你是不是需要着手将这些代码迁移到 Gitee 企业版之上,让远程工作实实在在的开展起来呢? Gitee 企业版一个通过 ISO 27001 安全认证和 ISO 9001 质量认证的企业协作开发平台,主要特性: 安全先行 各种安全机制确保你的代码不会被未授权访问 提供详细的操作日志、访问日志,谁做了什么一目了然 代码快照 —— 想删库走人?门都没有! 还有很多。。。。 代码管理 企业->项目->仓库 多级代码管理,更清晰直观 企业->团队->成员 多级成员管理,权限更细致 代码审查、分支权限、持续集成,应有尽有 只读目录、强推限制、SVN 支持,Gitee 特色 项目管理 全面精细管理需求、缺陷,规划迭代 灵活拆分任务支持多级子任务、关联任务 所有代码改动均可关联至具体任务 提供泳道看板、燃尽图、甘特图等可视化工具 文档管理 多人协作,合同、标书、方案、用户手册编写简单轻松 多级目录结构,权限细化可调,满足企业各种苛刻管理需求 Git 管理,修改历史无限回溯 我们不希望有下一次疫情的爆发,但我们不能不做好准备。 代码是企业的核心资产,企业代码管理就上码云 https://gitee.com/enterprises

优秀的个人博客,低调大师

疫情限制出行期间,让开发人员躺在床上就把活给干了

远程工作,是我等一直期待的工作状态。每天早上睡到自然醒(五点就醒的人闭嘴),洗个牙刷个脸,悠悠哉哉吃碗红薯稀饭。回到床上,打开笔记本电脑,看看新闻,刷刷动弹。开始干活! 今年的疫情就让大家提前进入远程工作状态,相比 2003 年非典时还没有那么发达的互联网来说,现在的条件要成熟很多。 对于程序员来说,远程工作可不只是一个即时通讯、任务管理和视频会议就能搞定滴。 我们最需要的是一个代码协作平台。以前我们可能在公司内部跑了一套 SVN 或者 Git 的代码管理软件,但是多数公司没有提供 VPN 远程接入,导致延迟上班很多开发者无法访问公司的代码。非常影响工作节奏有没有! 现在,你是不是需要着手将这些代码迁移到 Gitee 企业版之上,让远程工作实实在在的开展起来呢? Gitee 企业版一个通过 ISO 27001 安全认证和 ISO 9001 质量认证的企业协作开发平台,主要特性: 安全先行 各种安全机制确保你的代码不会被未授权访问 提供详细的操作日志、访问日志,谁做了什么一目了然 代码快照 —— 想删库走人?门都没有! 还有很多。。。。 代码管理 企业->项目->仓库 多级代码管理,更清晰直观 企业->团队->成员 多级成员管理,权限更细致 代码审查、分支权限、持续集成,应有尽有 只读目录、强推限制、SVN 支持,Gitee 特色 项目管理 全面精细管理需求、缺陷,规划迭代 灵活拆分任务支持多级子任务、关联任务 所有代码改动均可关联至具体任务 提供泳道看板、燃尽图、甘特图等可视化工具 文档管理 多人协作,合同、标书、方案、用户手册编写简单轻松 多级目录结构,权限细化可调,满足企业各种苛刻管理需求 Git 管理,修改历史无限回溯 我们不希望有下一次疫情的爆发,但我们不能不做好准备。 代码是企业的核心资产,企业代码管理就上码云 https://gitee.com/enterprises

优秀的个人博客,低调大师

阿里云和微软共同开源的 OAM 对 Kubernetes 开发人员意味着什么?

上周,微软和阿里巴巴共同推出了开放应用模型( OAM ),用于定义部署在任何地方的应用模型的一种规范。 Rudr 是 Microsoft 基于 Kubernetes 环境的 OAM 标准实现。 我用了一个周末来了解 OAM 试图解决的问题,为此我还以 Rudr 为基础重构了一些我喜欢的基础微服务的应用程序。本文和以下教程将帮助普通的 Kubernetes 用户了解 OAM 背后的动机。 众所周知, Kubernetes 是一个复杂的平台,包含许多活动组件。在编排和部署简单的两层 Web 应用程序时,需要涉及到创建 Storage Classes , PVC , PV , Secret , ConfigMap , Service , Deployment 和 Ingress 。在实际生产部署中还需要健全的日志收集,监控告警,安全性,高可

优秀的个人博客,低调大师

不满公司与反移民政府机构合作,开发人员删库抗议

随着特朗普的反移民政策,成千上万的移民儿童与父母分离,美国移民和海关执法局(ICE)也成为众矢之的。因此,当开源开发者 Seth Vargo 发现 Chef 公司最近与 ICE 签订了合同后,便撤回了他的开源项目 Chef Sugar。 Chef Sugar 是一个 Ruby 库,用以更加轻松地使用 Chef。Varga 在 Chef 任职期间开发并开源了该库,后来将该库集成到 Chef 的源代码中。不过,Chef Sugar 的最新代码仍然被放在 Vargo 的个人 GitHub 存储库中。 在发现Chef 与ICE 进行合作后,Varga 用删库的行为以示抗议。“我有道德和义务,以防止将我的源码被邪恶所利用”,Vargo 在空荡荡的 Chef Sugar 库中留下这样一句话。 随后,Chef Software 的首席执行官 Barry Crist 发文表示,此事件影响了“许多客户的生产系统”。同时,Chef 团队正在想办法补救,他们通过搜索一些较旧的 Chef Sugar 源代码并将其重新上传到公司的 GitHub 帐户来解决此问题。 事情并没有就此止步,抗议还在继续。社交媒体上的人们对 Varga 此举大加赞赏。Chef 内外的程序员也都对 Varga 的行为表示支持,即使他们也不得不自行寻找Chef Sugar 库的替代品。紧接着,Chef 工程师和领导层遭到轰炸,人们对他们签署合同提出了批评,并要求他们放弃与 ICE 的合同。 压力不仅来自外部,还来自 Chef 内部。该公司的首席执行官 Crist 以发给所有员工的电子邮件作为回应,后来也发布在该公司的博客上。 Crist 表示,从上届政府以来,Chef 一直都是 ICE 的长期合作者,“无论我们个人是否同意各种政策,我们都将与政府机构合作。这一决定不是关于合同价值的,而是关于在瞬息万变的时代保持一致和公平的业务方法。我认为审查特定的政府项目,以选择我们应该或不应该开展业务的机构,是不适当、不切实际的,也不在我们的任务范畴之内。” 但没过几天,Crist 的态度稍微有了转变,他表示明年与 ICE 的合同到期后将不再续签,Chef 公司目前仍需继续履行现有合同的全部义务。 Vargo 称自己不再被允许谈论此事,他认为“这只是一个开始”,并对所有立场坚定的人表示了感谢。这件事牵连出的,是更为宏大的道德问题,源代码是始终保持中立的吗?开源究竟应不应该掺杂道德立场?这个话题我们下次接着谈。 消息来源:ZDNet

优秀的个人博客,低调大师

什么才是这个时代最需要的BI人员? —— 阿里云MVP赵玮主题分享【1】

7月8日,阿里云在上海和大家进行了针对数据化运营的讨论—— 阿里云数加—数据化运营实践分享 很荣幸的请到了 阿里云MVP赵玮,收钱吧数据分析专家。 基于“收钱吧”如何使用阿里云QuickBI 产品,阿里云MVP 赵玮给线上线下超过 2000 人带来分享《面对正在崛起的移动支付,如何做好数据运营》 。 以下是花肉根据现场的情况整理的文章,整个分享干货很多,所以会分为三个部分,读到文末就会看到下一篇内容预告哟。 基于公司的特性,公司里面都每个人都会问自己三个问题: 第一是运营效率的突破; 第二是商业模式的创新; 第三是客户价值的提升; 为什么会问这三个问题呢? 第一:运营效率的突破 其实移动支付从本质上来讲,它是一个通道业务,核心在于高效率。 第二个商业模式的创新 我们刚才提到的是我们认为移动支付带来的变革,它最大的根本上的改变商户跟消费者之间的连接,建立起来了, 所以

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册