细讲oauth2.0

在发展快速的互联网下,我们大部分应用都希望快速获取用户,但在应用初期,我们的用户都希望很方便的使用应用提供的服务,在大部分应用都有自己的会员体系,导致用户需要填写比较多的信息,这时候一般用户可能不太愿意提供这些信息,但有想使用当前的应用,在这个情况下,应用为了方便用户的使用自己的应用就开始接入各种第三方平台(微信,微博,QQ,支付宝,其他等等),在第三方平台获取用户信息。

中间有这样的问题,如果我想拿到第三方网站上的用户信息,就需要用户填写第三方的账号和密码,但出于用户不了解当前应用所有用户是不会再本应用输入第三方平台的账号密码的。

再这样的需求中,就诞生了oauth2.0,他为我们解决这个获取用户信息并且,应用要拿到用户的信息必须要用户同意才能通过第三方平台获取到用户信息,也可以理解为资源(图片,语音,视频,文件,等等信息)。

在oauth2.0中有三个角色,用户,资源,应用,

用户就是要是登录到应用的用户

资源就是用户在第三方平台保留的资源,例如(QQ,微信,微博,支付宝)

应用就是,企业或者个人要开放的应用

在个过程中如果应用想要获取用户就要到第三方平台中申请一下APPID和APPKEY

有了这些东西以后,我们就可以进行应用开放接入了

我们通过第三方平台给的API接口就可以获得第三方平台发布的code,接下来我们就可以获取第三方平台颁发的Access_Token ,这个令牌,是我们接下来要获取用户在第三方平台存放的资源钥匙,接下来我们就可以获取到用户存在第三方平台的资源了,API可以查看具体的第三方平台接口,在带上前面获取的Access_Token,最终就会获取到第三方返回的用户数据,需要说明的是在获取code的前提是,应用回通过APPId加上回调地址,访问第三方服务提供的登录界面,上面会显示本次用户要授权那些信息给当前应用,如果用户同意授予,并且登录成功,第三方平台才会返回code,到回调地址上面,在回调地址接受到code在请求API,拿到Access_Token 。

 

 

关于团队开发利用git的webhook,部署项目

最近刚刚入职一家初创企业,由于项目特殊项目开发比较急,多人开发导致每天都会出现多人文件丢失和错误的问题。

我们先聊一下webhook是什么东西又能帮我们解决什么问题,在多人开发的过程中我们可能职责明确,有前端和后端开发人员,前端人就是我们看到的图片动画之内的东西,后端就是我们通过我们输入的信息给我们回应的内容,就是在我们的开发过程中,我们后台渲染一个视图模板,前端根据PS图片实现效果,我们的交接点就是我们后台会给前端一些数据,如果一个人开发就没问题,反正都是自己写,怎么方便怎么来,但是我们是团队开发,可能同时有多人进行开发,开发的过程就会产生,同一个文件多人开发编辑并且提交到我们的服务器,就会有有重复代码,或者删除或修改对方的代码,这样我们的git就诞生的,为我们解决多人同时开发的过程与到的问题,在我们开发能内网测的项目git,使用起来也不错误,可是问题有又来了,我们开发的项目依赖第三方平台,而且我们又是多人开发,这样我们原来只用git解决的问题,开始满足不了团队开发项目了,这时候我们就考虑利用webhook实现自动部署代码,

看名字就能大概猜到web就是网页的意思hook翻译就是钩子的意思,如果一起读就是web的钩子,我们知道由来了,我们在来看看我们要怎么实现这样的设计,首先我们在内网搭建一个git服务器,让内网的开发人员内提交代码,这时候他只有提交,但是我们外网的怎么访问呢?让人通过FTP在上传吗?,这样的效率太低了,也不可行呀,那还不如用FTP上传算了,这时候我们的webhook开始出场了,webhook有多个触发的动作,就是我们每次提交代码在GIT服务器,会经过四步,

第一步 git add -A

第二步 git commit -m ‘本次提交的说明’

第三步git pull origin master 拉取远程代码(就是git服务器上的代码)

第四步git push origin master 提交代码到git服务器

通过这几步我们发现等于如果我们开发人员修改代码提交到git服务器的时候,我们就需要外网的服务器也马上同步最新的代码,所以我们在git项目中添加一个webhook动作就是git push origin master的时候,我们告诉线上服务器马上更新我们最新提交的代码,这个时候我们的本地开发就和外网的服务同步了,我们就可以实时的查看我们修改的的效果了,这个过程因为我们外网的是内测地址是没有问题,如果是线上的正式项目不能这样干的(^~^)我们这里的测试服务器也在内网上面,所以其实我们是同步了内网的测试项目,正式项目我们是通过分支来解决的,在内网的测试地址完全测试没有问题我们才会合并到我们的线上项目,在合并的过程中,我才开始正式的同步线上代码,这个过程看似复杂,但是在这样多人开发,是比较适合的。

在linux下工作的经验

做为一名一线码农,每天的开发工作挺多了,但是有些事情在window下面不好,二者是卡吗、从去年的3月份开始就侧切抛弃了window,换回linux,在工作中与道的问题,简单列列

第一个问题是如何安装软件呢

我们的linux 有多个 通常是 yum install 软件名称 或者 apt-get install 软件名称 这是两不同系统版本的命令,建议自己去细看看,这里不多说

我们安装了居多会想到如果我要卸载怎么办

apt-get remove 软件名称

yum remote 软件名称

看了上面两好简单呀

我们接下来可以面对问题就是权限问题了

在window下基本不用考虑权限问题在linux下面我们必须了解权限问题,不理解权限我们没法进入开发,最开始我们一般都是用超级管理员root这个权限,后面发现问题太多了,有写软件的是不能给超级权限的,所以导致系统无法启动

聊聊传统企业和互联网企业思维

在高速发展的互联网,传统的设计居多满足不了互联网企业的需求,传统的企业转型到互联网,一般很少有人了解,一个产品的开发和设计全局的分配,居多是这样的步骤

发布招聘(传统企业)

  1.    例如(boss直娉…..)寻找所谓的大神
  2.    找个年龄比较大点的,听说工作了n年的 (传统企业是要的是年龄自认为就是大神了)
  3.    听说当过什么职位的工作,做个什么大型项目,管理过什么人 …..
  4.    在面试方面和聊天方面感觉不错,靠谱
  5.    一般马上就会承诺你福利待遇,希望留住这个所谓的(人才)
  6.    发现传统企业不会调查这个管理是否正的有能力(基本靠吹牛就行  (~-~) ,所以基本是想当管理靠吹牛就行,能力吗,发现了就换一家 ,O(∩_∩)O~  )
  7.    在传统企业,一般是会大量招聘人才,进入开发,开发的需求都是口头的,基本没有纸质和具体的原型图,他们认为开发就是找到开发人员开发就好,开发功能就好,他们可能认为是传统企业一样,不行就加班解决,根本不会考虑项目上线后,问题,和版本跌打的问题,他们的沟通方式就好比(外包企业,有问题调整一下,后面的问题后面再说,可能有问题就是下一家外包企业了(~-~) ),他们可能会推荐直接在线上调试项目,他们认为这样开发才有效率( 在个问题上,你想想如果你是用户,你突然报错了,你会怎么理解这个家企业的,居多会猜疑这家企业有问题了,当真实的是,页面小的调整)

发布招聘(互联网企业)

  1. 大量发布招聘各个职位需求
  2. 在公司没有技术管理人员之前,一般居多是挖现成的人才过来,不需要道网络上招人
  3. 在管理人上任以后,初步搭建公司的研发团队的架构,人员分配,职位的需求,职位考核。
  4. 在新人员入职必须,经过公司的研发团队,考核,考核标准是(福利==能力+培养值)
  5. 在这里方面必须招聘方面必须了解,招人必须要培养的,按照公司的技术标准来调整新成员到达公司标准,才能正式的进入项目开发,
  6. 因为担任过整体项目的管理人员比较清楚,分配任务和,了解整个开发的细节,一般都是不推荐马上上班,马上进入项目开发的,管理层,会按时按量分配道每个开发人员身上,让每个人有明确的开发需求,一一进行开发,直到项目开发完成,进入内测阶段
  7. 在具体开发过程中,推荐用比较流行的项目管理方法持续执行,例如(项目原型图)
  8. 在项目迭代和人员离职,公司的项目不会出现问题,因为在上面我们都有具体的东西,下一个人看看就能明白和理解,所以项目才能持续的迭代开发,公司的发展也会持续的上升

 

没事写一下对目前互联网的看法

就在2017-10-14,阿里有新的动作,听说牛逼,但是没什么时间,就听了直播一段,做为开发的我,突然感觉在大数据下面,慢慢的变的知识越来越多,当然有些知识是要付费的,有些不用付费或者说是被人分享出来了,在未来我们的学习可以更加方便了,在我听直播的一段中讲到词叫(决策),让机器自己帮人来决策,听起来有点不可能,但是通过大数据下面的GPU的出来能力,和这么多的数据下面决策突然感觉是有可能的,所到这来,之前看过一篇文章是说神经网络,那个作者用普通人的思维解释了神经网络,这来也来简单说一下吧。

我们人一般处理时间有几个问题要处理

比如我们去看电影

1,是否喜欢,2,是否有时间,3,电影票费用是否能接受

如果是一个演员的粉丝或者是说非常喜欢这来的一个演员或导演的,这个用户我们可以判断是喜欢的,

如果是周六刚好自己又不用上班,也约了朋友出去玩是否可以选择去看电影呢?

如果刚好价格不贵,35.00元一张,自己的能接受,

在这个情况 下我们机器可以判断用户可以去看电影

但是有些情况不是上述那么好,机器怎么处理呢

我们都学过数学,有还有就是一个权重 ,我们可以通过权重来判断其中有条件不成立我们是否帮这个用户处理是否去看电影呢?

其实在这里我们大家想想你的生活或者工作是否有很多这样的决定呢? 机器都能好的帮你处理,说到处理,我们电脑基本都是cpu,cpu处理我们一般的工作是可以,但是处理海量数据是不行的,说到数据又是怎么来的呢?

数据我们是通过我们生活的各种支付,各种消费,和人脉圈得来的,我们现在身边智能的东西太多了,就是各种智能的东西,才能到未来我们可以让机器帮我来做决策,

说到这来有人会想我们的数据都到网络上了安全吗?

当数据到一定的程度,国家的安全方面也会加强,

到这里会有新的职位,和新的需求,就好比以前的淘宝,微信,有些人看到了商业,有些人依然在自己的岗位上奋斗,结果是有区别的,说到工作,未来很多工作会被代替,

比如:医生

为什么我这里讲医生呢,我们试想一下,我们目前的医生,每次去医院看病,挂号,验血,验尿,等等。。相信这些都是固定的,只是人不一样而已,如果机器帮你验血,验尿,而且给出你的配方,你按照配方去领药就可以了,你说要想如今的医院一样天天排队去看病,而且碰到心情不好的医生,或者是医生就不在你的病又不能等,这些都是悲剧的发生,如果我们有仪器,像手机一样,扫描都可以做,自动的给出配方,给出解决方法,你还会到医院看病吗。

以上是个人看法,也是个人目前的理解,如果你不赞同,我们只是想法不一样而我,不做任何法律或依据

今天开通了博客

受到大神的启发,开始搭建个人的博客,关于为什么会用博客系统,偷懒一下,做为开发的自己不太善于美工方面,就用默认模板好了,如果有好的模板可以推荐一下,