难得的是,他本身是一线的iOS开发者,同时又对iOS开发在国内的布道做了不少的工作,身影活跃于博客、微博、微信公众账号等地。...多思考和讨论这个需要个人主动一些,遇到问题喜欢多问为什么,在多次重构和思考的过程中,我们就会慢慢积累出一类问题的 “最佳实践” 方式,成为自己宝贵的经验。 ...用 Swift 来完成 App 还有一个不大不小的问题就是体积会比较大,因为 Swift 相关的库会直接打包进 App 中。...我觉得你提的这个问题的根本还是在于:iOS 开发者到底热不热爱编程。在我看来,任何一件事情,如果你做到了热爱它,把它当作乐趣,那么在同行中做到出类拔萃应该是理所当然的。...多思考和讨论这个需要个人主动一些,遇到问题喜欢多问为什么,在多次重构和思考的过程中,我们就会慢慢积累出一类问题的 “最佳实践” 方式,成为自己宝贵的经验。
威胁参与者还可以从当前操作系统版本中发现的漏洞中恢复工作,以找到新的方法来危害较旧的计算机。但更多的攻击者实际上在等待补丁发布,以开发N天漏洞。...几十年来,企业依赖过时的应用程序和系统已经成为现实。像医疗保健这样的行业因依赖过时的系统而臭名昭著。...在SANS研究所进行的一项2022年的调查中,在OT和关键基础设施组织(包括医疗保健)工作的IT专业人员中有54%表示,集成和升级旧系统是他们最大的安全挑战。...另一个熟悉的挑战是,设备(如在过时的专有Windows版本上运行的核磁共振机器工作站)可能会隐藏EOL应用程序或阻止它们的替换。...由于微软的支持包括嵌入式操作系统,关键的物联网和OT设备,如销售点(POS)系统、ATM、医疗设备和工业控制系统端点也暴露出来。您能得到有效的遗留安全吗?
场景描述:开发人员必须要面对的一个问题,就是要处理在不断完善中积累的过时代码,近日 Uber 开源了一个自动删除旧代码的工具,它可以寻找代码库中废弃的功能标志模块,在配合开发者的情况下,进行代码删除或者重构操作...Piranha 可以在 Uber 的 Android 和 iOS 代码库中运行,目前支持 Objective-C、Swift 和 Java 三种编程语言。...据介绍,在 Uber 所有的程序代码库中,就有超过 6000 个功能标志。 但功能标志的增多,也会导致代码库的复杂性增加,一旦该标志过时,则需要将其删除,否则会带来技术层面的负担。 ?...考虑到 Piranha 的应用背景,Uber 采用了应用静态分析,即通过代码审查,来查找因过时标志遗留下来的废旧代码。 ? 其中可清理的三个关键维度分别是: 删除紧邻功能标志 API 的代码。...Piranha 已经在 Objective-C、Swift 和 Java 程序中运行良好,但为了让其工作更高效,以实现 Piranha 自动进行标志清除,还需要搭建一个更完善的系统。
在简单的场景下,当遗留系统中的服务组件等待响应时,就会锁住遗留系统。服务组件收到响应后,遗留系统解锁,进入到有待处理的下一个服务组件。 SaaS应用程序通常松散耦合。...为了表明这种机制的工作原理,不妨以网上购物为例:你把商品放入购物手推车中,关闭应用程序;次日,你打开应用程序后,看到该商品仍然躺在手推车中;你可以支付该商品货款。...(多线程应用程序在单处理器系统上运行起来完全一样顺畅,但没有更快的速度。过时大型机中的单处理器系统现在是古董。)...企业提供自己的服务器,让系统管理员可以在使用量突然激增的过程中或安装新应用程序时,可以在诸服务器之间转移分配工作负载。 混合云集公有云和私有云的优点于一体。...总结 想揭穿SaaS应用程序可以取代所有遗留系统这个谎言,最佳之道就是搬出四个靠谱的理由,证明贵公司的一些遗留系统为什么有必要继续留下来。
与遗留技术,包括集中化的数据库,有关的容器扩展和互操作性问题,可能会破坏DevOps项目,而与之相关的数字转换工作现在对业务增长至关重要。 容器之美 容器可以被描述为云计算的现代构件。...从梦想到噩梦 然而,容器的迅速采用清楚地表明,IT体系结构中存在着越来越大的裂痕:在容器环境上运行的无状态应用程序工作负载和在更传统的基础设施上运行的有状态应用程序工作负载之间。...例如,有状态的应用程序通常存在于孤岛中,拥有自己独立的网络、策略和基础设施 - 这意味着在不直接添加到基础设施或使用API与其他应用程序连接的情况下,很难进行扩展。...这意味着架构师将面临一个非常常见的噩梦,即在没有实际移动的情况下运行,尽管在构建和改进遗留应用程序及其数据库方面投入了大量的投资和精力,无状态应用程序的潜力仍在不断增加。...架构师面临的挑战将是了解哪些应用程序需要快速地从有状态迁移到无状态,以确保它们能够跟上容器的发展;它们可以保存在它们的遗留环境中,因为它们没有过时的风险。
我将要在这篇文章中讨论使用遗留代码的两方面的问题: 遗留代码库的常见问题 通过实现交付和代码质量的平衡,有效克服这些问题 代码覆盖率 我在使用遗留系统时遇到的一个常见问题是缺少测试。...在传统的代码库中,正是这种迫切需要但并不理想的中间地带,帮助铺平了通往理想状态的道路。 随着时间的推移,你对系统更加熟悉了,就可以继续在所有级别添加测试,并对你的项目实现一个可接受的测试金字塔。...过时的库/技术 我遇到过这样的情况:开发人员非常不愿意升级到新版本的库,因为引入的更改会造成破坏;或者由于担心破坏系统而继续使用过时的工具和技术来编写项目。 这些担心是完全正确的,绝对值得考虑。...然而,人们必须记住,使用过时的工具和库会造成的副作用。这些副作用可能会在最不经意的时候累积起来,并咬伤你。旧的工具通常不再受支持,而且很难找到问题的答案。...在处理遗留代码时,第一步是阅读并理解代码,当某一部分代码理解起来非常吃力时,你会希望重构代码,让其他团队成员避免同样的痛苦。
mDNSResponder 是开源的,鼓励硬件设备制造商将 mDNSResponder 源代码直接嵌入到他们的产品中,以从零配置网络中获益 3. Bonjour 是否在多个子网之间工作? 是的。...在 iOS 5 及更高版本中,应用程序必须明确选择通过蓝牙进行服务发现,并且必须使用低级 DNS 服务发现 C API 解析服务。...有关详细信息,请参阅 iOS 5 及更高版本上的蓝牙 Bonjour。 6. 我应该让服务浏览器运行多长时间? 浏览器会消耗资源,因此如果您不希望使用这些数据,则不应让它们继续运行。...但是,在连接到服务时保持服务浏览器运行通常是个好主意。如果该连接失败,正在运行的浏览器的存在会促使 Bonjour 更积极地重新验证可能过时的服务条目,这可以使服务列表更加准确。...用户在我的应用程序中浏览网络并选择他们希望使用的服务实例后,我应该将该 IP 地址保存在我的应用程序的首选项文件中,对吗? 错误的。这是一个常见的错误。
开发工具的变化有多快? 2004 年还没有 iOS 和 Android,当时,Watson 曾为 Compaq PDA 编写了一个应用程序,用于跟踪汽车经销商的库存。...快进到今天,MVC 已经过时了。现在一切都是在 React、Angular、Vue 和其他框架中完成的。在此之前,开发者还会使用 Javascript 框架。...之后,因为企业倒闭或者其他原因,软件被替代的可能性会非常高。即便它能幸存下来,完全由过时技术栈编写这一现实也会让它的路子变得很窄。这就是软件工程师的真实命运。”...用户 chesterriley 则想象了一个极端可能:也许未来终有一天,人们会继续使用 100 年前就编写出来的代码。...那这些代码是“烂代码”或者说“技术债”吗?还是得看具体情况。你家的锤子可能也用了十来年了,它过时了吗?如果还能干活,那就没过时。
作者 | Ben Northrop 译者 | 刘雅梦 策划 | Tina 有一个应用程序充斥着技术债,严重的过时了,或者只是对用户服务不足,因此,我们需要了解我们的最佳选择是什么——是继续艰难地探索并逐步进行重构更有意义...通过重构,在现代化遗留应用程序的场景中,通常意味着我们将会保持应用程序基本不变,但会进行一些微小的内部改进以解决特定的问题(如可维护性、可扩展性等)。...在我们的场景中,当我们谈论重构时,我们通常不会区分内部和外部,而是 会区分功能和非功能。例如,我们可能会说,我们选择重构现有的代码库,以提高应用程序的可靠性或性能。...在本书中,我们使用以下定义: 重写就是重新构建存在于遗留应用程序中的相同功能,但使用不同的语言 / 框架,在新的代码库(不仅仅是分支)中维护,并作为一个全新的构件进行部署(可能部署到不同的平台上,如服务器...在接下来的文章中,我们将探讨一些隐藏在重写工作中的危险,以及为什么我们总是不顾这些危险勇往直前的原因。
如果程序员想将现有的应用程序扩展到macOS、iOS以外的平台,那么采用Swift绝对能快速达成这一目标,植入Windows平台的Swift则使得这个行为变得更方便。...网友:在Windows上植入Swift是神作 在Saleem Abdulrasool的一次演讲中,他提到了Swift和Windows各自的优点。...Swift:安全、灵活、多范式、编译语言、从遗留代码中跳脱出来、发展性好 Windows:开发者和用户都可用、应用级代码、轻量级系统、有趣的挑战等 目前来说,的确还有许多需要完善的地方,但Saleem...Abdulrasool表示,他们会继续努力改进代码,也欢迎更多的人加入这个项目中。...此外,也有网友表示,鉴于Swift是他用过最好的语言,现在几乎是急不可耐地想要在Windows上编码Swift了。 ? 那么,你会尝试在Windows中使用植入的Swift编写程序吗?
但对许多企业来说,这样的担忧是错误的、过时的,或两者兼具。事实上,混合云很有可能会是一种释放云计算潜力的最佳途径,同时也能保留对某些类型的数据或工作负载的严密控制。...当然,Yang的建议中也包括对供养商和平台进行认真考察,然后再继续使用新特性、新功能等。...Nadhan最近指出:“在迁移到混合云模型的过程中,你需要更多地关注于使应用程序具有更重要的业务功能,确定真正重要的应用程序。你还需要识别跨应用程序的冗余功能,并将其合理地定义为一个更易于管理的数字。...Budge建议为混合投资组合做一些其他的考虑,包括: ·云平台会要求你构建和获取真正高可用性的应用程序:“在OneNeck,我们已经看到了在不同的云平台上,相同工作负载的复杂性、成本和可支持性的巨大差异...·定价模式继续从基础转向更加复杂和细分的模式:“也许有人会大胆地创造出一种‘出其不意’的定价模式,把我们都带回到一个更可预测的状态。” Budge说。
所有随着时间的推移,他们的注意力逐渐减少。 图1 此外,与几十年前相比,EA 博客和网站也少了很多。由于缺乏更新,很多关于最佳实践的过时 EA 内容在搜索引擎中的排名仍然较高。...因此,我们可以说,最重要的企业架构框架在过去十年中没有收到任何重大更新,因此——至少部分地——已经过时了。...许多大型科技公司不寻找企业架构师 除了上述论点之外,还有一个额外的观察结果,这在许多不同的组织中都很常见:组织拥有的旧世界/遗留 IT 越多,组织中的企业架构师就越重要。...尽管这肯定有例外,但有一个明确的模式是,很少或没有遗留 IT 的公司没有企业架构师的角色,也不为他们的组织寻找这样的职位。在 Netflix 或亚马逊寻找“企业架构师”的工作似乎证实了这一趋势。...2021 年的企业架构是否还有相关性?它在当今的数字时代扮演什么角色?在本系列的下一部分中,我们将回答这些问题。 您喜欢“企业架构的相关性”系列的这一部分吗?你能确认观察和分析,还是你不同意?
●缺少协作:组织中的知识共享和业务效率较低,或者初级开发者缺少必要的指导。 ●重构延迟:在开发的过程中,某些部分的代码会变得难以控制,这时候就需要进行重构,以适应将来的需求变化。...1.避免使用过时的技术 遗留应用程序、过时的技术以及不同的平台和流程可能会使组织陷入沉重的技术债务,迫使其推迟基本的现代化计划。...DNS和流量管理技术提供商NS1的联合创始人兼首席执行官Kris Beevers说:“技术债务将大量金钱和宝贵的时间浪费在系统和应用程序上,而这些系统和应用程序并不是为现代企业所需的规模和速度而打造的...Beevers指出:“寻找人才来管理基于复杂或过时的代码构建的遗留应用程序也是一个日益严峻的难题。坚持采用过时技术不仅会消耗宝贵的预算,而且还会阻碍公司创新和保持竞争力的能力。”...代码规范在研发项目团队中有着重要作用,团队统一代码规范,有助于提升代码可读性以及工作效率。统一的 代码规范是代码集体所有权的基础,会让结对编程更容易实行,对团队来说更易内部轮岗、获得晋升。
它们正在努力通过快速引入新方法来改善新环境中的业务运营,加快数字化进程。这些策略包括加速自动化投资,以及在减少员工对实体工作场所依赖的同时实施灵活的工作计划。...然而,若要使软件创新发挥作用,就需要淘汰过时的软件和运营模式。旧的软件始终无法跟上新业务在敏捷性、灵活性、可扩展和可管理平台方面的需求。遗留软件无法满足当前要求。这也加剧了开发人员的压力。...低代码平台面临的一些挑战包括: » 与遗留系统的集成:遗留应用程序会严重降低 IT 效率。虽然低代码平台可以支持应用程序现代化,但将新的低代码应用程序与遗留应用程序集成是一项艰巨的任务。...许多低代码工具和应用程序无法与过时的系统集成,从而使组织在流程自动化/工作流流程优化方面裹足不前。此外,为业务流程工作流开发的模型可能仅对某些类型的应用程序有效,从而产生平台使用范围问题。...在IDC看来,普华永道的智能捷创平台是一个敏捷、智能的低代码平台,是一款引人注目的基础设施产品。它可以帮助组织实现遗留应用程序现代化,同时将遗留应用程序与新应用程序集成。
美国管理和预算办公室在今年2月下旬发布了备忘录M-12-18,为美国政府机构如何开始申请由技术现代化基金(TMF)管理的资金提供指导。而有些人认为一劳永逸地消除那些传统遗留技术的时机已经到来。...但是随着美国联邦机构深入研究其现代化计划,他们应该仔细考虑一下采用传统技术的真正意义。在计算中,传统技术通常是一个贬义词,意味着一种陈旧和过时的技术。大型机是这一类技术的主要例子。...最近的一项调查发现,57%的大型机用户(跨行业)在大型机上运行了超过一半的关键业务应用程序,预计这一比例在一年内将增加到64%。此外,这些用户的应用程序中有98%的应用程序依赖大型机处理。 ?...然而,美国2018财政年度仅拨付1亿美元,远低于此前设想的2.5亿美元。这意味着像大型机迁移这样的大规模现代化工作可能会继续主要通过机构本身的运营资本提供资金,这会给个别机构带来一些成本超支的负担。...通过努力调整每个应用程序以最大限度地减少大型机资源消耗,可以将这些保持在最低水平,并且可以通过分散应用程序工作负载的时间以最小化利用率峰值来保持平均MSU,从而保持更低的平均值。
一旦在代码中定义了分割点,Webpack 就可以处理依赖关系和输出文件。它可以让浏览器保持较小的初始下载量,并在应用程序请求时按需请求代码。...图片 Milica Mihajlija 概述了WebAssembly 的工作原理以及其有用性[46]。 27 你有使用提前编译吗?...为了避免以上问题,请考虑使用 webpack-libs-optimizations[78] 在构建过程中删除未使用的方法和 polyfills。 也将包审核添加到你的日常工作流程中。...但是有些应用程序并不需要所有这些功能(在页面初始化的时候)。对于此类应用程序,使用原生 DOM 操作来构建交互式用户界面可能会更好。” ?...显然,你可能会让浏览器获取不需要的数据并预加载不需要的页面,因此好的做法是对预加载的请求数量做好控制。比如预取在检查出来的脚本中经过确认的,或者在关键的动作调用进入可视区域时进行推测性预取。
后有,Dart 通过 Google 的 Flutter 框架来支持移动应用程序开发,该框架旨在为 Android 和 iOS 创建原生 UI。...函数式编程可以减少一定量地冗余代码,它也带来了一定的新问题:可维护性及上手复杂度。 但是越少的代码,可能意味着更少的 bug,不是吗?...如果一个项目中的前端开发人员水平参差不齐,但是没有辅以有效的代码改善方式,如 CheckStyle、Code Review、测试 等等。那么,未来它必是一个痛苦的遗留系统。...小而美的框架,维护成本太高了——这里讨论的是维护成本,也就是你在这个软件上可能还要继续开发一年,两年,而不是几个月。所以,如果你没有在一个前端代码库里,工作一年、两年,不要和我讨论这一个问题。...小而美的框架里,组件间依赖,版本间限制,上下游同步等,在时间线上就是各种麻烦的问题。在工作上,花费大量时间解决这种技术问题,真的很不爽——只会导致加班。
这次更新移除了专为旧版本IE设计的代码,使代码库更加高效。我们也停止了对其他过时浏览器的支持,如Edge Legacy、iOS和Firefox的旧版本,以及原生Android浏览器。...事件顺序变化:jQuery 4.0中focusin和focusout事件的处理顺序发生了变化,以符合最新的W3C规范。这可能会影响依赖旧顺序的插件或代码。...然而,出于几个原因,jQuery在web开发中仍然有一席之地: 遗留浏览器支持:许多网站和web应用仍需要支持如IE11这样的老旧浏览器,这些浏览器缺乏对现代JavaScript特性的支持。...尽管jQuery可能不再是前端开发领域的主导力量,但它在现代web开发中仍然有其位置,因为它对遗留浏览器的支持、易用性、广泛的插件生态系统和与其他框架的集成。...随着jQuery 4.0 beta的发布,jQuery团队展示了他们保持jQuery在不断发展的web开发生态系统中相关性的承诺。那么,你认为jQuery还有存在的意义吗?
就是要改变历史遗留下来的杯具的东西。 但如果全新制作设计的一个网站,还要重构吗? 7年的重构其实就是一本历史书,读史使人明志,以史为鉴,不要重蹈覆辙。...@三桥 的weibo Touch:在iOS浏览器中模仿本地应用(测试地址:http://weibotouch.sinaapp.com/ 为了更好的体验,请使用iOS系统的设备打开用原生浏览器打开该网址)...同时,应用程序的升级将变得容易,只需要在服务器端升级即可,本地打开浏览器后,就是全新的版本。...JSS支持函数,模块复用等,计划有桌面版、javascript版和PHP版,通过重新对JSS编译,生成浏览器可以正确识别的CSS,来简化工程师写CSS时的繁琐工作,化繁为简的一个好东东,现在javascript...版本已经推出,桌面版的仍在开发中。
领取专属 10元无门槛券
手把手带您无忧上云