• Wan Android 项目总结


    Wan Android 项目总结

    项目的由来

    这个项目也算是自己学习了一段时间的Android以后的一个总结和学习吧,项目采用了Kotlin语言,Api采用的hongyang大神的WanAndroid 网站的API,就在昨天晚上这个APP的1.0 版本完成了,今天就来总结一下这个项目吧。

    项目地址

    Github WanAndroid

    关于Kotlin的思考

    Kotlin并不仅仅是语法糖,她很好,但在我看来她也不完美无缺的。

    Kotlin改良了

    Java对于嵌套类和内部类的定义的别扭之处,因为我并不是一个纯粹的Java开发者,所以在我接触Java的 嵌套类内部类 的时候,尤其是 static 关键字用于定义嵌套类的时候是在是让我恶心的不轻,至今我还不太理解这个蜜汁操作。

    Kotlin中并没有受检查异常,这一点着实是让代码看起来利索了不少,我们不必再一次又一次的去try-catch 。

    更简单的IO,Kotlin对Java中的IO框架进行了进一步的封装,简化了一些机械性的工作,Java的IO用过的都知道。。。。这也是我至今接受不了的一个地方(Java那驳杂的IO体系)。

    扩展方法和Lambda表达式的支持,这些简便的操作,让我的编码体验更加丝滑。

    内联函数,了解过Java泛型擦除的应该都知道,Java的泛型是又一个令人诟病的地方。在Kotlin中通过内联函数的方式缓解了一下这个显现。

    ...

    Kotlin让我很不爽

    说了Kotlin不好的地方了,这次就来吐槽一波吧

    Kotlin中并没有 静态 这个概念,而是采用伴生对象的机制来实现的类似静态的操作,这让我很是无所适从,我的代码编程了下面这样。

    companion object {
        fun show(context: Context) {
            val intent = Intent(context, MainActivity::class.java)
            context.startActivity(intent)
        }
    }
    

    伴生对象的机制,不仅仅是让代码多了一层前端套,更为致命的是,我甚至都不知道将它放置在类中的哪个位置。这个体验让我很是不爽啊。

    Kotlin中的变量的声明,从单纯的变量变为了 valvar 的声明的方式,而 val 声明的变量,就类似Java中的 final 关键在修饰的变量类似,这让我很是费解。或是是为了更好的性能?这就不得而知了。

    Kotlin中没有字段,Kotlin中虽然并非是真的没有字段,但是我们却无法显式的声明它,所以当我们需要一些字段的时候,我们不得不声明一个 private 的属性。

    ...

    Kotlin自从被作为Android的第一开发语言来被 Google 扶持了以后,她就一直饱受争议,在我看来她并不是完美的,甚至有很多对人不太友好的地方,但是她绝对不是一些语法糖而已。她也确实是提高了我们的开发效率。

    轮子加轮子

    这是一个轮子+轮子的作品,项目中用到了大量的轮子来提高开发效率或是美化项目,这些轮子都非常受欢迎,使用非常简单,在用这些轮子的时候,我感到有些沮丧,我的项目中导出都是这些轮子的影子,而这就显得我自己的东西就很少了。 还是得老老实实的编码争取自己也可以写出来好的轮子。

    无法驾驭的项目结构与无法保证的代码质量

    在学习MVP架构的时候,看上去非常的简单和容易上手,但是自己真正去用的时候就感觉难以驾驭经常性的偏离轨道,所以不得不一次又一次的对整体的架构动一些大手术。

    在写代码的时候,我总是很难控制代码的质量,出现了命名规范不统一,类的继承结构有问题的情况,在写代码的时候总是集中注意力于功能上,但是这就导致了很多冗余的垃圾代码,甚至这些代码到现在还存在于项目中。

    UI设计

    在做这个APP的时候,UI的设计让我绞尽脑汁并且也占据了大量的时间,但是最后也没得到一个比较漂亮的UI,哎,关于UI设计真是一言难尽,纯属是赶鸭子上架的举措了。

    写在最后

    好了知耻而后勇,代码总是一步一步优化的,我将会一点点的优化这些瑕疵,使其成为一个比较完美的作品,好了,本文到此为止,与诸君共勉。

  • 相关阅读:
    mysql只会使用到一个索引的原因
    SQL优化-三
    SQL优化-二
    SQL优化-一
    关于调和级数的证明
    SA 复习笔记
    点分治学习笔记
    FFT/NTT复习笔记&多项式&生成函数学习笔记Ⅰ
    python3+selenium webdriver实战应用篇-打造爱奇艺直播间机器人
    Photoshop如何修改(半)透明像素的RGB值
  • 原文地址:https://www.cnblogs.com/slyfox/p/10069168.html
Copyright © 2020-2023  润新知