项目代码级别重构

Xcode之Build Phases

引言:Build Phases是Xcode在build的时候执行的一些任务,这次就关于代码优化和重构方面,来说说Build Phases可以帮助我们的一些Script,还请大家补充。

Build Phrases与Xcode插件

1.谈到重构,如果我们想在后期把我们的项目重构一下,这不仅可以让我们重新巩固一下用到的iOS知识,还可以提高我们对整个项目理解和代码水平,其中重构的最简单的一个方法就是从代码行数开始检查,从我了解和经验我们暂可以规定每行代码不超过80个字符,每个函数不超过限定在50-80行之间,这样对于我们开发者以后的维护来说,简洁的代码更容易进行修改和维护。每个类最好保持在400行以内,如果太多就可以考虑重构一下你的类了,我发现1000行代码看着真的头晕,下面一个Build Phrases就可以帮助你检查你所有m文件大于400行的类,warning提示你。

find "${SRCROOT}" \( -name "*.m" \) -and \( -path "${SRCROOT}/Pods/*" -prune -o -  
print0 \) | xargs -0 wc -l | awk '$1 > 400 && $2 != "total" {for(i=2;i<NF;i++){printf "%s%s", $i, " "} print $NF ":1: warning: File more than 400 lines (" $1 "), consider refactoring." }'  

如果你需要更好的改善你的代码推荐OCLint可以更好的帮你改善代码质量,可以配合xctool很强大。如果你约束能里不大好,那推荐你Objective-Clean,这样如果你不符合规则就等着不能Build吧。其实这样蛮好的O.O。当然你也可以使用AppCode这个强大的编辑器来改善。

2.还有一个好的方法是经常在项目中使用TODO,FIXME等,这样可以帮助我们下次浏览项目快速定位和提醒你哪些代码需要继续改进,这段Build Phrases可以用warning的方式提醒你哪些需要处理,相比XToDo这个插件更为直观不需要你打开界面去寻找,直接提示,但是如果你要可视化界面也可以用XToDo这款插件,还是很不错的。

KEYWORDS="TODO|FIXME|\?\?\?:|\!\!\!:"  
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" \) -and \( -path "${SRCROOT}/Pods/*" -prune -o -print0 \) | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/ warning: \$1/"  

3.再推荐一个Xcode小技巧是Edit all in Scope 这个功能,这个功能就强大了,而且比较酷,适合进行大批量的修改变量和方法;选定一个想要修改的字符串,然后选择Edit-Edit all in Scope,然后在你输入的时候,所有该字符出现的地方都进行同步更改,看起来很cool的。

4.再推荐一个工具,你也许会遇到项目中使用自定义的外部字体,虽然导入项目中修改plist文件可以用代码来改变字体,但是在xib中选择字体是没有,你必须连接到代码中修改,很麻烦,所以推荐一款工具安装后添加一个Build Phrases就可以在xib中随意的选择外部字体了。工具叫Moarfonts,如果项目,可以考虑一下,还是不错的。

5.最后再推荐两款xcode插件,代码规范/美化工具BBUncrustifyPlugin-Xcode,这边是配置文件关于objc语言的。第二个插件是推荐给更新到xcode5.1的,由于改善了autolayout,可能这款插件可以更方便的布局RRConstraintsPlugin

结语:如果大家需要Moarfonts,我可以共享一下Moarfonts如果觉得可以可以支持一下作者,如果小伙伴有更好的实用的Build Phrases可以分享@Koofrank

### GitHub 开源项目代码重构分析工具与最佳实践 #### 工具介绍 对于GitHub开源项目代码重构,存在多种高效的工具可以帮助开发者完成这一目标。以下是几种推荐的工具及其功能: 1. **DeepSource** DeepSource 是一种强大的静态代码分析工具,能够帮助团队在代码评审阶段自动识别并修复潜在问题[^1]。它支持与多个版本控制系统(如Bitbucket、GitHub 和 GitLab)集成,并能有效检测反模式、Bug风险以及性能瓶颈等问题。此外,DeepSource 不仅限于单个文件层面的问题发现,还能深入到整个代码级别,例如未安装的依赖项或不一致的配置设置。 2. **Bowler** Bowler 是一款专注于Python语言的语法树级操作工具,适用于大规模的安全代码修改场景[^3]。其核心优势在于能够在保持代码可编译性和运能力的前提下实施复杂变更。该工具有两种主要交互方式:一是通过直观易用的命令接口;二是借助Python中的流式API来定义更精细的操作逻辑。 #### 分析方法 针对GitHub上的开源项目有效的代码重构分析,通常涉及以下几个方面的方法论: - 使用静态代码分析技术扫描现有代码基础架构中存在的隐患区域; - 结合动态测试手段验证重构后的程序为是否符合预期标准; - 利用专门设计用于处理特定编程语言特性的自动化辅助软件简化重复劳动过程。 #### 最佳实践建议 为了提高GitHub开源项目的质量和维护效率,在实际开展代码重构工作时应遵循如下几条原则: - 定期安排时间审查项目内的陈旧部分,及时淘汰过时组件和技术栈。 - 对每一次提交都启用持续集成/部署(CI/CD)管道服务,确保每次改动都能快速反馈结果给贡献者查看是否存在回归错误。 - 积极采纳社区意见改进产品特性的同时也要注意保护原始作者版权信息不受侵犯。 ```python # 示例:如何使用Bowle进基本替换操作 from bowler import Query, Replacement query = ( Query("path/to/project") .select_function("old_function_name") # 查找函数调用 .modify(lambda node: Replacement(node.value, "new_function_call()")) # 替换为新函数名 .execute(write=True) # 执更改并将更新写回磁盘上原文件中去 ) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值