1. App架构师成长路线
1.1架构师定义
-
架构的核心功能就是功能、安全、性能和稳定。架构师玩的是折中游戏。
-
架构师的核心职责包括选型规划、架构设计、技术攻关、沟通协调、疑难攻略等等。
1.2程序员发展路线
-
程序员的发展路线主要有两条:专家线和管理线;经理一般是管理线;架构师一般是专家线;
-
百度、阿里、腾讯、华为的职级体系是不一样的。在杭州这边,阿里系的影响应该最大。P6还是干活为主,P7就是所谓的“架构师”了。
2. APP基础语法系列
2.1 编程语言
-
C语言:这是起点和基础;这是最简洁高效的语言,没有之一;是起步,但是实际用的不多;依然很重要,用来实现算法的理想语言。
-
Object-C:虽然swift被苹果内定为下一代主流语言,不过目前仍然是Object-C为主流。
蚂蚁的React-Native是基于Object-C的;阿里的weex也是基于Object-C的;最近接触的阿里的金融mPaaS也是基于Object-C的; -
Java:目前接触的Android工程都是基于Java的。并且,后台也是基于Java的比较多。
-
Swift、Kotlin、JavaScript,从语法上看这三者很相似,当然本质是完全不一样的。这三者也被认为是各自领域的未来。直接用也是完全没有问题的。
2.2 面向对象思想
-
编程范式:
过程化编程;比如C语言
事件驱动编程;Android和iOS的事件响应机制
面向对象编程OOP;Java; Object-C
函数编程:Swift,kotlin
面向切片编程AOP:Java后台Spring框架的日志系统 -
封装、继承、多态是面向对象编程OOP的三大支柱;
可以考虑用多态来代替if条件语句,更容易维护和扩展;
2.3 线程与进程
-
假如计算机是一间工厂,进程就是一个车间,线程就是工人;
-
iOS13以前,一个APP就是一个进程;iOS13引入了多进程;Android一直是有多进程概念的;不过大多数时候,一个APP就是一个进程,没有必要搞得很复杂。
而线程的引入,一般是区分UI(主线程),这部分比较慢,负责人机交互;下载等耗时任务就需要另外开辟工作者线程来做,不然的话会导致界面卡顿;
2.3 反射、注解、泛型
-
Java中是有反射的,Object-C中对应的特性应该是Runtime。简单说,就是将字符串转化为相应的类,这样的话就能够根据不同的场景,修改字符串,运行不同的类对象,实现动态特性;
Swift中也是有反射的; -
Java中是有泛型的,Object-C中对应的特性应该也是Runtime。最常用的就是数组,字典等容器类型,里面可以装任何类型的数据。
泛型在写基础框架的时候特别有用;平时反而用得不多。
Swift中也是有泛型的; -
注解比较特殊,比如@selector之类的,不像代码,却起到了代码的作用。理解为宏定义也未尝不可,理解为一种特定的代码结构也行。
网友评论