2015/8/14 克罗地亚第二狂想曲
1.
面向对象分析设计思想,封装,继承,多态把程序耦合度降低。
易于维护,灵活性高,易扩展,可复用。
1.8业务的封装,将业务逻辑与界面逻辑分开,使之间的耦合度下降。从而达到易维护或扩展。
为了提高可维护性,我们可以将代码进行模块化(利用CommonJS之类的方法),或者采用各种各样其他的解耦方法。
AngularJs 实现请求失败404跳转会登录也拦截器,只需在Service中定义拦截器,然后注入进$httpProvider即可,
为何要用拦截器?
任何时候,如果我们想要为请求添加全局功能,例如身份认证、错误处理等,在请求发送给服务器之前或服务器返回时对其进行拦截,是比较好的实现手段。
angularJs通过拦截器提供了一个从全局层面进行处理的途径.
拦截器的核心是服务工厂,通过向$httpprovider.interceptors数组中添加服务工厂。在$httpProvider中进行注册。
angularJs提供四种拦截器,其中两种成功拦截器(request、response),两种失败拦截器(requestError、responseError)。
通过两个步骤来使用拦截器
在.factory()方法中创建拦截器,然后使用$httpProvider在.config()中注册拦截器:
angular.module("myApp",[])
.factory("myInterceptor",function($q){
var interceptor={};
return interceptor;
})//第一步
angular.module("myApp",[])
.config(function($httpProvider){
$httpProvider.interceptors.push("myInterceptor");
});//第二步
在用户登录的时候,会从后台拿到一个sessionToken,sessionToken在服务端标识了每个用户,并
且会包含在发送服务端的每个请求中。
下面sessionInjector为每个捕获的请求添加了x-session-token头
update tablename set fdname = 0 where fdname is null
模块
每一个独立子模块使用唯一的命名约定。
模块定义
保持Controller的专一性
一个view定义一个controller,尽量不要在其它view中使用这个controller。把可重用的逻辑放到factory中,保证controller只服务于当前视图。
不同的view用同一个controller是非常不科学的,良好的端对端测试覆盖率对于保证大型应用稳定性是必需的。
cordova build --release android
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore android-release-unsigned.apk alias_name
zipalign -v 4 android-release-unsigned.apk 北斗360-alpha.apk