随着nginx日志越来越大,最终会将服务器上的日志占满,方案是用logformat自动进行日志切割,需要以下步骤
Hippy接入typescript记录
项目的package.json如下
1 2 3 4 5 6 7 8 9 10 11 12 |
|
可以看到,如果是sudo npm run dev的方式来启动服务的话,用的是vue-cli-service,这个是@vue/cli-service的命令,其默认是去读取根目录的配置文件vue.config.js。如果是以npm run hippy:dev 去启动的话,读取的是配置文件hippy-webpack.dev.js。由于两个配置文件不一样,所以,对ts的支持需要两边配置文件都要修改。
将现有js库改成ts库
1. 背景
现在的公共库用js来书写,有两个问题:
调用方无法获得语法提示,且对调用函数的参数类型不明
公共库中的一些变量类型模糊不清
以上两个问题虽然不大,但是一定程度上影响了项目的开发效率和质量。通过typescript来改写公共库,有利于解决上述两个问题。
在现有iOS项目中集成Flutter方案
1. 集成方式选择
官方提供了源码集成方式,详细见文章Add Flutter to existing apps。
该方式有一个问题,Native工程和Flutter工程耦合性强,Native开发人员必须安装Flutter运行环境,才能运行真个工程,CI构建机上也要求有Flutter环境。更好的办法是将Flutter工程生成的产物集成进Native工程里,这样Native工程可以脱离Flutter环境运行。
__bridge __bridge retained __bridge transfer的区别
iOS开发中,经常会接触到两种对象,Objective-C对象和Core Foundation对象,他们之间有所不同,可以互相转换。最大的不同之处在于,在ARC模式下,前者不用开发者手动管理内存,后者需要开发者手动管理内存,即调用CFRelease方法释放对象,否则会造成内存泄漏。转换的话主要会用到以下3个方法:
iOS 中的 NSProxy
在日常开发中,NSObject 经常会被使用到。但是 NSProxy 却很少用。这个类顾名思义,是用来做代理的,任何消息都可以对它发送,在它内部,再指向具体的实现。
通过源码理解Autorelease Pool原理
1. Autorelease Pool 是什么
iOS 的内存管理使用引用计数机制。当对象被初始化或者被强引用赋值时,对象的引用计数 +1,当对象离开所在函数作用域或者被设置为 nil 后,引用计数 -1。当对象的引用计数为 0 时,操作系统会释放掉对象所占用的内存。
记一次数据库被攻击的经历
1. 问题出现
之前为了练手做了一个基于nodejs的后台系统。有一天突然发现http api访问没有数据了,赶快打开浏览器看了下报错信息,发现数据库的表找不到了,于是觉得问题可能有点大,马上登录服务器查看。
iOS越狱以及cycript的安装
本篇文章向iOS逆向初学者介绍如何越狱手机,并且安装cycript工具来调试第三方App。
SDWebImage源码解读
SDWebImage是最流行的iOS第三方图片加载库,也是github上star数目最多的objective-c第三方库。这篇文章对SDWebImage的源码进行简单的分析,主要是分析代码的执行流程。源码版本是目前最新的稳定版本4.4.4。