客户端开发设计总结

简介: 1 基础设施程序最基本的处理就是数据IO以及为了并行计算所做的操作,它们通常会作为程序的底层框架,供上层使用。

1 基础设施

程序最基本的处理就是数据IO以及为了并行计算所做的操作,它们通常会作为程序的底层框架,供上层使用。

基础框架

2 交互

从PC到现在的移动设备还有VR,人机交互中的输入设备在不断自然化,可是展示界面的元素仍然还是这几种:静态文本、按钮、列表、输入框、选择菜单、进度提示、滚动条、标签页。每种UI框架都提供这些基本组件,可以说掌握它们就等于对这个框架入门了。高级的交互会跨越窗口、跨越程序,并能更智能化地响应输入。

interaction

3 硬件设备

PC上的硬件大都需要通过统一的接口来操作,开发者需要做好繁复的参数设置才能正确使用。移动系统则对很多硬件做了封装,为开发者提供定制的简单API。有时候开发者并不需要直接操控硬件,但需要获取硬件的信息,根据可用的资源数来执行不同的策略。

硬件设备

4 程序设计

现在的程序流行快速迭代,没过几天就发布一个新版本。新的app还要越快上线越好,尽早占据制高点。如此匆忙的节奏,让传统软件的架构设计退居二线,程序往往都是技术债务多到影响开发速度或新功能才执行大的重构优化。不过我们至少可以提前根据功能分出一些模块,让后面的重构稍微轻松些。

design

5 后勤

如果说需求开发是前线,那么产品经理无暇关心的东西都算后勤了。这部分工作需要技术经理主导来开展。对程序员来说这部分工作可能没那么刺激,但却是深入学习系统和各种工具原理的好机会。

logistics

6 其它

关于编程语言、开发工具、操作系统的总结在这:
http://blog.csdn.net/hursing/article/details/45603483

7 一些感想

客户端开发有界面,能图形化反馈编程结果,所以比服务器端开发更“刺激”一些。因为和操作系统紧密结合,知识具有针对性,所以即使是做UI也比做前端的难度大些。

现在做移动开发其实和当年做Windows程序没有差别,只是系统比较新且更新快,文档多数是英文的,又少有中文图书积累,所以门槛稍高。再过几年当供过于求,应该会回归编程平台这一基础属性,不再带有什么光环。

客户端开发的尽头就是熟悉了所有的API。然而API在演变,还得继续跟随。Windows的API多到没人能完全记住或用过,但三年前的iOS是可以的,现在也不行了,苹果在不断地添加。看Android,到现在已经演化了24个版本,很难去跟踪了。

无论哪种系统,不断有API被标记为Deprecated,也有部分在新操作系统上不可用,需要在代码里判断操作系统版本或SDK的版本。这些历史,对新手来说直接就是不知道。随着人员也跟着更新换代,更多人就忘了,于是文档成了这种混乱的救命稻草,会查文档真的非常重要。

如果让我编制一个学习路径,应该是这样的:

  1. 编程语言,代码规范,格式化工具
  2. IDE环境,快捷键
  3. UI框架,学会查SDK文档,掌握文档的整体结构
  4. 网络、磁盘等IO
  5. 更多系统SDK的模块
  6. 调试技巧
  7. 工程文件组织,命令行操作
  8. 流行的第三方库
  9. 打包,自动化
  10. 测试方法、工具、自动化
  11. 优化方法
  12. 学习系统原理
  13. 反编译,hack
  14. 发布渠道和流程
    • 官方:Google Play、Apple Store
    • 厂商:小米、华为、魅族、vivo、oppo……
    • 第三方商店: 豌豆荚、PP助手、安卓市场……
    • 渠道:友盟+……
  15. 写博客总结。像这样 http://blog.csdn.net/hursing

有空再写写调试和优化总结吧。

目录
相关文章
|
消息中间件 缓存 监控
在PHP中,实现多线程
在PHP中,实现多线程
378 6
|
API 微服务
Traefik 微服务 API 网关教程(全)
Traefik 微服务 API 网关教程(全)
|
Kubernetes 负载均衡 调度
在K8S中,K8S外部节点访问Pod有哪些方式?
在K8S中,K8S外部节点访问Pod有哪些方式?
|
运维 监控 算法
slb监听协议http
SLB的HTTP监听器用于处理HTTP请求,配置时选择协议类型为HTTP和前端端口(如80)。SLB根据负载算法将请求转发至健康后端服务器,并支持会话保持。通过`X-Forwarded-For`和`X-Forwarded-Proto`头处理请求信息。由于不涉及SSL/TLS,数据传输不安全,推荐升级至HTTPS以加密通信。SLB提供性能监控和故障排查工具,帮助运维管理。
434 5
|
SQL 时序数据库
influxdb 进行数据删除和修改
influxdb 进行数据删除和修改
2850 5
|
JavaScript
js 获取并解析 url 中参数的三种方法
js 获取并解析 url 中参数的三种方法
2600 0
|
网络安全 开发者 iOS开发
App备案流程和要求
App备案流程和要求
2383 0
|
域名解析 缓存 网络协议
【域名解析】如何将域名指向对应服务器IP
【域名解析】如何将域名指向对应服务器IP
5139 1
|
Kubernetes 应用服务中间件 Linux
Centos kubeadm安装单master多node,kubernetes、k8s超详细安装教程
Centos kubeadm安装单master多node,kubernetes、k8s超详细安装教程
456 0
Centos kubeadm安装单master多node,kubernetes、k8s超详细安装教程
WM
|
前端开发 IDE JavaScript
后端开发是如何搞定APP开发的--《前端那些事》
个人技术背景:从业10年,一直做后端相关的开发工作,对JavaScript的基本语法有一定的了解,完成过公司内的运营后台的前端开发工作,使用boostrap来解决窗口适配等问题,对前端知识的掌握停留在jQuery及基本的页面逻辑编写上。近几年对APP开发有浓厚兴趣,想独立将自己的想法通过APP落地实现出来,期间接触过ios开发swift,Android开发,以及一些前端框架phonegap、flutter以及vue,目前通过flutter以及vue搭建出了APP,当前处于发行前期。本篇文章旨在向大家介绍作为一名多年经验的后端开发,是如何一步一步的独立实现APP的开发和搭建前端部分的工作的。
WM
11398 0
后端开发是如何搞定APP开发的--《前端那些事》