来大姨妈不能吃什么水果| 儿童腮腺炎挂什么科| 旗舰店是什么意思| 瑞五行属性是什么| 沙悟净是什么生肖| 人体缺少蛋白质会有什么症状| 帽缨是什么意思| 7月26日是什么日子| 看见老鼠有什么预兆| 阴虱是什么原因引起的| 学生证件号码是什么| 心率过快吃什么药好| 风湿病是什么原因造成的| 胎儿缺氧是什么原因造成的| 男人说冷静一段时间是什么意思| gj是什么意思| 心肌炎是什么病严重吗| 舌尖痛吃什么药| 胸闷出汗是什么原因| 虾吃什么| 难入睡是什么原因| 熊喜欢吃什么食物| 龟头炎用什么软膏最好| 狗发烧吃什么药| 什么叫换手率| 胰腺炎吃什么| 淋巴细胞百分比偏高是什么原因| 辅警政审主要审些什么| 守望相助是什么意思| 耄耋读什么| 细菌性阴道炎用什么药效果最好| 家里养什么动物吃蟑螂| 嗓子疼吃什么药| approval是什么意思| 碳水化合物是什么食物| 高血压会引起什么并发症| 律的右边读什么| 甜菜根是什么菜| 掉是什么意思| 牙疼是什么原因导致的| 女人做什么好| 巨细胞病毒抗体阳性是什么意思| 第一次查怀孕挂什么科| 总是想睡觉是什么原因| 31年属什么生肖| 瑜伽什么意思| 良人是什么意思| 雪松香是什么味道| 什么叫血沉| 办港澳通行证需要带什么| 螯合剂是什么| 胃不舒服想吐是什么原因| 非洲人一日三餐吃什么| av是什么意思| 苍蝇是什么味道| 从胃到小腹连着疼是什么原因| lena是什么意思| 吃什么卵泡长得快又好| 押韵什么意思| 孕妇梦见牛是什么意思| 旅游有什么好处| 尿ph值高是什么意思| 肝不好吃什么中成药| 哑巴是什么生肖| 身体缺钾会有什么症状| q热是什么病| 子宫内膜异位症有什么症状| 身体缺钾吃什么可以补充| jdk是什么| 沙砾是什么意思| 什么的草帽| hpv有什么症状| 爱之深恨之切是什么意思| 安然无恙是什么意思| 梦见铲雪预示着什么| 机长是什么意思| 金代表什么生肖| 吃什么能消除子宫肌瘤| 为什么老是头晕| 牙齿打桩是什么意思| 同舟共济什么意思| 可好是什么意思| 血糖高的人早餐吃什么好| 维生素c十一什么意思| 水灵灵是什么意思| 捐精有什么要求| 公务员和事业编有什么区别| 抠鼻表情什么意思| 办幼儿园需要什么证| 闰月是什么| 梦见吐血是什么预兆| 京东积分有什么用| 计生用品是什么| 什么也别说| 什么是肺结节| 三点水一个分读什么| 汗血宝马什么意思| 吃什么补肾气| 十周年是什么婚| 属鼠的和什么属相不合| 独角仙生活在什么地方| 维生素b12高是什么原因| 叶凡为什么找石昊求救| 梦见背死人是什么意思| 一什么春笋| 用加一笔是什么字| 休学需要什么条件| 支原体阳性什么意思| 阴阳两虚吃什么药| 胃不好吃什么好消化又有营养| 秋天能干什么| 6月13日什么星座| 人生是什么| 关联词是什么意思| 12月26是什么星座| 3.28是什么星座| 琼脂是什么| 7月4号什么星座| 美国白宫是干什么的| 喝脱脂牛奶有什么好处| ng是什么单位| 盍是什么意思| 什么面粉最好| 朱元璋为什么不杀汤和| 蜜蜡五行属什么| 银手镯对身体有什么好处| 乳腺结节不能吃什么| 过敏了吃什么药好| 部分空蝶鞍是什么意思| 梦见小牛犊是什么预兆| 过刚易折什么意思| 龟吃什么| 心气不足吃什么中成药| 尿频繁什么原因| 认贼作父是什么意思| 姨妈是什么| 压疮用什么药最快能好| 角瓜是什么瓜| 鸣是什么家禽| 20岁长白头发是什么原因造成的| 生物学是什么| 鸠是什么鸟| 他克莫司是什么药| 急性心力衰竭的急救措施是什么| 7月6日是什么星座| 什么是幽门螺杆菌| 横眉冷对是什么意思| 飞机是什么意思| 倭瓜是什么瓜| 持续高烧不退是什么原因| 沙和尚是什么妖怪| 御木本是什么档次| 病危通知书意味着什么| 管医院的是什么部门| 宫颈lsil是什么意思| 施华洛世奇水晶是什么材质| 自由奔放是什么生肖| 以梦为马什么意思| 乳腺炎吃什么药好| 牛油果和什么不能一起吃| 吃什么食物养肝护肝| 膝盖积液用什么药最好| 猫猴子是什么| 为什么白带是黄绿色的| 雌二醇低是什么原因造成的| 手掌红是什么原因| 机械性窒息死亡是什么意思| 化脓性扁桃体炎吃什么药| 青色是什么色| tspot检查阳性能说明什么| 扭转乾坤是什么生肖| 开胃菜都有什么| 2017是什么年| bioisland是什么牌子| 孕妇多吃什么水果比较好| 炒房是什么意思| 挪车打什么电话| 红烧鱼用什么鱼| 高的部首是什么| 什么名字好听女生| 百褶裙配什么鞋子| 家有小女是什么生肖| 下午六点半是什么时辰| 儿童咳嗽吃什么消炎药| 蛆是什么| 阴壁有许多颗粒是什么原因| 银杯子喝水有什么好处| 经常肚子疼拉肚子是什么原因| 叫舅舅的是什么关系| 什么是白矮星| 六味地黄丸有什么功效| 什么叫做洗钱| 8月24是什么星座| 坐飞机不能带什么| 生理反应是什么意思| 鹿吃什么食物| 姓姜的男孩起什么名字好| 活血化瘀吃什么| 乳糖不耐受可以喝什么奶| walls是什么意思| 鹦鹉什么时候下蛋| 成都市市长是什么级别| 戴玉有什么好处| 唐顿庄园讲的是什么| 62岁属什么| 怀孕初期能吃什么不能吃什么| shake是什么意思| 肠穿孔有什么症状| 唯有女子与小人难养也什么意思| 停经闭经吃什么药调理| 什么是高| 中暑有什么症状| 无什么不什么的成语| 28.88红包代表什么意思| 为什么青霉素要做皮试| 心肌炎什么症状| 奔跑的马是什么牌子的车| 右眼皮上长痣代表什么| 专车是什么意思| 什么动物怕热| 溶血症是什么意思| 查肾功能挂什么科| 曙光什么意思| 感染科主要看什么病| 姜黄是什么东西| 毛字出头念什么| 吃燕窝有什么功效| 卵巢囊肿是什么| 维生素b5又叫什么| 基础代谢是什么意思| 赘肉是什么意思| 拉不出来屎是什么原因| 手腕扭伤挂什么科| 双重否定句是什么意思| 子宫内膜单纯性增生是什么意思| 腱鞘炎是什么引起的| 站着说话不腰疼什么意思| 肚脐眼大代表什么| 肝火旺盛吃什么药效果最好| 肤专家抑菌软膏主要治什么| 庙祝是什么意思| 广西有什么市| 智齿发炎吃什么药| 部分导联st段改变是什么意思| 喝什么茶可以降尿酸| 手足口病是什么病毒| 前列腺炎需要做什么检查| 最坚固的锁怕什么| 小肠火吃什么药| 池塘边的榕树上是什么歌| 靶向治疗是什么| 手麻木吃什么药| 示字旁与什么有关| 玟是什么意思| 四字五行属什么| 通班是什么意思| pcr是什么意思| 七月六号是什么星座| 血管鼓起来是什么原因| 菊花像什么| 面色无华什么意思| 买什么| 皮牙子是什么| 高血糖吃什么水果| 百度Jump to content

卧蚕的画法步骤图片,画卧蚕教程,卧蚕怎么画法步骤

From Wikipedia, the free encyclopedia
百度 以上两规定、四措施的出台,是长兴大队新党委班子上任以来对于部队管理具体要求的体现,也是为当前正在火热开展的冬春火灾防控战役打下坚实的基础,充分显示了抓好部队管理教育的决信和信心。

Code reuse is the practice of using existing source code to develop software instead of writing new code. Software reuse is a broader term that implies using any existing software asset to develop software instead of developing it again.[1][2]:?7? An asset that is relatively easy to reuse and offers significant value is considered to have high reusability.

Code reuse may be achieved different ways depending on a complexity of a programming language chosen and range from a lower-level approaches like code copy-pasting (e.g. via snippets),[3] simple functions (procedures or subroutines) or a bunch of objects or functions organized into modules (e.g. libraries)[4][2]:?7? or custom namespaces, and packages, frameworks or software suites in higher-levels.

Code reuse implies dependencies which can make code maintainability harder.[citation needed] At least one study found that code reuse at the class level reduces technical debt.[5]

Overview

[edit]

Ad hoc code reuse has been practiced from the earliest days of programming. Programmers have always reused sections of code, templates, functions, and procedures. Software reuse as a recognized area of study in software engineering, however, dates only from 1968 when Douglas McIlroy of Bell Laboratories proposed basing the software industry on reusable components.

Code reuse aims to save time and resources and reduce redundancy by taking advantage of assets that have already been created in some form within the software product development process.[6] The key idea in reuse is that parts of a computer program written at one time can be or should be used in the construction of other programs written at a later time.

Code reuse may imply the creation of a separately maintained version of the reusable assets. While code is the most common resource selected for reuse, other assets generated during the development cycle may offer opportunities for reuse: software components, test suites, designs, documentation, and so on.[7]

The software library is a good example of code reuse. Programmers may decide to create internal abstractions so that certain parts of their program can be reused, or may create custom libraries for their own use. Some characteristics that make software more easily reusable are modularity, loose coupling, high cohesion, information hiding and separation of concerns.

For newly written code to use a piece of existing code, some kind of interface, or means of communication, must be defined. These commonly include a "call" or use of a subroutine, object, class, or prototype. In organizations, such practices are formalized and standardized by domain engineering, also known as software product line engineering.

The general practice of using a prior version of an extant program as a starting point for the next version, is also a form of code reuse.

Some so-called code "reuse" involves simply copying some or all of the code from an existing program into a new one. While organizations can realize time to market benefits for a new product with this approach, they can subsequently be saddled with many of the same code duplication problems caused by cut and paste programming.

Many researchers have worked to make reuse faster, easier, more systematic, and an integral part of the normal process of programming. These are some of the main goals behind the invention of object-oriented programming, which became one of the most common forms of formalized reuse. A somewhat later invention is generic programming.

Another, newer means is to use software "generators", programs which can create new programs of a certain type, based on a set of parameters that users choose. Fields of study about such systems are generative programming and metaprogramming.

Types of reuse

[edit]

Concerning motivation and driving factors, reuse can be:

  • Opportunistic – While getting ready to begin a project, the team realizes that there are existing components that they can reuse.
  • Planned – A team strategically designs components so that they'll be reusable in future projects.

Reuse can be categorized further:

  • Internal reuse – A team reuses its own components. This may be a business decision, since the team may want to control a component critical to the project.
  • External reuse – A team may choose to license a third-party component. Licensing a third-party component typically costs the team 1 to 20 percent of what it would cost to develop internally.[8] The team must also consider the time it takes to find, learn and integrate the component.

Concerning form or structure of reuse, code can be:[9]

  • Referenced – The client code contains a reference to reused code, and thus they have distinct life cycles and can have distinct versions.
  • Forked – The client code contains a local or private copy of the reused code, and thus they share a single life cycle and a single version.

Fork-reuse is often discouraged because it's a form of code duplication, which requires that every bug is corrected in each copy, and enhancements made to reused code need to be manually merged in every copy or they become out-of-date. However, fork-reuse can have benefits such as isolation, flexibility to change the reused code, easier packaging, deployment and version management.[9]

Systematic

[edit]

Systematic software reuse is a strategy for increasing productivity and improving the quality of the software industry. Although it is simple in concept, successful software reuse implementation is difficult in practice. A reason put forward for this is the dependence of software reuse on the context in which it is implemented. Some problematic issues that need to be addressed related to systematic software reuse are:[10]

  • a clear and well-defined product vision is an essential foundation to a software product line (SPL).
  • an evolutionary implementation strategy would be a more pragmatic strategy for the company.
  • there exist a need for continuous management support and leadership to ensure success.
  • an appropriate organisational structure is needed to support SPL engineering.
  • the change of mindset from a project-centric company to a product-oriented company is essential.

Examples

[edit]

Software libraries

[edit]

A very common example of code reuse is the technique of using a software library. Many common operations, such as converting information among different well-known formats, accessing external storage, interfacing with external programs, or manipulating information (numbers, words, names, locations, dates, etc.) in common ways, are needed by many different programs. Authors of new programs can use the code in a software library to perform these tasks, instead of "re-inventing the wheel", by writing fully new code directly in a program to perform an operation. Library implementations often have the benefit of being well-tested and covering unusual or arcane cases. Disadvantages include the inability to tweak details which may affect performance or the desired output, and the time and cost of acquiring, learning, and configuring the library.[11]

Design patterns

[edit]

A design pattern is a general solution to a recurring problem. Design patterns are more conceptual than tangible and can be modified to fit the exact need. However, abstract classes and interfaces can be reused to implement certain patterns.

Frameworks

[edit]

Developers generally reuse large pieces of software via third-party applications and frameworks, though frameworks are usually domain-specific and applicable only to families of applications[citation needed].

Higher-order function

[edit]

In functional programming higher-order functions can be used in many cases where design patterns or frameworks were formerly used.

Retrocomputing

[edit]

Retrocomputing encompasses reuse of code, simply because retro programs are being run on older computers, or emulators for them.

Computer security

[edit]

In computer security code-reuse is employed as a software exploit method.[12] When an attacker is not able to directly input code to modify the control flow of a program, for example in presence of code injection defenses such as W^X, he or she can redirect the control flow to code sequences existing in memory.

Examples of code-reuse attacks are return-to-libc attack, return-oriented programming, and jump-oriented programming.[12][13]

Components

[edit]

A component, in an object-oriented extent, represents a set of collaborative classes (or only one class) and its interfaces. The interfaces are responsible for enabling the replacement of components. Reusable components can also be isolated and synchronized between SCM repositories using component source code management technologies (CSCM).[citation needed]

Outside computers

[edit]

The whole concept of "code reuse" can also encompass engineering applications outside software. For instance, parametric modeling in computer-aided design allows for creating reusable designs. Standardization results in creation of interoperable parts that can be then reused in many contexts.[citation needed]

Criticism

[edit]

Code reuse results in dependency on the component being reused. Rob Pike opined that "A little copying is better than a little dependency". When he joined Google, the company was putting heavy emphasis on code reuse. He believes that Google's codebase still suffers from results of that former policy in terms of compilation speed and maintainability.[14]

Reusable code requires usually more effort to write and design. Fred Brooks discusses the significantly higher cost associated with that effort in his essays "The Tar Pit" and "No Silver Bullet" The fallacy is that effort is often spent without careful understanding of the mechanisms through which that cost will be redeemed. The justification often comes from incorrectly drawing parallels to reusable parts in a physical manufacturing process. Incorrect because writing code is analogous to design of a single product rather than production of multiple units.

See also

[edit]

References

[edit]
  1. ^ Frakes, W.B.; Kyo Kang (July 2005). "Software Reuse Research: Status and Future". IEEE Transactions on Software Engineering. 31 (7): 529–536. CiteSeerX 10.1.1.75.635. doi:10.1109/TSE.2005.85. S2CID 14561810.
  2. ^ a b Reddy, Martin (2011). API design for C++. Boston: Morgan Kaufmann. ISBN 978-0-12-385004-1. OCLC 704559821.
  3. ^ Selaolo, Karabo; Hlomani, Hlomani (2016). "Towards An Algorithms Ontology Cluster: for Modular Code Reuse and Polyglot Programming". Advances in Computer Science. 5: 63 – via ResearchGate.
  4. ^ "4. Code Reuse: Functions and Modules - Head First Python, 2nd Edition [Book]". www.oreilly.com. Retrieved 2025-08-05.
  5. ^ Feitosa, Daniel; Ampatzoglou, Apostolos; Gkortzis, Antonios; Bibi, Stamatia; Chatzigeorgiou, Alexander (September 2020). "CODE reuse in practice: Benefiting or harming technical debt" (PDF). Journal of Systems and Software. 167 110618. doi:10.1016/j.jss.2020.110618. S2CID 219502749.
  6. ^ Lombard Hill Group. "What Is Software Reuse?". lombardhill.com. Lombard Hill Group. Archived from the original on 23 January 2019. Retrieved 22 October 2014.
  7. ^ Lombard Hill Group. "What Is Software Reuse?". Archived from the original on 23 January 2019. Retrieved 22 October 2014.
  8. ^ McConnell, Steve (1996). Rapid Development: Taming Wild Software Schedules. Pearson Education. ISBN 978-1-55615-900-8.
  9. ^ a b Colombo, F. (2011). "It's not just reuse". SharedNow.blogspot.
  10. ^ Champman, M.; Van der Merwe, Alta (2008). "Contemplating Systematic Software Reuse in a Small Project-centric Company". Proceeding SAICSIT '08 Proceedings of the 2008 annual research conference of the South African Institute of Computer Scientists and Information Technologists on IT research in developing countries: riding the wave of technology. doi:10.1145/1456659.1456662. ISBN 978-1-60558-286-3.
  11. ^ "Code reuse". DocForge. Archived from the original on 2025-08-05. Retrieved 28 July 2025.
  12. ^ a b Bletsch, Tyler (2011). Code-reuse Attacks: New Frontiers and Defenses. North Carolina State University. ISBN 978-1-124-75297-6.
  13. ^ Bletsch, Tyler; Jiang, Xuxian; Freeh, Vince W; Liang, Zhenkai (2011). "Jump-oriented programming: a new class of code-reuse attack" (PDF). Proceedings of the 6th ACM Symposium on Information, Computer and Communications Security. ACM. pp. 30–40. doi:10.1145/1966913.1966919. ISBN 978-1-4503-0564-8. Archived from the original (PDF) on 2025-08-05. Retrieved 2025-08-05.
  14. ^ The Go Programming Language (2025-08-05), Go Proverbs – Rob Pike – Gopherfest – November 18, 2015, archived from the original on 2025-08-05, retrieved 26 February 2016
[edit]
抽油烟机买什么样的好 兔日冲鸡什么意思 日柱金舆是什么意思 嗜睡是什么原因 发热门诊属于什么科
中暑吃什么食物好 看指甲去医院挂什么科 为什么晚上睡不着觉 什么血型不招蚊子 毛毛虫吃什么
镀18k金是什么意思 什么是伤官见官 乳房疼痛应该挂什么科 蒺藜是什么意思 怕老婆的男人说明什么
荡气回肠是什么意思 养生吃什么最好 县宣传部长是什么级别 晧字五行属什么 贴水是什么意思
医学ca是什么意思hcv8jop7ns6r.cn 怀孕孕酮低吃什么补得快hcv9jop3ns1r.cn 不可翻转干燥是什么意思hcv8jop4ns9r.cn 梦见小猪仔什么意思hcv9jop0ns0r.cn icloud是什么hcv9jop4ns9r.cn
7月23号是什么星座hcv9jop3ns2r.cn 收阴是什么意思travellingsim.com 中药先煎是什么意思hcv9jop1ns4r.cn 委曲求全是什么生肖xianpinbao.com trab抗体偏高代表什么520myf.com
汉城为什么改名叫首尔onlinewuye.com 二婚结婚需要什么证件hcv8jop2ns7r.cn 腹腔积水是什么原因造成的xinjiangjialails.com 甘油是什么东西hcv9jop0ns5r.cn 宝宝腹泻吃什么药hcv8jop5ns1r.cn
题词是什么意思hcv9jop1ns9r.cn u是什么元素hcv8jop0ns2r.cn 十月份是什么季节cl108k.com 戒色有什么好处hcv7jop7ns1r.cn 什么是再生纤维素纤维hcv9jop4ns4r.cn
百度