2014年的7月,大学毕业,2017年的7月,工作3年,是该记录下,想想过去、现在、将来。对于以前做过的事,一一梳理下来,对自己也算有个交代

由于记忆力不错,所以从刚开始工作到现在,做的每个工作,还都可以清晰的梳理下来,由于牵扯到商业信息,当然还是代号表示为好,
我自己看时肯定是明白的很,旁人看了,就权当了解下吧,哈哈。

2014

年初

年初几个月即2-4月份,我做数据采集,主要是根据网页源码结构写正则表达式,从而进行匹配抓取。使用的工具是火车头,看似乏味的这几个月,其实带来了几点收获

阅读全文 »

倘若存在移动网页,然后需要APP,但是只是作为一种存在介质的话,cordova来将其封装打包,最为合适,但是当真正去做还是会有坑。
将其封装为APP,主要使用到了这个插件cordova-plugin-inappbrowser

坑1-文件下载

在实际APP中,点击下载,发现没反应,几次都不行,推断有问题,在GitHub插件pr中检索download,果然,发现有相关问题,如下图,仔细看了下,得到以下两点信息

  • 首先这个下载问题,的确是这个插件的事,本质原因是安卓手机下载,就意味着文件要存储在手机上,而这是需要授权的,所以插件必须要声明文件存储权限,然后看了下插件的源码,果然,根本没有存储权限
  • 是pr,说明已经解决,并且提交,申请合并主干了,但是由于pr是打开状态,说明还没合并主干,那么通过npm,cordova安装的都不行了,因为官方版本不行,所以只能根据提交记录找到提交记录作者的fork状态下的插件即可,然后下载下来丢到项目中对应插件下,重新添加平台,构建打包,发现,果然解决啦。

解决问题的插件分支,点击下载

阅读全文 »

redis官方提供的方式是源码安装,官方已经提供了安装教程,若习惯原版,点击这里,我这里更多是翻译和补充下。
顺便再回顾下常用命令

安装

官方提供的是源码

1
2
3
4
5
6
$ wget http://download.redis.io/redis-stable.tar.gz
# 解压,释放源代码文件
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
# 编译
$ make

进入src目录下,会看到这些可执行的脚本

阅读全文 »

Git Submodule允许你将一个Git仓库作为另一个Git仓库的子目录。 它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。
最近在实际项目开发中,用到了,也遇到一些细节问题,所以将Git子模块常用操作总结如下,以备不时之需。

添加子模块

1
2
3
4
5
6
# 添加子模块
$ git submodule add https://github.com/alanhg/Angular-group.git

# 设定映射路径lib
$ git submodule add https://github.com/alanhg/Angular-group.git lib

关于具体使用设定下,执行help命令

阅读全文 »

背景

最近在开发一款APP-CodeTracker,其实就是使用WakaTime-API拿到一些数据进行APP展示,而获取这些数据有两种办法,第一种是本身WakaTime账号给与的API-KEY,另一种方式是oauth2授权,用户通过登录账户授权给该APP,进而拿到授权后的令牌,获取相关信息。
本身输入API-KEY是最简单的方式,但是在实际使用中,因为APIKEY是很长且无需的字符串,用户并不可能记住,所以必须实现授权登录,查阅资料最终实现了这个功能,效果如下

实现方法

主要代码

阅读全文 »

使用场景

耗费一年心血的项目上线已经有了一段时间,觉得可以喘口气了,这个时候领导下达命令,需要开发B项目了,但是B项目有这样一个特征,就是跟A特别像,这个像是从功能、展现形式等等都很像,领导希望能够快速开发出来,基于此,我就需要考虑如何能够解决这个架子改造及实现最大程度的code复用问题。
我参与的项目整体技术架子如下:
Angular(frontend)-----------------node-express(backend)
当时咨询了很多的人,自己也想过,因为公司项目本身是在gitlab上管理的,所以随之有以下三个方案:

  1. 一个仓库下,直接各个项目的都存在,仅仅是文件夹层面的区分,通过参数来控制
  2. 分支化处理,比如branch-project-a,branch-project-b
  3. git-submodule

方案对比

对比这三个方案,分析:
方案1肯定是直接否掉,因为这样子维护性就低的要死,仅仅是dev短期方便,但是人工造成错误的可能性及维护性都低,方案2,可以,但是这样就意味着多个项目是在一个仓库下进行dev和管理,那么换句话说这个developer的人就具有轻易的动多个项目的可能性,我认为这样子是很可怕的,另外,项目A与项目B的差异性开发就会导致未来分支数目众多,维护合并都不够清晰,简单,毕竟本来就不是一个项目,只是相似,仅此而已,so我认为方案2也应该杀掉。
方案3,git子模块方案相当于将部分code抽离成独立的一个仓库,然后利用git的子模块机制进行映射引入,然后本身子模块也是个仓库就可以独立开发维护,项目中引入后,只管像用第三方包的方式一样去使用即可。
思来想去,我认为方案最终要体现两点:项目A与项目B是两个相同,就决定了必须是独立的存在;项目A与项目B有相同点,决定了有一定的复用,所以基于此,确定选方案3

阅读全文 »

Travis CI is a hosted, distributed[2] continuous integration service used to build and test software projects hosted at GitHub.

背景

在github上部署了个人blog,为了便于在不同工作台上进行blog,所以将blog平台源码作为blog仓库分支也托管上,目前仓库下有master(静态页),source(源码)。

CI化之前

每次增加新blog后,需要依次执行以下动作

阅读全文 »

最近客户提出一个要求,就是虽然我们已经有了移动网页版站点,但是让客户记住网址,输入网址这个是很辛苦的,那么就需要有APP,但是单纯开发APP的成本还是不少,那么如何最大限度的复用既有的东西呢,比如移动网页版,这个时候就催生这么一种解决方案,利用Cordova这种混合开发工具将移动站点打包为APP,那么APP这种存在就有了,对于特定客户,其实APP跟网页唯一的区别只是存在形式的不同,并不需要有什么差异性的功能,那么这种情境下,将M站点进行打包APP就再合适不过了。

可行性

能打包吗?

答案:OK,说白了就是利用系统浏览器打开网页,cordova有浏览器插件,所以肯定可以。

能上架吗?

阅读全文 »

Cordova是什么

Cordova详细介绍及前世今生,建议看维基百科和官网,点击这里

我这里只做一个简短的介绍,Cordova是一个移动应用开发框架,Cordova使得开发者可以用CSS3HTML5Javascript来开发应用,它拓展了Html和Js在设备上的功能,这样的应用就是hybrid,它既不是真的原生应用(因为所有的布局渲染不是通过平台原生UI框架,而是Web Views),也不是简单的web-app(它们被打包成APP,且具备访问原生设备API的能力)。

结构图

阅读全文 »

英文原文
对于Angular的下一个版本的过多信息,我们并不知情,但我们现在知道它会在10月份正式发布。


官方计划点击这里

1
ng5将会是更好的ng,你将能够使用起来更轻松

ng4带来的其中一个变化是,在AOT编译模式下,体积更小,速度更快,他们的目标是减小组件生成的代码体积达60%。
ng5将会更好,Minar保证,ng5将会比ng4更小更快,ng4到ng5的更新将会很流畅,并且编译也会更为简单。因为JIT与AOT的编译区别是令人懊恼的。后者将会成为缺省项,从而减少冲突。

Long-Term Support(LTS)支持

阅读全文 »
0%