Don't Repeat Yourself
"Don't repeat yourself" (DRY) is a principle of software development aimed at reducing repetition of information which is likely to change, replacing it with abstractions that are less likely to change, or using data normalization which avoids redundancy in the first place. The DRY principle is stated as "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system". The principle has been formulated by Andy Hunt and Dave Thomas in their book '' The Pragmatic Programmer''. They apply it quite broadly to include database schemas, test plans, the build system, even documentation. When the DRY principle is applied successfully, a modification of any single element of a system does not require a change in other logically unrelated elements. Additionally, elements that are logically related all change predictably and uniformly, and are thus kept in sync. Besides using methods and subroutines in their code, Thomas and Hunt rely on c ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Principle
A principle may relate to a fundamental truth or proposition that serves as the foundation for a system of beliefs or behavior or a chain of reasoning. They provide a guide for behavior or evaluation. A principle can make values explicit, so they are expressed in the form of rules and standards. Principles unpack the values underlying them more concretely so that the values can be more easily operationalized in policy statements and actions. In law, higher order, overarching principles establish rules to be followed, modified by sentencing guidelines relating to context and proportionality. In science and nature, a principle may define the essential characteristics of the system, or reflect the system's designed purpose. The effective operation would be impossible if any one of the principles was to be ignored. A system may be explicitly based on and implemented from a document of principles as was done in IBM's 360/370 ''Principles of Operation''. It is important to differe ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Bertrand Meyer
Bertrand Meyer (; ; born 21 November 1950) is a French academic, author, and consultant in the field of computer languages. He created the Eiffel programming language and the concept of design by contract. Education and academic career Meyer received a master's degree in engineering from the École Polytechnique in Paris, a second master's degree from Stanford University, and a PhD from the Université de Nancy. He had a technical and managerial career for nine years at Électricité de France, and for three years was a member of the faculty of the University of California, Santa Barbara. From 2001 to 2016, he was professor of software engineering at ETH Zürich, the Swiss Federal Institute of Technology, where he pursued research on building trusted components (reusable software elements) with a guaranteed level of quality. He was Chair of the ETH Computer Science department from 2004 to 2006 and for 13 years (2003–2015) taught the Introduction to Programming course t ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Database Normalization
Database normalization is the process of structuring a relational database in accordance with a series of so-called '' normal forms'' in order to reduce data redundancy and improve data integrity. It was first proposed by British computer scientist Edgar F. Codd as part of his relational model. Normalization entails organizing the columns (attributes) and tables (relations) of a database to ensure that their dependencies are properly enforced by database integrity constraints. It is accomplished by applying some formal rules either by a process of ''synthesis'' (creating a new database design) or ''decomposition'' (improving an existing database design). Objectives A basic objective of the first normal form defined by Codd in 1970 was to permit data to be queried and manipulated using a "universal data sub-language" grounded in first-order logic. An example of such a language is SQL, though it is one that Codd regarded as seriously flawed. The objectives of normalization ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Copy And Paste Programming
Copy may refer to: *Copying or the product of copying (including the plural "copies"); the duplication of information or an artifact **Cut, copy and paste, a method of reproducing text or other data in computing ** File copying **Photocopying, a process which makes paper copies of documents and other visual images ** Fax, a telecommunications technology used to transfer facsimile copies of documents, especially over the telephone network **Facsimile, a copy or reproduction that is as true to the original source as possible **Replica, a copy closely resembling the original concerning its shape and appearance **Term of art in U.S. copyright law meaning a material object in which a work of authorship has been embodied, such as a book * Copy (command), a shell command on DOS and Windows systems * Copy (publishing), written content in publications, in contrast to photographs or other elements of layout. **The output of journalists and authors, ready for copy editing and typesetting * ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Code Reuse
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. 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), simple functions ( procedures or subroutines) or a bunch of objects or functions organized into modules (e.g. libraries) or custom namespaces, and packages, frameworks or software suites in higher-levels. Code reuse implies dependencies which can make code maintainability harder. At least one study found that code reuse at the class level reduces technical debt. Overview Ad hoc code reuse has been practiced from the earliest days of program ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Code Duplication
In computer programming, duplicate code is a sequence of source code that occurs more than once, either within a program or across different programs owned or maintained by the same entity. Duplicate code is generally considered undesirable for a number of reasons. A minimum requirement is usually applied to the quantity of code that must appear in a sequence for it to be considered duplicate rather than coincidentally similar. Sequences of duplicate code are sometimes known as code clones or just clones, the automated process of finding duplications in source code is called clone detection. Two code sequences may be duplicates of each other without being character-for-character identical, for example by being character-for-character identical only when white space characters and comments are ignored, or by being token-for-token identical, or token-for-token identical with occasional variation. Even code sequences that are only functionally identical may be considered duplicate cod ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Abstraction Principle (programming)
In software engineering and programming language theory, the abstraction principle (or the principle of abstraction) is a basic dictum that aims to reduce duplication of information in a program (usually with emphasis on code duplication) whenever practical by making use of abstraction (computer science), abstractions provided by the programming language or software libraries. The principle is sometimes stated as a recommendation to the programmer, but sometimes stated as a requirement of the programming language, assuming it is self-understood why abstractions are desirable to use. The origins of the principle are uncertain; it has been reinvented a number of times, sometimes under a different name, with slight variations. When read as recommendations to the programmer, the abstraction principle can be generalized as the "don't repeat yourself" (DRY) principle, which recommends avoiding the duplication of information in general, and also avoiding the duplication of human effort invo ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Cher Scarlett
Cher Scarlett (born ) is an American software engineer, workers' rights activist, and writer who is known for starting #AppleToo. She has organized staff at Apple, Activision Blizzard, and Starbucks. Scarlett, who has bipolar disorder, experienced struggles in her early life, leading her to drop out of high school and attempt to overdose. Self-taught web development skills from her adolescence in the late 1990s allowed her to overcome a lack of formal education and build a software engineering career after the birth of her child. Scarlett's experiences and observations in a male-dominated occupation led her to become a workers' rights advocate and critic of technology and corporations. She was a leader of the #AppleToo movement, which gathered and shared stories of mistreatment from current and former Apple employees, and was a founder of Apple Together, a solidarity union, where she remains an advisor. Scarlett also filed complaints against Apple with the National Labor R ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Twitter
Twitter, officially known as X since 2023, is an American microblogging and social networking service. It is one of the world's largest social media platforms and one of the most-visited websites. Users can share short text messages, images, and videos in Microblogging, short posts commonly known as "Tweet (social media), tweets" (officially "posts") and Like button, like other users' content. The platform also includes direct message, direct messaging, video and audio calling, bookmarks, lists, communities, a chatbot (Grok (chatbot), Grok), job search, and Spaces, a social audio feature. Users can vote on context added by approved users using the Community Notes feature. Twitter was created in March 2006 by Jack Dorsey, Noah Glass, Biz Stone, and Evan Williams (Internet entrepreneur), Evan Williams, and was launched in July of that year. Twitter grew quickly; by 2012 more than 100 million users produced 340 million daily tweets. Twitter, Inc., was based in San Francisco, C ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Vox Media
Vox Media, Inc. is an American mass media company founded in Washington, D.C. with operational headquarters in Lower Manhattan, New York City. The company was established in November 2011 by CEO Jim Bankoff and Trei Brundrett to encompass ''SB Nation'' (a sports blog network founded in 2003 by Tyler Bleszinski, Markos Moulitsas, and Jerome Armstrong) and '' The Verge'' (a technology news website launched alongside Vox Media). Bankoff had been the CEO for ''SB Nation'' since 2009. Vox Media owns numerous editorial brands, most prominently '' New York'', '' The Verge'', '' Vox'', ''SB Nation'', and '' Eater''. ''New York'' further incorporates the websites ''Intelligencer'', '' The Cut'', ''Vulture'', ''The Strategist'', '' Curbed'', and ''Grub Street''. '' Recode'' was integrated into ''Vox'', while ''Racked'' was shut down. Vox Media's brands are built on Concert, a marketplace for advertising, and WordPress. The company's lines of business include Concert, Vox Creative, ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Medium (website)
Medium is an American online publishing platform for written content such as articles and blogs, developed by Evan Williams and launched in August 2012. It is owned by A Medium Corporation. The platform is an example of social journalism, having a hybrid collection of amateur and professional people and publications, or exclusive blogs or publishers on Medium, and is regularly regarded as a blog host. Williams, who previously co-founded Blogger and Twitter, initially developed Medium as a means to publish writings and documents longer than Twitter's then 140-character maximum. In March 2021, Medium announced a change in its publishing strategy and business model, reducing its own publications and increasing support of independent writers. History 2012–2016 Evan Williams, Twitter co-founder and former CEO, created Medium to encourage users to create posts longer than the then 140-character limit of Twitter. When it launched in 2012, Williams stated, "There's been less prog ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Sunk Cost
In economics and business decision-making, a sunk cost (also known as retrospective cost) is a cost that has already been incurred and cannot be recovered. Sunk costs are contrasted with '' prospective costs'', which are future costs that may be avoided if action is taken. In other words, a sunk cost is a sum paid in the past that is no longer relevant to decisions about the future. Even though economists argue that sunk costs are no longer relevant to future rational decision-making, people in everyday life often take previous expenditures in situations, such as repairing a car or house, into their future decisions regarding those properties. Bygones principle According to classical economics and standard microeconomic theory, only prospective (future) costs are relevant to a rational decision. At any moment in time, the best thing to do depends only on ''current'' alternatives. The only things that matter are the ''future'' consequences. Past mistakes are irrelevant. Any cos ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |