首页
学习
活动
专区
圈层
工具
发布

代码质量第 2 层 - 可重用的代码

3金伟强---(+云荐大咖).jpg可重用的代码指:在相似业务场景下,用的是同一份代码。 可重用的代码可以减少重复劳动。一个软件中,会有很多类似的业务场景。将这些场景抽象成可重用的代码。...开发新功能时,重用代码可减少重复劳动。 可重用的代码可以减少因需求变动,导致多次改动和漏改的情况。...试想,要修改全站提交按钮的颜色,如果全站有100个包含提交按钮的页面,每个页面的按钮的样式都没复用,这改动量和漏改的风险都很大。如果做成可重用的,则只需改动一处。 如何写出可重用的代码?...代码块的职责越多,越难被复用。写出可重用的代码就是:识别,分离出可复用的部分。 考虑这样的场景:代码块A 的功能是获取接口数据,并渲染 UI。代码块B 的 UI 和 A 一样,但获取的接口数据不一样。...七、工具函数 工具函数是与业务无关的。如:格式化日期,生成唯一的 id 等。Lodash 和 moment.js 包含了很多的工具方法。 总结 要写出可重用的代码,本质就是识别和分离出可复用的部分。

3.8K102

代码质量第 2 层 - 可重用的代码

可重用的代码指:在相似业务场景下,用的是同一份代码。 可重用的代码可以减少重复劳动。一个软件中,会有很多类似的业务场景。将这些场景抽象成可重用的代码。开发新功能时,重用代码可减少重复劳动。...可重用的代码可以减少因需求变动,导致多次改动和漏改的情况。试想,要修改全站提交按钮的颜色,如果全站有100个包含提交按钮的页面,每个页面的按钮的样式都没复用,这改动量和漏改的风险都很大。...如果做成可重用的,则只需改动一处。 如何写出可重用的代码 代码块的职责越多,越难被复用。写出可重用的代码就是:识别,分离出可复用的部分。 考虑这样的场景:代码块A 的功能是获取接口数据,并渲染 UI。...1639478884&q-header-list=&q-url-param-list=&q-signature=3aa9d1c839b24aea8f499f10500730874e0019c0] 下面,我们来看些常见的可复用的部分和复用方法...工具函数 工具函数是与业务无关的。如:格式化日期,生成唯一的 id 等。Lodash 和 moment.js 包含了很多的工具方法。 总结 要写出可重用的代码,本质就是识别和分离出可复用的部分。

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    代码质量第2层-可重用的代码!

    可重用的代码指:在相似业务场景下,用的是同一份代码。 可重用的代码可以减少重复劳动。一个软件中,会有很多类似的业务场景。将这些场景抽象成可重用的代码。开发新功能时,重用代码可减少重复劳动。...可重用的代码可以减少因需求变动,导致多次改动和漏改的情况。试想,要修改全站提交按钮的颜色,如果全站有100个包含提交按钮的页面,每个页面的按钮的样式都没复用,这改动量和漏改的风险都很大。...如果做成可重用的,则只需改动一处。 一、如何写出可重用的代码 代码块的职责越多,越难被复用。写出可重用的代码就是:识别,分离出可复用的部分。...要改成可复用的代码,就是将可复用的UI,获取接口数据的代码独立出来。 下面,我们来看些常见的可复用的部分和复用方法。 (一)UI展示 UI展示为外观的展示,包含:HTML和CSS。...(四)工具函数 工具函数是与业务无关的。如:格式化日期,生成唯一的id等。Lodash和 moment.js包含了很多的工具方法。 二、总结 要写出可重用的代码,本质就是识别和分离出可复用的部分。

    98820

    全新Swift从入门到进阶实战探探iOS APP

    这种方法允许你在开发过程中逐步完善设计,而不是一开始就进行彻底的设计和分析。自动生成源代码:利用框架自动生成满足测试要求的源代码,同时保留开发者进行的重构操作15。...开发者可以考虑将SwiftUI与Swift结合使用,以利用其声明式编程的优势,同时保持对UIKit的熟悉度。考虑到Swift和UIKit的广泛使用,开发者应该深入理解这两个框架的工作原理和最佳实践。...虽然这些工具主要用于SwiftUI项目,但它们提供的代码质量和性能分析功能对于任何使用Swift和UIKit的项目都是有益的。...有效地使用Swift和UIKit框架进行用户界面设计需要开发者深入理解这两个技术栈,并结合现代编程范式(如SwiftUI)的最佳实践来提高开发效率和产品质量。...使用DSL和代码生成器:DSL(领域特定语言)和代码生成器可以显著提高开发效率,通过抽象低级样板代码,使开发者能够专注于业务逻辑而非底层实现细节23。这种方法特别适用于快速原型开发和跨平台应用开发。

    88210

    使用流动控制器(Flow Controller )实现 MVVM 协议模型

    在这个我今年看过最佳视频之一的视频中,阐述了最重要的不是代码量减少,而是这个架构能让我们的软件有什么提升。...模块 我希望我的架构可以创建代码可用性强的模块。还可以创建整个项目都可以复用的结构,同时能够使用某个方法创建一个灵活的接口, 以至于项目可拓展性比较好。...我谈论的是保持一个应用持续发展的方法,改进一个成品的代码和创建第一个版本一样重要。...在本例中,只有数据和子单元的变化,可以作为一个参数传递,并为所有列表创建一份可重用的代码。 这里有趣的一点是实现了两种响应协议:一个用于网格和一个列表。但两个的实现是相同的。...目前仍在调查究竟是 Swift 的 bug 还是故意限制。 得到的结果是代码非常干净,并最大限度地提高接口的重用。还研究了泛型和协议作为一种抽象问题的方法。其他的结果是构建时间明显快得多。

    1.2K40

    最佳编码实践:搞砸代码的10种方法

    这是一篇提供有效、实用编程方法的程序箴言,作者Susan Harkins是世界最大的技术期刊出版社的主编,具有多年的实践经验;在这篇文章里她重申“最佳编码实践原则”的重要性;虽然文中主要讨论VB开发相关的东西...,但正如作者所说,“虽然其中一部分只适用于VBA或某种IDE,但大多数都是通用的”,希望大家触类旁通,将这些方法实践到自己的开发工作中。   ...以下是Susan的正文:   写代码是一个富有创意但又可能让人思想麻痹的任务,不管你是否喜欢你的工作,你总会找一些捷径,但遗憾的是,大部分捷径都违反了最佳编码实践原则,这些捷径要么会产生BUG,要么会导致数据出错...,每次敲下goto时都问一下自己,是否有其它方法来处理这个重定向?...3、编译器是在浪费时间   和其它编译器不同,VBA编译器不会生成一个可以脱离Office独立执行的模块,相反,VBA编译器实际上是一个语法检查器,在真实运行之前,编译你的代码是捕捉语法错误简单有效的方法

    2.4K40

    Swift 周报 第三十二期

    提问swift Macro 中没有这样的模块“UIKit”[4] 在 swift Macro 中导入 UIKit 时,报错 No such module 'UIKit' 。...为系统编程用例提供低级机制(这些用例是针对具体系统的定制案例),并构建一个通常可重用的高级 API 是没有意义的(项目作者可以自由地构建这样一个高级 API,例如项目的内部机制)。...代码中到处都是这样的样板文件,最终肯定会弄错,当一天结束时,希望并假设在错误的等待最终潜入之前所做的事情,是为了 Actor 的方法在进行过程中不可调用,而 Actor 的其余部分则继续其业务。...讨论宏扩展后访问源代码[8] 当构建一个使用 SwiftSyntax 遍历 Swift 源代码的工具时,是否有一种直接的方法来遍历宏扩展后的源代码? 这是否需要通过尝试扩展每个源文件来手动完成?...中没有这样的模块“UIKit”: https://forums.swift.org/t/no-such-module-uikit-in-swift-macro/65885 [5] 低级联动控制属性:@

    55830

    Arc、Dia、TCA 与 SwiftUI | 肘子的 Swift 周报 #086

    对 Swift 开发者而言,保持开放且务实的态度,既积极探索新技术的潜力,也理性评估其成熟度,寻求功能需求、开发效率与性能表现之间的最佳平衡,或许才是最重要的。...与 Swift Concurrency 的兼容性问题,同时提升代码结构与安全性,避免依赖 @preconcurrency和 nonisolated等临时方案。...Daniel 指出:枚举适用于有限且互斥的状态建模,具备模式匹配和编译期穷举校验的优势;而结构体则更适合处理风格、样式等可扩展需求,可通过默认值、扩展方法或环境注入实现灵活配置。...你可能忽略的 Swift static 技巧 (Swift Static Secrets)[20] 在 Swift 中,static常被视为“类级别的工具方法或常量”的代名词,但它的能力远不止于此。...你将看到它如何用于锁定类行为(与 class的可重写性对比)、为枚举添加共享配置、在协议中定义类型级别的契约、实现一次性加载和类型缓存、在单元测试中复用测试数据,以及通过静态常量替代“魔法字符串”来增强自动补全与代码安全性

    16810

    Swift 周报 第三十九期

    在时长 25 分钟的线上咨询中,你可以征询关于最新 UI/UX 设计原理、最佳实践、设计模式等方面的建议。活动语言为普通话。...解决方法是将其转换为具有单元素最近使用的缓存的对数算法。]...回答 从 Swift 正确使用 BSD 套接字是一个严峻的挑战。我自己在这个问题上反复讨论了很多次,最终选择了从 Swift 调用 BSD 套接字中所示的方法[8]。...本文还解释了参数包的解决方案,它们帮助我们编写可重用的代码,避免编写大量的函数重载。从 Swift 5.9 开始,我们可以使用参数包重写类似的函数。...本文末尾总结了参数包的优势,并提供了进一步学习 Swift 的资源链接。 SwiftData 中的并发编程[13] 摘要: 本文介绍了在 SwiftData 中进行并发编程的方法。

    46420

    Android 工程师开发 iOS 是怎样的体验?

    同事,因为 Kotlin 和 Swift 语法真的很像,如果你有 Kotlin 的开发经历的话,那么你应该可以无障碍的读懂 Swift 代码。...也可能是我学艺不精,在常常写 Swift 的代码的时候,我都在想如果是 Kotlin 这段代码可能会写的更爽一点,例如下面这个空判断,大家可以感受一下 Swift 和 Kotlin 的区别: // Swiftlet...虽然我很喜欢声明式 UI,但写了这么久的 SwiftUI 它目前的缺陷也很明显,SwiftUI 并没有完全实现原有 UIKit 的全部功能,如果 SwiftUI 没法实现,就需要自定义一个 UIKit...同时 SwiftUI 刚刚推出,很多最佳实践都没有,大部分人都在踩坑的阶段,bug 很多,而且是无法解决的 bug,我在 Github 上面开一个叫:SwiftUIBug 的库,来记录目前为止我使用 SwiftUI...遇到的 bug,并提供解决方法,避免别人继续踩坑,有兴趣的朋友可以持续关注一些。

    1.9K30

    Swift| 基础语法(五)

    前言 总结下 swift下的基础语法,里面涉及到:常量&变量、Swift中的数据类型、逻辑分支、循环、字符串相关、数组和字典、方法的书写调用等内容,考虑到阅读体验分多篇来展示,希望对大家学习swift...Swift| 基础语法(一) Swift| 基础语法(二) Swift| 基础语法(三) Swift| 基础语法(四) Swift| 基础语法(五) 本文涉及: 纯代码创建应用根试图 UILabel...} 在Swift中,创建tableViewCell的方法可以分为两种创建tableView时候注册和需要使用时手动创建。先聊聊创建tableView的时候直接注册cell: myTb?....register(MyNewTableViewCell.self, forCellReuseIdentifier: "myCell") 当注册了Cell之后,在没有可重用的Cell时会自动创建,并且不能在需要时手动创建...因为在Swift中,所有对象的构造器默认都是public,所以需要重写你的init让其成为私有的。 这样就保证像如下的代码编译报错,不能通过。 六、从相册选择照片或者拍照 ?

    2.9K30

    Swift2转Swift3

    接触swift 已经有一年多的时间了,由最初的OC代码转为 swift 代码,然后从 swift 2.3 转为 swift 3。...每次的转换都感觉是将项目整个的翻新了一遍,每次的转换代码都是一次改朝换代。 以下是在代码改朝换代的时候的一些心得: 在将 OC 代码转换为 swift 代码的时候,我当时使用的是 xcode7.3。...所以: 一、在更新swift的时候,在swift文件中,几乎是不会联想的,动则就是整个屏幕中的代码全是白颜色,然后,类名,方法名,都是硬敲出来的。...再者一点就是 OC 的方法在联想方面差的要命 三、cocoapod 使用 useasframework,swift中比较注重 module 的概念,这个也是趋势,所以同样是混编,但是仍然要更改为包的形式...swift 编程,swift在代码编写方面确实是能够提高效率,尤其是swift 是面向协议编程,其灵活性不可言喻,并且在 swift 的强语言下,swift 项目是相当稳定的。

    2.2K50

    老司机 iOS 周报 #77 | 2019-07-29

    文本目录,用于将同类型词汇按组标记,建立简单的单词标记模型。 Generalizing Swift code @张嘉夫:判断某一块代码是否需要重构往往是件很棘手的事。...虽然采用可复用的函数或类型可以大大减少代码冗余,但过于抽象的代码会导致难以阅读和维护。...在这篇文章里,作者通过几个关键因素来帮助我们最大程度地重用代码,同时又能够避免让代码过于复杂或难以理解,从而取得良好的平衡。...CAEmitterLayer @J_Knight_:本文作者 Mattt 介绍了 CAEmitterLayer 的使用方法,并结合代码展示了如何使用 CAEmitterLayer 和 CAEmitterCell...:作者是 @王巍(onevcat) , 是一款简单的命令行工具可删除项目无用的资源文件。

    1K30

    (译)openURL 在 iOS10中已弃用

    (Haley_Wong注:canOpenURL:是在iOS 3中添加的;打开外部链接一般都是用来调起别的App,比如调起打电话、邮件、QQ、微信、支付宝等) iOS 10 中的更新 苹果在UIKit相关的...这个弃用的方法有一个要打开的URL 参数,并且返回一个表示成功或者失败的布尔值: // Objective-C - (BOOL)openURL:(NSURL*)url // Swift open func...= nil) 它有三个参数: 要打开的URL。 一个可选字典(可参考下面的实例)。传一个空字典时,该方法的效果与 openURL:一致。...下面是 Swift 版代码: func open(scheme: String) { if let url = URL(string: scheme) { if #available(iOS...(译者注:在iOS 9 使用 openURL:方法打开这个链接时,会在首先调起Safari,然后在Safari中打开这个链接) 更多阅读 What’s New in iOS- 看看UIKit 这一章节

    3.1K10

    可视化编程,自动化减少20%代码量

    SwiftUI是一个非常方便快速的构建UI的框架,与最新Xcode设计工具无缝协作,可为所有苹果设备构建UI。开发者通过SwiftUI,利用Swift语法就能够完成代码和设计的同步。...SwiftUI还提供对动态类型、暗黑模式、本地化和可访问性的自动支持。 SwiftUI都更新了什么? 此次更新主要有5点: 声明式:更加易读的代码。...UIKit的独特风格,一旦你适应了,接下来的过程就一马平川了。...而SwiftUI通过4种方式,解决了上述问题: 用一个新的声明式UI结构,定义了的布局的外观和工作方式 更新UI预览会自动生成新的Swift代码,反之,更改Swift代码也会更新UI预览 Swift中的任何绑定例如有效的...尽可能的依赖工具 通过消除源码控制的痛点、消除对UIKit的严重依赖、消除Interface Builder可能遇到的一些连接混淆,苹果希望开发者更多的使用Swift,尽可能的依赖工具而不是纠结于一些不必要的事情

    5.9K20
    领券