• 第五章《A PHILOSOPHY OF SOFTWARE DESIGN》- 摘要

    第五章:信息隐藏(和泄露)信息隐藏实现深层模块最重要的技术是信息隐藏。基本思想是每个模块应封装一些知识,这些知识代表设计决策。该知识嵌入在模块的实现中,但不会出现在其接口中,因此其他模块不可见。隐藏在模块中的信息通常包含有关如何实现某种机制的详细信息。隐藏的信息:包括与该机制有关的数据结构和算法还可...

    第四章《A PHILOSOPHY OF SOFTWARE DESIGN》- 摘要

    第四章:模块应该是深的管理软件复杂性最终的技术之一就是设计系统,以便开发人员在任何给定时间只需要面对整体复杂性的一小部分。这种方法称为模块化设计。模块化设计在模块化设计中,软件系统被分解为相对独立的模块集合。模块可以有多种形式,例如类、子系统或服务。在理想的世界中,每个模都将完全能独立与其他模块:开...

    第三章《A PHILOSOPHY OF SOFTWARE DESIGN》- 摘要

    第三章:工作代码是不够的(战略与战术编程)好的软件设计中最重要的元素之一是您在执行编程任务时所采用的思维方式。从长远来看,战略方法可以产生更好的设计,且实际上比战术方法便宜。在重构中提到过对于价值有两个层面,业务价值和系统价值。业务价值表明了其在市场环境中能产生的价值,给用户带来的价值系统价值则有一...

    第二章《A PHILOSOPHY OF SOFTWARE DESIGN》- 摘要

    第二章识别复杂性的能力是至关重要的设计技能。它使您可以先找出问题,然后再付出大量努力,并可以在其他选择中做出正确的选择。复杂性的定义如果一个软件系统难以理解和修改,那就很复杂。如果很容易理解和修改,那就很简单。复杂性是开发人员在尝试实现特定目标时在特定时间点所经历的。它不一定与系统的整体大小或功能有...

    第一章《A Philosophy of Software Design》- 摘要

    第一章:介绍所有编程都需要具有创造力的头脑和组织思想的能力。这意味着编写软件的最大限制是我们了解所创建系统的能力。程序越大,工作的人越多,管理复杂性就越困难人擅长的是创造力,当需要记录系统庞大的复杂性时,记忆力的短板会显现出来,导致复杂性成为了我们创造软件的限制。复杂度会随着时间的推移而增加,但是更...

    读【技术治理的四条原则】

    MetadataTitle: 技术治理的四条原则Author: 洞见link: https://insights.thoughtworks.cn/managing-technical-debtPublisher: 洞见Date: [[2021-08-08_周日]]Tag: #系统设计什么是技术债技术...

    【问题】iCloudKit同步在更新数据后,需要重启应用才可以更新

    【问题描述】最近使用iCloudkit实现多设备之间同步Core Data的能力。在开发过程中碰到了一个问题:在模拟器中,调用了fetch()方法,重新加载数据,但数据无变化;在真实手机中也复现了。【解决方案】第一步在presistence.swift中的init()方法里,增加了:containe...

    Toggle iCloud Sync实践

    在正在写的应用中,在原有的Core Data数据持久化的基础上,希望能加入iCloud数据同步的能力,经过查阅各个资料,最后形成一个可用的方案,做一个记录。前提项目已经能支持CoreData的持久化能力在Xcode的项目的设置中,在capabilities中添加了iCloud相关的配置如果对本文存在...

    Searching for Toggle iCloud Sync with UserDefaults

    Using Core Data With CloudKithttps://developer.apple.com/videos/play/wwdc2019/202苹果wwdc2019中的session,较详细的讲解了当时开发iCloud数据同步应用开发的流程,但以现在的xcode中已经和当时版本有所...

    Apple App Log Dev Article Collection

    Swift: print() vs println() vs NSLog()https://stackoverflow.com/questions/25951195/swift-print-vs-println-vs-nslog#print vs printlnprint function prin...