刘帅的博客

刘帅的博客

未有潮生,亦无潮落

C#扩展方法
背景最近查看QFramework源代码时,对一块的语法很疑惑,明明一个类没有被引用,为何此类的方法被调用了呢。细查之下,原来是C#的扩展语法的概念。 扩展方法扩展方法是向现有的类型中添加方法,而不用创建新的派生类型。 案例一:向string类中添加新的方法,用于为字符串添加前缀 123456789101112131415161718192021222324public static class stringExtension { public static string AddPrefix(this string str) { ...
Unity2019-适配iOS
背景由于2019起,Unity的Xcode工程,更改了项目结构。 Unity 2018的结构: 可以看Targets只有一个Unity-iPhone,Unity-iPhone直接依赖管理三方库。 Unity2019以后: Targets多了一个UnityFramework,UnityFramework管理三方库,Unity-iPhone依赖于UnityFramwork。 所以升级后,会有若干的问题,以下是对问题的解决方式。 问题一错误描述1error: exportArchive: Missing signing identifier at "/var/folders/fr...
C# 协变和逆变
协变和逆变概念协变:使用比原始指定的派生类型的派生程度更大(更具体的)的类型 逆变:使用比原始指定的派生类型的派生程度更小(不太具体的)的类型 协变和逆变能够实现数组类型、委托类型和泛型类型参数的隐式引用转换 协变假如定义个基类Base,子类:Derived 协变会保留分配兼容性。相当于Base = Derived。 对比上边的概念:使用比原始指定的派生类型(Base)的派生程度更大的类型(Derived) 如: 12IEnumerable<string> strings = new List<string>();IEnumerable<obj...
《别找替罪羊》读后感
读完这本书后,我一直在想,何为盒子?是思维的局限?还是盒子里只有自身利益? 盒子蒙蔽了我们的双眼,让我们只看到了自己,为自己找到了各种借口,认为一切的失败来源于外部的人或物。我也是深陷此中。 记得,上篇文章我说过有些项目组难以沟通,存在工作时差等,现在想来自己当时是否处于盒子中呢?答案是显然的,自身已经处于盒子中,由于存在历史偏见,导致无法同等的看待他们,沟通中经常过度保护自身。如果当时可以跳出盒子,把主目标放在“让项目组尽快上线”上,而不是纠结于是谁的问题上,是否会有不一样的结果? 跳出盒子正式看待这些事时,也可以发现,固然接入中存在很多问题,但是也不可否认的是,他们也是帮我们发现很多...
论技术支持
背景本周发生了一起特有意思的事,让我对技术支持有了新的体会,也让我看到了自己内心的不够强大,也针对此事做下回顾总结。 事件大概是新项目组第一次发包,然后我们提供的SDK供他们接入。实际接入中发现没有按照文档接入,因而存在较多的问题,而项目组上线比较急,所以我们为了保障他们及时上线,就帮助他们解决各种由于“不按照文档接入方式”产生的问题。更有意思的是,凌晨1点时,提出让我们去公司给他们做新需求接口。 此事让我回想起这个项目组的上个项目,发现当时也是我们帮他们接入的,而这些工作如后台配置等,从职责上来说,是需要项目组自己配置的。 但是奇怪的是我们发现其他项目组均没有此现象。 然后,我就想那当...
凤凰项目——一个IT运维项目的传奇故事 读感
最近读了《凤凰项目》感触很多,花了三天就读完了,由于我的工作日常中也是存在很多技术支持,书中的早期案例很多好像是按照我的遭遇写的,感触颇多。 计划外工作 书中讲到,计划外工作占据了IT的绝多数时间,导致业务往往产生了较多的堆积,最终半成品较多,导致什么事情都没有做好。 我们作为SDK研发,面对公司的项目组也有同样的问题。接入SDK中,往往会抛出各种问题来,这时我们就需要抛开自己的研发任务,全力去支持项目组。这些频繁的计划外工作,往往会导致我们研发的进度延期。 针对此情况,考虑建立完善FAQ相关文档,创建标准化排错流程。当标准流程化创建完成后,是否意味着不需要研发来进行协助项目组?根据目前...
Word Press接入钉钉扫码登录
前言本文介绍下,如何通过Wechat Social模块接入钉钉登录系统,并禁掉登录界面的注册功能。 wordpress版本:5.9.3 流程钉钉账号申请 进入钉钉开发者后台 开发者后台统一登录 - 钉钉统一身份认证 选择回到旧版本 由于新版本的界面下,“应用开发”模块下,只有“企业内部开发”、“第三方企业应用”、“第三方个人应用”,没有“移动接入应用”模块, 返回旧版本后,点击应用开发模块 点击登录,点击“创建扫码登录应用授权” 点击新建后,填写相关信息 WordPress相关设置 部署WordPress.org 安装Wechat Social插件 设置Wecha...
聚合广告系列-三方聚合方式
目的聚合广告SDK,一般会接很多第三方广告(如Facebook、Admob等),而实际项目需求中,由于对包体积有要求,所以仅仅会接入必须的三方渠道,按此要求,则聚合广告SDK对三方对依赖,需做到可插拔式,不能对三方有强依赖,本文探索iOS的几种实现方式,并分析其优缺点。 方案一利用iOS的runtime机制,反射所有的方法调用、delegate注册等,做到对三方广告不存在明文的代码调用,以此做到可插拔式。 案例Delegate操作获取Delegate 1Protocol *protocol = [RunTimeTools objc_allocateProtocol:"GADIn...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo ...
avatar
刘帅
正在努力学习的程序员