我们正在努力恢复Google Play商店上的Unionpedia应用程序
传出传入
🌟我们简化了设计以优化导航!
Instagram Facebook X LinkedIn

重造轮子

指数 重造轮子

車輪 重造轮子(Reinventing the wheel)是重新创造一个已有的或是早已被-zh-hans:优化; zh-hant:最佳化;zh-tw:最佳化-過的基本方法,此用語常出現在软件开发或其他工程领域中。 「重造轮子」一詞的由來,是因為輪子自從被發明後,在使用上沒有太大的缺陷,足以應付多數需求,原則上後人只需要直接應用即可,重新再發明一次輪子不但沒有意義、浪費時間、還會分散研究者的資源,使其無法投入更有意義及價值的目標。 不過作為教學與學習目的,「重造轮子」反而是重要的方法:藉由重新研究的過程讓學習者領悟這項技術或方法的核心運作精隨。相對於「-zh-hans:应试教育; zh-hant:應試教育;zh-tw:填鴨式教育-」只是片面期待學習者能迅速完美地的應用技術及方法;在「重造轮子」的學習初期,不直接提供學習者最終結論或關鍵方法,反而是經由一步一步的導引,讓學習者自行完成其中重要的步驟,進而理解此技術或方法的邏輯思維。 在實際應用層面,從事软件开发的工作者也時常在做「重造轮子」的事,不過這並非全無價值,例如用來迴避-zh-hans:软件许可; zh-hant:軟體許可;zh-tw:軟體授權-問題、第三方模組或零件的技術限制。例如要對資料排序時,最常使用的快速排序法,雖然廣為人知、而且已建置於 C++ 與 Java 的通用函式庫中,但網頁用途的 Javascript 在某些實作版本(如網頁瀏覽器)卻不一定包括此演算法,又或是效能因素考量,此時可能須要「重造轮子」──重新編寫快速排序法。.

目录

  1. 15 关系: 反面模式快速排序C++第二系統效應非我所創魯布·戈德堡機械軟體許可软件开发JavaJavaScript搞笑諾貝爾獎澳大利亚最优化最佳实践

  2. 英語熟語

反面模式

在软件工程中,一个反面模式(anti-pattern或antipattern)指的是在实践中明显出现但又低效或是有待优化的设计模式,是用来解决问题的带有共同性的不良方法。它们已经经过研究并分类,以防止日后重蹈覆辙,并能在研发尚未投产的系统时辨认出来。 Andrew Koenig在1995年造了anti-pattern这个词,灵感来自于GoF的《设计模式》一书。而这本书则在软件领域引入了“设计模式”(design pattern)的概念。三年后antipattern因《AntiPatterns》这本书而获得普及,而它的使用也从软件设计领域扩展到了日常的社会互动中。按《AntiPatterns》作者的说法,可以用至少两个关键因素来把反面模式和不良习惯、错误的实践或糟糕的想法区分开来:.

查看 重造轮子和反面模式

快速排序

快速排序(Quicksort),又稱劃分交換排序(partition-exchange sort),簡稱快排,一種排序算法,最早由東尼·霍爾提出。在平均狀況下,排序 n 個項目要 \ O (n\log n) (大O符号)次比較。在最壞狀況下則需要 O (n^2) 次比較,但這種狀況並不常見。事實上,快速排序 \Theta(n\log n) 通常明顯比其他演算法更快,因為它的內部循环(inner loop)可以在大部分的架構上很有效率地達成。.

查看 重造轮子和快速排序

C++

C++是一種使用廣泛的计算机程序設計語言。它是一種通用程序設計語言,支援多重编程模式,例如程序化程序設計、数据抽象、面向对象程序設計、泛型程序設計和设计模式等。 比雅尼·斯特勞斯特魯普博士在贝尔实验室工作期间在20世紀80年代發明並實現了C++。起初,這種語言被稱作“C with Classes”(“包含‘類’的C語言”),作為C語言的增強版出現。随后,C++不斷增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多繼承(multiple inheritance)、标准模板库(standard template library, STL)、异常处理(exception)、运行时类型信息(Runtime type information)、命名空間(namespace)等概念逐漸納入標準。1998年,國際標準組織(ISO)頒布了C++程序設計語言的第一個國際標準ISO/IEC 14882:1998,目前最新标准为ISO/IEC 14882:2017。根據《C++編--程思想》(Thinking in C++)一書,C++與C的代码执行效率往往相差在±5%之間。 C++語言發展大概可以分為三個階段:第一階段從80年代到1995年。這一階段C++語言基本上是傳統類型上的面向对象語言,並且憑藉着接近C語言的效率,在工業界使用的開發語言中佔據了相當大份額;第二階段從1995年到2000年,這一階段由於標準模板庫(STL)和後來的Boost等程式庫的出現,泛型程序設計在C++中佔據了越來越多的比重。當然,同時由於Java、C#等語言的出現和硬體價格的大規模下降,C++受到了一定的衝擊;第三階段從2000年至今,由於以Loki、MPL(Boost)等程式庫為代表的產生式編程和模板元編程的出現,C++出現了發展歷史上又一個新的高峰,這些新技術的出現以及和原有技術的融合,使C++已經成為當今主流程序設計語言中最複雜的一員。.

查看 重造轮子和C++

第二系統效應

第二系統效應(second-system effect),又稱第二系統症候群(second-system syndrome.),由佛瑞德·布魯克斯在《人月神話》中提出的經驗概括。它認為,在完成一個小型、優雅而成功的系統之後,人們傾向於對下一個計畫有過度的期待,可能因此建造出一個巨大、有各種特色的怪獸系統。第二系統效應可能造成軟體專案計畫過度設計,產生太多變數,過度複雜,無法達成期待,並因而失敗。 Category:软件工程 Category:反模式 Category:软件质量.

查看 重造轮子和第二系統效應

非我所創

非我所創或NIH综合症(英文:Not Invented Here Syndrome),指的是社会、公司和组织中的一种文化现象,人们不愿意使用、购买或者接受某种产品、研究成果或者知识,不是出于技术或者法律等因素,而只是因为它源自其他地方。 NIH是英文Not Invented Here(非我所創)的缩写,通常带有贬义。在国家范围内的NIH综合征是民族主义的一种形式,比如中国历史上曾经出现的抵制日货运动。 苹果公司的Mac OS操作系统曾经墨守自己较早提出而被界面设计界奉为经典的Apple Human Interface Guidelines,其他操作系统中出现的许多创新只要违反或者超出这一规范,都不予采纳。.

查看 重造轮子和非我所創

魯布·戈德堡機械

魯布·戈德堡機械(Rube Goldberg machine)是一種被設計得過度複雜的機械組合,以迂迴曲折的方法去完成一些其實是非常簡單的工作,例如倒一杯茶,或打一顆蛋等等。設計者必須計算精確,令機械的每個部件都能夠準確發揮功用,因為任何一個環節出錯,都極有可能令原定的任務不能達成。由於魯布·戈德堡機械運作繁複而費時,而且以簡陋的零件組合而成,所以整個過程往往會給人荒謬、滑稽的感覺。 美國漫畫家魯布·戈德堡在他的作品中創作出這種機械,故人們就以「魯布·戈德堡機械」命名這種裝置。.

查看 重造轮子和魯布·戈德堡機械

軟體許可

#重定向 软件许可证.

查看 重造轮子和軟體許可

輪是以圓形的物體造成,可以繞著軸心轉動。透過,大為減少磨擦。如果配上軸,即成為車的最主要構成部份。輪在交通運輸中非常有用,是人類的重要發明之一。除了車輪以外,其他圓形的輪還有、飛輪等等。 輪的發明不但是交通運輸的一大突破,更是人類技術的一項重要成就。輪和軸組合的輪軸是六種簡單機械之一。由輪衍生的現代技術還有螺旋槳、噴射引擎、飛輪、陀螺儀、渦輪機等。.

查看 重造轮子和輪

软件开发

软件开发(Software development)是根据用户要求建造出软件系统或者系统中软件部分的一个产品开发的過程。软件开发是一项包括需求获取、开发规划、需求分析和设计、编程实现、软件测试、版本控制的系统工程。换句话说,软件开发就是一系列最终构建出软件产品的活动。软件开发可能包括研究、新的开发工作、修改、复用、重新设计(再工程)、维护,或者任何最终获得软件产品的其他活动。尤其是在软件开发过程的初始阶段,其中可能会涉及许多的部门,包括市场营销、工程设计、研究与开发以及一般意义上的管理 Joseph M.

查看 重造轮子和软件开发

Java

Java是一種廣泛使用的電腦程式設計語言,擁有跨平台、物件導向、泛型程式設計的特性,广泛应用于企业级Web应用开发和移动应用开发。 任職於昇陽電腦的詹姆斯·高斯林等人于1990年代初开发Java語言的雛形,最初被命名为Oak,目標設定在家用电器等小型系統的程式语言,應用在电视机、电话、闹钟、烤面包机等家用电器的控制和通訊。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代網際網路的发展,Sun公司看見Oak在網際網路上应用的前景,于是改造了Oak,於1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的-zh-hans:指针; zh-hant:指標;-,改以-zh-hans:引用; zh-hant:參照;-取代,同時移除了C++中的--和多重继承特性,改用接口取代,增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。昇陽電腦对Java语言的解释是:「Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言」 Java不同於一般的编译語言或直譯語言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的執行速度有了大幅提升。 与传统型態不同,Sun公司在推出Java時就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司後來推出了与之竞争的.NET平台以及模仿Java的C#语言。後來Sun公司被甲骨文公司併購,Java也隨之成為甲骨文公司的產品。 現時,行動作業系統Android大部分的代碼採用Java 程式設計語言編程。.

查看 重造轮子和Java

JavaScript

JavaScript,一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的直譯語言。它已经由ECMA(欧洲电脑制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、Firefox、Safari、Opera)支持。JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。 虽然JavaScript与Java这门语言不管是在名字上,或是在语法上都有很多相似性,但这两门编程语言从设计之初就有很大的不同,JavaScript的语言设计主要受到了Self(一种基于原型的编程语言)和Scheme(一门函数式编程语言)的影响。在语法结构上它又与C语言有很多相似(例如if条件语句、while循环、switch语句、do-while循环等)。 在客户端,JavaScript在传统意义上被实现为一种解释语言,但在最近,它已经可以被即时编译(JIT)执行。随着最新的HTML5和CSS3语言标准的推行它还可用于游戏、桌面和移动应用程序的开发和在服务器端网络环境运行,如Node.js。.

查看 重造轮子和JavaScript

搞笑諾貝爾獎

搞笑諾貝爾獎(Ig Nobel Prizes),又名幽默諾貝爾獎,是對諾貝爾獎的有趣模仿。獲獎成就“低俗、下流;卻又是一種社會批評,諷刺地揭露出荒謬的現象;并且是有用的研究和知識。” 搞笑諾貝爾獎由科學幽默雜誌《》主辦,授予“乍一看好笑,后又引人深思”的科學領域十大成就。該獎約於每年九月在哈佛大學桑德斯劇場舉行,隨後會有獲獎者在麻省理工學院進行公開演講。評審委員中有些是真正的諾貝爾獎得主。 這個獎項的名稱“Ig Nobel Prize”與“ignoble”(不光彩的,令人感到羞恥的)雙關。在颁奖典礼上其正式发音是/ˌɪɡnoʊˈbɛl/ ,而不是“ignoble”的发音/ɪɡˈnoʊbəl/。.

查看 重造轮子和搞笑諾貝爾獎

澳大利亚

澳大--利亚联邦(Commonwealth of Australia),通称澳大--利亚(Australia,缩写为 AU、AUS),中文环境下(尤其是臺灣、香港等地)常使用「澳--洲」代替“--”,是全球面积第六大的国家,大洋洲最大的国家和南半球第二大的国家。澳大利亚国土包括澳大利亚大陆,塔斯曼尼亚岛及数个海外的岛屿,面积和美國本土相似,是世界上唯一一个国土覆盖整个大陆的国家。與隔海相望的东南近邻是紐西蘭,西北是印度尼西亚,北边是巴布亚新几内亚、西巴布亚及东帝汶。澳大利亚的首都位于堪培拉,最大城市为悉尼。 澳大利亞一詞源於拉丁語,意思為“未知的南方大陸”(terra australis incognita)。其所在的地理位置通常稱作澳洲大陆,是地球上最小的大陆板塊。澳大利亚人均擁有國土面積0.353平方公里,是世界最廣闊的國家之一。有多樣的自然景觀,包括熱帶雨林、別稱為“紅色中心”的沙漠、吸引很多旅客的海濱及馳名遐邇的自然遺產大堡礁及烏魯汝Davison, Hirst and Macintyre, pp.

查看 重造轮子和澳大利亚

最优化

最优化,是应用数学的一个分支,主要研究以下形式的问题:.

查看 重造轮子和最优化

最佳实践

最佳实践(best practice)是一个管理学概念,认为存在某种技术、方法、过程、活动或机制可以使生产或管理实践的结果达到最优,并减少出错的可能性。 最佳实践还常常被咨询公司、研究机构、政府机构和行业协会定义为:为持续有效地达到企业目标而采取的最成功的解决方案或解决问题的方法。 最佳實踐常被用來作為一種強制行政標準以保證質量,其基礎可以是自我評估和標杆管理。 最佳實踐是ISO 9000和ISO 14001認證的管理標準。.

查看 重造轮子和最佳实践

另见

英語熟語

亦称为 重复造轮子,重新发明方的轮子。