This HTML5 document contains 40 embedded RDF statements represented using HTML+Microdata notation.

The embedded RDF content will be recognized by any processor of HTML5 Microdata.

Namespace Prefixes

PrefixIRI
dctermshttp://purl.org/dc/terms/
dbohttp://dbpedia.org/ontology/
foafhttp://xmlns.com/foaf/0.1/
dbpedia-huhttp://hu.dbpedia.org/resource/
n10https://global.dbpedia.org/id/
dbthttp://dbpedia.org/resource/Template:
rdfshttp://www.w3.org/2000/01/rdf-schema#
freebasehttp://rdf.freebase.com/ns/
rdfhttp://www.w3.org/1999/02/22-rdf-syntax-ns#
owlhttp://www.w3.org/2002/07/owl#
wikipedia-enhttp://en.wikipedia.org/wiki/
provhttp://www.w3.org/ns/prov#
dbphttp://dbpedia.org/property/
dbchttp://dbpedia.org/resource/Category:
xsdhhttp://www.w3.org/2001/XMLSchema#
wikidatahttp://www.wikidata.org/entity/
dbrhttp://dbpedia.org/resource/
dbpedia-jahttp://ja.dbpedia.org/resource/

Statements

Subject Item
dbr:Yo-yo_problem
rdfs:label
Yo-yo problem ヨーヨー問題
rdfs:comment
In software development, the yo-yo problem is an anti-pattern that occurs when a programmer has to read and understand a program whose inheritance graph is so long and complicated that the programmer has to keep flipping between many different class definitions in order to follow the control flow of the program. It is most often seen in the context of object-oriented programming. The term comes from comparing the bouncing attention of the programmer to the up-down movement of a toy yo-yo. Taenzer, Ganti, and Podar described the problem by name, explaining: "Often we get the feeling of riding a yoyo when we try to understand one of these message trees." ソフトウェア開発におけるヨーヨー問題アンチパターンとは、プログラムを読んで内容を理解しようとしたときに、継承関係が深すぎる・複雑すぎるなどの理由で、たくさんのクラスを行ったり来たりしないと処理フローが追えない状況のことである。この問題はオブジェクト指向プログラミングでよく発生する。「ヨーヨー問題」という名前は、プログラマが注目している場所がヨーヨーの動きのように上下することから来ている。Taenzer, Ganti, Podarらは、この問題を特に取り上げて、「メッセージツリーの内容を理解しようとする際、ヨーヨーの上に乗っているかのような感じがすることがよくある」と説明している。 オブジェクト指向プログラミングにおける「継承関係のグラフの深さはできるだけ浅い方がよい」という慣習に従うことで、この問題をある程度は回避できる。また、継承よりコンポジションを使用することも、プログラマが複数のクラスを頭に入れておく必要があるという点は変わらないが、強く推奨される。 より一般には、あるコンセプトを理解しようとする際に、複数の情報源を行ったり来たりする必要があるという状況を指して「ヨーヨー問題」と言うこともある。
dcterms:subject
dbc:Anti-patterns dbc:Object-oriented_programming
dbo:wikiPageID
197986
dbo:wikiPageRevisionID
1058751908
dbo:wikiPageWikiLink
dbr:Yo-yo dbr:Object-oriented_programming dbr:Layer_(object-oriented_design) dbr:Anti-pattern dbr:Software_development dbr:Object_composition dbr:Complexity dbc:Anti-patterns dbc:Object-oriented_programming dbr:Inheritance_(computer_science) dbr:Code_reuse dbr:Code_Smell dbr:Inheritance_(object-oriented_programming) dbr:Implementation_inheritance dbr:Inheritance_semantics dbr:Subclassing_(OOP) dbr:Code_smell dbr:Refactoring dbr:Virtual_inheritance dbr:Hrair_limit
owl:sameAs
n10:4xgDn wikidata:Q8054108 freebase:m.01c3_0 dbpedia-hu:Jojó_probléma dbpedia-ja:ヨーヨー問題
dbp:wikiPageUsesTemplate
dbt:Section_link dbt:Reflist
dbo:abstract
In software development, the yo-yo problem is an anti-pattern that occurs when a programmer has to read and understand a program whose inheritance graph is so long and complicated that the programmer has to keep flipping between many different class definitions in order to follow the control flow of the program. It is most often seen in the context of object-oriented programming. The term comes from comparing the bouncing attention of the programmer to the up-down movement of a toy yo-yo. Taenzer, Ganti, and Podar described the problem by name, explaining: "Often we get the feeling of riding a yoyo when we try to understand one of these message trees." Most practices of object-oriented programming recommend keeping the inheritance graph as shallow as possible, in part to avoid this problem. The use of composition instead of inheritance is also strongly preferred, although this still requires that a programmer keep multiple class definitions in mind at once. Deep hierarchies are a code smell and a symptom of sub-classification for code reuse. More generally, the yo-yo problem can also refer to any situation where a person must keep flipping between different sources of information in order to understand a concept. There are several code refactor techniques to flatten these hierarchies without compromising the overall behavior. Object-oriented design techniques such as documenting layers of the inheritance hierarchy can reduce the effect of this problem, as they collect in one place the information that the programmer is required to understand. ソフトウェア開発におけるヨーヨー問題アンチパターンとは、プログラムを読んで内容を理解しようとしたときに、継承関係が深すぎる・複雑すぎるなどの理由で、たくさんのクラスを行ったり来たりしないと処理フローが追えない状況のことである。この問題はオブジェクト指向プログラミングでよく発生する。「ヨーヨー問題」という名前は、プログラマが注目している場所がヨーヨーの動きのように上下することから来ている。Taenzer, Ganti, Podarらは、この問題を特に取り上げて、「メッセージツリーの内容を理解しようとする際、ヨーヨーの上に乗っているかのような感じがすることがよくある」と説明している。 オブジェクト指向プログラミングにおける「継承関係のグラフの深さはできるだけ浅い方がよい」という慣習に従うことで、この問題をある程度は回避できる。また、継承よりコンポジションを使用することも、プログラマが複数のクラスを頭に入れておく必要があるという点は変わらないが、強く推奨される。 より一般には、あるコンセプトを理解しようとする際に、複数の情報源を行ったり来たりする必要があるという状況を指して「ヨーヨー問題」と言うこともある。 また、継承の階層構造の分けをドキュメント化しておいて、プログラマの理解に必要な情報を1箇所に集めておくなど、オブジェクト指向設計のテクニックを利用することでも、この問題の影響を軽減できる。
prov:wasDerivedFrom
wikipedia-en:Yo-yo_problem?oldid=1058751908&ns=0
dbo:wikiPageLength
2962
foaf:isPrimaryTopicOf
wikipedia-en:Yo-yo_problem