稀有猿诉

十年磨一剑,历炼出锋芒,说话千百句,不如码二行。

Introduction to Android Jetpack

Android Jetpack是一个由谷歌官方提供的安卓开发套件(套件是一组组件的意思),目的是帮助安卓开发者解决兼容性问题,减少重复代码,提升体验和性能,最重要的是提升开发效率。安卓以碎片化著名,不同的版本,不同的OEM厂商导致整个安卓设备碎片化严重,对App生态来说是很不友好,加之安卓本身的原因导致像流畅度,体验和性能始终逊水果不止一筹。后来谷歌推出一系列的Android SDK之外的一系列开发组件如support library来解决兼容性(App compat)和新的开发组件(RecyclerView, CardView, Pager等),后来这些东西就演变成了现在的Android Jetpack。

Understanding Kotlin Based DSL

DSL Domain Specific Langauge是解决特定领域内问题的编程语言,它的特点通常是简洁,虽不通用,但可读性强,呈描述式和声明式,比较典型的例子就是SQL语句和正则表达式,以及一些文本处理工具如Sed和AWK。与之对应的就是通用编程语言GPL General Purpose Language,能解决几乎所有的计算机问题,没有为特定领域进行定制,但语句可读性远不及DSL,它们的语句一般都是命令式的,如熟悉的C/C++, Java和Python等。

Design Problems Archive

设计类习题是指要求设计一个类以完成某种特定需求,不是很复杂,通常一个类就能搞定,整体代码也不会特别长,但又能考察到一些基本的知识点,或者一些基本的技巧。通常是由一些日常中常见的任务经过简化而来。

链表问题总结

链表LinkedList是一种线性的非连续数据结构,优势是随机删除和添加特别高效,但随机访问效率差。因为链表边界条件较多,容易出错,所以还是比较常见的一类题目。但链表常见的问题就那么多,总结起来就那么几个,想要掌握还是比较容易的。

Kotlin进阶之协程从专家到出家

协程Coroutine是一种轻量级的实现异步的方式,是代码执行的控制框架,是最新式的发编程范式。它在使用上大大简化了以往多线程并发带来的种种麻烦(如状态同步和锁),最大的优势就是它是纯编程语言层面实现的,不受制于操作系统,因此它不会阻塞。在前两篇基础之上,今天再来深入的理解一下各种概念,并脱去协程华丽的外衣一探它的本质。

Kotlin Collections

现代的软件一般比较复杂,程序语言中的基本数据类型往往不能满足需要,除了基本的数据类型以外,还有对象的容器也非常的重要,比如线性容器(数组,列表和Set)和二维容器(哈希表)等。今天就来学习一下Kotlin中的容器。

Understanding Kotlin Functions

函数对于编程语言来说是极其重要的一个组成部分,函数可以视为是程序的执行,是真正活的代码,为啥呢?因为运行的时候你必须要执行一个函数,一般从主函数入口,开始一个套一个的函数调用。函数更能体现程序的运行。特别是近些年函数式编程的编程范式开始广泛流行,让函数的地位再次在各种语言中都得到了极大的进升。对于任何一门编程语言,如果没有学好函数,那就相当于没有学,今天就要深入的学习一下Kotlin中的函数。

Kotlin Controls and Expressions

有结果返回的是表达式,没有返回的称之为语句,语句最大的问题是它没有返回值,那么想要保存结果就必然会产生副作用,比如改变变量。很多时候这是不够方便的,并且在多线程条件下,这甚至是不安全的。Kotlin中,为了加强线程安全性和方便并发和异步,因此绝大多数语句都是表达式。

Kotlin Types and Operators

Kotlin是新一代的基于JVM的静态多范式编程语言,功能强大,语法简洁,前面已经做过Kotlin的基本的介绍,今天就来深入的学习一下它的数据类型和运算操作符。