欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

编程思想的整理

程序员文章站 2024-02-04 08:35:16
...
   最近看了一篇大牛写的招聘记录及相关感受,里面说到招聘的一些要求,其中提到了编程思想。之前我一直注重撸码,却忽略了撸码过程中的学习。虽然说工作中不会过多的用到相关理论,但个人觉得招聘往后还是会越来越注重理论与实践的结合。言归正传,下面说下我整理的编程思想:

链式编程思想

 链式编程其实就是通过点语法将多个操作连接成一句代码实现,提高代码的可读性。代表:Masonry框架
 例如:
 [self.coinView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(self.view).offset(60);
        make.left.mas_equalTo(self.view).offset(20);
        make.right.mas_equalTo(self.view).offset(20);
        make.bottom.mas_equalTo(self.view);
    }];

注意:block 中必须有一个返回值;

  • 实现原理:通过block返回对象本身,并更新属性的值,具体方法实现在内部。
  • 链式编程的特点:
    • 可读性强;
    • 编程性强;
    • 代码简洁;
    • 要求编程人员对业务能力强;
    • 不利于代码调试

函数式编程思想

  函数式编程是将操作写成方法,通过block实现的。跟链式编程的区别在于,链式编程是对属性block的操作,函数式编程是对以block或函数作为参数,并返回对象的一系列函数的操作。代表:AFNetworking
例如:
 BOOL isEqual = [[calcul calculate:^int(int result) {
        
        result += 5;
        result *= 5;
        return result;
        
    }] equal:^BOOL(int result) {
        
        return result == 25;
        
    }];
  • 实现原理:通过block实现,跟链式差不多,链式是在内部实现,函数式是在外部实现。
  • 函数式编程特点:
    • 必须有返回值(本身对象),把函数或者Block当做参数,block参数(需要操作的值)block返回值(操作结果)

响应式编程思想

响应式编程是一种基于异步数据流概念的编程范式。无需考虑调用顺序,只需要知道考虑结果,一个事件完成,会影响其他很多事件。代表:KVO。
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(bannerDidClick:) name:EBBannerViewDidClickNotification object:nil];
 
 -(void)bannerDidClick:(NSNotification*)noti{
    //... = noti.object
    //提示音播放停止
    [_audioPlayer stop];
}
  • 响应式编程特点
    • 无调用顺序,一件事件完成,影响其他很多事件。
相关标签: 编程思想