时光地下铁

Software is a great combination of art and engineering.

0%

项目管理平台搭建:以iOS开发为例

在中大型项目中,目前主流的开发方式都是组件化开发,根据项目业务的大小,工程中组件一般会有几十,上百,甚至上千组件,如何在项目开发中合理的管理组件,管理项目版本,进行项目开发是个棘手的问题。

解决方案概览

  • 目标:以标准化的组件模型、清晰的版本策略、可持续的交付流程,降低多组件协作成本,提升发布稳定性与可预测性。
  • 关键做法
    • 组件管理:统一命名规范、目录结构、依赖图与可见性边界,使用注册中心进行组件发现与治理。
    • 版本管理:采用语义化版本(SemVer),配合发布列车(Release Train)与自动化变更日志。
    • 项目开发流程:以持续集成为核心,建立变更评审、质量门禁、二进制产物缓存与可回滚发布机制。

根据该方案,建设项目后台进行统一管理,可快速进行项目开发,组件维护,推进发布列车(Release Train)。


阅读全文 »

魔数鸿蒙扫描

魔数鸿蒙扫描Git

介绍

魔数鸿蒙扫描是一款专为鸿蒙应用开发设计的辅助工具,旨在帮助开发者优化应用安装包结构、提升用户体验。通过深入的分析检测功能,该工具能够扫描指定路径的App包内容,并生成详细的检测结果报告。这些报告为开发者提供了宝贵的数据支撑,助力他们排查问题、优化包结构,从而打造出更加高效、稳定的应用。

阅读全文 »

魔数计算器服务协议及隐私政策

欢迎您使用魔数计算器!
为使用魔数计算器,您应当阅读并遵守《魔数计算器服务协议及隐私政策》(以下简称“本协议”)。请您务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的相应条款,以及开通或使用某项服务的单独协议,您使用此服务即表示您接受本协议。限制或免除责任条款可能以加粗形式提示您注意。 除非您已阅读并接受本协议所有条款,否则您无权使用魔数计算器服务(以下简称“本服务”)。您对本服务的任何查看使用行为即视为您已阅读并同意本协议的约束。

阅读全文 »

Swift网络库最著名的就是Alamofire,但是在实际项目中,想要尽可能简单的发起网络请求,必须对Alamofire进行一层封装。依赖Alamofire的封装库也有很多优秀的,比如Moya。但是经过项目的使用,我发现Moya用起来并不简单。

阅读全文 »

OC类型的代码,底层实现都是C/C++语言,可以说,OC语言就是对C/C++语言的封装,比如,任何OC对象,添加__bridge const void *修饰,都可以转变为void指针类型。

阅读全文 »

方法名后缀为”!”的方法

在Ruby中,方法名后缀为”!”的方法通常表示该方法会修改调用它的对象。这种约定起源于Smalltalk语言,在Ruby中广泛使用。

当一个方法后面带有”!”符号时,这个方法通常会修改调用它的对象的状态。例如,如果我们对一个数组调用sort!方法,这个方法会对数组进行排序,并返回排序后的数组,而原始数组将被修改。

阅读全文 »

最近觉得之前的网站图标设计的太简陋,于是我设计了一个新图标,新图标是一个背着的大熊猫图案,灵感来自于背着人们吃竹子的熊猫。通过新图标,我想表达的是一只大熊猫,坐在那里,独自思考的场景,对于这个博客,这个图标比较契合。

前几年,简单图床发布之后,反映了了,于是我基本上放弃了维护,因为没有来自独立软件的收入,我的开发者账号也没有在续费了。因此软件也自动下架了。

通过此事我也学到了一些小小经验:

  • 要明白软件的目的是为了服务用户

  • 运营很重要

  • 软件收入很重要,即使开个赠个咖啡的入口也行

Dart支持展开操作符(spread operator)...和空感展开操作符(null-aware spread operator)...?

展开操作符支持所有的集合(Collections)类型,包括Set,List,Map。

展开操作符(spread operator)

展开操作符...可以将一个列表的所有值,插入到另一个列表中。

1
2
3
4
var list = [1, 2, 3];
var list2 = [0, ...list];
assert(list2.length == 4);
// list2 = [0, 1, 2, 3]
空感展开操作符(null-aware spread operator)

如果展开操作符右边的表达式可能为空,为了避免程序出问题可以使用空感展开操作符(null-aware spread operator)...?

1
2
3
List<int>? list;
var list2 = [0, ...?list];
assert(list2.length == 1);

Objective-C的Category特性,使的开发者在处理某些问题时,简单而又方便。理解Category的源码,对OC编程的理解会有很大的帮助。

Category的处理源码在libobjc.A.dylib中,苹果已经开源,但是下载后直接使用Xcode编译,会报很多错误。网上有很多帖子,介绍如何解决libobjc编译错误,这里就不介绍了。在github上有个开源项目objc4,提供了可编译版本的objc工程,可按需索取。目前苹果刚发布macOS Big Sur 11.0.1,适配该系统的Objc还没有开源,objc4在这个系统上会有一点错误,不过不影响阅读,各个函数,变量定义之间的跳转也没有问题。

阅读全文 »

2020-10-05

双十一准备攒一台主机。

CPU准备选十代i7k。以下配置都是按照该CPU来配置的。选配的理念是高性能,静音,无灯光。这个配置未来5年够躁的了。

阅读全文 »