给产品经理讲技术丨3个软件开发中不好理解的名词
【文章摘要】每天写这个公众号,其实也在做产品。
【相关推荐】
给产品经理讲技术丨乱码导致的悲剧告白
给产品经理讲技术丨把URL五马分尸
给产品经理讲技术丨没线,并不可怕?
给产品经理讲技术丨提需求的正确姿势是什么
给产品经理讲技术丨产品后悔药来了,讲讲热补丁技术
今天的题目来源于后台留言,人家是十分重视用户反馈的,今天讲讲这几个大家提问的几个不好理解的词。
SDK
SDK是SoftWare Development Kit的简称,中文叫做「软件开发工具包」,SDK是一整套工具的集合,这套工具是基于当前系统或者平台的开发工具。鲁班离不开刨子、锤子、斧子等工具来做一套家具。程序员也离不开SDK来开发应用程序。如下图,这就是「SDK」。
例如:在Android平台上开发Android App,我们必须从官网下载Android SDK,然后利用这套SDK提供的API来调用系统能力,比如我通过Android SDK来调用系统屏幕一直「常亮」的功能,如果没有这个工具箱提供的这个工具,那巧妇难为无米之炊,程序猿可能会大叫一声「臣妾做不到啊」。
再例如:在产品合作当中,常常会面临这样的场景,我们团队不擅长做视频,但项目中又必须加入视频播放场景,另一个团队却是视频领域积累多年的专业团队,这个时候,合作基本都会基于SDK级别,也就是视频专业团队要为我们做好一个视频SDK,我们基于这个SDK,只要调用其SDK封装的极其简单的「播放」「暂停」接口,我们团队就可以完成视频播放这样复杂的需求场景。注意哦,这种是基于SDK的合作,也就是对方提供给我一个能力和工具集合,我只负责调用,而不用关心其具体实现。
再再例如:工作中,利用已有能力,不去重复创建轮子,是一种捷径,这种「轮子」绝大多数都封装成了SDK,希望工作中你要多积累一些已有能力,并尽量利用。
API
API是Application Programming Interface的简写,中文称为「应用程序编程接口」,简单理解一个API就是一个函数,这个函数提供了某一样特殊的能力,比如一个API是用来吐出某一个地理坐标下天气的能力,这就是一个API,API也常被成为API函数。API通常暴露了一个系统的某一项能力。
在应用开发中,系统暴露的能力是以SDK的形式发行交给开发者的,所以SDK中一般封装了很多API,这些API就对应着系统或平台的能力。
API又分为「公有API」和「私有API」,公有API是系统以SDK形式暴露出来,对所有开发者可见。私有API一般是系统内部使用或者仅限于系统自带的一些应用程序使用,不允许应用程序开发者使用的,这种一般对应于一些敏感的能力,比如认为此API可能被滥用,造成下降或此API对其他应用程序可能是危险的,前些天不就有些厂商的App利用了苹果公司的私有API被下架了嘛~
公有API随便用,都是系统授权的。私有API谨慎使用,系统未来可能会不再支持或触犯厂商规则。
架构
架构指一个软件系统的结构。一个软件系统或者系统中的某一个模块,都会涉及到架构,架构清晰表示软件结构良好,如果你去过国企的那种大厂房,吊车在什么位置,流水线在什么位置,工人的工作台在什么位置,成品下线后,怎么走入到包装环节,这其实就是一种架构设计。
架构就是考虑了一个软件系统的所有设计要素后,梳理清楚模块划分,以及模块之间的关系,所形成的类似刚才「厂房」的一种结构设计,在「厂房」的例子中,是如何布局所有的工具和人员,在软件中是如何布局好各个模块的作用和相互关系。
面向对象的程序设计,是设计一个好的架构的一种好的思维抽象方法和程序设计方法,它的目的是为了一个好的架构服务,再谈到架构,你就把架构想象成一个大厂房,程序员要在这个厂房里面把所有的部件都摆放好,这么理解应该是可以的。
以后再跟大家谈谈「控件」「组件」「框架」的一层层的升级,都分别指什么,相信还有一些同学不清楚。
欢迎添加微信公众号:给讲技术