《App架构师实践指南》---笔记
大纲
第1章 App架构师成长路线
架构师是为满足某种架构设计目标而整体上构思把控的角色,在软件行业,又会细分很多,如:
系统架构师、企业架构师、应用架构师、业务架构师等
本书针对App应用架构师
一般需要一下特征:
- 具备客户要求的功能
- 能够在工期内完成
- 性能好
- 可靠
- 安全
- 成本可接收
- 符合法规标准
- 将超越前任极其竞争者
也就是:功能、安全、性能、稳定
资深工程师,需要在技术的深度和广度两个维度上都有所积累和沉淀
第2章 App基础语法系列
如果你只会一门编程语言,无论多么精通,仍然显得不够优秀
要努力学习一门新语言了,拓展知识的宽度
Swift用过,但不够精通,还需要学习
Java也要继续学习
语言语法基础:抓核心、看本质、看思想
进程与线程
进程(Process)和线程(Thread)都是操作系统的基本概念
如果把计算机比作是一个工厂的话
进程就好比工厂的车间,代表了CPU所能处理的单个任务;
线程就好比车间里面的工人
一个车间包含多个工人,车间内每个工人都可以使用车间里的生产资料
一个进程包含多个线程,进程内每个线程都可以使用这些共享内容
由于共享,容易出现同时抢夺资源的问题,可以使用同步加锁的办法避免
加锁,防止多个线程同时读写某一块内存区域
通过“信号量”来保证多个线程最多执行几个
线程是操作系统进行运算调度的最小单位,
有时候,为了更好地利用CPU资源,我们需要使用多线程
多线程是一种利用CPU同时处理多个任务从而提高软件工作效率和资源利用率的方法,当然,过多的线程会消耗大量的CPU资源,且每开一条线程本身都是有开销的。
多线程又涉及到线程管理
第3章 App开发工具系列
编译调试有两种:
第一种,就是我们使用Xcode编译调试
第二种,使用非Xcode的命令行方式,比如Jenkins+Git仓库
iOS通过命令构建,自动化编译打包,需要使用xcodebuild和xcrun等工具
可参考xcode_shell
要学习了解下脚本打包
讲的太泛,只能泛泛而读
第4章 App SDK使用系列
iOS中应用程序状态包括:
Not running(未运行)、Inactive(激活)、Active(激活)、Backgroud(后台)、Suspended(挂起)
第5章 开源库的选择和使用
对待开源库有以下建议:
- 使用前,如果是产品类项目,一定要深入研究基本原理、API使用等
- 使用中,一定要自行封装一层。可以实现入口统一,适应业务变换或者开源项目本身的替换,灵活快速替换
第6章 App常用模块设计
第7章 App架构和重构
组件化是将一个App分为若干模块,每个模块都是一个子组件。开发过程中,有些组件间可以相互依赖,每个组件可以单独调试。
熟悉UML图
常用设计模式:
常用软件架构
分层架构
组件被划分为不同层,每个层代表一个模块或功能,一般可划分为4层结构或5层或多层
4层结构一般是:(从上往下)表现层、业务层、持久层、数据库层事件驱动架构
微内核架构
微服务架构
基于空间的架构
MVC、MVVM架构,其实只是表现层的架构,而不是整体的系统架构
第8章 App质量和稳定性系列
在iOS中,Crash最重要的信息,都保存在.dSYM文件中
需要上架时的app文件,与.dSYM,才能解出崩溃信息
没有.ipa文件,也就不知道错误在哪一行了
测试:UI测试、功能测试、单元测试、性能测试、接口测试、中断测试、兼容测试、安全测试
云测:开发者上次App后,在云测服务端完成部署和自动化测试,可以选择网络、机型等相关参数,完成在线测试并获取测试报告,主要针对App的兼容性测试、性能测试和功能测试等,大部分是基于自动化脚本的测试。
屏幕分辨率适配
点(Point),简写pt。是IOS的单位,虚拟单位,开发过程中基于坐标系的绘制都是以点作为单位。
像素(Pixel),也称物理像素,简写px,是设备屏幕实际像素
渲染像素(Rendered Pixel),像素分辨率,即@1x、@2x、@3x
屏幕尺寸,手机屏幕的物理长度,单位是英寸。
第9章 App性能优化系列
性能优化,具体包括:
性能分析、硬件性能优化、UI性能优化、CPU性能优化、内存性能优化、网络性能优化、App瘦身、启动速度优化、代码优化等
手机中的主要耗电场景:
手机屏幕、CPU一直做复杂运行、网络一直在做大数据传输、GPS定位、Camera
iOS中,App是以镜像(image)为单位进行加载的,镜像类型包括executable(可执行文件)、然后加载dylib,dylib从executable的依赖开始执行,地柜加载所有的动态链接库。
第10章 App安全逆向系列
可参考《iOS应用逆向工程》
可将iOS逆向工具分为四大类:监测工具、反汇编工具、调试工具和开发工具
Hook和注入,是一种动态篡改程序的方法,属于动态分析范畴。
Hook是一种将自身代码注入到目标程序进程中,其本质是挟持函数的调用。
其他
UI主要是视觉设计与交互设计
UX主要是体验规划设计
推荐书籍:
《程序员的职业素养》
《架构之美》
《软技能:代码之外的生存指南》
这本书粗略了读了一下,花了大概一天半时间
书,说实话跟架构师没啥大的关系,可以作为刚入门的小白看看
《App架构师实践指南》---笔记相关推荐
- 《信贷的逻辑与常识》笔记
序 银行信贷风险管理的反思 现状与趋势 银行贷款的质量变化与经济周期.宏观调控政策等存在很高的相关性 现在银行不良贷款的增加主要是前几年经济快速增长时企业过度投资.银行过度放贷所带来的结果. 从历史情 ...
- AI公开课:19.02.27周逵(投资人)《AI时代的投资逻辑》课堂笔记以及个人感悟
AI公开课:19.02.27周逵(投资人)<AI时代的投资逻辑>课堂笔记以及个人感悟 目录 课堂PPT图片 精彩语录 个人感悟 课堂PPT图片 精彩语录 更新中-- 文件图片已经丢失-- ...
- 人工智能入门算法逻辑回归学习笔记
逻辑回归是一个非常经典的算法,其中也包含了非常多的细节,曾看到一句话:如果面试官问你熟悉哪个机器学习模型,可以说 SVM,但千万别说 LR,因为细节真的太多了. 秉持着精益求精的工匠精神不断对笔记进行 ...
- 【逻辑回归学习笔记】
算法描述 1.逻辑回归要做的事就是寻找分界面实现二分类. 2.问题假设:对一堆三角形和正方形分类. 3.数据输入:已知正方形和三角形的坐标和标签. 4.算法过程: 知识储备 1.分类和回归 ①分类的目 ...
- 逻辑回归函数学习笔记
继续逻辑回归学习,今日笔记记录. 1.逻辑回归和线性回归的关系:对逻辑回归的概率比取自然对数,则得到的是一个线性函数,推导过程如下. 首先,看逻辑回归的定义 其次,计算两个极端y/(1-y),其值为( ...
- 2.2 逻辑回归-机器学习笔记-斯坦福吴恩达教授
逻辑回归 上一节我们知道,使用线性回归来处理 0/1 分类问题总是困难重重的,因此,人们定义了逻辑回归来完成 0/1 分类问题,逻辑一词也代表了是(1) 和 非(0). Sigmoid预测函数 在逻辑 ...
- LVM逻辑卷分区笔记
磁盘的静态分区有其缺点:分区大小难评估,估计不准确,当分区空间不够用的时候,系统管理员可能需要先备份整个系统,清除磁盘空间,然后重新对磁盘进行分区,然后恢复磁盘数据到新分区,且需要停机一段时间进行恢复 ...
- 适合理工直男的钟平老师逻辑英语学习笔记
一切的一切都只是套路! --鲁迅 核心公式: En: (状语1) 主(定语1) 谓(状语2) (宾)(定语2) (状语1) Ch: (状语1) (定语1)主 (状语2)谓 (定 ...
- 【数字逻辑】学习笔记 第四章 Part2 常用组合逻辑电路与竞争、险象
文章目录 一.常用组合逻辑电路 1. 译码器 (1) 二进制译码器 74LS138(3/8译码器) a. 一般符号和图形符号 b. 74LS138功能表 c. 两片 `74LS138` 构成 `4-1 ...
- 线性回归、逻辑回归学习笔记
学习源代码 import numpy as np import matplotlib.pyplot as plt def true_fun(X): # 这是我们设定的真实函数,即ground trut ...
最新文章
- Javascript 绑定事件和 this理解
- Oracle 11g新特性之 - 使用RMAN复制数据库
- 【Android Gradle】安卓应用构建流程 ( 资源文件编译 )
- MVC中返回Json的几种声明方式
- RocketMQ消息的存储结构
- 5 html 根据手机转动而转动_手机安装陀螺仪有什么用 手机安装陀螺仪作用介绍【详解】...
- 北大计算机基础与应用,北大16秋《计算机基础与应用-第六组》在线作业
- STM32—TIMx输出PWM信号驱动MG996R舵机
- 百度地图 变黑问题 解决方法
- 永远的疯狂竹子----纪念退役不久的V-Gundam
- Python学习笔记——字符串、列表、元组、字典
- Android多语言设置
- 巴菲特:推荐给投资者的9本书(附下载链接)
- Http 同步和异步的区别
- 碰撞检测之Sphere-Box检测
- 深度评测 Amazfit跃我GTR 3 Pro 和小米color 2选哪个
- 葫芦侠三楼API整理
- 白櫵校园商品交易系统/校园二手物品交易系统/二手交易系统
- IP地址和子网掩码详解
- 2021年上海市集成电路和软件企业核心团队专项奖励的通知
热门文章
- 我的2011--衣带渐宽终不悔,为伊消得人憔悴
- xp系统桌面图标出现阴影
- a king读后感 love of the_电影读后感英文
- 大数据教学整套视频及源码
- html制作古诗念奴娇,《念奴娇·赤壁怀古》的教学设计
- 李大狗:从 Logo, Basic 到区块链 - Mixin Network 开发者访谈系列 第二期
- 数据挖掘——时间序列算法之组合模型
- 不灭鸿蒙等级划分,等级划分
- Flink CheckpointCoordinator 步骤 流程 源码
- 计算机第一级开机密码设置,电脑如何设置开机密码 电脑开机密码设置方法