浅谈iOS架构的技能栈

前言

这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书记录下自己的学习历程.

个人学习方法分享 iOS开发学习路线 浅谈iOS进阶路线

本文阅读建议
1.一定要辩证的看待本文.
2.本文仅代表个人片面观点,如有不同观点,还往及时指出.
3.本文只阐述学习路线和学习当中的重点问题.需要读者自己使用百度进行拓展学习.
4.本文所表达观点并不是最终观点,还会更新,因为本人还在学习过程中,有什么遗漏或错误还望各位指出.
5.觉得哪里不妥请在评论留下建议~
6.觉得还行的话就点个小心心鼓励下我吧~

目录
1.技能栈路线
2.iOS架构说
3.大、中、小公司的区别
4.架构师思想

为什么我又会开一篇文章,而且又是大致一样的标题,因为我觉得这是不同层面的问题,不同层面的文章,上一篇可以说是我掌握的一些知识的分享,而这篇章完全是在阅读了APP架构师实践指南这本书有感而发的.

上篇文章只是单纯自己想要提升自己的一个路线总结,而当我看到这本书以后,它彻底改变了我对iOS开发的看法,我突然发现有很多我本该掌握必备的技术栈,我并不会,甚至很是陌生,深感自己还有许多东西要进行学习.

这篇文章单纯的技术交流篇,本人深感自己水平尚且不够,还需长时间的努力学习,希望本文可以对各个iOS开发工程师有所帮助,迅速找到自己的定位和不足,及时提升自己.


推荐书籍

本文推荐书籍,均参考于APP架构师实践指南一文.

架构之美
人月神话
精益创业实战
架构师技能矩阵
软件架构设计
Swifter:100个Swift开发必备Tip
Java8新特性
Java动态代理机制分析及扩展

技能栈路线

语言语法 Objective-C Swift 工具使用 IDE 编译调试 版本管理 产品设计 SDK使用 常用模块 基础组件 常用业务模块 编译打包 版本适配 第三方SDK 网络库加密 安全逆向 逆向分析 安全测试 安全建议 混淆签名 加固加壳 安全编码 性能优化 硬件性能 UI和CPU 内存性能 网络性能 包Size 启动速度 代码优化 架构和重构 组件化和模块化 UML基本功 设计模式 接口设计 架构模式选型 重构 质量和稳定 质量稳定性指标 CI和代码监控 Crash 测试 兼容性测试 自动化测试 性能安全测试 A/B Testing 代码覆盖率

上述架构路线从书上整理下来,方便各位查阅学习.

为了不对原书作者造成侵权,每个技能栈我都将以自己的理解进行描述,强烈建议各位读者购买这本APP架构师实践指南明确自己的定位,提升自己的思想,感受不一样的iOS开发观念.


自我定位

其实并不是因为看了APP架构师这本书以后,你就成为一个iOS架构师了,而是重点去学习它的观念,一个架构的观念.

本书第一章就可以确认自己定位,而仅仅只有7页.就可以让我受益匪浅,直接看清自己的不足,和所不会的技能栈.


基础语法

如果你只会一门编程语言,无论多么精通,仍然显得不够优秀

确实,即便你只精通一门编程语言,也要进行各种语言的了解,不能因为自己不从事相关的工作,就不进行了解学习,干坐井底之蛙.

例如Swift 和Java的区别和新特性,即便市面上普遍都是OC,但你至少要做到,和别人提及Swift语言,熟悉不陌生.

不同的语言虽然语法不同,但是其逻辑思想是通用的,也就是说,学会一门语言,再学习另一门语言就比较容易.从而快速提升自己.

关键词:编程范式,反射、注解、泛型


APP开发工具系列

  • 编译工具
  • 编译调试
  • 版本管理

产品设计

  • 生命周期
  • UI设计
  • 存储和网络

常用模块

常用模块则是平常在快速搭建和开发App当中,会调用一些自己或别人历史的积累和经验总结而成的第三方库或者工具库.

关键词:图片库,网络库,启动引导模块,登录注册模块,运营统计模块, 编译打包,版本适配.

组件化、模块化、插件化

模块:强调职责,可实现的单元,其核心是内聚和分离

组件:也称构件,强调复用.其依赖性比较高.

可以百度进行学习iOS开发 组件化,iOS开发 模块化.

插件化则是另一种实现方式,其三种方式目的均是为了实现重用和解耦,而插件化则是更注重增量满足其目的.

设计模式、接口设计、架构模式

设计模式是指,在实现业务逻辑时,代码逻辑的目标和实现模式,例如:MVP,MVVM,MVC等.

接口设计的概念却是主要体现在封装的概念上,一个强大的库,其封装的接口越灵活,越成熟.

架构模式本人尚未参透,理解当中,还希望各位移步百度进行学习.

这三点,可谓是架构的重中之重,一个项目代码是否高效,是否成熟,都和这三个有着密不可分的关系.

推荐书籍:

设计模式精解-GOF23种设计模式机械
设计模式:可复用面向对象软件的基础
大话设计模式

重构

重构分为两种:代码重构和架构重构,大家可以参考重构:改善既有代码的设计进行学习.


代码质量、性能优化、安全逆向

目前个人还在学习当中,就不在此为各位同行们班门弄斧,推荐作者书中推荐的一些好的书籍给大家进行学习.

推荐书籍:

iOS测试指南
大话App测试2.0
FaceBook iOS启动时优化
25 iOS App Performance Tips & Tricks.
逆向工程核心原理
iOS应用安全工方实战
iOS应用逆向工程
iOS安全攻防(二十三):Objective-C代码混淆
iOS签名原理

iOS架构说

既然说到iOS开发架构,不得不再次提及Casa大的文章iOS架构谈.

这篇文章属实说,对我个人收益很大,他让我养成了良好的代码习惯,和架构目录,在不同阶段看都能在该文章学到不一样的知识.

iOS架构,说远不远,有些iOS开发工程师,包括外包,产品,可能每天的任务都是一样,经理提出需求->完成需求.但小型公司,要求不严,需要极速开发App的那种甚至根本不会注重什么开发细节.

即便你学习iOS架构,也在当前的工作没有用武之地,也正如大家经常说的"学他干嘛,工作中又用不到".

架构是一个成熟的概念,是每一个开发工程师都可以进行学习,提升自己的一条路径,我不知道怎么说,怎么形容,会让那些觉得无所谓的同僚们进行学习.

我之前并没有怎么写过文章,总觉得怎么写都不能同时兼顾努力学习的程序员和程序员劝退师,总觉得和那些人格格不入,又无法改变他们的观点,索性,还是尽自己努力,帮一些努力学习的程序员,共同进步吧.


大、中、小型公司的区别

你会发现,随着你就业的公司规模变化,你进入的公司越大越知名,其公司内部的规范,要求,架构都会越来越成熟,逻辑性更明确,业务逻辑针对性更强.

其开发周期固定,效率和业务产出也都各不相同,但自己是否能够真正适应其本身的工作强度,值得令人深思.

大公司的开发模式,和其内部的代码文化都是能够让程序员快速成长不可或缺的一部分.

就比如说我,让我现在进入一家大公司就业,我可能完全是个小白,什么是工程化,什么是加密,分布式存储又是什么,异步处理高并发等等.

大型公司的架构模式,组件化,模块化,团队开发模式,迭代策略,一直都是我想学习的东西,所以我要努力学习,尽量让自己配的上可以在大公司工作的机会.

如果自己不努力,即便这个机会摆在你的面前,恰巧你又面试进了大公司,你都会因为实力不足失去这份工作.

不要安于现状,根本不会有上面的恰巧,每一个面试进BAT大公司的人都不是碰巧面试进去,而是精心准备的必然结果.

有机会,我一定要去大公司工作进行学习.


架构师思想

加入过一些群,交流过想法,很多人都调侃自己是码农,另一个便是架构师的角色,我个人觉得从码农转变为架构师,就是从用语言到理解语言、拓展语言的一个思想转变.

如果你只是单纯的使用语言完成业务需求,只思考自己的业务栈,那便是码农.但如果你去思考,怎么用,为什么用,怎么组合更好,那便是架构师思想了.以整个项目的开发观念去看待自己个人的业务逻辑如何实现,怎么实现更高效,那么你就正在向架构师转变.

很多人都说过我,想的真多,你这都是虚的.你终究是码农.我不予评论,我心里只想默默努力,提升自己的水平,完成自己的转换过程.

你是否有想过,你到底是在开发一款应用,还是在像一名流水线员工搬运代码,完成绩效?


总结

本文是读APP架构师一书有感而发,其本意希望各位同行的iOS开发工程师,一起学习共同进步.如果有什么错误,还请及时指出,我会及时修改.谢谢

结束语

如果您对这篇文章有什么意见或者建议,请评论与我讨论. 如果您觉得还不错的话~可以点个喜欢鼓励我哦. 如果您想和我一起学习,请毫不吝啬的私信我吧~ 介个是我的个人博客,欢迎参观哦~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏令仔很忙

机房收费系统(VB.NET)个人版总结

重构版个人机房收费系统大概从暑假开学开始进行,花了不到一个半月的时间才完成,下面对我在重构过程中的一写理解。

13110
来自专栏逻辑熊猫带你玩Python

致读者Andy:关于初学者学习Python需要注意的问题!

最近有位微信昵称为Andy的读者在后台留言,问我关于新手学习Python的问题。他的问题是关于以下三点,相信很多读者都有相同的问题。

12210
来自专栏无原型不设计

优质产品需求文档(PRD)写作三大原则

在上一篇文章中有介绍,产品经理的两项主要职责包括:对产品机会进行评估,以及对开发的产品进行评估。而定义即将开发上线的产品,则需要借助产品需求文档,来进行产品的...

68950
来自专栏CSDN技术头条

如何支撑DevOps微服务

本文作者Kevin Dunne是QASymphony公司战略和业务开发的副总裁,曾在Deloitte负责管理大型政府和五百强在定制软件开发方面的测试工作。本文中...

217100
来自专栏VRPinea

应用光场技术厂商Lytro收购Limitless团队,希望在游戏引擎中应用光场

35660
来自专栏敏捷开发&项目管理

章节 1.3 极限编程 – 灵活,可靠的软件 使用设计模式和敏捷开发

首先一个敏捷方法是极限编程,或者简写为XP。在千禧年之初得到了很多的关注。XP倡导的许多核心方法在本书中都有所展示且是很好的敏捷方法的代表。 1.3.1质量和范...

37780
来自专栏速成应用小程序开发平台

实体商家缺少技术不懂编程自己能做微信小程序吗?

小程序的诞生给创业者带来了太多的创业机会,对于创业者来说如何拿下这个大市场。最好的选择就是做小程序服务商,这也是目前小程序最为盈利的模式之一。目前来说小程序已经...

47330
来自专栏资深Tester

如何去面试软件测试工程师

56240
来自专栏斑斓

【敏捷实践】推行TDD的思考

目前来看,推行TDD的障碍大约有如下几点: 开发人员的质量意识; 分析需求并进行任务分解的能力; 将测试作为开发起点的开发习惯; 开发人员的重构能力,包括如何识...

32660
来自专栏IT大咖说

华为敏捷/DevOps实践:别再用Excel管理项目

内容来源:华为云 DevCloud 首席布道师 & 资深产品经理刘恒的技术干货分享。IT 大咖说(微信id:itdakashuo)经华为云和讲者授权发布,转载请...

42330

扫码关注云+社区

领取腾讯云代金券