《给产品经理讲技术》笔记之第三章:开发技术

空指针

  • 指向空的指针

数组越界

数据范围越界

命名

  • 变量命名
  • 命名差原因
    • 英文差
    • 读书少
    • 架构不熟悉
  • 匈牙利命名法
    • 作用域+类型+名字
  • 驼峰命名法

动画开发

  • 位移动画
    • 让控件在一段时间内不断改变位置
    • 配置清单
      • 动画开始时控件的起始位置
      • 动画结束时控件要到达的位置
      • 动画的持续时间
  • 缩放动画
    • 让控件在一段时间内不断改变自身大小
    • 配置清单
      • 动画开始时控件的缩放倍率
      • 动画结束时控件的缩放倍率
      • 动画的持续时间
  • 渐隐渐现动画
    • 在一定的时间内持续改变控件的透明度
    • 配置清单
      • 动画开始时控件的透明度
      • 动画结束时控件的透明度
      • 动画的持续时间
      • 设置重复次数
      • 设置重复模式
  • 旋转动画
    • 让一个控件在一段时间内围绕一个固定点旋转指定的角度
    • 配置清单
      • 动画开始时控件的旋转角度
      • 动画结束时控件的旋转角度
      • 动画的持续时间

耦合与解耦

  • 解耦
    • 标准接口进行交互
    • 消息
    • 引入框架

栈与队列

    • 先进后出的数据结构
    • 历史栈
    • 栈溢出
      • APP用的内存不小心超过了系统的限制,被系统强制结束
  • 队列
    • 先进先出的数据结构

BUG不修复

  • 修复 Bug 会产生不确定的后果
  • 可能是被设计出来以隐藏一个大Bug的

加载等待

  • 现代计算机执行任务主要依靠CPU的运算和存储设备对数据的读写
  • CPU密集型任务
  • I/O密集型任务
  • GPU密集型任务

并行计算

  • 一台计算机或一个计算系统(如分布式系统)可以在同一时刻执行两个或者两个以上的任务
  • 前提
    • 被执行的任务可以被拆分成多个可独立执行的子任务
  • 实现方式
    • 时间上的并行
      • 流水线技术
    • 空间上的并行
      • 增加核的数量
  • 系统调度的基本单位
    • 线程和进程
      • 多核操作系统就是将相互独立的线程和进程分配到不同核心上,达到并行计算的目的
  • Hadoop
    • 将用户的输入转化为大量可以并行的MapReduce操作,然后分配给集群上的各个主机并行执行

进程间通信

  • 基于文件的通信方式
  • 基于管道的通信方式
  • 基于共享内存的通信方式
  • 基于信号(消息)
  • 基于信号量
  • 基于套接字

应用程序崩溃

  • 算法设计时遗漏异常状态
  • 操作系统崩溃

操作系统

  • 启动
    • BIOS自检
    • BootLoader程序
  • 内存管理和进程管理
    • 物理内存
    • 虚拟内存
  • 文件系统
    • 文件系统是硬盘上文件的组织方式
  • API

代码混淆

  • 将一句条理清晰的话翻译得晦涩难懂,但是功能却保持不变

遇到BUG

  • 断点调试
  • 输出日志

倒排索引

  • 正向索引
  • 倒排索引

面向对象

  • 面向过程
    • 程序员接到需求,把它拆成一个一个的命令,然后串起来交给计算机去执行
  • 面向对象
    • 创建的对象应该刚刚好能做完它能做的事情,不多做也不少做
    • 面向接口编程

重构

  • 在保留现有功能的基础上,重新梳理软件中的代码结构,让原本杂乱无章的代码重新具有可读性、结构性和扩展性,增加软件的开发效率,优化程序的性能

流水线技术

  • 在重复执行一项任务时,可以把它细分成很多小任务,让这些小任务重叠执行,来提高整体的运行效率

多线程

  • 获得CPU/获得时间片
  • 多线程程序核心
    • 开启更多的线程,获得更多的CPU时间片,让程序更快完成
  • GUI系统
    • 主线程
      • 绘制界面、响应用户操作
    • 工作者线程
      • 运算或者完成逻辑,并将一些结果反馈给主线程
  • 多线程含义
    • 开启多个线程做不同的事情,目的是并发同时做很多事情
    • 开启多个线程做同一个事情,目的是提高效率
  • 多线程弊端
    • 多个线程的时序不好控制,多个线程之间的共享变量控制难度比较大,通知机制复杂,且调试困难
  • 线程池
    • 原理
      • 设置一个放线程的池子,先分配几个在里面,随用随取,用完放回,循环往复
    • 服务器不可能无上限地分配线程
      • 操作系统都有线程分配的最大值
      • 操作系统创建线程的时候需要同时分配一些内存,虽然服务器的内存都很大,但也不是用不完的
      • CPU 创建一个线程和销毁一个线程是要花时间的,虽然很快,但肯定比直接拿来用要慢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值