首页 文章 精选 留言 我的

精选列表

搜索[企业级],共10000篇文章
优秀的个人博客,低调大师

《企业级ios应用开发实战》一2.5 写一个iPhone程序

2.5 写一个iPhone程序 点击桌面上的Xcode图标,启动Xcode。选择菜单“File→New Project”,显示新建项目模板向导(如图2-16所示)。 在左边栏中列出了Xcode支持的两种项目类型:iOS和Mac OS X项目,选择iOS下方的Application,然后选择Empty Application类型的项目。点击Next按钮,进入新项目设置界面,如图2-17所示。 在新项目设置界面中,在Product Name栏填写项目名称,比如My_First_iPhone_App。在Company Identifier栏,填写公司名前缀,比如com.ydtf。在Device Family栏填写所开发目标平台,比如iPhone(Universal则表示iPhone/iPad“二合一”版本)。然后点击Next按钮。接下来是指定项目保存路径界面,如图2-18所示。 选择一个合适的项目保存路径,然后点击Create按钮。这样,一个iPhone应用程序就创建好了。如图2-19所示是My_First_iPhone_App项目的项目编辑界面,由于图太大,这里只显示了窗口的一部分。 界面的左侧是Project Navigator窗口,它列出了项目的所有资源,包括源文件、.xib、.plist、框架/库、二进制和图片等。右侧是指定资源(文件)的Info窗口或编辑窗口,我们主要的编辑工作都在这里完成。提示:如果你看不到Project Navigator窗口,可以通过菜单“View→Navigators→Show Project Navigator”来重现它。在Project Navigator中选择My_First_iPhone_App文件夹,单击右键,选择“New File”菜单,弹出新建文件模板向导,如图2-20所示。 Xcode 4.2能创建各种各样的文件。我们选择iOS/Cocoa Touch下的“UIViewController subclass”,然后点击Next按钮,将弹出如图2-21所示的新文件设置向导窗口。 在该窗口中,输入类的名称,如MyFirstViewController。勾选“With XIB for user interface”选项,点击Next按钮,进入文件保存路径窗口,如图2-22所示。 点击Create按钮。默认情况下,将转入MyFirstViewController.xib文件的编辑界面(即Interface Builder界面),如图2-23所示。提示:与Xcode 3.2不同,在Xcode 4.2中,Interface Builder是真正集成在Xcode的IDE中,而不再单独存在。此时,在Interface Builder的右侧(用于全屏太大,图2-23不能显示出来),可以找到如图2-24所示的Object Library窗口。 我们从Object Library窗口中找到一个Label对象(就在Object Library窗口的第1行),然后按住它不放,直接把它拖放到MyFirstViewController 的编辑窗口中(Interface Builder中),结果如图2-25所示。 然后双击图2-25中的Label对象,将它的文本修改为“嗨,这是我的第1个iPhone App!”,如图2-26所示。 你可以任意拖动标签控件改变它在窗口中的位置。保存在Interface Builder中所做的更改(快捷键 + S)。提示:对于Windows键盘,win键对应苹果键盘中的苹果键。在Project Navigator窗口中找到源文件AppDelegate.m,选中它,我们将对其进行一些编码工作。在AppDelegate.m的编辑窗口的顶部#import“AppDelegate.h”一行后换行,增加以下代码: #import "MyFirstViewController" 找到方法: - (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions: (NSDictionary )launchOptions 在其中“self.window.backgroundColor = [UIColor whiteColor];”一行后增加以下两行代码: MyFirstViewController vc=[[MyFirstViewController alloc]init]; self.window.rootViewController=vc; 接下来要运行这个程序,看看它最终实现的效果。

优秀的个人博客,低调大师

IBM Bluemix专属版企业级云平台今日在华正式投入使用

7月21日,IBM宣布Bluemix专属版在华正式投入使用,为中国用户提供物联网及认知计算服务。 据悉,专属版以基于OpenStack的私有云技术Bluebox为底层架构,为中国企业打造物理硬件独立的专属云环境,提供IBM云平台上的开发、部署、管理应用程序的各种资源,带来将专属云连接到公有云和本地云的混合体验。 同时,IBM中国研究院特别为中国用户开发出包含语音、自然语言处理、图像等在内的 中文认知计算服务,以及移动、数据与分析在内的相关服务。 IBM大中华区云计算总经理胡世忠表示,IBM云计算平台具有一致性选择、混合型集成、DevOp生产力、大数据分析、认知等五项全能,愿意成为中国企业身边的数字创新平台。 世纪互联CEO张振清谈到,自去年9月与IBM签署Bluemix以来,世纪互联用8个月的时间倾力打造出一支技术服务强大的专属团队,保障Bluemix落地实施,为中国用户提供最新的创新体验。 目前,已有一些本地合作伙伴基于Bluemix开发出的多种应用,并面向不同行业用户提供服务。世纪互联首批招聘的30多位懂得软件开发的技术人员也已经到位,能够提供7×24小时的电话咨询服务。 ====================================分割线================================ 本文转自d1net(转载)

优秀的个人博客,低调大师

如何让你的内存中的 NoSQL 数据存储适合企业级应用

对于关注用户体验的每一个Web或移动应用而言,基于内存的NoSQL数据存储系统(例如开源的Redis和Memcached)正在成为事实标准。由于性能、可扩展性和可用性面临的诸多挑战,很多大企业已经在试图采用这些数据库系统。 非常幸运的是,现代编程语言(例如Ruby、Node.js、Python等)和开发平台(例如Rails、Sinatra、Django等)已经内置了很多工具和开发库(libraries)。这些工具和开发库能够有效利用内存数据库的高性能和各种操作命令,能够实现当前流行的多种应用项目。 这些开源的示例项目包括作业管理、论坛、实时分析、Twitter克隆、地理位置搜索以及高级缓存等等。 数据库系统的可用性(availability)、可扩展性(scalability)和性能(performance)对于这些项目的成功至关重要。 本文粗略的介绍如何构建企业真正可用的基于内存的NoSQL数据库,包括一些技巧和建议;这些技巧和建议能够解决云端NoSQL数据库管理面临的七大挑战。 1. 可用性 无论你做什么,对于你的应用来说数据必须是时刻可用的。这对于内存数据库尤为重要;因为,如果没有得当的措施,当下面的情形发生时你的数据将会部分或全部丢失: 节点失败(在云(cloud)中经常发生); 进程重启(你可能需要不时的进行重启); 需要扩展(我们假设你可能需要这个)。 对于情形1和情形2有两种方式来解决;情形3将在稍后讨论。 复制:你要确保将你的数据保存一份到集群的另一节点,如果是另一数据中心则更为可靠,以便应付数据中心发生故障(亚马逊AWS在2012年至少发生了4次故障)。不幸的是事情并非如此简单。随便就能举一个复制非常困难的例子: 一旦程序写的频率增加,你会发现应用服务器写入速度远大于复制的速度,尤其是在主节点和复制节 点存在网络拥堵的情形下。一旦这种情况发生,如果数据集大到一定程度,复制节点很有可能永不再 与主节点同步。 自动切换:为什么需要这个?内存数据库每秒处理的请求比一般数据库通常多100倍,这就意味着每增加一秒宕机时间就会延迟更多的请求处理并给用户带来不好的用户体验。在实现自动切换时一定要遵循下面的原则: 1.确保主存储节点一旦失败就立马切换到备用复制节点。这一般基于成熟健壮的看门狗技术 (watchdog),看门狗持续的监控节点,一旦失败就切换到健康的复制节点。 2.对于你的应用程序而言切换过程要尽量透明;最理想的情况是不需要更改任何配置。更高级的解决方案是仅仅修改DNS中存储节点的IP地址,确保修复过程在几秒钟之内完成。 3.自动切换应当基于Quorum并且是完全一致(fully consistent)或最终一致(eventually consistent)的。讨论下面继续: 2. 网络分裂过程中和完成后的一致性 网络分裂(network splits)在云中频繁发生,对地球上的分布式存储系统而言也是最复杂的问题。一旦发生分裂,应用程序可能只会发现内存数据库的部分节点;同时,每个内存NoSQL数据库节点也很有可能只能发现一部分的其他节点。 为什么说这是一个非常严重的问题呢?如果你的数据库包含一些隐蔽的设计缺陷,当网络分裂发生时,应用程序很可能会写入错误的节点。这意味着,当情况恢复时,应用程序发起的写入就会丢失。这对基于内存的NoSQL数据库来说这是一个非常有意义的话题,因为基于内存的NoSQL数据库每秒的写操作远大于其他的NoSQL数据库系统。 一个设计得当的基于内存的NoSQL是什么样子的呢?很不幸,你只能从下面两个非常糟糕的候选中选择一个: 如果基于内存的NoSQL数据库是完全一致(fully consistent)的,在某些情况下你是不允许写入任何内容的,除非网络分裂恢复。 如果基于内存的NoSQL数据库是最终一致(eventually consistent)的,应用程序可以对“读”请求采用quorum方法——返回一个值或者阻塞。 注意——在今天的市场上并不存在最终一致(eventually consistent)的基于内存的NoSQL数据库,所以只有选项1是可以实际应用的方案。 3. 数据持久化 尽管基于内存的NoSQL解决方案提供多种复制选择,你仍需要着重考虑数据持久化和备份,原因如下: 或许你不希望为内存复制提供额外支出,但是仍希望将数据保存在某个地方并且在遇到节点故障时能够将数据恢复(即使恢复速度很慢)。 你一定希望在遇到任何故障时都能将数据恢复并且希望保留另外一个选择——将数据保存在另外一个安全的地方,即使数据不能与最新的的修改同步。 还有一些采用数据持久化的其他理由,例如为了测试将数据从生产环境导入到过渡环境等 现在你已经确信数据持久化是必要的,在大多数云环境中你应当使用附属在云主机上的存储设备(像AWS的EBS、Azure的Cloud Derive等)。如果你将数据保存在本地硬盘,当遇到节点故障时你就会丢失数据。 一旦数据得到持久化保存,你最大的挑战将变成:在将改变实时写入到持久化存储的同时保证内存NoSQL数据库的速度。 4. 稳定的性能 基于内存的NoSQL数据库(例如Redis和Memcached)的设计目标是:在毫秒延迟内,每秒钟能够处理超过10万个请求。但是,这个数字在云环境下是很难达到的,除非你遵循以下的原则: 确保你的解决方案使用的是功能最强大的云主机(cloud instances),例如AWS的m2.2xlarge/m2.4xlarge或者是Azure的A6/A7 ;同时,它还必须是一个专用环境。你也可以选择另外一种替代方案:实现一种机制,该机制能够阻止不同帐户之间的相互影响。该机制要能够基于一定的标准,对于执行的每一条命令,实时监控数据库的性能;如果发现延迟超过一定的阈值,就采用一定的方法将数据迁移到其他节点。 避免I/O瓶颈,尽量使用功能强大的存储设备,最好配置了RAID。其次,要确保在“突然爆发”的情况下也不能阻塞你的应用。例如,使用开源的Redis,你可以配置slave节点进行写操作;master节点专心处理用户请求,这样就能尽量避免“突然爆发”情况下的超时现象。 测试云厂商提供的关于I/O优化的各种建议,例如AWS’ PIOPS。大多数情况下,这些建议对随机访问非常有用(读或写);但是,对于内存NoSQL经常采用的像顺序写入等类似的操作意义不大。 如果内存数据库基于单线程架构(例如Redis),千万不要在同一个线程中运行多个数据库。不然,一个数据库在执行命令的过程中非常有可能阻塞另外一个数据库。 5. 网速 大多数云主机都配置了一块1Gbps网卡。在基于内存的NoSQL数据库中,该网卡需要完成以下操作: 处理应用请求 集群内部的交互 复制 存储访问 这很容易成为运行的瓶颈,因此,这里提供一些解决该问题的建议: 为每一台云主机配置10Gbps的网卡(要有心理准备,这非常昂贵) 选择能够为一些特殊应用配置多块1Gbps网卡的云提供商,例如AWS的VPC 采用能够在内存NoSQL节点之间高效分配资源的解决方案以减小网络拥塞。 6. 可扩展性 对于简单的KV(key/value)缓存(例如Memcached或者Redis的简单应用),扩展很少被认为是一个很严重的问题;因为在大多数情况下,这只需要在在服务器列表中增加或删除节点并修改哈希方法。但是,实际经历过该问题的人就会意识到这是一个非常令人痛苦的问题。对于该话题我们有一些建议: 采用一致性哈希(hashing)。如果采用简单的哈希函数(例如求模),在扩展的时候就意味着丢失所有的数据。另一方面,很多人不知道的是:即使采用一致性哈希函数,在扩展的时候你仍然会丢失部分数据。例如,在扩展的时候你会丢失1/N的数据,N是你扩展后节点的数目。所以,如果N比较小,这仍然是一个非常痛苦的过程(如果对于2个节点的集群采用一致性哈希就意味着丢失1/3的数据)。 构建一种方法将扩展操作通知到每一个NoSQL的客户端,以便阻止在扩展过程中不同的应用服务器写入不同节点。 当进行某些复杂操作时,例如 Redis的UNION和INTERSECT操作,扩展就成为一个真正的问题。这些操作与SQL中的JOIN命令完全一样。在multi-shard架构下,如果不增加一定的的延迟和复杂性这些操作就完全不能实现。应用级别的分片(Sharding)能够解决一定的问题,因为它允许在分片(shard)模式下运行一些复杂的命令。但这需要非常复杂的设计,并且与内存NoSQL数据库的配置密切相关(例如分片的应用必须明确知道每一个主键保存的节点);当遇到扩展时(例如re-sharding)还需要巨大的代码修改和额外开销。 另一方面,很多人声称新一代的超高性能RAM能够解决节点扩展中遇到的大多数问题。但现实与他们的声称有所不同,在25GB-30GB数据规模上,对于像Redis一样的内存数据库,还有一些其他方面的问题会阻止扩展的真正实施。这些问题与本文前面提到的挑战密切相关,像复制、I/O、每核一个线程的架构、网络开销等。 7. 巨大的运维开销 基于内存的NoSQL数据库的运维会产生巨大的额外开销。它需要对这些技术进行深入了解,以便在紧要关头做出正确决策。同时,因为这些技术变化频率很快(可能是非常快),你还要时刻关注这些系统的趋势和最新修改。 结论 正如我们上面所说的一样,为了更好的利用Redis、Memcached等开源技术带给我们的优势,我们需要对这些技术进行深入了解和掌握。对于企业的IT团队来说,为了能够在企业环境中使用基于内存的NoSQL数据库,了解如何更好的应对这些挑战就显得更为重要。不是我持有偏见,我强烈建议寻找一些能够克服可扩展性和高可用性限制而不损害功能和性能的商业解决方案;因为运行维护基于内存的NoSQL数据库需要该领域的高级专家,这是非常稀少的。 在市场上有一些关于Redis和Memcached的NoSQL服务(NoSQL-as-a-service);我建议你对每一个可用的服务进行深入的比对(就像DIY),以便挑选一个最好的解决方案。能够实际体验一下这些服务就更好了,很多服务商为这个目的都提供了免费体验。 原文发布时间为:2013-10-04 本文来自云栖社区合作伙伴“Linux中国”

优秀的个人博客,低调大师

从"模型"到"编排":企业级 Agentic Workflow 的分布式技能调度实战

把大模型接进企业只是起点;真正难的是把业务流程、规则与知识编排成一组可寻址、可调度、可治理的智能体技能。本文先以已落地的优秀方案(Berkeley 的 Compound AI Systems、Anthropic《Building Effective Agents》、吴恩达的 Agentic Workflow 四模式、MCP、Google A2A、HITL)确立支撑点,再映射到 ooder-platform 的真实实现:分层、技能中心、北向/南向、skillsFlow、Agent 委派与人在环。

优秀的个人博客,低调大师

解构现代企业级应用:基于 Vue 3 与 iframe 的微前端架构实践

摘要:在企业应用的现代化进程中,将一个全新的、技术栈领先的系统无缝嵌入到现有的(甚至是传统的)平台中,是一项普遍存在的挑战。本文将以一个典型的“客户360度视图”项目为例,深度剖析一种基于 iframe 的微前端架构方案。我们将探讨如何利用 Vue 3、Pinia 和加密隧道技术,攻克跨域身份认证、状态管理、存储分区等一系列难题,最终实现一个安全、高效且可维护的嵌入式平台。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册