标签:#软件架构

共 55 篇文章

Scaffold (编程)

Scaffolding,在编程领域可翻译为“脚手架”或“支架”,用于模型–视图–控制器 软件架构下的框架代码自动生成,指定应用程序数据库如何使用。编译器或框架使用预定义的代码或模板生成最终可用的数据库条目增刪查改的代码实现。 实现框架或平台 ASP.NET MVC 参考文献 外部链接 [http://guides.rubyonrails.org/getting_started.html#getting-up-and-running-qu…

控制反转

控制反转(,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。 起源 早在2004年,Martin Fowler就提出了“哪些方面的控制被反转了?”这个问题。他总结出是依赖对象的获得被反转了,因为大多数应用程序都是由两个或是更多的类通过彼此的合作来实现业务…

KDE Software Compilation

KDE Software Compilation(KDE SC)是一個KDE的桌面環境。2010年2月4.4版發布之前的版本,Software Compilation稱為K Desktop Environment。 歷史 起源 是由德國人於1996年就讀於蒂宾根大學開始的一個計劃。當時,他憂心於Unix桌面沒有一個應用程式外觀、感受或工作方式和其他程式一樣。他建議不僅是建立一套應用程序,而是一個桌面環境,用戶可以得到相同的外觀、感受和工…

网络应用程序

是一個開放原始碼的网络应用程序]] 网络应用程序(,英文简称 *')分为客户端到服务器架构或无服务器后端架构。其中的客户端就是网页浏览器。常見的網頁應用程式有Webmail、網路购物、網路拍賣、wiki、網路論壇、網誌、網路遊戲等诸多應用。 网络应用程序風行的原因之一,是因為可以直接在各種電腦平台上執行,不需要事先安裝或定期升級等程序。 定义及类似术语 各种类型的动态网页和“网络应用程序” 之间的区别一般是不清楚的。最有可能接近“网络应…

前端和后端

前端()和后端()是描述进程开始和结束的通用词汇。前端作用于采集输入信息,后端进行处理。计算机程序的界面样式,视觉呈现属于前端。 计算机科学 在软件架构和程序设计领域,前端是软件系统中直接和用户交互的部分,而后端控制着軟體的输出。将软件分为前端和后端是一种将软件不同功能的部分相互分离的抽象。 大部分软件都概念性地分成了前端和后端,但大多数情况下,软件的後端经常是隐藏着而不被用户看到。但是,有些软件仅仅是另一个已经存在的软件的前端,就像一…

表现层状态转换

表现层状态转换(,縮寫:REST)是博士于2000年在他的博士论文中提出来的一种万维网软件架构风格,目的是便于不同软件/程序在网络(例如互联网)中互相传递信息。表現層狀態轉換根基於超文本传输协议,是一種軟體架構。符合或相容於這種架構風格(簡稱為 REST 或 RESTful)的網絡服務,用戶端在發出存取和操作網絡資源的請求時可以發出統一資源標識符。表現層狀態轉換提供了在互聯網絡的計算系統之間,彼此資源可交互使用的協作性質(interop…

软件组件

软件组件是軟體裡封裝特定功能(关注点分离)的模組單位。 以下也是一些模組的理想屬性: 內聚性 封裝相關子程序 可重用性 穩健性 可取代性 可以用另一個相同介面的組件取代 具有软件文档 可測試 第三方組件 有些組件是由開發軟體系統的公司,甚至是同一組織所開發,有些則是,由其他單位開發,要整合到系統中。 實務和開發模式 基于组件的软件工程 大型系統中,基于组件的软件工程會鼓勵嚴謹的流程,以管理。 -==框架=== 有些組件符合特定框架技術,…

软件架构

软件架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。软件架构會包括軟體組件、組件之間的關係,組件特性以及組件間關係的特性。软件架构可以和建筑物的架构相比拟。软件架构是构建计算机软件,開發系統以及計劃進行的基础,可以列出開發團隊需要完成的任務。 软件架构是在軟體的基礎架構上進行決策,決定後再做修改的代價很大。软件架构中的決策包括在軟體設計時的一些特殊結構性選項,例如要控制太空船登陸艇的系統需要快速而且可靠,因此…

貧血領域模型

貧血領域模型(anemic domain model)是一種軟體開發的模型,是指其領域物件只有部份业务逻辑(例如資料驗證、計算、規則等),甚至沒有任何业务逻辑。像以下的模型就是貧血領域模型,有資料讀取和寫入的介面函式,但沒有其他函式。 class Rectangle { public int Height { get; set; } public int Width { get; set; } } 貧血領域模型的业务逻辑會放在程式的架構…

业务逻辑

在计算机软件中,业务逻辑()也称为领域逻辑,是指根据现实世界的需求或所需的功能来编写的有关增删查改数据的代码。它编码了决定数据如何创建、存储和更改的 。与之相对的是软件的其余部分,如数据库管理、用户界面显示、系统基础设施或连接不同程序组件的底层细节。 与业务规则的区分 业务逻辑应与(business rules)加以区分。业务逻辑是决定数据如何转换、计算以及如何路由到人员或软件的流程(工作流),是过程性的。业务规则则是业务策略的正式表达…

界面隐喻

界面隐喻(Interface metaphor)是指程序設計員在用户界面设计時用大多數人所熟知的知識和術語來描述用户界面中的一系列视觉、动作和程序。用户界面會被设计成类似于現實中的物理实体。引入界面隐喻這個概念的目的是让用户能了解如何与用户界面互动,並帮助用戶更好地理解用戶界面。例如操作系统的文件系统被形象地稱為文件和文件夹。

图形用户界面

。它是类Unix系统X Window系统图形用户界面之一]] 图形用户界面(,缩写:GUI)是指采用图形方式显示的计算机操作用戶介面。与早期计算机使用的命令行界面相比,除了降低使用者的操作負擔之外,對於新使用者而言,图形界面对于用户来说在视觉上更易于接受,學習成本大幅下降,也讓電腦的大眾化得以實現。 雖然图形用户界面已經成為現代電腦的主要介面,然而這介面必定要透過在顯示器的特定位置,以「各種美觀、而不單調的視覺訊息」提示使用者「狀態的改…

超級應用程式

超級應用程式(),亦稱超級APP,是集多種功能於一身的手機應用程式,並整合滿足用戶生活需求的平台,最為人熟悉的例子為中國的WeChat和支付寶、印度的Tata Neu、东南亚的Grab和俄罗斯的Max等。 參考資料 參見 渐进式网络应用程序 快應用 * 微信小程序

快应用

快应用 () 是中华人民共和国手机厂商研发并集成于手机操作系统的轻量级应用程式。 历史 2018年3月,华为、小米、OPPO、Vivo、联想、金立、魅族、中兴(努比亚)、一加宣布成立“快应用联盟”,联合推出快应用。次年3月20日在TEF·2019快应用开发者大会上,又宣布海信和中国移动新加入该联盟,扩充至共12家公司。 截至2019年底,快应用覆盖1亿设备,用户打开20亿次,创建了1亿个桌面图标;共有2万个开发者注册,提交了1100个快…

微信小程序

微信小程序()是腾讯于2017年1月9日推出的一种不需要下载安装,即可在微信平台上使用的應用程式,主要提供给企业、政府、媒体、其他组织或个人的开发者在微信平台上提供服务。 历史 2017年1月9日,微信创始人张小龙在2017微信公开课Pro上发布的小程序正式上线。 2017年12月28日,微信更新的6.6.1版本开放以小程序开发游戏,微信启动页面强制开屏小游戏「跳一跳」。 2018年11月,在第五届世界互联网大会“世界互联网领先科技成果…

軟體架構恢復

軟體架構恢復是一種從软件系統程式或原始碼中提取軟體架構的方法。提取軟體架構的流程包括將許多的程式實體(例如檔案、類別、函數等)轉換為子系統,其轉換的準則可能是和應用程式有關的,也可能和應用程式無關。從中恢復軟體架構的原因多半是以往的程式沒有架構文件,就算有,也可能已和最終系統有相當的差異, 軟體架構恢復也可能是為了要進行軟體改造,所要求提出的程序。 作法 大部份軟體架構恢復的作法會針對系統進行靜態程序分析,若是針對物件導向系統,其中有大…

領域驅動設計

领域驱动设计(,缩写 DDD)是軟體程式碼的結構及語言(類別名稱、類別方法、類別變數)需符合業務領域中的習慣用法。例如處理租賃業務的軟體,其型別可以命名為LoanApplication及Customer,其方法可以用AcceptOffer及Withdraw。 领域驱动设计可以將實現對應到持续进化的模型。 领域驱动设计的前提是: 把项目的主要重点放在核心領域(core domain)和领域逻辑 以領域中的模型為基礎,進行复杂的设计 讓技術…

模型驱动工程

模型驱动工程(MDE, Model-Driven Engineering)是软件工程的一个分支,它将模型与建模拓展到软件开发的所有方面,形成一个多维建模空间,从而将工程活动建立在这些模型的映射和转换之上。 MDE的基本原则是将模型视为第一实体,将所有软件产物当做模型或模型要素。 背景 在计算机应用领域,“模型驱动”(model-driven)概念在国际上的广泛关注,主要是在对象管理组织(OMG)2002年提出的“模型驱动架构”(MDA)…

基于组件的软件工程

2.0表示的二個組件。checkout組件負責處理客戶的訂單,需求card processing組件在客戶的信用卡或簽帳卡上請款(後者的組件需提供此一機能)]] 基于组件的软件工程(Component-based software engineering,简称CBSE)或基于组件的开发(Component-Based Development,简称CBD)是針對系統的廣泛功能,進行关注点分离的軟體工程方式。此方式是以復用為基礎的作法,定義…

多租戶技術

多租戶技術()或称多重租赁技术,是一種軟體架構技術,它是在探討與實作如何於多用戶的環境下共用相同的系統或程式元件,並且仍可確保各用戶間資料的隔離性。 由於雲端運算議題的發燒,在共用的資料中心內如何以單一系統架構與服務提供多數用戶端相同甚至可客製化的服務,並且仍然可以保障客戶的資料隔離,讓多租戶技術成為雲端運算技術下的顯學。 歷史 多租戶技術源於1960年代,許多公司為了要使用更多的運算資源,向持有大型主機(Mainframe)的供應商租…