Wikibooks jawikibooks https://ja.wikibooks.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8 MediaWiki 1.47.0-wmf.10 first-letter メディア 特別 トーク 利用者 利用者・トーク Wikibooks Wikibooks・トーク ファイル ファイル・トーク MediaWiki MediaWiki・トーク テンプレート テンプレート・トーク ヘルプ ヘルプ・トーク カテゴリ カテゴリ・トーク Transwiki Transwiki‐ノート TimedText TimedText talk モジュール モジュール・トーク Event Event talk Wikibooks:談話室 4 30 301294 301168 2026-07-08T08:30:39Z AkiR27User 90873 /* 孤立しているページについて */ 新しい節 301294 wikitext text/x-wiki {{談話室}} ある程度時間のたった議論は[[/過去ログ]]に移動されます。最新の過去ログは [[特別:固定リンク/291757|2026年01月24日 (土) 01:14(UTC)の版]]です(確認日: 2026年1月26日)。過去ログ化の方法については[[Wikibooks:過去ログ化のガイドライン]]を参照ください。 {{/告知}} == WikipediaからWikibooksへのテンプレートの移入とTranswiki名前空間 == Wikipediaで使用されているテンプレートの多くがWikibooks上では導入されておらず、いつものWikipediaの記法でWikibooksを執筆しようとするとテンプレート不在のエラーが多発します。そこでWikipediaからテンプレートを移入 (移植) したいのですが、3点教えて頂きたいことがございます。 # (移入かゼロから自力作成するかは問わず) Wikibooks上でのテンプレートの新規作成は、事前に合意形成などが必要なのでしょうか?それとも好き勝手作っていいものなのでしょうか? # 仮に移入してくる時には、他言語版からの翻訳時と同様の履歴継承方法 (Oldid指定で継承元を示す、あるいはテンプレート名+日時明記する) で問題ないでしょうか? # 「[[Wikibooks:蔵書一覧/テンプレート一覧#Transwiki名前空間]]」によると、テンプレートを置く名前空間はWikibooksテンプレート空間の場合と、Transwiki名前空間と2種類あるように読めるのですが、このTranswiki名前空間にあるテンプレート群は何なのでしょうか? 質問の背景をお伝えしておくと、私の活動している法学の分野では伝統的に法律の概説はWikipediaに執筆し、逐条解説 (1つ1つの条文の細かい解釈や具体例などの提示) はWikibooksに譲るという棲み分けを行ってきたようです。現在私がWikipedia上で加筆している記事の記述が逐条解説まで踏み込んで肥大化してしまったので、一部はWikibooks側に書いた方が良さそうだ、と判断しました。ご存じのとおりWikipediaでは「[[w:Wikipedia:検証可能性|Wikipedia:検証可能性]]」が重視されていて、そのノリで信頼性の高い出典をガチガチに揃えて逐条解説の下書きをしていたのですが、いざ下書きをWikibooksのサンドボックスに投稿したところ ([[Special:Permalink/264757|編集差分]])、出典・脚注系のテンプレートがことごとく存在せずにエラーが出ています。 また、Transwiki名前空間にあるらしい「仮リンク」のテンプレートは、Wikipediaでも多用していたのでWikibooksでも使用したいのですが、Transwiki上にある「仮リンク」はWikibooksで <nowiki>{{{{仮リンク|あいうえお|en|ABC}}}}</nowiki> と記述してそのまま使えるのか、いまいちよく分かりません。[[特別:リンク元/Transwiki:仮リンク]] を見ても、現時点でWikibooksの標準名前空間で使用しているケースはゼロのようです。 Wikipediaと比較してWikibooksの活動が過疎ぎみなのは承知しておりまして、ここで愚痴を言いたいわけではなく、何とか使える形にしたいという前向きな質問の意図だと汲んで頂ければ幸いです。--[[利用者:ProfessorPine|ProfessorPine]] ([[利用者・トーク:ProfessorPine|トーク]]) 2024年12月7日 (土) 03:15 (UTC) :一年以上、議論が止まっていますが、重要な問題なので検討を継続したいと思います。 :個人的には、翻訳などと同様移植元の履歴が継承されていれば問題はなかろうと考えています。--[[利用者:Tomzo|Tomzo]] ([[利用者・トーク:Tomzo|トーク]]) 2026年1月26日 (月) 00:10 (UTC) ::{{コメント2|横から失礼}} 私は管理者などをやったことがないのでわからないのですが、Wiki間インポートを実施するのはいかがですか? ::その後に、Wikibooksに合う形に微調整した方が楽に感じます。 ::おそらくですが、[[WB:IP]]を見る感じ、コピーアンドペーストは推奨されてない方法に思います。 ::私が、管理者権限を持っていたら、協力したいのですが、[[利用者:Tomzo|Tomzo]]さんなどの管理者の協力が必須に感じます…--[[利用者:なまえみてい|なまえみてい]] ([[利用者・トーク:なまえみてい|トーク]]) 2026年2月4日 (水) 10:40 (UTC) == 「デスクトップLinux入門」を作りたい == サーバーではなくデスクトップ向けの,GNU/Linuxディストリビューションのインストール・利用方法を解説した文書をつくりたいと思っています。構想は[[利用者:KASAI_Toushi/デスクトップLinux入門]]にあります。 これにあたって,二つほど質問があります。 * この構想は,Wikibooksでは受け入れられますか? * タイトルは「デスクトップLinux入門」で問題ないでしょうか? [[利用者:KASAI Toushi|KASAI Toushi]] ([[利用者・トーク:KASAI Toushi|トーク]]) 2025年2月28日 (金) 03:55 (UTC) :内容に関してコメントはしかねますが(後述)、原則として受け入れには何ら問題はないと思います。むしろ歓迎です。 :[[情報技術]]にリンク元を作成して、後はツリー構造で作成することをお勧めします。 :「サーバーではなくデスクトップ向けの」という教科書を既存のLinux関係の教科書から分割して作成するのが適当かは不明ですので、それは知見者の方の間で相談いただければと思います。ただ、統合することのメリットが希薄なようであれば、作成することが、wikibooksにはメリットとは考えます。--[[利用者:Tomzo|Tomzo]] ([[利用者・トーク:Tomzo|トーク]]) 2025年2月28日 (金) 07:06 (UTC) ご返信ありがとうございます。分割すべきかどうかはまだ分からないので、利用者ページに下書きを書いておきます。 [[利用者:KASAI Toushi|KASAI Toushi]] ([[利用者・トーク:KASAI Toushi|トーク]]) == 編集合戦の件 == @[[利用者:Tomzo|Tomzo]]様 ~2025-47348氏とHousehome100氏の編集合戦について、どの版まで差し戻しになりますか?(4月中旬から彼らが編集に関わり始めましたが、彼らが関わる前の版にまで遡るのか、編集合戦が発生した(と判断できる)編集の直前の版になるのか)。もし彼らが関わる前の版に戻すとなると、(~2025-47348氏が行った)すじ肉氏が嘗て書いた問題のある版の修正が取り消されることになるので、それの再修正に多くの労力を割くことになりそうです。--[[特別:投稿記録/&#126;2025-49873|&#126;2025-49873]] ([[利用者・トーク:&#126;2025-49873|会話]]) 2025年5月2日 (金) 08:07 (UTC) :本来、ブロック中の編集者が別アカウントで作成した記事は、ブロックの意味をなくすため新規ページは削除、加筆等の編集は削除の上、不可視化とすべきところですが、今回はあまりにも量が多いため、個別の要望を待って対処したいと思います。もし、ページ削除・不可視化等が必要でしたら、最新版を適当なものにするなどご対応の上、削除等の依頼をお願いします。過去履歴の不可視化まで必要ないとお考えであれば、適当と考えられる最新版作成(過去の版へのリバートも可)で十分足りるとは考えています。--[[利用者:Tomzo|Tomzo]] ([[利用者・トーク:Tomzo|トーク]]) 2025年5月2日 (金) 08:24 (UTC) == 移動依頼 == [[旧課程(-2012年度)高等学校数学A/集合と論理]]を[[高等学校数学I/集合と論理]]へ移動お願いします。 *理由:「集合と命題」の内容は2013年度以降『数学I』の範囲になっている。 --[[特別:投稿記録/&#126;2025-57596|&#126;2025-57596]] ([[利用者・トーク:&#126;2025-57596|会話]]) 2025年5月24日 (土) 02:25 (UTC) :対応に関して 「[[トーク:高等学校数学#「学習指導要領」改正に伴う課程の変動について]]」を作成しましたので、ご確認ください。--[[利用者:Tomzo|Tomzo]] ([[利用者・トーク:Tomzo|トーク]]) 2025年5月28日 (水) 06:56 (UTC) == 検索した時に予測候補(サジェスト)が出ないようにできませんか? == 以前は無かったはずです。人によっては不快に感じると思います。--[[特別:投稿記録/&#126;2025-67762|&#126;2025-67762]] ([[利用者・トーク:&#126;2025-67762|会話]]) 2025年6月14日 (土) 14:13 (UTC) :それは難しいと思います。--[[利用者:KINGDOM OF ITALY|KINGDOM OF ITALY]] ([[利用者・トーク:KINGDOM OF ITALY|トーク]]) 2025年7月31日 (木) 08:24 (UTC) == 管理者の再信任のための「定期的な投票」実施について == 皆さん、こんにちは。このたび、[[Wikibooks:管理者の辞任#管理者の再信任投票]]に基づく2025年9月末で任期末を迎える現管理者3名の再信任のための「定期的な投票」を実施したく存じます。方針によれば、「各管理者に対し原則として毎年」行われるべき再信任投票ですが、ここ5年間行われておらず(前回は[[Wikibooks:管理者への立候補/再信任投票/202009|2020年9月]])、現管理者の方3名の無投票での留任が続いております。そこで当コミュニティの事前告知期間も踏まえ2週間後の2025年9月1日(予定)に投票ページとして「[[Wikibooks:管理者への立候補/再信任投票 202509]]」を作成いたします。そこから2週間(336時間)の投票期間を設けたいと存じます。なお、管理者の一人である {{admin|かげろん}} さんは、この再信任投票開始の時点までに活動がない場合には方針に基づき自動退任となります。以上につきまして何かコメントなどございましたらお寄せください。それでは何卒よろしくお願いいたします。--[[利用者:Shokupan|Shokupan]] ([[利用者・トーク:Shokupan|トーク]]) 2025年8月18日 (月) 04:27 (UTC) :{{コメント2|報告}} 事前告知のとおり、[[Wikibooks:管理者への立候補/再信任投票 202509|管理者の再信任投票ページ]]を作成いたしましたので、ご報告いたします。--[[利用者:Shokupan|Shokupan]] ([[利用者・トーク:Shokupan|トーク]]) 2025年9月1日 (月) 04:16 (UTC) == 根気が足りない…… == 現在[[沖縄語]]を執筆しているのですが、全て書き終わる前に根気が尽きてしまいそうです。 [[沖縄語]]を執筆したとて、正直誰の役に立つのか分かりませんし、需要があるのかもよく分かりませんし、そもそもwikibooksの知名度からして執筆しても自分以外見ないのではないかとさえ思うと書く意味はなんなのかなと思います。 今、完成している語学のページは、私が知る限り[[ペルシア語]]だけです。沖縄語も完成させたいという気持ちはありますが、書くべき章を整理したところあまりにも膨大で……。 章は「初級」「中級」「上級」に分けました。根気が続かなかったら途中で私は失踪すると思いますが、同時に、沖縄語は現在消滅の危機にあり、私が失踪したら誰も続きを書いてくれないだろうな……と思います。 じゃあ書かないと!とは思うのですが、なんかやる気が足りないです。 長々と申し訳ありませんでした。もしこれを読んでくださる方がおりましたら、なにかコメントをくださると嬉しいです。また、ウチナーグチのわかる方がいらっしゃいましたら、[[沖縄語]]に軽く目を通して変なところはないか見てくださると助かります。--[[利用者:さきじょーぐー|さきじょーぐー]] ([[利用者・トーク:さきじょーぐー|トーク]]) 2025年9月18日 (木) 09:28 (UTC) :お疲れ様です。 :当方も哲学・倫理学・歴史を中心にいろいろ書いているのですが、2年前の事案でウィキブレイク状態で、ほとんど大したものは書いていません。さきじょーぐーさんが沖縄語のページを充実させていらっしゃること、敬服しております。 :確かにここは知名度も低いのですが、ウィキペディアほどにはおかしな人物が来ないですし、自由にできると思ってはいかがでしょうか。 :なお、沖縄語は全くわからないのでそちらの方には力になれません……。申し訳ないです。--[[利用者:椎楽|椎楽]] ([[利用者・トーク:椎楽|トーク]]) 2025年9月21日 (日) 11:20 (UTC) ::ありがとうございます。まだwikiに参加したばかりなので出会ったことはありませんが、おかしな方があまり来ないというのは、沖縄という政治的に揉めやすいものを扱っているのもありとても嬉しいです。頑張って執筆します。--[[利用者:さきじょーぐー|さきじょーぐー]] ([[利用者・トーク:さきじょーぐー|トーク]]) 2025年9月24日 (水) 05:13 (UTC) == 申し訳ありませんがご協力ください。 == ===ご挨拶=== まずは、皆様にご挨拶させていただきます。アンサイクロペディアから参りました、「たけのこの土」と申します。まだまだ頭の硬い方には慣れていませんが、どうぞよろしくお願いします。 ===お願いしたい点=== この度、Wikipediaでも活動したいと思い、アカウント作成をしようとしたところ、まさかの自分が使用しているIPアドレスが広域ブロックを受けているということで、アカウントを作成することができませんでした。Wikipediaとアカウントが共通しているということでこちらなら出来るかもしれないとアカウント作成したところ、作成できたので…。 ということで、お手数ではございますが、IPの広域ブロック解除に詳しい方がいらっしゃいましたら、解除していただけるとありがたく存じます。--[[利用者:たけのこの土|たけのこの土]] ([[利用者・トーク:たけのこの土|トーク]]) 2025年10月9日 (木) 03:08 (UTC) == <span lang="en" dir="ltr">Help us decide the name of the new Abstract Wikipedia project</span> == <div lang="en" dir="ltr"> <section begin="function1"/> {{int:Hello}}. Please help pick a name for the new Abstract Wikipedia wiki project. This project will be a wiki that will enable users to combine functions from [[:f:|Wikifunctions]] and data from Wikidata in order to generate natural language sentences in any supported languages. These sentences can then be used by any Wikipedia (or elsewhere). There will be two rounds of voting, each followed by legal review of candidates, with votes beginning on 20 October and 17 November 2025. Our goal is to have a final project name selected on mid-December 2025. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki. {{Int:Feedback-thanks-title}} <section end="function1"/> </div> -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 2025年10月20日 (月) 11:42 (UTC) <!-- User:Sannita (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29432175 のリストを使用して送信したメッセージ --> == 運動のいくつかの委員会で新任のボランティア委員を募集中 == <section begin="announcement-content" /> 例年10月から12月の期間に、ウィキメディア運動の委員会の一部では新任のボランティア委員を募集します。 それぞれの委員会の詳細は、個別のページがメタウィキにありますのでご参照ください。 * [[m:Special:MyLanguage/Affiliations Committeee|提携団体委員会]](略称AffCom、Affiliations Committee) * [[m:Special:MyLanguage/Ombuds commission|オンブズ委員会]](頭字語OC=Ombuds commission) * [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Community Resilience and Sustainability/Trust and Safety/Case Review Committee|事案評価委員会]](頭字語CRC=Case Review Committee) これら委員会への立候補申請は2025年10月30日から受け付けます。立候補の受付〆切は、提携団体委員会が2025年12月11日、オンブズ委員会と事案評価委員会は2025年12月11日です。立候補申請の手順は[[m:Special:MyLanguage/Wikimedia Foundation/Legal/Committee appointments|Meta-wiki(メタウィキ)にある任命ページ]]をご一読願います。ご質問はその議論ページに投稿するか、メールの場合は cst[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org 宛にお送りください。 委員会支援チームの一同より <section end="announcement-content" /> -[[m:User:MKaur (WMF)| MKaur (WMF)]] 2025年10月30日 (木) 14:12 (UTC) <!-- User:MKaur (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29517125 のリストを使用して送信したメッセージ --> == Wikimedians of Japan User Group 2025-10 == '''全体ニュース''' * 1月から6月までの[https://wikimediafoundation.org/who-we-are/transparency/2025-1/ 透明性レポート](英語)が公表されました。 * 提携団体委員会、オンブズ委員会、事案審査委員会への[[:m:Wikimedia_Foundation/Legal/Committee_appointments/ja|応募]]受付が開始されました。 '''ESEAPハブからのおしらせ'''[[File:ESEAP logo horizontal.svg|40px|link=:m:ESEAP_Hub/ja]] * 11月9日16時(JST)から[[:m:Event:ESEAP_Community_Call_53_(9_November_2025)|オンラインミーティング]]が行われます。 '''Wikimedians of Japan User Groupからのおしらせ'''[[File:Wikimedians of Japan User Group Logoonly.svg|20px|link=:m:Wikimedians_of_Japan_User_Group]] * 11月7日、8日に開催される[https://www.k-of.jp/2025/ 関西オープンフォーラム]に参加します。 * 11月22日に開催される[https://event.ospn.jp/osc2025-fukuoka/ OSC福岡]に参加します。また、翌23日には[https://techplay.jp/event/987206 オープンデータを作ろう! with ウィキメディアもくもく会 in 北九州]を[https://www.osmf.jp OSMFJ]と共催します。 '''[[:w:ja:メインページ|日本語版ウィキペディア]]'''[[File:Wikipedia-logo-v2.svg|20px|link=:w:ja:]] * [[:w:ja:Wikipedia:ウィキペディア・アジア月間|アジア月間]]が行われます。 * 今月は以下の記事が[[:w:ja:Wikipedia:良質な記事/良質な記事の選考|良質な記事の選考]]を通過しました。 **[[:w:ja:魚梁船|魚梁船]] **[[:w:ja:生得性仮説|生得性仮説]] **[[:w:ja:炎舞|炎舞]] **[[:w:ja:エリダヌス座|エリダヌス座]] **[[:w:ja:中堀由希子|中堀由希子]] **[[:w:ja:いて座|いて座]] **[[:w:ja:スティーブン (イングランド王)|スティーブン (イングランド王)]] **[[:w:ja:君と宇宙を歩くために|君と宇宙を歩くために]] **[[:w:ja:久隔帖|久隔帖]] * 今月の1枚 [[File:Lunar eclipse of 2025 September 7 (Montage s3).jpg|alt=|left|thumb|200x200px|​2025年9月7日の皆既[[:w:ja:月食|月食]]の時系列画像]] '''[[:f:|ウィキファンクションズ]]'''[[File:Wikifunctions-logo.svg|20px|link=:f:]] * * 抽象ウィキペディア(Abstract Wikipedia)の[[:m:Abstract_Wikipedia/Abstract_Wikipedia_naming_contest|正式名称]]の第1回投票は11月3日までです。 '''11月のイベント情報''' * 11/1 [https://tobemori-seeds.com/archives/2999 とべもりウィキペディアタウン] * 11/8 [https://mykoho.jp/article/012084/9874593/9964880 ウィキペディアタウン in 北見ワークショップ] * 11/8 [https://www.lib.city-hokuto.ed.jp/akeno/event-info/316/ ウィキペディアタウン@北杜in明野] * 11/9 [https://www2.city.tahara.aichi.jp/section/library/info/2511wikiatumi.html ウィキペディアタウンin渥美] * 11/9 [https://www.city.higashikurume.lg.jp/library/1024999/1027652.html ウィキペディアタウンin東久留米 ~武蔵野鉄道引き込み線~] * 11/15 [https://www.town.nakai.kanagawa.jp/soshiki/chiikibosaikachiikijohohan/citypromo/3716.html ウィキペディアタウンin里都] * 11/23 [https://facebook.com/events/s/wikipedia%E3%83%95%E3%83%B3%E3%82%AB%E3%82%AF14%E5%9D%82%E5%8F%A3%E5%AE%89%E5%90%BE/1534587237725121/ Wikipediaブンガク 坂口安吾] * 11/29 [https://www.city.yokkaichi.lg.jp/www/contents/1724135632047/index.html みんなで「あさけ」界隈を歩いてウィキペディアと世界地図に足跡を残そう!] * 11/30 [https://www.city.inazawa.aichi.jp/museum/0000005195.html ウィキペディアタウン稲沢] '''前回配信:2025年9月30日''' <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> 配信元: ''[[:m:Wikimedians of Japan User Group|Wikimedians of Japan User Group]]''<br /> <small>[[:m:Talk:Wikimedians of Japan User Group/メールマガジン|フィードバック]]。[[:m:Wikimedians of Japan User Group/メールマガジン/targets list| 登録・削除]]。</small>2025年10月31日 (金) 09:53 (UTC) <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> <!-- User:Chqaz-WMJPUG@metawiki が https://meta.wikimedia.org/w/index.php?title=Wikimedians_of_Japan_User_Group/%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%9E%E3%82%AC%E3%82%B8%E3%83%B3/targets_list&oldid=29400209 のリストを使用して送信したメッセージ --> == <span lang="en" dir="ltr">Reminder: Help us decide the name of the new Abstract Wikipedia project</span> == <div lang="en" dir="ltr"> <section begin="function2"/> {{int:Hello}}. Reminder: Please help to choose name for the new Abstract Wikipedia wiki project. The finalist vote starts today. The finalists for the name are: <span lang="en" dir="ltr" class="mw-content-ltr">Abstract Wikipedia, Multilingual Wikipedia, Wikiabstracts, Wikigenerator, Proto-Wiki</span>. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki. {{Int:Feedback-thanks-title}} <section end="function2"/> </div> -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 2025年11月20日 (木) 14:21 (UTC) <!-- User:Sannita (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29583860 のリストを使用して送信したメッセージ --> == Wikimedians of Japan User Group 2025-11 == '''全体ニュース''' * ウィキメディア財団の[[:foundation:File:Wikimedia_Foundation_FY_24-25_Audit_Report.pdf|監査報告]](英語)が公表されました。 * 提携団体委員会、オンブズ委員会、事案審査委員会への[[:m:Wikimedia_Foundation/Legal/Committee_appointments/ja|応募]]は12月11日までです。 * ウィキマニア2027はチリのサンディエゴで開催されることが決定しました。 '''ESEAPハブからのおしらせ'''[[File:ESEAP logo horizontal.svg|40px|link=:m:ESEAP_Hub/ja]] * 12月6日17時半(JST)から[[:m:Event:ESEAP_Community_Call_54_(6_December_2025)|オンラインミーティング]]が行われます。 '''Wikimedians of Japan User Groupからのおしらせ'''[[File:Wikimedians of Japan User Group Logoonly.svg|20px|link=:m:Wikimedians_of_Japan_User_Group]] * 12月6日に大阪大学中之島センターにて、[[:m:Wikimedians of Japan User Group/events/West-Japan Wikimedia Conference 2025|West-Japan Wikimedia Conference 2025]]を開催します。 * 翌7日には[https://opendata-mokumoku2025.peatix.com/view もくもく会]を開催します。 '''[[:w:ja:メインページ|日本語版ウィキペディア]]'''[[File:Wikipedia-logo-v2.svg|20px|link=:w:ja:]] * 今月は以下の記事が[[:w:ja:Wikipedia:良質な記事/良質な記事の選考|良質な記事の選考]]を通過しました。 **[[:w:ja:根岸町 (仙台市)|根岸町 (仙台市)]] **[[:w:ja:遮光器土偶|遮光器土偶]] **[[:w:ja:尾去沢銅山事件|尾去沢銅山事件]] **[[:w:ja:雄勝地区|雄勝地区]] **[[:w:ja:ギャラクシー・ズー|ギャラクシー・ズー]] **[[:w:ja:ジ・アート・オブ・チャーリー・チャン・ホックチャイ|ジ・アート・オブ・チャーリー・チャン・ホックチャイ]] **[[:w:ja:第一次ポエニ戦争の講和条約|第一次ポエニ戦争の講和条約]] **[[:w:ja:道鏡|道鏡]] **[[:w:ja:八方池|八方池]] **[[:w:ja:マケドニア名称論争|マケドニア名称論争]] **[[:w:ja:連室細管|連室細管]] **[[:w:ja:オヴィリ|オヴィリ]] **[[:w:ja:原阿佐緒|原阿佐緒]] **[[:w:ja:宇佐八幡宮神託事件|宇佐八幡宮神託事件]] **[[:w:ja:薬師岳の圏谷群|薬師岳の圏谷群]] **[[:w:ja:うしかい座|うしかい座]] **[[:w:ja:上海郵便局|上海郵便局]] **[[:w:ja:日本大辞書|日本大辞書]] **[[:w:ja:細川ガラシャ|細川ガラシャ]] * 今月の1枚 [[File:Irozaki 20210131-2.jpg|alt=|thumb|200x200px|静岡県南伊豆町にある[[:w:ja:石廊崎|石廊崎]]の先端の画像|none]] '''[[:wmfblog:|Diff]]''' Diffはウィキメディアに関するブログプラットフォームです。今月から毎月Diffの掲載された記事を紹介します。タイトル / 著者;翻訳者 (掲載日) の順で記載しています。 * [https://diff.wikimedia.org/ja/2025/11/01/%e3%80%8c%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9a%e3%83%87%e3%82%a3%e3%82%a2%e3%82%bf%e3%82%a6%e3%83%b3in%e5%b2%a9%e6%9d%91%e3%80%8d%e3%81%ab%e5%8f%82%e5%8a%a0%e3%81%99%e3%82%8b/ 「ウィキペディアタウンin岩村」に参加する] / Asturio Cantabrio (2025/11/01) * [https://diff.wikimedia.org/ja/2025/11/02/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e3%83%bb%e3%83%af%e3%83%bc%e3%83%ab%e3%83%89in%e5%9b%b3%e6%9b%b8%e9%a4%a8%e7%b7%8f%e5%90%88%e5%b1%952025%ef%bc%9a%e3%82%a6%e3%82%a3/ ウィキメディア・ワールドin図書館総合展2025:ウィキマニア・ナイロビ参加報告] / Wadakuramon ( 2025/11/02) * [https://diff.wikimedia.org/ja/2025/11/02/%e3%80%8c%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9a%e3%83%87%e3%82%a3%e3%82%a2%e3%81%ab%e3%82%83%e3%82%a6%e3%83%b3-vol-8%e2%91%a1-%e6%96%87%e5%8c%96%e8%b2%a1xwikipedia%e3%80%8d%e3%81%ab%e5%8f%82/ 「ウィキペディアにゃウン vol.8② 文化財×Wikipedia」に参加する] / Asturio Cantabrio (2025/11/02) * [https://diff.wikimedia.org/ja/2025/11/03/wikipedia%e8%a8%98%e4%ba%8b%e3%80%8c%e6%b8%af%e5%8d%97%e5%8f%b0%e3%82%b7%e3%83%8d%e3%82%b5%e3%83%ad%e3%83%b3%e3%80%8d%e3%82%92%e4%bd%9c%e6%88%90%e3%81%99%e3%82%8b/ Wikipedia記事「港南台シネサロン」を作成する] / Asturio Cantabrio (2025/11/03) * [https://diff.wikimedia.org/ja/2025/11/03/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e3%82%82%e3%81%8f%e3%82%82%e3%81%8f%e4%bc%9a2025%e5%b9%b410%e6%9c%88%e6%9d%b1%e4%ba%ac%e3%81%a7%e8%aa%95%e7%94%9f%ef%bc%81wikidata/ ウィキメディアもくもく会2025年10月東京で誕生!Wikidata項目欠落検索ツール『Wikidata Missing』] / Ecute (2025/11/03) * [https://diff.wikimedia.org/ja/2025/11/04/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9e%e3%83%8b%e3%82%a22027%e9%96%8b%e5%82%ac%e5%9c%b0%e6%b1%ba%e5%ae%9a/ ウィキマニア2027開催地決定] / Wikimania Steering Committee (2025/11/04) * [https://diff.wikimedia.org/ja/2025/11/06/73%e6%ad%b3%e3%81%ae%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e3%83%b3%e3%81%ae%e4%b8%80%e6%97%a5/ 73歳のウィキメディアンの一日] / Wadakuramon (2025/11/06) * [https://diff.wikimedia.org/ja/2025/11/07/%e3%82%a6%e3%82%a3%e3%82%ad%e3%82%ab%e3%83%b3%e3%83%95%e3%82%a1%e3%83%ac%e3%83%b3%e3%82%b9%e3%83%bb%e3%82%bd%e3%82%a6%e3%83%ab2025%e3%80%81%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%a1%e3%83%87%e3%82%a3/ ウィキカンファレンス・ソウル2025、ウィキメディアの未来は多様性にあり] / Wikimedia Korea ; Wadakuramon (2025/11/07) * [https://diff.wikimedia.org/ja/2025/11/14/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9a%e3%83%87%e3%82%a3%e3%82%a2%e5%88%a9%e7%94%a8%e8%80%85%e3%81%ab%e6%96%b0%e3%81%97%e3%81%84%e3%83%88%e3%83%ac%e3%83%b3%e3%83%89/ ウィキペディア利用者に新しいトレンド] Marshall Miller ; Omotecho (2025/11/14) * [https://diff.wikimedia.org/ja/2025/11/16/%e9%96%a2%e8%a5%bf%e3%82%aa%e3%83%bc%e3%83%97%e3%83%b3%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a9%e3%83%a0%e3%81%a7%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9e%e3%83%8b%e3%82%a2%e3%81%ae%e8%a9%b1%e3%82%92%e3%81%97/ 関西オープンフォーラムでウィキマニアの話をしました] / Wadakuramon (2025/11/16) * [https://diff.wikimedia.org/ja/2025/11/26/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e5%9b%b3%e6%9b%b8%e9%a4%a8%ef%bc%9a100%e4%b8%87%e4%bb%b6%e3%81%ae%e3%83%aa%e3%83%b3%e3%82%af%e3%81%a8%e3%81%9d%e3%81%ae%e5%85%88/ ウィキメディア図書館:100万件のリンクとその先] / Vipin SJ;Omotecho (2025/11/26) * [https://diff.wikimedia.org/ja/2025/11/27/international-semantic-web-conference-2025-%e3%81%ab%e5%8f%82%e5%8a%a0%e3%81%97%e3%81%9f%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e3%83%b3%e3%81%ae%e6%84%9f%e6%83%b3/ International Semantic Web Conference 2025 に参加したウィキメディアンの感想] / Eugene Ormandy (2025/11/27) '''前回配信:2025年10月31日''' <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> 配信元: ''[[:m:Wikimedians of Japan User Group|Wikimedians of Japan User Group]]''<br /> <small>[[:m:Talk:Wikimedians of Japan User Group/メールマガジン|フィードバック]]。[[:m:Wikimedians of Japan User Group/メールマガジン/targets list| 登録・削除]]。</small>2025年11月30日 (日) 13:06 (UTC) <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> <!-- User:Chqaz-WMJPUG@metawiki が https://meta.wikimedia.org/w/index.php?title=Wikimedians_of_Japan_User_Group/%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%9E%E3%82%AC%E3%82%B8%E3%83%B3/targets_list&oldid=29717105 のリストを使用して送信したメッセージ --> == Wikimedians of Japan User Group 2025-12 == '''全体ニュース''' * ウィキペディアは1月15日で25周年を迎えます。同時に[[:m:Event:Wikipedia_25_Virtual_Celebration/ja|バーチャルお祝い会]]も開催されます。 * 1月20日にBernadette Meehanさんがウィキメディア財団のCEOに就任します。 '''ESEAPハブからのおしらせ'''[[File:ESEAP logo horizontal.svg|40px|link=:m:ESEAP_Hub/ja]] * 2027年のESEAPサミットは日本で開催することに決定しました。 '''Wikimedians of Japan User Groupからのおしらせ'''[[File:Wikimedians of Japan User Group Logoonly.svg|20px|link=:m:Wikimedians_of_Japan_User_Group]] * 1月31日に開催される[https://event.ospn.jp/osc2026-osaka/ OSC大阪]に参加します。 * [https://www.youtube.com/@WikimediaJaUG YouTubeチャンネル]を作成しました。 * 12月6日に[[:m:Wikimedians of Japan User Group/events/West-Japan Wikimedia Conference 2025|West-Japan Wikimedia Conference 2025]]を開催しました。 '''[[:w:ja:メインページ|日本語版ウィキペディア]]'''[[File:Wikipedia-logo-v2.svg|20px|link=:w:ja:]] * 今月は以下の記事が[[:w:ja:Wikipedia:良質な記事/良質な記事の選考|良質な記事の選考]]を通過しました。 **[[:w:ja:ロンドン自然史博物館の天井|ロンドン自然史博物館の天井]] **[[:w:ja:ミャンマーの歴史|ミャンマーの歴史]] **[[:w:ja:ボーラーン|ボーラーン]] **[[:w:ja:天蓋の聖母 (ラファエロ)|天蓋の聖母 (ラファエロ)]] **[[:w:ja:流行神|流行神]] **[[:w:ja:瑠璃坏|瑠璃坏]] **[[:w:ja:や座|や座]] **[[:w:ja:京坂キリシタン一件|京坂キリシタン一件]] **[[:w:ja:ベトナムの歴史|ベトナムの歴史]] **[[:w:ja:オニオオハシ|オニオオハシ]] **[[:w:ja:白瑠璃碗 (正倉院宝物)|白瑠璃碗 (正倉院宝物)]] **[[:w:ja:漢字|漢字]] **[[:w:ja:貞享の半知|貞享の半知]] **[[:w:ja:カンボジア文学|カンボジア文学]] **[[:w:ja:足利政知|足利政知]] * 今月の1枚 [[File:DSC_1418-DeNoiseAI-low-light_(1).jpg|alt=|thumb|200x200px|静岡県南伊豆町にある[[:w:ja:ヤマセミ|ヤマセミ]]のホバリング|none]] '''1月のイベント情報''' * 1/10 [[:w:ja:Wikipedia:オフラインミーティング/ウィキペディア25周年記念エディタソン|ウィキペディア25周年記念エディタソン]] * 1/25 [https://okunoto-archive.jp/202512/223/ ウィキペディアタウンin珠洲] * 1/25 [https://www.city.tambasasayama.lg.jp/chuotoshokan/information/27347.html ウィキペディアタウンin丹波篠山 Vol.2~丹波篠山の自慢「丹波黒」を世界に発信~] '''[[:wmfblog:|Diff]]''' タイトル / 著者;翻訳者 (掲載日) の順で記載しています。 * [https://diff.wikimedia.org/ja/2025/12/01/%e3%82%aa%e3%83%bc%e3%83%97%e3%83%b3%e3%82%bd%e3%83%bc%e3%82%b9%e3%82%ab%e3%83%b3%e3%83%95%e3%82%a1%e3%83%ac%e3%83%b3%e3%82%b92025kyoto%e3%81%ab%e5%8f%82%e5%8a%a0/ オープンソースカンファレンス2025Kyotoに参加] / VZP10224 (2025/12/01) * [https://diff.wikimedia.org/ja/2025/12/03/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e3%83%bb%e3%83%af%e3%83%bc%e3%83%ab%e3%83%89in%e5%9b%b3%e6%9b%b8%e9%a4%a8%e7%b7%8f%e5%90%88%e5%b1%952025%ef%bc%9a6%e4%ba%ba%e3%81%ae/ ウィキメディア・ワールドin図書館総合展2025:6人のオンラインフォーラム] / Wadakuramon (2025/12/03) * [https://diff.wikimedia.org/ja/2025/12/13/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e3%83%bb%e3%83%af%e3%83%bc%e3%83%ab%e3%83%89in%e5%9b%b3%e6%9b%b8%e9%a4%a8%e7%b7%8f%e5%90%88%e5%b1%952025%ef%bc%9a%e3%83%96%e3%8w3%bc/ ウィキメディア・ワールドin図書館総合展2025:ブース展示と横浜エディタソン] / Wadakuramon (2025/12/13) * [https://diff.wikimedia.org/ja/2025/12/14/%e3%80%8c%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9a%e3%83%87%e3%82%a3%e3%82%a2%e3%82%bf%e3%82%a6%e3%83%b3in%e5%92%8c%e6%ad%8c%e5%b1%b12025%e3%80%8d%e3%81%ab%e5%8f%82%e5%8a%a0%e3%81%99%e3%82%8b/ 「ウィキペディアタウンin和歌山2025」に参加する] / Asutrio Cantabrio (2025/12/14) * [https://diff.wikimedia.org/ja/2025/12/14/12%e6%9c%88%e3%82%92%e6%b5%b7%e5%a4%96%e3%81%ae%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e3%83%b3%e3%81%a8%e9%81%8e%e3%81%94%e3%81%99/ 12月を海外のウィキメディアンと過ごす] / Wadakuramon (2025/12/14) * [https://diff.wikimedia.org/ja/2025/12/16/diff%e3%81%af2026%e5%b9%b4%e3%81%be%e3%81%a7%e3%81%8a%e4%bc%91%e3%81%bf%e3%81%97%e3%81%be%e3%81%99/ Diffは2026年までお休みします] / Chris Koerner ; Wadakuramon (2025/12/16) * [https://diff.wikimedia.org/ja/2025/12/17/%e6%ad%a3%e5%80%89%e9%99%a2%e5%b1%95-%e3%81%a8-%e8%a8%98%e4%ba%8b%e5%9f%b7%e7%ad%86-%e7%91%a0%e7%92%83%e5%9d%8f%e3%81%a8%e3%82%82%e3%81%86%e4%b8%80%e3%81%a4%e3%81%ae%e7%99%bd%e7%91%a0%e7%92%83/ 正倉院展 と 記事執筆 -瑠璃坏ともう一つの白瑠璃碗-] / Lin Xiangru (2025/12/17) * [https://diff.wikimedia.org/ja/2025/12/19/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9e%e3%83%8b%e3%82%a22026%e3%81%ab%e5%90%91%e3%81%91%e3%81%a6/ ウィキマニア2026に向けて] / Wikimania Core Organizing Team (2025/12/19) * [https://diff.wikimedia.org/ja/2025/12/19/west-japan-wikimedia-conference-2025%e5%8f%82%e5%8a%a0%e8%a8%98%ef%bc%9a%e6%a8%aa%e6%b5%9c%e3%82%a8%e3%83%87%e3%82%a3%e3%82%bf%e3%82%bd%e3%83%b3%e3%82%92%e7%b4%b9%e4%bb%8b/ West-Japan Wikimedia Conference 2025参加記:横浜エディタソンを紹介] / Wadakuramon (2025/12/19) * [https://diff.wikimedia.org/ja/2025/12/19/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e8%b2%a1%e5%9b%a32026-27%e5%b9%b4%e6%ac%a1%e8%a8%88%e7%94%bb%e3%81%ae%e3%82%b4%e3%83%bc%e3%83%ab%e7%ad%96%e5%ae%9a%ef%bc%9a%e3%82%a6/ ウィキメディア財団2026-27年次計画のゴール策定:ウィキメディア運動の重点となる質問] / Selena Deckelmann ; Omotecho (2025/12/19) * [https://diff.wikimedia.org/ja/2025/12/23/%e6%97%a5%e6%9c%ac%e3%81%ae%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e3%83%b3%e3%81%8cwikiconference-seoul-2025%e3%81%ab%e5%8f%82%e5%8a%a0%e3%81%97%e3%81%a6%e3%81%8d%e3%81%9f/ 日本のウィキメディアンがWikiConference Seoul 2025に参加してきた記録] / Narumi.SBT (2025/12/23) '''前回配信:2025年11月30日''' <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> 配信元: ''[[:m:Wikimedians of Japan User Group|Wikimedians of Japan User Group]]''<br /> <small>[[:m:Talk:Wikimedians of Japan User Group/メールマガジン|フィードバック]]。[[:m:Wikimedians of Japan User Group/メールマガジン/targets list| 登録・削除]]。</small>2025年12月31日 (水) 11:04 (UTC) <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> <!-- User:Chqaz-WMJPUG@metawiki が https://meta.wikimedia.org/w/index.php?title=Wikimedians_of_Japan_User_Group/%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%9E%E3%82%AC%E3%82%B8%E3%83%B3/targets_list&oldid=29848173 のリストを使用して送信したメッセージ --> == ほぼ同内容かつ似た題名の記事の並立について(日本語方言など) == [[日本語/方言]]と[[日本語の方言]]は同じような題で同じような内容を載せていますが、この2つはどう違うのでしょう。同じ意図で作ったものならどちらかに統合すべきだと思いますが、統合後はどちらの記事名にするのが良いでしょうか。 加えて、こういった例は他にも必ず存在する気がするのですが、そういった場合の方針などがあれば教えていただきたいです。--[[利用者:BrassSnail|BrassSnail]] ([[利用者・トーク:BrassSnail|トーク]]) 2026年1月12日 (月) 13:28 (UTC) :こちらでシスオペをやっております、[[利用者:Tomzo|Tomzo]] ([[利用者・トーク:Tomzo|トーク]])と申します。 :ご指摘ありがとうございます。本件ご指摘のとおりだと思います。手続き導入からは日が浅いものの、「[[Wikibooks:統合提案]]」という手続きがありますのでご紹介いたします。そちらで、ご提案をいただけるのとありがたいのですが、お忙しいようであれば、機会を見計らい私が対応いたします。 :WBとWPが微妙に異なることとして、ある一つの事柄についての記述でも、教科書として伝える層や伝える体系が異なると記述が異なることとなり、別ページを構成することがあるということで、これは、各々の体系のもので存続させることがあります。または、共通の記述に関してリンクを貼ることで対応するなどの手法も考えられます。この辺りは、決まった手法があるわけではないので、作成の過程で議論によって決めていくことなのかなと思っています。--[[利用者:Tomzo|Tomzo]] ([[利用者・トーク:Tomzo|トーク]]) 2026年1月12日 (月) 16:43 (UTC) ::ご教授ありがとうございます。そちらで提案させていただきました。。--[[利用者:BrassSnail|BrassSnail]] ([[利用者・トーク:BrassSnail|トーク]]) 2026年1月15日 (木) 15:27 (UTC) == Thank You for Last Year – Join Wiki Loves Ramadan 2026 == Dear Wikimedia communities, We hope you are doing well, and we wish you a happy New Year. ''Last year, we captured light. This year, we’ll capture legacy.'' In 2025, communities around the world shared the glow of Ramadan nights and the warmth of collective iftars. In 2026, ''Wiki Loves Ramadan'' is expanding, bringing more stories, more cultures, and deeper global connections across Wikimedia projects. We invite you to explore the ''Wiki Loves Ramadan 2026'' [[m:Special:MyLanguage/Wiki Loves Ramadan 2026|Meta page]] to learn how you can participate and [[m:Special:MyLanguage/Wiki Loves Ramadan 2026/Participating communities|sign up]] your community. 📷 ''Photo campaign on '' [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan 2026|Wikimedia Commons]] If you have questions about the project, please refer to the FAQs: * [[m:Special:MyLanguage/Wiki Loves Ramadan/FAQ/|Meta-Wiki]] * [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan/FAQ|Wikimedia Commons]] ''Early registration for updates is now open via the '''[[m:Special:RegisterForEvent/2710|Event page]]''''' ''Stay connected and receive updates:'' * [https://t.me/WikiLovesRamadan Telegram channel] * [https://lists.wikimedia.org/postorius/lists/wikilovesramadan.lists.wikimedia.org/ Mailing list] We look forward to collaborating with you and your community. '''The Wiki Loves Ramadan 2026 Organizing Team''' 2026年1月16日 (金) 19:45 (UTC) <!-- User:ZI Jony@metawiki が https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29879549 のリストを使用して送信したメッセージ --> == <span lang="en" dir="ltr">Annual review of the Universal Code of Conduct and Enforcement Guidelines</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> I am writing to you to let you know the annual review period for the Universal Code of Conduct and Enforcement Guidelines is open now. You can make suggestions for changes through 9 February 2026. This is the first step of several to be taken for the annual review. [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2026|Read more information and find a conversation to join on the UCoC page on Meta]]. The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|you may review the U4C Charter]]. Please share this information with other members in your community wherever else might be appropriate. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]])<section end="announcement-content" /> </div> 2026年1月19日 (月) 21:01 (UTC) <!-- User:Keegan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 のリストを使用して送信したメッセージ --> == 無期限保護について == こんばんは。本日からWikibooksの編集を始めました。なまえみていです。 色々なページを見ていて、無期限 <s>保護</s> <u>半保護</u> がなされているページが多く感じられます。もちろん、度重なる荒らし、管理者不足など理由はあるのだと思いますが、Wikipediaに慣れている私からすると、厳しすぎる対応だと思います。(Wikipediaでは基本的に無期限は合意形成がないとできない) ただでさえ、Wikibooksを編集する利用者が少ないのに、積極的に <u>半</u> 保護していると、新規利用者ができづらいと考えます。 [[日本の大学受験ガイド#入試対策]]にある大学のうち保護されているものの解除を検討していただけないでしょうか? 学生による新規参入はWikibooksの存続に大きく影響すると思います。--[[利用者:なまえみてい|なまえみてい]] ([[利用者・トーク:なまえみてい|トーク]]) 2026年1月23日 (金) 16:55 (UTC) <small> 意味合いが変わってしまうので取り消し線と下線で訂正しました。--[[利用者:なまえみてい|なまえみてい]] ([[利用者・トーク:なまえみてい|トーク]]) 2026年1月24日 (土) 01:24 (UTC)</small> :はじめまして、[[利用者:Tomzo|Tomzo]] ([[利用者・トーク:Tomzo|トーク]])と申します。 :本件、一応説明いたしますと、WPに比べると当プロジェクトは、参加者もさながら管理者も圧倒的に少なく、多少の「いわゆる」民主的運営を犠牲にしてでも厳しい措置を取らざるを得ないという事情があります。また、作成保護に関して、強い保護は「Wikibooksのテーマになる可能性が非常に少ないもの」のみについてかけるようにし、その他は基本半保護のはずです(WPも実質永久半保護の記事は少なくありません)。初回ログイン後、数日平穏な編集が継続される限り、特に支障はないはずです。そのような記事に関しては、なまえみていさんも来週には編集可能となると思いますが、どうしても、すぐに編集したいという記事があるのであれば、[[Wikibooks:管理者伝言板#保護解除依頼]]に指定してご依頼ください。--[[利用者:Tomzo|Tomzo]] ([[利用者・トーク:Tomzo|トーク]]) 2026年1月24日 (土) 01:04 (UTC) ::(返信) ご丁寧にありがとうございます。 ::jawpと同じ基準ならおそらく、数時間で自動承認されるので私は困らないのですが、新規利用者が生まれにくく、利用者不足を加速させてしまうのかなと思った次第です。 ::私の方でお手伝いできることがありましたら、ご協力したいと考えています。失礼します。--[[利用者:なまえみてい|なまえみてい]] ([[利用者・トーク:なまえみてい|トーク]]) 2026年1月24日 (土) 01:20 (UTC) == Wikimedians of Japan User Group 2026-1 == '''全体ニュース''' * [[:m:Stewards/Elections_2026|スチュワード選挙2026]]及び[[:m:Stewards/Confirm/2026|現在のスチュワードへの信任投票]]への投票が2月6日 14:00 (UTC) から2月27日 14:00 (UTC) まで行われます。 * ウィキマニア2026の[[:wikimania:2026:Program|プログラム募集]]が3月1日まで行われています。 * 来年度のウィキメディア財団の年次計画についての[[:m:Talk:Wikimedia_Foundation_Annual_Plan/2026-2027|意見募集]]が行われています。 '''ESEAPハブからのおしらせ'''[[File:ESEAP logo horizontal.svg|40px|link=:m:ESEAP_Hub/ja]] * 2月1日16時(JST)から[[:m:Event:ESEAP_Community_Call_55_(1_February_2026)|オンラインミーティング]]が行われます。 '''Wikimedians of Japan User Groupからのおしらせ'''[[File:Wikimedians of Japan User Group Logoonly.svg|20px|link=:m:Wikimedians_of_Japan_User_Group]] * [https://www.ospn.jp オープンソースカンファレンス]のコミュニティサポーターになりました。 * 2月27,28日に開催される[https://event.ospn.jp/osc2026-spring/ OSC東京]に参加します。 * [[:m:「Diff」2025年日本語版記事索引|「Diff」2025年日本語版記事索引]]を公開しました。 '''[[:w:ja:メインページ|日本語版ウィキペディア]]'''[[File:Wikipedia-logo-v2.svg|20px|link=:w:ja:]] * 今月は以下の記事が[[:w:ja:Wikipedia:良質な記事/良質な記事の選考|良質な記事の選考]]を通過しました。 **[[:w:ja:マルキアヌス|マルキアヌス]] **[[:w:ja:高瀬渓谷の噴湯丘と球状石灰石|高瀬渓谷の噴湯丘と球状石灰石]] **[[:w:ja:帯金式甲冑|帯金式甲冑]] **[[:w:ja:百済の里|百済の里]] **[[:w:ja:仙人掌群鶏図|仙人掌群鶏図]] **[[:w:ja:(54598) ビエノール|(54598) ビエノール]] **[[:w:ja:平成の大合併|平成の大合併]] **[[:w:ja:正倉院展|正倉院展]] **[[:w:ja:駿河竹千筋細工|駿河竹千筋細工]] **[[:w:ja:横浜中華街の歴史|横浜中華街の歴史]] **[[:w:ja:毛利輝元の四国・九州出兵|毛利輝元の四国・九州出兵]] * 今月の1枚 [[File:251123 Shinsenkyo Hakone Japan26s3.jpg|alt=|thumb|200x200px|神奈川県箱根町に所在する[[:w:ja:神仙郷|神仙郷]]|none]] '''2月のイベント情報''' * 1/10 [[:w:ja:Wikipedia:オフラインミーティング/ウィキペディア25周年記念エディタソン|ウィキペディア25周年記念エディタソン]] * 2/7 [https://peatix.com/event/4795657 ウィキペディアタウン神保町 Vol.3] * 2/7 [[:w:ja:プロジェクト:アウトリーチ/ウィキペディアタウン#近畿|駅まちウィキペディア 動くエディタン編集室 vol.1 京都丹後鉄道あかまつ号]] * 2/14 [https://www.city.ichinoseki.iwate.jp/library/topics/page.php?p=679 ウィキペディアタウン in 東山] * 2/15 [https://www.city.toda.saitama.jp/koho-toda/260101/kouza04.html ウィキペディアタウン戸田 つくろう!戸田市の歴史事典] * 2/15 [https://iselib.city.ise.mie.jp/ise/?id=262 ウィキペディアタウン伊勢Vol.3] * 2/28 [[:w:ja:プロジェクト:アウトリーチ/ウィキペディアタウン#近畿|丹後古墳ウォーカー 歩いて発見!古代丹後の推し古墳をウィキで紹介! #1 大宮町東川岸]] '''[[:wmfblog:|Diff]]''' タイトル / 著者;翻訳者 (掲載日) の順で記載しています。 * [https://diff.wikimedia.org/ja/2026/01/09/%e5%9b%b3%e6%9b%b8%e9%a4%a8%e7%b7%8f%e5%90%88%e5%b1%952025%e3%81%ae%e3%80%8cedit-tango%e3%80%8d%e3%83%96%e3%83%bc%e3%82%b9/ 図書館総合展2025の「edit Tango」ブース] / Asturio Cantabrio (2026/01/09) * [https://diff.wikimedia.org/ja/2026/01/11/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9a%e3%83%87%e3%82%a3%e3%82%a2%e6%97%a5%e6%9c%ac%e8%aa%9e%e7%89%88%e3%82%b3%e3%83%9f%e3%83%a5%e3%83%8b%e3%83%86%e3%82%a3%e3%81%ae%e6%ad%b4%e5%8f%b2%e3%82%92%e3%82%a6/ ウィキペディア日本語版コミュニティの歴史をウィキペディアに刻む] / Wadakuramon (2026/01/11) * [https://diff.wikimedia.org/ja/2026/01/13/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9a%e3%83%87%e3%82%a3%e3%82%a225%e5%91%a8%e5%b9%b4%e8%a8%98%e5%bf%b5%e3%82%a8%e3%83%87%e3%82%a3%e3%82%bf%e3%82%bd%e3%83%b3%e3%81%ab%e5%8f%82%e5%8a%a0%e3%81%97%e3%81%be/ ウィキペディア25周年記念エディタソンに参加しました] / Wadakuramon (2026/01/13) * [https://diff.wikimedia.org/ja/2026/01/21/%e3%82%a2%e3%82%b8%e3%82%a2%e6%9c%88%e9%96%932025-%e3%82%92%e7%b5%82%e3%81%88%e3%81%a6/ アジア月間2025 を終えて] / Lin Xiangru (2026/01/21) * [https://diff.wikimedia.org/ja/2026/01/26/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9a%e3%83%87%e3%82%a3%e3%82%a225%e5%91%a8%e5%b9%b4%e8%a8%98%e5%bf%b5%e3%83%90%e3%83%bc%e3%82%b9%e3%83%87%e3%83%bc%e3%83%bb%e3%82%b1%e3%83%bc%e3%82%ad%e3%83%bb%e3%82%bd/ ウィキペディア25周年記念バースデー・ケーキ・ソング!] / Wadakuramon (2026/01/26) '''前回配信:2025年12月31日''' <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> 配信元: ''[[:m:Wikimedians of Japan User Group|Wikimedians of Japan User Group]]''<br /> <small>[[:m:Talk:Wikimedians of Japan User Group/メールマガジン|フィードバック]]。[[:m:Wikimedians of Japan User Group/メールマガジン/targets list| 登録・削除]]。</small>2026年1月31日 (土) 12:17 (UTC) <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> <!-- User:Chqaz-WMJPUG@metawiki が https://meta.wikimedia.org/w/index.php?title=Wikimedians_of_Japan_User_Group/%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%9E%E3%82%AC%E3%82%B8%E3%83%B3/targets_list&oldid=29923679 のリストを使用して送信したメッセージ --> == ほかの利用者さんとの対話について == 昨年の12月25日にある利用者さんの会話ページで話題を追加したのですが、その利用者さんは私が投稿する2週間ほど前から今月頭まで活動なさっておらず、活動再開後も現在に至るまで返答をいただけておりません。 気づいていらっしゃらないのか故意に返信なさっていないのかはわからないのですが、このような場合、再度会話ページでお知らせするのが良いのか、それとも他に適切な方法があるのでしょうか? 私自身としてはその話題が記事の品質に大きく関わる内容であり対話を行いたいのですが、過剰に返答を求めて当該の利用者さんや他の方に粘着的な行動だと受け取られてしまうと困りますので、こちらで相談させていただきます。--[[利用者:飛火野|飛火野]] ([[利用者・トーク:飛火野|トーク]]) 2026年2月18日 (水) 14:28 (UTC) :{{コメント2|コメント}} こんにちは。初めまして。 :この場合、対話拒否としてコメント依頼を提出したりできそうですが([[Wikibooks:コメント依頼/すじにくシチュー|例]])、Wikipediaみたいに制度が整ってなさそうですし、準備が大変です。 :ひとまず、異論なしとして、[[利用者:飛火野|飛火野]]さんが正しいと思う様に編集してみたらいかがでしょうか? :待っていても、何も始まらないですし……--[[利用者:なまえみてい|なまえみてい]] ([[利用者・トーク:なまえみてい|トーク]]) 2026年2月18日 (水) 17:47 (UTC) ::一般記事は、書かれた段階で「誰が書いたか」というものではなくなりますので、適当でないと思える記述は、適当と思うものに書き換えても全く構いません。--[[利用者:Tomzo|Tomzo]] ([[利用者・トーク:Tomzo|トーク]]) 2026年2月19日 (木) 12:37 (UTC) :::お二人とも、返信ありがとうございます。記事本体には追々手を加えさせていただきます。 :::返信の内容から拝察するに、私の投稿記録をご覧になっていただけたのだと思うのですが、あのような質問になった経緯を時系列順に記しますと、 :::1)当該の編集([https://ja.wikibooks.org/w/index.php?title=%E6%B0%97%E5%80%99%E5%AD%A6/%E3%82%B1%E3%83%83%E3%83%9A%E3%83%B3%E3%81%AE%E6%B0%97%E5%80%99%E5%8C%BA%E5%88%86&oldid=251398 こちら])を見て生成AIによる生成物を、十分に検証できないのに投稿なさっているのではないかという疑義を抱いた :::2)他の記事([https://ja.wikibooks.org/wiki/%E6%BA%96%E6%83%91%E6%98%9F こちら]や[https://ja.wikibooks.org/wiki/%E5%8F%A4%E7%94%9F%E7%89%A9%E5%AD%A6/%E5%A4%A7%E8%A6%8F%E6%A8%A1%E7%B5%B6%E6%BB%85%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88 こちら]など)でも同様の編集をなさっているのが見受けられた :::3)もし当該の編集が私の考えているような「AIで生成し、さらにその内容の検証(この場合、日本の「気候学」や「古生物学」の記述として妥当なのかの判断)を十分に行えないままで投稿なさっているのであれば、手を止めていただく必要があるのではないかと考えた :::4)しかし、私の勇み足であっては失礼ですので、まずは編集の意図を確認した :::というところです。 :::確かに、今思うと誘導尋問的で、必要以上に迂遠な聞き方になってしまっていたとは思うのですが、私としてはまず当該利用者さんの編集の意図をお伺いしたいと思っています。--[[利用者:飛火野|飛火野]] ([[利用者・トーク:飛火野|トーク]]) 2026年2月19日 (木) 14:27 (UTC) == どうしてwikibooksが必要なのか == そのまんま--[[利用者:Guest A1|Guest A1]] ([[利用者・トーク:Guest A1|トーク]]) 2026年2月25日 (水) 09:28 (UTC) <del>:はじめまして。tkkn46tkkn46 と申します。</del> :wikipediaは、リンク?ハイパーテキスト?ハイパーリンク? がステキ。(任意へリンク) :wikibooksは、目次ページがあって、章、節、号、款、目  :(例:<nowiki>[[Wikibooks:ウィキプロジェクト 法学 コンメンタール執筆ガイドライン]]</nowiki>) :wikibooksは、wikipediaより本のイメージに近い思います。 :wikibooksで、「単語」だけ?だと、wikipediaでイイんじゃないの思います。 :wikipediaは、辞書のイメージです。本に、ならないタイトルだとキツイと思います。 :以下、wikibooksへのいつの日にか私の希望 :①標準機能内で、本なので、目次ページを参考に、ページ間の移動が楽だと助かります。 : F7(前頁へ)F8(後頁へ)?F6(1つ上へ)F9(1つ下へ) : 現在は、ページ内のフッターで、自作しています。 :②標準機能内で、books内の索引の自動作成機能。 :もしかしたら、誰かが開発済みカモ。アドバイスいただけると助かります。--[[利用者:Tkkn46tkkn46|Tkkn46tkkn46]] ([[利用者・トーク:Tkkn46tkkn46|トーク]]) 2026年2月25日 (水) 11:53 (UTC) :wikidiaryがあれば、Guest A1様の投稿はステキかも。--[[利用者:Tkkn46tkkn46|Tkkn46tkkn46]] ([[利用者・トーク:Tkkn46tkkn46|トーク]]) 2026年2月25日 (水) 12:12 (UTC) ::お二人に。 ::'''[[Wikibooks:児童・生徒の方々へ]]'''をきちんと読んでいただくことを希望いたします。--[[利用者:Tomzo|Tomzo]] ([[利用者・トーク:Tomzo|トーク]]) 2026年2月25日 (水) 12:37 (UTC) == 過去ログ化のガイドラインについて == [[Wikibooks:過去ログ化のガイドライン|このガイドライン]]はすじにくシチューさん一人で作成されてから草案状態が10年経ちました。正式にガイドライン化したいと考えています。 その前に一つ提案をいたします(この議論では実際に変更するわけではありません)。今現在、日本語版wikibooksではサブページ方式ではなく、固定リンク方式を使っていますが、個人的にはサブページ方式を使ったほうがよいと思います。 理由として # サブページ方式の方が感覚的に実行しやすく、煩わしくない。 # サブページ方式の方がログの保存方法の変更がしやすい。固定リンク方式の場合「今まで1年ごとに過去ログ化していたけど10年ごとに変更したい」となったときに対応が出来ません。 # サプページ方式の欠点として、[[Wikibooks:過去ログ化のガイドライン|ガイドライン]]では「他の方法(サブページをつくるなど)と比べて、固定版方式では編集方法をまちがった場合の差し戻しが容易なことが根拠です。」とありますが、むしろサブページ方式の方が2で挙げた場合もそうですが、差し戻し、過去ログページの削除で対応できるため簡単に対応できます。 本当はを作成されたすじにくシチューさんに理由や意図をお聞きしたいのですが、無期限ブロックされており、お聞きすることが出来ません。皆さんに賛成か反対か、反対ならその理由などをお聞きしたいです。 具体的な提案 サブページ方式で[[Wikibooks:過去ログ]]を作成し[[Wikibooks:過去ログ/談話室]]など項目別にサブページを作成する。ログを追加しないと考えられるものに関しては無期限半保護する。 wikipediaでは[[Wikipedia:談話室/過去ログ]]のような形式ですが、wikibooksでは[[Wikibooks:過去ログ]]で過去ログを一括で管理したいと考えています。「理由として」でも挙げたとおり、やり直しが利くのでとりあえず賛成していただいても大丈夫だと思います。 今後の流れ(←これに関しても意見があればお寄せください) # この議論で1週間程で御意見を募集する、議論で大まかに決める。 # 決定した内容で良いかを投票する(投票権は投票用の議論が開始された時点で自動承認されているユーザーまたはウィキメディアプロジェクトに参加してから3ヶ月経過しているユーザーで考えています。) # 実際に過去ログ化をして1ヶ月ほど経過したら問題が生じていないかを議論する # [[Wikibooks:過去ログ化のガイドライン]]を正式にガイドライン化する議論をする --[[利用者:なまえみてい|なまえみてい]] ([[利用者・トーク:なまえみてい|トーク]]) 2026年2月28日 (土) 12:58 (UTC) :こんにちは、編集お疲れ様です。 :現在の[[Wikibooks:過去ログ化のガイドライン|過去ログ化のガイドライン]]の作成された経緯については、こちらの[[特別:固定リンク/101028#過去ログ作業の公式方針を整備すべき|談話室での議論]]をご参照ください。この議論を経て草案ではありますが、いちおうガイドラインとして現状運用されています。なまえみていさんは、現在のガイドラインとは別方式による過去ログ化のガイドラインをお考えのようですので、まずはご自身の利用者ページ下などになまえみていさん式のガイドライン草案を作成されてみてはいかがでしょうか。現行草案と別方式草案の2案を提示した方が、コミュニティの意見も集まりやすくなるのではないかと思います。また、ここ談話室では議論の呼びかけにとどめ、本格的な議論は[[Wikibooks・トーク:過去ログ化のガイドライン|ガイドライン議論ページ]]でした方がよいかと思います。--[[利用者:Shokupan|Shokupan]] ([[利用者・トーク:Shokupan|トーク]]) 2026年3月15日 (日) 23:44 (UTC) == Wikimedians of Japan User Group 2026-2 == '''全体ニュース''' * ウィキマニア2026の[[:wikimania:2026:Program|プログラム募集]]が3月1日まで行われています。 * [https://diff.wikimedia.org/2026/02/11/announcing-new-policies-related-to-the-use-of-wikimedia-sites-for-advocacy-purposes/ 一部のグローバルポリシー]が変更されました。 '''ESEAPハブからのおしらせ'''[[File:ESEAP logo horizontal.svg|40px|link=:m:ESEAP_Hub/ja]] * 3月7日17時30分(JST)から[[:m:Event:ESEAP_Community_Call_56_(7_March_2026)|オンラインミーティング]]が行われます。 * [[:m:ESEAP_Conference_2026/ja|ESEAPカンファレンス2026]]の登録が開始されました。 '''Wikimedians of Japan User Groupからのおしらせ'''[[File:Wikimedians of Japan User Group Logoonly.svg|20px|link=:m:Wikimedians_of_Japan_User_Group]] * 3月1日に[https://peatix.com/event/4847333/view ウィキペディア25周年記念交流会]を開催します。 '''[[:w:ja:メインページ|日本語版ウィキペディア]]'''[[File:Wikipedia-logo-v2.svg|20px|link=:w:ja:]] * 今月は以下の記事が[[:w:ja:Wikipedia:良質な記事/良質な記事の選考|良質な記事の選考]]を通過しました。 **[[:w:ja:山田美妙|山田美妙]] **[[:w:ja:スペクトル分類|スペクトル分類]] **[[:w:ja:横手市|横手市]] **[[:w:ja:上杉憲方|上杉憲方]] **[[:w:ja:パノルムスの戦い|パノルムスの戦い]] **[[:w:ja:都市伝説解体センター|都市伝説解体センター]] **[[:w:ja:市川少女歌舞伎|市川少女歌舞伎]] **[[:w:ja:うお座|うお座]] **[[:w:ja:南アフリカ文学|南アフリカ文学]] * 今月の1枚 [[File:JRH_Senmo-Main-Line_H100-44.jpg|alt=|thumb|200x200px|オホーツク海沿岸部を走行する[[:w:ja:JR北海道H100形気動車|H100形気動車]]|none]] '''3月のイベント情報''' * 3/8 [https://www.facebook.com/events/731133399814596/ WikiGap in Kanagawa 2026] * 3/21 [[:w:ja:プロジェクト:アウトリーチ/ウィキペディアタウン#近畿|ウィキペディアタウンin網野町木津~駅まちウィキペディア「夕日ヶ浦木津温泉駅」~]] '''[[:wmfblog:|Diff]]''' タイトル / 著者;翻訳者 (掲載日) の順で記載しています。 * [https://diff.wikimedia.org/ja/2026/02/01/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9a%e3%83%87%e3%82%a3%e3%82%a225%e5%91%a8%e5%b9%b4%e8%a8%98%e5%bf%b5%e3%83%89%e3%82%ad%e3%83%a5%e3%83%a1%e3%83%b3%e3%82%bf%e3%83%aa%e3%83%bc%e3%82%b7%e3%83%aa%e3%83%bc/ ウィキペディア25周年記念ドキュメンタリーシリーズ] / Wadakuramon (2026/02/01) * [https://diff.wikimedia.org/ja/2026/02/12/lod%e3%83%81%e3%83%a3%e3%83%ac%e3%83%b3%e3%82%b82025%e3%81%a7%e6%97%a5%e6%9c%ac%e3%81%ae%e3%80%8c%e6%b5%b7%e3%81%ae%e9%a7%85%e3%80%8d%e3%82%92%e3%82%aa%e3%83%bc%e3%83%97%e3%83%b3%e3%83%87%e3%83%bc/ LODチャレンジ2025で日本の「海の駅」をオープンデータ化 ― 約200件の海のインフラをWikidataに追加] / Ecute (2026/02/12) * [https://diff.wikimedia.org/ja/2026/02/25/%e9%96%89%e6%a0%a1%e3%81%99%e3%82%8b%e5%b0%8f%e5%ad%a6%e6%a0%a1%e3%81%ae%e8%a8%98%e9%8c%b2%e3%82%92%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9a%e3%83%87%e3%82%a3%e3%82%a2%e3%81%ab%e6%ae%8b%e3%81%99/ 閉校する小学校の記録をウィキペディアに残す] / VZP10224 (2026/02/25) * [https://diff.wikimedia.org/ja/2026/02/25/eseap%e3%83%8f%e3%83%96%e3%82%92%e6%8e%a8%e9%80%b2%e3%81%99%e3%82%8b%e4%ba%ba%e3%80%85/ ESEAPハブを推進する人々] / FelianiESEAP Hub ; Wadakuramon (2026/02/25) '''前回配信:2025年1月31日''' <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> 配信元: ''[[:m:Wikimedians of Japan User Group|Wikimedians of Japan User Group]]''<br /> <small>[[:m:Talk:Wikimedians of Japan User Group/メールマガジン|フィードバック]]。[[:m:Wikimedians of Japan User Group/メールマガジン/targets list| 登録・削除]]。</small>2026年2月28日 (土) 13:14 (UTC) <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> <!-- User:Chqaz-WMJPUG@metawiki が https://meta.wikimedia.org/w/index.php?title=Wikimedians_of_Japan_User_Group/%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%9E%E3%82%AC%E3%82%B8%E3%83%B3/targets_list&oldid=30083678 のリストを使用して送信したメッセージ --> == Wikibooks: (ウイキブックス コロン)が現在何種類あるか教えて下さい。 == ウイキブックス コロンの全リストのページを教えて下さい。あいうえお順が望ましいです。リンクだけ。 よろしくお願いします。 >Wikibooks:ウィキブックスへようこそ(参照) >新規参加者にとって参考になるページ >ページ名に「Wikibooks:」とつくものは、ウィキブックスのプロジェクトそのものに関するページです。その中でも新規参加者にとって役に立つと思われるページをリストしておきます。 11種類以上だと思います。--[[利用者:Tkkn46tkkn46|Tkkn46tkkn46]] ([[利用者・トーク:Tkkn46tkkn46|トーク]]) 2026年3月13日 (金) 03:54 (UTC) :{{コメント2|コメント}} [[特別:ページ一覧|こちら]]で「名前空間」をWikibooksに指定し、検索すれば全リストが表示されます。 :なお、談話室は本来、これからのWikibooksについて話し合うものですので、個人的な質問は談話室ではなく[[WB:HD|こちら]]にお願いします。--[[利用者:なまえみてい|なまえみてい]] ([[利用者・トーク:なまえみてい|トーク]]) 2026年4月16日 (木) 04:39 (UTC) == ノートページの呼び方は、全部で何通りあるか教えて下さい。 == ①ノートの呼び方の種類の数です。違いです。 ②「ノート」は ノートページの意味ですか。 ③「議論」は 議論ページと呼びませんか。 よろしくお願いします。 >Help:ノートページ(wikipedia参照) >^ ノートページはトークページ(talk page)とも呼ばれるが、日本語版の「会話ページ」は、名前空間名がそう翻訳されている「利用者についての」トークページのみを指すことがしばしばある。--[[利用者:Tkkn46tkkn46|Tkkn46tkkn46]] ([[利用者・トーク:Tkkn46tkkn46|トーク]]) 2026年3月13日 (金) 03:56 (UTC) == <span lang="en" dir="ltr">Upcoming deployment of CampaignEvents extension to Wikibooks</span> == <div lang="en" dir="ltr"> <section begin="message"/> Hello everyone, We are writing to inform you that the [[mw:Help:Extension:CampaignEvents|CampaignEvents extension]] will be deployed to all Wikibooks projects during the week of '''23 March 2026'''. This follows last year’s broader rollout across Wikimedia projects. We realized that Wikibooks was not included at the time, and we’re now addressing that to ensure consistency across all communities. The CampaignEvents extension provides tools to support event and campaign organization on-wiki, including features like on-wiki event registration and collaboration lists(global event list). We welcome any questions, feedback, or concerns you may have. We are also happy to support anyone interested in trying out the tools. ''Apologies if this message is not in your preferred language. If you’re able to help translate it for your community, please feel free to do so.'' <section end="message"/> </div> <bdi lang="en" dir="ltr">[[User:Udehb-WMF|Udehb-WMF]] ([[User talk:Udehb-WMF|トーク]]) 2026年3月19日 (木) 18:22 (UTC)</bdi> <!-- User:Udehb-WMF@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Udehb-WMF/sandbox/MM_target&oldid=30284073 のリストを使用して送信したメッセージ --> == Bot Flag Request for [[{{ns:User}}:SchlurcherBot]] == Appologies for posting in English. Also, I could not locate a dedicated page for bot request in {{#language:{{CONTENTLANGUAGE}}}} {{SITENAME}}, so I am posting here. Please direct me to the correct page if one exists. Thank you. * '''Bot name''': [[{{ns:User}}:SchlurcherBot]] * '''Bot operator''': [[commons:User:Schlurcher]] * '''Bot task''': Automatically convert links from <code>http://</code> to <code>https://</code> (secure protocol migration) * '''Technical details''': Please see [[metawiki:User:SchlurcherBot|meta:User:SchlurcherBot]] for full details, including the expected number of affected URLs on {{#language:{{CONTENTLANGUAGE}}}} {{SITENAME}}. * '''Bot flags on other projects:''': [[metawiki:Steward_requests/Bot_status/2025-12#Global_bot_status_for_User:SchlurcherBot|Global bot status granted]]. Also flagged on [[:w:en:Wikipedia:Bots/Requests for approval/SchlurcherBot|English Wikipedia]], [[:w:de:Wikipedia:Bots/Anträge_auf_Botflag/Archiv/2025#2025-02-14_–_SchlurcherBot|German Wikipedia]], [[:w:fr:Wikipédia:Bot/Statut/Archive_12#(Traité)_SchlurcherBot|French Wikipedia]], [[:w:it:Wikipedia:Bot/Autorizzazioni/Archivio/2025#SchlurcherBot|Italian Wikipedia]], [[:w:pl:Wikipedia:Boty/Zgłoszenia/2025#Wikipedysta:SchlurcherBot|Polish Wikipedia]], [[:w:pt:Wikipédia:Robôs/Pedidos_de_aprovação/Arquivo/2025#SchlurcherBot|Portuguese Wikipedia]], and [[commons:Commons:Bots/Requests/SchlurcherBot2|Commons]]. For a full list, see: [[metawiki:Special:CentralAuth/SchlurcherBot|sulutil:SchlurcherBot]] * '''Comment''': The bot is globally approved and active on the top 10 Wikipedia projects. As this wiki has opted out of the global bot policy, I am requesting permission to perform these link updates on {{#language:{{CONTENTLANGUAGE}}}} {{SITENAME}} as well. Please let me know if a local bot flag can be granted or if you have any questions. Thank you. --[[利用者:Schlurcher|Schlurcher]] ([[利用者・トーク:Schlurcher|トーク]]) 2026年3月26日 (木) 22:21 (UTC) ::{{RFB|対処}} I have done your request.--[[利用者:Tomzo|Tomzo]] ([[利用者・トーク:Tomzo|トーク]]) 2026年3月26日 (木) 23:13 (UTC) :::Thanks. --[[利用者:Schlurcher|Schlurcher]] ([[利用者・トーク:Schlurcher|トーク]]) 2026年3月27日 (金) 08:39 (UTC) == Wikimedians of Japan User Group 2026-3 == '''全体ニュース''' * ウィキメディア財団理事会はすべての言語版のウィキニュースを閉鎖することを承認しました。ウィキニュースは5月4日から読み取り専用になります。 '''ESEAPハブからのおしらせ'''[[File:ESEAP logo horizontal.svg|40px|link=:m:ESEAP_Hub/ja]] * 4月4日16時(JST)から[[:m:Event:ESEAP_Community_Call_57_(4_April_2026)|オンラインミーティング]]が行われます。 * [[:m:ESEAP_Conference_2026/ja|ESEAPカンファレンス2026]]の登録が開始されました。 '''Wikimedians of Japan User Groupからのおしらせ'''[[File:Wikimedians of Japan User Group Logoonly.svg|20px|link=:m:Wikimedians_of_Japan_User_Group]] * 4月18日に開催される[https://event.ospn.jp/osc2026-kagawa/ OSC香川]に参加します。 '''[[:w:ja:メインページ|日本語版ウィキペディア]]'''[[File:Wikipedia-logo-v2.svg|20px|link=:w:ja:]] * 4月17日まで[[:w:ja: Wikipedia:日本・韓国_友好編集月間|日本・韓国 友好編集月間]]が行われています。 * 今月は以下の記事が[[:w:ja:Wikipedia:良質な記事/良質な記事の選考|良質な記事の選考]]を通過しました。 **[[:w:ja:普通自転車の交差点進入禁止|普通自転車の交差点進入禁止]] **[[:w:ja:京都市の観光|京都市の観光]] **[[:w:ja:克美茂愛人殺害事件|克美茂愛人殺害事件]] **[[:w:ja:アフガニスタンの歴史|アフガニスタンの歴史]] **[[:w:ja:養老山地|養老山地]] **[[:w:ja:唐津藩|唐津藩]] **[[:w:ja:京都の歴史|京都の歴史]] **[[:w:ja:ムウタスィム|ムウタスィム]] **[[:w:ja:トゥーランガリラ交響曲|トゥーランガリラ交響曲]] **[[:w:ja:ガリレオ裁判|ガリレオ裁判]] **[[:w:ja:優しい世界へ|優しい世界へ]] **[[:w:ja:金属有機構造体|金属有機構造体]] **[[:w:ja:聖なるタラ|聖なるタラ]] **[[:w:ja:ギターを弾く女|ギターを弾く女]] **[[:w:ja:八方尾根のケルン|八方尾根のケルン]] **[[:w:ja:ひばり号|ひばり号]] **[[:w:ja:マリモ|マリモ]] **[[:w:ja:スイスの歴史|スイスの歴史]] * 今月の1枚 [[File:260110_Kosei-ji_Kyoto_Japan12s3.jpg|alt=|thumb|200x200px|京都市に位置する[[:w:ja:光清寺_(京都市)|光清寺]]の心字庭「心和の庭」 |none]] '''4月のオフラインイベント情報''' * 4/19 [https://www.facebook.com/events/1437162964770290 Wikipediaブンガク 吉屋信子 ] '''前回配信:2025年2月28日''' <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> 配信元: ''[[:m:Wikimedians of Japan User Group|Wikimedians of Japan User Group]]''<br /> <small>[[:m:Talk:Wikimedians of Japan User Group/メールマガジン|フィードバック]]。[[:m:Wikimedians of Japan User Group/メールマガジン/targets list| 登録・削除]]。</small>2026年3月31日 (火) 11:00 (UTC) <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> <!-- User:Chqaz-WMJPUG@metawiki が https://meta.wikimedia.org/w/index.php?title=Wikimedians_of_Japan_User_Group/%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%9E%E3%82%AC%E3%82%B8%E3%83%B3/targets_list&oldid=30083678 のリストを使用して送信したメッセージ --> == Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) == Hello everyone, This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>). '''The Change:'''<br /> Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]]. We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''. '''What You Need To Do:'''<br /> To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search. '''Deadline:'''<br /> We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles. Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[利用者:MediaWiki message delivery|MediaWiki message delivery]] ([[利用者・トーク:MediaWiki message delivery|トーク]]) 2026年4月3日 (金) 17:11 (UTC) <!-- User:ZI Jony@metawiki が https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29941252 のリストを使用して送信したメッセージ --> == 「Lintエラーが生じる件について」 の対応について教えて下さい。 == >...このLintエラーは「優先度 高」になっていて、... 私は、機械的?な話である事を理解しました。(別件コメント:私的?には、ガイドラインの「本ガイドラインの有効性(そもそも論)」の方が「優先度 もっと高?」のような気がしました。別件コメント無視して下さい。) >...修正する必要があると考えます。... >...対応はおろか、...>...実害がないので... ○○法第1章 : の各行バックスラッシュ 1個を削除するだけではないカモ。 ①idが、目次ページの他に、条文ページ(判例を含む)もありました。 ②アンカー?第○章、第○条の漢字文字タイトル改正関係なしに、数字の便利さ使用もありカモ でした。←←← ③新規の目次ページ編集者は大変だろうな。感覚でした。 ④[[Wikibooks:ウィキプロジェクト 法学 コンメンタール執筆ガイドライン/目次ページ]]  [[Wikibooks:ウィキプロジェクト 法学 コンメンタール執筆ガイドライン/条文ページ]]  の2種類はどうなりますか。 <nowiki>==<span id="1"/>第1章 総則 (第1条~第5条)==</nowiki> <nowiki>:</nowiki><nowiki>[[○○法第1条|第1条]]</nowiki>(目的)== ... ⑤間違っている事をガイドラインに載せるのは、望ましくない。 フッターに影響するのは困る。 普通に他と同様に?ガイドラインのダブルスタンダードそのままで、←←←トリプル可??? 閲覧操作に違いがなければイイナです。私の理解です。 ⑥リンター?の操作は、何がいいですか。wikibooksの標準機能にありますか。手作業?見てからです。 ⑦wikipedia他はどのようにしていますか。放ったらかし? https://ja.wikipedia.org/wiki/%E7%89%B9%E5%88%A5:LintErrors/self-closed-tag 自己終了タグ (561 件のエラー) >...より質の高い教科書作りに...(ガイドライン議論より) >...「提案に従う義務はありません。」と記載していながら、...(〃) >...返信もありません(編集活動は続けられています)...(〃) >...彼(私?)の問いかけは論理的なものではないと考えます。...(利用者・トーク:Tomzo#お願いより) と言われませんように。--[[利用者:Tkkn46tkkn46|Tkkn46tkkn46]] ([[利用者・トーク:Tkkn46tkkn46|トーク]]) 2026年4月6日 (月) 13:46 (UTC) == Lint エラーの自己終了タグ (3,295 件のエラー)以外。他のエラー多数について、皆さんは、どのように考えておられますか。 == [[Wikibooks・トーク:ウィキプロジェクト 法学 コンメンタール執筆ガイドライン#Lintエラーが生じる件について]] の続き。 談話室にしました。下に続けるのも?です。 ①他のエラー多数の扱い。 ②リンターは、自動的に編集してくれますか。抽出だけですか。 ③リンターに、自作定義オプションを追加できますか。それを編集してくれるとうれしい。 ④おすすめのリンターを教えて下さい。AIでもいけそうな気もしました。エラー全部のLLM? >...彼の問いかけは論理的なものではないと考えます。...(利用者・トーク:Tomzo#お願いより) と言われませんように。--[[利用者:Tkkn46tkkn46|Tkkn46tkkn46]] ([[利用者・トーク:Tkkn46tkkn46|トーク]]) 2026年4月6日 (月) 13:49 (UTC) :{{コメント2|コメント}} 私たちの議論をご覧になっての質問ということで、ご回答致します。 :# 他のエラーも同様に修正するのが理想です。ただ、我々の能力的な問題があったり、量があったりでそのままにされているだけです。 :# 質問の意図が汲めなかったのですが、問題の箇所を修正すれば自動的にLintエラーのページからは表示されなくなります。 :# おそらく、我々は大元の設定はいじれないかと思います。 :# おすすめのLintエラーの意味がわかりません。ウィキペディアではBotが良く使われますが、同じエラーでもケースバイケースなのでLintエラーに対してはあまり使われていない印象です。結局、現時点では人間の判断が必要です。 :質問に対する答えになってるでしょうか?--[[利用者:なまえみてい|なまえみてい]] ([[利用者・トーク:なまえみてい|トーク]]) 2026年4月16日 (木) 04:33 (UTC) == アイコン?テンプレート?を探しています。英語でも。このページ「○○○」は、まだ書きかけです。出来上がるまでマッテ。 == 他、例えば、 ・このページ「○○○」は、まだ書きかけです。出来上がるまで余計な事言うな。 ・このページ「○○○」は、まだ書きかけです。出来上がるまでコメントするな。 ・このページ「○○○」は、まだ書きかけです。△△△日まで余計な事言うな。過ぎればOK。 ・このページ「○○○」は、コメントされても、返信しません。 (参考例) 以下は、ただちにコメントOKの例。 [[トランプ#関連項目]]を転写。 このページ「○○○○」は、まだ書きかけです。加筆・訂正など、協力いただける皆様の編集を心からお待ちしております。また、ご意見などがありましたら、お気軽にトークページへどうぞ。--[[利用者:Tkkn46tkkn46|Tkkn46tkkn46]] ([[利用者・トーク:Tkkn46tkkn46|トーク]]) 2026年4月11日 (土) 12:59 (UTC) == スタイルマニュアル の ナビゲーションをつける について4点教えて下さい。 == [[Wikibooks:スタイルマニュアル#ナビゲーションをつける]] ①>このうち、1(テンプレート:Pathnav)を使用して下さい。 上記があるので、2、3を<nowiki><del></del></nowiki>にして下さい。 ②><nowiki>{{[[テンプレート:Pathnav|Pathnav]]|メインページ|親項目|子項目}}</nowiki>  >最上位ページは「メインページ」にすること(英語の使用の回避) メインページ が必要ですか。1行目のアイコンと同じに見えます。 ③できれば、pathnav行を 削除したい。表示の重複。 例 [[トランプ]] <nowiki>{{Pathnav|メインページ|ゲーム|frame=1}}</nowiki> [[数学]] <nowiki>{{Pathnav|メインページ|frame=1|small=1}}</nowiki> ゲームの場合、ゲームはイラナイのか。ナントカナルです。 ④法文は、次行をどうして使わなかったのですか。フッタを使っているのですか。 <nowiki>top:[[本のタイトル]] / previous:[[前のページ]] - up:[[章タイトル]] - next:[[次のページ]]</nowiki>--[[利用者:Tkkn46tkkn46|Tkkn46tkkn46]] ([[利用者・トーク:Tkkn46tkkn46|トーク]]) 2026年4月14日 (火) 13:30 (UTC) == カテゴリー内。最新記事の日付を表示できますか。自動更新。ついでに、全記事の最終更新日もです。 == 記事内に自動更新 日付の事例を探しています。 ①(現在)トランプ記事の総数は、...以下の 76 ページを表示しています。 [[カテゴリ:トランプ#カテゴリ: “トランプ”]] ②次行、わかりやすいです。(ちょっと年表示が気になったけど、年表示しないのがステキ。曜日も。新型手動) [[利用者:AkiR27User#※作成・編集ページ]]※4/15時点 前行、wikibooksが自動的に、表示してほしい。 4/15(水)時点のトランプ記事の総数は、...以下の 76 ページを表示しています。(カテゴリー内) ↑↑↑ ??? wikibooksの言い分。そのくらい、人間が投稿履歴を見て、判断できるだろ。情報は提供している。手動。 ??? カテゴリー内でマジックワードが使えますか。 (参考) [[w:Help:マジックワード]]--[[利用者:Tkkn46tkkn46|Tkkn46tkkn46]] ([[利用者・トーク:Tkkn46tkkn46|トーク]]) 2026年4月15日 (水) 03:15 (UTC) == Request for comment (global AI policy) == <bdi lang="en" dir="ltr" class="mw-content-ltr"> Apologies for writing in English. {{int:Please-translate}} A [[:m:Requests for comment/Artificial intelligence policy|request for comment]] is currently being held to decide on a global AI policy. {{int:Feedback-thanks-title}} [[利用者:MediaWiki message delivery|MediaWiki message delivery]] ([[利用者・トーク:MediaWiki message delivery|トーク]]) 2026年4月26日 (日) 00:57 (UTC) </bdi> <!-- User:Codename Noreste@metawiki が https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30424282 のリストを使用して送信したメッセージ --> == Wikimedians of Japan User Group 2026-4 == '''全体ニュース''' * ユニバーサル行動規範調整委員会委員(U4C)の立候補は5月11日21時(JST)までです。 * 5月18日から6月1日21時までU4C委員の投票が行われます。 * ウィキメディア財団理事会はすべての言語版のウィキニュースを閉鎖することを承認しました。ウィキニュースは5月4日から読み取り専用になります。 '''ESEAPハブからのおしらせ'''[[File:ESEAP logo horizontal.svg|40px|link=:m:ESEAP_Hub/ja]] * 5月3日15時(JST)から[[:m:Event:ESEAP_Community_Call_58_(3_May_2026)|オンラインミーティング]]が行われます。 * 5月15日から17日まで台湾で[[:m:ESEAP_Conference_2026/ja|ESEAPカンファレンス2026]]が開催されます。 '''Wikimedians of Japan User Groupからのおしらせ'''[[File:Wikimedians of Japan User Group Logoonly.svg|20px|link=:m:Wikimedians_of_Japan_User_Group]] * 5月23日に開催される[https://event.ospn.jp/osc2026-nagoya/ OSC名古屋]に参加します。 '''[[:w:ja:メインページ|日本語版ウィキペディア]]'''[[File:Wikipedia-logo-v2.svg|20px|link=:w:ja:]] * 今月は以下の記事が[[:w:ja:Wikipedia:良質な記事/良質な記事の選考|良質な記事の選考]]を通過しました。 **[[:w:ja:オシダ科|オシダ科]] **[[:w:ja:美濃電気軌道セミボ510形電車|美濃電気軌道セミボ510形電車]] **[[:w:ja:シャンブル|シャンブル]] **[[:w:ja:東山地域 (一関市)|東山地域 (一関市)]] **[[:w:ja:三方領地替え (1817年)|三方領地替え (1817年)]] **[[:w:ja:フサイン・ブン・ハムダーン|フサイン・ブン・ハムダーン]] **[[:w:ja:マリアノ・リベラ|マリアノ・リベラ]] **[[:w:ja:ナポレオンと田虫|ナポレオンと田虫]] **[[:w:ja:我が心は石にあらず|我が心は石にあらず]] **[[:w:ja:フランク・フラゼッタ|フランク・フラゼッタ]] **[[:w:ja:紀藤真琴|紀藤真琴]] **[[:w:ja:三ヶ島葭子|三ヶ島葭子]] **[[:w:ja:平野 (大阪市)|平野 (大阪市)]] **[[:w:ja:丹沢湖|丹沢湖]] * 今月の1枚 [[File:Matsumoto-castle-2026-HK.jpg|alt=|thumb|200x200px|ライトアップされた[[:w:ja:光清寺_(京都市)|松本城]] |none]] '''5月のオフラインイベント情報''' * 5/10 [[:w:ja:プロジェクト:アウトリーチ/ウィキペディアタウン#2026-05-10_ウィキペディアタウン_in_吉野地区|ウィキペディアタウン in 吉野地区]] * 5/10 [https://countries-romantic.connpass.com/event/389840/ 花博鶴見緑地で学ぶ 地図とWikipediaの編集体験] '''[[:wmfblog:|Diff]]''' タイトル / 著者;翻訳者 (掲載日) の順で記載しています。 * [https://diff.wikimedia.org/ja/2026/03/02/%e3%82%a6%e3%82%af%e3%83%a9%e3%82%a4%e3%83%8a%e3%81%ae%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e3%83%b3%e3%81%af%e3%81%93%e3%81%ae%e5%9b%b0%e9%9b%a3%e3%81%aa%e5%86%ac%e3%82%92/ ウクライナのウィキメディアンはこの困難な冬をどう過ごしているか―4人の物語] / Anton Protsiuk ; Wadakuramon (2026/03/02) * [https://diff.wikimedia.org/ja/2026/03/04/%e6%9d%b1%e4%ba%ac%e3%81%a7%e3%81%ae%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9a%e3%83%87%e3%82%a3%e3%82%a225%e5%91%a8%e5%b9%b4%e8%a8%98%e5%bf%b5%e4%ba%a4%e6%b5%81%e4%bc%9a%e3%81%af%e5%a4%a7%e7%9b%9b%e6%b3%81/ 東京でのウィキペディア25周年記念交流会は大盛況でした] / Wadakuramon (2026/03/04) * [https://diff.wikimedia.org/ja/2026/03/10/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e6%8f%90%e6%90%ba%e5%9b%a3%e4%bd%93%e3%81%ae%e5%b0%86%e6%9d%a5%e5%83%8f%e3%82%92%e6%8f%90%e6%a1%88/ ウィキメディア提携団体の将来像を提案] / Kaarel ; Omotecho (2026/03/10) * [https://diff.wikimedia.org/ja/2026/03/11/%e3%82%a6%e3%82%a3%e3%82%ad%e7%a5%9d%e3%81%84%ef%bc%9a%e3%83%a1%e3%83%ab%e3%83%b4%e3%82%a1%e3%83%83%e3%83%88%ef%bc%8d%e7%9f%a5%e8%ad%98%e3%80%81%e3%82%b3%e3%83%9f%e3%83%a5%e3%83%8b%e3%83%86%e3%82%a3/ ウィキ祝い:メルヴァット-知識、コミュニティ、信頼を築いた10年] / Jan Beránek (WMF), Natalia Szafran-Kozakowska ; Wadakuramon (2026/03/11) * [https://diff.wikimedia.org/ja/2026/03/16/%e3%82%a4%e3%83%99%e3%83%b3%e3%83%88%e4%b8%80%e8%a6%a7%e3%81%ae%e7%a7%bb%e5%8b%95%e6%83%85%e5%a0%b1%ef%bc%9adiff%e3%81%ae%e3%82%a4%e3%83%99%e3%83%b3%e3%83%88%e3%82%ab%e3%83%ac%e3%83%b3%e3%83%80/ イベント一覧の移動情報:Diffのイベントカレンダーはメタ・ウィキに移りました] / Chris Koerner ; Wadakuramon (2026/03/16) * [https://diff.wikimedia.org/ja/2026/03/16/%e8%91%ac%e5%84%80%e3%81%a7%e5%ad%a6%e3%82%93%e3%81%a0%e3%80%81%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9a%e3%83%87%e3%82%a3%e3%82%a2%e3%81%a8%e3%83%9c%e3%83%aa%e3%83%93%e3%82%a2%e3%81%a8%e6%97%a5%e6%9c%ac/ 葬儀で学んだ、ウィキペディアとボリビアと日本のこと:知識と愛情の物語] / Carlillasa ; Wadakuramon (2026/03/16) * [https://diff.wikimedia.org/ja/2026/04/02/wikidata%e3%83%af%e3%83%bc%e3%82%af%e3%82%b7%e3%83%a7%e3%83%83%e3%83%9720260327%ef%bc%a0%e7%ad%91%e6%b3%a2%e5%a4%a7%e5%ad%a6%e6%9d%b1%e4%ba%ac%e3%82%ad%e3%83%a3%e3%83%b3%e3%83%91%e3%82%b9/ Wikidataワークショップ20260327@筑波大学東京キャンパス] / Eugene Ormandy (2026/04/02) * [https://diff.wikimedia.org/ja/2026/04/04/%e4%ba%ba%e5%b7%a5%e7%9f%a5%e8%83%bd%e5%ad%a6%e4%bc%9a%e7%ac%ac68%e5%9b%9eswo%e7%a0%94%e7%a9%b6%e4%bc%9a%e3%81%ab%e7%99%bb%e5%a0%b4%e3%81%97%e3%81%9fwikimedia%e3%81%ae%e8%a9%b1/ 人工知能学会第68回SWO研究会に登場したWikimediaの話] / Eugene Ormandy (2026/04/04) * [https://diff.wikimedia.org/ja/2026/04/06/jacet%e8%8b%b1%e8%aa%9e%e8%be%9e%e6%9b%b8%e7%a0%94%e7%a9%b6%e4%bc%9a2025%e5%b9%b4%e5%ba%a6%e7%ac%ac2%e5%9b%9e%e4%be%8b%e4%bc%9a%e3%81%a7wikipedia%e3%81%ae%e7%99%ba%e8%a1%a8%e3%82%92%e5%ae%9f%e6%96%bd/ JACET英語辞書研究会2025年度第2回例会でWikipediaの発表を実施] / Eugene Ormandy (2026/04/06) * [https://diff.wikimedia.org/ja/2026/04/07/%e6%8f%90%e6%90%ba%e5%9b%a3%e4%bd%93%e8%aa%8d%e5%ae%9a%e3%81%ae%e4%b8%80%e6%99%82%e5%81%9c%e6%ad%a2%e6%9c%9f%e9%96%93%e3%81%8c2026%e5%b9%b49%e6%9c%88%e3%81%be%e3%81%a7%e5%bb%b6%e9%95%b7%e3%81%95/ 提携団体認定の一時停止期間が2026年9月まで延長されました] / CAlmog-WMF ; YShibata (2026/04/07) * [https://diff.wikimedia.org/ja/2026/04/07/%e3%82%a6%e3%82%af%e3%83%a9%e3%82%a4%e3%83%8a%e3%81%ae%e6%96%87%e5%8c%96%e3%82%92%e4%b8%96%e7%95%8c%e3%81%b8%e4%bc%9d%e3%81%88%e3%81%be%e3%81%97%e3%82%87%e3%81%86%ef%bc%9a%e7%ac%ac6%e5%9b%9e%e3%82%a6/ ウクライナの文化を世界へ伝えましょう:第6回ウクライナの文化外交月間がウィキペディアで始まりました!] / OlesiaLukaniuk WMUA ; Wadakuramon (2026/04/07) * [https://diff.wikimedia.org/ja/2026/04/13/%e5%b0%91%e6%95%b0%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%ae%e3%82%a6%e3%82%a3%e3%82%ad%e3%81%af%e7%ac%ac1%e5%9b%9e%e3%80%8c%e3%82%a2%e3%83%95%e3%83%aa%e3%82%ab%e3%81%ae%e5%b0%91%e6%95%b0%e8%80%85/ 少数者のためのウィキは第1回「アフリカの少数者キャンペーン」を2026年4月に開催します] / Fulani215 ; Wadakuramon (2026/04/13) * [https://diff.wikimedia.org/ja/2026/04/17/%e7%a7%81%e3%81%9f%e3%81%a1%e3%81%8c%e3%83%9c%e3%83%aa%e3%83%93%e3%82%a2%e3%81%a7%e5%8f%96%e3%82%8a%e7%b5%84%e3%82%93%e3%81%a7%e3%81%84%e3%82%8b%e7%b9%94%e7%89%a9%e3%81%a8%e8%a1%a3%e6%96%99/ 私たちがボリビアで取り組んでいる織物と衣料] / NairaWM BO ; Wadakuramon (2026/04/17) * [https://diff.wikimedia.org/ja/2026/04/23/%e6%97%a5%e9%9f%93%e3%82%a8%e3%83%87%e3%82%a3%e3%82%bf%e3%82%bd%e3%83%b32026%e3%81%a7%e6%9b%b8%e3%81%84%e3%81%9f3%e6%9c%ac%e3%81%ae%e8%a8%98%e4%ba%8b/ 日韓エディタソン2026で書いた3本の記事] / Wadakuramon (2026/04/23) * [https://diff.wikimedia.org/ja/2026/04/24/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9a%e3%83%87%e3%82%a3%e3%82%a2%e3%82%92%e3%81%8a%e7%a5%9d%e3%81%84%e3%81%99%e3%82%8b%e3%81%ae%e3%81%af%e3%80%81%e7%a7%81%e3%81%9f%e3%81%a1%e3%81%ae%e3%82%b3%e3%83%9f/ ウィキペディアをお祝いするのは、私たちのコミュニティを祝うことでもあります] / N1ny4 t ; Wadakuramon (2026/04/24) * [https://diff.wikimedia.org/ja/2026/04/28/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e8%b2%a1%e5%9b%a3%e5%b9%b4%e6%ac%a1%e8%a8%88%e7%94%bb-2026-2027%e3%81%ae%e3%81%94%e7%b4%b9%e4%bb%8b/ ウィキメディア財団年次計画/2026-2027のご紹介] / Wikimedia Foundation ; Omotecho (2026/04/28) '''前回配信:2025年3月31日''' <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> 配信元: ''[[:m:Wikimedians of Japan User Group|Wikimedians of Japan User Group]]''<br /> <small>[[:m:Talk:Wikimedians of Japan User Group/メールマガジン|フィードバック]]。[[:m:Wikimedians of Japan User Group/メールマガジン/targets list| 登録・削除]]。</small>2026年4月30日 (木) 11:03 (UTC) <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> <!-- User:Chqaz-WMJPUG@metawiki が https://meta.wikimedia.org/w/index.php?title=Wikimedians_of_Japan_User_Group/%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%9E%E3%82%AC%E3%82%B8%E3%83%B3/targets_list&oldid=30361722 のリストを使用して送信したメッセージ --> == 【要望】テンプレートについて教えて下さい。テンプレート:Pathnavのような、Wikinavがありますか。 == :<nowiki>{{Wikinav|交換法則}}</nowiki> 左記のカンジです。wikipediaへリンクです。文字w:を非表示。2step? :新規作成の、wikipediaへのリダイレクトページが不要の気がしました。 :(使用例) :[[初等数学公式集/解析幾何/コラム#外積の計算]] :[[交換法則]] :<nowiki>#redirect[[w:交換法則]]</nowiki> --[[利用者:Tkkn46tkkn46|Tkkn46tkkn46]] ([[利用者・トーク:Tkkn46tkkn46|トーク]]) 2026年5月27日 (水) 10:50 (UTC) == <span lang="en" dir="ltr">Vote now in the 2026 U4C election</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Eligible voters are asked to participate in the 2026 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|2026 Election information page]]. The vote closes on 2 June 2026 at [https://zonestamp.toolforge.org/1780358400 00:00 UTC]. Please vote if your account is eligible. Results will be available by 14 June 2026. -- In cooperation with the U4C,<section end="announcement-content" /> </div> [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 2026年5月27日 (水) 17:14 (UTC) <!-- User:Keegan (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 のリストを使用して送信したメッセージ --> == ESEAP Strategy Summit 2027開催決定のお知らせ == 先日開催された、[[meta:ESEAP Conference 2026|ESEAP Conference 2026]]にて、来年2027年5月にESEAP Strategy Summit 2027を大阪で開催することが発表されました。詳細はこれからの検討事項となりますが、決定次第[[meta:ESEAP Strategy Summit 2027|ESEAP Strategy Summit 2027]]のページにて公開されるほか、適宜こちらのお知らせにて随時投稿させていただきますので、興味のある方、当日お手伝いなどいただける方はMeta-WikiのESEAP Strategy Summit 2027のページをご確認いただくか、[[meta:Wikimedians of Japan User Group|Wikimedians of Japan User Group]]にメンバーとして参加いただくことをご検討ください。--[[利用者:VZP10224(WjpUG)|VZP10224(WjpUG)]] ([[利用者・トーク:VZP10224(WjpUG)|トーク]]) 2026年5月28日 (木) 11:27 (UTC) == Wikimedians of Japan User Group 2026-5 == '''ESEAPハブからのおしらせ'''[[File:ESEAP logo horizontal.svg|40px|link=:m:ESEAP_Hub/ja]] * 6月6日15時(JST)から[[:m:Event:ESEAP_Community_Call_59_(6_June_2026)|オンラインミーティング]]が行われます。 '''Wikimedians of Japan User Groupからのおしらせ'''[[File:Wikimedians of Japan User Group Logoonly.svg|20px|link=:m:Wikimedians_of_Japan_User_Group]] * 6月1日から31日まで[[:w:ja:Event:日本ボリビア友好2026|日本ボリビア友好オンラインエディタソン]]を開催します。 * 6月27日に開催される[https://event.ospn.jp/osc2026-do/ OSC北海道]に参加します。 * [[:m:Grants:Programs/Wikimedia_Community_Fund/General_Support_Fund/Wikimedians_of_Japan_User_Group_2026-27_Annual_Plan|助成金申請]]が承認されました。 '''[[:w:ja:メインページ|日本語版ウィキペディア]]'''[[File:Wikipedia-logo-v2.svg|20px|link=:w:ja:]] * 今月は以下の記事が[[:w:ja:Wikipedia:良質な記事/良質な記事の選考|良質な記事の選考]]を通過しました。 **[[:w:ja:オシダ科|オシダ科]] **[[:w:ja:美濃電気軌道セミボ510形電車|美濃電気軌道セミボ510形電車]] **[[:w:ja:シャンブル|シャンブル]] **[[:w:ja:東山地域 (一関市)|東山地域 (一関市)]] **[[:w:ja:三方領地替え (1817年)|三方領地替え (1817年)]] **[[:w:ja:フサイン・ブン・ハムダーン|フサイン・ブン・ハムダーン]] **[[:w:ja:マリアノ・リベラ|マリアノ・リベラ]] **[[:w:ja:ナポレオンと田虫|ナポレオンと田虫]] **[[:w:ja:我が心は石にあらず|我が心は石にあらず]] **[[:w:ja:フランク・フラゼッタ|フランク・フラゼッタ]] **[[:w:ja:紀藤真琴|紀藤真琴]] **[[:w:ja:三ヶ島葭子|三ヶ島葭子]] **[[:w:ja:平野 (大阪市)|平野 (大阪市)]] **[[:w:ja:丹沢湖|丹沢湖]] * 今月の1枚 [[File:旧岩淵水門.jpg|alt=|thumb|200x200px|東京都北区の[[:w:ja:旧岩淵水門|岩淵水門]]|none]] '''6月のオフラインイベント情報''' * 6/6 [https://edit-tango.webnode.jp/l/edittango/ ウィキペディアタウン in 天女の里] * 6/7 [https://edit-tango.webnode.jp/l/edittango/ ウィキペディア見本市 in 第4回みすずフェスタ] * 6/27 [[:w:ja:プロジェクト:アウトリーチ/ウィキペディアタウン#2026-06-27_ウィキペディアタウン_in_丹後町2026|ウィキペディアタウン in 丹後町]] '''[[:wmfblog:|Diff]]''' タイトル / 著者;翻訳者 (掲載日) の順で記載しています。 * [https://diff.wikimedia.org/ja/2026/04/23/%e8%87%aa%e5%88%86%e3%81%ae%e3%80%8c%e6%b4%bb%e5%8b%95%e6%ad%b4%e3%80%8d%e3%82%92%e6%9b%b8%e3%81%84%e3%81%a6%e3%81%bf%e3%82%8b/ 自分の「活動歴」を書いてみる] / Lin Xiangru (2026/04/23) * [https://diff.wikimedia.org/ja/2026/05/03/wikipedia%e8%a8%98%e4%ba%8b%e3%80%8e%e5%b8%82%e5%b7%9d%e5%b0%91%e5%a5%b3%e6%ad%8c%e8%88%9e%e4%bc%8e%e3%80%8f%e3%81%ae%e5%9f%b7%e7%ad%86%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/ Wikipedia記事『市川少女歌舞伎』の執筆について] / のりまき (2026/05/03) * [https://diff.wikimedia.org/ja/2026/05/07/%e6%a8%aa%e6%b5%9c%e4%b8%ad%e8%8f%af%e8%a1%97%e3%81%ae%e6%ad%b4%e5%8f%b2%ef%bc%9a%e4%b8%ad%e5%9b%bd%e6%96%99%e7%90%86%e3%81%ae%e3%83%86%e3%83%bc%e3%83%9e%e3%83%91%e3%83%bc%e3%82%af%e3%81%a8%e6%97%a5/?fbclid=IwY2xjawRsaTJleHRuA2FlbQIxMQBzcnRjBmFwcF9pZBAyMjIwMzkxNzg4MjAwODkyAAEeHzJBybslx3HqplC-5NsUD8hbdsj5sJDGda98CnGXQw5SL9tMrDGlXokf1dg_aem_sgRY_7nG6qRvDemytzjpFQ 横浜中華街の歴史:中国料理のテーマパークと日中/日台関係の鏡として] / のりまき (2026/05/07) * [https://diff.wikimedia.org/ja/2026/05/19/%e3%83%90%e3%83%bc%e3%83%8a%e3%83%87%e3%83%83%e3%83%88ceo%e3%81%a8%e6%97%a5%e6%9c%ac%e3%81%ae%e3%82%b3%e3%83%9f%e3%83%a5%e3%83%8b%e3%83%86%e3%82%a3%e3%81%ae%e5%87%ba%e4%bc%9a%e3%81%84/ バーナデットCEOと日本のコミュニティの出会い] / Wadakuramon (2026/05/19) * [https://diff.wikimedia.org/ja/2026/05/22/%e6%97%a5%e9%9f%93%e3%82%a8%e3%83%87%e3%82%a3%e3%82%bf%e3%82%bd%e3%83%b32026-%e3%82%92%e9%96%8b%e5%82%ac%e3%81%97%e3%81%be%e3%81%97%e3%81%9f/ 日韓エディタソン2026 を開催しました] / Lin Xiangru (2026/05/22) * [https://diff.wikimedia.org/ja/2026/05/22/%e6%97%a5%e6%9c%ac%e3%81%a8%e3%83%9c%e3%83%aa%e3%83%93%e3%82%a2%e3%81%ae%e5%8f%8b%e5%a5%bd%e3%82%a8%e3%83%87%e3%82%a3%e3%82%bf%e3%82%bd%e3%83%b3%e3%82%926%e6%9c%88%e3%81%ab%e9%96%8b%e5%82%ac%e3%81%97/ 日本とボリビアの友好エディタソンを6月に開催します!] / Wadakuramon (2026/05/22) * [https://diff.wikimedia.org/ja/2026/05/27/%e6%b5%b7%e5%a4%96%e3%81%ae%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e3%83%b3%e3%81%a8%e4%bb%b2%e8%89%af%e3%81%8f%e3%81%aa%e3%82%8b%e6%96%b9%e6%b3%95/ 海外のウィキメディアンと仲良くなる方法] / Ga2by (2026/05/27) * [https://diff.wikimedia.org/ja/2026/05/28/2027%e5%b9%b4%e3%81%aeeseap-strategy-summit%e3%82%92%e6%97%a5%e6%9c%ac%e3%81%a7%e9%96%8b%e5%82%ac/ 2027年のESEAP Strategy Summitを日本で開催] / VZP10224 (2026/05/28) * [https://diff.wikimedia.org/ja/2026/05/28/eseap2026%e3%81%a7%e7%99%ba%e8%a1%a8%e3%81%97%e3%81%9f%e6%a8%aa%e6%b5%9c%e3%82%a8%e3%83%87%e3%82%a3%e3%82%bf%e3%82%bd%e3%83%b3%e3%81%a8%e3%80%81%e3%83%94%e3%82%bf%e3%83%90%e3%83%b3%e3%82%ac%e3%83%b3/ ESEAP2026で発表した横浜エディタソンと、ピタバンガン高雄] / Wadakuramon (2026/05/28) * [https://diff.wikimedia.org/ja/2026/05/30/wm%e8%b2%a1%e5%9b%a3%e3%83%90%e3%83%bc%e3%83%8a%e3%83%87%e3%83%83%e3%83%88ceo%e3%81%8c%e6%97%a5%e6%9c%ac%e3%81%ae%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e3%81%ab%e7%99%bb%e5%a0%b4/ WM財団バーナデットCEOが日本のメディアに登場] / Wadakuramon (2026/05/30) '''前回配信:2026年4月30日''' <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> 配信元: ''[[:m:Wikimedians of Japan User Group|Wikimedians of Japan User Group]]''<br /> <small>[[:m:Talk:Wikimedians of Japan User Group/メールマガジン|フィードバック]]。[[:m:Wikimedians of Japan User Group/メールマガジン/targets list| 登録・削除]]。</small>2026年5月31日 (日) 14:11 (UTC) <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> <!-- User:Chqaz-WMJPUG@metawiki が https://meta.wikimedia.org/w/index.php?title=Wikimedians_of_Japan_User_Group/%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%9E%E3%82%AC%E3%82%B8%E3%83%B3/targets_list&oldid=30576890 のリストを使用して送信したメッセージ --> == RFC about AI-generated content in Wikimedia Commons == <bdi lang="en" dir="ltr">Apologies for writing in English, please help translate this message to your language. You are invited to participate in a [[c:Commons:Requests for comment/Policy update for AI content|request for comment on Wikimedia Commons about a policy update for AI content]]. This may affect files that are uploaded to Wikimedia Commons for use on this project. Thank you. [[m:User:Codename Noreste|Codename Noreste]] ([[m:User talk:Codename Noreste|トーク]])</bdi> 2026年6月23日 (火) 17:11 (UTC) <!-- User:Codename Noreste@metawiki が https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 のリストを使用して送信したメッセージ --> == <span lang="en" dir="ltr">Deployment of Legal and Safety Contacts Link in the Footer of Your Wiki</span> == <div lang="en" dir="ltr"> <section begin="Message"/> '''Legal & Safety Contacts''' Hello community, the Wikimedia Foundation has provided a [[wmf:Special:MyLanguage/Legal:Wikimedia Foundation Legal and Safety Contact Information|single legal and safety contact page]], to be linked in the footer of your wiki, to ensure access to accurate legal information. This is a regulatory requirement. We have already rolled out links to English, German, Italian, Spanish and other wikis and we will deploy to your wiki soon. [[m:Special:MyLanguage/Wikimedia_Foundation_Legal_and_Safety_Contacts_FAQ|Please read more on the project page]] and leave any comments in this thread or on the [[m:Special:MyLanguage/Talk:Wikimedia Foundation Legal and Safety Contacts FAQ|talk page]]. <section end="Message"/> </div> -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 2026年6月25日 (木) 13:30 (UTC) <!-- User:Sannita (WMF)@metawiki が https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=30731267 のリストを使用して送信したメッセージ --> == Wikimedians of Japan User Group 2026-6 == '''全体ニュース''' * 7月21日から25日までパリで[[:wikimania:2026:Wikimania/ja|ウィキマニア]]が行われます。 '''ESEAPハブからのおしらせ'''[[File:ESEAP logo horizontal.svg|40px|link=:m:ESEAP_Hub/ja]] * 7月5日15時(JST)からオンラインミーティングが行われます。 '''Wikimedians of Japan User Groupからのおしらせ'''[[File:Wikimedians of Japan User Group Logoonly.svg|20px|link=:m:Wikimedians_of_Japan_User_Group]] * 法人化の準備を進めています。 * [[:w:ja:Event:日本ボリビア友好2026|日本ボリビア友好オンラインエディタソン]]を開催しました。 *[https://event.ospn.jp/osc2026-do/ OSC北海道]に参加しました。 '''[[:w:ja:メインページ|日本語版ウィキペディア]]'''[[File:Wikipedia-logo-v2.svg|20px|link=:w:ja:]] * 今月は以下の記事が[[:w:ja:Wikipedia:良質な記事/良質な記事の選考|良質な記事の選考]]を通過しました。 **[[:w:ja:宮城県における平成の大合併|宮城県における平成の大合併]] **[[:w:ja:文化財の保存と修復|文化財の保存と修復]] **[[:w:ja:障害学|障害学]] **[[:w:ja:エドワード・グレイ|エドワード・グレイ]] **[[:w:ja:トカラ列島の本土復帰|トカラ列島の本土復帰]] **[[:w:ja:お狂言師|お狂言師]] **[[:w:ja:ぬい活|ぬい活]] **[[:w:ja:夜の踊り子|夜の踊り子]] **[[:w:ja:P-47II MD|P-47II MD]] **[[:w:ja:ウルフキテル|ウルフキテル]] **[[:w:ja:雅楽|雅楽]] **[[:w:ja:上久世荘|上久世荘]] **[[:w:ja:タイガとココア|タイガとココア]] **[[:w:ja:くじら座タウ星|くじら座タウ星]] **[[:w:ja:尼子山トンネル火災事故|尼子山トンネル火災事故]] * 今月の1枚 [[File:Cherry_tree_and_Mount_Iwate_in_spring_2026.jpg|alt=|thumb|200x200px|[[:w:ja:小岩井農場|小岩井農場]]と[[:w:ja:岩手山|岩手山]]|none]] '''7月のオフラインイベント情報''' * 7/11 [https://www.city.yaizu.lg.jp/event/info-00563.html 焼津市ウィキペディアタウン~八雲と歩く焼津Wiki旅~] * 7/19 [https://edit-tango.webnode.jp/イベント/ ウィキペディアにゃウンvol.9 part.1 峰山城下町] * 7/29 [https://kumanichi.com/event/1993906 図書館×Wikipedia 地域発信ワークショップ] '''[[:wmfblog:|Diff]]''' タイトル / 著者;翻訳者 (掲載日) の順で記載しています。 * [https://diff.wikimedia.org/ja/2026/06/15/%e6%97%a5%e6%9c%ac%e3%81%ae%e5%ad%a6%e7%94%9f%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9a%e3%83%87%e3%82%a3%e3%82%a2%e3%83%b3%e3%82%b5%e3%83%bc%e3%82%af%e3%83%ab%e3%81%8c%e5%90%8c%e4%ba%ba%e8%aa%8c%e3%82%92/ 日本の学生ウィキペディアンサークルが同人誌を刊行] / Wadakuramon (2026/06/15) '''前回配信:2026年5月31日''' <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> 配信元: ''[[:m:Wikimedians of Japan User Group|Wikimedians of Japan User Group]]''<br /> <small>[[:m:Talk:Wikimedians of Japan User Group/メールマガジン|フィードバック]]。[[:m:Wikimedians of Japan User Group/メールマガジン/targets list| 登録・削除]]。</small>2026年6月30日 (火) 13:44 (UTC) <hr style="border-top: 2px 破線 #7F9AEB; border-bottom: none;"> <!-- User:Chqaz-WMJPUG@metawiki が https://meta.wikimedia.org/w/index.php?title=Wikimedians_of_Japan_User_Group/%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%9E%E3%82%AC%E3%82%B8%E3%83%B3/targets_list&oldid=30576890 のリストを使用して送信したメッセージ --> == {{NDC|021}} が 日本十進分類法/000 と表示されます。一致する方法を教えて下さい。 == :[[ウィキペディアの書き方#他言語版ウィキペディアの書き方]] :(参考) :[[Wikibooks:日本十進分類法#021.4 編集 編纂]] --[[利用者:Tkkn46tkkn46|Tkkn46tkkn46]] ([[利用者・トーク:Tkkn46tkkn46|トーク]]) 2026年7月1日 (水) 12:51 (UTC) :: ご質問の場合は、[[:カテゴリ:日本十進分類法/021]]を作成すれば、一致させることができます。ただ、個人的には、そのカテゴリに入るべきページがきわめて少ないのであれば、そのカテゴリは細分化されすぎであり、作成は時期尚早と考えます。 --[[利用者:Kyube|kyube]] ([[利用者・トーク:Kyube|トーク]]) 2026年7月1日 (水) 14:45 (UTC) == 最近の更新で (感謝) を押してみた。記事に変化はありません。 == [[ウィキペディアの書き方]] に説明はありませんでした。--[[利用者:Tkkn46tkkn46|Tkkn46tkkn46]] ([[利用者・トーク:Tkkn46tkkn46|トーク]]) 2026年7月1日 (水) 21:06 (UTC) : 日本語版wikibooksでは説明がないですね。[[w:Wikipedia:通知/感謝]]をお読みください。この機能は利用者に感謝を伝えるものですから、記事やページに変化を生じさせるものではありません。 : これに限らず日本語版wikibooksに説明がないものはまず日本語版wikipediaにないか探したほうが良いです。 --[[利用者:Kyube|kyube]] ([[利用者・トーク:Kyube|トーク]]) 2026年7月2日 (木) 17:03 (UTC) == 孤立しているページについて == [[特別:孤立しているページ|孤立しているページの一覧]]に、[[C++/キャスト]]や[[C++/クイックツアー]]が表示されていました。しかし、[[C++#下位階層のページ]]を確認すると、これらのページへのリンクが存在しています。 ただし、このリンクは 直接記述されたものではなく、「特別:前方一致ページ一覧/{PAGENAME}/|hideredirects=yes|stripprefix=yes」というテンプレートによって自動的にリンクされたものです。 この場合、孤立ページの判定では「直接リンク」が必要なため、テンプレートによる自動リンクでは孤立ページの解消として扱われないようです。 このままだと、「孤立ページに載っているのに、リンクされているように見える」という誤解を招く可能性があります。 そこで、誤解を防ぐために、直接リンクとして[[C++/キャスト]]や[[C++/クイックツアー]]を記述する編集を行いたいと考えています。 あくまで、ほかの利用者の混乱を避けるための対応であり、荒らし目的ではありません。ご理解とご協力をお願いいたします。--[[利用者:AkiR27User|AkiR27User]] ([[利用者・トーク:AkiR27User|トーク]]) 2026年7月8日 (水) 08:30 (UTC) 78t481qdh7tktjg3t8kcjbcnbrfaznz プログラミング 0 846 301301 300968 2026-07-08T09:21:54Z AkiR27User 90873 /* アセンブリ言語 */ 直接リンクを追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]へ 301301 wikitext text/x-wiki {{Pathnav|メインページ|工学|情報技術|frame=1}} プログラミングとは、コンピューターに特定のタスクを実行させるための命令や指示を記述する作業を指します。コンピューターはプログラムと呼ばれる一連の命令を実行することで機能します。これらの命令は、プログラミング言語を使って記述されます。 具体的には以下のようなことが含まれます。 ; 問題の分析と設計 : プログラムを作成する前に、解決したい問題を分析し、アルゴリズム(解決方法)を設計します。 ; コーディング : 設計したアルゴリズムをコンピューターが理解できる形式の命令(プログラミング言語)で記述します。 ; テストとデバッグ : 作成したプログラムが意図した通りに動作するかをテストし、エラー(バグ)があれば修正します。 ; 実装とデプロイ : テストを経て完成したプログラムを実際のシステムやアプリケーションに実装し、デプロイします ; 保守とアップデート : デプロイ後も、新しい要求や環境の変化に合わせてプログラムを保守・更新していきます。 プログラミングには様々な言語とツールが使われますが、根本的には以下の3つの基本概念を扱います。 ; シーケンス(順次実行) : 命令を順に実行すること ; 選択制御(条件分岐) : 条件に応じて処理を変えること ; 反復制御(ループ) : 同じ処理を繰り返し実行すること プログラミングの目的は、人間にとって複雑で手間のかかるタスクをコンピューターに自動化させることにあります。適切にプログラミングされたコンピューターは、高速かつ正確に作業を行うことができます。 == コンピュータ言語 == {{進捗状況}} コンピュータ言語(Computer Language)は、コンピュータや計算機と人間の間で情報をやり取りするための形式言語の総称です。コンピュータ言語は、コンピュータが理解しやすい形式で命令や指示を表現するために設計されています。コンピュータ言語は、大きく以下の3つのカテゴリーに分類されます: ; 機械語(Machine Language) : コンピュータが直接理解できる最も基本的な言語形式で、バイナリ(0と1の組み合わせ)で表されます。 : 各命令やデータが特定のハードウェアの命令セットに対応しており、特定のプロセッサやアーキテクチャに固有です。 ; アセンブリ言語(Assembly Language) : 機械語に対応するニーモニック(助記符)を使用して記述される低水準言語です。 : アセンブリ言語は機械語と1対1で対応しており、人間が理解しやすく、かつコンピュータが直接実行可能です。 ; 高水準言語(High-Level Language) : 人間にとって理解しやすく、抽象度が高い形式で記述されるプログラミング言語です。 : 高水準言語は計算や処理の複雑さを隠蔽し、開発者がプログラムのロジックや機能に集中できるように設計されています。 : 高水準言語には、Python、Java、C++、JavaScript、C#などがあります。 また、広義のコンピュータ言語には、プログラミング言語だけでなく、データベースクエリ言語やマークアップ言語など、コンピュータとのインタラクションや情報の記述に使われる言語全般を指すこともあります。 # データベースクエリ言語(Query Language) #: データベース管理システム(DBMS)とやり取りするための言語で、データの問い合わせや操作を行います。代表的な言語にSQL(Structured Query Language)があります。 # マークアップ言語(Markup Language) #: 文書やデータの構造や意味を記述するための言語で、タグや要素を使って情報をマークアップします。代表的な言語にHTML(HyperText Markup Language)やXML(eXtensible Markup Language)があります。 これらのコンピュータ言語は、それぞれ異なる目的や文脈で使用され、コンピュータとのインタラクションやデータ処理を可能にします。 {{Wikipedia|コンピュータ言語}} {{Main|コンピュータ言語}} === アセンブリ言語 === * [[x86アセンブラ]] {{進捗|50%|2020-07-11}} * [[CASL]] - 国家試験「[[基本情報技術者試験]]」に出題するために開発されたアセンブリ言語。 ---- *[[アセンブリ言語]] *[[AMD64アセンブラ/AMD64 CPU情報表示ツール]] *[[AMD64アセンブラ]] *[[ARM32アセンブリ言語]] *[[ARM64アセンブリ言語/ARM64 CPU情報表示ツール]] *[[ARM64アセンブリ言語]] *[[X86アセンブラ]] === プログラミング言語 === <!-- :(※編集者への注意)言語名はなるべくアルファベット順に並べてください。 * [[ActionScript]] :死語 --> * [[Ada]] * [[ALGOL]] * [[AWK]] * [[BASIC]] {{進捗|75%|2014-02-09}} ** [[プチコン|SMILEBASIC]] ** ※ VBAについては別セクションで紹介。 * [[Bash_Shell_Scripting]] * [[C++]] ** [[More C++ Idioms]] * [[C言語]] {{進捗|75%|2020-07-11}} * [[C Sharp|C#]] * [[COBOL]] * [[D言語]] {{進捗|50%|2020-07-11}} * [[Dart]] * [[Fortran]] {{進捗|00%|2014-02-09}} * [[GNU Octave]] * [[Go]] {{進捗|25%|2020-06-19}} * [[Haskell]] * [[HSP]] * [[Java]] {{進捗|25%|2020-07-11}} * [[JavaScript]] {{進捗|75%|2020-07-11}} * [[Kotlin]] {{進捗|25%|2020-07-11}} * [[Lisp]] {{進捗|00%|2014-02-09}} * [[Logo]] * [[MathML]] {{進捗|00%|2020-05-12}} * [[Nim]] * [[Objective-C]] * [[Odin]] * [[OpenOffice.org Basic]] * [[Perl]] {{進捗|50%|2020-06-19}} * [[PHP]] {{進捗|50%|2020-06-19}} * [[PL/I]] * [[PL/M]] * [[Prolog]] * [[Python]] {{進捗|75%|2020-06-19}} * [[Ruby]] * [[Rust]] * [[Scala]] * [[scrach3]] * [[Scheme]] * [[SQL]] {{進捗|25%|2020-07-11}} ※ MySQL の単元は[[プログラミング#データベース|別の節]]でリンクを記載。 * [[Swift]] * [[TypeScript]] * [[V]] * [[Zig]] ---- <categorytree mode="pages" hideroot="on"> プログラミング言語 </categorytree> === マークアップ言語 === ---- <categorytree mode="pages" hideroot="on"> マークアップ言語 </categorytree> === 問い合わせ言語 === ---- <categorytree mode="pages" hideroot="on"> 問い合わせ言語 </categorytree> == データベース == === 仕様 === * [[SQL]] {{進捗|25%|2020-07-11}} === 実装 === * [[MySQL]] {{進捗|25%|2020-07-11}} (mariaDB もココ) * [[PostgreSQL]] * [[SQLite]] == 低レイヤープログラミング == 低レイヤープログラミングとは、コンピューターのハードウェアに近い低レベルの抽象化層でプログラミングを行うことを指します。 具体的には以下のようなプログラミングが低レイヤープログラミングに含まれます。 * アセンブリ言語プログラミング * システムプログラミング (OSカーネル、デバイスドライバ、ファームウェアなど) * ベアメタルプログラミング (ハードウェアに直接プログラムを展開) 低レイヤープログラミングの特徴は、以下のようなことが挙げられます。 # ハードウェアの動作を直接制御できる # プログラムの実行効率が高い # メモリアクセスなどの低レベルな操作が可能 # 抽象化の層が薄いため、ハードウェア依存性が高い 一方で、プログラミングの複雑さが高く、移植性に乏しい、デバッグが難しいなどの課題もあります。 低レイヤープログラミングは、OSやデバイスドライバ、組み込みシステム、リアルタイムシステムなどで重要な役割を果たしますが、通常のアプリケーション開発では高級言語を使うことが一般的です。 === ファームウェア === ファームウェアとは、電子機器の内部に組み込まれているソフトウェアのことです。ハードウェアを制御し、機器の基本的な動作を実現するプログラムです。 具体的な特徴は以下の通りです。 * 電子機器に予めインストールされており、機器の起動時に読み込まれる * メモリ(ROM、フラッシュメモリなど)に保存されている * ハードウェアの低レベルの制御を行う * 機器固有の機能を実現するため、機器ごとにカスタマイズされる * ファームウェアのアップデートにより機能拡張や不具合修正を行うことができる 例えば、スマートフォンのOSやデジタルカメラの制御ソフトウェア、ルーターの設定ユーティリティなどがファームウェアに該当します。機器の種類によってファームウェアの役割は異なりますが、ハードウェアとソフトウェアの橋渡し的な役割を果たすものと言えます。 * [[UEFIアプリケーションの書き方]] {{進捗|00%|2020-07-11}} === 機械語 === 機械語は、コンピュータが直接理解し実行するための最も基本的なプログラム言語です。機械語はコンピュータのプロセッサが解釈できる形式で、バイナリコード(0と1の列)で表されます。機械語は、コンピュータ内部の命令セットアーキテクチャに依存し、それぞれの命令は特定の操作(加算、論理演算など)やデータの移動を示します。 * [[機械語]] {{進捗|25%|2020-07-11}} === アセンブリ言語 === アセンブリ言語は機械語に比べてわずかに高い抽象化レベルの言語です。アセンブリ言語のコードは、アセンブラによって機械語に変換されます。 アセンブリ言語では、機械語の命令に人間が判読できる記号的な表現(ニーモニック)を対応させています。例えばADDは加算命令、MOVはデータ移動命令などです。 このように、アセンブリ言語は機械語よりは人間が理解しやすい言語ですが、依然としてCPUの低レベル命令を直接書く必要があり、高級言語に比べると生産性は低くなります。 * [[アセンブリ言語]] === その他 === * [[オペレーティングシステム]] {{進捗|25%|2020-07-11}} == ハードウェア記述言語 == * [[VHDL]] == 各論 == === フレームワークやライブラリ === * [[Vulkan]] * [[SPIR-V]] * [[OpenGL]] * [[OpenGLプログラミング]] * [[Xプログラミング]] * [[GNOMEフレームワーク]] {{進捗|25%|2020-07-11}} * [[GTKプログラミング]] {{進捗|25%|2020-07-11}} * [[Qtプログラミング]] {{進捗|25%|2020-07-11}} * [[CGI]] {{進捗|50%|2020-07-11}} * <del>[[Chainer]]</del>'''開発終了''' === マークアップ言語および関連技術 === * [[HTML]] {{進捗|75%|2020-07-11}} * [[MML]] * [[SVG]] {{進捗|50%|2020-07-11}} * [[Markdown]] * [[Asciidoc]] === ソケットプログラミング === * [[WinSock]] {{進捗|100%|2020-07-11}} * [[Unixソケットプログラミング]] {{進捗|100%|2020-07-11}} == Office マクロ == * [[Visual Basic for Applications]] (VBA) * [[Pythonマクロ|LibreOffice Python マクロ]] * [[OpenOffice.org Basic]] ** [[OpenOffice.org_Calc_Basic | OpenOffice.org Calc Basic]] ** [[OpenOffice.org_Base_Basic | OpenOffice.org Base Basic]] == その他 == * [[Windows API]] {{進捗|25%|2020-07-11}} * [[ゲームプログラミング]] {{進捗|25%|2020-07-11}} * [[OSS開発ツール]] {{進捗|25%|2020-07-11}} * [[基本情報技術者試験]] - 国家試験([[情報処理技術者]])。[[基本情報技術者試験/ソフトウェア開発|プログラミング]]に関する問題が出題される。 * [[難解プログラミング言語の作り方]] == 基本的な概念 == 以下に、プログラミングに関連する基本的な概念とプロセスをいくつか説明します。 ;プログラミング言語:プログラミング言語は、人が理解しやすい形でコンピューターに指示を与えるための記述手段です。代表的なプログラミング言語には、Python、Java、C++、JavaScript、Rubyなどがあります。それぞれの言語には特定の用途や特徴があります。 ;アルゴリズム:アルゴリズムは、特定の問題を解決するための手順や手法のセットです。プログラマはアルゴリズムを設計し、それをプログラムの中に実装します。良いアルゴリズムの選択は、プログラムの性能や効率に大きな影響を与えることがあります。 ;データ構造:データ構造は、データを効率的に保存・管理・操作するための方法です。配列、リスト、ツリー、ハッシュテーブルなどがあり、プログラマは適切なデータ構造を選択してプログラムを設計します。 ;プログラムの設計と実装:プログラミングは、問題解決のためにアルゴリズムとデータ構造を使用してプログラムを設計し、それを実際のプログラミング言語で実装するプロセスです。この際、シンタックス(文法)やセマンティクス(意味論)といった言語の特性を理解して適切にコードを書く必要があります。 ;デバッグとテスト:プログラムが完成したら、デバッグとテストが行われます。デバッグはプログラム内のエラーや不具合を見つけて修正するプロセスであり、テストはプログラムが正確に動作するか確認するプロセスです。 ;ソフトウェアエンジニアリング:プログラミングはソフトウェアエンジニアリングの一環であり、プログラミングだけでなく、要件分析、設計、テスト、メンテナンスなどソフトウェア開発ライフサイクル全体を包括します。 プログラミングはコンピューターサイエンスの中心的な要素であり、コンピューターを活用して問題を解決するための重要なスキルとなっています。 {{See|データ構造とアルゴリズム}} プログラミングは、その周辺にさまざまな技術やツールが存在し、これらはプログラマーや開発者が効率的に作業を進めるために利用されます。 以下に、プログラミングの周辺技術や関連する領域をいくつか挙げてみましょう。 ;統合開発環境(IDE):IDEは、プログラムの開発を支援するための統合ツールセットです。コードの編集、デバッグ、ビルド、プロジェクト管理などの機能を提供し、開発者が効率的かつ便利に作業を進めることができます。例えば、Visual Studio、Eclipse、IntelliJ IDEAなどがあります。 ;バージョン管理システム:バージョン管理システムは、コードの変更履歴を管理し、チームでの協力やコードの追跡を容易にします。GitやSubversionなどがよく使われます。 ;デバッグツール:デバッグツールは、プログラムの実行時に発生するエラーや不具合を特定して修正するのに役立ちます。デバッガーはコードのステップ実行や変数の監視などを可能にします。 ;コンテナ技術:コンテナ技術(Dockerなど)は、アプリケーションやサービスを環境から切り離し、独立して動作させるための技術です。これにより、環境依存性を減少させ、開発から本番環境までの一貫性を確保します。 ;仮想化技術:仮想化技術は、物理的なハードウェア上に仮想的な環境を作り出す技術で、開発環境のセットアップやテスト、サーバーの効率的な利用に役立ちます。仮想マシン(VM)や仮想ネットワークなどが含まれます。 ;テストフレームワーク:テストフレームワークは、プログラムが正しく動作しているかどうかを確認するためのテストを効率的に実施するためのツールやライブラリです。JUnit(Java向けの単体テストフレームワーク)、pytest(Python向けのテストフレームワーク)などがあります。 ;クラウドプラットフォーム:クラウドプラットフォームは、プログラムやアプリケーションをクラウド上で実行するための基盤を提供します。AWS、Azure、Google Cloud Platformなどがクラウドプロバイダーの例です。 ;API(Application Programming Interface):APIは、ソフトウェアコンポーネント同士が情報をやり取りするためのインターフェースを提供します。外部のサービスやライブラリを利用するために重要な概念です。 これらの技術やツールは、プログラミングをより効率的かつ効果的に行うために欠かせないものであり、コンピューターサイエンスやソフトウェアエンジニアリングの領域で幅広く活用されています。 == 最初に学ぶプログラミング言語の選び方 == プログラミング言語の選択については、学ぶ目的や環境に応じて異なる選択肢があります。以下は、初めて学ぶプログラミング言語を選ぶ際に考慮すべきいくつかのポイントです。 ;目的に合った言語を選ぶ:プログラミング言語には、それぞれ得意とする分野があります。例えば、Web開発にはJavaScript、データ分析にはPython、システムプログラミングにはCやC++などがよく使われます。学ぶ目的に合った言語を選ぶことで、効率的に学ぶことができます。 ;学習リソースの充実度:学習リソースが豊富であるかどうかも、言語選択において重要なポイントです。初心者向けの学習リソースが充実している言語を選ぶことで、スムーズな学習ができるでしょう。また、オンライン上には無料で利用できる学習リソースも多数存在するため、選択肢を広げることも大切です。 ;コミュニティの活発さ:言語のコミュニティが活発であれば、初心者でも質問や情報収集がしやすく、学習のサポートが受けやすいです。また、コミュニティに参加することで、プログラミングに対するモチベーションを高めることもできます。 ;言語の文法の理解しやすさ:初めて学ぶプログラミング言語は、その文法がわかりやすいものが望ましいです。理解しやすい文法を持つ言語を選ぶことで、学習のスピードが上がるでしょう。 ;プログラミング言語の人気度:人気のある言語は、コミュニティの活発さや学習リソースの充実度が高い傾向があります。また、人気のある言語は求人市場でも需要が高いため、将来的なキャリアアップの可能性を見据えて選ぶこともできます。 === 共通知識 === * [[プログラミング/初歩的な課題集]] * [[プログラミング/共通知識]] * [[オブジェクト指向]] == プログラミングに関するトピック == * [[/Null安全性|Null安全性]] * [[/型安全性|型安全性(Type Safety)]] * [[/メモリ安全性|メモリ安全性(Memory Safety)]] * [[/スレッド安全性|スレッド安全性(Thread Safety)]] * [[/セキュリティ|セキュリティ]] * [[/make|make]] * [[/ジェネリックプログラミング|ジェネリックプログラミング]] * [[/ダックタイピング|ダックタイピング]] * [[/テンソル|テンソル]] * [[/データ構造|データ構造]] * [[/プログラミング・パラダイム|プログラミング・パラダイム]] * [[/リテラル|リテラル]] * [[/列挙型|列挙型]] * [[/リフレクション|リフレクション]] * [[/型推論|型推論]] * [[/変数|変数]] * [[/式と演算子|式と演算子]] * [[/固定幅整数|固定幅整数]] * [[/浮動小数点数|浮動小数点数]] * [[/多倍長整数|多倍長整数]] * [[/短絡評価|短絡評価]] * [[/連想配列|連想配列]] * [[/遅延評価|遅延評価]] * [[/配列|配列]] * [[/関数型プログラミング|関数型プログラミング]] == カテゴリツリー == {{#カテゴリツリー:プログラミング}} == 下位階層のページ == <div style="max-height: 24rem; overflow-y: scroll;"> {{特別:前方一致ページ一覧/{{PAGENAME}}/|hideredirects=yes|stripprefix=yes}} </div> {{DEFAULTSORT:ふろくらみんく}} [[Category:プログラミング|*]] [[Category:プログラミング言語]] [[Category:計算機科学]] [[Category:情報技術]] {{NDC|007.64}} b0mdrzkrzoggkavrw3fimk07kjwdswr C言語 0 850 301293 296897 2026-07-08T07:57:49Z AkiR27User 90873 /* 目次 */ 孤立ページ[[C言語入門]]追加 301293 wikitext text/x-wiki {{Pathnav|情報技術|プログラミング|frame=1}} == 目次 == === 入門的な内容 === * [[C言語入門]] * [[/開発環境|開発環境]] {{Hlist|class="hlist hlist-comma" | [[/開発環境#開発手順|開発手順]]、[[/開発環境#開発環境を整える|開発環境を整える]] }} * [[/基本的なプログラム|基本的なプログラム]] {{Hlist|class="hlist hlist-comma" | [[/基本的なプログラム#Hello, World!を実行する|Hello, World!を実行する]] }} * [[/基礎知識|基礎知識]] {{Hlist|class="hlist hlist-comma" | [[/基礎知識#記法|記法]] | [[/基礎知識#main関数|main関数]] | [[/基礎知識#データ型と変数|データ型と変数]] | [[/基礎知識#定数|定数]] | [[/基礎知識#算術演算子と代入演算子|算術演算子と代入演算子]] | [[/基礎知識#標準ライブラリ|標準ライブラリ]] }} * [[/制御文|制御文]] {{Hlist|class="hlist hlist-comma" | [[/制御文#論理型|論理型]] | [[/制御文#演算子|演算子]] | [[/制御文#選択文|選択文]] | [[/制御文#繰り返し文|繰り返し文]] | [[/制御文#分岐文|分岐文]] }} * [[/記法|記法]] {{Hlist|class="hlist hlist-comma" | [[/記法#文字集合|文字集合]] | [[/記法#字句|字句]] | [[/記法#キーワード|キーワード]] | [[/記法#文|文]] }} * [[/データ型と変数|データ型と変数]] {{Hlist|class="hlist hlist-comma" | [[/データ型と変数#データ型と変数の基本|データ型と変数の基本]] | [[/データ型と変数#ローカル変数とグローバル変数|ローカル変数とグローバル変数]] | [[/データ型と変数#記憶域クラス指定子|記憶域クラス指定子]] | [[/データ型と変数#型指定子|型指定子]] | [[/データ型と変数#型修飾子|型修飾子]] }} * [[/配列|配列]] {{Hlist|class="hlist hlist-comma" | [[/配列#配列の基本概念|配列の基本概念]] | [[/配列#配列の宣言と初期化|配列の宣言と初期化]] | [[/配列#配列の操作|配列の操作]] | [[/配列#配列の使用例|配列の使用例]] | [[/配列#多次元配列|多次元配列]] | [[/配列#配列とポインタ|配列とポインタ]] | [[/配列#文字列と文字配列|文字列と文字配列]] | [[/配列#配列の制約と注意点|配列の制約と注意点]] | [[/配列#章末問題|章末問題]] }} * [[/文字と文字列|文字と文字列]] {{Hlist|class="hlist hlist-comma" | [[/文字と文字列#文字の表現|文字の表現]] | [[/文字と文字列#文字型と文字の入出力|文字型と文字の入出力]] | [[/文字と文字列#文字列リテラル|文字列リテラル]] | [[/文字と文字列#文字列操作関数|文字列操作関数]] | [[/文字と文字列#配列と文字列|配列と文字列]] | [[/文字と文字列#文字列リテラルの格納場所|文字列リテラルの格納場所]] | [[/文字と文字列#可変長文字列の動的メモリ確保|可変長文字列の動的メモリ確保]] | [[/文字と文字列#文字定数と文字列リテラル|文字定数と文字列リテラル]] | [[/文字と文字列#ワイド文字列|ワイド文字列]] | [[/文字と文字列#char8_t, char16_t, char32_t型|char8_t, char16_t, char32_t型]] | [[/文字と文字列#char8_t型|char8_t型]] | [[/文字と文字列#文字エンコーディング|文字エンコーディング]] | [[/文字と文字列#文字列をあつかうユーザ定義関数|文字列をあつかうユーザ定義関数]] }} * [[/演算子と式|演算子と式]] {{Hlist|class="hlist hlist-comma" | [[/演算子と式#演算子と式の基本|演算子と式の基本]] | [[/演算子と式#算術演算子と代入演算子|算術演算子と代入演算子]] | [[/演算子と式#比較演算子|比較演算子]] | [[/演算子と式#論理演算子|論理演算子]] | [[/演算子と式#増分及び減分演算子|増分及び減分演算子]] | [[/演算子と式#その他の演算子|その他の演算子]] }} * [[/関数|関数]] {{Hlist|class="hlist hlist-comma" | [[/関数#はじめに|はじめに]] | [[/関数#関数の基本構造|関数の基本構造]] | [[/関数#関数の作成と呼び出し|関数の作成と呼び出し]] | [[/関数#引数と戻り値|引数と戻り値]] | [[/関数#スコープとライフタイム|スコープとライフタイム]] | [[/関数#標準ライブラリ関数|標準ライブラリ関数]] | [[/関数#再帰関数|再帰関数]] | [[/関数#関数ポインタ|関数ポインタ]] | [[/関数#実践例|実践例]] | [[/関数#演習問題|演習問題]] | [[/関数#まとめ|まとめ]] }} * [[/構造体|構造体]] {{Hlist|class="hlist hlist-comma" | [[/構造体#構造体の基本|構造体の基本]] | [[/構造体#構造体の使用|構造体の使用]] | [[/構造体#構造体と配列|構造体と配列]] | [[/構造体#ポインタと構造体|ポインタと構造体]] | [[/構造体#ネストした構造体|ネストした構造体]] | [[/構造体#構造体と関数|構造体と関数]] | [[/構造体#構造体とファイル操作|構造体とファイル操作]] | [[/構造体#高度な構造体の使用|高度な構造体の使用]] | [[/構造体#練習問題と実践|練習問題と実践]] | [[/構造体#附録: 構造体リファレンス|附録: 構造体リファレンス]] }} * [[/共用体|共用体]] {{Hlist|class="hlist hlist-comma" | [[/共用体#共用体の基本概念|共用体の基本概念]] | [[/共用体#共用体の宣言と使用|共用体の宣言と使用]] | [[/共用体#共用体のメンバーの利用方法|共用体のメンバーの利用方法]] | [[/共用体#共用体の初期化|共用体の初期化]] | [[/共用体#共用体の応用例|共用体の応用例]] | [[/共用体#共用体と列挙型(enum)との組み合わせ|共用体と列挙型(enum)との組み合わせ]] | [[/共用体#共用体の注意点と使用上の考慮事項|共用体の注意点と使用上の考慮事項]] | [[/共用体#共用体の実装例と演習問題|共用体の実装例と演習問題]] | [[/共用体#まとめ|まとめ]] }} * [[/ポインタ|ポインタ]] {{Hlist|class="hlist hlist-comma" | [[/ポインタ#はじめに|はじめに]] | [[/ポインタ#ポインタの基本|ポインタの基本]] | [[/ポインタ#ポインタと配列|ポインタと配列]] | [[/ポインタ#ポインタと関数|ポインタと関数]] | [[/ポインタ#ポインタの応用|ポインタの応用]] | [[/ポインタ#ポインタの注意点|ポインタの注意点]] | [[/ポインタ#まとめ|まとめ]] | [[/ポインタ#練習問題|練習問題]] }} === 比較的高度な内容 === * [[/C11の変更点|'''C11'''の変更点]] * [[/C23の変更点|'''C23'''の変更点]] * [[/改廃された技術|改廃された技術]] * [[/プリプロセッシングディレクティブ|プリプロセッシングディレクティブ]] {{Hlist|class="hlist hlist-comma" | [[/プリプロセッシングディレクティブ#プリプロセッサの概要|プリプロセッサの概要]] | [[/プリプロセッシングディレクティブ#基本構文|基本構文]] | [[/プリプロセッシングディレクティブ#条件付きディレクティブ|条件付きディレクティブ]] | [[/プリプロセッシングディレクティブ#ソースファイルのインクルード|ソースファイルのインクルード]] | [[/プリプロセッシングディレクティブ#バイナリリソースの埋め込み|バイナリリソースの埋め込み]] | [[/プリプロセッシングディレクティブ#マクロの定義と置換|マクロの定義と置換]] | [[/プリプロセッシングディレクティブ#行制御|行制御]] | [[/プリプロセッシングディレクティブ#診断ディレクティブ|診断ディレクティブ]] | [[/プリプロセッシングディレクティブ#プラグマディレクティブ|プラグマディレクティブ]] | [[/プリプロセッシングディレクティブ#ヌルディレクティブ|ヌルディレクティブ]] | [[/プリプロセッシングディレクティブ#事前定義されたマクロ名|事前定義されたマクロ名]] | [[/プリプロセッシングディレクティブ#プラグマオペレーター|プラグマオペレーター]] | [[/プリプロセッシングディレクティブ#まとめと実践問題|まとめと実践問題]] }} * [[/データ型と変数の高度な話題]] (typedef,enum, const など) * [[/中級者向けの話題|中級者向けの話題]] (プログラム仮引数, inline, 再帰 など) * [[/ストレージクラス指定子|ストレージクラス指定子]] {{Hlist|class="hlist hlist-comma" | <code>auto</code> | <code>constexpr</code> | <code>extern</code> | <code>register</code> | <code>static</code> | <code>thread_local</code> | <code>typedef</code> }} * [[/定数式|定数式]] {{Hlist|class="hlist hlist-comma" | [[/定数式#整数定数式|整数定数式]] | [[/定数式#算術定数式|算術定数式]] | [[/定数式#アドレス定数|アドレス定数]] }} * [[/属性|属性]]<sup>'''C23'''</sup> 非推奨化、フォールスルー禁止、非復帰など * [[/型推論|型推論]]<sup>'''C23'''</sup> * [[/typeof演算子とtypeof_unqual演算子|typeof演算子とtypeof_unqual演算子]]<sup>'''C23'''</sup> * [[/標準ライブラリ|標準ライブラリ]] {{Hlist|class="hlist hlist-comma" | [[/標準ライブラリ/assert.h|診断機能<assert.h>]] | [[/標準ライブラリ/complex.h|複素数計算<complex.h>]]<sup>'''C99'''</sup> | [[/標準ライブラリ/ctype.h|文字操作<ctype.h>]] | [[/標準ライブラリ/errno.h|エラー<errno.h>]] | [[/標準ライブラリ/fenv.h|浮動小数点環境<fenv.h>]]<sup>'''C99'''</sup> | [[/標準ライブラリ/float.h|浮動小数点型の特性<float.h>]] | [[/標準ライブラリ/inttypes.h|整数型の書式変換<inttypes.h>]]<sup>'''C99'''</sup> | [[/標準ライブラリ/iso646.h|代替つづり<iso646.h>]]<sup>'''C95'''</sup> | [[/標準ライブラリ/limits.h|整数型の特性<limits.h>]]<ref><limits.h>は、C99では"Sizes of integer types"、JISCでは、"整数型の大きさ" でしたが、C23では"Characteristics of integer types"となったので、<float.h>の/Characteristics of floating types/浮動小数点型の特性/ にならって "整数型の特性" の訳をあてました。</ref> | [[/標準ライブラリ/locale.h|文化圏固有操作<locale.h>]] | [[/標準ライブラリ/math.h|数学<math.h>]] | [[/標準ライブラリ/setjmp.h|非局所分岐<setjmp.h>]] | [[/標準ライブラリ/signal.h|シグナル操作<signal.h>]] | [[/標準ライブラリ/stdalign.h|アライメント<stdalign.h>]]<sup>'''C11'''</sup><ref name="jtc1-sc22-wg14-n1570-7.15">{{cite book | url = https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf | title = N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x | page=268, §7.15 ''Alignment <stdalign.h>'' | publisher = ISO/IEC}}</ref> | [[/標準ライブラリ/stdarg.h|可変個数の実引数<stdarg.h>]] | [[/標準ライブラリ/stdatomic.h|アトミック<stdatomic.h>]]<sup>'''C11'''</sup><ref name="jtc1-sc22-wg14-n1570-7.17">{{cite book | url = https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf | title = N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x | page=273, §7.17 ''Atmics <stdatomic.h>'' | publisher = ISO/IEC}}</ref> | [[/標準ライブラリ/stdbool.h|論理型及び論理値<stdbool.h>]]<sup>'''C99'''</sup> | [[/標準ライブラリ/stdbit.h|ビット・バイトユーティリティー<stdbit.h>]]<sup>'''C23'''<ref name="jtc1-sc22-wg14-n3054-7.20">{{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3054.pdf | title = N3054 working draft — September 3, 2022 ISO/IEC 9899:2023 (E) | page = 314,§ 7.20 ''Checked Integer Arithmetic'' | publisher = ISO/IEC | date = 2022-09-03 }}</ref></sup> | [[/標準ライブラリ/stddef.h|共通の定義<stddef.h>]] | [[/標準ライブラリ/stdckdint.h|チェック付き整数演算<stdckdint.h>]]<sup>'''C23'''<ref name="jtc1-sc22-wg14-n3054-7.18">{{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3054.pdf | title = N3054 working draft — September 3, 2022 ISO/IEC 9899:2023 (E) | page = 305,§ 7.18 ''Bit and byte utilities'' | publisher = ISO/IEC | date = 2022-09-03 }}</ref></sup> | [[/標準ライブラリ/stdint.h|整数型<stdint.h>]]<sup>'''C99'''</sup> | [[/標準ライブラリ/stdio.h|入出力<stdio.h>]] | [[/標準ライブラリ/stdlib.h|一般ユーティリティ<stdlib.h>]] | [[/標準ライブラリ/stdnoreturn.h|_Noreturn<stdnoreturn.h>]]<sup>'''C11'''</sup><ref name="jtc1-sc22-wg14-n1570-7.23">{{cite book | url = https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf | title = N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x | page=361, §7.23 ''_Noreturn <stdnoreturn.h>''<!-- 章タイトル『_Noreturn』はキーワードなので、項目名も [[/標準ライブラリ/_Noreturn]] としました。 --> | publisher = ISO/IEC}}</ref> | [[/標準ライブラリ/string.h|文字列操作<string.h>]] | [[/標準ライブラリ/tgmath.h|型総称数学関数<tgmath.h>]]<sup>'''C99'''</sup> | [[/標準ライブラリ/threads.h|スレッド<threads.h>]]<sup>'''C11'''</sup><ref name="jtc1-sc22-wg14-n1570-7.26">{{cite book | url = https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf | title = N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x | page=376, §7.26 ''Threads <threads.h>'' | publisher = ISO/IEC}}</ref> | [[/標準ライブラリ/time.h|日付及び時間<time.h>]] | [[/標準ライブラリ/uchar.h|Unicodeユーティリティ<uchar.h>]]<sup>'''C11'''</sup><ref name="jtc1-sc22-wg14-n1570-7.28">{{cite book | url = https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf | title = N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x | page=398, §7.28 ''Unicode utilities <uchar.h>'' | publisher = ISO/IEC}}</ref> | [[/標準ライブラリ/wchar.h|多バイト文字及びワイド文字拡張ユーティリティ<wchar.h>]]<sup>'''C95'''</sup> | [[/標準ライブラリ/wctype.h|ワイド文字種分類及びワイド文字大文字小文字ユーティリティ<wctype.h>]]<sup>'''C95'''</sup> }} * [[/概念モデル|概念モデル]] * [[/おわりに|おわりに]] == C言語の歴史 == [[Image:Ken Thompson and Dennis Ritchie.jpg|frame|ケン・トンプソン(左)とデニス・リッチー(右)]] C言語の起源は1969年頃にさかのぼります。当時ベル研究所でUNIXの開発が進められていましたが、システムを効率的に実装するための適切なシステムプログラミング言語がありませんでした。そこで当時ベル研究所に在籍していたケン・トンプソンが、MITで開発されたBCPL言語に影響を受けて、新しい言語「B言語」を作り出しました。 1972年頃になると、デニス・リッチーがB言語をベースに「C言語」の開発を開始します。C言語ではB言語になかったデータ型の概念を導入し、構造体なども追加されました。また、ポインタと配列の関係性に特徴的な設計がなされました。当初はUNIXの開発に利用されましたが、徐々に普及が広がっていきました。 1977-78年頃には、ポインタ規則の厳格化や<code>unsigned</code>型の追加などの改良が行われ、1978年にはブライアン・カーニハンとデニス・リッチーによる「''The C Programming Language''」という書籍が出版され、C言語の事実上の権威ある解説書となりました。 1980年代に入ると、C言語の標準化の必要性が高まり、1983年にANSIによるC標準化委員会が発足しました。そして1989年に最初のANSI C標準が公開されることとなります。この標準化作業で言語仕様がさらに明確化され、<code>const</code>、<code>volatile</code>といった新しい機能も追加されました。 以降、C言語はUNIXをはじめとするOSでメインのシステムプログラミング言語として幅広く利用されただけでなく、アプリケーション開発でも広く使われるようになりました。また、[[C++]]などの後継言語の基盤ともなりました。単純でありながらも力強い表現力を持つC言語は、今日にいたるまで重要な役割を果たしてきました。 == 参考文献 == * {{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/projects.html | title= C - Project status and milestones | publisher=ISO/IEC | date = 2024-03-05}} * {{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/wg14_document_log.htm | title= ISO/IEC WG 14 Document Log | publisher=ISO/IEC | date = 2024-04-28 }} * {{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf | title= C2y: ISO/IEC 9899:2024 (en) — N3220 working draft | publisher=ISO/IEC | date = 2024-02-22}} * {{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf | title= C23: N3096 working draft — April 1, 2023 ISO/IEC 9899:2023 (E) | publisher=ISO/IEC | date = 2023-04-01}} * {{cite book | url=https://www.iso.org/obp/ui/#iso:std:iso-iec:9899:ed-4:v1:en | title=ISO/IEC 9899:2018(en) Information technology — Programming languages — C | publisher=[[W:国際標準化機構|ISO]]/[[W:国際電気標準会議|IEC]] | date = 2018-07-05}} ** {{cite book | url = http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf | archiveurl = https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf | archivedate = 2018-12-30 | title = N2176 C17 ballot ISO/IEC 9899:2017 | publisher = [https://www.open-std.org/jtc1/sc22/wg14/www/projects ISO/IEC JTC1/SC22/WG14]}} * {{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf | title= C11: WG14/N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x | publisher=ISO/IEC | date = 2011-04-12}} * {{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf | title= C99: WG14/N1256 Committee Draft — Septermber 7, 2007 ISO/IEC 9899:TC3 | publisher=ISO/IEC | date = 2007-09-07}} * {{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf | title= C99: ISO/IEC 9899:TC2 Committee Draft — May 6, 2005 WG14/N1124 | publisher=ISO/IEC | date = 2005-05-06}} * {{cite book | url= | title= JIS X 3010:2003『プログラム言語C』 | publisher=日本工業標準調査会<ref>当時、現:日本産業標準調査会</ref> | date = 2003-12-20}} {{---}} 1999 年に第 2 版として発行された ISO/IEC 9899:1999,(Programming languages―C) 及び Technical Corrigendum 1 (2001)について,技術的内容を変更することなく日本工業規格<ref>当時、現:日本産業規格</ref>として採用するために作成されたもの<ref>ISO/IEC 9899:1999 (IDT)</ref>。 == 脚註 == <references/> == 下位階層のページ == <div style="max-height: 24rem; overflow-y: scroll;"> {{特別:前方一致ページ一覧/{{PAGENAME}}/|hideredirects=yes|stripprefix=yes}} </div> == 外部リンク == {{Wikipedia|C言語|C言語}} {{wikiversity|Topic:PG学習法C言語初級|C言語初級}} * [https://www.bell-labs.com/usr/dmr/www/chist.html The Development of the C Language*](英語) {{DEFAULTSORT:Cけんこ}} [[Category:C言語|*]] [[Category:プログラミング言語]] {{NDC|007.64}} 3m2xssiepuwkbf3slqotpxwvlecxcvm 301303 301293 2026-07-08T09:32:44Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301303 wikitext text/x-wiki {{Pathnav|情報技術|プログラミング|frame=1}} == 目次 == === 入門的な内容 === * [[C言語入門]] * [[/開発環境|開発環境]] {{Hlist|class="hlist hlist-comma" | [[/開発環境#開発手順|開発手順]]、[[/開発環境#開発環境を整える|開発環境を整える]] }} * [[/基本的なプログラム|基本的なプログラム]] {{Hlist|class="hlist hlist-comma" | [[/基本的なプログラム#Hello, World!を実行する|Hello, World!を実行する]] }} * [[/基礎知識|基礎知識]] {{Hlist|class="hlist hlist-comma" | [[/基礎知識#記法|記法]] | [[/基礎知識#main関数|main関数]] | [[/基礎知識#データ型と変数|データ型と変数]] | [[/基礎知識#定数|定数]] | [[/基礎知識#算術演算子と代入演算子|算術演算子と代入演算子]] | [[/基礎知識#標準ライブラリ|標準ライブラリ]] }} * [[/制御文|制御文]] {{Hlist|class="hlist hlist-comma" | [[/制御文#論理型|論理型]] | [[/制御文#演算子|演算子]] | [[/制御文#選択文|選択文]] | [[/制御文#繰り返し文|繰り返し文]] | [[/制御文#分岐文|分岐文]] }} * [[/記法|記法]] {{Hlist|class="hlist hlist-comma" | [[/記法#文字集合|文字集合]] | [[/記法#字句|字句]] | [[/記法#キーワード|キーワード]] | [[/記法#文|文]] }} * [[/データ型と変数|データ型と変数]] {{Hlist|class="hlist hlist-comma" | [[/データ型と変数#データ型と変数の基本|データ型と変数の基本]] | [[/データ型と変数#ローカル変数とグローバル変数|ローカル変数とグローバル変数]] | [[/データ型と変数#記憶域クラス指定子|記憶域クラス指定子]] | [[/データ型と変数#型指定子|型指定子]] | [[/データ型と変数#型修飾子|型修飾子]] }} * [[/配列|配列]] {{Hlist|class="hlist hlist-comma" | [[/配列#配列の基本概念|配列の基本概念]] | [[/配列#配列の宣言と初期化|配列の宣言と初期化]] | [[/配列#配列の操作|配列の操作]] | [[/配列#配列の使用例|配列の使用例]] | [[/配列#多次元配列|多次元配列]] | [[/配列#配列とポインタ|配列とポインタ]] | [[/配列#文字列と文字配列|文字列と文字配列]] | [[/配列#配列の制約と注意点|配列の制約と注意点]] | [[/配列#章末問題|章末問題]] }} * [[/文字と文字列|文字と文字列]] {{Hlist|class="hlist hlist-comma" | [[/文字と文字列#文字の表現|文字の表現]] | [[/文字と文字列#文字型と文字の入出力|文字型と文字の入出力]] | [[/文字と文字列#文字列リテラル|文字列リテラル]] | [[/文字と文字列#文字列操作関数|文字列操作関数]] | [[/文字と文字列#配列と文字列|配列と文字列]] | [[/文字と文字列#文字列リテラルの格納場所|文字列リテラルの格納場所]] | [[/文字と文字列#可変長文字列の動的メモリ確保|可変長文字列の動的メモリ確保]] | [[/文字と文字列#文字定数と文字列リテラル|文字定数と文字列リテラル]] | [[/文字と文字列#ワイド文字列|ワイド文字列]] | [[/文字と文字列#char8_t, char16_t, char32_t型|char8_t, char16_t, char32_t型]] | [[/文字と文字列#char8_t型|char8_t型]] | [[/文字と文字列#文字エンコーディング|文字エンコーディング]] | [[/文字と文字列#文字列をあつかうユーザ定義関数|文字列をあつかうユーザ定義関数]] }} * [[/演算子と式|演算子と式]] {{Hlist|class="hlist hlist-comma" | [[/演算子と式#演算子と式の基本|演算子と式の基本]] | [[/演算子と式#算術演算子と代入演算子|算術演算子と代入演算子]] | [[/演算子と式#比較演算子|比較演算子]] | [[/演算子と式#論理演算子|論理演算子]] | [[/演算子と式#増分及び減分演算子|増分及び減分演算子]] | [[/演算子と式#その他の演算子|その他の演算子]] }} * [[/関数|関数]] {{Hlist|class="hlist hlist-comma" | [[/関数#はじめに|はじめに]] | [[/関数#関数の基本構造|関数の基本構造]] | [[/関数#関数の作成と呼び出し|関数の作成と呼び出し]] | [[/関数#引数と戻り値|引数と戻り値]] | [[/関数#スコープとライフタイム|スコープとライフタイム]] | [[/関数#標準ライブラリ関数|標準ライブラリ関数]] | [[/関数#再帰関数|再帰関数]] | [[/関数#関数ポインタ|関数ポインタ]] | [[/関数#実践例|実践例]] | [[/関数#演習問題|演習問題]] | [[/関数#まとめ|まとめ]] }} * [[/構造体|構造体]] {{Hlist|class="hlist hlist-comma" | [[/構造体#構造体の基本|構造体の基本]] | [[/構造体#構造体の使用|構造体の使用]] | [[/構造体#構造体と配列|構造体と配列]] | [[/構造体#ポインタと構造体|ポインタと構造体]] | [[/構造体#ネストした構造体|ネストした構造体]] | [[/構造体#構造体と関数|構造体と関数]] | [[/構造体#構造体とファイル操作|構造体とファイル操作]] | [[/構造体#高度な構造体の使用|高度な構造体の使用]] | [[/構造体#練習問題と実践|練習問題と実践]] | [[/構造体#附録: 構造体リファレンス|附録: 構造体リファレンス]] }} * [[/共用体|共用体]] {{Hlist|class="hlist hlist-comma" | [[/共用体#共用体の基本概念|共用体の基本概念]] | [[/共用体#共用体の宣言と使用|共用体の宣言と使用]] | [[/共用体#共用体のメンバーの利用方法|共用体のメンバーの利用方法]] | [[/共用体#共用体の初期化|共用体の初期化]] | [[/共用体#共用体の応用例|共用体の応用例]] | [[/共用体#共用体と列挙型(enum)との組み合わせ|共用体と列挙型(enum)との組み合わせ]] | [[/共用体#共用体の注意点と使用上の考慮事項|共用体の注意点と使用上の考慮事項]] | [[/共用体#共用体の実装例と演習問題|共用体の実装例と演習問題]] | [[/共用体#まとめ|まとめ]] }} * [[/ポインタ|ポインタ]] {{Hlist|class="hlist hlist-comma" | [[/ポインタ#はじめに|はじめに]] | [[/ポインタ#ポインタの基本|ポインタの基本]] | [[/ポインタ#ポインタと配列|ポインタと配列]] | [[/ポインタ#ポインタと関数|ポインタと関数]] | [[/ポインタ#ポインタの応用|ポインタの応用]] | [[/ポインタ#ポインタの注意点|ポインタの注意点]] | [[/ポインタ#まとめ|まとめ]] | [[/ポインタ#練習問題|練習問題]] }} === 比較的高度な内容 === * [[/C11の変更点|'''C11'''の変更点]] * [[/C23の変更点|'''C23'''の変更点]] * [[/改廃された技術|改廃された技術]] * [[/プリプロセッシングディレクティブ|プリプロセッシングディレクティブ]] {{Hlist|class="hlist hlist-comma" | [[/プリプロセッシングディレクティブ#プリプロセッサの概要|プリプロセッサの概要]] | [[/プリプロセッシングディレクティブ#基本構文|基本構文]] | [[/プリプロセッシングディレクティブ#条件付きディレクティブ|条件付きディレクティブ]] | [[/プリプロセッシングディレクティブ#ソースファイルのインクルード|ソースファイルのインクルード]] | [[/プリプロセッシングディレクティブ#バイナリリソースの埋め込み|バイナリリソースの埋め込み]] | [[/プリプロセッシングディレクティブ#マクロの定義と置換|マクロの定義と置換]] | [[/プリプロセッシングディレクティブ#行制御|行制御]] | [[/プリプロセッシングディレクティブ#診断ディレクティブ|診断ディレクティブ]] | [[/プリプロセッシングディレクティブ#プラグマディレクティブ|プラグマディレクティブ]] | [[/プリプロセッシングディレクティブ#ヌルディレクティブ|ヌルディレクティブ]] | [[/プリプロセッシングディレクティブ#事前定義されたマクロ名|事前定義されたマクロ名]] | [[/プリプロセッシングディレクティブ#プラグマオペレーター|プラグマオペレーター]] | [[/プリプロセッシングディレクティブ#まとめと実践問題|まとめと実践問題]] }} * [[/データ型と変数の高度な話題]] (typedef,enum, const など) * [[/中級者向けの話題|中級者向けの話題]] (プログラム仮引数, inline, 再帰 など) * [[/ストレージクラス指定子|ストレージクラス指定子]] {{Hlist|class="hlist hlist-comma" | <code>auto</code> | <code>constexpr</code> | <code>extern</code> | <code>register</code> | <code>static</code> | <code>thread_local</code> | <code>typedef</code> }} * [[/定数式|定数式]] {{Hlist|class="hlist hlist-comma" | [[/定数式#整数定数式|整数定数式]] | [[/定数式#算術定数式|算術定数式]] | [[/定数式#アドレス定数|アドレス定数]] }} * [[/属性|属性]]<sup>'''C23'''</sup> 非推奨化、フォールスルー禁止、非復帰など * [[/型推論|型推論]]<sup>'''C23'''</sup> * [[/typeof演算子とtypeof_unqual演算子|typeof演算子とtypeof_unqual演算子]]<sup>'''C23'''</sup> * [[/標準ライブラリ|標準ライブラリ]] {{Hlist|class="hlist hlist-comma" | [[/標準ライブラリ/assert.h|診断機能<assert.h>]] | [[/標準ライブラリ/complex.h|複素数計算<complex.h>]]<sup>'''C99'''</sup> | [[/標準ライブラリ/ctype.h|文字操作<ctype.h>]] | [[/標準ライブラリ/errno.h|エラー<errno.h>]] | [[/標準ライブラリ/fenv.h|浮動小数点環境<fenv.h>]]<sup>'''C99'''</sup> | [[/標準ライブラリ/float.h|浮動小数点型の特性<float.h>]] | [[/標準ライブラリ/inttypes.h|整数型の書式変換<inttypes.h>]]<sup>'''C99'''</sup> | [[/標準ライブラリ/iso646.h|代替つづり<iso646.h>]]<sup>'''C95'''</sup> | [[/標準ライブラリ/limits.h|整数型の特性<limits.h>]]<ref><limits.h>は、C99では"Sizes of integer types"、JISCでは、"整数型の大きさ" でしたが、C23では"Characteristics of integer types"となったので、<float.h>の/Characteristics of floating types/浮動小数点型の特性/ にならって "整数型の特性" の訳をあてました。</ref> | [[/標準ライブラリ/locale.h|文化圏固有操作<locale.h>]] | [[/標準ライブラリ/math.h|数学<math.h>]] | [[/標準ライブラリ/setjmp.h|非局所分岐<setjmp.h>]] | [[/標準ライブラリ/signal.h|シグナル操作<signal.h>]] | [[/標準ライブラリ/stdalign.h|アライメント<stdalign.h>]]<sup>'''C11'''</sup><ref name="jtc1-sc22-wg14-n1570-7.15">{{cite book | url = https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf | title = N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x | page=268, §7.15 ''Alignment <stdalign.h>'' | publisher = ISO/IEC}}</ref> | [[/標準ライブラリ/stdarg.h|可変個数の実引数<stdarg.h>]] | [[/標準ライブラリ/stdatomic.h|アトミック<stdatomic.h>]]<sup>'''C11'''</sup><ref name="jtc1-sc22-wg14-n1570-7.17">{{cite book | url = https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf | title = N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x | page=273, §7.17 ''Atmics <stdatomic.h>'' | publisher = ISO/IEC}}</ref> | [[/標準ライブラリ/stdbool.h|論理型及び論理値<stdbool.h>]]<sup>'''C99'''</sup> | [[/標準ライブラリ/stdbit.h|ビット・バイトユーティリティー<stdbit.h>]]<sup>'''C23'''<ref name="jtc1-sc22-wg14-n3054-7.20">{{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3054.pdf | title = N3054 working draft — September 3, 2022 ISO/IEC 9899:2023 (E) | page = 314,§ 7.20 ''Checked Integer Arithmetic'' | publisher = ISO/IEC | date = 2022-09-03 }}</ref></sup> | [[/標準ライブラリ/stddef.h|共通の定義<stddef.h>]] | [[/標準ライブラリ/stdckdint.h|チェック付き整数演算<stdckdint.h>]]<sup>'''C23'''<ref name="jtc1-sc22-wg14-n3054-7.18">{{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3054.pdf | title = N3054 working draft — September 3, 2022 ISO/IEC 9899:2023 (E) | page = 305,§ 7.18 ''Bit and byte utilities'' | publisher = ISO/IEC | date = 2022-09-03 }}</ref></sup> | [[/標準ライブラリ/stdint.h|整数型<stdint.h>]]<sup>'''C99'''</sup> | [[/標準ライブラリ/stdio.h|入出力<stdio.h>]] | [[/標準ライブラリ/stdlib.h|一般ユーティリティ<stdlib.h>]] | [[/標準ライブラリ/stdnoreturn.h|_Noreturn<stdnoreturn.h>]]<sup>'''C11'''</sup><ref name="jtc1-sc22-wg14-n1570-7.23">{{cite book | url = https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf | title = N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x | page=361, §7.23 ''_Noreturn <stdnoreturn.h>''<!-- 章タイトル『_Noreturn』はキーワードなので、項目名も [[/標準ライブラリ/_Noreturn]] としました。 --> | publisher = ISO/IEC}}</ref> | [[/標準ライブラリ/string.h|文字列操作<string.h>]] | [[/標準ライブラリ/tgmath.h|型総称数学関数<tgmath.h>]]<sup>'''C99'''</sup> | [[/標準ライブラリ/threads.h|スレッド<threads.h>]]<sup>'''C11'''</sup><ref name="jtc1-sc22-wg14-n1570-7.26">{{cite book | url = https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf | title = N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x | page=376, §7.26 ''Threads <threads.h>'' | publisher = ISO/IEC}}</ref> | [[/標準ライブラリ/time.h|日付及び時間<time.h>]] | [[/標準ライブラリ/uchar.h|Unicodeユーティリティ<uchar.h>]]<sup>'''C11'''</sup><ref name="jtc1-sc22-wg14-n1570-7.28">{{cite book | url = https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf | title = N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x | page=398, §7.28 ''Unicode utilities <uchar.h>'' | publisher = ISO/IEC}}</ref> | [[/標準ライブラリ/wchar.h|多バイト文字及びワイド文字拡張ユーティリティ<wchar.h>]]<sup>'''C95'''</sup> | [[/標準ライブラリ/wctype.h|ワイド文字種分類及びワイド文字大文字小文字ユーティリティ<wctype.h>]]<sup>'''C95'''</sup> }} * [[/概念モデル|概念モデル]] * [[/おわりに|おわりに]] == C言語の歴史 == [[Image:Ken Thompson and Dennis Ritchie.jpg|frame|ケン・トンプソン(左)とデニス・リッチー(右)]] C言語の起源は1969年頃にさかのぼります。当時ベル研究所でUNIXの開発が進められていましたが、システムを効率的に実装するための適切なシステムプログラミング言語がありませんでした。そこで当時ベル研究所に在籍していたケン・トンプソンが、MITで開発されたBCPL言語に影響を受けて、新しい言語「B言語」を作り出しました。 1972年頃になると、デニス・リッチーがB言語をベースに「C言語」の開発を開始します。C言語ではB言語になかったデータ型の概念を導入し、構造体なども追加されました。また、ポインタと配列の関係性に特徴的な設計がなされました。当初はUNIXの開発に利用されましたが、徐々に普及が広がっていきました。 1977-78年頃には、ポインタ規則の厳格化や<code>unsigned</code>型の追加などの改良が行われ、1978年にはブライアン・カーニハンとデニス・リッチーによる「''The C Programming Language''」という書籍が出版され、C言語の事実上の権威ある解説書となりました。 1980年代に入ると、C言語の標準化の必要性が高まり、1983年にANSIによるC標準化委員会が発足しました。そして1989年に最初のANSI C標準が公開されることとなります。この標準化作業で言語仕様がさらに明確化され、<code>const</code>、<code>volatile</code>といった新しい機能も追加されました。 以降、C言語はUNIXをはじめとするOSでメインのシステムプログラミング言語として幅広く利用されただけでなく、アプリケーション開発でも広く使われるようになりました。また、[[C++]]などの後継言語の基盤ともなりました。単純でありながらも力強い表現力を持つC言語は、今日にいたるまで重要な役割を果たしてきました。 == 参考文献 == * {{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/projects.html | title= C - Project status and milestones | publisher=ISO/IEC | date = 2024-03-05}} * {{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/wg14_document_log.htm | title= ISO/IEC WG 14 Document Log | publisher=ISO/IEC | date = 2024-04-28 }} * {{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf | title= C2y: ISO/IEC 9899:2024 (en) — N3220 working draft | publisher=ISO/IEC | date = 2024-02-22}} * {{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf | title= C23: N3096 working draft — April 1, 2023 ISO/IEC 9899:2023 (E) | publisher=ISO/IEC | date = 2023-04-01}} * {{cite book | url=https://www.iso.org/obp/ui/#iso:std:iso-iec:9899:ed-4:v1:en | title=ISO/IEC 9899:2018(en) Information technology — Programming languages — C | publisher=[[W:国際標準化機構|ISO]]/[[W:国際電気標準会議|IEC]] | date = 2018-07-05}} ** {{cite book | url = http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf | archiveurl = https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf | archivedate = 2018-12-30 | title = N2176 C17 ballot ISO/IEC 9899:2017 | publisher = [https://www.open-std.org/jtc1/sc22/wg14/www/projects ISO/IEC JTC1/SC22/WG14]}} * {{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf | title= C11: WG14/N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x | publisher=ISO/IEC | date = 2011-04-12}} * {{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf | title= C99: WG14/N1256 Committee Draft — Septermber 7, 2007 ISO/IEC 9899:TC3 | publisher=ISO/IEC | date = 2007-09-07}} * {{cite book | url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf | title= C99: ISO/IEC 9899:TC2 Committee Draft — May 6, 2005 WG14/N1124 | publisher=ISO/IEC | date = 2005-05-06}} * {{cite book | url= | title= JIS X 3010:2003『プログラム言語C』 | publisher=日本工業標準調査会<ref>当時、現:日本産業標準調査会</ref> | date = 2003-12-20}} {{---}} 1999 年に第 2 版として発行された ISO/IEC 9899:1999,(Programming languages―C) 及び Technical Corrigendum 1 (2001)について,技術的内容を変更することなく日本工業規格<ref>当時、現:日本産業規格</ref>として採用するために作成されたもの<ref>ISO/IEC 9899:1999 (IDT)</ref>。 == 脚註 == <references/> == 下位階層のページ == *[[C言語/C11の変更点]] *[[C言語/C23で不要になったヘッダー]] *[[C言語/C23の変更点]] *[[C言語/C言語の変遷]] *[[C言語/Keywords]] *[[C言語/ Atomic]] *[[C言語/ BitInt]] *[[C言語/ Decimal128]] *[[C言語/ Decimal32]] *[[C言語/ Decimal64]] *[[C言語/ Noreturn]] *[[C言語/alignas]] *[[C言語/alignof]] *[[C言語/auto]] *[[C言語/bool]] *[[C言語/break]] *[[C言語/case]] *[[C言語/char]] *[[C言語/const]] *[[C言語/constexpr]] *[[C言語/continue]] *[[C言語/default]] *[[C言語/deprecated]] *[[C言語/do]] *[[C言語/double]] *[[C言語/else]] *[[C言語/enum]] *[[C言語/extern]] *[[C言語/fallthrough]] *[[C言語/false]] *[[C言語/float]] *[[C言語/for]] *[[C言語/goto]] *[[C言語/if]] *[[C言語/inline]] *[[C言語/int]] *[[C言語/long]] *[[C言語/maybe unused]] *[[C言語/nodiscard]] *[[C言語/noreturn]] *[[C言語/nullptr]] *[[C言語/register]] *[[C言語/reproducible]] *[[C言語/restrict]] *[[C言語/return]] *[[C言語/short]] *[[C言語/signed]] *[[C言語/sizeof]] *[[C言語/static]] *[[C言語/static assert]] *[[C言語/struct]] *[[C言語/switch]] *[[C言語/thread local]] *[[C言語/true]] *[[C言語/typedef]] *[[C言語/typeof]] *[[C言語/typeof unqual]] *[[C言語/typeof演算子とtypeof unqual演算子]] *[[C言語/union]] *[[C言語/unsequenced]] *[[C言語/unsigned]] *[[C言語/void]] *[[C言語/volatile]] *[[C言語/while]] *[[C言語/おわりに]] *[[C言語/キーワードの分類]] *[[C言語/ストレージクラス指定子]] *[[C言語/データ型と変数]] *[[C言語/データ型と変数の高度な話題]] *[[C言語/ファイル入出力]] *[[C言語/プリプロセッシングディレクティブ]] *[[C言語/ポインタ]] *[[C言語/中級者向けの話題]] *[[C言語/乱数]] *[[C言語/共用体]] *[[C言語/制御文]] *[[C言語/前処理指令]] *[[C言語/型推論]] *[[C言語/基本的なプログラム]] *[[C言語/基礎知識]] *[[C言語/定数式]] *[[C言語/属性]] *[[C言語/改廃された技術]] *[[C言語/文字と文字列]] *[[C言語/概念モデル]] *[[C言語/構文体系]] *[[C言語/構造体]] *[[C言語/構造体・共用体]] *[[C言語/標準ライブラリ]] *[[C言語/標準ライブラリ/assert.h]] *[[C言語/標準ライブラリ/complex.h]] *[[C言語/標準ライブラリ/ctype.h]] *[[C言語/標準ライブラリ/errno.h]] *[[C言語/標準ライブラリ/fenv.h]] *[[C言語/標準ライブラリ/float.h]] *[[C言語/標準ライブラリ/inttypes.h]] *[[C言語/標準ライブラリ/iso646.h]] *[[C言語/標準ライブラリ/limits.h]] *[[C言語/標準ライブラリ/locale.h]] *[[C言語/標準ライブラリ/math.h]] *[[C言語/標準ライブラリ/setjmp.h]] *[[C言語/標準ライブラリ/signal.h]] *[[C言語/標準ライブラリ/stdalign.h]] *[[C言語/標準ライブラリ/stdarg.h]] *[[C言語/標準ライブラリ/stdatomic.h]] *[[C言語/標準ライブラリ/stdbit.h]] *[[C言語/標準ライブラリ/stdbool.h]] *[[C言語/標準ライブラリ/stdckdint.h]] *[[C言語/標準ライブラリ/stddef.h]] *[[C言語/標準ライブラリ/stdint.h]] *[[C言語/標準ライブラリ/stdio.h]] *[[C言語/標準ライブラリ/stdlib.h]] *[[C言語/標準ライブラリ/stdnoreturn.h]] *[[C言語/標準ライブラリ/string.h]] *[[C言語/標準ライブラリ/tgmath.h]] *[[C言語/標準ライブラリ/threads.h]] *[[C言語/標準ライブラリ/time.h]] *[[C言語/標準ライブラリ/uchar.h]] *[[C言語/標準ライブラリ/wchar.h]] *[[C言語/標準ライブラリ/wctype.h]] *[[C言語/演算子と式]] *[[C言語/記法]] *[[C言語/配列]] *[[C言語/配列とポインタ]] *[[C言語/開発環境]] *[[C言語/関数]] == 外部リンク == {{Wikipedia|C言語|C言語}} {{wikiversity|Topic:PG学習法C言語初級|C言語初級}} * [https://www.bell-labs.com/usr/dmr/www/chist.html The Development of the C Language*](英語) {{DEFAULTSORT:Cけんこ}} [[Category:C言語|*]] [[Category:プログラミング言語]] {{NDC|007.64}} r6ezhfcd30elclzkzefwjvn8i11p6o8 JavaScript 0 1471 301317 271312 2026-07-08T11:47:14Z AkiR27User 90873 /* 下位階層のページ */(途中) テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301317 wikitext text/x-wiki {{pathnav|メインページ|工学|情報技術|プログラミング|frame=1}} [[File:JavaScript.svg|thumb|right|200px|[[JavaScript/はじめに#Hello World|Hello, World!]]]] 本書は、JavaScriptの解説書です。JavaScriptは、ウェブページやウェブアプリケーションで広く使われているスクリプト言語であり、最も広く普及しているプログラミング言語の一つです。また、Node.jsなどのランタイム環境を使うことで、サーバーサイドでもJavaScriptを実行することができます。 本書では、初めてプログラミングをする人から、他の言語で経験を積んだ人まで、広く対象としています。基本的なJavaScriptの書き方を解説することで、読者がより深く理解できるように配慮しました。 JavaScriptは、初心者が学ぶのに最適なプログラミング言語であり、ブラウザだけで簡単にプログラムを作ることができます。言語のコア部分は、国際標準化団体であるEcmaインターナショナルによって[[ECMAScript]]として標準化され、仕様が明確になっています。[[Node.js]]などのランタイム環境を使うことで、JavaScriptをより高度なアプリケーション開発にも利用できます。 == 目次 == {{進捗状況}} # [[JavaScript/はじめに|はじめに]] # [[JavaScript/文法|文法]] ## [[JavaScript/字句構造|字句構造]] ## [[JavaScript/セミコロンの自動挿入|セミコロンの自動挿入]] ## [[JavaScript/予約語|予約語]] # [[JavaScript/変数|変数]] # [[JavaScript/演算子|演算子]] # [[JavaScript/オブジェクト|オブジェクト]] # [[JavaScript/文字列|文字列]] # [[JavaScript/数値|数値]] # [[JavaScript/配列|配列]] # [[JavaScript/制御構造|制御構造]] # [[JavaScript/関数|関数]] # [[JavaScript/クラス|クラス]] # [[JavaScript/strictモード|strictモード]] # [[JavaScript/ビット演算|ビット演算]] # [[JavaScript/例外処理|例外処理]] # [[JavaScript/正規表現|正規表現]] # [[JavaScript/長整数|長整数]] # [[JavaScript/型付き配列|型付き配列]] # [[JavaScript/Polyfill|Polyfill]] # [[JavaScript/ブラウザ|ブラウザ]] # [[JavaScript/コードギャラリー|コードギャラリー]] # Web API {{---}} Web APIは、JavaScriptでWebブラウザを制御する標準的な手段であり、Webページに対して様々な操作(例えば、要素の追加や削除、イベントの処理、非同期通信等)を行うことができます。 ## [[JavaScript/Window|Windowオブジェクト]] ## [[JavaScript/DOM|DOM API]] ## [[JavaScript/Console|Console API]] ## [[JavaScript/Canvas|Canvas API]] ## [[JavaScript/XMLHttpRequest|Fetch API]] ## [[JavaScript/イベント処理|イベント処理]] ## [[JavaScript/クッキー|クッキー]] # [[/改廃された技術|改廃された技術]] # ライブラリ(フレームワーク) ## [[JavaScript/ライブラリ|ライブラリ]] # [[JSON]] # [[JavaScript/XML|XML]] # リファレンス<!-- const ary = [], errors = [] for (const x of Object.getOwnPropertyNames(globalThis)) { if (x == "Buffer") continue const prop = globalThis[x] if (1 || typeof prop === "function") { try { if ("prototype" in prop && "constructor" in prop.prototype) { // console.log("XXX ",x) ary.push(x) const obj = new prop() if (obj instanceof Error) errors.push(x) } } catch (err) { // console.log("Err: ", err) } } } ary.filter(x => !errors.includes(x)).sort().forEach(x => console.log(`## [[JavaScript/${x}|${x}]]`)) errors.sort().forEach(x => console.log(`### [[JavaScript/${x}|${x}]]`)) ## [[JavaScript/Array|Array]] ## [[JavaScript/ArrayBuffer|ArrayBuffer]] ## [[JavaScript/BigInt|BigInt]] ## [[JavaScript/BigInt64Array|BigInt64Array]] ## [[JavaScript/BigUint64Array|BigUint64Array]] ## [[JavaScript/Boolean|Boolean]] ## [[JavaScript/DataView|DataView]] ## [[JavaScript/Date|Date]] ## [[JavaScript/FinalizationRegistry|FinalizationRegistry]] ## [[JavaScript/Float32Array|Float32Array]] ## [[JavaScript/Float64Array|Float64Array]] ## [[JavaScript/Function|Function]] ## [[JavaScript/Int16Array|Int16Array]] ## [[JavaScript/Int32Array|Int32Array]] ## [[JavaScript/Int8Array|Int8Array]] ## [[JavaScript/Map|Map]] ## [[JavaScript/Number|Number]] ## [[JavaScript/Object|Object]] ## [[JavaScript/Promise|Promise]] ## [[JavaScript/RegExp|RegExp]] ## [[JavaScript/Set|Set]] ## [[JavaScript/SharedArrayBuffer|SharedArrayBuffer]] ## [[JavaScript/String|String]] ## [[JavaScript/Symbol|Symbol]] ## [[JavaScript/TextDecoder|TextDecoder]] ## [[JavaScript/TextEncoder|TextEncoder]] ## [[JavaScript/URL|URL]] ## [[JavaScript/URLSearchParams|URLSearchParams]] ## [[JavaScript/Uint16Array|Uint16Array]] ## [[JavaScript/Uint32Array|Uint32Array]] ## [[JavaScript/Uint8Array|Uint8Array]] ## [[JavaScript/Uint8ClampedArray|Uint8ClampedArray]] ## [[JavaScript/WeakMap|WeakMap]] ## [[JavaScript/WeakRef|WeakRef]] ## [[JavaScript/WeakSet|WeakSet]] ## [[JavaScript/clearImmediate|clearImmediate]] ## [[JavaScript/clearInterval|clearInterval]] ## [[JavaScript/clearTimeout|clearTimeout]] ## [[JavaScript/queueMicrotask|queueMicrotask]] ## [[JavaScript/setImmediate|setImmediate]] ## [[JavaScript/setInterval|setInterval]] ## [[JavaScript/setTimeout|setTimeout]] ### [[JavaScript/Error|Error]] ### [[JavaScript/EvalError|EvalError]] ### [[JavaScript/RangeError|RangeError]] ### [[JavaScript/ReferenceError|ReferenceError]] ### [[JavaScript/SyntaxError|SyntaxError]] ### [[JavaScript/TypeError|TypeError]] ### [[JavaScript/URIError|URIError]] --> ## [[JavaScript/Global|Global]] ## [[JavaScript/Array|Array]] ## [[JavaScript/BigInt|BigInt]] ## [[JavaScript/Boolean|Boolean]] ## [[JavaScript/Date|Date]] ## [[JavaScript/FinalizationRegistry|FinalizationRegistry]] ## [[JavaScript/Function|Function]] ## [[JavaScript/Generator|Generator]] ## [[JavaScript/Iterator|Iterator]] ## [[JavaScript/Map|Map]] ## [[JavaScript/WeakMap|WeakMap]] ## [[JavaScript/Math|Math]] ## [[JavaScript/Number|Number]] ## [[JavaScript/Object|Object]] ## [[JavaScript/Promise|Promise]] ## [[JavaScript/RegExp|RegExp]] ## [[JavaScript/Set|Set]] ## [[JavaScript/WeakSet|WeakSet]] ## [[JavaScript/String|String]] ## [[JavaScript/Symbol|Symbol]] ## [[JavaScript/WeakRef|WeakRef]] ## [[JavaScript/Error|Error]] ### [[JavaScript/EvalError|EvalError]] ### [[JavaScript/RangeError|RangeError]] ### [[JavaScript/ReferenceError|ReferenceError]] ### [[JavaScript/SyntaxError|SyntaxError]] ### [[JavaScript/TypeError|TypeError]] ### [[JavaScript/URIError|URIError]] ## [[JavaScript/Intl|Intl]] {| class="sortable wikitable" |+ JavaScriptの基本的なオブジェクト一覧 ! 名称 || 種類 || 機能 |- | <code>[[/Object|Object]]</code> || コンストラクタ関数 || すべてのオブジェクトの基本となるプロトタイプを提供。 |- | <code>[[/Function|Function]]</code> || コンストラクタ関数 || 関数オブジェクトを定義し、動的に関数を作成可能。 |- | <code>[[/Array|Array]]</code> || コンストラクタ関数 || 順序付きリストを保持し、要素の操作をサポート。 |- | <code>[[/String|String]]</code> || コンストラクタ関数 || 文字列を扱い、各種文字列操作メソッドを提供。 |- | <code>[[/Number|Number]]</code> || コンストラクタ関数 || 数値を扱い、数値演算や変換を提供。 |- | <code>[[/BigInt|BigInt]]</code> || コンストラクタ関数 || 大きな整数 (<code>[[/2^53|2^53]]</code> 以上) を扱う。 |- | <code>[[/Boolean|Boolean]]</code> || コンストラクタ関数 || <code>[[/true|true]]</code> または <code>[[/false|false]]</code> を扱う。 |- | <code>[[/Symbol|Symbol]]</code> || コンストラクタ関数 || 一意な識別子を作成するためのプリミティブ型オブジェクト。 |- | <code>[[/Math|Math]]</code> || グローバルオブジェクト || 数学的な定数 (<code>Math.PI</code>) や関数 (<code>Math.sqrt()</code>) を提供。 |- | <code>[[/Date|Date]]</code> || コンストラクタ関数 || 日時を扱い、操作・フォーマットが可能。 |- | <code>[[/RegExp|RegExp]]</code> || コンストラクタ関数 || 正規表現を扱い、文字列検索や置換を実行。 |- | <code>[[/Error|Error]]</code> || コンストラクタ関数 || エラーオブジェクトで、例外処理用の基本クラス。 |- | <code>[[/Promise|Promise]]</code> || コンストラクタ関数 || 非同期処理の結果を表し、コールバックの代替として使用。 |- | <code>[[/Map|Map]]</code> || コンストラクタ関数 || キーと値のペアを保持し、キーにあらゆるデータ型を使用可能。 |- | <code>[[/Set|Set]]</code> || コンストラクタ関数 || 一意の値を保持するコレクション。 |- | <code>[[/WeakMap|WeakMap]]</code> || コンストラクタ関数 || <code>[[/Map|Map]]</code> のような構造だが、キーが弱参照される。 |- | <code>[[/WeakSet|WeakSet]]</code> || コンストラクタ関数 || <code>[[/Set|Set]]</code> のような構造だが、オブジェクトのみを保持し、弱参照される。 |- | <code>[[/JSON|JSON]]</code> || グローバルオブジェクト || JSONのパース (<code>JSON.parse()</code>) や文字列化 (<code>JSON.stringify()</code>) を提供。 |- | <code>[[/Intl|Intl]]</code> || グローバルオブジェクト || 国際化 (<code>[[/Intl/DateTimeFormat|Intl.DateTimeFormat]]</code> など) をサポート。 |- | <code>[[/Reflect|Reflect]]</code> || グローバルオブジェクト || オブジェクト操作を動的に行うメタプログラミング用API。 |- | <code>[[/Proxy|Proxy]]</code> || コンストラクタ関数 || オブジェクトの動作をカスタマイズするためのインターセプターを提供。 |- | <code>[[/Atomics|Atomics]]</code> || グローバルオブジェクト || <code>[[/SharedArrayBuffer|SharedArrayBuffer]]</code> を用いたスレッド間の低レベル同期を提供。 |- | <code>[[/SharedArrayBuffer|SharedArrayBuffer]]</code> || コンストラクタ関数 || 複数のWeb Worker間でメモリ共有を可能にするバッファ。 |- | <code>[[/ArrayBuffer|ArrayBuffer]]</code> || コンストラクタ関数 || バイナリデータを固定長で扱うバッファ。 |- | <code>[[/DataView|DataView]]</code> || コンストラクタ関数 || <code>[[/ArrayBuffer|ArrayBuffer]]</code> に対して異なるデータ型でアクセス可能なビュー。 |- | <code>[[/TypedArray|TypedArray]]</code> || コンストラクタ関数 || 型付き配列 (<code>[[/Int8Array|Int8Array]]</code> など) を提供し、高速なバイナリデータ操作を実現。 |} ; ポイント''' * <code>[[/Math|Math]]</code> や <code>[[/JSON|JSON]]</code> は '''グローバルオブジェクト''' で、インスタンス化 (<code>new Math()</code>) できない。 * <code>[[/Object|Object]]</code>, <code>[[/Array|Array]]</code>, <code>[[/Function|Function]]</code> などは '''コンストラクタ関数''' で、<code>[[/new|new]]</code> を使ってインスタンスを作成可能。 * <code>[[/Promise|Promise]]</code>, <code>[[/Map|Map]]</code>, <code>[[/Set|Set]]</code> なども '''コンストラクタ関数''' で、新しいデータ構造を提供。 * <code>[[/Reflect|Reflect]]</code>, <code>[[/Atomics|Atomics]]</code> は '''グローバルオブジェクト''' であり、特定のユーティリティ機能を提供。 == Javaとの関連性 == JavaScriptとJavaは名前が似ていますが、実際にはかなり異なるプログラミング言語です。それぞれの特徴と関連性について簡潔に説明します。 # '''起源と命名''' #: JavaScriptは当初、Java言語の人気にあやかって名付けられました。 #: しかし、両言語の開発元は異なります(JavaScriptはNetscape、JavaはSun Microsystems)。 # '''言語の特徴''' #: JavaScript: 主にWeb開発用の動的型付け言語。 #: Java: 汎用的な静的型付け言語。 # '''実行環境''' #: JavaScript: 主にブラウザ上で動作(Node.jsなどサーバーサイドも可能)。 #: Java: 主にサーバーサイドやデスクトップアプリケーションで使用。 # '''構文''' #: 一部の構文(ループ、条件文、演算子など)に類似点がありますが、全体的な言語設計は大きく異なります。 # '''オブジェクト指向''' #: 両言語ともオブジェクト指向をサポートしていますが、実装方法が異なります。 #: JavaScript: プロトタイプベースのオブジェクト指向言語。 #: Java: クラスベースのオブジェクト指向言語。 # '''相互運用性''' #: 完全に別々の言語であり、直接的な互換性はありません。 # '''用途''' #: JavaScriptはWeb開発、特にフロントエンド開発で主に使用されます。 #: Javaは大規模なエンタープライズアプリケーション、Androidアプリ開発などに使用されます。 結論として、JavaScriptとJavaは名前の類似性以外に深い関連性はありません。それぞれが異なる目的と設計思想を持つ独立した言語です。 == JavaScriptの応用範囲 == JavaScriptは、Web開発において最も広く使用される言語の一つであり、以下のような応用範囲があります。 * クライアントサイドWeb開発:JavaScriptは、Webブラウザで動作するクライアントサイドのWebアプリケーション開発に使用されます。JavaScriptを使用することで、ユーザーがWebページやWebアプリケーションを対話的に操作することができます。 * サーバーサイドWeb開発:Node.jsを使用することで、JavaScriptはサーバーサイドのWebアプリケーション開発にも使用されます。Node.jsは、JavaScriptを実行するためのランタイム環境であり、サーバーサイドでのWebアプリケーションの実行や、データベースやファイルシステムなどのI/O操作を実行することができます。 * モバイルアプリケーション開発:React Nativeを使用することで、JavaScriptはモバイルアプリケーション開発にも使用されます。React Nativeは、JavaScriptを使用してiOSやAndroidのネイティブモバイルアプリケーションを開発するためのフレームワークです。 * デスクトップアプリケーション開発:Electronを使用することで、JavaScriptはデスクトップアプリケーション開発にも使用されます。Electronは、JavaScriptを使用して、Windows、Mac、Linuxなどのデスクトップアプリケーションを開発するためのフレームワークです。 * ゲーム開発:JavaScriptは、Webブラウザ上で動作するゲーム開発にも使用されます。HTML5 CanvasやWebGLなどのWeb技術を使用することで、高品質のWebゲームを開発することができます。 JavaScriptは、Web技術を中心に広く使用される言語であり、多くの場面で使用されています。これらの応用範囲は、今後も拡大することが予想されます。 == 派生言語 == JavaScriptの派生言語には、以下のようなものがあります。 === TypeScript === {{main|TypeScript}} Microsoftが開発したJavaScriptのスーパーセットであり、静的型付けやクラス、インターフェースなどの機能を追加しています。 ;TypeScriptのコード例:<syntaxhighlight lang=ts> function greet(name: string) { console.log(`Hello, ${name}!`); } greet("John"); </syntaxhighlight> === JavaScript XML === JavaScript XML(JSX)は、JavaScriptの拡張構文であり、Reactフレームワークで一般的に使用されます。JSXは、HTMLライクな構文をJavaScriptコードに埋め込むことができ、Reactコンポーネントの宣言的な記述やUIの構築を簡素化します。 JSXでは、<code><nowiki><div></nowiki></code>や<code><nowiki><span></nowiki></code>などのHTML要素をJavaScriptコード内で直接記述できます。これにより、コンポーネント階層構造を視覚的に表現し、リーダブルで保守しやすいコードを記述できます。また、JavaScriptの変数や式を<code>{}</code>で囲んで埋め込むことができ、動的な値をレンダリングすることができます。 例えば、以下はJSXを使用してReactコンポーネントを宣言的に記述する例です: ;JavaScript XMLのコード例:<syntaxhighlight lang=jsx> import React from 'react'; const Greeting = ({ name }) => { return ( <div> <h1>Hello, {name}!</h1> <p>Welcome to JSX.</p> </div> ); }; export default Greeting; </syntaxhighlight> この例では、<code>Greeting</code>コンポーネントが<code>name</code>プロパティを受け取り、JSX内でその値を表示しています。JSXはReactにおいて、UIを構築するためのシンタックスシュガーとして広く採用され、Reactの開発者がより効果的かつ可読性の高いコードを書くのに役立ちます。 === TypeScript XML === TypeScript XML(TSX)は、Reactアプリケーションのためのファイル拡張子で、[[#TypeScript|TypeScript]]を使用してReactコンポーネントを記述するための構文です。TSXファイルは、JSX(JavaScript XML)とTypeScriptの機能を組み合わせたもので、静的型チェックとReactコンポーネントの記述を同時に行うことができます。 TSXでは、Reactコンポーネントを定義するために、JSXの構文を使用します。この構文は、HTMLライクな要素構造をJavaScriptやTypeScriptのコード内に埋め込むためのもので、UIを宣言的かつコンパクトに記述できます。また、TypeScriptの型システムを活用して、コンポーネントのプロパティやステートに関する型情報を提供できます。 例えば、以下は簡単なReactコンポーネントを含むTSXファイルの例です: ;TypeScript XMLのコード例:<syntaxhighlight lang=react> import React, { useState } from 'react'; interface CounterProps { initialValue: number; } const Counter: React.FC<CounterProps> = ({ initialValue }) => { const [count, setCount] = useState(initialValue); const increment = () => setCount(count + 1); const decrement = () => setCount(count - 1); return ( <div> <p>Count: {count}</p> <button onClick={increment}>Increment</button> <button onClick={decrement}>Decrement</button> </div> ); }; export default Counter; </syntaxhighlight> この例では、<code>Counter</code>コンポーネントが<code>CounterProps</code>型のプロパティを受け取り、ステートとして<code>count</code>を持っています。JSX内で<code>{}</code>を使用してJavaScriptやTypeScriptのコードを埋め込むことができ、動的なUIを構築できます。 === CoffeeScript === JavaScriptの文法をより簡潔にした言語で、コードを読みやすくするための構文糖衣を提供します。 ;CoffeeScriptのコード例:<syntaxhighlight lang=coffeescript> greet = (name) -> console.log "Hello, #{name}!" greet "John" </syntaxhighlight> == 参考文献 == * [https://262.ecma-international.org/5.1/ Standard ECMA-262 5.1 Edition / June 2011 ECMAScript® Language Specification]([https://es5.github.io 注釈版]) * [https://262.ecma-international.org/6.0/ Standard ECMA-262 6th Edition / June 2015 ECMAScript® 2015 Language Specification] * [https://tc39.es/ecma262/ Draft ECMA-262 ECMAScript® Language Specification] * [https://402.ecma-international.org/ ECMA-402 7th Edition / June 2020 ECMAScript® 2020 Internationalization API Specification] === 標準API === * [https://compat.spec.whatwg.org/ Compatibility Living Standard] * [https://compression.spec.whatwg.org/ Compression Living Standard] * [https://console.spec.whatwg.org/ Console Living Standard] * [https://dom.spec.whatwg.org/ DOM Living Standard] * [https://encoding.spec.whatwg.org/ Encoding Living Standard] * [https://fetch.spec.whatwg.org/ Fetch Living Standard] * [https://fs.spec.whatwg.org/ File System Living Standard] * [https://fullscreen.spec.whatwg.org/ Fullscreen API Living Standard] * [https://html.spec.whatwg.org/ HTML Living Standard] * [https://infra.spec.whatwg.org/ Infra Living Standard] * [https://mimesniff.spec.whatwg.org/ MIME Sniffing Living Standard] * [https://notifications.spec.whatwg.org/ Notifications API Living Standard] * [https://quirks.spec.whatwg.org/ Quirks Mode Living Standard] * [https://storage.spec.whatwg.org/ Storage Living Standard] * [https://streams.spec.whatwg.org/ Streams Living Standard] * [https://testutils.spec.whatwg.org/ Test Utils Living Standard] * [https://url.spec.whatwg.org/ URL Living Standard] * [https://urlpattern.spec.whatwg.org/ URL Pattern Living Standard] * [https://webidl.spec.whatwg.org/ Web IDL Living Standard] * [https://websockets.spec.whatwg.org/ WebSockets Living Standard] * [https://w3c.github.io/mediasession/ Media Session Standard] * [https://xhr.spec.whatwg.org/ XMLHttpRequest Living Standard] Ajax == 関連項目 == * [[JSDoc]] == 下位階層のページ == *[[JavaScript/]] *[[JavaScript/!]] *[[JavaScript/!=]] *[[JavaScript/!==]] *[[JavaScript/""]] *[[JavaScript/"0"]] *[[JavaScript/&&=]] *[[JavaScript/()]] *[[JavaScript/*]] *[[JavaScript/**]] *[[JavaScript/+]] *[[JavaScript/++@]] *[[JavaScript/+@]] *[[JavaScript/--@]] *[[JavaScript/-0]] *[[JavaScript/-@]] *[[JavaScript/-Infinity]] *[[JavaScript/0]] *[[JavaScript/0n]] *[[JavaScript/1]] *[[JavaScript/42]] *[[JavaScript/=]] *[[JavaScript/==]] *[[JavaScript/===]] *[[JavaScript/?.]] *[[JavaScript/?.ブラケット参照演算子]] *[[JavaScript/??]] *[[JavaScript/??=]] *[[JavaScript/@()]] *[[JavaScript/@++]] *[[JavaScript/@--]] *[[JavaScript/@?.()]] *[[JavaScript/AJAX]] *[[JavaScript/AbortController]] AbortSignal]] AggregateError]] Array]] Array/prototype]] Array/prototype/Symbol.iterator]] Array/prototype/concat]] Array/prototype/entries]] Array/prototype/keys]] Array/prototype/push]] Array/prototype/values]] ArrayBuffer]] Array Iterator Objects]] Async Iterable Interface]] Async Iterator Interface]] Asynchronous Module Definition]] Atomics]] BigInt]] BigInt/prototype]] BigInt64Array]] BigUint64Array]] Blob]] Body]] Boolean]] Boolean/prototype]] Booleanとboolean]] BroadcastChannel]] ByteLengthQueuingStrategy]] Canvas]] CommonJS]] Common Iteration Interfaces]] Compression Living Standard]] Console]] Constructor Properties of the Global Object]] CountQueuingStrategy]] Crypto]] DOM]] DOM/Array-Likeオブジェクト]] DOM/Attribute]] DOMDocument]] DOM/Element]] DOM/Node]] DOM/NodeList]] DOM/Text]] DOM/querySelector]] DOM/querySelectorAll]] DOMException]] DataView]] Date]] ECMAScript Module]] ECMAScriptの変遷]] ECMAScript言語仕様読解の手引]] Element]] Error]] EvalError]] Event]] EventTarget]] File]] File API]] FinalizationRegistry]] Float16Array]] Float32Array]] Float64Array]] FormData]] Function]] Function/prototype]] Function/prototype/apply]] Function/prototype/bind]] Function/prototype/call]] Function/prototype/constructor]] Function/prototype/length]] Function/prototype/name]] Function/prototype/toString]] Generator]] Generator/素数ジェネレター]] GeneratorFunction]] Global]] Global Object]] Headers]] Identifier]] Indexed Collections]] Infinity]] Int16Array]] Int32Array]] Int8Array]] Intl]] Iterable Interface]] Iterator]] Iterator/prototype]] Iterator/prototype/Symbol.iterator]] IteratorResult Interface]] Iterator Helper Objects]] Iterator Interface]] JSON]] JSON/parse]] JScript]] JavaScriptのオブジェクト]] JavaScriptのクラス]] JavaScriptの型と値]] JavaScriptの型変換]] JavaScriptの演算子]] JavaScriptエンジン]] Map]] Map/prototype]] Map/prototype/Symbol.iterator]] Map/prototype/entries]] Map/prototype/keys]] Map/prototype/values]] Math]] Math/E]] Math/LN10]] Math/LN2]] Math/LOG10E]] Math/LOG2E]] Math/PI]] Math/SQRT1 2]] Math/SQRT2]] Math/abs]] Math/acos]] Math/acosh]] Math/asin]] Math/asinh]] Math/atan]] Math/atan2]] Math/atanh]] Math/cbrt]] Math/ceil]] Math/clz32]] Math/cos]] Math/cosh]] Math/exp]] Math/expm1]] Math/floor]] Math/fround]] Math/hypot]] Math/imul]] Math/log]] Math/log10]] Math/log1p]] Math/log2]] Math/max]] Math/min]] Math/pow]] Math/random]] Math/round]] Math/sign]] Math/sin]] Math/sinh]] Math/sqrt]] Math/tan]] Math/tanh]] Math/trunc]] Mathオブジェクト]] NaN]] Node]] Node.js Worker API と Web Workers API]] Number]] Number/EPSILON]] Number/MAX SAFE INTEGER]] Number/MAX VALUE] Number/MIN SAFE INTEGER]] Number/MIN VALUE]] Number/NEGATIVE INFINITY]] Number/NaN]] Number/POSITIVE INFINITY]] Number/isFinite]] Number/isInteger]] Number/isNaN]] Number/isSafeInteger]] Number/parseFloat]] Number/parseInt]] Number/prototype]] Number/prototype/constructor]] Object]] Object.is]] Object/GetOwnPropertyKeys]] Object/ proto]] Object/assign]] Object/create]] Object/defineProperties]] Object/defineProperty]] Object/entries]] Object/freeze]] Object/fromEntries]] Object/getOwnPropertyDescriptor]] Object/getOwnPropertyDescriptors]] Object/getOwnPropertyNames]] Object/getOwnPropertySymbols]] Object/getPrototypeOf]] Object/groupBy]] Object/hasOwn]] Object/is]] Object/isExtensible]] Object/isFrozen Object/isSealed]] Object/keys]] Object/preventExtensions]] Object/prototype]] Object/prototype/ defineGetter]] Object/prototype/constructor]] Object/prototype/hasOwnProperty]] Object/prototype/isPrototypeOf]] Object/prototype/propertyIsEnumerable]] Object/prototype/toLocaleString]] Object/prototype/toString]] Object/prototype/valueOf]] Object/seal]] Object/setPrototypeOf]] Object/values]] Operators]] Polyfill]] Promise]] Promise/prototype]] Proxy]] Proxy/revocable]] RangeError]] ReadableStream]] ReadableStreamDefaultReader]] ReferenceError]] Reflect]] Reflect/apply]] Reflect/construct]] Reflect/defineProperty]] Reflect/deleteProperty]] RegExp]] RegExp/prototype]] RegExp/prototype/exec]] Request]] Response Restパラメータ]] Set]] Set/prototype]] Set/prototype/Symbol.iterator]] Set/prototype/values]] SharedArrayBuffer]] SharedArrayBuffer/prototype]] Streams API]] String]] String/fromCharCode]] String/fromCodePoint]] String/prototype]] String/prototype/StringPaddingBuiltinsImpl]] String/prototype/Symbol.iterator]] String/prototype/at]] String/prototype/charAt]] String/prototype/charCodeAt]] String/prototype/codePointAt]] String/prototype/concat]] String/prototype/constructor]] String/prototype/endsWith]] String/prototype/includes]] String/prototype/indexOf]] String/prototype/isWellFormed]] String/prototype/lastIndexOf]] String/prototype/localeCompare]] String/prototype/match]] String/prototype/matchAll]] String/prototype/normalize]] String/prototype/padEnd]] String/prototype/padStart]] String/prototype/quote]] String/prototype/repeat]] String/prototype/replace]] String/prototype/replaceAll]] String/prototype/search]] String/prototype/slice]] String/prototype/split]] String/prototype/startsWith]] String/prototype/substring]] String/prototype/toLocaleLowerCase]] String/prototype/toLocaleUpperCase]] String/prototype/toLowerCase]] String/prototype/toString]] String/prototype/toUpperCase]] String/prototype/toWellFormed]] String/prototype/trim]] String/prototype/trimEnd]] String/prototype/trimStart]] String/prototype/valueOf]] String/raw]] SuiteSparse]] Symbol]] Symbol/asyncIterator]] Symbol/iterator]] Symbol/toStringTag]] SyntaxError]] TransformStream]] Tree Shaking]] TypeError]] TypedArray]] URIError]] URL]] URLSearchParams]] Uint16Array]] Uint32Array]] Uint8Array]] Uint8ClampedArray]] Universal Module Definition]] Vue.js]] WeakMap]] WeakMap/prototype]] WeakRef]] WeakSet]] WeakSet/prototype]] WebAssembly]] WebSocket]] Web Compatibility Standard]] Web Worker]] Web Worker API]] Web開発におけるワークフロー管理システム]] Well-Known Symbols]] Window]] == グローバルインスタンス == {| class="sortable wikitable" |+ グローバルインスタンス一覧 ! 名称 || タイプ || 解説 |- | <code>[[/AbortController|AbortController]]</code> || [[/function|function]] || 非同期操作を中止するためのコントローラー |- | <code>[[/AbortSignal|AbortSignal]]</code> || [[/function|function]] || 中止シグナル<ref>DOM: https://dom.spec.whatwg.org/#interface-AbortSignal</ref> |- | <code>[[/AggregateError|AggregateError]]</code> || [[/function|function]] || 複数のエラーをまとめたエラーオブジェクト |- | <code>[[/Array|Array]]</code> || [[/function|function]] || 配列オブジェクト |- | <code>[[/ArrayBuffer|ArrayBuffer]]</code> || [[/function|function]] || 一般的な固定長バイナリデータバッファ |- | <code>[[/Atomics|Atomics]]</code> || [[/object|object]] || 共有メモリ上での原子的操作を提供するオブジェクト |- | <code>[[/BigInt64Array|BigInt64Array]]</code> || [[/function|function]] || 符号付き64ビット整数配列 |- | <code>[[/BigInt|BigInt]]</code> || [[/function|function]] || 任意の精度の整数 |- | <code>[[/BigUint64Array|BigUint64Array]]</code> || [[/function|function]] || 符号なし64ビット整数配列 |- | <code>[[/Blob|Blob]]</code> || [[/function|function]] || 不変の生のデータオブジェクト<ref>File API: https://w3c.github.io/FileAPI/#blob-section</ref> |- | <code>[[/Boolean|Boolean]]</code> || [[/function|function]] || 真偽値オブジェクト |- | <code>[[/BroadcastChannel|BroadcastChannel]]</code> || [[/function|function]] || ブラウザコンテキスト間のブロードキャスト通信<ref>HTML: https://html.spec.whatwg.org/multipage/web-messaging.html#broadcasting-to-other-browsing-contexts</ref> |- | <code>[[/Buffer|Buffer]]</code> || [[/function|function]] || Node.jsにおけるバイナリデータバッファ<ref>Node.js: https://nodejs.org/api/buffer.html</ref> |- | <code>[[/ByteLengthQueuingStrategy|ByteLengthQueuingStrategy]]</code> || [[/function|function]] || ストリームのキューイング戦略(バイト長)<ref>Streams: https://streams.spec.whatwg.org/#blqs-class</ref> |- | <code>[[/CompressionStream|CompressionStream]]</code> || [[/function|function]] || 圧縮ストリーム<ref>Compression: https://compression.spec.whatwg.org/#compression-stream</ref> |- | <code>[[/CountQueuingStrategy|CountQueuingStrategy]]</code> || [[/function|function]] || ストリームのキューイング戦略(カウント) |- | <code>[[/Crypto|Crypto]]</code> || [[/function|function]] || 暗号関連機能を提供するオブジェクト |- | <code>[[/CryptoKey|CryptoKey]]</code> || [[/function|function]] || 暗号鍵 |- | <code>[[/CustomEvent|CustomEvent]]</code> || [[/function|function]] || カスタムイベント |- | <code>[[/DOMException|DOMException]]</code> || [[/function|function]] || DOM操作に関連する例外 |- | <code>[[/DataView|DataView]]</code> || [[/function|function]] || ArrayBuffer上のデータへの低レベルアクセス |- | <code>[[/Date|Date]]</code> || [[/function|function]] || 日付と時刻オブジェクト |- | <code>[[/DecompressionStream|DecompressionStream]]</code> || [[/function|function]] || 展開ストリーム |- | <code>[[/Error|Error]]</code> || [[/function|function]] || 一般的なエラーオブジェクト |- | <code>[[/EvalError|EvalError]]</code> || [[/function|function]] || eval()に関連するエラー |- | <code>[[/Event|Event]]</code> || [[/function|function]] || イベントオブジェクト |- | <code>[[/EventTarget|EventTarget]]</code> || [[/function|function]] || イベントターゲット |- | <code>[[/File|File]]</code> || [[/function|function]] || ファイルオブジェクト |- | <code>[[/FinalizationRegistry|FinalizationRegistry]]</code> || [[/function|function]] || オブジェクトのガベージコレクション通知 |- | <code>[[/Float32Array|Float32Array]]</code> || [[/function|function]] || 32ビット浮動小数点数配列 |- | <code>[[/Float64Array|Float64Array]]</code> || [[/function|function]] || 64ビット浮動小数点数配列 |- | <code>[[/FormData|FormData]]</code> || [[/function|function]] || HTMLフォームデータ |- | <code>[[/Function|Function]]</code> || [[/function|function]] || 関数オブジェクト |- | <code>[[/Headers|Headers]]</code> || [[/function|function]] || HTTPヘッダー |- | <code>[[/Infinity|Infinity]]</code> || [[/number|number]] || 無限大 |- | <code>[[/Int16Array|Int16Array]]</code> || [[/function|function]] || 符号付き16ビット整数配列 |- | <code>[[/Int32Array|Int32Array]]</code> || [[/function|function]] || 符号付き32ビット整数配列 |- | <code>[[/Int8Array|Int8Array]]</code> || [[/function|function]] || 符号付き8ビット整数配列 |- | <code>[[/Intl|Intl]]</code> || [[/object|object]] || 国際化関連機能を提供するオブジェクト |- | <code>[[/Iterator|Iterator]]</code> || [[/function|function]] || イテレーター |- | <code>[[/JSON|JSON]]</code> || [[/object|object]] || JSON関連機能を提供するオブジェクト |- | <code>[[/Map|Map]]</code> || [[/function|function]] || マップオブジェクト |- | <code>[[/Math|Math]]</code> || [[/object|object]] || 数学関連機能を提供するオブジェクト |- | <code>[[/MessageChannel|MessageChannel]]</code> || [[/function|function]] || メッセージチャネル |- | <code>[[/MessageEvent|MessageEvent]]</code> || [[/function|function]] || メッセージイベント |- | <code>[[/MessagePort|MessagePort]]</code> || [[/function|function]] || メッセージポート |- | <code>[[/NaN|NaN]]</code> || [[/number|number]] || 非数 (Not-a-Number) |- | <code>[[/Navigator|Navigator]]</code> || [[/function|function]] || ブラウザナビゲーション関連機能 |- | <code>[[/Number|Number]]</code> || [[/function|function]] || 数値オブジェクト |- | <code>[[/Object|Object]]</code> || [[/function|function]] || オブジェクト<!-- |- | <code>[[/Performance|Performance]]</code> || [[/function|function]] || パフォーマンス関連機能を提供するオブジェクト |- | <code>[[/PerformanceEntry|PerformanceEntry]]</code> || [[/function|function]] || パフォーマンスエントリー |- | <code>[[/PerformanceMark|PerformanceMark]]</code> || [[/function|function]] || パフォーマンスマーク |- | <code>[[/PerformanceMeasure|PerformanceMeasure]]</code> || [[/function|function]] || パフォーマンス計測 |- | <code>[[/PerformanceObserver|PerformanceObserver]]</code> || [[/function|function]] || パフォーマンスオブザーバー |- | <code>[[/PerformanceObserverEntryList|PerformanceObserverEntryList]]</code> || [[/function|function]] || パフォーマンスオブザーバーエントリーリスト |- | <code>[[/PerformanceResourceTiming|PerformanceResourceTiming]]</code> || [[/function|function]] || パフォーマンスリソースタイミング --> |- | <code>[[/Promise|Promise]]</code> || [[/function|function]] || Promiseオブジェクト |- | <code>[[/Proxy|Proxy]]</code> || [[/function|function]] || プロキシオブジェクト |- | <code>[[/RangeError|RangeError]]</code> || [[/function|function]] || 範囲エラー |- | <code>[[/ReadableByteStreamController|ReadableByteStreamController]]</code> || [[/function|function]] || ReadableByteStreamのコントローラー |- | <code>[[/ReadableStream|ReadableStream]]</code> || [[/function|function]] || 読み取り可能ストリーム |- | <code>[[/ReadableStreamBYOBReader|ReadableStreamBYOBReader]]</code> || [[/function|function]] || ReadableStreamのBYOBリーダー |- | <code>[[/ReadableStreamBYOBRequest|ReadableStreamBYOBRequest]]</code> || [[/function|function]] || ReadableStreamのBYOBリクエスト |- | <code>[[/ReadableStreamDefaultController|ReadableStreamDefaultController]]</code> || [[/function|function]] || ReadableStreamのデフォルトコントローラー |- | <code>[[/ReadableStreamDefaultReader|ReadableStreamDefaultReader]]</code> || [[/function|function]] || ReadableStreamのデフォルトリーダー |- | <code>[[/ReferenceError|ReferenceError]]</code> || [[/function|function]] || 参照エラー |- | <code>[[/Reflect|Reflect]]</code> || [[/object|object]] || リフレクション関連機能を提供するオブジェクト |- | <code>[[/RegExp|RegExp]]</code> || [[/function|function]] || 正規表現オブジェクト |- | <code>[[/Request|Request]]</code> || [[/function|function]] || HTTPリクエスト |- | <code>[[/Response|Response]]</code> || [[/function|function]] || HTTPレスポンス |- | <code>[[/Set|Set]]</code> || [[/function|function]] || セットオブジェクト |- | <code>[[/SharedArrayBuffer|SharedArrayBuffer]]</code> || [[/function|function]] || 共有ArrayBuffer |- | <code>[[/String|String]]</code> || [[/function|function]] || 文字列オブジェクト |- | <code>[[/SubtleCrypto|SubtleCrypto]]</code> || [[/function|function]] || 暗号関連機能(Subtle) |- | <code>[[/Symbol|Symbol]]</code> || [[/function|function]] || シンボル |- | <code>[[/SyntaxError|SyntaxError]]</code> || [[/function|function]] || 構文エラー |- | <code>[[/TextDecoder|TextDecoder]]</code> || [[/function|function]] || テキストデコーダー |- | <code>[[/TextDecoderStream|TextDecoderStream]]</code> || [[/function|function]] || テキストデコーダーストリーム |- | <code>[[/TextEncoder|TextEncoder]]</code> || [[/function|function]] || テキストエンコーダー |- | <code>[[/TextEncoderStream|TextEncoderStream]]</code> || [[/function|function]] || テキストエンコーダーストリーム |- | <code>[[/TransformStream|TransformStream]]</code> || [[/function|function]] || 変換ストリーム |- | <code>[[/TransformStreamDefaultController|TransformStreamDefaultController]]</code> || [[/function|function]] || 変換ストリームのデフォルトコントローラー |- | <code>[[/TypeError|TypeError]]</code> || [[/function|function]] || 型エラー |- | <code>[[/URIError|URIError]]</code> || [[/function|function]] || URIエラー |- | <code>[[/URL|URL]]</code> || [[/function|function]] || URLオブジェクト |- | <code>[[/URLSearchParams|URLSearchParams]]</code> || [[/function|function]] || URL検索パラメータ |- | <code>[[/Uint16Array|Uint16Array]]</code> || [[/function|function]] || 符号なし16ビット整数配列 |- | <code>[[/Uint32Array|Uint32Array]]</code> || [[/function|function]] || 符号なし32ビット整数配列 |- | <code>[[/Uint8Array|Uint8Array]]</code> || [[/function|function]] || 符号なし8ビット整数配列 |- | <code>[[/Uint8ClampedArray|Uint8ClampedArray]]</code> || [[/function|function]] || 符号なし8ビット整数配列(クランプ) |- | <code>[[/WeakMap|WeakMap]]</code> || [[/function|function]] || WeakMapオブジェクト |- | <code>[[/WeakRef|WeakRef]]</code> || [[/function|function]] || WeakRefオブジェクト |- | <code>[[/WeakSet|WeakSet]]</code> || [[/function|function]] || WeakSetオブジェクト |- | <code>[[/WebAssembly|WebAssembly]]</code> || [[/object|object]] || WebAssembly関連機能を提供するオブジェクト |- | <code>[[/WebSocket|WebSocket]]</code> || [[/function|function]] || WebSocketオブジェクト |- | <code>[[/WritableStream|WritableStream]]</code> || [[/function|function]] || 書き込み可能ストリーム |- | <code>[[/WritableStreamDefaultController|WritableStreamDefaultController]]</code> || [[/function|function]] || 書き込み可能ストリームのデフォルトコントローラー |- | <code>[[/WritableStreamDefaultWriter|WritableStreamDefaultWriter]]</code> || [[/function|function]] || 書き込み可能ストリームのデフォルトライター |- | <code>[[/atob|atob]]</code> || [[/function|function]] || Base64デコード |- | <code>[[/btoa|btoa]]</code> || [[/function|function]] || Base64エンコード |- | <code>[[/clearImmediate|clearImmediate]]</code> || [[/function|function]] || setImmediateのキャンセル |- | <code>[[/clearInterval|clearInterval]]</code> || [[/function|function]] || setIntervalのキャンセル |- | <code>[[/clearTimeout|clearTimeout]]</code> || [[/function|function]] || setTimeoutのキャンセル |- | <code>[[/console|console]]</code> || [[/object|object]] || コンソール関連機能を提供するオブジェクト |- | <code>[[/crypto|crypto]]</code> || [[/object|object]] || 暗号関連機能を提供するオブジェクト |- | <code>[[/decodeURI|decodeURI]]</code> || [[/function|function]] || URIデコード |- | <code>[[/decodeURIComponent|decodeURIComponent]]</code> || [[/function|function]] || URIコンポーネントデコード |- | <code>[[/encodeURI|encodeURI]]</code> || [[/function|function]] || URIエンコード |- | <code>[[/encodeURIComponent|encodeURIComponent]]</code> || [[/function|function]] || URIコンポーネントエンコード |- | <code>[[/escape|escape]]</code> || [[/function|function]] || 文字列エスケープ |- | <code>[[/eval|eval]]</code> || [[/function|function]] || 文字列をJavaScriptコードとして実行 |- | <code>[[/fetch|fetch]]</code> || [[/function|function]] || HTTPリクエスト |- | <code>[[/global|global]]</code> || [[/object|object]] || グローバルオブジェクト(Node.js) |- | <code>[[/globalThis|globalThis]]</code> || [[/object|object]] || グローバルオブジェクト |- | <code>[[/isFinite|isFinite]]</code> || [[/function|function]] || 有限数判定 |- | <code>[[/isNaN|isNaN]]</code> || [[/function|function]] || NaN判定 |- | <code>[[/navigator|navigator]]</code> || [[/object|object]] || ブラウザナビゲーション関連機能を提供するオブジェクト |- | <code>[[/parseFloat|parseFloat]]</code> || [[/function|function]] || 浮動小数点数パース |- | <code>[[/parseInt|parseInt]]</code> || [[/function|function]] || 整数パース |- | <code>[[/performance|performance]]</code> || [[/object|object]] || パフォーマンス関連機能を提供するオブジェクト |- | <code>[[/process|process]]</code> || [[/object|object]] || Node.jsプロセス関連機能を提供するオブジェクト |- | <code>[[/queueMicrotask|queueMicrotask]]</code> || [[/function|function]] || マイクロタスクキューへの追加 |- | <code>[[/setImmediate|setImmediate]]</code> || [[/function|function]] || 即時実行(Node.js) |- | <code>[[/setInterval|setInterval]]</code> || [[/function|function]] || 定期実行 |- | <code>[[/setTimeout|setTimeout]]</code> || [[/function|function]] || 遅延実行 |- | <code>[[/structuredClone|structuredClone]]</code> || [[/function|function]] || 構造化クローン |- | <code>[[/undefined|undefined]]</code> || [[/undefined|undefined]] || 未定義値 |- | <code>[[/unescape|unescape]]</code> || [[/function|function]] || 文字列アンエスケープ |} == 外部リンク == {{wikipedia}} {{wikiversity|Topic:Javascript|JavaScript}} * [//developer.mozilla.org/ja/docs/Web/JavaScript JavaScript - MDN] {{DEFAULTSORT:JAVASCRIPT}} [[Category:JavaScript|*]] [[Category:スクリプティング言語]] [[Category:プログラミング言語]] [[Category:World Wide Web]] {{NDC|007.64}} luv7nn5jcspgtcbxas0oxmiki7qhnhy Java 0 1521 301315 267862 2026-07-08T11:26:17Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301315 wikitext text/x-wiki {{Pathnav|メインページ|工学|情報技術|プログラミング}} ---- {{Wikipedia|Java言語|Java言語}} 本書は初級から上級までを網羅し、Javaの基礎から応用までをカバーします。 初級編では基本文法や概念、中級編ではオブジェクト指向やスレッド処理、上級編ではリフレクションやデータベース連携、GUIやWebアプリケーション開発、さらにフレームワークの利用方法まで学べます。 本書は幅広い読者に価値を提供し、Javaプログラミングのスキル向上を支援します。 == 構成 == === 初級編 === ; Java入門 :# [[/クイックツアー|クイックツアー]] :# [[/Hello world|Hello world]] :# [[/プログラミングのための準備|プログラミングのための準備]] ; 基本文法と概念 :# [[/基礎/変数と代入演算|変数と代入]] :# [[/文法/コメント|コメント]] :# [[/基礎/算術演算|式と演算子]] :# [[/基礎/条件分岐|条件分岐]] :# [[/基礎/反復処理|反復処理]] :# [[/基礎/型|型]] :# [[/基礎/リテラル|リテラル]] :#: [[/アンダースコア|アンダースコア]] :# [[/null|null]] :# [[/Optional|Optional]] :# [[/基礎/文字列|文字列]] :# [[/基礎/配列|配列]] :# [[/基礎/コレクション|コレクション]] :# [[/基礎/クラス|クラス]] :# [[/基礎/例外処理|例外処理]] === 中級編 === ; オブジェクト指向プログラミング (OOP) :# [[/文法/クラス|クラス]] :# [[/文法/パッケージ|パッケージ]] :# [[/抽象クラス|抽象クラス]] :# [[/ラッパークラス|ラッパークラス]] :#: [[/オートボクシング|オートボクシング]] :# [[/列挙型 (enum)|列挙型 (enum)]] :# [[/レコード|レコード (record)]] :# [[/インターフェース|インターフェース]] :# [[/ジェネリクス|ジェネリクス]] :# [[/アノテーション|アノテーション]] ; スレッドと並行処理 :# スレッドの基本的な理解 :# スレッドの作成と制御 :# マルチスレッドプログラミングの基礎 ;ラムダ式とストリームAPI :# ラムダ式の構文と利点 :# ストリームAPIの基本的な操作(map、filter、reduceなど) ;デザインパターン :# ソフトウェアデザインパターンの基本概念 :# 代表的なデザインパターンの理解と実装 ; 特殊機能と技術 :# [[/改廃された技術|改廃された技術]] === 上級編 === ;リフレクション :#リフレクションの基本的な理解 :#リフレクションを使用したダイナミックプログラミング ;ユニットテスト :#ユニットテストの重要性と基本的な考え方 :#JUnitなどのテスティングフレームワークの使用方法 ;データベース連携 :#JDBCを使用したデータベースの操作 :#SQLクエリの作成と実行 ;GUIアプリケーション開発 :#[[JavaFX]] ;Webアプリケーション開発 :#ServletとJSPの基礎 :#MVCアーキテクチャの理解と実装 ;フレームワーク :#Spring Frameworkの基本的な概念と利用方法 :#Spring Bootを使用したアプリケーションの開発 :#* [[Spring Framework]] -- 総合アプリケーションフレームワーク。 :#* [[Google Guice]] -- 軽量な依存性注入(DI)フレームワーク。 :#* [[Google Guava]] -- コレクションフレームワークを含んだユーティリティライブラリ。 :#* ([[Apache Commons Lang]]) -- 総称型に非対応、多くの機能は Java SE が実装。 == バージョンごとの主な新機能 == ; Java 17 (2021年9月): :*SealedClass: <code>sealed</code>キーワードを使用して定義され、特定のサブクラスを許可するように指定されます。サブクラスは、<code>permits</code>キーワードを使用して封印されたクラス内で明示的に指定されなければなりません。 :*スイッチ式のパターンマッチング): switch文内で条件に基づいてパターンを指定し分岐を実現します。パターンには型、値、nullチェックなどが含まれ、複雑な条件を直感的に表現できます。<!-- :* モジュールパッチ: モジュールパッチ機能が導入され、モジュールシステムに対する柔軟性が向上しました。 :* パフォーマンス改善: JVMのパフォーマンスが改善され、メモリ効率が向上しました。--> :* フィーチャーサポート: 長期サポートリリース(LTS)としてのJava 17のサポートが追加され、将来の安定性と互換性が保証されました。 ; Java 16 (2021年3月): :* <code>record</code>: <code>record</code>は不変性を持ち、自動的に<code>equals()</code>、<code>hashCode()</code>、<code>toString()</code>メソッドを生成し、フィールドを読み取り専用にすることができます。 :* instanceofのパターンマッチング: 新しいinstanceof演算子が導入され、型パターンのチェックが可能になりました。 :* UNIXドメインソケット: UNIXドメインソケットのサポートが追加され、ローカル通信を可能にしました。 :* OpenJDKポリシーの変更: OpenJDKのライセンスポリシーが変更され、将来のバージョンに対するサポートが改善されました。 ; Java 15 (2020年9月): :* テキストブロックの改善: テキストブロックが改善され、エスケープシーケンスの処理が改善されました。<!-- :* G1ガベージコレクタの改善: G1ガベージコレクタに対するさまざまな改良が行われ、パフォーマンスが向上しました。 :* ZGCガベージコレクタの改善: ZGCガベージコレクタに対するいくつかの改良が行われ、大規模なヒープサイズのアプリケーションのパフォーマンスが向上しました。--> ; Java 14 (2020年3月): :* ジャヴァフライトレコーダ: Java Flight Recorder(JFR)がオープンソース化され、広範なプロファイリングツールが提供されました。 ; Java 13 (2019年9月): :* テキストブロック: 複数行の文字列リテラルのためのテキストブロック機能が導入され、文字列の可読性が向上しました。<!-- :* ダイナミックCDSアーカイブ: 動的CDSアーカイブ機能が導入され、アプリケーションの起動時間が改善されました。 :* ZGCガベージコレクタ: Z Garbage Collector(ZGC)が実験的に導入され、大規模なヒープサイズを持つアプリケーションに最適化されたガベージコレクタが提供されました。--> ; Java 12 (2019年3月): :* switch式: 新しいswitch式が導入され、より簡潔なコード記述が可能になりました。<!-- :* マイクロベンチマークスイート: マイクロベンチマークスイートが導入され、Javaのパフォーマンスを評価するためのツールが提供されました。 :* シェネルG1ガベージコレクタ: G1ガベージコレクタに対する実験的な改良が行われ、性能が向上しました。--> ; Java 11 (2018年9月):<!-- :* Epsilonガベージコレクタ: メモリのアロケーションを行わず、ガベージコレクションを無効にする実験的なガベージコレクタが追加されました。 :* HTTPクライアント: 標準のHTTPクライアントAPIが追加され、HTTP/2およびWebSocketをサポートします。--> :* ローカル変数の構文拡張: <code>var</code>キーワードをローカル変数の宣言だけでなく、foreachループのインデックス宣言でも使用できるようになりました。 ; Java 10 (2018年3月): :* var型: ローカル変数の型推論を導入し、<code>var</code>キーワードを使用して変数を宣言することができるようになりました。 :* ローカル変数の型推論: メソッドのパラメーターにおいて、型の明示的な宣言を省略できるようになりました。<!-- :* G1ガベージコレクタの改善: G1ガベージコレクターに多くの改善が行われ、より効率的なメモリ管理が可能になりました。--> ; Java 9 (2017年9月): :* モジュラーシステム: モジュールシステム(Project Jigsaw)が追加され、アプリケーションをモジュールに分割し、依存関係を明示的に定義できるようになりました。 :* JShell: 対話型のJavaシェル(REPL)が追加され、Javaのコード断片を即座に試行できるようになりました。 :* プライベートメソッドインターフェース: インターフェース内でプライベートメソッドとプライベートスタティックメソッドを定義できるようになりました。 ; Java 8 (2014年3月): :* ラムダ式とストリームAPI: ラムダ式を導入し、コードの簡潔化とストリーム処理をサポートするStream APIが追加されました。 :* Optional: nullを扱うための新しいクラスOptionalが導入され、nullポインタ例外の回避をサポートします。 :* Date/Time API: Joda-Timeにインスパイアされた新しい日付と時間のAPIが導入されました。 ;Java 7 (2011年7月): :*文字列スイッチ: switch文で文字列の比較をサポートしました。 :*ダイヤモンド演算子: ジェネリックのインスタンス化時に型を省略できるようになりました。 :*Try-with-resources: try文でのリソースの自動クローズをサポートするための新しい構文が導入されました。 :*[[/アンダースコア|アンダースコア]]: 数値リテラルにおいて、読みやすさを向上させるために、桁区切りに使用されます。 :*ジェネリック例外の型推論:Java 7.0では、catchブロックでジェネリック例外をキャッチするときに、ジェネリック型の推論ができるようになりました。 :*可変長引数の改善:可変長引数を使用して、他の引数と組み合わせて使用できるようになりました。 :*インスタンス化されたジェネリック型の引数の型推論:コンパイラが、ジェネリック型の引数の型を自動的に推論できるようになりました。 ;Java 6 (2006年12月):<!-- スクリプティングサポート: スクリプト言語(例えば、JavaScript、Rubyなど)をJavaアプリケーションに統合するためのAPIが追加されました。 プロファイリングツール: 新しいプロファイリングツールが追加され、パフォーマンスの分析が容易になりました。 Webサービスサポート: 組み込みのWebサービススタックが追加され、Webサービスの開発が簡略化されました。 ;Java 6.0の主な新機能の一覧--> :*コンパイル時定数(Compile-Time Constants):Java 6.0では、定数式が宣言された場所で評価されるようになりました。これにより、実行時のコストが削減され、コードの簡潔性が向上しました。 :*リテラル文字列の自動的な連結(Automatic Concatenation of Literal Strings):Java 6.0では、複数のリテラル文字列が隣接している場合、自動的に連結されるようになりました。これにより、コードの可読性が向上し、記述の簡略化が可能になりました。 ;Java 5 (2004年9月): :*[[/ジェネリクス|ジェネリクス]]: 型安全性を向上させるためのジェネリックスが導入されました。 :*[[/基礎/反復処理#拡張for文|拡張forループ(Enhanced For Loop)]]: コレクションや配列を簡潔に処理するための拡張forループが導入されました。 :*[[/オートボクシング|オートボクシングとアンボクシング]]: プリミティブ型とそれに対応するラッパークラスの間で自動的に変換が行われるようになりました。 :*[[/アノテーション|アノテーション]]: クラス、メソッド、変数などに付与することができるメタデータで、コンパイル時や実行時に利用される。 :*[[/列挙型|列挙型]]: 列挙型は、定数の集合を表現するために使用されます。列挙型は、コンパイル時の型検査に役立ちます。 :*[[/静的インポート|静的インポート]]: 静的メンバーをインポートすることができます。 :*[[/可変長引数|可変長引数]]: メソッドが可変数の引数を取ることができるようになります。 == 歴史 == Javaの歴史は1980年代後半に始まります。当初、サン・マイクロシステムズ(後のサン・マイクロシステムズ、現在のオラクル)は、組み込みシステム向けの言語として「Oak」と呼ばれるプロジェクトを開始しました。その後、1995年に「Java」として発表され、ウェブアプリケーションやインターネット上の動的なコンテンツを可能にする目的で設計されました。 Javaは初めはブラウザ上でアプレットとして実行され、クロスプラットフォーム対応とセキュリティに焦点を当てていました。その後、Javaはサーバーサイドアプリケーションや企業システムの開発にも広く採用されました。1998年にはJavaの最初の大規模なアップデートであるJava 2がリリースされました。 2006年にはサン・マイクロシステムズがJavaをオープンソース化し、Java Community Process(JCP)を通じて開発者コミュニティによる標準化プロセスを導入しました。これにより、Javaの進化はより広範囲の開発者によって促進されました。 2010年代には、Oracle Corporationがサン・マイクロシステムズを買収し、Javaの開発とサポートを引き継ぎました。Java 8では、ラムダ式やストリームAPIなどの新機能が追加され、言語とライブラリの改善が行われました。 その後、Java 9以降のバージョンでは、モジュールシステムやリアクティブプログラミングのサポートなど、さまざまな新機能が導入されました。Javaは、現在も広範囲にわたるアプリケーション開発において重要な役割を果たし続けています。 == コードギャラリー == === エラトステネスの篩 === :<syntaxhighlight lang=java copy> import java.util.*; public class Main { public static void eratosthenes(int n) { boolean[] sieve = new boolean[n + 1]; sieve[0] = false; sieve[1] = false; for (int i = 2; i <= n; i++) { sieve[i] = true; } for (int i = 2; i * i <= n; i++) { if (sieve[i]) { for (int j = i * i; j <= n; j += i) { sieve[j] = false; } } } for (int i = 2; i <= n; i++) { if (sieve[i]) { System.out.println(i); } } } public static void main(String[] args) { eratosthenes(100); } } </syntaxhighlight> このJavaのコードは、エラトステネスの篩(Sieve of Eratosthenes)アルゴリズムを使って、与えられた範囲内の素数を見つけて出力します。 # <code>eratosthenes</code>メソッド: #* <code>n</code> 以下の素数を見つけるために、<code>boolean</code>配列 <code>sieve</code> を用意します。<code>sieve[i]</code> が <code>true</code> の場合、<code>i</code> は素数です。 #* 初期化の際、<code>sieve[0]</code> と <code>sieve[1]</code> を <code>false</code> に設定し、それ以外の要素を <code>true</code> に初期化します。 #* 2から <code>n</code> までの各数に対して、その数が素数である場合、その数を出力し、その倍数を <code>false</code> にマークします。 # <code>main</code>メソッド: #* <code>main</code>メソッドでは、<code>eratosthenes</code>メソッドを呼び出して、<code>100</code> 以下の素数を見つけて出力します。 具体的には、<code>eratosthenes</code>メソッドは次の手順で動作します: * <code>n</code> 以下の数を <code>true</code> に初期化します。 * 2から <code>n</code> までの各数について、その数が素数である場合、その数自体を出力し、その数の倍数を <code>false</code> にします。これにより、残った <code>true</code> の数は素数になります。 例えば、<code>eratosthenes(100)</code> を実行すると、<code>100</code> 以下の素数が出力されます。 === 最大公約数と最小公倍数 === :<syntaxhighlight lang=java copy> import java.util.Arrays; public class Main { public static int gcd2(int m, int n) { return n == 0 ? m : gcd2(n, m % n); } public static int gcd(int... ints) { if (ints.length == 0) { throw new IllegalArgumentException("At least one argument is required"); } return Arrays.stream(ints).reduce(Main::gcd2).getAsInt(); } public static int lcm2(int m, int n) { return m * n / gcd2(m, n); } public static int lcm(int... ints) { if (ints.length == 0) { throw new IllegalArgumentException("At least one argument is required"); } return Arrays.stream(ints).reduce(Main::lcm2).getAsInt(); } public static void main(String[] args) { System.out.println("gcd2(30, 45) => " + gcd2(30, 45)); System.out.println("gcd(30, 72, 12) => " + gcd(30, 72, 12)); System.out.println("lcm2(30, 72) => " + lcm2(30, 72)); System.out.println("lcm(30, 42, 72) => " + lcm(30, 42, 72)); } } </syntaxhighlight> このコードは、最大公約数(Greatest Common Divisor, GCD)と最小公倍数(Least Common Multiple, LCM)を計算するための関数を実装しています。 <code>gcd</code>および<code>lcm</code>メソッド内のreduceメソッド: * <code>Arrays.stream(ints)</code>を使用して<code>ints</code>をストリームに変換し、<code>reduce</code>メソッドを使って<code>Main::gcd2</code>または<code>Main::lcm2</code>関数を累積的に適用します。 * <code>getAsInt()</code>メソッドを使用して結果を取得します。これは、<code>OptionalInt</code>を<code>int</code>に変換する操作です。<code>getAsInt()</code>はストリームが空でないことを前提としていますが、この場合は引数が少なくとも1つ以上あることが保証されているため問題ありません。 === 二分法 === [[W:二分法|二分法]] :<syntaxhighlight lang=java copy> import java.util.function.Function; public class Main { public static double bisection(double low, double high, Function<Double, Double> f) { double x = (low + high) / 2; double fx = f.apply(x); final double epsilon = 1.0e-10; if (Math.abs(fx) < epsilon) { return x; } if (fx < 0.0) { low = x; } else { high = x; } return bisection(low, high, f); } public static void main(String[] args) { var result1 = bisection(0, 3, x -> x - 1); System.out.println(result1); var result2 = bisection(0, 3, x -> x * x - 1); System.out.println(result2); } } </syntaxhighlight> : [[旧課程(-2012年度)高等学校数学B/数値計算とコンピューター#2分法]]の例を Java に移植しました。 このJavaのコードは、二分法(Bisection Method)を使って与えられた関数の根(解)を求める方法を示しています。 # <code>bisection</code>メソッド: #* 与えられた範囲 <code>low</code> から <code>high</code> の間で関数 <code>f</code> の根を見つけるメソッドです。 #* <code>low</code> と <code>high</code> の中間点を <code>x</code> として計算し、その点での関数値 <code>fx</code> を取得します。 #* <code>fx</code> の絶対値が非常に小さい(この場合、<code>1.0e-10</code>より小さい)場合、<code>x</code> を見つけたとみなして返します。 #* それ以外の場合、<code>fx</code> の符号をチェックして、<code>x</code> を新しい範囲の中心として、<code>low</code> または <code>high</code> を更新し、再帰的に <code>bisection</code> メソッドを呼び出します。 # <code>main</code>メソッド: #* <code>main</code>メソッドでは、<code>bisection</code>メソッドを使用して、与えられた関数の根を求めます。 #* 例えば、<code>x - 1</code> の関数の根を <code>0</code> から <code>3</code> の範囲で見つけて出力し、<code>x^2 - 1</code> の関数の根を同様に見つけて出力します。 このコードは、Javaの<code>Function</code>インターフェースを利用して、関数を引数として渡し、二分法を使って関数の根を見つける方法を実装しています。 == 用語集 == ; abstract(抽象): インスタンスを作成できない抽象クラスや抽象メソッドを定義するための修飾子。 ; annotation(アノテーション): ソースコードにメタデータを追加するための機能。 ; Array(配列): 同じ型の複数の要素を保持するためのデータ構造。 ; ArrayList(動的配列): 可変長配列を実現するためのクラス。 ; assert(アサート): 条件が正しいことをチェックするために使用されるキーワード。 ; binary operator(二項演算子): 2つのオペランドを持つ演算子。 ; boolean(論理値): 2つの値、trueまたはfalse、を持つデータ型。 ; break(ブレーク): ループやswitch文から抜け出すためのキーワード。 ; byte(バイト): 8ビットの符号付整数型のデータ型。 ; case(ケース): switch文内で、評価式の値と一致する場合に実行されるブロック。 ; catch(キャッチ): tryブロック内で発生した例外を処理するためのブロック。 ; char(文字): 16ビットUnicode文字のデータ型。 ; class(クラス): データとその操作を定義するための構造体。 ; class variable(クラス変数): クラスのすべてのインスタンスで共有される変数。 ; compiler(コンパイラ): ソースコードを機械語に変換するプログラム。 ; constructor(コンストラクタ): オブジェクトを作成する際に呼び出されるメソッド。 ; continue(コンティニュー): ループ内で次の反復処理に進むためのキーワード。 ; do-while(do-while文): 条件式がfalseでない限り、ブロックを実行し続けるループ。 ; double(倍精度浮動小数点数): 64ビットの浮動小数点数のデータ型。 ; encapsulation(カプセル化): データとそれに対する操作をまとめ、外部からのアクセスを制限する機能。 ; enhanced for loop(拡張forループ): 配列やコレクションの要素に対して繰り返し処理を行うための簡潔な構文。 ; enum(列挙型): 一連の定数を表すための特殊なクラス。 ; exception(例外): プログラムの実行中に発生するエラーを表すオブジェクト。 ; extends(継承):クラスの継承に使用されるJavaのキーワード。 ; final(最終):フィールド、メソッド、またはクラスに修飾子として付けられ、値の変更やオーバーライドを禁止する。 ; finally(最後に):例外処理ブロックの一部で、必ず実行されるコードを指定するために使用されるキーワード。 ; float(浮動小数点数):単精度浮動小数点数を表すJavaのプリミティブ型。 ; for(forループ):指定された回数または条件に基づいて、コードブロックを反復的に実行するために使用されるキーワード。 ; foreach(拡張forループ):配列またはコレクションに対して、簡単な反復処理を行うために使用されるJavaの構文。 ; generic(ジェネリック):クラスやメソッドにパラメーターを追加し、異なるデータ型のオブジェクトを扱う汎用的なプログラミングの機能。 ; getter(ゲッター):クラスのインスタンス変数の値を取得するためのメソッド。 ; if-else(条件分岐):条件が真の場合に1つのコードブロックを実行し、そうでない場合に別のコードブロックを実行するために使用されるJavaの構文。 ; implements(実装):インターフェイスを実装するクラスに使用されるキーワード。 ; import(インポート):別のパッケージ内のクラスを使用するために、Javaに外部クラスを取り込むためのキーワード。 ; instance variable(インスタンス変数):クラスのインスタンスの一部であり、オブジェクトの特定の状態を保持するために使用される変数。 ; int(整数):32ビットの整数を表すJavaのプリミティブ型。 ; interface(インターフェイス):クラスのメソッドの集合であり、実装クラスによって実装されることを想定している。 ; jar(JARファイル):Javaアプリケーションをパッケージ化するための標準的な形式のアーカイブファイル。 ; java keyword(Javaのキーワード):Javaの構文で特別な意味を持つ予約語。 ; java runtime environment(JRE): Javaアプリケーションを実行するためのランタイム環境。 ; JDK: Java開発キット。Java開発に必要なツール、コンパイラ、デバッガ、API、ドキュメントが含まれる。 ; JRE: Javaランタイム環境。Javaアプリケーションを実行するための環境。 ; JVM: Java仮想マシン。Javaアプリケーションを実行するための仮想コンピュータ。 ; lambda expression: Java 8で導入された無名関数の一種。 ; long: Javaのデータ型の一つで、64ビットの符号付き整数を表す。 ; method: クラス内で実行されるコードブロックのこと。 ; modifier: クラス、メソッド、変数などの属性を変更するために使用されるキーワード。 ; new: オブジェクトのインスタンスを作成するためのキーワード。 ; null: オブジェクトが存在しないことを示す値。 ; NumberFormatException: 文字列を数値に変換しようとした際に、文字列が数値に変換できない場合にスローされる例外。 ; object: データやメソッドを持つインスタンス。 ; Object-Oriented Programming: オブジェクト指向プログラミング。クラス、オブジェクト、継承、ポリモーフィズムなどを利用してプログラムを設計する方法。 ; operator: 演算子。算術演算子、比較演算子、論理演算子などがある。 ; package: クラスやインターフェースをグループ化するための仕組み。 ; private: クラスの外部からアクセスできないアクセス修飾子。 ; protected: サブクラスからのみアクセス可能なアクセス修飾子。 ; public: 全てのクラスからアクセス可能なアクセス修飾子。 ; return: メソッドから値を返すために使用されるキーワード。 ; short: Javaのデータ型の一つで、16ビットの符号付き整数を表す。 ; static: クラスレベルの変数やメソッドに使用される修飾子。 ; String: 文字列を表すクラス。 ; super: スーパークラスのインスタンスを参照するためのキーワード。 ; switch: 複数の条件分岐をまとめて表現するためのキーワード。 ; synchronized: (同期化) スレッド間で共有されるオブジェクトに対して、1つのスレッドが実行しているときは、他のスレッドが同時にそのオブジェクトにアクセスできないようにするためのキーワードです。 ; this: (this) オブジェクト自身を参照するためのキーワードです。 ; throw: (例外を投げる) メソッド内で明示的に例外を投げるために使用されるキーワードです。 ; throws: (例外をスローする) メソッドが例外を投げる可能性があることを示すために使用されるキーワードです。 ; transient: (一時的) シリアル化されたオブジェクトの一部でないことを示すために使用されるキーワードです。 ; try-catch: (例外処理) 例外が発生する可能性があるブロック内で、例外を捕捉して処理するための構文です。 ; void: (無効) 戻り値を返さないメソッドを定義するためのキーワードです。 ; volatile: (揮発性) 変数の値が、複数のスレッドから同時にアクセスされる可能性があることを示すために使用されるキーワードです。 ; while: (ループ) 条件が true の場合、ブロックを繰り返し実行するためのループ構文です。 == 脚註 == <references /> == 下位階層のページ == *[[Java/]] *[[Java/API]] *[[Java/Hello world]] *[[Java/Optional]] *[[Java/null]] *[[Java/アノテーション]] *[[Java/アンダースコア]] *[[Java/インターフェース]] *[[Java/キーワードと識別子]] *[[Java/クイックツアー]] *[[Java/ジェネリクス]] *[[Java/プログラミングのための準備]] *[[Java/ラッパークラス]] *[[Java/レコード]] *[[Java/列挙型 (enum)]] *[[Java/初級編]] *[[Java/基礎/]] *[[Java/基礎/クラス]] *[[Java/基礎/コレクション]] *[[Java/基礎/リテラル]] *[[Java/基礎/例外処理]] *[[Java/基礎/反復処理]] *[[Java/基礎/型]] *[[Java/基礎/変数と代入演算]] *[[Java/基礎/文字列]] *[[Java/基礎/条件分岐]] *[[Java/基礎/算術演算]] *[[Java/基礎/配列]] *[[Java/抽象クラス]] *[[Java/改廃された技術]] *[[Java/文法/]] *[[Java/文法/クラス]] *[[Java/文法/コメント]] *[[Java/文法/パッケージ]] [[Category:Java|*]] [[Category:プログラミング言語]] {{NDC|007.64}} ihtrjkbdprf5vyj7h0fc8r95q9umxd4 HTML 0 1728 301310 283550 2026-07-08T10:10:24Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301310 wikitext text/x-wiki {{Pathnav|メインページ|情報技術|プログラミング|small=1|frame=1}} __NOTOC__ <div style="background:#eef;border:#99f 1px solid;margin:0 0 1%;background:#eef;padding: 0 1rem 1rex; border-radius: 3px;"> == 目次 == * [[#はじめに|はじめに]] * [[#HTML入門|HTML入門]] === 基礎 === * [[/HTML|HTML]]:トップレベルの文書構造 * [[/HEAD|HEAD]]:メタデータの記述 * [[/BODY|BODY]]:本文の記述 * [[/ハイパーリンク|ハイパーリンク]]:リンクを作成する方法 * [[/リスト|リスト(箇条書き)]]:箇条書きにする方法 * [[/オブジェクト|オブジェクト]]:画像などを挿入する方法 * [[/idとclass|idとclass]]:要素に名前を付ける方法 * [[/タグの省略|タグの省略]]:タグを省略する方法 * [[/ラベル|ラベル]]:ラベルを作成する方法…JavaScriptと組み合わせてイベント処理 * [[/要素一覧|要素の一覧]]:よく使われる要素の簡単な説明 === 応用 === * [[HTML/テーブル|テーブル(表)]]:表を作成する方法 * [[HTML/フォーム|フォーム]]:ウェブページから情報を送信する方法 * [[HTML/フレーム|フレーム<sup>†</sup>]]:フレームはHTML5で廃止されています。フレームの概要、廃止の理由、代替技術について解説。 * [[/マイクロマークアップ|マイクロマークアップ]]:HTML要素に対して追加の意味付けを行い、機械が文書の内容をより理解しやすくするための仕組み * [[/セマンティックHTML|セマンティックHTML]]: HTML要素に意味を持たせ、構造とコンテンツを明確にするための技術 * [[/レスポンシブデザイン|レスポンシブデザイン]]: さまざまなデバイスや画面サイズに対応するためのウェブデザイン技術 * [[/リキッドデザイン|リキッドデザイン]]: 画面サイズに応じて柔軟にレイアウトが変化するウェブデザイン手法 * [[/アクセシビリティ|アクセシビリティ]]: すべてのユーザーがウェブコンテンツを利用できるようにするための方法 * [[/バージョン管理|バージョン管理]]: プロジェクトのコードやリソースの変更履歴を管理するシステム * [[/ウェブパフォーマンス|ウェブパフォーマンス]]: ウェブページの読み込み速度や応答性を最適化するための技術 * [[/SEO(検索エンジン最適化)|SEO(検索エンジン最適化)]]: ウェブサイトが検索エンジンで上位に表示されるようにするための方法 * [[/ウェブセキュリティ|ウェブセキュリティ]]: ウェブアプリケーションを保護するための方法 === HTMLと共に用いられる技術 === * [[HTML Living Standard]]:最新のウェブ技術とブラウザ機能に適応し続けるために常に更新されるHTMLの仕様。2024年6月現在の最新仕様。 * [[CSS]]:ページの装飾 * [[JavaScript]]:ページに動的効果を与える * [[HTML/ブラウザ|ブラウザ]]:HTMLの閲覧環境 * [[HTML/HTML5|HTML5]]:HTML Living Standard によって置き換えられるまでのウェブ標準 * [[HTML/外部リンク|外部リンク]]:HTML作成に役立つ情報 </div> == はじめに == 本書は、[[w:ウェブページ|ウェブページ]]の標準的な[[w:マークアップ言語|マークアップ言語]]である'''HTML'''<ref>'''HyperText Markup Language'''・ハイパーテキストマークアップランゲージ</ref>の解説書です。 テキストエディタとウェブブラウザがあれば、ウェブページを作成したり、作成したページを閲覧したり、世界中の人と情報を共有したりすることができます。 本書では、簡単なHTMLの構文を説明しています。ウェブサイトの動的な動作については、[[JavaScript]]のWikiBookをご覧ください。 また、全体の見栄えやスタイルを調整する[[CSS]](Cascading Style Sheets)については別の本で紹介していますが、本書ではCSSについて簡単に説明しています。 HTMLは見出しや段落などの各種要素を'''タグ'''と呼ばれる表記法を用いマークアップしたテキストファイルです。テキストファイルなのでテキストエディタ(例えばWindowsのメモ帳)で編集でき編集環境は比較的入手容易です。 一方、[[Microsoft Edge]]・[[Google Chrome]]・[[Mozilla Firefox]]・[[Opera]]や[[Safari]]等の[[ウェブブラウザ]]でウェブページを表示するとテキストエディタで開いたときとは違い、レイアウト・文字種・色など多く修飾が構造に加えれ表示されます。これらはHTMLを[[w:HTMLレンダリングエンジン|HTMLレンダリングエンジン]]が解釈しレンダリングされた結果です。 ===ウェブ標準=== かつてブラウザ戦争がありました。そのころも[[w:ウェブ標準|ウェブ標準]]はありましたが競合勢力との差別化のため積極的に標準とは異なる要素・標準とは異なる解釈を行う[[w:HTMLレンダリングエンジン|HTMLレンダリングエンジン]]が複数市場に存在することとなりました。 その結果、複数のブラウザで望み通りの表示を行うことがウェブ製作者にとって困難なこととなり「このページは XXXX の バージョン NNNN の 1024x768ピクセルで表示して下さい」の様に、ページ閲覧者側にウェブ閲覧環境を強制したり、本来は表組のためのTABLE要素をつかってレイアウトするなど、HTML文書の本来の目的「文書の構造化」とは逆行するバッドノウハウが蔓延し、FONT要素の様な本質的に装飾が目的で構造とは無関係な要素が「ウェブ標準」に含まれる事態にまでなってしまいました。 時は流れ2021年6月現在、HTML規格の最新はW3Cから標準策定を引継いだ[[w:WHATWG|WHATWG]]が標準化する[https://html.spec.whatwg.org/multipage/ HTML Living Standard]となり<ref>W3Cが策定していたHTML5は、2021年1月に廃止され、HTML Living StandardがHTMLの標準規格となりました。</ref>、高い標準への準拠度を実現したモダンブラウザが一般に使われ、クライアントの主流もPCからスマートフォンやタブレットなどのモバイルデバイスに移りました。 本書には、HTML5や、更に古いHTML4.01を対象とした記述がまだ多く残っています。多くのページはHTML Living Standardでマークアップされています(このページ自身も2022年7月現在[[HTML Living Standard]]でマークアップされています)ので適宜差異について解説を加えます。 == HTML入門 == === 要素とタグ === ここでは2022年10月現在の現行の規格である HTML Living Standard でのマークアップ例を紹介します。 HTMLは、要素をタグを用いて階層的な文書構造をマークアップします。 ;要素 :要素は、'''開始タグ'''、'''内容'''、'''終了タグ'''の3つから成り立ちます。 :META要素のように、内容と終了タグを伴わないものもあります。 :またLI要素のように終了タグが省略可能なものもあります。 ;開始タグ :開始タグは、''' <code>&lt;</code> '''で始まり、要素名、属性リスト(省略可能)、''' <code>&gt;</code> '''で終わます。 ;内容 :内容は、0個以上の要素(子要素)あるいはテキストです。 :テキストの改行は1つの空白に置き換えられ、詰め込み処理されます。 ::これが日本語のように分かち書きをしない言語では不都合が生じるのですが、改行位置の工夫などでなるべく違和感がないようマークアップで回避しています。 ;終了タグ :終了タグは、''' <code>&lt;/</code> '''で始まり、要素名、''' <code>&gt;</code> '''で終わます。 ::また要素名は大文字小文字を区別しませんが、HTML Living StandardのXML構文では小文字に限られます。 以下では簡単な例を用いて紹介することにしましょう。 ;マークアップ例:<syntaxhighlight lang=html line copy linelinks="example"> <!DOCTYPE html> <html lang="ja"> <head> <meta charset='utf-8'> <title>簡単な例</title> </head> <body> <p>この文書は非常に簡単な例だ!</p> </body> </html> </syntaxhighlight> # HTML Living Standardの[[w:文書型宣言#HTML5|DOCTYPE]]は[[#example-1|<code><!DOCTYPE html></code>]]とシンプルです。技術的に言うと[[w:Document Type Definition|DTD]]を伴わないのでHTML5以降はもはや[[w:Standard Generalized Markup Language|SGML]]ではなくなりました。 # HTML文章は必ず1つだけの[[#example-2--example-10|HTML要素]]を持ちます。lang属性で言語を指定することが推奨されます。 #:<code>&lt;html lang="ja"&gt;</code> は <code>&lt;</code> で始まり、<code>&gt;</code> で終わるので「開始タグ」です。最終行の <code>&lt;/html&gt;</code> は <code>&lt;/</code> で始まり、 <code>&gt;</code> で終わるので「終了タグ」です。<code>&lt;html&gt;</code> という開始タグと <code>&lt;/html&gt;</code> という終了タグで、一つの対をなしており、その間に挟まれたものは内容です。 #<code>&lt;head&gt;</code> と6行目の <code>&lt;/head&gt;</code> も同じ関係にあります。 #: HTML要素には、必ず[[#example-3--example-6|HEAD要素]]と[[#example-7--example-9|BODY要素]]をそれぞれ1つ持ちます。 # <meta charset='utf-8'>は、キャラクターコードをUTF-8に指定しています。既定値がUTF-8なので必須ではませんが、指定しないとレンダリングが崩れる(文字化けする)場合があります。 ;表示方法 上記のhtmlのコード内容を書いたファイルを.html拡張子で保存し、新しめのwebブラウザで閲覧すれば、下記のように表示できるはずです。 ;表示例:<p style="border:#000 1px dashed;padding:1rem;margin:1rem;width:fit-content;background-color:#eee">この文書は非常に簡単な例だ!</p> HTML文章の非常に簡単でなおかつ、重要な点をこの例は示しています。 * HTML文章の1行目はドキュメントタイプ。 * HTML文章のルート要素はHTML要素。 ** HTML要素の子要素は、HEAD要素とBODY要素。 *** HEAD要素の中には、必ず1つのTITLE要素。 この例文をウェブブラウザで見ると次のような事が分かります。 * TITLE要素の内容がタブなどに表示される。 * BODY要素の中の文章が表示される。 {{コラム|HTMLのScaffolding|width=stretch|2= HTMLのScaffoldingは、ウェブサイトの基本構造を簡単に設定する方法です。Scaffoldingを使用することで、HTML文書の基本的な構造を素早く設定することができます。 以下は、HTMLのScaffoldingに必要な要素の例です。 ;DOCTYPE宣言 :DOCTYPE宣言は、HTML文書のバージョンと型を指定する必要があります。以下は、HTML5のDOCTYPE宣言の例です。 <!DOCTYPE html> ;<html>要素 :<html>要素は、HTML文書のルート要素であり、すべての要素を含む必要があります。 <html> <head> <!-- head要素の中身をここに入力 --> </head> <body> <!-- body要素の中身をここに入力 --> </body> </html> ;<head>要素 :<head>要素は、HTML文書のメタデータを含む必要があります。メタデータは、ページのタイトル、キーワード、説明などの情報です。 <head> <meta charset="UTF-8"> <title>ページのタイトル</title> </head> ;<body>要素 :<body>要素は、ウェブページの実際のコンテンツを含む必要があります。 <body> <header> <!-- ページのヘッダーをここに入力 --> </header> <nav> <!-- ページのナビゲーションをここに入力 --> </nav> <main> <!-- ページのメインコンテンツをここに入力 --> </main> <footer> <!-- ページのフッターをここに入力 --> </footer> </body> これらの要素を組み合わせることで、ウェブサイトの基本構造を素早く設定することができます。ただし、Scaffoldingはあくまでも基本的な構造を設定するためのものであり、ページのスタイルや機能については別途設定する必要があります。 }} == 脚註 == <references /> == 下位階層のページ == *[[HTML/BODY]] *[[HTML/Custom Element]] *[[HTML/DOCTYPE]] *[[HTML/DTD]] *[[HTML/Declarative Shadow DOM]] *[[HTML/HEAD]] *[[HTML/HTML]] *[[HTML/HTML5]] *[[HTML/HTML Living Standard]] *[[HTML/HTML Living StandardにおけるHTML5からの変更点]] *[[HTML/SEO(検索エンジン最適化)]] *[[HTML/SLOT]] *[[HTML/Shadow DOM]] *[[HTML/TEMPLATE]] *[[HTML/Web Component]] *[[HTML/Web Components.vs.Framework Components]] *[[HTML/XHTML1.0]] *[[HTML/XHTML1.1]] *[[HTML/idとclass]] *[[HTML/アクセシビリティ]] *[[HTML/ウェブセキュリティ]] *[[HTML/ウェブパフォーマンス]] *[[HTML/オブジェクト]] *[[HTML/セマンティックHTML]] *[[HTML/ソースマップ]] *[[HTML/タグの省略]] *[[HTML/テーブル]] *[[HTML/ハイパーリンク]] *[[HTML/バージョン管理]] *[[HTML/フォーム]] *[[HTML/フレーム]] *[[HTML/ブラウザ]] *[[HTML/マイクロフロントエンド]] *[[HTML/マイクロマークアップ]] *[[HTML/ラベル]] *[[HTML/リキッドデザイン]] *[[HTML/リスト]] *[[HTML/レスポンシブデザイン]] *[[HTML/外部リンク]] *[[HTML/要素一覧]] == 外部リンク == {{Wikipedia}} {{wikiversity|Topic:HTML|HTML}} [[Category:HTML|*]] [[Category:マークアップ言語]] {{NDC|007.64}} n9qhcc86gx5it63o39zx7doqkt5bekw 有機化学 0 2018 301279 292385 2026-07-07T17:56:03Z Lin Xiangru 52825 レイアウトの変更 301279 wikitext text/x-wiki {{Pathnav|化学|frame=1}} {{進捗状況}} {{蔵書一覧}} == はじめに == * [[有機化学/有機化学とは]] == 単元 == === 有機化学を始める前に === * [[/一般化学の概要]](結合など) * [[/酸と塩基]] * [[/命名法]] * [[/異性体]]<!--各異性体ごとに記事分けするかも--> * [[/反応の原理]]<!--熱力学と速度論--> * [[/有機化学の化学結合]]<!--要改稿--> === 炭化水素 === * [[/アルカン]] {{進捗|75%|2005-05-31}} * [[/シクロアルカン]] {{進捗|25%|2005-05-31}} * [[/アルケン]] {{進捗|75%|2005-05-31}} * [[/シクロアルケン]] {{進捗|25%|2005-05-31}} * [[/アルケンの反応]] * [[/アルキン]] {{進捗|75%|2005-05-31}} * [[/アルキンの反応]] ==== 酸素を含む化合物 ==== * [[有機化学/アルコール|アルコール]]{{進捗|25%|2023-05-19}} * [[有機化学/エーテル|エーテル]] {{進捗|25%|2005-05-31}} * [[有機化学/アルデヒド|アルデヒド]] {{進捗|25%|2005-05-31}} * [[有機化学/ケトン|ケトン]] {{進捗|25%|2005-05-31}} * [[有機化学/カルボン酸|カルボン酸]] {{進捗|25%|2005-05-31}} * [[有機化学/エステル|エステル]] {{進捗|00%|2005-05-31}} === 芳香族化合物 === * [[芳香族炭化水素]] * [[フェノール類]] [[カテゴリ:有機化学|*]] 73shd807tsk0mdcpfz3rjl4lk91gtcr CSS 0 2136 301296 267844 2026-07-08T08:52:11Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301296 wikitext text/x-wiki {{Pathnav|メインページ|工学|情報技術|プログラミング}} __NOTOC__ {{蔵書一覧}} CSSは、Webページの見た目を装飾するためのスタイルシート言語です。HTMLで記述されたコンテンツにスタイルを適用することで、Webページをより美しく、見やすく、ユーザーにとって使いやすいものにすることができます。 このCSS教科書では、CSSの基本から応用までを体系的に解説します。初心者から中級者向けの内容となっており、実践的な例や豊富な図解を用いることで、わかりやすく解説していきます。 <div style="border: light-dark(#99f, #222) 1px solid; padding: 1em; margin: 0 230px 0 0; background-color: light-dark(#eef, #222); color: light-dark(#222, #eef); border-radius: 3px;"> == 目次 == * [[/はじめに|はじめに]]{{Hlist|class="hlist hlist-hyphen" | [[/はじめに#CSSとは?|CSSとは?]] | [[/はじめに#CSSの役割|CSSの役割]] | [[/はじめに#外部スタイルシート・埋め込みスタイルとインラインスタイル|外部スタイルシート・埋め込みスタイルとインラインスタイル]] }} * [[/基本|基本]]{{Hlist|class="hlist hlist-hyphen" | [[/基本#セレクタ|セレクタ]] | [[/基本#宣言プロパティ|宣言プロパティ]] | [[/基本#単位|単位]] | [[/基本#重要度|重要度]] | [[/基本#まとめ|まとめ]] }} * [[/レイアウト|レイアウト]]{{Hlist|class="hlist hlist-hyphen" | [[/レイアウト#静的レイアウト|静的レイアウト]] | [[/レイアウト#配置プロパティ|配置プロパティ]] | [[/レイアウト#Flexboxレイアウト|Flexboxレイアウト]] | [[/レイアウト#グリッドレイアウト|グリッドレイアウト]] | [[/レイアウト#まとめ|まとめ]] }} * [[/応用|応用]]{{Hlist|class="hlist hlist-hyphen" | [[/応用#アニメーション|アニメーション]] | [[/応用#メディアクエリ|メディアクエリ]] | [[/応用#ダークモード|ダークモード]] | [[/応用#CSS関数|CSS関数]] | [[/応用#CSSカスタムプロパティ|CSSカスタムプロパティ]] | [[/応用#プリプロセッサ|プリプロセッサ]] | [[/応用#まとめ|まとめ]] }} * [[/最新技術|最新技術]]{{Hlist|class="hlist hlist-hyphen" | [[/最新技術#CSS Modules|CSS Modules]] | [[/最新技術#CSS Grid Layout|CSS Grid Layout]] | [[/最新技術#CSS Custom Properties|CSS Custom Properties]] | [[/最新技術#まとめ|まとめ]] }} * [[/プロパティ一覧|プロパティ一覧]] * [[/参考資料|参考資料]]{{Hlist|class="hlist hlist-hyphen" | [[/参考資料#ウェブサイト|ウェブサイト]] | [[/参考資料#チュートリアル|チュートリアル]] | [[/参考資料#まとめ|まとめ]] }} <!-- # '''はじめに''' #* 1.1 CSSとは? #* 1.2 CSSの役割 #* 1.3 CSSの書き方 #* 1.4 CSSの読み込み方 # '''CSSの基本''' #* 2.1 セレクタ #** 2.1.1 要素セレクタ #** 2.1.2 属性セレクタ #** 2.1.3 クラスセレクタ #** 2.1.4 IDセレクタ #** 2.1.5 疑似クラスセレクタ #** 2.1.6 擬似要素セレクタ #** 2.1.7 子孫セレクタ #** 2.1.8 隣接兄弟セレクタ #** 2.1.9 属性セレクタの高度な使い方 #* 2.2 宣言プロパティ #** 2.2.1 色 #** 2.2.2 フォント #** 2.2.3 余白とボーダー #** 2.2.4 背景 #** 2.2.5 マージンとパディング #** 2.2.6 サイズと配置 #** 2.2.7 テキスト装飾 #** 2.2.8 リスト #** 2.2.9 表 #* 2.3 単位 #** 2.3.1 ピクセル #** 2.3.2 パーセント #** 2.3.3 em #** 2.3.4 rem #** 2.3.5 vwとvh #* 2.4 重要度 # '''CSSレイアウト''' #* 3.1 静的レイアウト #** 3.1.1 ブロックレベル要素 #** 3.1.2 インラインレベル要素 #** 3.1.3 フロート #* 3.2 配置プロパティ #** 3.2.1 display #** 3.2.2 position #** 3.2.3 top, left, bottom, right #** 3.2.4 z-index #* 3.3 Flexboxレイアウト #** 3.3.1 Flexboxの基本 #** 3.3.2 Flexboxのアイテム #** 3.3.3 Flexboxのコンテナ #** 3.3.4 Flexboxのレイアウトプロパティ #* 3.4 グリッドレイアウト #** 3.4.1 グリッドレイアウトの基本 #** 3.4.2 グリッドトラック #** 3.4.3 グリッドアイテム #** 3.4.4 グリッドレイアウトのレイアウトプロパティ # '''CSSの応用''' #* 4.1 アニメーション #** 4.1.1 アニメーションの基本 #** 4.1.2 アニメーションのプロパティ #** 4.1.3 アニメーションのタイミング #* 4.2 メディアクエリ #** 4.2.1 メディアクエリの種類 #** 4.2.2 メディアクエリの使い方 #** 4.2.3 レスポンシブWebデザイン #* 4.3 変数 #** 4.3.1 変数の基本 #** 4.3.2 変数の種類 #** 4.3.3 変数の計算 #* 4.4 プリプロセッサ #** 4.4.1 Sass #** 4.4.2 LESS #** 4.4.3 Stylus # '''CSSの最新技術''' #* 5.1 CSS Modules #* 5.2 CSS Grid Layout #* 5.3 CSS Custom Properties #* 5.4 CSS Variables # '''CSSの参考資料''' --></div> <br style="clear:both"> == 附録 == === CanIUse.COM: ブラウザ対応情報を確認する方法 === Web開発において、特定の機能がブラウザごとにどの程度実装されているか確認することは非常に重要です。 そのために、 https://caniuse.com/ というWebサイトを活用することができます。 たとえば、flexboxの実装状況を知りたい場合は、「flexbox」と検索します。すると、https://caniuse.com/?search=flexbox が返されます。 この結果から、現在廃止されたIEは最後のバージョンまでflexboxをサポートしていなかったこと、その他のモダンなブラウザはすべてサポートしていることがわかります。 この検索機能は、CSSだけでなく、HTML、JavaScript、そしてWeb APIの[https://caniuse.com/?search=fetch fetch]など、さまざまな技術に対応しています。 == 下位階層のページ == *[[CSS/@charset]] *[[CSS/@color-profile]] *[[CSS/@container]] *[[CSS/@counter-style]] *[[CSS/@document (非標準・非推奨)]] *[[CSS/@font-face]] *[[CSS/@font-feature-values]] *[[CSS/@font-palette-values]] *[[CSS/@import]] *[[CSS/@keyframes]] *[[CSS/@layer]] *[[CSS/@media]] *[[CSS/@namespace]] *[[CSS/@page]] *[[CSS/@position-try (実験的)]] *[[CSS/@property]] *[[CSS/@scope]] *[[CSS/@starting-style]] *[[CSS/@supports]] *[[CSS/@view-transition]] *[[CSS/At-rules]] *[[CSS/CSSOM]] *[[CSS/CSS変数]] *[[CSS/CSS関数]] *[[CSS/Container Query Units]] *[[CSS/all]] *[[CSS/animation]] *[[CSS/background]] *[[CSS/border]] *[[CSS/cursor]] *[[CSS/font]] *[[CSS/position]] *[[CSS/touch-action]] *[[CSS/はじめに]] *[[CSS/アニメーション関連]] *[[CSS/カーソル]] *[[CSS/セレクタ]] *[[CSS/ソースマップ]] *[[CSS/テキストとフォント関連]] *[[CSS/フォント]] *[[CSS/ブラウザ]] *[[CSS/プロパティの機能別分類]] *[[CSS/プロパティ一覧]] *[[CSS/プロパティ値の型]] *[[CSS/レイアウト]] *[[CSS/レイアウト関連]] *[[CSS/一般的なプロパティとその値]] *[[CSS/単位]] *[[CSS/参考資料]] *[[CSS/基本]] *[[CSS/変形関連]] *[[CSS/応用]] *[[CSS/最新技術]] *[[CSS/背景]] *[[CSS/背景とボーダー関連]] *[[CSS/色と透明度関連]] *[[CSS/記述]] == 外部リンク == {{Wikipedia|Cascading Style Sheets}} {{NDC|007.64}} [[Category:CSS|*]] [[Category:スタイルシート言語]] [[Category:World_Wide_Web]] [[Category:ウェブデザイン]] ki5tuf04ng28oocr7s1sbcw00zsz72v C++ 0 2733 301295 267845 2026-07-08T08:46:35Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301295 wikitext text/x-wiki {{半保護S}} * [[情報技術]] > [[プログラミング]] > C++ * [[大学の学習]] > C++ 本書は、C++プログラミング言語の初心者から中級・上級者までを対象にした、段階的な学習ガイドです。C++は強力で柔軟な言語であり、システムプログラミングからゲーム開発、科学技術計算まで幅広い分野で活用されています。しかし、その豊富な機能と複雑な構文から、学び始める際には戸惑うことも少なくありません。 本書の前半では、初心者がC++の基礎を理解し、実際にコードを書く力を身につけることを目指しています。基本的な文法やデータ型、制御構造、関数といった基礎的なトピックを、具体的な例とともにわかりやすく解説します。また、オブジェクト指向プログラミングや標準ライブラリの使い方についても丁寧に説明し、実践的なスキルを養います。 後半では、中級・上級者向けに、C++特有の高度な概念や最新の技術について詳しく解説します。クラスの継承や関数オーバーロード、スマートポインタ、ラムダ式、テンプレート、例外処理など、より複雑なトピックを扱い、実践的なアプリケーションの開発に必要な知識を提供します。 さらに、附録には、C++の歴史や開発環境の整備、他の言語からの移行ガイド、機能テストマクロ、参考文献など、実務に役立つ情報を豊富に盛り込みました。特に、C++03からC++23への移行に関する手引きは、最新の標準に対応したプログラムを書く上で非常に有用です。 C++は、しっかりとした基礎を築き、継続的に学び続けることで、その真価を発揮する言語です。本書が、皆様のC++学習の道しるべとなり、実際のプロジェクトに役立つ知識とスキルを提供できることを願っております。 == 初心者むけの内容 == ; 目次 * [[/構文の基礎|構文の基礎]] * [[/データ型と変数|データ型と変数]] ** [[/データ型と変数#基本データ型|基本データ型]] -- [[/データ型と変数#整数型|整数型]]・[[/データ型と変数#浮動小数点数型|浮動小数点数型]]・[[/データ型と変数#文字型|文字型]]・[[/データ型と変数#ブール型|ブール型]] ** [[/データ型と変数#複合データ型|複合データ型]] -- [[/データ型と変数#配列|配列]]・[[/データ型と変数#構造体 (struct)|構造体 (struct)]]・[[/データ型と変数#共用体 (union)|共用体 (union)]]・[[/データ型と変数#列挙型 (enum)|列挙型 (enum)]]・[[/データ型と変数#タプル (tuple)|タプル (tuple)]]・[[/データ型と変数#スマートポインタ (smart pointer)|スマートポインタ (smart pointer)]] * [[/式と演算子|式と演算子]] * [[/制御構造|制御構造]] * [[/関数|関数]] * [[/スコープ|スコープ]] * [[/配列とベクトル|配列とベクトル]] * [[/ポインターと参照|ポインターと参照]] * [[/文字列とstd::string|文字列とstd::string]] * [[/構造体|構造体]] * [[/共用体|共用体]] * [[/列挙型と列挙クラス|列挙型と列挙クラス]] * [[/オブジェクト指向プログラミング|オブジェクト指向プログラミング]] == リファレンス == * [[/キーワード|C++のキーワード一覧]] * [[/指定子|指定子]] * [[/標準ライブラリ|標準ライブラリ]] * [[/Boost|Boost]] * [[/パッケージマネージャ|パッケージマネージャ]] == 中級〜上級者むけの内容 == ; 目次 * [[/C++特有の概念|C++特有の概念]] * [[/クラスの定義や継承|クラスの定義や継承]] * [[/アクセス指定子|アクセス指定子]] * [[/特殊メンバー関数|特殊メンバー関数]] * [[/純粋仮想関数|純粋仮想関数]] * [[/override|override]] <sup>(C++11:core)</sup> ⇒ [[/キーワード#override]] * [[/final|final]] <sup>(C++11:core)</sup> ⇒ [[/キーワード#final]] * [[/RAII|RAII(Resource Acquisition Is Initialization)]] * [[/テンプレート|テンプレートの基礎]] * [[/関数オーバーロード|関数オーバーロード]] * [[/演算子オーバーロード|演算子オーバーロード]] * [[/名前修飾|名前修飾]] * [[/コンパイル時評価|コンパイル時評価]] * [[/インライン関数|インライン関数]] * [[/constexpr|constexpr]]<sup>(C++11:core)</sup> ⇒ [[/キーワード#constexpr]] * [[/consteval|consteval]]<sup>(C++20:core)</sup> ⇒ [[/キーワード#consteval]] * [[/アトリビュート|アトリビュート]] * [[/アライメント|アライメント]] * [[/不変性|不変性]] * [[/ムーブセマンティクス|ムーブセマンティクス]] * [[/スマートポインタ|スマートポインタ]] * [[/型推論|型推論]] * [[/RTTI|RTTI: Run-Time Type Information]] typeid * [[/コンテナ|コンテナ]] * [[/範囲ベースfor|範囲ベースfor]] * [[/トレイト|トレイト]] * [[/コンセプト|コンセプト]] * [[/decltype|decltype]] ⇒ [[/キーワード#decltype]] * [[/using|using]] ⇒ [[/キーワード#using]] * [[/ラムダ式|ラムダ式]] * [[/ジェネリックラムダ|ジェネリックラムダ]] * [[/ムーブキャプチャ|ムーブキャプチャ]] * [[/フォールディング式|フォールディング式]] * [[/nullptr|nullptr]] ⇒ [[/キーワード#nullptr]] * [[/Uniform initialization|Uniform initialization]] <sup>(C++17:core)</sup> * [[/構造化束縛宣言|構造化束縛宣言]] <sup>(C++17:core)</sup> * [[/テンプレートメタプログラミング|テンプレートメタプログラミング]] * [[/SFINAE|SFINAE: Substitution Failure Is Not An Error]] -- テンプレートの置換中に失敗が発生した場合に、エラーを生成せずに代替処理を行う。 * [[/例外処理|例外処理]] * [[/名前空間|名前空間]] * [[/三方比較演算子|三方比較演算子]] <code><=></code><sup>(C++20:core)</sup> * [[/コルーチン|コルーチン]] <code><=></code><sup>(C++20:core)</sup> * [[/イテレータ|イテレータ]] * [[/遅延評価メソッドチェイン|遅延評価メソッドチェイン]] * [[/標準テンプレートライブラリ|標準テンプレートライブラリ(STL; Standard Template Library)]] == 附録 == * [[/C++の変遷|C++の変遷]] * [[/C++開発環境の整備|C++開発環境の整備]] * [[/CからC++への移行|CからC++への移行]] * [[/JavaやC Sharpなどの中間コード型言語からC++への移行|JavaやC Sharpなどの中間コード型言語からC++への移行]] * [[/C++03(JIS C++)からC++23への移行の手引|C++03(JIS C++)からC++23への移行の手引]] * [[/型安全|型安全]] * [[/メモリ安全|メモリ安全]] * [[/NULL安全|NULL安全]] * [[/機能テストマクロ|機能テストマクロ]] * [[/ユースケース集|ユースケース集]] * [[/コードギャラリー|コードギャラリー]] == 参考文献 == * {{cite book | url=https://open-std.org/jtc1/sc22/wg21/docs/standards | title= C++ - Standards | publisher=ISO/IEC | date = 2024-01-17}} * {{cite book | url=https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/n4950.pdf | title= Working Draft, Standard for Programming Language C++ | publisher=ISO/IEC | date = 2023-05-10 }} == 関連書籍 == * [[More C++ Idioms]] -- C++11以前の内容なので、現在はコア言語および標準ライブラリがよりロバストなイディオムを提供しています。 == 外部リンク == {{Wikipedia|C++}} {{Wikiversity|Topic:C++|C++}} <hr style="clear: both"> == 脚註 == <references /> == 下位階層のページ == *[[C++/Boost]] *[[C++/C++03(JIS C++)からC++23への移行の手引]] *[[C++/C++の変遷]] *[[C++/C++特有の概念]] *[[C++/C++開発環境の整備]] *[[C++/CからC++への移行]] *[[C++/JavaやC Sharpなどの中間コード型言語からC++への移行]] *[[C++/NULL安全]] *[[C++/RAII]] *[[C++/RTTI]] *[[C++/SFINAE]] *[[C++/Uniform initialization]] *[[C++/consteval]] *[[C++/constexpr]] *[[C++/decltype]] *[[C++/final]] *[[C++/nullptr]] *[[C++/override]] *[[C++/using]] *[[C++/はじめに]] *[[C++/アクセス指定子]] *[[C++/アトリビュート]] *[[C++/アライメント]] *[[C++/イテレータ]] *[[C++/インライン関数]] *[[C++/オブジェクトの配列とポインタ及び参照]] *[[C++/オブジェクト指向プログラミング]] *[[C++/キャスト]] *[[C++/キーワード]] *[[C++/クイックツアー]] *[[C++/クラスの定義や継承]] *[[C++/コルーチン]] *[[C++/コンセプト]] *[[C++/コンテナ]] *[[C++/コンパイル時評価]] *[[C++/コードギャラリー]] *[[C++/ジェネリックラムダ]] *[[C++/スコープ]] *[[C++/スマートポインタ]] *[[C++/テンプレート]] *[[C++/テンプレートメタプログラミング]] *[[C++/データ型と変数]] *[[C++/トレイト]] *[[C++/パッケージマネージャ]] *[[C++/フォールディング式]] *[[C++/ポインターと参照]] *[[C++/ムーブキャプチャ]] *[[C++/ムーブセマンティクス]] *[[C++/メモリ安全]] *[[C++/ユースケース集]] *[[C++/ラムダ式]] *[[C++/三方比較演算子]] *[[C++/不変性]] *[[C++/互換性]] *[[C++/例外処理]] *[[C++/共用体]] *[[C++/列挙型と列挙クラス]] *[[C++/初心者むけ/クラス]] *[[C++/制御構造]] *[[C++/名前修飾]] *[[C++/名前空間]] *[[C++/型安全]] *[[C++/型推論]] *[[C++/式と演算子]] *[[C++/指定子]] *[[C++/改廃された技術]] *[[C++/文字列とstd::string]] *[[C++/文法の基礎]] *[[C++/構文の基礎]] *[[C++/構造体]] *[[C++/構造体・共用体]] *[[C++/構造化束縛宣言]] *[[C++/標準テンプレートライブラリ]] *[[C++/標準ライブラリ]] *[[C++/標準ライブラリ/algorithm]] *[[C++/標準ライブラリ/any]] *[[C++/標準ライブラリ/array]] *[[C++/標準ライブラリ/atomic]] *[[C++/標準ライブラリ/barrier]] *[[C++/標準ライブラリ/bit]] *[[C++/標準ライブラリ/bitset]] *[[C++/標準ライブラリ/cassert]] *[[C++/標準ライブラリ/cerrno]] *[[C++/標準ライブラリ/cfenv]] *[[C++/標準ライブラリ/cfloat]] *[[C++/標準ライブラリ/charconv]] *[[C++/標準ライブラリ/chrono]] *[[C++/標準ライブラリ/climits]] *[[C++/標準ライブラリ/cmath]] *[[C++/標準ライブラリ/codecvt]] *[[C++/標準ライブラリ/compare]] *[[C++/標準ライブラリ/complex]] *[[C++/標準ライブラリ/concepts]] *[[C++/標準ライブラリ/condition variable]] *[[C++/標準ライブラリ/coroutine]] *[[C++/標準ライブラリ/csetjmp]] *[[C++/標準ライブラリ/csignal]] *[[C++/標準ライブラリ/cstdarg]] *[[C++/標準ライブラリ/cstddef]] *[[C++/標準ライブラリ/cstdint]] *[[C++/標準ライブラリ/cstdio]] *[[C++/標準ライブラリ/cstdlib]] *[[C++/標準ライブラリ/ctime]] *[[C++/標準ライブラリ/deque]] *[[C++/標準ライブラリ/exception]] *[[C++/標準ライブラリ/execution]] *[[C++/標準ライブラリ/expected]] *[[C++/標準ライブラリ/format]] *[[C++/標準ライブラリ/forward list]] *[[C++/標準ライブラリ/fstream]] *[[C++/標準ライブラリ/functional]] *[[C++/標準ライブラリ/generator]] *[[C++/標準ライブラリ/initializer list]] *[[C++/標準ライブラリ/iomanip]] *[[C++/標準ライブラリ/ios]] *[[C++/標準ライブラリ/iosfwd]] *[[C++/標準ライブラリ/iostream]] *[[C++/標準ライブラリ/istream]] *[[C++/標準ライブラリ/iterator]] *[[C++/標準ライブラリ/limits]] *[[C++/標準ライブラリ/list]] *[[C++/標準ライブラリ/map]] *[[C++/標準ライブラリ/mdspan]] *[[C++/標準ライブラリ/memory]] *[[C++/標準ライブラリ/memory resource]] *[[C++/標準ライブラリ/new]] *[[C++/標準ライブラリ/numbers]] *[[C++/標準ライブラリ/numeric]] *[[C++/標準ライブラリ/optional]] *[[C++/標準ライブラリ/ostream]] *[[C++/標準ライブラリ/print]] *[[C++/標準ライブラリ/queue]] *[[C++/標準ライブラリ/ranges]] *[[C++/標準ライブラリ/ratio]] *[[C++/標準ライブラリ/regex]] *[[C++/標準ライブラリ/scoped allocator]] *[[C++/標準ライブラリ/set]] *[[C++/標準ライブラリ/source location]] *[[C++/標準ライブラリ/span]] *[[C++/標準ライブラリ/stack]] *[[C++/標準ライブラリ/stacktrace]] *[[C++/標準ライブラリ/stdexcept]] *[[C++/標準ライブラリ/stdfloat]] *[[C++/標準ライブラリ/stop token]] *[[C++/標準ライブラリ/streambuf]] *[[C++/標準ライブラリ/string]] *[[C++/標準ライブラリ/string view]] *[[C++/標準ライブラリ/system error]] *[[C++/標準ライブラリ/tuple]] *[[C++/標準ライブラリ/type traits]] *[[C++/標準ライブラリ/typeindex]] *[[C++/標準ライブラリ/typeinfo]] *[[C++/標準ライブラリ/unordered map]] *[[C++/標準ライブラリ/unordered set]] *[[C++/標準ライブラリ/utility]] *[[C++/標準ライブラリ/variant]] *[[C++/標準ライブラリ/vector]] *[[C++/標準ライブラリ/version]] *[[C++/標準ライブラリ/アルゴリズムライブラリ]] *[[C++/標準ライブラリ/イテレータライブラリ]] *[[C++/標準ライブラリ/コンセプトライブラリ]] *[[C++/標準ライブラリ/コンテナライブラリ]] *[[C++/標準ライブラリ/メタプログラミングライブラリ]] *[[C++/標準ライブラリ/メモリ管理ライブラリ]] *[[C++/標準ライブラリ/レンジライブラリ]] *[[C++/標準ライブラリ/ローカライゼーションライブラリ]] *[[C++/標準ライブラリ/一般ユーティリティライブラリ]] *[[C++/標準ライブラリ/並行性サポートライブラリ]] *[[C++/標準ライブラリ/入出力ライブラリ]] *[[C++/標準ライブラリ/数値ライブラリ]] *[[C++/標準ライブラリ/文字列ライブラリ]] *[[C++/標準ライブラリ/時間ライブラリ]] *[[C++/標準ライブラリ/正規表現ライブラリ]] *[[C++/標準ライブラリ/言語サポートライブラリ]] *[[C++/標準ライブラリ/診断ライブラリ]] *[[C++/機能テストマクロ] *[[C++/演算子と式]] *[[C++/演算子オーバーロード]] *[[C++/特殊メンバー関数]] *[[C++/範囲ベースfor]] *[[C++/純粋仮想関数]] *[[C++/記法]] *[[C++/遅延評価メソッドチェイン]] *[[C++/配列とベクトル]] *[[C++/関数]] *[[C++/関数オーバーロード]] {{DEFAULTSORT:C PLUSPLUS}} [[Category:C++|*]] [[Category:プログラミング言語]] {{NDC|007.64}} tf27ft1zmu0evfqklf4b3lekf4jinz0 ゲーム 0 3070 301290 301176 2026-07-08T07:30:21Z AkiR27User 90873 /* 運動会 */ [[運動会]]追加 301290 wikitext text/x-wiki {{Pathnav|メインページ|frame=1}} {{NDC|384.8|けえむ}} {| style="float:right" |- |{{Wikipedia|ゲーム|ゲーム}} |- |{{Wikinews|ゲーム|Category:ゲーム|カテゴリ}} |- |{{蔵書一覧}} |- |{{進捗状況}} |}  ==テーブルゲーム== {{main|w:テーブルゲーム}} *カードゲーム ** [[トランプ]] ** [[花札]]{{進捗|00%|2023-09-26}} ** [[めんこ]] ** [[かるた]] ** [[百人一首]]{{進捗|50%|2023-09-26}} ** [[UNO]] **([[トランプ/クレイジーエイト|クレイジーエイト]]) ** [[トレーディングカードゲーム]] *** [[デュエルマスターズ]] *** [[ポケモンカードゲーム]] * タイルゲーム ** [[麻雀]]{{進捗|75%|2023-09-26}} ** [[ドミノ]] ** [[黒ひげ危機一発]] ** [[ジェンガ]] * ボードゲーム ** [[囲碁]]{{進捗|50%|2023-09-26}} ** [[チェス]]{{進捗|00%|2023-09-26}} ** [[将棋]]([[将棋類]]){{進捗|100%|2023-09-26}} ** [[オセロ]]{{進捗|100%|2023-09-26}} ** [[モノポリー]]{{進捗|50%|2023-09-26}} ** [[人生ゲーム]] ** [[バックギャモン]]{{進捗|00%|2023-09-26}} ** [[パズル]] ** [[クロスワードパズル]] ** [[数独]]</sub>{{進捗|00%|2023-09-26}} ** [[お絵かきロジック]] ** [[ルービックキューブ]]{{進捗|25%|2023-09-26}} == ロールプレイングゲーム== {{Main|w:RPG}} * [[テーブルトークRPG]] {{進捗|75%|2023-09-26}} * [[コンピュータRPG]]<sub>([[w:コンピューターRPG|wp]])</sub> == コンピュータゲーム == {{main|w:コンピューターゲーム}} * [[Minecraft]]{{進捗|25%|2021-07-26}} * [[マリオカート]] * [[ゲーム制作]]{{進捗|00%|2024-10-23}} ** [[ゲームプログラミング]]{{進捗|50%|2024-10-23}} ** [[ゲームデザイン]]{{進捗|00%|2023-09-26}} * [[Wii]] == 外遊び == * [[鬼ごっこ]]{{進捗|75%|2023-09-26}} * [[かくれんぼ]]{{進捗|100%|2023-09-26}} * [[けいどろ]]([[どろじゅん]]) * [[缶蹴り]] * [[かんぽっくり]]{{進捗|100%|2023-09-26}} * [[だるまさんがころんだ]] * [[紙飛行機]] * [[竹とんぼ]] == 室内遊び == * [[ハンカチ落とし]]{{進捗|100%|2023-09-26}} * [[フルーツバスケット]] * [[椅子取りゲーム]] * [[だるま落とし]] * [[けん玉]] * [[お手玉]] * [[ベーゴマ]] * [[こま回し]] * [[おはじき]] * [[あやとり]] * [[折り紙]] * [[ヨーヨー]] * [[ビンゴゲーム]] * [[伝言ゲーム]] * [[ジェスチャーゲーム]] * [[連想ゲーム]] * [[マジカルバナナ]] * [[山手線ゲーム]] * [[ワードウルフ]] == 運動会 == {{Main|運動会}} 種目 *[[徒競走]] *[[かけっこ]] *[[リレー]] *[[二人三脚(運動会)|二人三脚]] *[[綱引き]] *[[玉入れ]] *[[借り物競争]] *[[ムカデ競争]] *[[大縄跳び]] *[[応援合戦]] *[[パン食い競走]] *[[騎馬戦]] *[[カテゴリ:運動会]] [[Category:ゲーム|*]] [[Category:趣味|けえむ]] [[Category:情報技術|けえむ]] [[Category:書庫|けえむ]] [[Category:運動会|*]] ccev68qe2jd3oeyynpjy2b6pcc47iic 301292 301290 2026-07-08T07:51:24Z AkiR27User 90873 /* 運動会 */[[団体演技]] 追加 301292 wikitext text/x-wiki {{Pathnav|メインページ|frame=1}} {{NDC|384.8|けえむ}} {| style="float:right" |- |{{Wikipedia|ゲーム|ゲーム}} |- |{{Wikinews|ゲーム|Category:ゲーム|カテゴリ}} |- |{{蔵書一覧}} |- |{{進捗状況}} |}  ==テーブルゲーム== {{main|w:テーブルゲーム}} *カードゲーム ** [[トランプ]] ** [[花札]]{{進捗|00%|2023-09-26}} ** [[めんこ]] ** [[かるた]] ** [[百人一首]]{{進捗|50%|2023-09-26}} ** [[UNO]] **([[トランプ/クレイジーエイト|クレイジーエイト]]) ** [[トレーディングカードゲーム]] *** [[デュエルマスターズ]] *** [[ポケモンカードゲーム]] * タイルゲーム ** [[麻雀]]{{進捗|75%|2023-09-26}} ** [[ドミノ]] ** [[黒ひげ危機一発]] ** [[ジェンガ]] * ボードゲーム ** [[囲碁]]{{進捗|50%|2023-09-26}} ** [[チェス]]{{進捗|00%|2023-09-26}} ** [[将棋]]([[将棋類]]){{進捗|100%|2023-09-26}} ** [[オセロ]]{{進捗|100%|2023-09-26}} ** [[モノポリー]]{{進捗|50%|2023-09-26}} ** [[人生ゲーム]] ** [[バックギャモン]]{{進捗|00%|2023-09-26}} ** [[パズル]] ** [[クロスワードパズル]] ** [[数独]]</sub>{{進捗|00%|2023-09-26}} ** [[お絵かきロジック]] ** [[ルービックキューブ]]{{進捗|25%|2023-09-26}} == ロールプレイングゲーム== {{Main|w:RPG}} * [[テーブルトークRPG]] {{進捗|75%|2023-09-26}} * [[コンピュータRPG]]<sub>([[w:コンピューターRPG|wp]])</sub> == コンピュータゲーム == {{main|w:コンピューターゲーム}} * [[Minecraft]]{{進捗|25%|2021-07-26}} * [[マリオカート]] * [[ゲーム制作]]{{進捗|00%|2024-10-23}} ** [[ゲームプログラミング]]{{進捗|50%|2024-10-23}} ** [[ゲームデザイン]]{{進捗|00%|2023-09-26}} * [[Wii]] == 外遊び == * [[鬼ごっこ]]{{進捗|75%|2023-09-26}} * [[かくれんぼ]]{{進捗|100%|2023-09-26}} * [[けいどろ]]([[どろじゅん]]) * [[缶蹴り]] * [[かんぽっくり]]{{進捗|100%|2023-09-26}} * [[だるまさんがころんだ]] * [[紙飛行機]] * [[竹とんぼ]] == 室内遊び == * [[ハンカチ落とし]]{{進捗|100%|2023-09-26}} * [[フルーツバスケット]] * [[椅子取りゲーム]] * [[だるま落とし]] * [[けん玉]] * [[お手玉]] * [[ベーゴマ]] * [[こま回し]] * [[おはじき]] * [[あやとり]] * [[折り紙]] * [[ヨーヨー]] * [[ビンゴゲーム]] * [[伝言ゲーム]] * [[ジェスチャーゲーム]] * [[連想ゲーム]] * [[マジカルバナナ]] * [[山手線ゲーム]] * [[ワードウルフ]] == 運動会 == {{Main|運動会}} 種目 *[[徒競走]] *[[かけっこ]] *[[リレー]] *[[二人三脚(運動会)|二人三脚]] *[[綱引き]] *[[玉入れ]] *[[借り物競争]] *[[ムカデ競争]] *[[大縄跳び]] *[[応援合戦]] *[[パン食い競走]] *[[騎馬戦]] *[[団体演技]] [[Category:ゲーム|*]] [[Category:趣味|けえむ]] [[Category:情報技術|けえむ]] [[Category:書庫|けえむ]] [[Category:運動会|*]] 1s2xjxrkk02fkw9luqtdo0zrga8hsr7 高校化学 化学反応とエネルギー 0 7281 301321 295094 2026-07-08T11:56:58Z Sakamoto-takaich 91918 /* エンタルピー */ 301321 wikitext text/x-wiki {{pathnav|高等学校の学習|高等学校理科|高等学校 化学|pagename=化学反応とエネルギー|frame=1|small=1}} == 反応熱 == 化学反応や状態変化に伴って熱エネルギーの出入りが起こる時の熱のことを'''反応熱'''という。発熱、吸熱のいずれの場合も、反応熱と言う。反応熱には燃焼熱、溶解熱、中和熱、生成熱、融解熱、蒸発熱、昇華熱などがある。熱量の単位にはジュールを使い、熱量の記号は J または kJ で表す。反応熱の表記は、1 molあたりの熱量(単位は kJ/mol )で表すことが多い。 == エンタルピー == [[File:ヘスの法則svg.svg|thumb|350px|ヘスの法則の説明図。水(H2O)の場合。エネルギーのところはエンタルピーと読み替える。]] エンタルピー <math>H</math> とは、内部エネルギー <math>U</math> に、圧力 <math>p</math> と体積 <math>V</math> を使って、 :<math>H = U + pV</math> で定義される。 熱力学第一法則によれば、内部エネルギーの変化 <math>\Delta U</math> は、<math>Q</math> を系の得る熱量として、 :<math>\Delta U = Q - p \Delta V</math> で与えられる。 通常の化学実験では、圧力が一定の環境で行われるため、<math>V_1</math> を変化前の体積、<math>V_2</math> を変化後の体積とすると、 :<math>\Delta(pV) =pV_2-pV_1=p(V_2-V_1) = p \Delta V</math> となる。従って、等圧過程でのエンタルピー変化は、 <math>\begin{align}\Delta H &= \Delta U + \Delta (pV) \\&= \Delta U + p\Delta V \\&= Q\end{align}</math> となるから、系の得る熱量に等しい。 要するに、エンタルピーは"物質が持つエネルギー"のようなものであると考えることができる。この量の増減が熱として放出・吸収される。しかし、これを単に内部エネルギーとすることはできない。なぜなら、一定圧力の条件では、内部エネルギーの一部は体積変化による仕事に使われるからである。したがって、内部エネルギー変化は熱量とは一致しない。そこで、外界にする仕事を考慮に入れて、熱量と一致するようにしたものがエンタルピーである。圧力一定の条件では、体積変化に伴う仕事は <math>p \Delta V</math> であるから <math>\Delta H = \Delta U + p\Delta V </math> が系の得る熱量に等しくなる。従って内部エネルギーに <math>pV</math> を追加したものがエンタルピーである。高校化学では、「反応で出入りする熱を考えるための量」と理解すれば十分と考えられ着目するポイントは次のとおりで良い。 エンタルピーの変化量(\(\Delta H\))で熱の出入りを表す。 * '''発熱反応(\(\Delta H < 0\))''' ** 反応後にエンタルピーが'''減少'''。 ** 減った分のエネルギーが熱として外に'''放出'''される(周りが温かくなる)。 * '''吸熱反応(\(\Delta H > 0\))''' ** 反応後にエンタルピーが'''増加'''。 ** 増やすために外から熱を'''吸収'''する(周りが冷たくなる)。 * '''また対するエントロピーとは''' ** '''エントロピー'''と'''エンタルピー'''は、どちらも熱力学や化学で登場する非常に重要な言葉だが、その意味はまったく異なる。'''増やすために外から熱を吸収する(周りが冷たくなる)。''' ** 一言でいうと、'''「エンタルピー = 熱(エネルギー)の量」'''、'''「エントロピー = 散らかり具合」'''である ---- == 熱化学方程式 == 化学反応式の右辺に反応熱を記し、両辺を等号で結んだ式を'''熱化学方程式'''または'''熱化学反応式'''という。 たとえば、炭素(黒鉛)を燃焼させた場合の熱化学方程式は次のようになる。 :C(黒鉛)+O<sub>2</sub>(気) → CO<sub>2</sub>(気)  ΔH = -394 kJ/mol 水素を燃焼させた場合、次のようになる。 :H2(気)+ <math>\frac{1}{2}</math> O<sub>2</sub> → H<sub>2</sub>O(液)  ΔH = -286 kJ/mol 反応熱は、上の式のように右辺に表す。 * エンタルピー変化は、発熱反応のときは負で、吸熱反応のときは正である。 * 物質のもつエネルギーはその状態によって異なるので、原則として化学式に物質の状態を気体のときは(気)または(g)を付記、液体のときは(液)または(l)を付記、固体のときは(固)または(s)を付記、水溶液や大量の水は aq のように付記する。また、炭素のように同素体がいくつもある物質の場合は、「黒鉛」や「ダイヤモンド」などの語句を付記するなどして表す。つまり、「C(黒鉛)」のように付記する。 == 反応熱の種類 == 反応熱は下記のように種類がいろいろあるが、特に断りの無い限りは、いずれも 1molあたりの熱量である。 ;燃焼熱 :1 molの物質が完全燃焼するときの反応熱。 :たとえば水素の燃焼熱は、286 kJである。 ::H<sub>2</sub>(気)+ <math>\frac{1}{2}</math> O<sub>2</sub> → H<sub>2</sub>O(液)  ΔH = -286 kJ/mol ;溶解熱 :1 molの物質が多量の溶媒に溶解するときの反応熱。 :たとえば水酸化ナトリウムNaOHが水に溶ける場合、水酸化ナトリウムの溶解熱は44.5 kJである。 ::NaOH(固)+ aq → NaOH aq  ΔH = -44.5 kJ/mol ;中和熱 :酸と塩基の中和反応によって、1 molの水が生成するときの反応熱。 :たとえば、塩酸と水酸化ナトリウムの中和熱は、56.5 kJである。 ::HCl aq+ NaOH aq → NaCl aq + H<sub>2</sub>O(液)  ΔH = -56.5 kJ/mol :水素イオンと水酸化物イオンの中和熱は、56.5 kJである。 ::H<sup>+</sup>+OH<sup>-</sup> → H<sub>2</sub>O(液)  ΔH = -56.5 kJ/mol ;生成熱 :1 molの化合物がその成分元素の単体から生成するときの反応熱。 ;融解熱 :1 molの固体が融解して液体になるときに吸収する熱量。 ;蒸発熱 :1 molの液体が蒸発して気体になるときに吸収する熱量。 :たとえば水H<sub>2</sub>Oの蒸発熱は44.0kJである。 ::H<sub>2</sub>O(液) → H<sub>2</sub>O (気)   ΔH = -44.0 kJ/mol ::H<sub>2</sub>O(液)+ 44.0kJ → H<sub>2</sub>O (気) ;昇華熱 :1 molの固体が昇華して気体になるときに吸収する熱量。 == 反応熱の測定 == 反応熱を測定するには、外部からの熱の出入りのない断熱した容器が必要である。反応熱などの熱量を測定するための測定器を'''熱量計'''という。反応熱の熱量計には、燃焼熱測定用のボンベ熱量計や、溶解熱測定用熱量計などがある。 ボンベ熱量計の測定原理は、試料を燃焼させた後に、容器内の水の温度変化を測定することで燃焼熱を測定する方式である。 == 熱化学 == [[File:Hess cycles NaOH jp.svg|500px]] 図のように、固体の水酸化ナトリウムから塩化ナトリウムを生成する反応には2つの経路があるが、どちらの経路で合成を行っても、エンタルピー変化の総和は同じである。 化学反応の反応熱は、反応途中の経路には影響を受けない。エンタルピー変化は、反応の始めの状態と反応の終わりの状態によってのみ決まり、このことを'''ヘスの法則'''という。 また、このヘスの法則のため、反応エンタルピー変化を :反応エンタルピー変化 = 生成物の生成エンタルピー <math>-</math> 反応物の生成エンタルピー と求めることができる。 ;結合エネルギー 水素分子1molに432kJのエネルギーを与えると、結合を切り離すことができる。この結合を切り離すのに必要なエネルギーは、結合の強さを表すと考えて、この結合の切り離しに要したエネルギーを'''結合エネルギー'''と言う。結合エネルギーは1molあたりのエネルギーで示されるのが通常である。結合エネルギーは普通、共有結合について用いる。 たとえば水素の結合の切り離しを熱化学方程式で表すと、以下の様になる。 {{-}} ---- [[File:Hess cycles CO jp.svg|400px|thumb|]] ;例題. 一酸化炭素 CO 検定教科書では、よく練習問題で、COの生成熱を求めさせる問題が出題される。 解法は、図より :394ー283=111 よってCOの生成熱は 111 kJ/mol である。 :答え  '''111 kJ/mol''' {{-}} ---- ;そのほかの例 H2O [[File:ヘスの法則svg.svg|thumb|350px|ヘスの法則の説明図。水(H2O)の場合。]] :H<sub>2</sub>(気体)=2H(気体)  ΔH = 432 kJ/mol 気体や液体、固体などといった状態変化も同様に、経路によらず、発生する熱量の総和は一定である。 {{clear}} {| style="width:100%" |valign=top style="width:30%;text-indent:1em"| {| class="wikitable" |+ 結合エネルギー(kJ/mol)(25℃、1Pa) ! 結合 || 結合エネルギー |- | H-H || 436 |- | C-H || 413 |- | N-H || 390 |- | O-H || 463 |- |} |valign=top style="width:30%;text-indent:1em"| {| class="wikitable" |+ <br /><br /> ! 結合 || 結合エネルギー |- | H-F || 563 |- | H-Cl || 432 |- | F-F || 158 |- | Cl-Cl || 243 |- |} |valign=top style="width:40%;text-indent:1em"| {| class="wikitable" |+ <br /><br /> ! 結合 || 結合エネルギー |- | O-O || 490 |- | C-C(ダイヤモンド) || 357 |- | C-C || 348 |- | C=C || 590 |- | C≡C || 810 |- |} |} 同じ結合でも、周辺の分子の配置や数によって、すこしだけ結合エネルギーが変わってくる。そのため、正確な結合エネルギーの値は、分子ごとに違ってくる。高校では、ふつう、これら周辺分子の影響は扱わないので、無視してよい。 以上の表での結合エネルギーは、おおよそのエネルギーであり、正確なエネルギーの値は分子ごとに違うので、学校のテスト問題などを解くときは問題文を参照のこと。 ;解離エネルギー 3個以上の分子は、結合の数が複数になる。この分子の全ての結合を切り離すのに必要なエネルギーを'''解離エネルギー'''(bond dissociation energy)という。通常は1molあたりの切り離しのエネルギー量で解離エネルギーを表す。 解離エネルギーは、その分子の持つ全ての結合の結合エネルギーの総和である。H<sub>2</sub>やO<sub>2</sub>などの結合を一個しか持たない分子では、結合エネルギーの値と解離エネルギーの値は一致する。 ;反応熱と結合エネルギー 反応熱や生成熱は、反応の前後の物質の結合エネルギーが分かっている場合は、計算で求められる。その物質の、反応後の結合エネルギーの総和から、反応前の結合エネルギーの総和を引いた値で、反応熱を近似できる。 「近似」といったのは、分子間引力などの、結合の変化以外にもエネルギーが使われる場合があるからである。 :(反応熱) = -(反応前の結合エネルギーの和) + (反応後の結合エネルギーの和) 上記の式の同じ内容だが :(反応熱) = (生成物の結合エネルギーの和)- (反応物の結合エネルギーの和) である。 == 格子エネルギー == 金属結合や、イオン結合の結晶、共有結晶(ダイヤモンド)などの、結晶を構成するために必要とされるエネルギーのことを格子エネルギーという。この格子エネルギーは直接には測定できないので、ヘスの法則で間接的に求める。{{DEFAULTSORT:かかくはんのうとえねるき}} [[Category:高等学校化学]] [[カテゴリ:化学反応]] [[カテゴリ:エネルギー]] 67jwk4evwh3ivhiggoks5ny7ah1nhh8 Wikibooks:日本十進分類法 4 9004 301318 301217 2026-07-08T11:49:32Z Tkkn46tkkn46 89925 /* 374.48 学校行事 */ 同名の記事とカテゴリ。これが普通かもしれません。 301318 wikitext text/x-wiki __NOTOC__ [[メインページ|ウィキブックス]]の全ての書籍を[[:w:日本十進分類法|日本十進分類法]]に従って分類したものです。 {{進捗状況}} == 0類 総記 == === 000 総記 === *[[ウィキペディアの書き方]] <!-- ==== 002 知識・学問・学術 ==== --> ==== 007 情報科学 ==== *[[情報技術]] <!-- ===== 007.1 情報理論 ===== ===== 007.2 歴史 事情 ===== ===== 007.3 情報と社会 ===== ===== 007.4 情報源 ===== ===== 007.5 ドキュメンテーション 情報管理 ===== --> ===== 007.6 データ処理 情報処理 ===== *[[情報処理技術者試験の概要]] *[[初級システムアドミニストレータ]] <!-- ====== 007.61 システム分析 システム設計 ====== --> ====== 007.63 コンピュータシステム ソフトウェア ====== *[[Freenet]] *[[Maxima]] *[[Microsoft Office]] *[[Mizar]] *[[OpenOffice.org]] *[[OSとアプリケーション]] *[[TeX/LaTeX入門]]{{進捗|25%|2005-05-04}} *[[vi]] <!-- ======= 007.632 エキスパートシステム ======= --> ====== 007.634 オペレーティングシステム ====== *[[ChromeOS]] *[[Linuxシステム管理]] *[[Linuxハードウェア]] *[[MS-DOS/PC DOS入門]]{{進捗|50%|2005-05-04}} *[[UNIX/Linux入門]]{{進捗|25%|2005-05-04}} <!-- ======= 007.635 漢字処理システム ======= --> ====== 007.637 図形処理ソフトウェア ====== * [[Inkscape]] ====== 007.64 コンピュータプログラミング ====== *[[機械語]] *[[ゲームプログラミング]] *[[数式処理システム]] *[[ソフトウェア開発技術者]] *[[プログラミング]] *[[BASIC]] *[[C言語]]{{進捗|25%|2005-05-04}} *[[CPlusPlus|C++]] *[[CSS]]{{進捗|00%|2005-06-17}} *[[CGI]]{{進捗|25%|2005-05-04}} *[[GNOMEフレームワーク]] *[[Go]] *[[HTML]]{{進捗|25%|2005-05-04}} *[[Java]]{{進捗|25%|2005-05-04}} *[[JavaScript]]{{進捗|25%|2005-05-04}} *[[Lisp]] *[[OpenGL]] *[[OSS開発ツール]] *[[Perl]]{{進捗|25%|2005-05-04}} *[[PHP]] *[[Ruby]] *[[Scratch]] *[[Scheme]] *[[SVG]] *[[Xプログラミング]] <!-- ======= 007.642 CG技術 ======= ====== 007.65 各種の記憶媒体 ====== ====== 007.68 情報検索 機械検索 ====== --> ===== 007.7 情報システム ===== *[[LANとインターネット]] *[[NTP入門]] *[[TCP/IP入門]] <!-- === 010 図書館・図書館学 === ==== 011 図書館政策・図書館行財政 ==== ==== 012 図書館建築・図書館整備 ==== ==== 013 図書館管理 ==== ==== 014 資料の収集・資料の整理・資料の保管 ==== ==== 015 図書館奉仕・図書館活動 ==== ==== 016 各種の図書館 ==== ==== 017 学校図書館 ==== ==== 018 専門図書館 ==== ==== 019 読書・読書法 ==== --> === 020 図書・書誌学 === ==== 021 著作・編集 ==== ===== 021.4 編集 編纂 ===== *[[ウィキペディアの書き方 入門編]]{{進捗|50%|2005-05-04}} <!-- ==== 022 写本・刊本・造本 ==== ==== 023 出版 ==== --> ==== 024 図書の販売 ==== *[[同人誌即売会参加方法]]{{進捗|75%|2005-05-04}} <!-- ==== 025 一般書誌・全国書誌 ==== ==== 026 稀書目録・善本目録 ==== ==== 027 特種目録 ==== ==== 028 選定図書目録・参考図書目録 ==== ==== 029 蔵書目録・総合目録 ==== --> === 030 百科事典 === ==== 031 日本語 ==== *[[w:mainpage|w:wikipedia]] ===== 031.3 日用便覧 ===== *[[ジョーク集]] <!-- ==== 039 用語索引<一般> ==== === 040 一般論文集・一般講演集 === ==== 041 日本語 ==== ==== 049 雑著 ==== === 050 逐次刊行物 === ==== 051 日本の雑誌 ==== ==== 059 一般年鑑 ==== === 060 団体 === ==== 061 学術・研究機関 ==== ==== 063 文化交流機関 ==== ==== 065 親睦団体・その他の団体 ==== ==== 069 博物館 ==== === 070 ジャーナリズム・新聞 === ==== 071 日本 ==== === 080 叢書・全集・選集 === ==== 081 日本語 ==== ==== 089 その他の諸言語 ==== === 090 貴重書・郷土資料・その他の特別コレクション === --> == 1類 哲学 == === 100 哲学 === *[[哲学・思想]]{{進捗|00%|2005-05-04}} <!-- ==== 101 哲学理論 ==== ==== 102 哲学史 ==== ==== 103 参考図書 ==== ==== 104 論文集・評論集・講演集 ==== ==== 105 逐次刊行物 ==== ==== 106 団体 ==== ==== 107 研究法・指導法・哲学教育 ==== ==== 108 叢集・全集・選集 ==== === 110 哲学各論 === ==== 111 形而上学・存在論 ==== ==== 112 自然哲学・宇宙論 ==== ==== 113 人生観・世界観 ==== ==== 114 人間学 ==== ==== 115 認識論 ==== ==== 116 論理学・弁証法・方法論 ==== ==== 117 価値哲学 ==== ==== 118 文化哲学・技術哲学 ==== === 120 東洋思想 === ==== 121 日本思想 ==== ==== 122 中国思想・中国哲学 ==== ==== 123 経書 ==== ==== 124 先秦思想・諸子 ==== ==== 125 中世思想・近代思想 ==== ==== 126 インド哲学・バラモン教 ==== ==== 129 その他のアジア・アラブ哲学 ==== === 130 西洋哲学 === ==== 131 古代哲学 ==== ==== 132 中世哲学 ==== ==== 133 近代哲学 ==== ==== 134 ドイツ・オーストリア哲学 ==== ==== 135 フランス・オランダ哲学 ==== ==== 136 スペイン・ポルトガル哲学 ==== ==== 137 イタリア哲学 ==== ==== 138 ロシア哲学 ==== ==== 139 その他の哲学 ==== --> === 140 心理学 === *[[心理学]]{{進捗|25%|2005-05-04}} <!-- ==== 141 普通心理学・心理各論 ==== ==== 143 発達心理学 ==== ==== 145 異常心理学 ==== ==== 146 臨床心理学・精神分析学 ==== ==== 147 超心理学・心霊研究 ==== ==== 148 相法・易占 ==== ==== 149 応用心理学 ==== --> === 150 倫理学・道徳 === *[[倫理学]] ==== 151 倫理各論 ==== ==== 152 家庭倫理・性倫理 ==== ==== 153 職業倫理 ==== ==== 154 社会倫理 ==== ==== 155 国体論・詔勅 ==== ==== 156 武士道 ==== ==== 157 報徳教・石門心学 ==== ==== 158 その他の特定主題 ==== ==== 159 人生訓・教訓 ==== <!-- === 160 宗教 === ==== 161 宗教学・宗教思想 ==== ==== 162 宗教史・事情 ==== ==== 163 原始宗教・宗教民族学 ==== ==== 164 神話・神話学 ==== ===== 164.31 ギリシャ神話 ===== ==== 165 比較宗教 ==== ==== 166 道教 ==== ==== 167 イスラーム ==== ==== 168 ヒンドゥー教・ジャイナ教 ==== ==== 169 その他の宗教・新興宗教 ==== === 170 神道 === ==== 171 神道思想・神道説 ==== ==== 172 神祇・神道史 ==== ==== 173 神典 ==== ==== 174 信仰録・説教集 ==== ==== 175 神社・神職 ==== ==== 176 祭祀 ==== ==== 177 布教・伝道 ==== ==== 178 各教派・教派神道 ==== === 180 仏教 === ==== 181 仏教教理・仏教哲学 ==== ==== 182 仏教史 ==== ==== 183 経典 ==== ==== 184 法話・説教集 ==== ==== 185 寺院・僧職 ==== ==== 186 仏会 ==== ==== 187 布教・伝道 ==== ==== 188 各宗 ==== === 190 キリスト教 === ==== 191 教義・キリスト教神学 ==== ==== 192 キリスト教史・迫害史 ==== ==== 193 聖書 ==== ==== 194 信仰録・説教集 ==== ==== 195 教会・聖職 ==== ==== 196 典礼・祭式・礼拝 ==== ==== 197 布教・伝道 ==== ==== 198 各教派・教会史 ==== ==== 199 ユダヤ教 ==== --> == 2類 歴史 == === 200 歴史 === ==== 201 歴史学 ==== *[[歴史学]] <!-- ==== 202 歴史補助学 ==== ==== 203 参考図書 ==== ==== 204 論文集・評論集・講演集 ==== ==== 205 逐次刊行物 ==== ==== 206 団体 ==== ==== 207 研究法・指導法・歴史教育 ==== ==== 208 叢書・全集・選集 ==== --> ==== 209 世界史・文化史 ==== *[[世界史]]{{進捗|25%|2005-05-04}} === 210 日本史 === *[[日本史]]{{進捗|25%|2005-05-04}} <!-- ===== 210.027 古銭学 ===== ==== 211 北海道地方 ==== ==== 212 東北地方 ==== ==== 213 関東地方 ==== ==== 214 北陸地方 ==== ==== 215 中部地方 ==== ==== 216 近畿地方 ==== ==== 217 中国地方 ==== ==== 218 四国地方 ==== ==== 219 九州地方 ==== --> === 220 アジア史・東洋史 === <!-- ==== 221 朝鮮 ==== --> ==== 222 中国 ==== *[[中国史]]{{進捗|25%|2005-12-01}} <!-- ==== 223 東南アジア ==== ==== 224 インドネシア ==== ==== 225 インド ==== ===== 225.97 モルジブ ===== ==== 229 アジアロシア ==== === 230 ヨーロッパ史・西洋史 === ==== 231 古代ギリシア ==== ==== 232 古代ローマ  ==== ==== 233 イギリス・英国 ==== ==== 234 ドイツ・中欧 ==== ==== 235 フランス ==== ==== 236 スペイン イスパニア ==== ==== 237 イタリア ==== ==== 238 ロシア ソビエト連邦 独立国家共同体 ==== ==== 239 バルカン諸国 ==== === 240 アフリカ史 === ==== 241 北アフリカ ==== ==== 242 エジプト ==== ==== 243 バーバリ諸国 ==== ==== 244 西アフリカ ==== ==== 245 東アフリカ ==== ==== 248 南アフリカ ==== ==== 249 インド洋のアフリカ諸島 ==== === 250 北アメリカ史 === ==== 251 カナダ ==== ==== 253 アメリカ合衆国 ==== ==== 255 ラテンアメリカ 中南米 ==== ==== 256 メキシコ ==== ==== 257 中央アメリカ 中米諸国 ==== ==== 259 西インド諸島 ==== === 260 南アメリカ史 === ==== 261 北部諸国 カリブ沿海諸国 ==== ==== 262 ブラジル ==== ==== 263 パラグアイ ==== ==== 264 ウルグアイ ==== ==== 265 アルゼンチン ==== ==== 266 チリ ==== ==== 267 ボリビア ==== ==== 268 ペルー ==== === 270 オセアニア史・両極地方史 === ==== 271 オーストラリア ==== ==== 272 ニュージーランド ==== ==== 273 メラネシア ==== ==== 274 ミクロネシア ==== ==== 275 ポリネシア ==== ==== 276 ハワイ ==== ==== 277 両極地方 ==== ==== 278 北極 北極地方 ==== ==== 279 南極 南極地方 ==== === 280 伝記 === ==== 281 日本 ==== ==== 282 アジア ==== ==== 283 ヨーロッパ ==== ==== 284 アフリカ ==== ==== 285 北アフリカ ==== ==== 286 南アフリカ ==== ==== 287 オセアニア・両極地方 ==== ==== 288 系譜・家史・皇室 ==== ==== 289 個人伝記 ==== --> === 290 地理・地誌・紀行 === *[[地理学]]{{進捗|00%|2005-05-04}} <!-- ==== 290.93 旅行案内記 ==== --> == 3類 社会科学 == <!-- === 300 社会科学 === ==== 301 理論・方法論 ==== ==== 302 政治・経済・社会・文化事情 ==== ==== 303 参考図書 ==== ==== 304 論文集・評論集・講演集 ==== ==== 305 逐次刊行物 ==== ==== 306 団体 ==== ==== 307 研究法・指導法・社会科学教育 ==== ==== 308 叢書・全集・選集 ==== ==== 309 社会思想 ==== === 310 政治 === ==== 311 政治学 ==== ==== 312 政治史・事情 ==== ==== 313 国家の形態・政治体制 ==== ==== 314 議会 ==== ==== 315 政党・政治結社 ==== ==== 316 国家と個人・宗教・民族 ==== ==== 317 行政 ==== ==== 318 地方自治・地方行政 ==== ==== 319 外交・国際問題 ==== --> === 320 法律 === ==== 321 法学 ==== *[[法学]]{{進捗|25%|2005-05-04}} ==== 322 法制史 ==== *[[法制史]] ==== 323 憲法 ==== *[[憲法]] ==== 324 民法 ==== *[[民法]] ==== 325 商法 ==== *[[商法]] ==== 326 刑法・刑事法 ==== *[[刑法]] ==== 327 司法・訴訟手続法 ==== *[[民事訴訟法]] *[[刑事訴訟法]] ==== 328 諸法 ==== *[[教育基本法]] *[[知的財産権法]] ==== 329 国際法 ==== *[[国際法]] === 330 経済 === ==== 331 経済学・経済思想 ==== *[[経済学]]{{進捗|25%|2005-05-04}} ==== 332 経済史・事情・経済体制 ==== ==== 333 経済政策・国際経済 ==== ==== 334 人口・土地・資源 ==== ==== 335 企業・経営 ==== ==== 336 経営管理 ==== *[[公認会計士試験]] ==== 337 貨幣・通貨 ==== ==== 338 金融・銀行・信託 ==== ==== 339 保険 ==== === 340 財政 === <!-- ==== 341 財政学・財政思想 ==== ==== 342 財政史・事情 ==== ==== 343 財政政策・財政行政 ==== ==== 344 予算・決算 ==== ==== 345 租税 ==== ==== 347 公債・国債 ==== ==== 348 専売・国有財産 ==== ==== 349 地方財政 ==== === 350 統計 === ==== 351 日本 ==== ==== 358 人口統計・国勢調査 ==== ==== 359 各種の統計書 ==== --> === 360 社会 === <!-- ==== 361 社会学 ==== ==== 362 社会史・社会体制 ==== ==== 364 社会保障 ==== ==== 365 生活・消費者問題 ==== ==== 366 労働経済・労働問題 ==== ==== 367 家族問題、男性・女性問題、老人問題 ==== ==== 368 社会病理 ==== --> ==== 369 社会福祉 ==== ===== 369.3 災害 災害救助 ===== *[[防災]]{{進捗|25%|2006-04-06}} === 370 教育 === <!-- ==== 371 教育学、教育思想 ==== ===== 371.42 登校拒否・いじめ ===== --> ==== 372 教育史・事情 ==== *[[教育勅語]]{{進捗|75%|2005-05-04}} <!-- ==== 373 教育政策、教育制度、教育行財政 ==== --> ==== 374 学校経営・管理、学校保健 ==== ===== 374.48 学校行事 ===== *[運動会] ==== 375 教育課程、学習指導、教科別教育 ==== *[[学校教育]]{{進捗|25%|2005-05-04}} *[[生活と進路]]{{進捗|50%|2005-05-04}} ===== 374.9 教科書、教科書検定 ===== *[[小学校の学習]]{{進捗|50%|2023-09-25}} *[[中学校の学習]]{{進捗|50%|2023-09-25}} *[[高等学校の学習]]{{進捗|00%|2023-09-25}} **[[高等学校の学習/旧課程]]{{進捗|25%|2023-09-25}} <!-- * [[小学校算数]] {{進捗|25%|2005-05-04}} * [[中学校数学]] {{進捗|50%|2005-05-10}} * [[高等学校世界史A]] {{進捗|25%|2015-08-30}} * [[高等学校地理B]] {{進捗|25%|2005-11-1}} * [[高等学校現代社会]] {{進捗|25%|2015-08-30}} * [[高等学校政治経済]] {{進捗|50%|2015-08-30}} *[[高等学校倫理]] *[[高等学校数学]] *[[高等学校数学基礎]]{{進捗|100%|2005-05-04}} *[[高等学校数学I]]{{進捗|50%|2005-05-04}} *[[高等学校数学III]]{{進捗|50%|2005-05-04}} *[[高等学校数学B]]{{進捗|50%|2005-05-04}} *[[高等学校数学C]]{{進捗|50%|2005-05-04}} *[[高等学校理科総合B]]{{進捗|50%|2005-05-04}} *[[高等学校物理]]{{進捗|50%|2005-11-1}} * [[高等学校化学]] {{進捗|50%|2015-08-30}} * [[高等学校生物]] {{進捗|50%|2015-08-30}} * [[高等学校地学]] {{進捗|25%|2015-08-30}} *[[高等学校情報A]] *[[高等学校情報B]] *[[高等学校情報C]] --> *[[小・中・高等学校演習]] *[[検定教科書]] ==== 376 幼児・初等・中等教育 ==== *[[小学校・中学校・高等学校の学習]] ==== 377 大学、高等・専門教育、学術行政 ==== * [[大学受験ガイド]] {{進捗|50%|2015-08-30}} <!-- ==== 378 障害児教育 ==== ==== 379 社会教育 ==== === 380 風俗習慣・民俗学・民族学 === ==== 382 風俗史・民俗誌、民族誌 ==== ==== 383 衣食住の習俗 ==== ==== 384 社会・家庭生活の習俗 ==== ==== 385 通過儀礼、冠婚葬祭 ==== ==== 386 年中行事、祭礼 ==== ==== 387 民間信仰、迷信(俗信) ==== ==== 388 伝説、民話(昔話) ==== ==== 389 民族学、文化人類学 ==== === 390 国防・軍事 === ==== 391 戦争、戦略、戦術 ==== ==== 392 国防史・事情、軍事史・事情 ==== ==== 393 国防政策・行政・法令 ==== ==== 394 軍事医学、兵食 ==== ==== 395 軍事施設、軍需品 ==== ==== 396 陸軍 ==== ==== 397 海軍 ==== ==== 398 空軍 ==== ==== 399 古代兵法、軍学 ==== --> == 4類 自然科学 == <!-- === 400 自然科学 === ==== 401 科学理論・科学哲学 ==== ==== 402 科学史・事情 ==== ==== 403 参考図書 ==== ==== 404 論文集・評論集・講演集 ==== ==== 405 逐次刊行物 ==== ==== 406 団体 ==== ==== 407 研究法・指導法・科学教育 ==== ==== 408 叢書・全集・選集 ==== ==== 409 科学技術政策・科学技術行政 ==== --> === 410 数学 === * [[数学]] * [[初等数学]] * [[初等数学公式集]]{{進捗|25%|2005-05-04}} * [[初等数学演習]]{{進捗|25%|2005-05-04}} * [[初等数学記号集]] * [[Wikibooks:初等数学用語索引|初等数学用語索引]]{{進捗|25%|2005-05-04}} * [[中等数学]] * [[高等数学]] * [[大学数学公式集]] ==== 411 代数学 ==== ===== 411.6 集合論 ===== *[[公理的集合論]] ==== 412 数論 ==== ==== 413 解析学 ==== * [[解析学]] * [[解析学基礎]]{{進捗|25%|2005-05-04}} ==== 414 幾何学 ==== ==== 415 位相数学 ==== * [[位相幾何学]]{{進捗|25%|2008-09-03}} ==== 417 確率論、数理統計学 ==== * [[統計学基礎]]{{進捗|25%|2005-05-04}} <!-- ==== 418 計算法 ==== ==== 419 和算、中国算法 ==== --> === 420 物理学 === *[[物理学]] ==== 421 理論物理学 ==== <!-- ===== 421.1 基礎理論 エーテル理論 ===== --> ===== 421.2 相対性理論 ===== *[[特殊相対論]] *[[一般相対性理論]] ===== 421.3 量子力学、量子論 ===== *[[場の量子論]] *[[量子力学]]{{進捗|50%|2005-05-04}} ===== 421.4 統計力学 ===== *[[統計力学I]] *[[統計力学II]] ===== 421.5 数理物理学.物理数学 ===== * [[物理数学I]] {{進捗|75%|2023-11-05}} * [[物理数学II]] ==== 423 力学 ==== *[[解析力学]] *[[古典力学]]{{進捗|50%|2005-05-04}} ==== 424 振動学、音響学 ==== *[[振動と波動]] * [[音響学]] ==== 425 光学 ==== *[[光の偏極]] ==== 426 熱学 ==== *[[熱力学]] ==== 427 電磁気学 ==== *[[電磁気学]] <!-- ==== 428 物性物理学 ==== ==== 429 原子物理学 ==== --> === 430 化学 === <!-- ==== 431 物理化学. 理論化学 ==== ==== 432 実験化学 ==== ==== 433 分析化学 ==== ==== 434 合成化学 ==== --> ==== 435 無機化学 ==== *[[無機化学]]{{進捗|25%|2005-05-04}} <!-- ==== 436 金属元素とその化合物 ==== --> ==== 437 有機化学 ==== *[[有機化学]]{{進捗|25%|2005-05-21}} <!-- ==== 438 環式化合物の化学 ==== ==== 439 天然物質の化学 ==== --> === 440 天文学・宇宙科学 === * [[天文学]]{{進捗|25%|2005-12-01}} <!-- ==== 441 理論天文学・数理天文学 ==== ==== 442 実地天文学・天体観測法 ==== ==== 443 恒星・恒星天文学 ==== ==== 444 太陽・太陽物理学 ==== ==== 445 惑星・衛星 ==== ==== 446 月 ==== ==== 447 彗星・流星 ==== ==== 448 地球・天文地理学 ==== ==== 449 時法・暦学 ==== --> === 450 地球科学・地学 === * [[地球科学]]{{進捗|25%|2005-12-01}} <!-- ==== 451 気象学 ==== ==== 452 海洋学 ==== ==== 453 地震学 ==== ===== 453.38 地震予知 ===== ==== 454 地形学 ==== ==== 455 地質学 ==== ==== 456 地史学・層位学 ==== ==== 457 古生物学・化石 ==== ==== 458 岩石学 ==== ==== 459 鉱物学 ==== --> === 460 生物化学・一般生物学 === *[[生物学の研究技術]]{{進捗|25%|2005-05-04}} <!-- ==== 461 理論生物学・生命論 ==== ==== 462 生物地理・生物誌 ==== ==== 463 細胞学 ==== ==== 464 生化学 ==== ==== 465 微生物学 ==== ==== 467 遺伝学 ==== ===== 467.25 遺伝子組み換え ===== ==== 468 生態学 ==== ==== 469 人類学 ==== --> === 470 植物学 === *[[植物学]]{{進捗|25%|2005-05-04}} <!-- ==== 471 一般植物学 ==== ==== 472 植物地理・植物誌 ==== ==== 473 葉状植物 ==== ==== 474 藻類・菌類 ==== ==== 475 コケ植物 ==== ==== 476 シダ植物 ==== ==== 477 種子植物 ==== ==== 478 裸子植物 ==== ==== 479 被子植物 ==== === 480 動物学 === ==== 481 一般動物学 ==== ==== 482 動物地理・動物誌 ==== ==== 483 無脊椎動物 ==== ==== 484 軟体動物・貝類学 ==== ==== 485 節足動物 ==== ==== 486 昆虫類 ==== ==== 487 脊椎動物 ==== ==== 488 鳥類 ==== ==== 489 哺乳類 ==== --> === 490 医学 === * [[医学]] *[[OsiriX_オンライン解説文書]]{{進捗|75%|2005-05-04}} ==== 491 基礎医学 ==== *[[生理学]]{{進捗|00%|2006-11-09}} *[[解剖学]]{{進捗|25%|2006-11-09}} *[[神経解剖学]]{{進捗|00%|2006-11-09}} *[[組織学]]{{進捗|00%|2006-11-09}} *[[微生物学]]{{進捗|00%|2006-11-09}} *[[病理学]]{{進捗|00%|2006-11-09}} <!-- ==== 492 臨床医学 ==== --> ==== 493 内科学 ==== *[[内科学 呼吸器]]{{進捗|00%|2006-11-09}} <!-- ==== 494 外科学 ==== ==== 495 産科学,婦人科学 ==== ==== 496 眼科学,耳鼻咽喉科学 ==== ==== 497 歯科学 ==== ==== 498 衛生学,公衆衛生学,予防医学 ==== --> ==== 499 薬学 ==== *[[薬理学]]{{進捗|00%|2006-11-09}} ==5類 技術・工学・工業 == === 500 技術・工学 === ==== 501 工業基礎学 ==== ==== 502 技術史・工学史 ==== ==== 503 参考図書 ==== ==== 504 論文集・評論集・講演集 ==== ==== 505 逐次刊行物 ==== ==== 506 団体 ==== ==== 507 研究法・指導法・技術教育 ==== ==== 508 叢書・全集・選集 ==== ==== 509 工業・工業経済 ==== === 510 建設工学・土木工学 === ==== 511 土木力学・建設材料 ==== ==== 512 測量 ==== ==== 513 土木設計・施工法 ==== ==== 514 道路工学 ==== ==== 515 橋梁工学 ==== ==== 516 鉄道工学 ==== ==== 517 河海工学・河川工学 ==== ==== 518 衛生工学・都市工学 ==== ===== 518.523 ごみの再利用 ===== ==== 519 公害・環境工学 ==== ===== 519.12 環境法 ===== * [[環境法]] === 520 建築学 === ==== 521 日本の建築 ==== ==== 522 東洋の建築・アジアの建築 ==== ==== 523 西洋の建築・その他の様式の建築 ==== ==== 524 建築構造 ==== ==== 525 建築計画・施工 ==== ==== 526 各種の建築 ==== ==== 527 住宅建築 ==== ==== 528 建築設備・設備工学 ==== ==== 529 建築意匠・装飾 ==== === 530 機械工学・原子力工学 === ==== 531 機械力学・材料・設計 ==== ==== 532 機械工作・工作機械 ==== ==== 533 熱機関・熱工学 ==== ==== 534 流体機械・流体工学 ==== ==== 535 精密機器・光学機器 ==== ==== 536 運輸工学・車輌・運搬機械 ==== ==== 537 自動車工学 ==== ===== 537.25 電気自動車 ===== ==== 538 航空宇宙工学 ==== ==== 539 原子力工学 ==== === 540 電気工学・電子工学 === ==== 540 電気工学 ==== ==== 541 電気回路・計測・材料 ==== ==== 542 電気機器 ==== ==== 543 発電 ==== ==== 544 送電・変電・配電 ==== ==== 545 電灯・照明・電熱 ==== ==== 546 電気鉄道 ==== ==== 547 通信工学・電気通信 ==== ==== 548 情報工学 ==== ==== 549 電子工学 ==== === 550 海洋工学・船舶工学 === ==== 551 理論造船学 ==== ==== 552 船体構造・材料・施工 ==== ==== 553 船体艤装・船舶設備 ==== ==== 554 舶用機関[造機] ==== ==== 555 船舶修理・保守 ==== ==== 556 各種の船舶・艦艇 ==== ==== 557 航海・航海学 ==== ==== 558 海洋開発 ==== ==== 559 兵器、軍事工学 ==== === 560 金属工学・鉱山工学 === ==== 561 採鉱・選鉱 ==== ==== 562 各種の金属鉱床・採掘 ==== ==== 563 冶金・合金 ==== ==== 564 鉄鋼 ==== ==== 565 非鉄金属 ==== ==== 566 金属加工・製造冶金 ==== ==== 567 石炭 ==== ==== 568 石油 ==== ==== 569 非金属鉱物・土石採取業 ==== === 570 化学工業 === ==== 571 化学工学・化学機器 ==== ==== 572 電気化学工業 ==== ==== 573 セラミックス・窯業・珪酸塩化学工業 ==== ==== 574 化学薬品 ==== ==== 575 燃料・爆発物 ==== ==== 576 油脂類 ==== ==== 577 染料 ==== ==== 578 高分子化学工業 ==== ==== 579 その他の化学工業 ==== === 580 製造工業 === ==== 581 金属製品 ==== ==== 582 事務機器・家庭機器・楽器 ==== ==== 583 木工業・木製品 ==== ==== 584 皮革工業・皮革製品 ==== ==== 585 パルプ・製紙工業 ==== ==== 586 繊維工学 ==== ==== 587 染色加工・染色業 ==== ==== 588 食品工業 ==== ==== 589 その他の雑工業 ==== === 590 家政学・生活科学 === <!-- ==== 591 家庭経済・経営 ==== ==== 592 家庭理工学 ==== ==== 593 衣服・裁縫 ==== ==== 594 手芸 ==== ==== 595 理容・美容 ==== ===== 595.6 痩身法 ===== ==== 596 食品・料理 ==== *[[料理本]]{{進捗|25%|2005-05-04}} <!-- ==== 597 住居・家具調度 ==== ==== 598 家庭衛生 ==== ==== 599 育児 ==== --> ==6類 産業 == <!-- === 600 産業 === ==== 601 産業政策・行政・総合開発 ==== ==== 602 産業史・事情・物産誌 ==== ==== 603 参考図書 ==== ==== 604 論文集・評論集・講演集 ==== ==== 605 逐次刊行物 ==== ==== 606 団体 ==== ==== 607 研究法・指導法・産業教育 ==== ==== 608 叢書・全集・選集 ==== ==== 609 度量衡、計量法 ==== === 610 農業 === ==== 611 農業経済 ==== ==== 612 農業史・事情 ==== ==== 613 農業基礎学 ==== ==== 614 農業工学 ==== ==== 615 作物栽培・作物学 ==== ==== 616 食用作物 ==== ==== 617 工芸作物 ==== ==== 618 繊維作物 ==== ==== 619 農産物製造・加工 ==== --> === 620 園芸 === <!-- ==== 621 園芸経済・行政・経営 ==== ==== 622 園芸史・事情 ==== ==== 623 園芸植物学・病虫害 ==== ==== 624 温室・温床・園芸用具 ==== ==== 625 果樹園芸 ==== --> ==== 626 蔬菜園芸 ==== *[[ダイズの栽培]]{{進捗|00%|2007-02-21}} ==== 627 花卉園芸[草花] ==== *[[サボテンの栽培]]{{進捗|00%|2007-02-21}} <!-- ==== 628 園芸利用 ==== ==== 629 造園 ==== === 630 蚕糸業 === ==== 631 蚕糸経済・行政・経営 ==== ==== 632 蚕糸業史・事情 ==== ==== 633 蚕学・蚕業基礎学 ==== ==== 634 蚕種 ==== ==== 635 飼育法 ==== ==== 636 くわ・栽桑 ==== ==== 637 蚕室・蚕具 ==== ==== 638 まゆ ==== ==== 639 製糸・生糸・蚕糸利用 ==== --> === 640 畜産業 === <!-- ==== 641 畜産経済・行政・経営 ==== ==== 642 畜産史・事情 ==== ==== 643 家畜の繁殖・家畜飼料 ==== ==== 644 家畜の管理・畜舎・用具 ==== ==== 645 家畜・畜産動物各論 ==== --> ==== 646 家禽各論・飼鳥 ==== *[[ホンセイインコ類の飼育]]{{進捗|00%|2007-02-21}} <!-- ===== 646.9 みつばち・昆虫 ===== ==== 648 畜産製造・畜産物 ==== ==== 649 獣医学・比較医学 ==== ==== 649 獣医学 ==== === 650 林業 === ==== 651 林業経済・行政・経営 ==== ==== 652 森林史・林業史・事情 ==== ==== 653 森林立地・造林 ==== ==== 654 森林保護 ==== ==== 655 森林施業 ==== ==== 656 森林工学 ==== ==== 657 森林利用・林産物・木材学 ==== ==== 658 林産製造 ==== ==== 659 狩猟 ==== === 660 水産業 === ==== 661 水産経済・行政・経営 ==== ==== 662 水産業および漁業史・事情 ==== ==== 663 水産基礎学 ==== ==== 664 漁労・漁業各論 ==== ==== 665 漁船・漁具 ==== ==== 666 水産増殖・養殖業 ==== ==== 667 水産製造・水産食品 ==== ==== 668 水産物利用・水産利用工業 ==== ==== 669 製塩・塩業 ==== === 670 商業 === ==== 671 商業政策・行政 ==== ==== 672 商業史・事情 ==== ==== 673 商業経営・商店 ==== ==== 674 広告・宣伝 ==== ==== 675 マーケティング ==== ==== 676 取引所 ==== ==== 678 貿易 ==== === 680 運輸・交通 === ==== 681 交通政策・行政・経営 ==== ==== 682 交通史・事情 ==== ==== 683 海運 ==== ==== 684 内水・運河交通 ==== ==== 685 陸運・自動車運送 ==== ==== 686 鉄道 ==== ==== 687 航空運送 ==== ==== 688 倉庫業 ==== ==== 689 観光事業 ==== === 690 通信事業 === ==== 691 通信政策・行政・法令 ==== ==== 692 通信事業史・事情 ==== ==== 693 郵便・郵政事業 ==== ==== 694 電気通信事業 ==== ==== 699 放送事業 ==== ===== 699.39 アナウンサー ===== --> == 7類 芸術 == <!-- === 700 芸術・美術 === ==== 701 芸術理論・美学 ==== ==== 702 芸術史・美術史 ==== ==== 703 参考図書[レファレンスブック] ==== ==== 704 論文集・評論集・講演集 ==== ==== 705 逐次刊行物 ==== ==== 706 団体 ==== ==== 707 研究法・指導法・芸術教育 ==== ==== 708 叢書・全集・選集 ==== ==== 709 芸術政策・文化財 ==== === 710 彫刻 === ==== 711 彫塑材料・技法 ==== ==== 712 彫刻史・各国の彫刻 ==== ==== 713 木彫 ==== ==== 714 石彫 ==== ==== 715 金属彫刻・鋳造 ==== ==== 717 粘土彫刻・塑造 ==== ==== 708 仏像 ==== ==== 709 オブジェ ==== === 720 絵画 === ==== 721 日本画 ==== ==== 722 東洋画 ==== ==== 723 洋画 ==== ==== 724 絵画材料・技法 ==== ==== 725 素描・描画 ==== ==== 726 漫画、挿絵、童画 ==== ==== 727 グラフィックデザイン、図案 ==== ==== 728 書道 ==== === 730 版画 === ==== 731 版画材料・技法 ==== ==== 732 版画史・各国の版画 ==== ==== 733 木版画 ==== ==== 734 石版画 ==== ==== 735 銅版画・鋼版画 ==== ==== 736 リノリウム版画・ゴム版画 ==== ==== 737 写真版画・孔版画 ==== ==== 739 印章、篆刻、印譜 ==== --> === 740 写真 === <!-- ==== 742 写真器械・材料 ==== ==== 743 撮影技術 ==== --> ==== 744 現像・印画 ==== *[[白黒写真の暗室作業]]{{進捗|75%|2007-05-10}} <!-- ==== 745 複写技術 ==== ==== 746 特殊写真 ==== ==== 747 写真の応用 ==== ==== 748 写真集 ==== ==== 749 印刷 ==== === 750 工芸 === ==== 751 陶磁工芸 ==== ==== 752 漆工芸 ==== ==== 753 染織工芸 ==== ==== 754 木竹工芸 ==== ==== 755 宝石・牙角・皮革工芸 ==== ==== 756 金工芸 ==== ==== 757 デザイン・装飾美術 ==== ==== 758 美術家具 ==== ==== 759 人形・玩具 ==== --> === 760 音楽 === ==== 761 音楽の一般理論・音楽学 ==== * [[楽典]] * [[和声学]] * [[楽式]] ==== 762 音楽史・各国の音楽 ==== * [[西洋音楽史]] <!-- ==== 763 楽器・器楽 ==== ==== 764 器楽合奏 ==== ==== 765 宗教音楽・聖楽 ==== ==== 766 劇音楽 ==== ==== 767 声楽 ==== ==== 768 邦楽 ==== ==== 769 舞踊、バレエ ==== === 770 演劇 === ==== 771 劇場・演出・演技 ==== ==== 772 演劇史・各国の演劇 ==== ==== 773 能楽、狂言 ==== ==== 774 歌舞伎 ==== ==== 775 各種の演劇 ==== ==== 777 人形劇 ==== ==== 778 映画 ==== ==== 779 大衆演芸 ==== --> === 780 スポーツ・体育 === <!-- ==== 781 体操、遊戯 ==== ==== 782 陸上競技 ==== --> ==== 783 球技 ==== *[[サッカー]]{{進捗|25%|2006-1-7}} *[[テニス]]{{進捗|25%|2006-1-7}} *[[野球]]{{進捗|25%|2006-1-7}} <!-- ==== 784 冬季競技 ==== --> ==== 785 水上競技 ==== *[[セーリング]]{{進捗|25%|2006-1-7}} ==== 786 戸外レクリエーション ==== ===== 786.1 登山・山岳競技 ===== *[[登山]] ==== 787 釣魚、遊猟 ==== ==== 788 相撲、拳闘、競馬 ==== *[[相撲]]{{進捗|25%|2006-2-23}} *[[競馬]]{{進捗|25%|2023-09-25}} ==== 789 武術 ==== *[[剣道]]{{進捗|25%|2007-6-30}} === 790 諸芸・娯楽 === <!-- ==== 791 茶道 ==== ==== 792 香道 ==== ==== 793 花道 ==== ==== 794 撞球 ==== --> ==== 795 囲碁 ==== *[[囲碁]]{{進捗|25%|2006-1-7}} ==== 796 将棋 ==== *[[将棋]]{{進捗|25%|2006-1-7}} <!-- ==== 797 射倖ゲーム ==== --> ==== 798 室内娯楽 ==== *[[トランプ]]<!--798.2--> *[[トランプ/トランプ教科書]] *[[麻雀]]{{進捗|25%|2006-1-7}} *[[チェス]]{{進捗|25%|2006-1-7}} ===== 798.5 テレビゲーム ===== *[[Minecraft]] <!-- ==== 799 ダンス ==== --> == 8類 言語 == === 800 言語 === ==== 801 言語学 ==== *[[生成文法]] *[[語学]] **[[琉球語]] <!-- ==== 809 言語生活 ==== --> === 810 日本語 === *[[日本語]]{{進捗|25%|2005-05-04}} <!-- ==== 811 音声、音韻、文字 ==== ==== 812 語源、意味 ==== ==== 813 辞典 ==== ==== 814 語彙 ==== ==== 815 文法、語法 ==== ==== 816 文章、文体、作文 ==== ==== 817 読本、解釈、会話 ==== --> ==== 818 方言、訛語 ==== *[[北海道方言]] *[[讃岐弁]] *[[沖縄語]] <!-- === 820 中国語 === --> ==== 829 その他の東洋の諸言語 ==== *[[朝鮮語]]{{進捗|25%|2005-05-04}} *[[ペルシア語]] === 830 英語 === *[[英語]]{{進捗|50%|2005-05-04}} === 840 ドイツ語 === *[[ドイツ語]]{{進捗|50%|2005-05-04}} <!-- ==== 849 その他のゲルマン言語 ==== --> === 850 フランス語 === *[[フランス語]]{{進捗|25%|2005-05-04}} <!-- ==== 859 プロヴァンス語 ==== === 860 スペイン語 === ==== 869 ポルトガル語 ==== === 870 イタリア語 === --> ==== 879 その他のロマンス諸語 ==== *[[ルーマニア語]] <!-- === 880 ロシア語 === ==== 889 その他のスラヴ諸語 ==== === 890 その他の諸言語 === --> ==== 891 ギリシア語 ==== *[[ギリシア語]] ==== 892 ラテン語 ==== *[[ラテン語]]{{進捗|50%|2006-03-21}} ==== 893 その他のヨーロッパの諸言語 ==== *[[デンマーク語]]{{進捗|25%|2005-12-01}} <!-- ==== 894 アフリカの諸言語 ==== ==== 895 アメリカの諸言語 ==== ==== 897 オーストラリアの諸言語 ==== --> ==== 899 国際語 ==== *[[エスペラント]]{{進捗|00%|2005-05-04}} == 9類 文学 == === 900 文学 === *[[古典文学]]{{進捗|25%|2005-05-15}} <!-- ==== 909 児童文学研究 ==== --> === 910 日本文学 === <!-- ==== 911 詩歌 ==== ==== 912 戯曲 ==== --> ==== 913 小説、物語 ==== *[[竹取物語]]{{進捗|25%|2005-05-04}} ==== 914 評論、エッセイ、随筆 ==== *[[方丈記]] <!-- ==== 915 日記、書簡、紀行 ==== ==== 916 記録、手記、ルポルタージュ ==== ==== 917 箴言、アフォリズム、寸言 ==== ==== 918 作品集 ==== ==== 919 漢詩文、日本漢文学 ==== --> === 920 中国文学 === *[[漢詩]]{{進捗|25%|2005-05-04}} <!-- ==== 929 その他の東洋文学 ==== === 930 英文学・米文学 === === 940 ドイツ文学 === ==== 949 その他のゲルマン文学 ==== === 950 フランス文学 === ==== 959 プロヴァンス文学 ==== === 960 スペイン文学 === ==== 969 ポルトガル文学 ==== === 970 イタリア文学 === ==== 979 その他のロマンス文学 ==== === 980 ロシア文学・ソヴィエト文学 === ==== 989 その他のスラヴ文学 ==== --> === 990 その他の諸文学 === ==== 991 ギリシア文学 ==== ==== 992 ラテン文学 ==== *[[ガリア戦記]] ==== 993 その他のヨーロッパ文学 ==== ==== 994 アフリカ文学 ==== ==== 995 アメリカ先住民語の文学 ==== ==== 997 オーストラリア先住民語の文学 ==== ==== 999 国際語による文学 ==== == 関連項目 == *[[w:日本十進分類法#要目表(第3次区分表)]] == 外部リンク == *<del>[http://www.ndl.go.jp/jp/library/data/zan9.html 日本十進分類法新訂9版分類基準]([http://www.ndl.go.jp/ 国立国会図書館])</del>リンク切れ *[https://www.kotono8.com/wiki/%E6%97%A5%E6%9C%AC%E5%8D%81%E9%80%B2%E5%88%86%E9%A1%9E%E6%B3%95%EF%BC%88%E8%A9%B3%E7%B4%B0%EF%BC%89 閾ペディアことのは 日本十進分類法(詳細)] [[Category:日本十進分類法|*]] [[it:Wikibooks:Classificazione decimale Dewey]] 1stdonr5wplnuqchql71ks3zidedqj6 301319 301318 2026-07-08T11:52:41Z Tkkn46tkkn46 89925 /* 374.48 学校行事 */ 修正 301319 wikitext text/x-wiki __NOTOC__ [[メインページ|ウィキブックス]]の全ての書籍を[[:w:日本十進分類法|日本十進分類法]]に従って分類したものです。 {{進捗状況}} == 0類 総記 == === 000 総記 === *[[ウィキペディアの書き方]] <!-- ==== 002 知識・学問・学術 ==== --> ==== 007 情報科学 ==== *[[情報技術]] <!-- ===== 007.1 情報理論 ===== ===== 007.2 歴史 事情 ===== ===== 007.3 情報と社会 ===== ===== 007.4 情報源 ===== ===== 007.5 ドキュメンテーション 情報管理 ===== --> ===== 007.6 データ処理 情報処理 ===== *[[情報処理技術者試験の概要]] *[[初級システムアドミニストレータ]] <!-- ====== 007.61 システム分析 システム設計 ====== --> ====== 007.63 コンピュータシステム ソフトウェア ====== *[[Freenet]] *[[Maxima]] *[[Microsoft Office]] *[[Mizar]] *[[OpenOffice.org]] *[[OSとアプリケーション]] *[[TeX/LaTeX入門]]{{進捗|25%|2005-05-04}} *[[vi]] <!-- ======= 007.632 エキスパートシステム ======= --> ====== 007.634 オペレーティングシステム ====== *[[ChromeOS]] *[[Linuxシステム管理]] *[[Linuxハードウェア]] *[[MS-DOS/PC DOS入門]]{{進捗|50%|2005-05-04}} *[[UNIX/Linux入門]]{{進捗|25%|2005-05-04}} <!-- ======= 007.635 漢字処理システム ======= --> ====== 007.637 図形処理ソフトウェア ====== * [[Inkscape]] ====== 007.64 コンピュータプログラミング ====== *[[機械語]] *[[ゲームプログラミング]] *[[数式処理システム]] *[[ソフトウェア開発技術者]] *[[プログラミング]] *[[BASIC]] *[[C言語]]{{進捗|25%|2005-05-04}} *[[CPlusPlus|C++]] *[[CSS]]{{進捗|00%|2005-06-17}} *[[CGI]]{{進捗|25%|2005-05-04}} *[[GNOMEフレームワーク]] *[[Go]] *[[HTML]]{{進捗|25%|2005-05-04}} *[[Java]]{{進捗|25%|2005-05-04}} *[[JavaScript]]{{進捗|25%|2005-05-04}} *[[Lisp]] *[[OpenGL]] *[[OSS開発ツール]] *[[Perl]]{{進捗|25%|2005-05-04}} *[[PHP]] *[[Ruby]] *[[Scratch]] *[[Scheme]] *[[SVG]] *[[Xプログラミング]] <!-- ======= 007.642 CG技術 ======= ====== 007.65 各種の記憶媒体 ====== ====== 007.68 情報検索 機械検索 ====== --> ===== 007.7 情報システム ===== *[[LANとインターネット]] *[[NTP入門]] *[[TCP/IP入門]] <!-- === 010 図書館・図書館学 === ==== 011 図書館政策・図書館行財政 ==== ==== 012 図書館建築・図書館整備 ==== ==== 013 図書館管理 ==== ==== 014 資料の収集・資料の整理・資料の保管 ==== ==== 015 図書館奉仕・図書館活動 ==== ==== 016 各種の図書館 ==== ==== 017 学校図書館 ==== ==== 018 専門図書館 ==== ==== 019 読書・読書法 ==== --> === 020 図書・書誌学 === ==== 021 著作・編集 ==== ===== 021.4 編集 編纂 ===== *[[ウィキペディアの書き方 入門編]]{{進捗|50%|2005-05-04}} <!-- ==== 022 写本・刊本・造本 ==== ==== 023 出版 ==== --> ==== 024 図書の販売 ==== *[[同人誌即売会参加方法]]{{進捗|75%|2005-05-04}} <!-- ==== 025 一般書誌・全国書誌 ==== ==== 026 稀書目録・善本目録 ==== ==== 027 特種目録 ==== ==== 028 選定図書目録・参考図書目録 ==== ==== 029 蔵書目録・総合目録 ==== --> === 030 百科事典 === ==== 031 日本語 ==== *[[w:mainpage|w:wikipedia]] ===== 031.3 日用便覧 ===== *[[ジョーク集]] <!-- ==== 039 用語索引<一般> ==== === 040 一般論文集・一般講演集 === ==== 041 日本語 ==== ==== 049 雑著 ==== === 050 逐次刊行物 === ==== 051 日本の雑誌 ==== ==== 059 一般年鑑 ==== === 060 団体 === ==== 061 学術・研究機関 ==== ==== 063 文化交流機関 ==== ==== 065 親睦団体・その他の団体 ==== ==== 069 博物館 ==== === 070 ジャーナリズム・新聞 === ==== 071 日本 ==== === 080 叢書・全集・選集 === ==== 081 日本語 ==== ==== 089 その他の諸言語 ==== === 090 貴重書・郷土資料・その他の特別コレクション === --> == 1類 哲学 == === 100 哲学 === *[[哲学・思想]]{{進捗|00%|2005-05-04}} <!-- ==== 101 哲学理論 ==== ==== 102 哲学史 ==== ==== 103 参考図書 ==== ==== 104 論文集・評論集・講演集 ==== ==== 105 逐次刊行物 ==== ==== 106 団体 ==== ==== 107 研究法・指導法・哲学教育 ==== ==== 108 叢集・全集・選集 ==== === 110 哲学各論 === ==== 111 形而上学・存在論 ==== ==== 112 自然哲学・宇宙論 ==== ==== 113 人生観・世界観 ==== ==== 114 人間学 ==== ==== 115 認識論 ==== ==== 116 論理学・弁証法・方法論 ==== ==== 117 価値哲学 ==== ==== 118 文化哲学・技術哲学 ==== === 120 東洋思想 === ==== 121 日本思想 ==== ==== 122 中国思想・中国哲学 ==== ==== 123 経書 ==== ==== 124 先秦思想・諸子 ==== ==== 125 中世思想・近代思想 ==== ==== 126 インド哲学・バラモン教 ==== ==== 129 その他のアジア・アラブ哲学 ==== === 130 西洋哲学 === ==== 131 古代哲学 ==== ==== 132 中世哲学 ==== ==== 133 近代哲学 ==== ==== 134 ドイツ・オーストリア哲学 ==== ==== 135 フランス・オランダ哲学 ==== ==== 136 スペイン・ポルトガル哲学 ==== ==== 137 イタリア哲学 ==== ==== 138 ロシア哲学 ==== ==== 139 その他の哲学 ==== --> === 140 心理学 === *[[心理学]]{{進捗|25%|2005-05-04}} <!-- ==== 141 普通心理学・心理各論 ==== ==== 143 発達心理学 ==== ==== 145 異常心理学 ==== ==== 146 臨床心理学・精神分析学 ==== ==== 147 超心理学・心霊研究 ==== ==== 148 相法・易占 ==== ==== 149 応用心理学 ==== --> === 150 倫理学・道徳 === *[[倫理学]] ==== 151 倫理各論 ==== ==== 152 家庭倫理・性倫理 ==== ==== 153 職業倫理 ==== ==== 154 社会倫理 ==== ==== 155 国体論・詔勅 ==== ==== 156 武士道 ==== ==== 157 報徳教・石門心学 ==== ==== 158 その他の特定主題 ==== ==== 159 人生訓・教訓 ==== <!-- === 160 宗教 === ==== 161 宗教学・宗教思想 ==== ==== 162 宗教史・事情 ==== ==== 163 原始宗教・宗教民族学 ==== ==== 164 神話・神話学 ==== ===== 164.31 ギリシャ神話 ===== ==== 165 比較宗教 ==== ==== 166 道教 ==== ==== 167 イスラーム ==== ==== 168 ヒンドゥー教・ジャイナ教 ==== ==== 169 その他の宗教・新興宗教 ==== === 170 神道 === ==== 171 神道思想・神道説 ==== ==== 172 神祇・神道史 ==== ==== 173 神典 ==== ==== 174 信仰録・説教集 ==== ==== 175 神社・神職 ==== ==== 176 祭祀 ==== ==== 177 布教・伝道 ==== ==== 178 各教派・教派神道 ==== === 180 仏教 === ==== 181 仏教教理・仏教哲学 ==== ==== 182 仏教史 ==== ==== 183 経典 ==== ==== 184 法話・説教集 ==== ==== 185 寺院・僧職 ==== ==== 186 仏会 ==== ==== 187 布教・伝道 ==== ==== 188 各宗 ==== === 190 キリスト教 === ==== 191 教義・キリスト教神学 ==== ==== 192 キリスト教史・迫害史 ==== ==== 193 聖書 ==== ==== 194 信仰録・説教集 ==== ==== 195 教会・聖職 ==== ==== 196 典礼・祭式・礼拝 ==== ==== 197 布教・伝道 ==== ==== 198 各教派・教会史 ==== ==== 199 ユダヤ教 ==== --> == 2類 歴史 == === 200 歴史 === ==== 201 歴史学 ==== *[[歴史学]] <!-- ==== 202 歴史補助学 ==== ==== 203 参考図書 ==== ==== 204 論文集・評論集・講演集 ==== ==== 205 逐次刊行物 ==== ==== 206 団体 ==== ==== 207 研究法・指導法・歴史教育 ==== ==== 208 叢書・全集・選集 ==== --> ==== 209 世界史・文化史 ==== *[[世界史]]{{進捗|25%|2005-05-04}} === 210 日本史 === *[[日本史]]{{進捗|25%|2005-05-04}} <!-- ===== 210.027 古銭学 ===== ==== 211 北海道地方 ==== ==== 212 東北地方 ==== ==== 213 関東地方 ==== ==== 214 北陸地方 ==== ==== 215 中部地方 ==== ==== 216 近畿地方 ==== ==== 217 中国地方 ==== ==== 218 四国地方 ==== ==== 219 九州地方 ==== --> === 220 アジア史・東洋史 === <!-- ==== 221 朝鮮 ==== --> ==== 222 中国 ==== *[[中国史]]{{進捗|25%|2005-12-01}} <!-- ==== 223 東南アジア ==== ==== 224 インドネシア ==== ==== 225 インド ==== ===== 225.97 モルジブ ===== ==== 229 アジアロシア ==== === 230 ヨーロッパ史・西洋史 === ==== 231 古代ギリシア ==== ==== 232 古代ローマ  ==== ==== 233 イギリス・英国 ==== ==== 234 ドイツ・中欧 ==== ==== 235 フランス ==== ==== 236 スペイン イスパニア ==== ==== 237 イタリア ==== ==== 238 ロシア ソビエト連邦 独立国家共同体 ==== ==== 239 バルカン諸国 ==== === 240 アフリカ史 === ==== 241 北アフリカ ==== ==== 242 エジプト ==== ==== 243 バーバリ諸国 ==== ==== 244 西アフリカ ==== ==== 245 東アフリカ ==== ==== 248 南アフリカ ==== ==== 249 インド洋のアフリカ諸島 ==== === 250 北アメリカ史 === ==== 251 カナダ ==== ==== 253 アメリカ合衆国 ==== ==== 255 ラテンアメリカ 中南米 ==== ==== 256 メキシコ ==== ==== 257 中央アメリカ 中米諸国 ==== ==== 259 西インド諸島 ==== === 260 南アメリカ史 === ==== 261 北部諸国 カリブ沿海諸国 ==== ==== 262 ブラジル ==== ==== 263 パラグアイ ==== ==== 264 ウルグアイ ==== ==== 265 アルゼンチン ==== ==== 266 チリ ==== ==== 267 ボリビア ==== ==== 268 ペルー ==== === 270 オセアニア史・両極地方史 === ==== 271 オーストラリア ==== ==== 272 ニュージーランド ==== ==== 273 メラネシア ==== ==== 274 ミクロネシア ==== ==== 275 ポリネシア ==== ==== 276 ハワイ ==== ==== 277 両極地方 ==== ==== 278 北極 北極地方 ==== ==== 279 南極 南極地方 ==== === 280 伝記 === ==== 281 日本 ==== ==== 282 アジア ==== ==== 283 ヨーロッパ ==== ==== 284 アフリカ ==== ==== 285 北アフリカ ==== ==== 286 南アフリカ ==== ==== 287 オセアニア・両極地方 ==== ==== 288 系譜・家史・皇室 ==== ==== 289 個人伝記 ==== --> === 290 地理・地誌・紀行 === *[[地理学]]{{進捗|00%|2005-05-04}} <!-- ==== 290.93 旅行案内記 ==== --> == 3類 社会科学 == <!-- === 300 社会科学 === ==== 301 理論・方法論 ==== ==== 302 政治・経済・社会・文化事情 ==== ==== 303 参考図書 ==== ==== 304 論文集・評論集・講演集 ==== ==== 305 逐次刊行物 ==== ==== 306 団体 ==== ==== 307 研究法・指導法・社会科学教育 ==== ==== 308 叢書・全集・選集 ==== ==== 309 社会思想 ==== === 310 政治 === ==== 311 政治学 ==== ==== 312 政治史・事情 ==== ==== 313 国家の形態・政治体制 ==== ==== 314 議会 ==== ==== 315 政党・政治結社 ==== ==== 316 国家と個人・宗教・民族 ==== ==== 317 行政 ==== ==== 318 地方自治・地方行政 ==== ==== 319 外交・国際問題 ==== --> === 320 法律 === ==== 321 法学 ==== *[[法学]]{{進捗|25%|2005-05-04}} ==== 322 法制史 ==== *[[法制史]] ==== 323 憲法 ==== *[[憲法]] ==== 324 民法 ==== *[[民法]] ==== 325 商法 ==== *[[商法]] ==== 326 刑法・刑事法 ==== *[[刑法]] ==== 327 司法・訴訟手続法 ==== *[[民事訴訟法]] *[[刑事訴訟法]] ==== 328 諸法 ==== *[[教育基本法]] *[[知的財産権法]] ==== 329 国際法 ==== *[[国際法]] === 330 経済 === ==== 331 経済学・経済思想 ==== *[[経済学]]{{進捗|25%|2005-05-04}} ==== 332 経済史・事情・経済体制 ==== ==== 333 経済政策・国際経済 ==== ==== 334 人口・土地・資源 ==== ==== 335 企業・経営 ==== ==== 336 経営管理 ==== *[[公認会計士試験]] ==== 337 貨幣・通貨 ==== ==== 338 金融・銀行・信託 ==== ==== 339 保険 ==== === 340 財政 === <!-- ==== 341 財政学・財政思想 ==== ==== 342 財政史・事情 ==== ==== 343 財政政策・財政行政 ==== ==== 344 予算・決算 ==== ==== 345 租税 ==== ==== 347 公債・国債 ==== ==== 348 専売・国有財産 ==== ==== 349 地方財政 ==== === 350 統計 === ==== 351 日本 ==== ==== 358 人口統計・国勢調査 ==== ==== 359 各種の統計書 ==== --> === 360 社会 === <!-- ==== 361 社会学 ==== ==== 362 社会史・社会体制 ==== ==== 364 社会保障 ==== ==== 365 生活・消費者問題 ==== ==== 366 労働経済・労働問題 ==== ==== 367 家族問題、男性・女性問題、老人問題 ==== ==== 368 社会病理 ==== --> ==== 369 社会福祉 ==== ===== 369.3 災害 災害救助 ===== *[[防災]]{{進捗|25%|2006-04-06}} === 370 教育 === <!-- ==== 371 教育学、教育思想 ==== ===== 371.42 登校拒否・いじめ ===== --> ==== 372 教育史・事情 ==== *[[教育勅語]]{{進捗|75%|2005-05-04}} <!-- ==== 373 教育政策、教育制度、教育行財政 ==== --> ==== 374 学校経営・管理、学校保健 ==== c===== 374.48 学校行事 ===== *[[運動会]] ==== 375 教育課程、学習指導、教科別教育 ==== *[[学校教育]]{{進捗|25%|2005-05-04}} *[[生活と進路]]{{進捗|50%|2005-05-04}} ===== 374.9 教科書、教科書検定 ===== *[[小学校の学習]]{{進捗|50%|2023-09-25}} *[[中学校の学習]]{{進捗|50%|2023-09-25}} *[[高等学校の学習]]{{進捗|00%|2023-09-25}} **[[高等学校の学習/旧課程]]{{進捗|25%|2023-09-25}} <!-- * [[小学校算数]] {{進捗|25%|2005-05-04}} * [[中学校数学]] {{進捗|50%|2005-05-10}} * [[高等学校世界史A]] {{進捗|25%|2015-08-30}} * [[高等学校地理B]] {{進捗|25%|2005-11-1}} * [[高等学校現代社会]] {{進捗|25%|2015-08-30}} * [[高等学校政治経済]] {{進捗|50%|2015-08-30}} *[[高等学校倫理]] *[[高等学校数学]] *[[高等学校数学基礎]]{{進捗|100%|2005-05-04}} *[[高等学校数学I]]{{進捗|50%|2005-05-04}} *[[高等学校数学III]]{{進捗|50%|2005-05-04}} *[[高等学校数学B]]{{進捗|50%|2005-05-04}} *[[高等学校数学C]]{{進捗|50%|2005-05-04}} *[[高等学校理科総合B]]{{進捗|50%|2005-05-04}} *[[高等学校物理]]{{進捗|50%|2005-11-1}} * [[高等学校化学]] {{進捗|50%|2015-08-30}} * [[高等学校生物]] {{進捗|50%|2015-08-30}} * [[高等学校地学]] {{進捗|25%|2015-08-30}} *[[高等学校情報A]] *[[高等学校情報B]] *[[高等学校情報C]] --> *[[小・中・高等学校演習]] *[[検定教科書]] ==== 376 幼児・初等・中等教育 ==== *[[小学校・中学校・高等学校の学習]] ==== 377 大学、高等・専門教育、学術行政 ==== * [[大学受験ガイド]] {{進捗|50%|2015-08-30}} <!-- ==== 378 障害児教育 ==== ==== 379 社会教育 ==== === 380 風俗習慣・民俗学・民族学 === ==== 382 風俗史・民俗誌、民族誌 ==== ==== 383 衣食住の習俗 ==== ==== 384 社会・家庭生活の習俗 ==== ==== 385 通過儀礼、冠婚葬祭 ==== ==== 386 年中行事、祭礼 ==== ==== 387 民間信仰、迷信(俗信) ==== ==== 388 伝説、民話(昔話) ==== ==== 389 民族学、文化人類学 ==== === 390 国防・軍事 === ==== 391 戦争、戦略、戦術 ==== ==== 392 国防史・事情、軍事史・事情 ==== ==== 393 国防政策・行政・法令 ==== ==== 394 軍事医学、兵食 ==== ==== 395 軍事施設、軍需品 ==== ==== 396 陸軍 ==== ==== 397 海軍 ==== ==== 398 空軍 ==== ==== 399 古代兵法、軍学 ==== --> == 4類 自然科学 == <!-- === 400 自然科学 === ==== 401 科学理論・科学哲学 ==== ==== 402 科学史・事情 ==== ==== 403 参考図書 ==== ==== 404 論文集・評論集・講演集 ==== ==== 405 逐次刊行物 ==== ==== 406 団体 ==== ==== 407 研究法・指導法・科学教育 ==== ==== 408 叢書・全集・選集 ==== ==== 409 科学技術政策・科学技術行政 ==== --> === 410 数学 === * [[数学]] * [[初等数学]] * [[初等数学公式集]]{{進捗|25%|2005-05-04}} * [[初等数学演習]]{{進捗|25%|2005-05-04}} * [[初等数学記号集]] * [[Wikibooks:初等数学用語索引|初等数学用語索引]]{{進捗|25%|2005-05-04}} * [[中等数学]] * [[高等数学]] * [[大学数学公式集]] ==== 411 代数学 ==== ===== 411.6 集合論 ===== *[[公理的集合論]] ==== 412 数論 ==== ==== 413 解析学 ==== * [[解析学]] * [[解析学基礎]]{{進捗|25%|2005-05-04}} ==== 414 幾何学 ==== ==== 415 位相数学 ==== * [[位相幾何学]]{{進捗|25%|2008-09-03}} ==== 417 確率論、数理統計学 ==== * [[統計学基礎]]{{進捗|25%|2005-05-04}} <!-- ==== 418 計算法 ==== ==== 419 和算、中国算法 ==== --> === 420 物理学 === *[[物理学]] ==== 421 理論物理学 ==== <!-- ===== 421.1 基礎理論 エーテル理論 ===== --> ===== 421.2 相対性理論 ===== *[[特殊相対論]] *[[一般相対性理論]] ===== 421.3 量子力学、量子論 ===== *[[場の量子論]] *[[量子力学]]{{進捗|50%|2005-05-04}} ===== 421.4 統計力学 ===== *[[統計力学I]] *[[統計力学II]] ===== 421.5 数理物理学.物理数学 ===== * [[物理数学I]] {{進捗|75%|2023-11-05}} * [[物理数学II]] ==== 423 力学 ==== *[[解析力学]] *[[古典力学]]{{進捗|50%|2005-05-04}} ==== 424 振動学、音響学 ==== *[[振動と波動]] * [[音響学]] ==== 425 光学 ==== *[[光の偏極]] ==== 426 熱学 ==== *[[熱力学]] ==== 427 電磁気学 ==== *[[電磁気学]] <!-- ==== 428 物性物理学 ==== ==== 429 原子物理学 ==== --> === 430 化学 === <!-- ==== 431 物理化学. 理論化学 ==== ==== 432 実験化学 ==== ==== 433 分析化学 ==== ==== 434 合成化学 ==== --> ==== 435 無機化学 ==== *[[無機化学]]{{進捗|25%|2005-05-04}} <!-- ==== 436 金属元素とその化合物 ==== --> ==== 437 有機化学 ==== *[[有機化学]]{{進捗|25%|2005-05-21}} <!-- ==== 438 環式化合物の化学 ==== ==== 439 天然物質の化学 ==== --> === 440 天文学・宇宙科学 === * [[天文学]]{{進捗|25%|2005-12-01}} <!-- ==== 441 理論天文学・数理天文学 ==== ==== 442 実地天文学・天体観測法 ==== ==== 443 恒星・恒星天文学 ==== ==== 444 太陽・太陽物理学 ==== ==== 445 惑星・衛星 ==== ==== 446 月 ==== ==== 447 彗星・流星 ==== ==== 448 地球・天文地理学 ==== ==== 449 時法・暦学 ==== --> === 450 地球科学・地学 === * [[地球科学]]{{進捗|25%|2005-12-01}} <!-- ==== 451 気象学 ==== ==== 452 海洋学 ==== ==== 453 地震学 ==== ===== 453.38 地震予知 ===== ==== 454 地形学 ==== ==== 455 地質学 ==== ==== 456 地史学・層位学 ==== ==== 457 古生物学・化石 ==== ==== 458 岩石学 ==== ==== 459 鉱物学 ==== --> === 460 生物化学・一般生物学 === *[[生物学の研究技術]]{{進捗|25%|2005-05-04}} <!-- ==== 461 理論生物学・生命論 ==== ==== 462 生物地理・生物誌 ==== ==== 463 細胞学 ==== ==== 464 生化学 ==== ==== 465 微生物学 ==== ==== 467 遺伝学 ==== ===== 467.25 遺伝子組み換え ===== ==== 468 生態学 ==== ==== 469 人類学 ==== --> === 470 植物学 === *[[植物学]]{{進捗|25%|2005-05-04}} <!-- ==== 471 一般植物学 ==== ==== 472 植物地理・植物誌 ==== ==== 473 葉状植物 ==== ==== 474 藻類・菌類 ==== ==== 475 コケ植物 ==== ==== 476 シダ植物 ==== ==== 477 種子植物 ==== ==== 478 裸子植物 ==== ==== 479 被子植物 ==== === 480 動物学 === ==== 481 一般動物学 ==== ==== 482 動物地理・動物誌 ==== ==== 483 無脊椎動物 ==== ==== 484 軟体動物・貝類学 ==== ==== 485 節足動物 ==== ==== 486 昆虫類 ==== ==== 487 脊椎動物 ==== ==== 488 鳥類 ==== ==== 489 哺乳類 ==== --> === 490 医学 === * [[医学]] *[[OsiriX_オンライン解説文書]]{{進捗|75%|2005-05-04}} ==== 491 基礎医学 ==== *[[生理学]]{{進捗|00%|2006-11-09}} *[[解剖学]]{{進捗|25%|2006-11-09}} *[[神経解剖学]]{{進捗|00%|2006-11-09}} *[[組織学]]{{進捗|00%|2006-11-09}} *[[微生物学]]{{進捗|00%|2006-11-09}} *[[病理学]]{{進捗|00%|2006-11-09}} <!-- ==== 492 臨床医学 ==== --> ==== 493 内科学 ==== *[[内科学 呼吸器]]{{進捗|00%|2006-11-09}} <!-- ==== 494 外科学 ==== ==== 495 産科学,婦人科学 ==== ==== 496 眼科学,耳鼻咽喉科学 ==== ==== 497 歯科学 ==== ==== 498 衛生学,公衆衛生学,予防医学 ==== --> ==== 499 薬学 ==== *[[薬理学]]{{進捗|00%|2006-11-09}} ==5類 技術・工学・工業 == === 500 技術・工学 === ==== 501 工業基礎学 ==== ==== 502 技術史・工学史 ==== ==== 503 参考図書 ==== ==== 504 論文集・評論集・講演集 ==== ==== 505 逐次刊行物 ==== ==== 506 団体 ==== ==== 507 研究法・指導法・技術教育 ==== ==== 508 叢書・全集・選集 ==== ==== 509 工業・工業経済 ==== === 510 建設工学・土木工学 === ==== 511 土木力学・建設材料 ==== ==== 512 測量 ==== ==== 513 土木設計・施工法 ==== ==== 514 道路工学 ==== ==== 515 橋梁工学 ==== ==== 516 鉄道工学 ==== ==== 517 河海工学・河川工学 ==== ==== 518 衛生工学・都市工学 ==== ===== 518.523 ごみの再利用 ===== ==== 519 公害・環境工学 ==== ===== 519.12 環境法 ===== * [[環境法]] === 520 建築学 === ==== 521 日本の建築 ==== ==== 522 東洋の建築・アジアの建築 ==== ==== 523 西洋の建築・その他の様式の建築 ==== ==== 524 建築構造 ==== ==== 525 建築計画・施工 ==== ==== 526 各種の建築 ==== ==== 527 住宅建築 ==== ==== 528 建築設備・設備工学 ==== ==== 529 建築意匠・装飾 ==== === 530 機械工学・原子力工学 === ==== 531 機械力学・材料・設計 ==== ==== 532 機械工作・工作機械 ==== ==== 533 熱機関・熱工学 ==== ==== 534 流体機械・流体工学 ==== ==== 535 精密機器・光学機器 ==== ==== 536 運輸工学・車輌・運搬機械 ==== ==== 537 自動車工学 ==== ===== 537.25 電気自動車 ===== ==== 538 航空宇宙工学 ==== ==== 539 原子力工学 ==== === 540 電気工学・電子工学 === ==== 540 電気工学 ==== ==== 541 電気回路・計測・材料 ==== ==== 542 電気機器 ==== ==== 543 発電 ==== ==== 544 送電・変電・配電 ==== ==== 545 電灯・照明・電熱 ==== ==== 546 電気鉄道 ==== ==== 547 通信工学・電気通信 ==== ==== 548 情報工学 ==== ==== 549 電子工学 ==== === 550 海洋工学・船舶工学 === ==== 551 理論造船学 ==== ==== 552 船体構造・材料・施工 ==== ==== 553 船体艤装・船舶設備 ==== ==== 554 舶用機関[造機] ==== ==== 555 船舶修理・保守 ==== ==== 556 各種の船舶・艦艇 ==== ==== 557 航海・航海学 ==== ==== 558 海洋開発 ==== ==== 559 兵器、軍事工学 ==== === 560 金属工学・鉱山工学 === ==== 561 採鉱・選鉱 ==== ==== 562 各種の金属鉱床・採掘 ==== ==== 563 冶金・合金 ==== ==== 564 鉄鋼 ==== ==== 565 非鉄金属 ==== ==== 566 金属加工・製造冶金 ==== ==== 567 石炭 ==== ==== 568 石油 ==== ==== 569 非金属鉱物・土石採取業 ==== === 570 化学工業 === ==== 571 化学工学・化学機器 ==== ==== 572 電気化学工業 ==== ==== 573 セラミックス・窯業・珪酸塩化学工業 ==== ==== 574 化学薬品 ==== ==== 575 燃料・爆発物 ==== ==== 576 油脂類 ==== ==== 577 染料 ==== ==== 578 高分子化学工業 ==== ==== 579 その他の化学工業 ==== === 580 製造工業 === ==== 581 金属製品 ==== ==== 582 事務機器・家庭機器・楽器 ==== ==== 583 木工業・木製品 ==== ==== 584 皮革工業・皮革製品 ==== ==== 585 パルプ・製紙工業 ==== ==== 586 繊維工学 ==== ==== 587 染色加工・染色業 ==== ==== 588 食品工業 ==== ==== 589 その他の雑工業 ==== === 590 家政学・生活科学 === <!-- ==== 591 家庭経済・経営 ==== ==== 592 家庭理工学 ==== ==== 593 衣服・裁縫 ==== ==== 594 手芸 ==== ==== 595 理容・美容 ==== ===== 595.6 痩身法 ===== ==== 596 食品・料理 ==== *[[料理本]]{{進捗|25%|2005-05-04}} <!-- ==== 597 住居・家具調度 ==== ==== 598 家庭衛生 ==== ==== 599 育児 ==== --> ==6類 産業 == <!-- === 600 産業 === ==== 601 産業政策・行政・総合開発 ==== ==== 602 産業史・事情・物産誌 ==== ==== 603 参考図書 ==== ==== 604 論文集・評論集・講演集 ==== ==== 605 逐次刊行物 ==== ==== 606 団体 ==== ==== 607 研究法・指導法・産業教育 ==== ==== 608 叢書・全集・選集 ==== ==== 609 度量衡、計量法 ==== === 610 農業 === ==== 611 農業経済 ==== ==== 612 農業史・事情 ==== ==== 613 農業基礎学 ==== ==== 614 農業工学 ==== ==== 615 作物栽培・作物学 ==== ==== 616 食用作物 ==== ==== 617 工芸作物 ==== ==== 618 繊維作物 ==== ==== 619 農産物製造・加工 ==== --> === 620 園芸 === <!-- ==== 621 園芸経済・行政・経営 ==== ==== 622 園芸史・事情 ==== ==== 623 園芸植物学・病虫害 ==== ==== 624 温室・温床・園芸用具 ==== ==== 625 果樹園芸 ==== --> ==== 626 蔬菜園芸 ==== *[[ダイズの栽培]]{{進捗|00%|2007-02-21}} ==== 627 花卉園芸[草花] ==== *[[サボテンの栽培]]{{進捗|00%|2007-02-21}} <!-- ==== 628 園芸利用 ==== ==== 629 造園 ==== === 630 蚕糸業 === ==== 631 蚕糸経済・行政・経営 ==== ==== 632 蚕糸業史・事情 ==== ==== 633 蚕学・蚕業基礎学 ==== ==== 634 蚕種 ==== ==== 635 飼育法 ==== ==== 636 くわ・栽桑 ==== ==== 637 蚕室・蚕具 ==== ==== 638 まゆ ==== ==== 639 製糸・生糸・蚕糸利用 ==== --> === 640 畜産業 === <!-- ==== 641 畜産経済・行政・経営 ==== ==== 642 畜産史・事情 ==== ==== 643 家畜の繁殖・家畜飼料 ==== ==== 644 家畜の管理・畜舎・用具 ==== ==== 645 家畜・畜産動物各論 ==== --> ==== 646 家禽各論・飼鳥 ==== *[[ホンセイインコ類の飼育]]{{進捗|00%|2007-02-21}} <!-- ===== 646.9 みつばち・昆虫 ===== ==== 648 畜産製造・畜産物 ==== ==== 649 獣医学・比較医学 ==== ==== 649 獣医学 ==== === 650 林業 === ==== 651 林業経済・行政・経営 ==== ==== 652 森林史・林業史・事情 ==== ==== 653 森林立地・造林 ==== ==== 654 森林保護 ==== ==== 655 森林施業 ==== ==== 656 森林工学 ==== ==== 657 森林利用・林産物・木材学 ==== ==== 658 林産製造 ==== ==== 659 狩猟 ==== === 660 水産業 === ==== 661 水産経済・行政・経営 ==== ==== 662 水産業および漁業史・事情 ==== ==== 663 水産基礎学 ==== ==== 664 漁労・漁業各論 ==== ==== 665 漁船・漁具 ==== ==== 666 水産増殖・養殖業 ==== ==== 667 水産製造・水産食品 ==== ==== 668 水産物利用・水産利用工業 ==== ==== 669 製塩・塩業 ==== === 670 商業 === ==== 671 商業政策・行政 ==== ==== 672 商業史・事情 ==== ==== 673 商業経営・商店 ==== ==== 674 広告・宣伝 ==== ==== 675 マーケティング ==== ==== 676 取引所 ==== ==== 678 貿易 ==== === 680 運輸・交通 === ==== 681 交通政策・行政・経営 ==== ==== 682 交通史・事情 ==== ==== 683 海運 ==== ==== 684 内水・運河交通 ==== ==== 685 陸運・自動車運送 ==== ==== 686 鉄道 ==== ==== 687 航空運送 ==== ==== 688 倉庫業 ==== ==== 689 観光事業 ==== === 690 通信事業 === ==== 691 通信政策・行政・法令 ==== ==== 692 通信事業史・事情 ==== ==== 693 郵便・郵政事業 ==== ==== 694 電気通信事業 ==== ==== 699 放送事業 ==== ===== 699.39 アナウンサー ===== --> == 7類 芸術 == <!-- === 700 芸術・美術 === ==== 701 芸術理論・美学 ==== ==== 702 芸術史・美術史 ==== ==== 703 参考図書[レファレンスブック] ==== ==== 704 論文集・評論集・講演集 ==== ==== 705 逐次刊行物 ==== ==== 706 団体 ==== ==== 707 研究法・指導法・芸術教育 ==== ==== 708 叢書・全集・選集 ==== ==== 709 芸術政策・文化財 ==== === 710 彫刻 === ==== 711 彫塑材料・技法 ==== ==== 712 彫刻史・各国の彫刻 ==== ==== 713 木彫 ==== ==== 714 石彫 ==== ==== 715 金属彫刻・鋳造 ==== ==== 717 粘土彫刻・塑造 ==== ==== 708 仏像 ==== ==== 709 オブジェ ==== === 720 絵画 === ==== 721 日本画 ==== ==== 722 東洋画 ==== ==== 723 洋画 ==== ==== 724 絵画材料・技法 ==== ==== 725 素描・描画 ==== ==== 726 漫画、挿絵、童画 ==== ==== 727 グラフィックデザイン、図案 ==== ==== 728 書道 ==== === 730 版画 === ==== 731 版画材料・技法 ==== ==== 732 版画史・各国の版画 ==== ==== 733 木版画 ==== ==== 734 石版画 ==== ==== 735 銅版画・鋼版画 ==== ==== 736 リノリウム版画・ゴム版画 ==== ==== 737 写真版画・孔版画 ==== ==== 739 印章、篆刻、印譜 ==== --> === 740 写真 === <!-- ==== 742 写真器械・材料 ==== ==== 743 撮影技術 ==== --> ==== 744 現像・印画 ==== *[[白黒写真の暗室作業]]{{進捗|75%|2007-05-10}} <!-- ==== 745 複写技術 ==== ==== 746 特殊写真 ==== ==== 747 写真の応用 ==== ==== 748 写真集 ==== ==== 749 印刷 ==== === 750 工芸 === ==== 751 陶磁工芸 ==== ==== 752 漆工芸 ==== ==== 753 染織工芸 ==== ==== 754 木竹工芸 ==== ==== 755 宝石・牙角・皮革工芸 ==== ==== 756 金工芸 ==== ==== 757 デザイン・装飾美術 ==== ==== 758 美術家具 ==== ==== 759 人形・玩具 ==== --> === 760 音楽 === ==== 761 音楽の一般理論・音楽学 ==== * [[楽典]] * [[和声学]] * [[楽式]] ==== 762 音楽史・各国の音楽 ==== * [[西洋音楽史]] <!-- ==== 763 楽器・器楽 ==== ==== 764 器楽合奏 ==== ==== 765 宗教音楽・聖楽 ==== ==== 766 劇音楽 ==== ==== 767 声楽 ==== ==== 768 邦楽 ==== ==== 769 舞踊、バレエ ==== === 770 演劇 === ==== 771 劇場・演出・演技 ==== ==== 772 演劇史・各国の演劇 ==== ==== 773 能楽、狂言 ==== ==== 774 歌舞伎 ==== ==== 775 各種の演劇 ==== ==== 777 人形劇 ==== ==== 778 映画 ==== ==== 779 大衆演芸 ==== --> === 780 スポーツ・体育 === <!-- ==== 781 体操、遊戯 ==== ==== 782 陸上競技 ==== --> ==== 783 球技 ==== *[[サッカー]]{{進捗|25%|2006-1-7}} *[[テニス]]{{進捗|25%|2006-1-7}} *[[野球]]{{進捗|25%|2006-1-7}} <!-- ==== 784 冬季競技 ==== --> ==== 785 水上競技 ==== *[[セーリング]]{{進捗|25%|2006-1-7}} ==== 786 戸外レクリエーション ==== ===== 786.1 登山・山岳競技 ===== *[[登山]] ==== 787 釣魚、遊猟 ==== ==== 788 相撲、拳闘、競馬 ==== *[[相撲]]{{進捗|25%|2006-2-23}} *[[競馬]]{{進捗|25%|2023-09-25}} ==== 789 武術 ==== *[[剣道]]{{進捗|25%|2007-6-30}} === 790 諸芸・娯楽 === <!-- ==== 791 茶道 ==== ==== 792 香道 ==== ==== 793 花道 ==== ==== 794 撞球 ==== --> ==== 795 囲碁 ==== *[[囲碁]]{{進捗|25%|2006-1-7}} ==== 796 将棋 ==== *[[将棋]]{{進捗|25%|2006-1-7}} <!-- ==== 797 射倖ゲーム ==== --> ==== 798 室内娯楽 ==== *[[トランプ]]<!--798.2--> *[[トランプ/トランプ教科書]] *[[麻雀]]{{進捗|25%|2006-1-7}} *[[チェス]]{{進捗|25%|2006-1-7}} ===== 798.5 テレビゲーム ===== *[[Minecraft]] <!-- ==== 799 ダンス ==== --> == 8類 言語 == === 800 言語 === ==== 801 言語学 ==== *[[生成文法]] *[[語学]] **[[琉球語]] <!-- ==== 809 言語生活 ==== --> === 810 日本語 === *[[日本語]]{{進捗|25%|2005-05-04}} <!-- ==== 811 音声、音韻、文字 ==== ==== 812 語源、意味 ==== ==== 813 辞典 ==== ==== 814 語彙 ==== ==== 815 文法、語法 ==== ==== 816 文章、文体、作文 ==== ==== 817 読本、解釈、会話 ==== --> ==== 818 方言、訛語 ==== *[[北海道方言]] *[[讃岐弁]] *[[沖縄語]] <!-- === 820 中国語 === --> ==== 829 その他の東洋の諸言語 ==== *[[朝鮮語]]{{進捗|25%|2005-05-04}} *[[ペルシア語]] === 830 英語 === *[[英語]]{{進捗|50%|2005-05-04}} === 840 ドイツ語 === *[[ドイツ語]]{{進捗|50%|2005-05-04}} <!-- ==== 849 その他のゲルマン言語 ==== --> === 850 フランス語 === *[[フランス語]]{{進捗|25%|2005-05-04}} <!-- ==== 859 プロヴァンス語 ==== === 860 スペイン語 === ==== 869 ポルトガル語 ==== === 870 イタリア語 === --> ==== 879 その他のロマンス諸語 ==== *[[ルーマニア語]] <!-- === 880 ロシア語 === ==== 889 その他のスラヴ諸語 ==== === 890 その他の諸言語 === --> ==== 891 ギリシア語 ==== *[[ギリシア語]] ==== 892 ラテン語 ==== *[[ラテン語]]{{進捗|50%|2006-03-21}} ==== 893 その他のヨーロッパの諸言語 ==== *[[デンマーク語]]{{進捗|25%|2005-12-01}} <!-- ==== 894 アフリカの諸言語 ==== ==== 895 アメリカの諸言語 ==== ==== 897 オーストラリアの諸言語 ==== --> ==== 899 国際語 ==== *[[エスペラント]]{{進捗|00%|2005-05-04}} == 9類 文学 == === 900 文学 === *[[古典文学]]{{進捗|25%|2005-05-15}} <!-- ==== 909 児童文学研究 ==== --> === 910 日本文学 === <!-- ==== 911 詩歌 ==== ==== 912 戯曲 ==== --> ==== 913 小説、物語 ==== *[[竹取物語]]{{進捗|25%|2005-05-04}} ==== 914 評論、エッセイ、随筆 ==== *[[方丈記]] <!-- ==== 915 日記、書簡、紀行 ==== ==== 916 記録、手記、ルポルタージュ ==== ==== 917 箴言、アフォリズム、寸言 ==== ==== 918 作品集 ==== ==== 919 漢詩文、日本漢文学 ==== --> === 920 中国文学 === *[[漢詩]]{{進捗|25%|2005-05-04}} <!-- ==== 929 その他の東洋文学 ==== === 930 英文学・米文学 === === 940 ドイツ文学 === ==== 949 その他のゲルマン文学 ==== === 950 フランス文学 === ==== 959 プロヴァンス文学 ==== === 960 スペイン文学 === ==== 969 ポルトガル文学 ==== === 970 イタリア文学 === ==== 979 その他のロマンス文学 ==== === 980 ロシア文学・ソヴィエト文学 === ==== 989 その他のスラヴ文学 ==== --> === 990 その他の諸文学 === ==== 991 ギリシア文学 ==== ==== 992 ラテン文学 ==== *[[ガリア戦記]] ==== 993 その他のヨーロッパ文学 ==== ==== 994 アフリカ文学 ==== ==== 995 アメリカ先住民語の文学 ==== ==== 997 オーストラリア先住民語の文学 ==== ==== 999 国際語による文学 ==== == 関連項目 == *[[w:日本十進分類法#要目表(第3次区分表)]] == 外部リンク == *<del>[http://www.ndl.go.jp/jp/library/data/zan9.html 日本十進分類法新訂9版分類基準]([http://www.ndl.go.jp/ 国立国会図書館])</del>リンク切れ *[https://www.kotono8.com/wiki/%E6%97%A5%E6%9C%AC%E5%8D%81%E9%80%B2%E5%88%86%E9%A1%9E%E6%B3%95%EF%BC%88%E8%A9%B3%E7%B4%B0%EF%BC%89 閾ペディアことのは 日本十進分類法(詳細)] [[Category:日本十進分類法|*]] [[it:Wikibooks:Classificazione decimale Dewey]] aa7ckjowkmea20p95oxfge380bb7gxc 301320 301319 2026-07-08T11:54:56Z Tkkn46tkkn46 89925 /* 374 学校経営・管理、学校保健 */ 申し訳ありません。 301320 wikitext text/x-wiki __NOTOC__ [[メインページ|ウィキブックス]]の全ての書籍を[[:w:日本十進分類法|日本十進分類法]]に従って分類したものです。 {{進捗状況}} == 0類 総記 == === 000 総記 === *[[ウィキペディアの書き方]] <!-- ==== 002 知識・学問・学術 ==== --> ==== 007 情報科学 ==== *[[情報技術]] <!-- ===== 007.1 情報理論 ===== ===== 007.2 歴史 事情 ===== ===== 007.3 情報と社会 ===== ===== 007.4 情報源 ===== ===== 007.5 ドキュメンテーション 情報管理 ===== --> ===== 007.6 データ処理 情報処理 ===== *[[情報処理技術者試験の概要]] *[[初級システムアドミニストレータ]] <!-- ====== 007.61 システム分析 システム設計 ====== --> ====== 007.63 コンピュータシステム ソフトウェア ====== *[[Freenet]] *[[Maxima]] *[[Microsoft Office]] *[[Mizar]] *[[OpenOffice.org]] *[[OSとアプリケーション]] *[[TeX/LaTeX入門]]{{進捗|25%|2005-05-04}} *[[vi]] <!-- ======= 007.632 エキスパートシステム ======= --> ====== 007.634 オペレーティングシステム ====== *[[ChromeOS]] *[[Linuxシステム管理]] *[[Linuxハードウェア]] *[[MS-DOS/PC DOS入門]]{{進捗|50%|2005-05-04}} *[[UNIX/Linux入門]]{{進捗|25%|2005-05-04}} <!-- ======= 007.635 漢字処理システム ======= --> ====== 007.637 図形処理ソフトウェア ====== * [[Inkscape]] ====== 007.64 コンピュータプログラミング ====== *[[機械語]] *[[ゲームプログラミング]] *[[数式処理システム]] *[[ソフトウェア開発技術者]] *[[プログラミング]] *[[BASIC]] *[[C言語]]{{進捗|25%|2005-05-04}} *[[CPlusPlus|C++]] *[[CSS]]{{進捗|00%|2005-06-17}} *[[CGI]]{{進捗|25%|2005-05-04}} *[[GNOMEフレームワーク]] *[[Go]] *[[HTML]]{{進捗|25%|2005-05-04}} *[[Java]]{{進捗|25%|2005-05-04}} *[[JavaScript]]{{進捗|25%|2005-05-04}} *[[Lisp]] *[[OpenGL]] *[[OSS開発ツール]] *[[Perl]]{{進捗|25%|2005-05-04}} *[[PHP]] *[[Ruby]] *[[Scratch]] *[[Scheme]] *[[SVG]] *[[Xプログラミング]] <!-- ======= 007.642 CG技術 ======= ====== 007.65 各種の記憶媒体 ====== ====== 007.68 情報検索 機械検索 ====== --> ===== 007.7 情報システム ===== *[[LANとインターネット]] *[[NTP入門]] *[[TCP/IP入門]] <!-- === 010 図書館・図書館学 === ==== 011 図書館政策・図書館行財政 ==== ==== 012 図書館建築・図書館整備 ==== ==== 013 図書館管理 ==== ==== 014 資料の収集・資料の整理・資料の保管 ==== ==== 015 図書館奉仕・図書館活動 ==== ==== 016 各種の図書館 ==== ==== 017 学校図書館 ==== ==== 018 専門図書館 ==== ==== 019 読書・読書法 ==== --> === 020 図書・書誌学 === ==== 021 著作・編集 ==== ===== 021.4 編集 編纂 ===== *[[ウィキペディアの書き方 入門編]]{{進捗|50%|2005-05-04}} <!-- ==== 022 写本・刊本・造本 ==== ==== 023 出版 ==== --> ==== 024 図書の販売 ==== *[[同人誌即売会参加方法]]{{進捗|75%|2005-05-04}} <!-- ==== 025 一般書誌・全国書誌 ==== ==== 026 稀書目録・善本目録 ==== ==== 027 特種目録 ==== ==== 028 選定図書目録・参考図書目録 ==== ==== 029 蔵書目録・総合目録 ==== --> === 030 百科事典 === ==== 031 日本語 ==== *[[w:mainpage|w:wikipedia]] ===== 031.3 日用便覧 ===== *[[ジョーク集]] <!-- ==== 039 用語索引<一般> ==== === 040 一般論文集・一般講演集 === ==== 041 日本語 ==== ==== 049 雑著 ==== === 050 逐次刊行物 === ==== 051 日本の雑誌 ==== ==== 059 一般年鑑 ==== === 060 団体 === ==== 061 学術・研究機関 ==== ==== 063 文化交流機関 ==== ==== 065 親睦団体・その他の団体 ==== ==== 069 博物館 ==== === 070 ジャーナリズム・新聞 === ==== 071 日本 ==== === 080 叢書・全集・選集 === ==== 081 日本語 ==== ==== 089 その他の諸言語 ==== === 090 貴重書・郷土資料・その他の特別コレクション === --> == 1類 哲学 == === 100 哲学 === *[[哲学・思想]]{{進捗|00%|2005-05-04}} <!-- ==== 101 哲学理論 ==== ==== 102 哲学史 ==== ==== 103 参考図書 ==== ==== 104 論文集・評論集・講演集 ==== ==== 105 逐次刊行物 ==== ==== 106 団体 ==== ==== 107 研究法・指導法・哲学教育 ==== ==== 108 叢集・全集・選集 ==== === 110 哲学各論 === ==== 111 形而上学・存在論 ==== ==== 112 自然哲学・宇宙論 ==== ==== 113 人生観・世界観 ==== ==== 114 人間学 ==== ==== 115 認識論 ==== ==== 116 論理学・弁証法・方法論 ==== ==== 117 価値哲学 ==== ==== 118 文化哲学・技術哲学 ==== === 120 東洋思想 === ==== 121 日本思想 ==== ==== 122 中国思想・中国哲学 ==== ==== 123 経書 ==== ==== 124 先秦思想・諸子 ==== ==== 125 中世思想・近代思想 ==== ==== 126 インド哲学・バラモン教 ==== ==== 129 その他のアジア・アラブ哲学 ==== === 130 西洋哲学 === ==== 131 古代哲学 ==== ==== 132 中世哲学 ==== ==== 133 近代哲学 ==== ==== 134 ドイツ・オーストリア哲学 ==== ==== 135 フランス・オランダ哲学 ==== ==== 136 スペイン・ポルトガル哲学 ==== ==== 137 イタリア哲学 ==== ==== 138 ロシア哲学 ==== ==== 139 その他の哲学 ==== --> === 140 心理学 === *[[心理学]]{{進捗|25%|2005-05-04}} <!-- ==== 141 普通心理学・心理各論 ==== ==== 143 発達心理学 ==== ==== 145 異常心理学 ==== ==== 146 臨床心理学・精神分析学 ==== ==== 147 超心理学・心霊研究 ==== ==== 148 相法・易占 ==== ==== 149 応用心理学 ==== --> === 150 倫理学・道徳 === *[[倫理学]] ==== 151 倫理各論 ==== ==== 152 家庭倫理・性倫理 ==== ==== 153 職業倫理 ==== ==== 154 社会倫理 ==== ==== 155 国体論・詔勅 ==== ==== 156 武士道 ==== ==== 157 報徳教・石門心学 ==== ==== 158 その他の特定主題 ==== ==== 159 人生訓・教訓 ==== <!-- === 160 宗教 === ==== 161 宗教学・宗教思想 ==== ==== 162 宗教史・事情 ==== ==== 163 原始宗教・宗教民族学 ==== ==== 164 神話・神話学 ==== ===== 164.31 ギリシャ神話 ===== ==== 165 比較宗教 ==== ==== 166 道教 ==== ==== 167 イスラーム ==== ==== 168 ヒンドゥー教・ジャイナ教 ==== ==== 169 その他の宗教・新興宗教 ==== === 170 神道 === ==== 171 神道思想・神道説 ==== ==== 172 神祇・神道史 ==== ==== 173 神典 ==== ==== 174 信仰録・説教集 ==== ==== 175 神社・神職 ==== ==== 176 祭祀 ==== ==== 177 布教・伝道 ==== ==== 178 各教派・教派神道 ==== === 180 仏教 === ==== 181 仏教教理・仏教哲学 ==== ==== 182 仏教史 ==== ==== 183 経典 ==== ==== 184 法話・説教集 ==== ==== 185 寺院・僧職 ==== ==== 186 仏会 ==== ==== 187 布教・伝道 ==== ==== 188 各宗 ==== === 190 キリスト教 === ==== 191 教義・キリスト教神学 ==== ==== 192 キリスト教史・迫害史 ==== ==== 193 聖書 ==== ==== 194 信仰録・説教集 ==== ==== 195 教会・聖職 ==== ==== 196 典礼・祭式・礼拝 ==== ==== 197 布教・伝道 ==== ==== 198 各教派・教会史 ==== ==== 199 ユダヤ教 ==== --> == 2類 歴史 == === 200 歴史 === ==== 201 歴史学 ==== *[[歴史学]] <!-- ==== 202 歴史補助学 ==== ==== 203 参考図書 ==== ==== 204 論文集・評論集・講演集 ==== ==== 205 逐次刊行物 ==== ==== 206 団体 ==== ==== 207 研究法・指導法・歴史教育 ==== ==== 208 叢書・全集・選集 ==== --> ==== 209 世界史・文化史 ==== *[[世界史]]{{進捗|25%|2005-05-04}} === 210 日本史 === *[[日本史]]{{進捗|25%|2005-05-04}} <!-- ===== 210.027 古銭学 ===== ==== 211 北海道地方 ==== ==== 212 東北地方 ==== ==== 213 関東地方 ==== ==== 214 北陸地方 ==== ==== 215 中部地方 ==== ==== 216 近畿地方 ==== ==== 217 中国地方 ==== ==== 218 四国地方 ==== ==== 219 九州地方 ==== --> === 220 アジア史・東洋史 === <!-- ==== 221 朝鮮 ==== --> ==== 222 中国 ==== *[[中国史]]{{進捗|25%|2005-12-01}} <!-- ==== 223 東南アジア ==== ==== 224 インドネシア ==== ==== 225 インド ==== ===== 225.97 モルジブ ===== ==== 229 アジアロシア ==== === 230 ヨーロッパ史・西洋史 === ==== 231 古代ギリシア ==== ==== 232 古代ローマ  ==== ==== 233 イギリス・英国 ==== ==== 234 ドイツ・中欧 ==== ==== 235 フランス ==== ==== 236 スペイン イスパニア ==== ==== 237 イタリア ==== ==== 238 ロシア ソビエト連邦 独立国家共同体 ==== ==== 239 バルカン諸国 ==== === 240 アフリカ史 === ==== 241 北アフリカ ==== ==== 242 エジプト ==== ==== 243 バーバリ諸国 ==== ==== 244 西アフリカ ==== ==== 245 東アフリカ ==== ==== 248 南アフリカ ==== ==== 249 インド洋のアフリカ諸島 ==== === 250 北アメリカ史 === ==== 251 カナダ ==== ==== 253 アメリカ合衆国 ==== ==== 255 ラテンアメリカ 中南米 ==== ==== 256 メキシコ ==== ==== 257 中央アメリカ 中米諸国 ==== ==== 259 西インド諸島 ==== === 260 南アメリカ史 === ==== 261 北部諸国 カリブ沿海諸国 ==== ==== 262 ブラジル ==== ==== 263 パラグアイ ==== ==== 264 ウルグアイ ==== ==== 265 アルゼンチン ==== ==== 266 チリ ==== ==== 267 ボリビア ==== ==== 268 ペルー ==== === 270 オセアニア史・両極地方史 === ==== 271 オーストラリア ==== ==== 272 ニュージーランド ==== ==== 273 メラネシア ==== ==== 274 ミクロネシア ==== ==== 275 ポリネシア ==== ==== 276 ハワイ ==== ==== 277 両極地方 ==== ==== 278 北極 北極地方 ==== ==== 279 南極 南極地方 ==== === 280 伝記 === ==== 281 日本 ==== ==== 282 アジア ==== ==== 283 ヨーロッパ ==== ==== 284 アフリカ ==== ==== 285 北アフリカ ==== ==== 286 南アフリカ ==== ==== 287 オセアニア・両極地方 ==== ==== 288 系譜・家史・皇室 ==== ==== 289 個人伝記 ==== --> === 290 地理・地誌・紀行 === *[[地理学]]{{進捗|00%|2005-05-04}} <!-- ==== 290.93 旅行案内記 ==== --> == 3類 社会科学 == <!-- === 300 社会科学 === ==== 301 理論・方法論 ==== ==== 302 政治・経済・社会・文化事情 ==== ==== 303 参考図書 ==== ==== 304 論文集・評論集・講演集 ==== ==== 305 逐次刊行物 ==== ==== 306 団体 ==== ==== 307 研究法・指導法・社会科学教育 ==== ==== 308 叢書・全集・選集 ==== ==== 309 社会思想 ==== === 310 政治 === ==== 311 政治学 ==== ==== 312 政治史・事情 ==== ==== 313 国家の形態・政治体制 ==== ==== 314 議会 ==== ==== 315 政党・政治結社 ==== ==== 316 国家と個人・宗教・民族 ==== ==== 317 行政 ==== ==== 318 地方自治・地方行政 ==== ==== 319 外交・国際問題 ==== --> === 320 法律 === ==== 321 法学 ==== *[[法学]]{{進捗|25%|2005-05-04}} ==== 322 法制史 ==== *[[法制史]] ==== 323 憲法 ==== *[[憲法]] ==== 324 民法 ==== *[[民法]] ==== 325 商法 ==== *[[商法]] ==== 326 刑法・刑事法 ==== *[[刑法]] ==== 327 司法・訴訟手続法 ==== *[[民事訴訟法]] *[[刑事訴訟法]] ==== 328 諸法 ==== *[[教育基本法]] *[[知的財産権法]] ==== 329 国際法 ==== *[[国際法]] === 330 経済 === ==== 331 経済学・経済思想 ==== *[[経済学]]{{進捗|25%|2005-05-04}} ==== 332 経済史・事情・経済体制 ==== ==== 333 経済政策・国際経済 ==== ==== 334 人口・土地・資源 ==== ==== 335 企業・経営 ==== ==== 336 経営管理 ==== *[[公認会計士試験]] ==== 337 貨幣・通貨 ==== ==== 338 金融・銀行・信託 ==== ==== 339 保険 ==== === 340 財政 === <!-- ==== 341 財政学・財政思想 ==== ==== 342 財政史・事情 ==== ==== 343 財政政策・財政行政 ==== ==== 344 予算・決算 ==== ==== 345 租税 ==== ==== 347 公債・国債 ==== ==== 348 専売・国有財産 ==== ==== 349 地方財政 ==== === 350 統計 === ==== 351 日本 ==== ==== 358 人口統計・国勢調査 ==== ==== 359 各種の統計書 ==== --> === 360 社会 === <!-- ==== 361 社会学 ==== ==== 362 社会史・社会体制 ==== ==== 364 社会保障 ==== ==== 365 生活・消費者問題 ==== ==== 366 労働経済・労働問題 ==== ==== 367 家族問題、男性・女性問題、老人問題 ==== ==== 368 社会病理 ==== --> ==== 369 社会福祉 ==== ===== 369.3 災害 災害救助 ===== *[[防災]]{{進捗|25%|2006-04-06}} === 370 教育 === <!-- ==== 371 教育学、教育思想 ==== ===== 371.42 登校拒否・いじめ ===== --> ==== 372 教育史・事情 ==== *[[教育勅語]]{{進捗|75%|2005-05-04}} <!-- ==== 373 教育政策、教育制度、教育行財政 ==== --> ==== 374 学校経営・管理、学校保健 ==== ===== 374.48 学校行事 ===== *[[運動会]] ==== 375 教育課程、学習指導、教科別教育 ==== *[[学校教育]]{{進捗|25%|2005-05-04}} *[[生活と進路]]{{進捗|50%|2005-05-04}} ===== 374.9 教科書、教科書検定 ===== *[[小学校の学習]]{{進捗|50%|2023-09-25}} *[[中学校の学習]]{{進捗|50%|2023-09-25}} *[[高等学校の学習]]{{進捗|00%|2023-09-25}} **[[高等学校の学習/旧課程]]{{進捗|25%|2023-09-25}} <!-- * [[小学校算数]] {{進捗|25%|2005-05-04}} * [[中学校数学]] {{進捗|50%|2005-05-10}} * [[高等学校世界史A]] {{進捗|25%|2015-08-30}} * [[高等学校地理B]] {{進捗|25%|2005-11-1}} * [[高等学校現代社会]] {{進捗|25%|2015-08-30}} * [[高等学校政治経済]] {{進捗|50%|2015-08-30}} *[[高等学校倫理]] *[[高等学校数学]] *[[高等学校数学基礎]]{{進捗|100%|2005-05-04}} *[[高等学校数学I]]{{進捗|50%|2005-05-04}} *[[高等学校数学III]]{{進捗|50%|2005-05-04}} *[[高等学校数学B]]{{進捗|50%|2005-05-04}} *[[高等学校数学C]]{{進捗|50%|2005-05-04}} *[[高等学校理科総合B]]{{進捗|50%|2005-05-04}} *[[高等学校物理]]{{進捗|50%|2005-11-1}} * [[高等学校化学]] {{進捗|50%|2015-08-30}} * [[高等学校生物]] {{進捗|50%|2015-08-30}} * [[高等学校地学]] {{進捗|25%|2015-08-30}} *[[高等学校情報A]] *[[高等学校情報B]] *[[高等学校情報C]] --> *[[小・中・高等学校演習]] *[[検定教科書]] ==== 376 幼児・初等・中等教育 ==== *[[小学校・中学校・高等学校の学習]] ==== 377 大学、高等・専門教育、学術行政 ==== * [[大学受験ガイド]] {{進捗|50%|2015-08-30}} <!-- ==== 378 障害児教育 ==== ==== 379 社会教育 ==== === 380 風俗習慣・民俗学・民族学 === ==== 382 風俗史・民俗誌、民族誌 ==== ==== 383 衣食住の習俗 ==== ==== 384 社会・家庭生活の習俗 ==== ==== 385 通過儀礼、冠婚葬祭 ==== ==== 386 年中行事、祭礼 ==== ==== 387 民間信仰、迷信(俗信) ==== ==== 388 伝説、民話(昔話) ==== ==== 389 民族学、文化人類学 ==== === 390 国防・軍事 === ==== 391 戦争、戦略、戦術 ==== ==== 392 国防史・事情、軍事史・事情 ==== ==== 393 国防政策・行政・法令 ==== ==== 394 軍事医学、兵食 ==== ==== 395 軍事施設、軍需品 ==== ==== 396 陸軍 ==== ==== 397 海軍 ==== ==== 398 空軍 ==== ==== 399 古代兵法、軍学 ==== --> == 4類 自然科学 == <!-- === 400 自然科学 === ==== 401 科学理論・科学哲学 ==== ==== 402 科学史・事情 ==== ==== 403 参考図書 ==== ==== 404 論文集・評論集・講演集 ==== ==== 405 逐次刊行物 ==== ==== 406 団体 ==== ==== 407 研究法・指導法・科学教育 ==== ==== 408 叢書・全集・選集 ==== ==== 409 科学技術政策・科学技術行政 ==== --> === 410 数学 === * [[数学]] * [[初等数学]] * [[初等数学公式集]]{{進捗|25%|2005-05-04}} * [[初等数学演習]]{{進捗|25%|2005-05-04}} * [[初等数学記号集]] * [[Wikibooks:初等数学用語索引|初等数学用語索引]]{{進捗|25%|2005-05-04}} * [[中等数学]] * [[高等数学]] * [[大学数学公式集]] ==== 411 代数学 ==== ===== 411.6 集合論 ===== *[[公理的集合論]] ==== 412 数論 ==== ==== 413 解析学 ==== * [[解析学]] * [[解析学基礎]]{{進捗|25%|2005-05-04}} ==== 414 幾何学 ==== ==== 415 位相数学 ==== * [[位相幾何学]]{{進捗|25%|2008-09-03}} ==== 417 確率論、数理統計学 ==== * [[統計学基礎]]{{進捗|25%|2005-05-04}} <!-- ==== 418 計算法 ==== ==== 419 和算、中国算法 ==== --> === 420 物理学 === *[[物理学]] ==== 421 理論物理学 ==== <!-- ===== 421.1 基礎理論 エーテル理論 ===== --> ===== 421.2 相対性理論 ===== *[[特殊相対論]] *[[一般相対性理論]] ===== 421.3 量子力学、量子論 ===== *[[場の量子論]] *[[量子力学]]{{進捗|50%|2005-05-04}} ===== 421.4 統計力学 ===== *[[統計力学I]] *[[統計力学II]] ===== 421.5 数理物理学.物理数学 ===== * [[物理数学I]] {{進捗|75%|2023-11-05}} * [[物理数学II]] ==== 423 力学 ==== *[[解析力学]] *[[古典力学]]{{進捗|50%|2005-05-04}} ==== 424 振動学、音響学 ==== *[[振動と波動]] * [[音響学]] ==== 425 光学 ==== *[[光の偏極]] ==== 426 熱学 ==== *[[熱力学]] ==== 427 電磁気学 ==== *[[電磁気学]] <!-- ==== 428 物性物理学 ==== ==== 429 原子物理学 ==== --> === 430 化学 === <!-- ==== 431 物理化学. 理論化学 ==== ==== 432 実験化学 ==== ==== 433 分析化学 ==== ==== 434 合成化学 ==== --> ==== 435 無機化学 ==== *[[無機化学]]{{進捗|25%|2005-05-04}} <!-- ==== 436 金属元素とその化合物 ==== --> ==== 437 有機化学 ==== *[[有機化学]]{{進捗|25%|2005-05-21}} <!-- ==== 438 環式化合物の化学 ==== ==== 439 天然物質の化学 ==== --> === 440 天文学・宇宙科学 === * [[天文学]]{{進捗|25%|2005-12-01}} <!-- ==== 441 理論天文学・数理天文学 ==== ==== 442 実地天文学・天体観測法 ==== ==== 443 恒星・恒星天文学 ==== ==== 444 太陽・太陽物理学 ==== ==== 445 惑星・衛星 ==== ==== 446 月 ==== ==== 447 彗星・流星 ==== ==== 448 地球・天文地理学 ==== ==== 449 時法・暦学 ==== --> === 450 地球科学・地学 === * [[地球科学]]{{進捗|25%|2005-12-01}} <!-- ==== 451 気象学 ==== ==== 452 海洋学 ==== ==== 453 地震学 ==== ===== 453.38 地震予知 ===== ==== 454 地形学 ==== ==== 455 地質学 ==== ==== 456 地史学・層位学 ==== ==== 457 古生物学・化石 ==== ==== 458 岩石学 ==== ==== 459 鉱物学 ==== --> === 460 生物化学・一般生物学 === *[[生物学の研究技術]]{{進捗|25%|2005-05-04}} <!-- ==== 461 理論生物学・生命論 ==== ==== 462 生物地理・生物誌 ==== ==== 463 細胞学 ==== ==== 464 生化学 ==== ==== 465 微生物学 ==== ==== 467 遺伝学 ==== ===== 467.25 遺伝子組み換え ===== ==== 468 生態学 ==== ==== 469 人類学 ==== --> === 470 植物学 === *[[植物学]]{{進捗|25%|2005-05-04}} <!-- ==== 471 一般植物学 ==== ==== 472 植物地理・植物誌 ==== ==== 473 葉状植物 ==== ==== 474 藻類・菌類 ==== ==== 475 コケ植物 ==== ==== 476 シダ植物 ==== ==== 477 種子植物 ==== ==== 478 裸子植物 ==== ==== 479 被子植物 ==== === 480 動物学 === ==== 481 一般動物学 ==== ==== 482 動物地理・動物誌 ==== ==== 483 無脊椎動物 ==== ==== 484 軟体動物・貝類学 ==== ==== 485 節足動物 ==== ==== 486 昆虫類 ==== ==== 487 脊椎動物 ==== ==== 488 鳥類 ==== ==== 489 哺乳類 ==== --> === 490 医学 === * [[医学]] *[[OsiriX_オンライン解説文書]]{{進捗|75%|2005-05-04}} ==== 491 基礎医学 ==== *[[生理学]]{{進捗|00%|2006-11-09}} *[[解剖学]]{{進捗|25%|2006-11-09}} *[[神経解剖学]]{{進捗|00%|2006-11-09}} *[[組織学]]{{進捗|00%|2006-11-09}} *[[微生物学]]{{進捗|00%|2006-11-09}} *[[病理学]]{{進捗|00%|2006-11-09}} <!-- ==== 492 臨床医学 ==== --> ==== 493 内科学 ==== *[[内科学 呼吸器]]{{進捗|00%|2006-11-09}} <!-- ==== 494 外科学 ==== ==== 495 産科学,婦人科学 ==== ==== 496 眼科学,耳鼻咽喉科学 ==== ==== 497 歯科学 ==== ==== 498 衛生学,公衆衛生学,予防医学 ==== --> ==== 499 薬学 ==== *[[薬理学]]{{進捗|00%|2006-11-09}} ==5類 技術・工学・工業 == === 500 技術・工学 === ==== 501 工業基礎学 ==== ==== 502 技術史・工学史 ==== ==== 503 参考図書 ==== ==== 504 論文集・評論集・講演集 ==== ==== 505 逐次刊行物 ==== ==== 506 団体 ==== ==== 507 研究法・指導法・技術教育 ==== ==== 508 叢書・全集・選集 ==== ==== 509 工業・工業経済 ==== === 510 建設工学・土木工学 === ==== 511 土木力学・建設材料 ==== ==== 512 測量 ==== ==== 513 土木設計・施工法 ==== ==== 514 道路工学 ==== ==== 515 橋梁工学 ==== ==== 516 鉄道工学 ==== ==== 517 河海工学・河川工学 ==== ==== 518 衛生工学・都市工学 ==== ===== 518.523 ごみの再利用 ===== ==== 519 公害・環境工学 ==== ===== 519.12 環境法 ===== * [[環境法]] === 520 建築学 === ==== 521 日本の建築 ==== ==== 522 東洋の建築・アジアの建築 ==== ==== 523 西洋の建築・その他の様式の建築 ==== ==== 524 建築構造 ==== ==== 525 建築計画・施工 ==== ==== 526 各種の建築 ==== ==== 527 住宅建築 ==== ==== 528 建築設備・設備工学 ==== ==== 529 建築意匠・装飾 ==== === 530 機械工学・原子力工学 === ==== 531 機械力学・材料・設計 ==== ==== 532 機械工作・工作機械 ==== ==== 533 熱機関・熱工学 ==== ==== 534 流体機械・流体工学 ==== ==== 535 精密機器・光学機器 ==== ==== 536 運輸工学・車輌・運搬機械 ==== ==== 537 自動車工学 ==== ===== 537.25 電気自動車 ===== ==== 538 航空宇宙工学 ==== ==== 539 原子力工学 ==== === 540 電気工学・電子工学 === ==== 540 電気工学 ==== ==== 541 電気回路・計測・材料 ==== ==== 542 電気機器 ==== ==== 543 発電 ==== ==== 544 送電・変電・配電 ==== ==== 545 電灯・照明・電熱 ==== ==== 546 電気鉄道 ==== ==== 547 通信工学・電気通信 ==== ==== 548 情報工学 ==== ==== 549 電子工学 ==== === 550 海洋工学・船舶工学 === ==== 551 理論造船学 ==== ==== 552 船体構造・材料・施工 ==== ==== 553 船体艤装・船舶設備 ==== ==== 554 舶用機関[造機] ==== ==== 555 船舶修理・保守 ==== ==== 556 各種の船舶・艦艇 ==== ==== 557 航海・航海学 ==== ==== 558 海洋開発 ==== ==== 559 兵器、軍事工学 ==== === 560 金属工学・鉱山工学 === ==== 561 採鉱・選鉱 ==== ==== 562 各種の金属鉱床・採掘 ==== ==== 563 冶金・合金 ==== ==== 564 鉄鋼 ==== ==== 565 非鉄金属 ==== ==== 566 金属加工・製造冶金 ==== ==== 567 石炭 ==== ==== 568 石油 ==== ==== 569 非金属鉱物・土石採取業 ==== === 570 化学工業 === ==== 571 化学工学・化学機器 ==== ==== 572 電気化学工業 ==== ==== 573 セラミックス・窯業・珪酸塩化学工業 ==== ==== 574 化学薬品 ==== ==== 575 燃料・爆発物 ==== ==== 576 油脂類 ==== ==== 577 染料 ==== ==== 578 高分子化学工業 ==== ==== 579 その他の化学工業 ==== === 580 製造工業 === ==== 581 金属製品 ==== ==== 582 事務機器・家庭機器・楽器 ==== ==== 583 木工業・木製品 ==== ==== 584 皮革工業・皮革製品 ==== ==== 585 パルプ・製紙工業 ==== ==== 586 繊維工学 ==== ==== 587 染色加工・染色業 ==== ==== 588 食品工業 ==== ==== 589 その他の雑工業 ==== === 590 家政学・生活科学 === <!-- ==== 591 家庭経済・経営 ==== ==== 592 家庭理工学 ==== ==== 593 衣服・裁縫 ==== ==== 594 手芸 ==== ==== 595 理容・美容 ==== ===== 595.6 痩身法 ===== ==== 596 食品・料理 ==== *[[料理本]]{{進捗|25%|2005-05-04}} <!-- ==== 597 住居・家具調度 ==== ==== 598 家庭衛生 ==== ==== 599 育児 ==== --> ==6類 産業 == <!-- === 600 産業 === ==== 601 産業政策・行政・総合開発 ==== ==== 602 産業史・事情・物産誌 ==== ==== 603 参考図書 ==== ==== 604 論文集・評論集・講演集 ==== ==== 605 逐次刊行物 ==== ==== 606 団体 ==== ==== 607 研究法・指導法・産業教育 ==== ==== 608 叢書・全集・選集 ==== ==== 609 度量衡、計量法 ==== === 610 農業 === ==== 611 農業経済 ==== ==== 612 農業史・事情 ==== ==== 613 農業基礎学 ==== ==== 614 農業工学 ==== ==== 615 作物栽培・作物学 ==== ==== 616 食用作物 ==== ==== 617 工芸作物 ==== ==== 618 繊維作物 ==== ==== 619 農産物製造・加工 ==== --> === 620 園芸 === <!-- ==== 621 園芸経済・行政・経営 ==== ==== 622 園芸史・事情 ==== ==== 623 園芸植物学・病虫害 ==== ==== 624 温室・温床・園芸用具 ==== ==== 625 果樹園芸 ==== --> ==== 626 蔬菜園芸 ==== *[[ダイズの栽培]]{{進捗|00%|2007-02-21}} ==== 627 花卉園芸[草花] ==== *[[サボテンの栽培]]{{進捗|00%|2007-02-21}} <!-- ==== 628 園芸利用 ==== ==== 629 造園 ==== === 630 蚕糸業 === ==== 631 蚕糸経済・行政・経営 ==== ==== 632 蚕糸業史・事情 ==== ==== 633 蚕学・蚕業基礎学 ==== ==== 634 蚕種 ==== ==== 635 飼育法 ==== ==== 636 くわ・栽桑 ==== ==== 637 蚕室・蚕具 ==== ==== 638 まゆ ==== ==== 639 製糸・生糸・蚕糸利用 ==== --> === 640 畜産業 === <!-- ==== 641 畜産経済・行政・経営 ==== ==== 642 畜産史・事情 ==== ==== 643 家畜の繁殖・家畜飼料 ==== ==== 644 家畜の管理・畜舎・用具 ==== ==== 645 家畜・畜産動物各論 ==== --> ==== 646 家禽各論・飼鳥 ==== *[[ホンセイインコ類の飼育]]{{進捗|00%|2007-02-21}} <!-- ===== 646.9 みつばち・昆虫 ===== ==== 648 畜産製造・畜産物 ==== ==== 649 獣医学・比較医学 ==== ==== 649 獣医学 ==== === 650 林業 === ==== 651 林業経済・行政・経営 ==== ==== 652 森林史・林業史・事情 ==== ==== 653 森林立地・造林 ==== ==== 654 森林保護 ==== ==== 655 森林施業 ==== ==== 656 森林工学 ==== ==== 657 森林利用・林産物・木材学 ==== ==== 658 林産製造 ==== ==== 659 狩猟 ==== === 660 水産業 === ==== 661 水産経済・行政・経営 ==== ==== 662 水産業および漁業史・事情 ==== ==== 663 水産基礎学 ==== ==== 664 漁労・漁業各論 ==== ==== 665 漁船・漁具 ==== ==== 666 水産増殖・養殖業 ==== ==== 667 水産製造・水産食品 ==== ==== 668 水産物利用・水産利用工業 ==== ==== 669 製塩・塩業 ==== === 670 商業 === ==== 671 商業政策・行政 ==== ==== 672 商業史・事情 ==== ==== 673 商業経営・商店 ==== ==== 674 広告・宣伝 ==== ==== 675 マーケティング ==== ==== 676 取引所 ==== ==== 678 貿易 ==== === 680 運輸・交通 === ==== 681 交通政策・行政・経営 ==== ==== 682 交通史・事情 ==== ==== 683 海運 ==== ==== 684 内水・運河交通 ==== ==== 685 陸運・自動車運送 ==== ==== 686 鉄道 ==== ==== 687 航空運送 ==== ==== 688 倉庫業 ==== ==== 689 観光事業 ==== === 690 通信事業 === ==== 691 通信政策・行政・法令 ==== ==== 692 通信事業史・事情 ==== ==== 693 郵便・郵政事業 ==== ==== 694 電気通信事業 ==== ==== 699 放送事業 ==== ===== 699.39 アナウンサー ===== --> == 7類 芸術 == <!-- === 700 芸術・美術 === ==== 701 芸術理論・美学 ==== ==== 702 芸術史・美術史 ==== ==== 703 参考図書[レファレンスブック] ==== ==== 704 論文集・評論集・講演集 ==== ==== 705 逐次刊行物 ==== ==== 706 団体 ==== ==== 707 研究法・指導法・芸術教育 ==== ==== 708 叢書・全集・選集 ==== ==== 709 芸術政策・文化財 ==== === 710 彫刻 === ==== 711 彫塑材料・技法 ==== ==== 712 彫刻史・各国の彫刻 ==== ==== 713 木彫 ==== ==== 714 石彫 ==== ==== 715 金属彫刻・鋳造 ==== ==== 717 粘土彫刻・塑造 ==== ==== 708 仏像 ==== ==== 709 オブジェ ==== === 720 絵画 === ==== 721 日本画 ==== ==== 722 東洋画 ==== ==== 723 洋画 ==== ==== 724 絵画材料・技法 ==== ==== 725 素描・描画 ==== ==== 726 漫画、挿絵、童画 ==== ==== 727 グラフィックデザイン、図案 ==== ==== 728 書道 ==== === 730 版画 === ==== 731 版画材料・技法 ==== ==== 732 版画史・各国の版画 ==== ==== 733 木版画 ==== ==== 734 石版画 ==== ==== 735 銅版画・鋼版画 ==== ==== 736 リノリウム版画・ゴム版画 ==== ==== 737 写真版画・孔版画 ==== ==== 739 印章、篆刻、印譜 ==== --> === 740 写真 === <!-- ==== 742 写真器械・材料 ==== ==== 743 撮影技術 ==== --> ==== 744 現像・印画 ==== *[[白黒写真の暗室作業]]{{進捗|75%|2007-05-10}} <!-- ==== 745 複写技術 ==== ==== 746 特殊写真 ==== ==== 747 写真の応用 ==== ==== 748 写真集 ==== ==== 749 印刷 ==== === 750 工芸 === ==== 751 陶磁工芸 ==== ==== 752 漆工芸 ==== ==== 753 染織工芸 ==== ==== 754 木竹工芸 ==== ==== 755 宝石・牙角・皮革工芸 ==== ==== 756 金工芸 ==== ==== 757 デザイン・装飾美術 ==== ==== 758 美術家具 ==== ==== 759 人形・玩具 ==== --> === 760 音楽 === ==== 761 音楽の一般理論・音楽学 ==== * [[楽典]] * [[和声学]] * [[楽式]] ==== 762 音楽史・各国の音楽 ==== * [[西洋音楽史]] <!-- ==== 763 楽器・器楽 ==== ==== 764 器楽合奏 ==== ==== 765 宗教音楽・聖楽 ==== ==== 766 劇音楽 ==== ==== 767 声楽 ==== ==== 768 邦楽 ==== ==== 769 舞踊、バレエ ==== === 770 演劇 === ==== 771 劇場・演出・演技 ==== ==== 772 演劇史・各国の演劇 ==== ==== 773 能楽、狂言 ==== ==== 774 歌舞伎 ==== ==== 775 各種の演劇 ==== ==== 777 人形劇 ==== ==== 778 映画 ==== ==== 779 大衆演芸 ==== --> === 780 スポーツ・体育 === <!-- ==== 781 体操、遊戯 ==== ==== 782 陸上競技 ==== --> ==== 783 球技 ==== *[[サッカー]]{{進捗|25%|2006-1-7}} *[[テニス]]{{進捗|25%|2006-1-7}} *[[野球]]{{進捗|25%|2006-1-7}} <!-- ==== 784 冬季競技 ==== --> ==== 785 水上競技 ==== *[[セーリング]]{{進捗|25%|2006-1-7}} ==== 786 戸外レクリエーション ==== ===== 786.1 登山・山岳競技 ===== *[[登山]] ==== 787 釣魚、遊猟 ==== ==== 788 相撲、拳闘、競馬 ==== *[[相撲]]{{進捗|25%|2006-2-23}} *[[競馬]]{{進捗|25%|2023-09-25}} ==== 789 武術 ==== *[[剣道]]{{進捗|25%|2007-6-30}} === 790 諸芸・娯楽 === <!-- ==== 791 茶道 ==== ==== 792 香道 ==== ==== 793 花道 ==== ==== 794 撞球 ==== --> ==== 795 囲碁 ==== *[[囲碁]]{{進捗|25%|2006-1-7}} ==== 796 将棋 ==== *[[将棋]]{{進捗|25%|2006-1-7}} <!-- ==== 797 射倖ゲーム ==== --> ==== 798 室内娯楽 ==== *[[トランプ]]<!--798.2--> *[[トランプ/トランプ教科書]] *[[麻雀]]{{進捗|25%|2006-1-7}} *[[チェス]]{{進捗|25%|2006-1-7}} ===== 798.5 テレビゲーム ===== *[[Minecraft]] <!-- ==== 799 ダンス ==== --> == 8類 言語 == === 800 言語 === ==== 801 言語学 ==== *[[生成文法]] *[[語学]] **[[琉球語]] <!-- ==== 809 言語生活 ==== --> === 810 日本語 === *[[日本語]]{{進捗|25%|2005-05-04}} <!-- ==== 811 音声、音韻、文字 ==== ==== 812 語源、意味 ==== ==== 813 辞典 ==== ==== 814 語彙 ==== ==== 815 文法、語法 ==== ==== 816 文章、文体、作文 ==== ==== 817 読本、解釈、会話 ==== --> ==== 818 方言、訛語 ==== *[[北海道方言]] *[[讃岐弁]] *[[沖縄語]] <!-- === 820 中国語 === --> ==== 829 その他の東洋の諸言語 ==== *[[朝鮮語]]{{進捗|25%|2005-05-04}} *[[ペルシア語]] === 830 英語 === *[[英語]]{{進捗|50%|2005-05-04}} === 840 ドイツ語 === *[[ドイツ語]]{{進捗|50%|2005-05-04}} <!-- ==== 849 その他のゲルマン言語 ==== --> === 850 フランス語 === *[[フランス語]]{{進捗|25%|2005-05-04}} <!-- ==== 859 プロヴァンス語 ==== === 860 スペイン語 === ==== 869 ポルトガル語 ==== === 870 イタリア語 === --> ==== 879 その他のロマンス諸語 ==== *[[ルーマニア語]] <!-- === 880 ロシア語 === ==== 889 その他のスラヴ諸語 ==== === 890 その他の諸言語 === --> ==== 891 ギリシア語 ==== *[[ギリシア語]] ==== 892 ラテン語 ==== *[[ラテン語]]{{進捗|50%|2006-03-21}} ==== 893 その他のヨーロッパの諸言語 ==== *[[デンマーク語]]{{進捗|25%|2005-12-01}} <!-- ==== 894 アフリカの諸言語 ==== ==== 895 アメリカの諸言語 ==== ==== 897 オーストラリアの諸言語 ==== --> ==== 899 国際語 ==== *[[エスペラント]]{{進捗|00%|2005-05-04}} == 9類 文学 == === 900 文学 === *[[古典文学]]{{進捗|25%|2005-05-15}} <!-- ==== 909 児童文学研究 ==== --> === 910 日本文学 === <!-- ==== 911 詩歌 ==== ==== 912 戯曲 ==== --> ==== 913 小説、物語 ==== *[[竹取物語]]{{進捗|25%|2005-05-04}} ==== 914 評論、エッセイ、随筆 ==== *[[方丈記]] <!-- ==== 915 日記、書簡、紀行 ==== ==== 916 記録、手記、ルポルタージュ ==== ==== 917 箴言、アフォリズム、寸言 ==== ==== 918 作品集 ==== ==== 919 漢詩文、日本漢文学 ==== --> === 920 中国文学 === *[[漢詩]]{{進捗|25%|2005-05-04}} <!-- ==== 929 その他の東洋文学 ==== === 930 英文学・米文学 === === 940 ドイツ文学 === ==== 949 その他のゲルマン文学 ==== === 950 フランス文学 === ==== 959 プロヴァンス文学 ==== === 960 スペイン文学 === ==== 969 ポルトガル文学 ==== === 970 イタリア文学 === ==== 979 その他のロマンス文学 ==== === 980 ロシア文学・ソヴィエト文学 === ==== 989 その他のスラヴ文学 ==== --> === 990 その他の諸文学 === ==== 991 ギリシア文学 ==== ==== 992 ラテン文学 ==== *[[ガリア戦記]] ==== 993 その他のヨーロッパ文学 ==== ==== 994 アフリカ文学 ==== ==== 995 アメリカ先住民語の文学 ==== ==== 997 オーストラリア先住民語の文学 ==== ==== 999 国際語による文学 ==== == 関連項目 == *[[w:日本十進分類法#要目表(第3次区分表)]] == 外部リンク == *<del>[http://www.ndl.go.jp/jp/library/data/zan9.html 日本十進分類法新訂9版分類基準]([http://www.ndl.go.jp/ 国立国会図書館])</del>リンク切れ *[https://www.kotono8.com/wiki/%E6%97%A5%E6%9C%AC%E5%8D%81%E9%80%B2%E5%88%86%E9%A1%9E%E6%B3%95%EF%BC%88%E8%A9%B3%E7%B4%B0%EF%BC%89 閾ペディアことのは 日本十進分類法(詳細)] [[Category:日本十進分類法|*]] [[it:Wikibooks:Classificazione decimale Dewey]] ew2otqzys44jk4qniwrdtwfvpntap3a GNU Octave 2.1.x 日本語マニュアル 0 16920 301306 276123 2026-07-08T09:46:21Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301306 wikitext text/x-wiki <small>{{Pathnav|メインページ|工学|情報技術|プログラミング|GNU Octave}}</small> ---- {{Wikipedia|GNU Octave|GNU Octave}} {{Stub|it}} このマニュアルは,GNU Octaveの新機能や非互換性あるいはバグ報告のしかただけでなく,実行,インストールおよび移植する方法について記述しています。これは,GNU Octaveのバージョン2.1.xに対応しています。 [[GNU Octave 2.1.x 日本語マニュアル/まえがき|まえがき]]<br/> 1. [[GNU Octave 2.1.x 日本語マニュアル/Octaveの簡単な紹介|Octaveの簡単な紹介]]<br/> 2. [[GNU Octave 2.1.x 日本語マニュアル/始めましょう|始めましょう]]<br/> 3. [[GNU Octave 2.1.x 日本語マニュアル/データ型|データ型]]<br/> 4. [[GNU Octave 2.1.x 日本語マニュアル/数値データ型|数値データ型]]<br/> 5. [[GNU Octave 2.1.x 日本語マニュアル/文字列|文字列]]<br/> 6. [[GNU Octave 2.1.x 日本語マニュアル/データ構造体|データ構造体]]<br/> 7. [[GNU Octave 2.1.x 日本語マニュアル/コンテナ|コンテナ]]<br/> 8. [[GNU Octave 2.1.x 日本語マニュアル/I/Oストリーム|I/Oストリーム]]<br/> 9. [[GNU Octave 2.1.x 日本語マニュアル/変数|変数]]<br/> 10. [[GNU Octave 2.1.x 日本語マニュアル/式|式]]<br/> 11. [[GNU Octave 2.1.x 日本語マニュアル/評価|評価]]<br/> 12. [[GNU Octave 2.1.x 日本語マニュアル/ステートメント|ステートメント]]<br/> 13. [[GNU Octave 2.1.x 日本語マニュアル/関数とスクリプトファイル|関数とスクリプトファイル]]<br/> 14. [[GNU Octave 2.1.x 日本語マニュアル/エラー処理|エラー処理]]<br/> 15. [[GNU Octave 2.1.x 日本語マニュアル/デバッグ|デバッグ]]<br/> 16. [[GNU Octave 2.1.x 日本語マニュアル/入力と出力|入力と出力]]<br/> 17. [[GNU Octave 2.1.x 日本語マニュアル/プロット|プロット]]<br/> 18. [[GNU Octave 2.1.x 日本語マニュアル/行列の操作|行列の操作]]<br/> 19. [[GNU Octave 2.1.x 日本語マニュアル/算術演算|算術演算]]<br/> 20. [[GNU Octave 2.1.x 日本語マニュアル/線形代数|線形代数]]<br/> 21. [[GNU Octave 2.1.x 日本語マニュアル/非線形方程式|非線形方程式]] Nonlinear Equations<br/> 22. [[GNU Octave 2.1.x 日本語マニュアル/数値積分|数値積分]] Quadrature<br/> 23. [[GNU Octave 2.1.x 日本語マニュアル/微分方程式|微分方程式]] Differential Equations<br/> 24. [[GNU Octave 2.1.x 日本語マニュアル/最適化|最適化]]<br/> 25. [[GNU Octave 2.1.x 日本語マニュアル/統計|統計]]<br/> 26. 金融関数 Financial Functions<br/> 27. 集合 Sets<br/> 28. 多項式処理 Polynomial Manipulations<br/> 29. 制御理論 Control Theory<br/> 30. [[GNU Octave 2.1.x 日本語マニュアル/デジタル信号処理|デジタル信号処理]] Signal Processing<br/> 31. 画像処理 Image Processing<br/> 32. 音声処理 Audio Processing<br/> 33. 四元数 Quaternions<br/> 34. [[GNU Octave 2.1.x 日本語マニュアル/システムユーティリティ|システムユーティリティ]]<br/> A. ティップスとスタンダード Tips and Standards <br/> B. Known Causes of Trouble Octaveのインストールにトラブルがあるなら<br/> C. [[GNU Octave 2.1.x 日本語マニュアル/Octaveのインストールと設定|Octaveのインストールと設定]]<br/> D. オクターブでのEmacsサポート Emacs Octave Support<br/> E. 文法 Grammar <br/> F. [[GNU Octave 2.1.x 日本語マニュアル/GNU GENERAL PUBLIC LICENSE|GNU GENERAL PUBLIC LICENSE]]<br/> 概念の索引 Concept Index An item for each concept.<br/> 変数の索引 Variable Index An item for each documented variable.<br/> 関数の索引 Function Index An item for each documented function.<br/> 演算子の索引 Operator Index An item for each documented operator.<br/> == 下位階層のページ == *[[GNU Octave 2.1.x 日本語マニュアル/GNU GENERAL PUBLIC LICENSE]] *[[GNU Octave 2.1.x 日本語マニュアル/I/Oストリーム]] *[[GNU Octave 2.1.x 日本語マニュアル/Octaveに寄与するには]] *[[GNU Octave 2.1.x 日本語マニュアル/Octaveのインストールと設定]] *[[GNU Octave 2.1.x 日本語マニュアル/Octaveの簡単な紹介]] *[[GNU Octave 2.1.x 日本語マニュアル/まえがき]] *[[GNU Octave 2.1.x 日本語マニュアル/エラー処理]] *[[GNU Octave 2.1.x 日本語マニュアル/コンテナ]] *[[GNU Octave 2.1.x 日本語マニュアル/システムユーティリティ]] *[[GNU Octave 2.1.x 日本語マニュアル/ステートメント]] *[[GNU Octave 2.1.x 日本語マニュアル/デジタル信号処理]] *[[GNU Octave 2.1.x 日本語マニュアル/デバッグ]] *[[GNU Octave 2.1.x 日本語マニュアル/データ型]] *[[GNU Octave 2.1.x 日本語マニュアル/データ構造体]] *[[GNU Octave 2.1.x 日本語マニュアル/プロット]] *[[GNU Octave 2.1.x 日本語マニュアル/入力と出力]] *[[GNU Octave 2.1.x 日本語マニュアル/変数]] *[[GNU Octave 2.1.x 日本語マニュアル/始めましょう]] *[[GNU Octave 2.1.x 日本語マニュアル/式]] *[[GNU Octave 2.1.x 日本語マニュアル/微分方程式]] *[[GNU Octave 2.1.x 日本語マニュアル/数値データ型]] *[[GNU Octave 2.1.x 日本語マニュアル/数値積分]] *[[GNU Octave 2.1.x 日本語マニュアル/文字列]] *[[GNU Octave 2.1.x 日本語マニュアル/最適化]] *[[GNU Octave 2.1.x 日本語マニュアル/算術演算]] *[[GNU Octave 2.1.x 日本語マニュアル/統計]] *[[GNU Octave 2.1.x 日本語マニュアル/線形代数]] *[[GNU Octave 2.1.x 日本語マニュアル/行列の操作]] *[[GNU Octave 2.1.x 日本語マニュアル/評価]] *[[GNU Octave 2.1.x 日本語マニュアル/謝辞]] *[[GNU Octave 2.1.x 日本語マニュアル/配布]] *[[GNU Octave 2.1.x 日本語マニュアル/関数とスクリプトファイル]] *[[GNU Octave 2.1.x 日本語マニュアル/非線形方程式]] ---- <small> Copyright (C) 1996,1997 John W. Eaton.<br/> Copyright (C) 2005-2007 [http://www.obihiro.ac.jp/~suzukim/masuda/octave/octave_ja.html MASUDA, Yutaka] (日本語訳)<br/> Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions. </small> [[category:GNU Octave|2.1.x]] 1g2istbpycfrctap9t3qowm1wpoypgw 中学校家庭 0 18307 301271 301255 2026-07-07T14:27:24Z Kwawe 68789 /* 2章 責任ある消費者になるために */ 301271 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>中学校家庭 {{進捗状況}}この書籍は、中学校の科目「技術・家庭」の家庭科分野に関する教科書です。高等学校の「[[高等学校家庭総合|家庭総合]]」や「[[高等学校家庭基礎|家庭基礎]]」内容をさらに精選して簡単にしたのが、中学校の家庭科です。  なお、配列やタイトルなどについては、当科目で最も採択率が高い東京書籍株式会社「[https://www.tokyo-shoseki.co.jp/textbook/j/7/505/ 新しい技術・家庭(家庭分野)自立と共生を目指して]」【家庭701】に合わせています。  高校生の他科目執筆を兼ねて、少しずつ、執筆していこうと思います。 == 家庭分野のガイダンス == [[中学校家庭/家庭分野のガイダンス|家庭分野のガイダンス]]{{進捗|75%|2023-05-04}}(実習上の注意、学習上の注意など) == 1編 私達の食生活 == [[中学校家庭/私達の食生活 学習のポイント|私達の食生活 学習のポイント]]{{進捗|75%|2023-01-08}}(1編のガイダンス、調理実習の注意点) === 1章 食事の役割と中学生の栄養の特徴 === # [[中学校家庭/どうして食事をするのだろう|どうして食事をするのだろう]]{{進捗|00%|2023-02-00}}(食事の役割、朝食) # [[中学校家庭/私達の食生活|私達の食生活]]{{進捗|00%|2023-02-00}} # [[中学校家庭/栄養素ってなんだろう|栄養素ってなんだろう]]{{進捗|100%|2022-05-10}}(栄養素、栄養、五大栄養素、水の働き) # [[中学校家庭/中学生に必要な栄養|中学生に必要な栄養]]{{進捗|25%|2023-05-12}}(食事摂取基準) === 2章 中学生に必要な栄養を満たす食事 === # [[中学校家庭/食品に含まれる栄養素|食品に含まれる栄養素]]{{進捗|00%|2023-02-00}} # [[中学校家庭/何をどれくらい食べればよいか|何をどれくらい食べればよいか]]{{進捗|00%|2023-02-00}} # [[中学校家庭/バランスの良い献立作り|バランスの良い献立作り]]{{進捗|00%|2023-02-00}} === 3章 調理のための食品の選択と購入 === # [[中学校家庭/食品の選択と購入|食品の選択と購入]]{{進捗|100%|2023-02-06}}(食品の選び方、食品表示) # [[中学校家庭/生鮮食品の特徴|生鮮食品の特徴]]{{進捗|00%|2023-02-06}}(生鮮食品、旬) # [[中学校家庭/加工食品の特徴|加工食品の特徴]]{{進捗|00%|2023-02-00}} # [[中学校家庭/食品の保存と食中毒の防止|食品の保存と食中毒の防止]]{{進捗|50%|2023-05-10}}(食品の保存、食中毒) === 4章 日常食の調理と地域の食文化 === # [[中学校家庭/日常食の調理|日常食の調理]]{{進捗|00%|2023-05-02}}(調理) # [[中学校家庭/野菜・芋の調理|野菜・芋の調理]]{{進捗|00%|2023-05-20}}(野菜・芋の種類、野菜・芋の調理上の性質) # [[中学校家庭/肉の調理|肉の調理]]{{進捗|25%|2023-05-03}}(肉の種類、肉の調理上の性質) # [[中学校家庭/魚の調理|魚の調理]]{{進捗|50%|2023-05-20}}(魚の種類、魚の調理上の性質) # [[中学校家庭/日本の食文化と和食の調理|日本の食文化と和食の調理]]{{進捗|00%|2023-08-00}}(地産地消、郷土料理、行事食、和食) # [[中学校家庭/持続可能な食生活を目指して|持続可能な食生活を目指して]]{{進捗|00%|2023-02-00}} == 2編 私達の衣生活 == [[中学校家庭/私達の衣生活 学習のポイント|私達の衣生活 学習のポイント]]{{進捗|00%|2023-05-00}}(2編のガイダンス、被服実習の注意点) === 1章 衣服の選択と手入れ === # [[中学校家庭/どうして衣服を着るのだろう|どうして衣服を着るのだろう]]{{進捗|100%|2023-11-08}}(社会生活上の働き、TPO) # [[中学校家庭/私らしさとTPO 着方の工夫|私らしさとTPO 着方の工夫]]{{進捗|100%|2023-04-10}}(自分らしい着方) # [[中学校家庭/日本の衣文化|日本の衣文化]]{{進捗|00%|2023-05-00}} # [[中学校家庭/衣服計画と必要な衣服の選択|衣服計画と必要な衣服の選択]]{{進捗|00%|2023-05-00}} # [[中学校家庭/衣服の手入れ|衣服の手入れ]]{{進捗|25%|2023-05-02}}(衣服の手入れ、衣服の汚れ) === 2章 生活を豊かにするために === # [[中学校家庭/作って楽しい布作品|作って楽しい布作品]]{{進捗|00%|2023-05-00}} # [[中学校家庭/持続可能な衣生活を目指して|持続可能な衣生活を目指して]]{{進捗|75%|2023-11-12}}(リデュース、リユース、リサイクル) == 3編 私達の住生活 == [[中学校家庭/私達の住生活 学習のポイント|私達の住生活 学習のポイント]]{{進捗|100%|2023-02-07}}(3編のガイダンス) === 1章 住まいの役割と安全な住まい方 === 家族が気持ちよく暮らせるように、住空間がどのように成り立っているのか、どのように整えていくのかを学びましょう。また、より快適な住宅になるように地域との共生についても考えましょう。 # [[中学校家庭/もしも住まいがなかったら|もしも住まいがなかったら]]{{進捗|25%|2026-03-03}}(住まいの役割、生活行為、住空間) # [[中学校家庭/住まいと気候風土の関わり|住まいと気候風土の関わり]]{{進捗|100%|2023-01-06}}(和式、洋式、和洋折衷) # [[中学校家庭/健康で快適な室内環境|健康で快適な室内環境]]{{進捗|100%|2023-02-07}}(シックハウス症候群、ー酸化炭素) # [[中学校家庭/家族の住まいを安全・安心に|家族の住まいを安全・安心に]]{{進捗|100%|2023-02-07}}(家庭内事故、バリアフリー、ユニバーサルデザイン) # [[中学校家庭/災害への対策|災害への対策]]{{進捗|100%|2023-05-07}}(防災、減災、通電火災、避難所・仮設住宅) # [[中学校家庭/持続可能な住生活を目指して|持続可能な住生活を目指して]]{{進捗|100%|2023-02-01}}(持続可能な社会) == 4編 私達の消費生活と環境 == [[中学校家庭/私達の消費生活と環境 学習のポイント|私達の消費生活と環境 学習のポイント]]{{進捗|00%|2023-05-07}}(4編のガイダンス) === 1章 私達の消費生活 === # [[中学校家庭/消費者としての自覚|消費者としての自覚]]{{進捗|100%|2023-02-09}}(商品、物資、サービス、消費者、契約) # [[中学校家庭/購入方法と支払い方法|購入方法と支払い方法]]{{進捗|100%|2023-05-06}}(購入方法、支払い方法、キャッシュレス化) # [[中学校家庭/バランス良く計画的な金銭の管理|バランス良く計画的な金銭の管理]]{{進捗|100%|2023-05-07}}(収入、支出、金銭の管理、三者間契約) # [[中学校家庭/消費者トラブルとその対策|消費者トラブルとその対策]]{{進捗|100%|2023-04-20}}(消費者トラブル、クーリング・オフ制度、消費生活センター) # [[中学校家庭/何を考えて決めますか 意思決定のプロセス|何を考えて決めますか 意思決定のプロセス]]{{進捗|100%|2023-05-05}}(ニーズ、ウォンツ、意思決定) === 2章 責任ある消費者になるために === # [[中学校家庭/消費者としてできること~権利と責任~|消費者としてできること~権利と責任~]]{{進捗|00%|2023-05-06}}(消費者の権利と責任、消費者基本法) # [[中学校家庭/省エネルギーと持続可能な社会|省エネルギーと持続可能な社会]]{{進捗|00%|2023-05-06}}(地球温暖化、再生可能エネルギー、循環型社会、3R) # [[中学校家庭/持続可能な消費生活を目指して|持続可能な消費生活を目指して]]{{進捗|25%|2026-07-07}}(SDGs、エシカル消費、消費者市民社会) == 5編 私達の成長と家族・地域 == [[中学校家庭/私達の成長と家族・地域 学習のポイント|私達の成長と家族・地域 学習のポイント]]{{進捗|100%|2023-04-30}}(5編のガイダンス、触れ合い体験の注意点) === 1章 家族・家庭と地域 === 家族や家庭の役割、家庭生活と地域との関わりなどを学び、中学生として何が出来るかを考えましょう。 # [[中学校家庭/私達の生活と家族・家庭の機能|私達の生活と家族・家庭の機能]]{{進捗|100%|2023-02-04}}(家族、家庭、基本的な機能) # [[中学校家庭/中学生としての自立|中学生としての自立]]{{進捗|100%|2023-02-01}}(自立、家庭の仕事、協力、協働) # [[中学校家庭/家庭生活と地域との関わり|家庭生活と地域との関わり]]{{進捗|100%|2023-02-04}}(地域) === 2章 幼児の生活と家族 === 幼児の発達や生活、遊びや家族の役割について学び、幼児と触れ合う活動から幼児の関わり方を考えましょう。 # [[中学校家庭/幼い頃の振り返り|幼い頃の振り返り]]{{進捗|100%|2023-02-02}}(乳児期、幼児期、児童期) # [[中学校家庭/幼児の体の発達|幼児の体の発達]]{{進捗|100%|2023-02-08}}(個性、個人差、運動機能、方向と順序、生理的機能) # [[中学校家庭/幼児の心の発達|幼児の心の発達]]{{進捗|100%|2023-02-09}}(言葉、知能、感情、社会性、自立心、自律心) # [[中学校家庭/幼児の1日の生活|幼児の1日の生活]]{{進捗|100%|2023-02-08}}(遊び、間食) # [[中学校家庭/支えられて身に付ける生活習慣|支えられて身に付ける生活習慣]]{{進捗|100%|2023-02-03}}(基本的生活習慣、社会的生活習慣) # [[中学校家庭/幼児の生活と遊び|幼児の生活と遊び]]{{進捗|100%|2023-04-12}}(遊び、玩具) # [[中学校家庭/幼児との関わり方の工夫|幼児との関わり方の工夫]]{{進捗|100%|2023-04-23}}(幼児との触れ合い) # [[中学校家庭/幼児との関わりを生活に生かす|幼児との関わりを生活に生かす]]{{進捗|100%|2023-02-02}}(関わりの振り返り) # [[中学校家庭/子どもにとっての家族|子どもにとっての家族]]{{進捗|100%|2023-05-03}}(信頼関係) === 3章 これからの家族と地域 === 家族や高齢者など、地域の人々と上手く関わり、協働する方法を考えて工夫しましょう。 # [[中学校家庭/家族との関わり|家族との関わり]]{{進捗|100%|2023-02-02}}(家族関係) # [[中学校家庭/家族や地域の高齢者との関わり|家族や地域の高齢者との関わり]]{{進捗|100%|2023-04-15}}(高齢者、少子高齢社会、高齢期) # [[中学校家庭/地域での協働を目指して|地域での協働を目指して]]{{進捗|100%|2023-04-30}}(共生、協カ、協働) [[Category:中学校家庭科|*]] [[Category:中学校教育|かていか]] 5kb9j9493kkza79gbljef9654vpwh9h 301281 301271 2026-07-07T17:58:05Z Kwawe 68789 /* 2章 責任ある消費者になるために */ 301281 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>中学校家庭 {{進捗状況}}この書籍は、中学校の科目「技術・家庭」の家庭科分野に関する教科書です。高等学校の「[[高等学校家庭総合|家庭総合]]」や「[[高等学校家庭基礎|家庭基礎]]」内容をさらに精選して簡単にしたのが、中学校の家庭科です。  なお、配列やタイトルなどについては、当科目で最も採択率が高い東京書籍株式会社「[https://www.tokyo-shoseki.co.jp/textbook/j/7/505/ 新しい技術・家庭(家庭分野)自立と共生を目指して]」【家庭701】に合わせています。  高校生の他科目執筆を兼ねて、少しずつ、執筆していこうと思います。 == 家庭分野のガイダンス == [[中学校家庭/家庭分野のガイダンス|家庭分野のガイダンス]]{{進捗|75%|2023-05-04}}(実習上の注意、学習上の注意など) == 1編 私達の食生活 == [[中学校家庭/私達の食生活 学習のポイント|私達の食生活 学習のポイント]]{{進捗|75%|2023-01-08}}(1編のガイダンス、調理実習の注意点) === 1章 食事の役割と中学生の栄養の特徴 === # [[中学校家庭/どうして食事をするのだろう|どうして食事をするのだろう]]{{進捗|00%|2023-02-00}}(食事の役割、朝食) # [[中学校家庭/私達の食生活|私達の食生活]]{{進捗|00%|2023-02-00}} # [[中学校家庭/栄養素ってなんだろう|栄養素ってなんだろう]]{{進捗|100%|2022-05-10}}(栄養素、栄養、五大栄養素、水の働き) # [[中学校家庭/中学生に必要な栄養|中学生に必要な栄養]]{{進捗|25%|2023-05-12}}(食事摂取基準) === 2章 中学生に必要な栄養を満たす食事 === # [[中学校家庭/食品に含まれる栄養素|食品に含まれる栄養素]]{{進捗|00%|2023-02-00}} # [[中学校家庭/何をどれくらい食べればよいか|何をどれくらい食べればよいか]]{{進捗|00%|2023-02-00}} # [[中学校家庭/バランスの良い献立作り|バランスの良い献立作り]]{{進捗|00%|2023-02-00}} === 3章 調理のための食品の選択と購入 === # [[中学校家庭/食品の選択と購入|食品の選択と購入]]{{進捗|100%|2023-02-06}}(食品の選び方、食品表示) # [[中学校家庭/生鮮食品の特徴|生鮮食品の特徴]]{{進捗|00%|2023-02-06}}(生鮮食品、旬) # [[中学校家庭/加工食品の特徴|加工食品の特徴]]{{進捗|00%|2023-02-00}} # [[中学校家庭/食品の保存と食中毒の防止|食品の保存と食中毒の防止]]{{進捗|50%|2023-05-10}}(食品の保存、食中毒) === 4章 日常食の調理と地域の食文化 === # [[中学校家庭/日常食の調理|日常食の調理]]{{進捗|00%|2023-05-02}}(調理) # [[中学校家庭/野菜・芋の調理|野菜・芋の調理]]{{進捗|00%|2023-05-20}}(野菜・芋の種類、野菜・芋の調理上の性質) # [[中学校家庭/肉の調理|肉の調理]]{{進捗|25%|2023-05-03}}(肉の種類、肉の調理上の性質) # [[中学校家庭/魚の調理|魚の調理]]{{進捗|50%|2023-05-20}}(魚の種類、魚の調理上の性質) # [[中学校家庭/日本の食文化と和食の調理|日本の食文化と和食の調理]]{{進捗|00%|2023-08-00}}(地産地消、郷土料理、行事食、和食) # [[中学校家庭/持続可能な食生活を目指して|持続可能な食生活を目指して]]{{進捗|00%|2023-02-00}} == 2編 私達の衣生活 == [[中学校家庭/私達の衣生活 学習のポイント|私達の衣生活 学習のポイント]]{{進捗|00%|2023-05-00}}(2編のガイダンス、被服実習の注意点) === 1章 衣服の選択と手入れ === # [[中学校家庭/どうして衣服を着るのだろう|どうして衣服を着るのだろう]]{{進捗|100%|2023-11-08}}(社会生活上の働き、TPO) # [[中学校家庭/私らしさとTPO 着方の工夫|私らしさとTPO 着方の工夫]]{{進捗|100%|2023-04-10}}(自分らしい着方) # [[中学校家庭/日本の衣文化|日本の衣文化]]{{進捗|00%|2023-05-00}} # [[中学校家庭/衣服計画と必要な衣服の選択|衣服計画と必要な衣服の選択]]{{進捗|00%|2023-05-00}} # [[中学校家庭/衣服の手入れ|衣服の手入れ]]{{進捗|25%|2023-05-02}}(衣服の手入れ、衣服の汚れ) === 2章 生活を豊かにするために === # [[中学校家庭/作って楽しい布作品|作って楽しい布作品]]{{進捗|00%|2023-05-00}} # [[中学校家庭/持続可能な衣生活を目指して|持続可能な衣生活を目指して]]{{進捗|75%|2023-11-12}}(リデュース、リユース、リサイクル) == 3編 私達の住生活 == [[中学校家庭/私達の住生活 学習のポイント|私達の住生活 学習のポイント]]{{進捗|100%|2023-02-07}}(3編のガイダンス) === 1章 住まいの役割と安全な住まい方 === 家族が気持ちよく暮らせるように、住空間がどのように成り立っているのか、どのように整えていくのかを学びましょう。また、より快適な住宅になるように地域との共生についても考えましょう。 # [[中学校家庭/もしも住まいがなかったら|もしも住まいがなかったら]]{{進捗|25%|2026-03-03}}(住まいの役割、生活行為、住空間) # [[中学校家庭/住まいと気候風土の関わり|住まいと気候風土の関わり]]{{進捗|100%|2023-01-06}}(和式、洋式、和洋折衷) # [[中学校家庭/健康で快適な室内環境|健康で快適な室内環境]]{{進捗|100%|2023-02-07}}(シックハウス症候群、ー酸化炭素) # [[中学校家庭/家族の住まいを安全・安心に|家族の住まいを安全・安心に]]{{進捗|100%|2023-02-07}}(家庭内事故、バリアフリー、ユニバーサルデザイン) # [[中学校家庭/災害への対策|災害への対策]]{{進捗|100%|2023-05-07}}(防災、減災、通電火災、避難所・仮設住宅) # [[中学校家庭/持続可能な住生活を目指して|持続可能な住生活を目指して]]{{進捗|100%|2023-02-01}}(持続可能な社会) == 4編 私達の消費生活と環境 == [[中学校家庭/私達の消費生活と環境 学習のポイント|私達の消費生活と環境 学習のポイント]]{{進捗|00%|2023-05-07}}(4編のガイダンス) === 1章 私達の消費生活 === # [[中学校家庭/消費者としての自覚|消費者としての自覚]]{{進捗|100%|2023-02-09}}(商品、物資、サービス、消費者、契約) # [[中学校家庭/購入方法と支払い方法|購入方法と支払い方法]]{{進捗|100%|2023-05-06}}(購入方法、支払い方法、キャッシュレス化) # [[中学校家庭/バランス良く計画的な金銭の管理|バランス良く計画的な金銭の管理]]{{進捗|100%|2023-05-07}}(収入、支出、金銭の管理、三者間契約) # [[中学校家庭/消費者トラブルとその対策|消費者トラブルとその対策]]{{進捗|100%|2023-04-20}}(消費者トラブル、クーリング・オフ制度、消費生活センター) # [[中学校家庭/何を考えて決めますか 意思決定のプロセス|何を考えて決めますか 意思決定のプロセス]]{{進捗|100%|2023-05-05}}(ニーズ、ウォンツ、意思決定) === 2章 責任ある消費者になるために === # [[中学校家庭/消費者としてできること~権利と責任~|消費者としてできること~権利と責任~]]{{進捗|00%|2023-05-06}}(消費者の権利と責任、消費者基本法) # [[中学校家庭/省エネルギーと持続可能な社会|省エネルギーと持続可能な社会]]{{進捗|00%|2023-05-06}}(地球温暖化、再生可能エネルギー、循環型社会、3R) # [[中学校家庭/持続可能な消費生活を目指して|持続可能な消費生活を目指して]]{{進捗|50%|2026-07-07}}(SDGs、エシカル消費、消費者市民社会) == 5編 私達の成長と家族・地域 == [[中学校家庭/私達の成長と家族・地域 学習のポイント|私達の成長と家族・地域 学習のポイント]]{{進捗|100%|2023-04-30}}(5編のガイダンス、触れ合い体験の注意点) === 1章 家族・家庭と地域 === 家族や家庭の役割、家庭生活と地域との関わりなどを学び、中学生として何が出来るかを考えましょう。 # [[中学校家庭/私達の生活と家族・家庭の機能|私達の生活と家族・家庭の機能]]{{進捗|100%|2023-02-04}}(家族、家庭、基本的な機能) # [[中学校家庭/中学生としての自立|中学生としての自立]]{{進捗|100%|2023-02-01}}(自立、家庭の仕事、協力、協働) # [[中学校家庭/家庭生活と地域との関わり|家庭生活と地域との関わり]]{{進捗|100%|2023-02-04}}(地域) === 2章 幼児の生活と家族 === 幼児の発達や生活、遊びや家族の役割について学び、幼児と触れ合う活動から幼児の関わり方を考えましょう。 # [[中学校家庭/幼い頃の振り返り|幼い頃の振り返り]]{{進捗|100%|2023-02-02}}(乳児期、幼児期、児童期) # [[中学校家庭/幼児の体の発達|幼児の体の発達]]{{進捗|100%|2023-02-08}}(個性、個人差、運動機能、方向と順序、生理的機能) # [[中学校家庭/幼児の心の発達|幼児の心の発達]]{{進捗|100%|2023-02-09}}(言葉、知能、感情、社会性、自立心、自律心) # [[中学校家庭/幼児の1日の生活|幼児の1日の生活]]{{進捗|100%|2023-02-08}}(遊び、間食) # [[中学校家庭/支えられて身に付ける生活習慣|支えられて身に付ける生活習慣]]{{進捗|100%|2023-02-03}}(基本的生活習慣、社会的生活習慣) # [[中学校家庭/幼児の生活と遊び|幼児の生活と遊び]]{{進捗|100%|2023-04-12}}(遊び、玩具) # [[中学校家庭/幼児との関わり方の工夫|幼児との関わり方の工夫]]{{進捗|100%|2023-04-23}}(幼児との触れ合い) # [[中学校家庭/幼児との関わりを生活に生かす|幼児との関わりを生活に生かす]]{{進捗|100%|2023-02-02}}(関わりの振り返り) # [[中学校家庭/子どもにとっての家族|子どもにとっての家族]]{{進捗|100%|2023-05-03}}(信頼関係) === 3章 これからの家族と地域 === 家族や高齢者など、地域の人々と上手く関わり、協働する方法を考えて工夫しましょう。 # [[中学校家庭/家族との関わり|家族との関わり]]{{進捗|100%|2023-02-02}}(家族関係) # [[中学校家庭/家族や地域の高齢者との関わり|家族や地域の高齢者との関わり]]{{進捗|100%|2023-04-15}}(高齢者、少子高齢社会、高齢期) # [[中学校家庭/地域での協働を目指して|地域での協働を目指して]]{{進捗|100%|2023-04-30}}(共生、協カ、協働) [[Category:中学校家庭科|*]] [[Category:中学校教育|かていか]] 29rpm5f43uavux0k5sa23x2mf1tmqbi 301288 301281 2026-07-08T04:56:53Z Kwawe 68789 /* 2章 責任ある消費者になるために */ 301288 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>中学校家庭 {{進捗状況}}この書籍は、中学校の科目「技術・家庭」の家庭科分野に関する教科書です。高等学校の「[[高等学校家庭総合|家庭総合]]」や「[[高等学校家庭基礎|家庭基礎]]」内容をさらに精選して簡単にしたのが、中学校の家庭科です。  なお、配列やタイトルなどについては、当科目で最も採択率が高い東京書籍株式会社「[https://www.tokyo-shoseki.co.jp/textbook/j/7/505/ 新しい技術・家庭(家庭分野)自立と共生を目指して]」【家庭701】に合わせています。  高校生の他科目執筆を兼ねて、少しずつ、執筆していこうと思います。 == 家庭分野のガイダンス == [[中学校家庭/家庭分野のガイダンス|家庭分野のガイダンス]]{{進捗|75%|2023-05-04}}(実習上の注意、学習上の注意など) == 1編 私達の食生活 == [[中学校家庭/私達の食生活 学習のポイント|私達の食生活 学習のポイント]]{{進捗|75%|2023-01-08}}(1編のガイダンス、調理実習の注意点) === 1章 食事の役割と中学生の栄養の特徴 === # [[中学校家庭/どうして食事をするのだろう|どうして食事をするのだろう]]{{進捗|00%|2023-02-00}}(食事の役割、朝食) # [[中学校家庭/私達の食生活|私達の食生活]]{{進捗|00%|2023-02-00}} # [[中学校家庭/栄養素ってなんだろう|栄養素ってなんだろう]]{{進捗|100%|2022-05-10}}(栄養素、栄養、五大栄養素、水の働き) # [[中学校家庭/中学生に必要な栄養|中学生に必要な栄養]]{{進捗|25%|2023-05-12}}(食事摂取基準) === 2章 中学生に必要な栄養を満たす食事 === # [[中学校家庭/食品に含まれる栄養素|食品に含まれる栄養素]]{{進捗|00%|2023-02-00}} # [[中学校家庭/何をどれくらい食べればよいか|何をどれくらい食べればよいか]]{{進捗|00%|2023-02-00}} # [[中学校家庭/バランスの良い献立作り|バランスの良い献立作り]]{{進捗|00%|2023-02-00}} === 3章 調理のための食品の選択と購入 === # [[中学校家庭/食品の選択と購入|食品の選択と購入]]{{進捗|100%|2023-02-06}}(食品の選び方、食品表示) # [[中学校家庭/生鮮食品の特徴|生鮮食品の特徴]]{{進捗|00%|2023-02-06}}(生鮮食品、旬) # [[中学校家庭/加工食品の特徴|加工食品の特徴]]{{進捗|00%|2023-02-00}} # [[中学校家庭/食品の保存と食中毒の防止|食品の保存と食中毒の防止]]{{進捗|50%|2023-05-10}}(食品の保存、食中毒) === 4章 日常食の調理と地域の食文化 === # [[中学校家庭/日常食の調理|日常食の調理]]{{進捗|00%|2023-05-02}}(調理) # [[中学校家庭/野菜・芋の調理|野菜・芋の調理]]{{進捗|00%|2023-05-20}}(野菜・芋の種類、野菜・芋の調理上の性質) # [[中学校家庭/肉の調理|肉の調理]]{{進捗|25%|2023-05-03}}(肉の種類、肉の調理上の性質) # [[中学校家庭/魚の調理|魚の調理]]{{進捗|50%|2023-05-20}}(魚の種類、魚の調理上の性質) # [[中学校家庭/日本の食文化と和食の調理|日本の食文化と和食の調理]]{{進捗|00%|2023-08-00}}(地産地消、郷土料理、行事食、和食) # [[中学校家庭/持続可能な食生活を目指して|持続可能な食生活を目指して]]{{進捗|00%|2023-02-00}} == 2編 私達の衣生活 == [[中学校家庭/私達の衣生活 学習のポイント|私達の衣生活 学習のポイント]]{{進捗|00%|2023-05-00}}(2編のガイダンス、被服実習の注意点) === 1章 衣服の選択と手入れ === # [[中学校家庭/どうして衣服を着るのだろう|どうして衣服を着るのだろう]]{{進捗|100%|2023-11-08}}(社会生活上の働き、TPO) # [[中学校家庭/私らしさとTPO 着方の工夫|私らしさとTPO 着方の工夫]]{{進捗|100%|2023-04-10}}(自分らしい着方) # [[中学校家庭/日本の衣文化|日本の衣文化]]{{進捗|00%|2023-05-00}} # [[中学校家庭/衣服計画と必要な衣服の選択|衣服計画と必要な衣服の選択]]{{進捗|00%|2023-05-00}} # [[中学校家庭/衣服の手入れ|衣服の手入れ]]{{進捗|25%|2023-05-02}}(衣服の手入れ、衣服の汚れ) === 2章 生活を豊かにするために === # [[中学校家庭/作って楽しい布作品|作って楽しい布作品]]{{進捗|00%|2023-05-00}} # [[中学校家庭/持続可能な衣生活を目指して|持続可能な衣生活を目指して]]{{進捗|75%|2023-11-12}}(リデュース、リユース、リサイクル) == 3編 私達の住生活 == [[中学校家庭/私達の住生活 学習のポイント|私達の住生活 学習のポイント]]{{進捗|100%|2023-02-07}}(3編のガイダンス) === 1章 住まいの役割と安全な住まい方 === 家族が気持ちよく暮らせるように、住空間がどのように成り立っているのか、どのように整えていくのかを学びましょう。また、より快適な住宅になるように地域との共生についても考えましょう。 # [[中学校家庭/もしも住まいがなかったら|もしも住まいがなかったら]]{{進捗|25%|2026-03-03}}(住まいの役割、生活行為、住空間) # [[中学校家庭/住まいと気候風土の関わり|住まいと気候風土の関わり]]{{進捗|100%|2023-01-06}}(和式、洋式、和洋折衷) # [[中学校家庭/健康で快適な室内環境|健康で快適な室内環境]]{{進捗|100%|2023-02-07}}(シックハウス症候群、ー酸化炭素) # [[中学校家庭/家族の住まいを安全・安心に|家族の住まいを安全・安心に]]{{進捗|100%|2023-02-07}}(家庭内事故、バリアフリー、ユニバーサルデザイン) # [[中学校家庭/災害への対策|災害への対策]]{{進捗|100%|2023-05-07}}(防災、減災、通電火災、避難所・仮設住宅) # [[中学校家庭/持続可能な住生活を目指して|持続可能な住生活を目指して]]{{進捗|100%|2023-02-01}}(持続可能な社会) == 4編 私達の消費生活と環境 == [[中学校家庭/私達の消費生活と環境 学習のポイント|私達の消費生活と環境 学習のポイント]]{{進捗|00%|2023-05-07}}(4編のガイダンス) === 1章 私達の消費生活 === # [[中学校家庭/消費者としての自覚|消費者としての自覚]]{{進捗|100%|2023-02-09}}(商品、物資、サービス、消費者、契約) # [[中学校家庭/購入方法と支払い方法|購入方法と支払い方法]]{{進捗|100%|2023-05-06}}(購入方法、支払い方法、キャッシュレス化) # [[中学校家庭/バランス良く計画的な金銭の管理|バランス良く計画的な金銭の管理]]{{進捗|100%|2023-05-07}}(収入、支出、金銭の管理、三者間契約) # [[中学校家庭/消費者トラブルとその対策|消費者トラブルとその対策]]{{進捗|100%|2023-04-20}}(消費者トラブル、クーリング・オフ制度、消費生活センター) # [[中学校家庭/何を考えて決めますか 意思決定のプロセス|何を考えて決めますか 意思決定のプロセス]]{{進捗|100%|2023-05-05}}(ニーズ、ウォンツ、意思決定) === 2章 責任ある消費者になるために === # [[中学校家庭/消費者としてできること~権利と責任~|消費者としてできること~権利と責任~]]{{進捗|00%|2023-05-06}}(消費者の権利と責任、消費者基本法) # [[中学校家庭/省エネルギーと持続可能な社会|省エネルギーと持続可能な社会]]{{進捗|00%|2023-05-06}}(地球温暖化、再生可能エネルギー、循環型社会、3R) # [[中学校家庭/持続可能な消費生活を目指して|持続可能な消費生活を目指して]]{{進捗|75%|2026-07-08}}(SDGs、エシカル消費、消費者市民社会) == 5編 私達の成長と家族・地域 == [[中学校家庭/私達の成長と家族・地域 学習のポイント|私達の成長と家族・地域 学習のポイント]]{{進捗|100%|2023-04-30}}(5編のガイダンス、触れ合い体験の注意点) === 1章 家族・家庭と地域 === 家族や家庭の役割、家庭生活と地域との関わりなどを学び、中学生として何が出来るかを考えましょう。 # [[中学校家庭/私達の生活と家族・家庭の機能|私達の生活と家族・家庭の機能]]{{進捗|100%|2023-02-04}}(家族、家庭、基本的な機能) # [[中学校家庭/中学生としての自立|中学生としての自立]]{{進捗|100%|2023-02-01}}(自立、家庭の仕事、協力、協働) # [[中学校家庭/家庭生活と地域との関わり|家庭生活と地域との関わり]]{{進捗|100%|2023-02-04}}(地域) === 2章 幼児の生活と家族 === 幼児の発達や生活、遊びや家族の役割について学び、幼児と触れ合う活動から幼児の関わり方を考えましょう。 # [[中学校家庭/幼い頃の振り返り|幼い頃の振り返り]]{{進捗|100%|2023-02-02}}(乳児期、幼児期、児童期) # [[中学校家庭/幼児の体の発達|幼児の体の発達]]{{進捗|100%|2023-02-08}}(個性、個人差、運動機能、方向と順序、生理的機能) # [[中学校家庭/幼児の心の発達|幼児の心の発達]]{{進捗|100%|2023-02-09}}(言葉、知能、感情、社会性、自立心、自律心) # [[中学校家庭/幼児の1日の生活|幼児の1日の生活]]{{進捗|100%|2023-02-08}}(遊び、間食) # [[中学校家庭/支えられて身に付ける生活習慣|支えられて身に付ける生活習慣]]{{進捗|100%|2023-02-03}}(基本的生活習慣、社会的生活習慣) # [[中学校家庭/幼児の生活と遊び|幼児の生活と遊び]]{{進捗|100%|2023-04-12}}(遊び、玩具) # [[中学校家庭/幼児との関わり方の工夫|幼児との関わり方の工夫]]{{進捗|100%|2023-04-23}}(幼児との触れ合い) # [[中学校家庭/幼児との関わりを生活に生かす|幼児との関わりを生活に生かす]]{{進捗|100%|2023-02-02}}(関わりの振り返り) # [[中学校家庭/子どもにとっての家族|子どもにとっての家族]]{{進捗|100%|2023-05-03}}(信頼関係) === 3章 これからの家族と地域 === 家族や高齢者など、地域の人々と上手く関わり、協働する方法を考えて工夫しましょう。 # [[中学校家庭/家族との関わり|家族との関わり]]{{進捗|100%|2023-02-02}}(家族関係) # [[中学校家庭/家族や地域の高齢者との関わり|家族や地域の高齢者との関わり]]{{進捗|100%|2023-04-15}}(高齢者、少子高齢社会、高齢期) # [[中学校家庭/地域での協働を目指して|地域での協働を目指して]]{{進捗|100%|2023-04-30}}(共生、協カ、協働) [[Category:中学校家庭科|*]] [[Category:中学校教育|かていか]] l32jd1ojmjd9vqhrdm84ghnro8g535o 中学校理科 第2分野/身近な生物の観察 0 19257 301312 301233 2026-07-08T10:35:38Z Sakamoto-takaich 91918 /* 一般的な顕微鏡の使用手順 */ 301312 wikitext text/x-wiki == ルーペの使いかた == '''ルーペ'''(独: lupe)とは、いわゆる「虫めがね」などのことである。ルーペでは、決して太陽を見てはいけない。(目を痛めるので。)  ルーペの倍率は5倍~10倍程である。 [[File:タンポポの花 color.svg|thumb|タンポポの花。この図で表される部分が、1つの花である。]] [[File:タンポポの花.svg|thumb|スケッチする場合、色はつけない。]] タンポポなどの道端の植物など、肉眼で確認できる程度のものは、このルーペで見るのが効率的である。ちなみに、タンポポで、花びらのように見える物は、じつは一枚一枚が花全体である。それぞれの「花びらのような物」に、おしべ や めしべ が個別についており、独立した花なのである。 [[File:ルーペの使い方 対象物が動かせる場合.png|thumb|ルーペの使うときに、対象物が動かせる場合には、対象物のほうを動かす。]] ルーペの使い方 :ルーペを目の近くに近づけたら(眼鏡ぐらいの位置)、ルーペは動かさない。ピントがあわない場合などは、観察物を動かせる場合は対象物を動かす。観察物を動かせない場合には自分(観察者)が移動する。 * さまざまなルーペ <gallery> File:Magnifying glass.jpg|最も典型的な手持ちタイプ。多くがレンズが1枚だけ、低倍率だが広視野。 File:Loupe.jpg|高倍率の折りたたみ(フォールディング)タイプで、理化学、ジュエリー鑑定などに用いる。 File:Magnifying glass 20101113.jpg|主に印刷物の検査に用いるもの。対象物に載せるだけで焦点が合う。 File:Linen tester.jpg|リネンテスター。主に繊維や印刷物の検査に用いる。対象物に載せるだけで焦点が合う。未使用時は小さく折りたためることが利点。 File:Lupp.jpg|いわゆる時計見(キズミ)。眼窩(がんか)に挟み込んで使うタイプで、両手が自由に使えるため、時計修理などに使用する。 </gallery> == 顕微鏡の使いかた == === 双眼実体顕微鏡 === [[Image:Olympus SZIII stereo microscope.jpg|right|200px|thumb|双眼実体顕微鏡。オリンパス社製。]] 双眼実体顕微鏡は、観察する物をプレパラートにする必要が無い。倍率は20倍~40倍ほどである。 ピント(焦点)合わせなどの調整は、以下のように行う。 # まず、水平で直接日光の当たらない場所に、顕微鏡を置く。 # ペトリ皿などに観察したい物を乗せ、その皿をステージの上に置く。けっしてペトリ皿などを使わずに、直接は乗っけてはいけない。 # 観察者の両目の間隔に合わせられるように、接眼鏡筒が左右に動かせるようになっている。 # なので、取り付けた接眼レンズを使って両目でのぞきながら、接眼鏡筒を左右に動かして、調節する。 # 視野やピントのおおよその調整をするため、鏡筒を支えながら粗動ねじをゆるめて、取り付けた接眼レンズで両目でのぞきながら、鏡筒を上下して、視野やピントなどの、おおよその調整を行う。 # 最初に<span style="font-size: large">右目</span>でピントの調整を行うため、<span style="font-size: large">調整ねじ</span>(「調節ねじ」とも言う)をゆっくり回して、右目で見えるピントを合わせる。 # 次に<span style="font-size: large">左目</span>でピントを合わせるため、左目側の接眼鏡筒に付いている<span style="font-size: large">視度調節リング</span>をゆっくり回して、左目で見えるピントを合わせる。(右目側の接眼鏡筒には、視度調節リングは付いていないのが一般。) {{clear}} === 一般的な顕微鏡 === [[File:LaborMik2.jpg|thumb|200px|left|顕微鏡。 中学校のとは違うが、仕組みは だいたい同じであるはず。]] [[File:ステージ上下式顕微鏡イラストsvg.svg|thumb|ステージ上下式顕微鏡の各部の解説用のイラスト。]] [[File:鏡筒上下式顕微鏡イラスト.svg|thumb|鏡筒上下式顕微鏡の解説イラスト。]] 顕微鏡のレンズには、接眼レンズ(eyepiece)と対物レンズ(objective)の2種類が必要である。 顕微鏡の倍率は、 :  接眼レンズの倍率 × 対物レンズの倍率 である。 たとえば接眼レンズの倍率が15倍であり、対物レンズの倍率が4倍なら、顕微鏡の倍率は60倍である。(15×4=60より) 一般に中学校などで使うような形式の顕微鏡の倍率は、40倍から600倍までである。 ミジンコやミドリムシなど、いわゆる「微生物」と言われるものは、ルーペなどでは倍率が小さすぎて確認できない場合が多い。微生物などは、顕微鏡以上で観察しよう。 *手順 まず、'''プレパラート'''(ドイツ語: Präparat)の準備が必要である。鏡筒上下式顕微鏡と、ステージ上下式顕微鏡のどちらとも、プレパラートが必要にななる。このプレパラートの準備方法を、つぎに説明する。 === プレパラート === [[Image:Microscope slide.jpg|thumb|left|250px|プレパラートとカバーガラス。細長いプレパラートの上に、中央に正方形状のカバーガラスが乗っている。]] 顕微鏡で観察する時は、'''プレパラート'''(ドイツ語: Präparat)を使う必要がある。 うすい物しか観察できない。あつい物を観察したい場合は、うすい切片にする必要がある。 [[File:プレパラートのつくりかた.svg|thumb|400px|プレパラートのつくりかた]] # スライドガラスの上に、観察したい対象を乗せる。必要に応じて、対象物に水や[https://ja.wikipedia.org/wiki/%E9%85%A2%E9%85%B8%E3%82%AB%E3%83%BC%E3%83%9F%E3%83%B3%E6%BA%B6%E6%B6%B2?wprov=sfla1 酢酸カーミン溶液](ただし、すぐに蒸発してしまうため、プレパラートを半永久的に保存したい場合は、「[https://phytoseiidae.acarology-japan.org/Introduction/Hoyer.html ホイヤー氏液]」などの水溶性封入剤の使用が適している)また[https://ja.wikipedia.org/wiki/%E3%82%AE%E3%83%A0%E3%82%B6%E6%9F%93%E8%89%B2?wprov=sfla1 ギムザ染色]など染色も行うことがある。溶剤をスポイトなどで1滴たらして、水分を補って視認性と固定化または染色をしてプレパラートを作成する。 # 柄付き針(えつきばり)やピンセットで'''カバーガラス'''を乗せ、このとき空気のあわが入らないようにする。 # カバーガラスから、はみでた水を、ろ紙で吸い取る。 :(※ 柄つき針を使ってる画像を募集中。だれか作ってください。) {{clear}} === 一般的な顕微鏡の使用手順 === # まず、水平で直接日光の当たらない場所に、顕微鏡を置く。 # レンズを取り付ける時は、まずは<span style="color:red"><span style="font-size: large">接眼レンズ</span></span>(せつがんレンズ)を取り付け、次に<span style="color:red"><span style="font-size: large">対物レンズ</span></span>(たいぶつレンズ)を取り付ける。この順番を逆にすると、もし鏡筒の内部にホコリなどが入ってしまうと、対物レンズの上にホコリが落ちてしまい邪魔になる。(外すときは、逆の順序である。対物レンズを外し、接眼レンズを外す。) # 対物レンズを、もっとも低倍率の物にセットし、次に接眼レンズをのぞきながら、視野全体が明るく見えるように<span style="color:red"><span style="font-size: large">反射鏡</span></span>と しぼり を調節する。 # プレパラートをステージの上に乗せクリップで固定し、顕微鏡を横から見ながら、なるべく対物レンズとプレパラートを近づける。ピント合わせは、まだ行わない。なるべく近づける理由は、ピント合わせを行うとき、近づけたレンズとプレパラートを離す方向でピント合わせを行うことで、レンズとプレパラートがぶつからないようにするためである。 # 接眼レンズをのぞきながら、ピント合わせを行い、対物レンズとプレパラートを離していくように、調節ねじ をゆっくり回し調整する。 以上の手順で、観察を始める。さらに高倍率で観察したい場合には、対物レンズのレボルバーを回して、高倍率の対物レンズに切替える。 :※ 接眼レンズを先につけるのは、要するに、取り付けでは、上側に来るレンズを先につける、という事である。なぜなら、こうすれば、取り付けによってホコリが上から下に落ちるときに、下にレンズが無いので、そのまま顕微鏡の外にホコリが出ていくからである。 :いっぽう、取り外しでは、もし上から取り外すと、下に残っている対物レンズにホコリが落ちてしまうので、これを避けなければいけない。そのためには、取り外しは、下の対物レンズから取り外せば良い。 [[File:顕微鏡での見たい方向と動かす方向.jpg|400px|thumb|光学顕微鏡などでの、映像の動かしたい方向と、プレーパラートを動かす方向との関係を図示。]] 顕微鏡で見える像は、上下左右が反対に見える顕微鏡が普通である。そのため、プレパラートを動かすと、像は反対方向に動く様な像に見える。よって、プレパラートを動かしたい場合には、動かしたい方向とは反対の方向に動かす。 いきなり、高倍率の対物レンズで観察すると、視野がせまいので画面の移動も早くなり、位置調整が難しくなる。そのため、まずは低倍率の対物レンズを使用する。おおよそ対象を正確に定められたら高倍率に切り替える。 また、高倍率にするほど、明るさは暗くなる為、低倍率の明るい像で位置を定めるほうが見やすく合わせやすい。 {{clear}} == スケッチのしかた == 理科におけるスケッチのしかたは、美術スケッチとは異なる。 理科におけるスケッチのしかたを述べる。 * 鉛筆の濃さ・かたさは、H,HB,Fなどを用いる。(つまり、ボールペンは不要。) * 影はつけない。二度書きしない。線をかきまちがえた場合は、消しゴムで消す。 * 輪郭(りんかく)は、はっきり描く。線をぼかさない。そのため、エンピツは細い線を描けるようにするため、削っておく。。 * 目的とする対象物だけを描く。(余計な情報はつけない。メモ書きもつけない。どうしてもメモを残したい場合は、ノートにスケッチを書いてる場合、スケッチの描かれているページとは別のページに描くなどして、スケッチとメモを明確に区別できるようにする。) 中学では立体感の表現方法まで覚えなくてもよいが、もしスケッチで立体感をつける場合は、点の多い・少ないで表現する。(奥まっていて影になりそうなところほど、点が多くなる。) 立体感の表現はやや難しいので、中学校では描かないほうが無難だろう。 また、顕微鏡によっては[https://www.microscope.healthcare.nikon.com/ja_JP/products/accessories?utm_source=chatgpt.com 顕微鏡接眼オプション]でカメラを設置できるアダプターが存在する。これを接続することによって、高倍率の鮮明な写真を得る方法もある。 [[Category:中学校教育|りか2]] [[Category:理科教育|中2]] [[Category:生物学|中]] [[Category:地球科学|中]] f0tahgdw7seon0kl48048enmuemtkcg 301316 301312 2026-07-08T11:35:44Z Sakamoto-takaich 91918 /* スケッチのしかた */ 301316 wikitext text/x-wiki == ルーペの使いかた == '''ルーペ'''(独: lupe)とは、いわゆる「虫めがね」などのことである。ルーペでは、決して太陽を見てはいけない。(目を痛めるので。)  ルーペの倍率は5倍~10倍程である。 [[File:タンポポの花 color.svg|thumb|タンポポの花。この図で表される部分が、1つの花である。]] [[File:タンポポの花.svg|thumb|スケッチする場合、色はつけない。]] タンポポなどの道端の植物など、肉眼で確認できる程度のものは、このルーペで見るのが効率的である。ちなみに、タンポポで、花びらのように見える物は、じつは一枚一枚が花全体である。それぞれの「花びらのような物」に、おしべ や めしべ が個別についており、独立した花なのである。 [[File:ルーペの使い方 対象物が動かせる場合.png|thumb|ルーペの使うときに、対象物が動かせる場合には、対象物のほうを動かす。]] ルーペの使い方 :ルーペを目の近くに近づけたら(眼鏡ぐらいの位置)、ルーペは動かさない。ピントがあわない場合などは、観察物を動かせる場合は対象物を動かす。観察物を動かせない場合には自分(観察者)が移動する。 * さまざまなルーペ <gallery> File:Magnifying glass.jpg|最も典型的な手持ちタイプ。多くがレンズが1枚だけ、低倍率だが広視野。 File:Loupe.jpg|高倍率の折りたたみ(フォールディング)タイプで、理化学、ジュエリー鑑定などに用いる。 File:Magnifying glass 20101113.jpg|主に印刷物の検査に用いるもの。対象物に載せるだけで焦点が合う。 File:Linen tester.jpg|リネンテスター。主に繊維や印刷物の検査に用いる。対象物に載せるだけで焦点が合う。未使用時は小さく折りたためることが利点。 File:Lupp.jpg|いわゆる時計見(キズミ)。眼窩(がんか)に挟み込んで使うタイプで、両手が自由に使えるため、時計修理などに使用する。 </gallery> == 顕微鏡の使いかた == === 双眼実体顕微鏡 === [[Image:Olympus SZIII stereo microscope.jpg|right|200px|thumb|双眼実体顕微鏡。オリンパス社製。]] 双眼実体顕微鏡は、観察する物をプレパラートにする必要が無い。倍率は20倍~40倍ほどである。 ピント(焦点)合わせなどの調整は、以下のように行う。 # まず、水平で直接日光の当たらない場所に、顕微鏡を置く。 # ペトリ皿などに観察したい物を乗せ、その皿をステージの上に置く。けっしてペトリ皿などを使わずに、直接は乗っけてはいけない。 # 観察者の両目の間隔に合わせられるように、接眼鏡筒が左右に動かせるようになっている。 # なので、取り付けた接眼レンズを使って両目でのぞきながら、接眼鏡筒を左右に動かして、調節する。 # 視野やピントのおおよその調整をするため、鏡筒を支えながら粗動ねじをゆるめて、取り付けた接眼レンズで両目でのぞきながら、鏡筒を上下して、視野やピントなどの、おおよその調整を行う。 # 最初に<span style="font-size: large">右目</span>でピントの調整を行うため、<span style="font-size: large">調整ねじ</span>(「調節ねじ」とも言う)をゆっくり回して、右目で見えるピントを合わせる。 # 次に<span style="font-size: large">左目</span>でピントを合わせるため、左目側の接眼鏡筒に付いている<span style="font-size: large">視度調節リング</span>をゆっくり回して、左目で見えるピントを合わせる。(右目側の接眼鏡筒には、視度調節リングは付いていないのが一般。) {{clear}} === 一般的な顕微鏡 === [[File:LaborMik2.jpg|thumb|200px|left|顕微鏡。 中学校のとは違うが、仕組みは だいたい同じであるはず。]] [[File:ステージ上下式顕微鏡イラストsvg.svg|thumb|ステージ上下式顕微鏡の各部の解説用のイラスト。]] [[File:鏡筒上下式顕微鏡イラスト.svg|thumb|鏡筒上下式顕微鏡の解説イラスト。]] 顕微鏡のレンズには、接眼レンズ(eyepiece)と対物レンズ(objective)の2種類が必要である。 顕微鏡の倍率は、 :  接眼レンズの倍率 × 対物レンズの倍率 である。 たとえば接眼レンズの倍率が15倍であり、対物レンズの倍率が4倍なら、顕微鏡の倍率は60倍である。(15×4=60より) 一般に中学校などで使うような形式の顕微鏡の倍率は、40倍から600倍までである。 ミジンコやミドリムシなど、いわゆる「微生物」と言われるものは、ルーペなどでは倍率が小さすぎて確認できない場合が多い。微生物などは、顕微鏡以上で観察しよう。 *手順 まず、'''プレパラート'''(ドイツ語: Präparat)の準備が必要である。鏡筒上下式顕微鏡と、ステージ上下式顕微鏡のどちらとも、プレパラートが必要にななる。このプレパラートの準備方法を、つぎに説明する。 === プレパラート === [[Image:Microscope slide.jpg|thumb|left|250px|プレパラートとカバーガラス。細長いプレパラートの上に、中央に正方形状のカバーガラスが乗っている。]] 顕微鏡で観察する時は、'''プレパラート'''(ドイツ語: Präparat)を使う必要がある。 うすい物しか観察できない。あつい物を観察したい場合は、うすい切片にする必要がある。 [[File:プレパラートのつくりかた.svg|thumb|400px|プレパラートのつくりかた]] # スライドガラスの上に、観察したい対象を乗せる。必要に応じて、対象物に水や[https://ja.wikipedia.org/wiki/%E9%85%A2%E9%85%B8%E3%82%AB%E3%83%BC%E3%83%9F%E3%83%B3%E6%BA%B6%E6%B6%B2?wprov=sfla1 酢酸カーミン溶液](ただし、すぐに蒸発してしまうため、プレパラートを半永久的に保存したい場合は、「[https://phytoseiidae.acarology-japan.org/Introduction/Hoyer.html ホイヤー氏液]」などの水溶性封入剤の使用が適している)また[https://ja.wikipedia.org/wiki/%E3%82%AE%E3%83%A0%E3%82%B6%E6%9F%93%E8%89%B2?wprov=sfla1 ギムザ染色]など染色も行うことがある。溶剤をスポイトなどで1滴たらして、水分を補って視認性と固定化または染色をしてプレパラートを作成する。 # 柄付き針(えつきばり)やピンセットで'''カバーガラス'''を乗せ、このとき空気のあわが入らないようにする。 # カバーガラスから、はみでた水を、ろ紙で吸い取る。 :(※ 柄つき針を使ってる画像を募集中。だれか作ってください。) {{clear}} === 一般的な顕微鏡の使用手順 === # まず、水平で直接日光の当たらない場所に、顕微鏡を置く。 # レンズを取り付ける時は、まずは<span style="color:red"><span style="font-size: large">接眼レンズ</span></span>(せつがんレンズ)を取り付け、次に<span style="color:red"><span style="font-size: large">対物レンズ</span></span>(たいぶつレンズ)を取り付ける。この順番を逆にすると、もし鏡筒の内部にホコリなどが入ってしまうと、対物レンズの上にホコリが落ちてしまい邪魔になる。(外すときは、逆の順序である。対物レンズを外し、接眼レンズを外す。) # 対物レンズを、もっとも低倍率の物にセットし、次に接眼レンズをのぞきながら、視野全体が明るく見えるように<span style="color:red"><span style="font-size: large">反射鏡</span></span>と しぼり を調節する。ライトが設置された[https://www.microscope.healthcare.nikon.com/ja_JP/products 高級顕微鏡]な特殊な顕微鏡もある。 # プレパラートをステージの上に乗せクリップで固定し、顕微鏡を横から見ながら、なるべく対物レンズとプレパラートを近づける。ピント合わせは、まだ行わない。なるべく近づける理由は、ピント合わせを行うとき、近づけたレンズとプレパラートを離す方向でピント合わせを行うことで、レンズとプレパラートがぶつからないようにするためである。 # 接眼レンズをのぞきながら、ピント合わせを行い、対物レンズとプレパラートを離していくように、調節ねじ をゆっくり回し調整する。一部の顕微鏡ではピント合わせの幅の[https://www.microscope.healthcare.nikon.com/guides/si/ja/page/stage.html 制限機能]がある。 以上の手順で、観察を始める。さらに高倍率で観察したい場合には、対物レンズのレボルバーを回して、高倍率の対物レンズに切替える。 :※ 接眼レンズを先につけるのは、要するに、取り付けでは、上側に来るレンズを先につける、という事である。なぜなら、こうすれば、取り付けによってホコリが上から下に落ちるときに、下にレンズが無いので、そのまま顕微鏡の外にホコリが出ていくからである。 :いっぽう、取り外しでは、もし上から取り外すと、下に残っている対物レンズにホコリが落ちてしまうので、これを避けなければいけない。そのためには、取り外しは、下の対物レンズから取り外せば良い。 [[File:顕微鏡での見たい方向と動かす方向.jpg|400px|thumb|光学顕微鏡などでの、映像の動かしたい方向と、プレーパラートを動かす方向との関係を図示。]] 顕微鏡で見える像は、上下左右が反対に見える顕微鏡が普通である。そのため、プレパラートを動かすと、像は反対方向に動く様な像に見える。よって、プレパラートを動かしたい場合には、動かしたい方向とは反対の方向に動かす。 いきなり、高倍率の対物レンズで観察すると、視野がせまいので画面の移動も早くなり、位置調整が難しくなる。そのため、まずは[https://www.microscope.healthcare.nikon.com/guides/si/ja/page/brightfield.html 低倍率の対物レンズを使用]する。[https://www.microscope.healthcare.nikon.com/guides/si/ja/page/index.html 合わせ]方[https://www.microscope.healthcare.nikon.com/guides/si/ja/page/diopter1.html 1.][https://www.microscope.healthcare.nikon.com/guides/si/ja/page/diopter2.html 2.][https://www.microscope.healthcare.nikon.com/guides/si/ja/page/diopter3.html 3.]はおおよそ対象を正確に定められたら高倍率に切り替える。 また、高倍率にするほど、明るさは暗くなる為、[https://www.microscope.healthcare.nikon.com/ja_JP/products/upright-microscopes/eclipse-si 低倍率の明るい像]で位置を定めるほうが見やすく合わせやすい。 {{clear}} == スケッチのしかた == 理科におけるスケッチのしかたは、美術スケッチとは異なる。 理科におけるスケッチのしかたを述べる。 * 鉛筆の濃さ・かたさは、H,HB,Fなどを用いる。(つまり、ボールペンは不要。) * 影はつけない。二度書きしない。線をかきまちがえた場合は、消しゴムで消す。 * 輪郭(りんかく)は、はっきり描く。線をぼかさない。そのため、エンピツは細い線を描けるようにするため、削っておく。。 * 目的とする対象物だけを描く。(余計な情報はつけない。メモ書きもつけない。どうしてもメモを残したい場合は、ノートにスケッチを書いてる場合、スケッチの描かれているページとは別のページに描くなどして、スケッチとメモを明確に区別できるようにする。) 中学では立体感の表現方法まで覚えなくてもよいが、もしスケッチで立体感をつける場合は、点の多い・少ないで表現する。(奥まっていて影になりそうなところほど、点が多くなる。) 立体感の表現はやや難しいので、中学校では描かないほうが無難だろう。 また、顕研究者の用いる顕微鏡には様々な[https://www.microscope.healthcare.nikon.com/ja_JP/products/accessories?utm_source=chatgpt.com 顕微鏡接眼オプション]があり、[https://downloads.microscope.healthcare.nikon.com/phase7/literature/Brochures/Japanese/ICSI-IMSI_2CJ-MJWH-72512T_20P-1_2026-03-09-170256_cwsi.pdf マイクロマニピュレーター]で対象物に操作も可能となるものや[https://www.microscope.healthcare.nikon.com/guides/si/ja/page/lamp.html ランプ照明]や高倍率対応対物レンズの視認性を向上する[https://www.microscope.healthcare.nikon.com/guides/si/ja/page/condenser.html コンデンサー] 、[https://www.microscope.healthcare.nikon.com/guides/si/ja/page/darkfield.html 暗視野用スライダー]、[https://www.microscope.healthcare.nikon.com/guides/si/ja/page/transmittedfluorescence.html 透過蛍光検鏡スライダー]、[https://www.microscope.healthcare.nikon.com/guides/si/ja/page/phasedifference.html 位相差用スライダー]、等のアタッチメントが存在する。これを接続することによって、高倍率の鮮明な写真を得る[https://www.microscope.healthcare.nikon.com/ja_JP/products/high-content-imaging イメージングソリューション]や[https://www.microscope.healthcare.nikon.com/ja_JP/products/cameras/digital-sight-100 カメラ]も研究用顕微鏡には必須な観察方法である。 [[Category:中学校教育|りか2]] [[Category:理科教育|中2]] [[Category:生物学|中]] [[Category:地球科学|中]] jctwv7mtz536xj4nphfejcbc26onbu6 有機化学/有機化学とは 0 23212 301278 214281 2026-07-07T17:43:10Z Lin Xiangru 52825 イントロにみえるように改稿 301278 wikitext text/x-wiki 本稿では、これから'''有機化学'''(ゆうきかがく)を学習する皆さんに、有機化学について簡単ではあるが概説する。 まず、有機化学とは、「有機化合物」を取り扱う、化学の一分野である。有機化合物とは、炭素Cを含む化合物のうち、炭素の単体・炭素の酸化物・炭酸塩などを除く化合物のことである。有機化合物は主に炭素C、水素H、酸素O、窒素N、ハロゲンなどの元素から成り立っている。構成する元素こそ少ないものの、その組み合わせは膨大である。 生命活動に目を向けてみると、タンパク質や酵素、ビタミン、脂質、炭水化物などなど…、多くの物質が有機化合物である。また、私たちの体内で起こっているような化学反応も、有機化学反応である。身の回りに目を向けても、食物・衣服・石油など、多くの物質が有機化合物である。有機化合物は、天然に存在するものに限らず、人工的に合成されているものもある。合成繊維やプラスチック、そして何より薬など、合成有機化合物によって人間の生活は支えられている。 == 有機化学の歴史 == 「有機物」という名称の始まりは、1807年にさかのぼる。スウェーデンの化学者・イェンス・ベルセリウスは、生物に由来する(生命力を含んだ)物質に対して「有機物」と名付け、(生命力を含まない)鉱物に由来する物質を「無機物」として、物質を2種類に大別した。そして、「無機物」から「有機物」を作ることは決して不可能であると当時は考えられていたのである。 [[ファイル:Urea_Synthesis_Woehler.svg|thumb|380px|尿素合成の反応式]] しかし、1828年にフリードリヒ・ヴェーラーが、シアン酸カリウムという無機物から、有機物である尿素を合成することに成功した。「生命力」なしでも、「有機物」を合成することができることが判明したということである。現在では、「有機物(有機化合物)」は、例外はあるものの、基本的に「炭素を含む化合物」として定義されている。(※炭素の単体・炭素の酸化物・炭酸塩は「有機化合物」に含まない。) == 有機化合物の分類 == 有機化合物は、炭素原子の共有結合を主な骨格としている。 炭素は4本の価標をもつので、単結合・二重結合・三重結合を作る。 炭素原子間に単結合のみを持つ有機化合物を'''飽和化合物'''、二重結合や三重結合を含む化合物を'''不飽和化合物'''という。 一方、有機化合物は炭素原子が輪を作る'''環式化合物'''と輪を作らない'''鎖式化合物(脂肪族化合物)'''とに分類することも出来る。 環式化合物はさらにベンゼン環を含む'''芳香族化合物'''と'''脂環式化合物'''に分類出来る。 まとめると次のようになる。 <table border="1"> <caption>有機化合物の分類</caption> <tr><td colspan="2"></td><th>飽和化合物</th><th>不飽和化合物</th></tr> <tr><th>鎖式化合物</th><th>脂肪族化合物</th><td>例:メタン</td><td>例:エチレン</td></tr> <tr><th rowspan="2">環式化合物</th><th>脂環式化合物</th><td>例:シクロヘキサン</td><td>例:シクロヘキセン</td></tr> <tr><th>芳香族化合物</th><td>存在しない</td><td>例:ベンゼン</td></tr> </table> [[カテゴリ:有機化学]] 0p6sfr9u0y956vk4ro9xlzt5h8key6g C Sharp 0 28335 301298 267847 2026-07-08T09:14:55Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301298 wikitext text/x-wiki {{Wikipedia}} {{Pathnav|メインページ|工学|情報技術|[プログラミング}} {{DISPLAYTITLE:C#}} 本書は、マイクロソフト社が開発したプログラミング言語「'''C#'''」について解説しています。 C#は、先行する[[C言語|C]]、[[C++]]、[[Java]]と同じファミリーに属するプログラミング言語で、マイクロソフト社の社員が[[W:.NET Foundation|.NET Foundation]]を通じて開発し、[[W:MIT License|MITライセンス]]の下でリリースされている[[W:共通言語基盤|共通言語基盤]] (Common Language Infrastructure; CLI)で動作することが特徴です。 C#は、多くの開発者によって広く使用されており、プログラミングの初学者から熟練者まで幅広い層に向けて設計されています。また、C#は[[W:.NET Framework|.NET Framework]]や[[W:.NET Core|.NET Core]]といったフレームワークを使用して開発することができ、WindowsアプリケーションやWebアプリケーションなどの開発に適しています。 {{コラム|width=100%|.NET Framework と .NET Core と .NET |2=.NET Framework、.NET Core、および.NETは、Microsoftが開発したプログラミングフレームワークの異なるバージョンやエディションを指す用語です。 ;.NET Framework: 最初にリリースされた.NET実行環境です。Windows向けのプラットフォームで、広く利用されています。Windowsが動作する環境で構築されたアプリケーションの開発や実行に使用されます。.NET Frameworkは、ASP.NETなどのWebアプリケーション、デスクトップアプリケーション、および一般的なWindowsアプリケーションの開発に使用されます。2019年4月にリリースされたバージョン4.8をもって.NET Frameworkのメジャーアップデートを終了することがアナウンスされました。 ;.NET Core: クロスプラットフォームの.NET実行環境で、Linux、macOS、Windowsなどの異なるプラットフォームで動作するアプリケーションを構築するための開発フレームワークです。軽量化されており、クロスプラットフォームでの開発、マイクロサービス、クラウドベースのアプリケーションの開発に適しています。.NET Coreは、.NET 5および. NET 6で統合され、以降のバージョンは.NETと呼ばれることになりました。 ;.NET: .NET 5以降、Microsoftは.NET Coreと.NET Frameworkを統合し、単一のプラットフォームとして提供しています。.NET 5は.NET Core 3.1の後継としてリリースされ、クロスプラットフォーム対応、高速性、新機能の提供が行われました。その後、.NET 6、.NET 7、.NET 8 などのバージョンがリリースされています。この単一の.NETは、クロスプラットフォームでの開発をサポートし、Windows、Linux、macOSなどのさまざまな環境で動作するアプリケーションの構築に使用されます。 これらのフレームワークは、異なる目的やプラットフォームでのアプリケーション開発に使用されますが、現在は.NETが将来のバージョンを統合しているため、従来の.NET Frameworkよりも.NET Coreおよび.NETを使用することが推奨されています。 }} == 目次 == * [[C Sharp/インストール方法|インストール方法とそれぞれの実行方法]] * [[C Sharp/Hello World]] * [[C Sharp/変数]] * [[C Sharp/クラスとメソッド]] * [[C Sharp/条件分岐]] * [[C Sharp/反復と反復子]] == ※編集中 == {{Special:Prefixindex/C Sharp}} C# はGUIも作成できますが、本ページでは説明の初期のうちは、コンソールアプリ(コマンド プロンプトのような画面にテキスト表示するプログラムのこと)のプログラムを解説したいと思います。 C++になくてC#にある機能は多々ありますが、特にC++との違いが大きい話題を挙げたいと思います。 {{コラム|width=100%|C# の標準規格|2= プログラミング言語C#は、2000年にMicrosoft社のAnders Hejlsberg氏によって設計され、その後2002年にEcma(ECMA-334)、2003年にISO/IEC(ISO/IEC 23270)によって国際標準として承認されました。 2023年12月時点のC#標準 * ECMA-334:2023(VC#7.0相当) * ISO/IEC 23270:2023(VC#7.0相当) * JIS X 3015:2008『プログラム言語C#』(VC#2.0相当) C#には以下のような独立した実装があります。 ;クローズドなVC#:Visual Studio 2013 まで。 ;Roslyn:Microsoftが開発したApacheライセンスのオープンソースプロジェクト。GitHubで公開されています。Visual Studio 2015 以降のVC#。 ;シェアードソース共通言語基盤のC#コンパイラ:共通言語基盤 (CLI) とともにがソースコードが公開されたC#コンパイラ。 ;Mono Compiler Suite(mcs):Mono Projectが開発したMonoの一部を構成します。 ;the C-Sharp code compiler (cscc):DotGNU Projectが開発したPortable.NETの一部を構成します<ref>2012年12月時点で、DotGNUプロジェクトは廃止され、大規模な新しいボランティアの取り組みが生まれるまで再開される見込みはありません。ただし、例外としてlibjitコンポーネントは、現在は独立したlibjitパッケージとして存在しています。</ref>。 Microsoft以外の実装は、ECMA-334に基づいています。 ECMA-334の2023年12月時点での最新は VC#7.0 相当のECMA-334:2023なので、MicrosoftのVC#の比較的新しいバージョンでコンパイル出来るソースコードが、MonoなどMicrosoft以外の実装でコンパイル出来ない場合があります。 }} === C#のコードから.NETのバージョンを調べる === C#コードで実行中の.NETバージョンを調べるには、次のような方法があります。 :<syntaxhighlight lang=c# line highlight=6 copy> using System; using System.Runtime.InteropServices; class Class1 { static void Main(string[] args) { Console.WriteLine(RuntimeInformation.FrameworkDescription); } }</syntaxhighlight> ; 実行結果 :<syntaxhighlight lang=text> .NET 8.0.0 </syntaxhighlight> :これによって、実行中の.NETのバージョンがコンソールに表示されます。 === C#コンパイラーのバージョンを調べる === C#コンパイラのバージョンを調べるには、次のような方法があります。 :<syntaxhighlight lang=c# line copy> #error version</syntaxhighlight> ; コンパイル結果 :<syntaxhighlight lang=text line highlight=2> Compilation error (line 1, col 8): #error: 'version' Compilation error (line 1, col 8): Compiler version: '4.8.0-7.23558.1 (e0917286)'. Language version: latest (12.0). Compilation error (line 1, col 1): Program does not contain a static 'Main' method suitable for an entry point</syntaxhighlight> :これによって、C#コンパイラーのバージョンとC#言語のバージョンを確認出来ます。 === 文字表示 === ==== 文字列中での変数の表示 ==== :<syntaxhighlight lang=c# line highlight=6 copy> using System; class Hello { static void Main(string[] args) { var a = 14; Console.WriteLine($"トムは{a}歳です"); } } </syntaxhighlight> ; 実行結果 :<syntaxhighlight lang=text> トムは14歳です </syntaxhighlight> このC#のコードは、変数 <code>a</code> の値を文字列に埋め込んで出力するものです。これはC# 6.0から導入された補間文字列(interpolated string)<ref>[https://learn.microsoft.com/en-us/dotnet/standard/base-types/composite-formatting#format-string-component $ - string interpolation (C# reference)]</ref>と呼ばれる機能を使用しています。 ; 補間文字列(Interpolated Strings) :<syntaxhighlight lang=c# line highlight=1 start=6 copy> Console.WriteLine($"トムは{a}歳です"); </syntaxhighlight> 上記の行は、<code>$</code> 記号を文字列の前に付けることで補間文字列を作成しています。 C#の補間文字列では、波カッコ <code>{}</code> 内にプレースホルダーを配置します。 これにより、その場所に変数や式の値が埋め込まれます。 ここでは、波カッコ <code>{}</code> 内に変数 <code>a</code> を直接埋め込んでいます。 この記法を使うことで、文字列中に変数の値を直接埋め込むことができます。 ===== 式の埋め込み ===== 補間文字列では単純な変数だけでなく、式も埋め込むことができます。例えば、数値の計算結果や関数の戻り値を埋め込むことができます。 :<syntaxhighlight lang=c# line copy> var x = 10; var y = 20; string result = $"合計は{x + y}です"; // 合計は30です </syntaxhighlight> この例では、<code>{}</code> 内に <code>x + y</code> という式があります。 これは変数 <code>x</code> と <code>y</code> の和を計算し、その結果が文字列に埋め込まれます。 ===== フォーマット指定 ===== 補間文字列では、文字列の中に挿入する変数や式に対してフォーマット指定を行うことも可能です。例えば、小数点以下2桁まで表示する場合や日付のフォーマットを指定する場合などに有用です。 :<syntaxhighlight lang=c# line copy> double pi = Math.PI; string formattedPi = $"円周率は{pi:F2}です"; // 円周率は3.14です </syntaxhighlight> この例では、<code>{pi:F2}</code> の部分で <code>pi</code> の値が小数点以下2桁まで表示されます。 補間文字列は可読性が高く、動的な文字列の構築を直感的に行うことができます。 変数や式を <code>{}</code> 内に挿入することで、コードをわかりやすく保ちながら柔軟性を持たせることができます。 ===== 基数の指定 ===== ;[https://paiza.io/projects/iXS1RA99F2XbPO1qSXFvxg?language=csharp コード例]:<syntaxhighlight lang=c# copy> using System; public class Hello { public static void Main(string[] args) { Console.WriteLine($"3 + 5 = {3 + 5}"); // 十進数の11を変換するコード Console.WriteLine($"{11:x} "); // 16進数に変換 Console.WriteLine($"{Convert.ToString(11, 2)} ") ; // 2進数に変換 } } </syntaxhighlight> ; 実行結果 :<syntaxhighlight lang="text"> 3 + 5 = 8 b 1011 </syntaxhighlight> : 特に書式を宣言しない場合、数値は10進数として扱われます。 : が、10進数(decimal)の出力を明示したい場合、<code> {11:D} </code> のように「:D」をつけることで可能です。 ;整数は自動的に昇格し浮動小数点として扱われる:<syntaxhighlight lang=c# copy> using System; public class Hello { public static void Main(string[] args) { Console.WriteLine($"0x{Int64.MaxValue:x}"); // Hex. Console.WriteLine($"{Int64.MaxValue:g}"); // general Console.WriteLine($"{Int64.MaxValue:e}"); // exp. Console.WriteLine($"{Int64.MaxValue:f}"); // float // Console.WriteLine($"{1.2:X}"); // コレはエラーになる Console.WriteLine($"{0b1101}"); // binary literal // Console.WriteLine($"{13:b}"); // これはエラーになる(.NET 8 からは有効) } } </syntaxhighlight> ; 実行結果 :<syntaxhighlight lang="text"> 0x7fffffffffffffff 9223372036854775807 9.223372e+018 9223372036854775807.00 13 </syntaxhighlight> : 整数に書式化文字列の e や f を適用すると、浮動小数型に変換され表示されます。変態ですね。 : この仕様は、型を間違えて書式化文字列を与えたことに気づく機会を奪うので注意が必要です。 : なにもチェックしていないのかというと、$"{1.2:X}" はシッカリとエラーにします。一貫性がありませんね。 : 一貫性と言えば、C#7.2 から 0b1101 のような2進数リテラルに対応したのですが、書式化文字列は2進数に対応していません。一貫性がありませんね。 ==== @ 逐語的文字列リテラル ==== 特殊文字 <code>@</code> を前置した文字列リテラルは、逐語的文字列リテラルです。 逐語的文字列リテラルでは、単純なエスケープシーケンス(バックスラッシュを表す「 \ 」など)、16 進エスケープシーケンス(大文字の A を表す「 \x0041 」など)、および Unicode エスケープシーケンス (大文字の A を表す「 \u0041 」など) はそのまま解釈されます。引用符のエスケープシーケンス("")のみ文字通りに解釈されず、二重引用符が1つ生成されます<ref>[https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/verbatim @]</ref>。 ;[https://paiza.io/projects/nucHBjtah8fPBFFrlZGrzg?language=csharp コード例]:<syntaxhighlight lang=c# copy> using System; public class Hello { public static void Main(string[] args) { Console.WriteLine(@" \ -- "" -- C:\temp\test.txt \x0041 \u0041 \n \t "); } } </syntaxhighlight> ; 実行結果 :<syntaxhighlight lang="text"> \ -- " -- C:\temp\test.txt \x0041 \u0041 \n \t </syntaxhighlight> === 配列 === C#における配列は、同じ型の複数の要素を保持するデータ構造です。配列は固定長であり、要素数が宣言時に決まります。以下に基本的な配列の使い方を示します。 ; 配列の宣言と初期化 :<syntaxhighlight lang=c# copy> // int型の要素を持つ配列を宣言して初期化する方法 int[] numbers = new int[5]; // 要素数5のint型配列を作成し、0で初期化 // 文字列の配列を宣言して初期化する方法(初期値を指定) string[] names = new string[] { "Alice", "Bob", "Charlie" }; // 初期化の省略記法(C# 3.0以降) char[] vowels = { 'a', 'e', 'i', 'o', 'u' }; </syntaxhighlight> ; 配列の要素へのアクセス :<syntaxhighlight lang=c# copy> using System; // 配列の要素にアクセスする方法 int[] numbers = { 10, 20, 30, 40, 50 }; Console.WriteLine(numbers[0]); // 最初の要素を取得して表示する(出力: 10) Console.WriteLine(numbers[2]); // 3番目の要素を取得して表示する(出力: 30) // 配列の要素に値を代入する numbers[1] = 42; // 1番目の要素を 42 に変更 Console.WriteLine(numbers[1]); // 1番目の要素を取得して表示する(出力: 42) </syntaxhighlight> 配列の先頭の要素への添字は 0 です。 ; 配列の長さと反復処理 :<syntaxhighlight lang=c# copy> // 配列の長さを取得する Console.WriteLine(numbers.Length); // 配列の要素数を取得して表示する(出力: 5) // 配列の要素を反復処理する foreach (var name in names) { Console.WriteLine(name); // 配列の要素を順番に表示する } </syntaxhighlight> 配列は要素の型と長さが固定されているため、初期化後に要素数を変更することはできません。要素へのアクセスは、<code>配列名[添え字]</code> のように添え字を用いて行います。配列の要素数は <code>Length</code> プロパティを使って取得できます。また、<code>foreach</code> ループを使って配列の要素を順番に処理することができます。 === 複合的なデータ構造 === C#には、プログラミングを効率化するために、あらかじめ、よく使いそうなデータ構造を取り扱う仕組むが言語の機能として提供されています。 標準C言語やC++にない、よく使われる機能が、言語仕様として提供されています。 それを使わずとも、C言語などにある機能だけでもプログラミングは可能ですが、しかしC#の提供する専用機能を使うことで、コードが短くなったり、集団開発ではプログラマーたちによるバラツキが無くなるので品質が一様化して効率化が期待できます。また、コードの各部の意図も、C#の専用機能をつかうことで明確化するので効率化することが期待できます。 ==== タプル ==== :<syntaxhighlight lang=c# copy> using System; class Program { static void Main(string[] args) { // タプルの作成 var person = ("John", "Doe"); // タプルの要素にアクセスしてコンソールに表示 Console.WriteLine($"First Name: {person.Item1}, Last Name: {person.Item2}"); } } </syntaxhighlight> ; 実行結果 :<syntaxhighlight lang="text"> First Name: John, Last Name: Doe </syntaxhighlight> このコードでは、<code>Main</code> メソッド内でタプルを作成し、その要素にアクセスしています。 タプルは、異なるデータ型をまとめて1つの変数に格納するための便利な仕組みです。この例では、<code>("John", "Doe")</code> というタプルを作成しています。このタプルには2つの要素が含まれており、1つ目の要素は <code>"John"</code> であり、2つ目の要素は <code>"Doe"</code> です。 <code>Item1</code> と <code>Item2</code> は、タプルの要素を参照するためのデフォルトのプロパティ名です。この例では、<code>Item1</code> は名前、<code>Item2</code> は姓を表しています。これらの要素にアクセスしてコンソールに出力しています。 タプルは、関連するデータを1つにまとめて扱う際に役立ちます。しかし、要素の名前がないために、コードの読みやすさに影響を及ぼすこともあります。 ;タプル配列と繰り返し :<syntaxhighlight lang=c# copy> using System; class Program { static void Main(string[] args) { // タプルの配列を作成 var people = new[] { ("John", "Doe"), ("Jane", "Smith"), ("Alice", "Johnson") }; // 配列の要素を繰り返し処理して表示 foreach (var (firstName, lastName) in people) { Console.WriteLine($"First Name: {firstName}, Last Name: {lastName}"); } } } </syntaxhighlight> ; 実行結果 :<syntaxhighlight lang="text"> First Name: John, Last Name: Doe First Name: Jane, Last Name: Smith First Name: Alice, Last Name: Johnson </syntaxhighlight> # <code>people</code> という名前のタプルの配列を作成しています。各タプルは名前と姓を表しており、例えば <code>("John", "Doe")</code> は John Doe の名前を持つタプルを表しています。 # <code>foreach</code> ループを使用して <code>people</code> 配列の要素を繰り返し処理しています。<code>foreach</code> ループの中で、<code>var (firstName, lastName)</code> のようにして、各タプルの要素を分解して <code>firstName</code> と <code>lastName</code> の名前付きの変数に格納しています。 # 各要素の名前と姓を <code>Console.WriteLine</code> を使ってコンソールに表示しています。<code>Console.WriteLine($"First Name: {firstName}, Last Name: {lastName}");</code> この行では文字列補間を使って、各人物の情報を表示しています。 このように、タプルと <code>foreach</code> ループを組み合わせることで、配列内の各要素を分解し、分かりやすく取り扱うことができます。また、タプルの分解により、コードがより簡潔になり可読性が向上します。 ==== record型 ==== <code>record</code> 型は、C# 9.0で導入された新しいデータ型で、不変(immutable)なデータ構造を定義するのに役立ちます。<code>record</code> はデータのイミュータビリティをサポートし、簡潔なコードでデータの保持と操作を行うための手段となります。 以下は、C#でRecord型を使用したサンプルコードです。 :<syntaxhighlight lang=c# copy> using System; record Person(string FirstName, string LastName); class Program { static void Main(string[] args) { var person1 = new Person("John", "Doe"); var person2 = new Person("John", "Doe"); bool areEqual = person1.Equals(person2); // 値ベースの等値比較 Console.WriteLine($"Are persons equal? {areEqual}"); // 出力: Are persons equal? True var updatedPerson = person1 with { LastName = "Smith" }; // 新しいインスタンスを作成 Console.WriteLine($"Updated person: {updatedPerson.FirstName} {updatedPerson.LastName}"); // 出力: Updated person: John Smith } } </syntaxhighlight> このコードでは、<code>Person</code> Record型を定義する際に、C# 9.0(.NET 5)から導入された短縮構文を使用しています。<code>record</code> キーワードを使って、コンストラクターの引数をフィールドと同時に指定し、簡潔な記述を可能にしています。また、<code>new Person("John", "Doe")</code> のようにコンストラクターを呼び出してインスタンスを生成しています。 # <code>Person</code> Record型が定義されています。このRecord型は、<code>FirstName</code> と <code>LastName</code> の2つのプロパティを持っています。 # <code>Main</code> メソッドでは、<code>Person</code> Record型のインスタンスを作成しています。<code>new Person("John", "Doe")</code> のようにコンストラクターを使用して、<code>FirstName</code> と <code>LastName</code> の値を渡しています。 # <code>person1</code> と <code>person2</code> を <code>Equals</code> メソッドを使って比較し、値ベースの等値比較を行っています。この場合、同じ値を持つため <code>true</code> が返されます。 # <code>with</code> キーワードを使って、<code>person1</code> を元に <code>LastName</code> を更新した新しいインスタンス <code>updatedPerson</code> を作成しています。これにより、元のインスタンスは変更されず、新しいインスタンスが作成されます。 ===== Record型の配列と繰り返し ===== <code>record</code> を要素とする配列を作成し、その配列を繰り返し処理する方法を示します。 以下は、C#でRecord型の配列を作成し、それを繰り返し処理するサンプルコードです。 :<syntaxhighlight lang=c# copy> using System; record Person(string FirstName, string LastName); class Program { static void Main(string[] args) { // Person Record型の配列を作成 var people = new[] { new Person("John", "Doe"), new Person("Jane", "Smith"), new Person("Alice", "Johnson") }; // 配列の要素を繰り返し処理して表示 foreach (var person in people) { Console.WriteLine($"First Name: {person.FirstName}, Last Name: {person.LastName}"); } } } </syntaxhighlight> # <code>Person</code> Record型が定義されています。このRecord型は、<code>FirstName</code> と <code>LastName</code> の2つのプロパティを持っています。 # <code>Main</code> メソッドでは、<code>Person</code> Record型のインスタンスを3つ作成し、それらを含む配列 <code>people</code> を作成しています。 # <code>foreach</code> ループを使用して、<code>people</code> 配列の要素を繰り返し処理しています。各 <code>person</code> の <code>FirstName</code> と <code>LastName</code> の値をコンソールに表示しています。 このコードでは、Record型を使ってシンプルなデータモデルを作成し、配列の要素を簡単に操作・表示する方法が示されています。 ===== Record型の配列と繰り返し(LINQ版) ===== LINQ(Language Integrated Query)を使用して、Record型の配列要素を繰り返し処理する方法を示すコードを書いてみましょう。 :<syntaxhighlight lang=c# copy> using System; using System.Linq; record Person(string FirstName, string LastName); class Program { static void Main(string[] args) { // Person Record型の配列を作成 var people = new[] { new Person("John", "Doe"), new Person("Jane", "Smith"), new Person("Alice", "Johnson") }; // LINQを使って配列の要素を繰り返し処理して表示 var query = from person in people select $"First Name: {person.FirstName}, Last Name: {person.LastName}"; foreach (var result in query) { Console.WriteLine(result); } } } </syntaxhighlight> このコードでは、LINQクエリを使ってRecord型の配列要素を繰り返し処理しています。<code>from</code>句を使用して<code>people</code>配列内の<code>Person</code> Record型の要素を取り出し、<code>select</code>句で文字列に変換しています。その後、<code>foreach</code>ループを使用してクエリ結果をコンソールに出力しています。 LINQを使うことで、より柔軟なデータのクエリや操作が可能になります。 === Null許容型 === C#におけるNull許容型(Nullable types)は、通常の値型にnullを許容するための機能です。nullが許容されない通常の値型(int、double、boolなど)では、変数にnullを代入することができませんが、Null許容型を使用することで、nullを含む値を代入できるようになります。 Null許容型は、C# 2.0で導入されました。主な目的は、データベースから取得したデータや他の外部ソースからのデータを扱う際に、nullを適切に処理することです。例えば、データベースの列がnull許容型である場合、その列の値がnullであることを表現できます。 C#では、Null許容型は値型の末尾に「?」を付けることで宣言されます。例えば、int型のNull許容型は「int?」となります。 ;[https://dotnetfiddle.net/knVpWJ Null許容型の使用例]:<syntaxhighlight lang=c# copy> using System; public class Program { public static void Main() { int ? nullableInt = null; if (nullableInt.HasValue) { Console.WriteLine("nullableIntの値は: " + nullableInt.Value); } else { Console.WriteLine("nullableIntはnullです"); } } }</syntaxhighlight> ここで、"HasValue"プロパティはnullableIntがnullでないかどうかをチェックし、「Value」プロパティは実際の値を取得します。 Null許容型は、プログラムでnullを正しく扱うための重要なツールであり、特に外部リソースやデータベースとのやり取りなどで有用です。 === Nullable Reference Types (null 許容参照型) === C# 8.0から導入されたNullable Reference Types (null 許容参照型)は、null可能性を表現するための機能です。通常の参照型(クラス、インターフェースなど)はnullを許容しますが、Nullable Reference Typesを使用することで、nullが許容されるかどうかを厳密に指定できます。 この機能を有効にすると、コンパイラがnullに関する潜在的な問題を見つけてくれます。主な機能や使い方は次の通りです: # null 許容注釈: <code>?</code>を型の末尾に追加することで、nullが許容されることを示します。例えば、<code>string? nullableString = null;</code>というように、nullableStringがnullを持つ可能性があることを宣言します。 # null 警告と注釈の付与: Nullable Reference Typesを有効にすると、null許容性に関する警告が出るようになります。変数やパラメータがnullを許容する場合、適切な注釈を付けることで、nullを許容することが意図されていることを示します。 # Nullable許容性のコンテキスト フロー: メソッドや式のコンテキストで、nullが許容されるかどうかを推論します。例えば、nullを返すメソッドが呼び出された場合、戻り値がnull許容かどうかを判断し、適切な警告を出します。 # Nullable Reference Typesの有効化: プロジェクト全体でNullable Reference Typesを有効にするには、プロジェクトファイルに <code><Nullable>enable</Nullable></code> を追加するか、コンパイラオプションを設定します。 Nullable Reference Typesは、null関連のバグを減らしたり、コードの安全性を向上させたりするのに役立ちます。しかし、全てのnull関連の問題を解決するわけではないため、コードの品質を維持するためにも、nullに関する適切な扱いが重要です。 以下に、C#のNullable Reference Typesのコード例とその解説を示します。 まず、Nullable Reference Typesを有効にするには、プロジェクトファイルに <code><Nullable>enable</Nullable></code> を追加します。 ;[https://dotnetfiddle.net/XktYhl Nullable Reference Typesのコード例]:<syntaxhighlight lang=c# copy> #nullable enable using System; class Program { static void Main() { string ? nullableString = null; // null 許容参照型を使用した nullableString 変数の宣言 ProcessString(nullableString); // メソッド呼び出し string regularString = "Hello!"; ProcessString(regularString); // 通常のstringを渡す // Nullable Reference Typesの機能を使った場合の例外処理 string nonNullableString = "This is not nullable"; nullableString = nonNullableString; // Nullableの変数に非Nullableの値を代入する Console.WriteLine(nullableString.ToUpper()); // コンパイルエラーになる可能性があります(Nullableの変数を使用する前にnullチェックが必要) } static void ProcessString(string ? text) { if (text != null) { Console.WriteLine(text.ToUpper()); // null チェック後の安全な参照 } else { Console.WriteLine("Input string is null"); } } } </syntaxhighlight> # <code>#nullable enable</code>: Nullable Reference Types を有効にするためのディレクティブです。これにより、null 許容参照型が有効になります。 # <code>string? nullableString = null;</code>: <code>nullableString</code> という変数を null 許容参照型として宣言し、nullで初期化します。<code>string?</code>はnullを含むことを示しています。 # <code>ProcessString(nullableString);</code>: <code>ProcessString</code> メソッドに <code>nullableString</code> を渡します。このメソッド内では、null チェックを行って安全に参照を行っています。 # <code>string nonNullableString = "This is not nullable"; nullableString = nonNullableString;</code>: 非nullableの <code>nonNullableString</code> を <code>nullableString</code> に代入しようとすると、Nullable Reference Typesのチェックによって警告が出たり、コンパイルエラーになる可能性があります。 # <code>Console.WriteLine(nullableString.ToUpper());</code>: コンパイラは <code>nullableString</code> がnullの可能性があるため、これを呼び出す前にnullチェックが必要であることを示します。明示的なnullチェックが行われていないため、コンパイルエラーになるかもしれません。 Nullable Reference Typesを使うことで、nullに関する潜在的な問題をコンパイル時に発見し、それらを回避するための対策を行うことができます。 == 拡張メソッド == 拡張メソッドは、既存の型に新しいメソッドを追加するための仕組みです。これは静的クラスに定義され、対象の型(通常はクラスまたはインタフェース)に対してメソッドを追加します。ただし、拡張メソッドはインスタンスメソッドではなく、静的メソッドであり、そのインスタンスが実際に作成されていないため、ボックス化には直接的な影響を与えません。 このC#のコードは、文字列を逆順にする拡張メソッドを使用する単純な例です。コードの各部分を解説してみましょう。 :<syntaxhighlight lang=c# copy> using System; public static class StringExtensions { public static string ReverseString(this string input) { char[] charArray = input.ToCharArray(); Array.Reverse(charArray); return new string(charArray); } } public class Program { public static void Main() { string originalString = "Hello, world!"; string reversedString = originalString.ReverseString(); Console.WriteLine(reversedString); // 出力: "!dlrow ,olleH" } } </syntaxhighlight> ;実行結果:<syntaxhighlight lang=text> !dlrow ,olleH </syntaxhighlight> * <code>using System;</code>: <code>System</code> 名前空間を使うためのディレクティブ。<code>Console</code> クラスなど、基本的な入出力機能を提供します。 * <code>StringExtensions</code> クラス: <code>StringExtensions</code> は静的クラスです。<code>this string input</code> という引数を持つ <code>ReverseString</code> という名前の拡張メソッドが含まれています。このメソッドは、文字列を逆順にして新しい文字列を返すものです。 * <code>public class Program</code>: <code>Program</code> クラスは通常のクラスであり、C#のアプリケーションは <code>Main()</code> メソッドを持つクラスで始まります。このクラスには <code>Main()</code> メソッドが含まれています。 * <code>public static void Main()</code>: C#のプログラムのエントリーポイントである <code>Main()</code> メソッド。<code>void</code> は戻り値がないことを意味し、<code>static</code> は <code>Main()</code> メソッドが静的であることを示しています。このメソッドは、文字列を逆順にする拡張メソッド <code>ReverseString()</code> を使用して、元の文字列を逆順にしてコンソールに出力します。 このプログラムは、<code>originalString</code> の値を <code>ReverseString()</code> で逆順にし、<code>reversedString</code> に格納しています。そして <code>Console.WriteLine()</code> を使ってその逆順の文字列をコンソールに出力しています。 別の例、<code>IntExtensions</code> などのように、<code>int</code> 型に対して拡張メソッドを提供するためのクラスを定義することもできます。C#では、任意の型に対して拡張メソッドを定義することが可能です。 以下は、<code>IntExtensions</code> クラスを使用して <code>int</code> 型に対する拡張メソッドを定義した例です。 :<syntaxhighlight lang=c# copy> using System; public static class IntExtensions { public static bool IsEven(this int number) { return number % 2 == 0; } } public class Program { public static void Main() { int num = 6; // 拡張メソッドを使って奇数か偶数かを判定する if (num.IsEven()) { Console.WriteLine("Even number"); } else { Console.WriteLine("Odd number"); } } } </syntaxhighlight> ;実行結果:<syntaxhighlight lang=text> Even number </syntaxhighlight> この例では、<code>IntExtensions</code> クラスが <code>IsEven()</code> という名前の拡張メソッドを提供しています。これは <code>int</code> 型の変数に対して偶数かどうかを判定する機能を追加します。そして <code>Main()</code> メソッドでこの拡張メソッドを使用して、与えられた整数が偶数か奇数かを判定し、コンソールに出力しています。 {{コラム|width=100%|C#のアップデートやトピック|2=バージョンごとのアップデートやトピック ; C# 9.0 (2020年11月リリース) :# Records (レコード) :#*<code>record</code> キーワードを使用して、イミュータブルで値型のオブジェクトを定義できます。 :#*パターンマッチングや分解などの便利な機能を提供します。 :#*with式を使用したイミュータブルな変更が可能です。 :# パターンマッチングの拡張 :#*<code>switch</code> ステートメントや <code>if</code> 式にパターンマッチングを使用する際に、新しいパターンが追加されました。 :#*より柔軟なパターンマッチングが可能になりました。 :#*関係パターン(<, >, <=, >=)のサポートが追加されました。 :# Init アクセサー :#*イミュータブルなオブジェクトの初期化時に使用される <code>init</code> アクセサーが導入されました。 :#*設定は初期化時のみ可能で、その後は読み取り専用になります。 :# Top-level statements(トップレベルステートメント) :#*プログラムのエントリーポイントを簡略化し、Main メソッドを省略できるようになりました。 :#*特に小規模なプログラムやスクリプトの記述が容易になりました。 :# Target-typed new 式 :#*変数の型が文脈から明らかな場合、<code>new</code> 演算子で型を省略できるようになりました。 :#*コードの冗長性を減らし、可読性を向上させます。 :# Covariant return types(共変戻り値型) :#*オーバーライドしたメソッドでより派生した型を戻り値として指定できるようになりました。 :# Static Anonymous Functions(静的匿名関数) :#*<code>static</code> キーワードを使用して、キャプチャを防ぐ匿名関数を定義できます。 ; C# 10.0 (2021年11月リリース) :# Global Usings (グローバル Using) :#*グローバルな <code>using</code> 宣言が可能になり、全てのファイルで共通のusingを指定できるようになりました。 :#*<code>global using</code> キーワードを使用して宣言します。 :# File-scoped Namespace Declarations (ファイルスコープのネームスペース宣言) :#*<code>namespace</code> 宣言をファイルスコープで行えるようになりました。 :#*ファイル全体で共通のネームスペースを宣言できます。 :#*インデントレベルを1つ減らすことができます。 :# Record Structs :#*値型のレコードを定義できるようになりました。 :#*<code>record struct</code> キーワードを使用して宣言します。 :# Improved Interpolated Strings(補間文字列の改善) :#*文字列補間でのパフォーマンスが向上しました。 :#*<code>FormattableString</code> の生成を最適化します。 :#*Newline characters in string interpolation (文字列補間での改行文字のサポート)が追加されました。 :# Constant interpolated strings(定数補間文字列) :#*文字列補間を使用して定数を定義できるようになりました。 :#*コンパイル時に評価される文字列補間が可能です。 :# Extended property patterns(拡張プロパティパターン) :#*ネストされたプロパティに対するパターンマッチングが改善されました。 :# Lambda式の改善 :#*ラムダ式に属性を付けられるようになりました。 :#*自然な型推論が強化されました。 :#*戻り値の型を明示的に指定できるようになりました。 :# Caller argument expressions(呼び出し元引数式) :#*<code>CallerArgumentExpressionAttribute</code> を使用して、メソッドに渡された引数の元の式を取得できます。 :#*デバッグやログ出力で有用です。 ; C# 11.0 (2022年11月リリース) :# Raw string literals(生文字列リテラル) :#*複数行の文字列を """ を使用して簡単に記述できるようになりました。 :#*インデントや特殊文字のエスケープが不要になりました。 :#*文字列補間と組み合わせて使用可能です。 :# Required members(必須メンバー) :#*<code>required</code> モディファイアを使用して、オブジェクト初期化時に必ず設定が必要なプロパティを指定できます。 :#*コンパイル時の型安全性が向上します。 :# Static abstract members in interfaces(インターフェースの静的抽象メンバー) :#*インターフェースで静的メンバーを定義できるようになりました。 :#*ジェネリック型の制約として使用可能です。 :# Generic attributes(ジェネリック属性) :#*属性クラスでジェネリック型パラメータを使用できるようになりました。 :# UTF-8文字列リテラル :#*<code>u8</code> サフィックスを使用してUTF-8エンコードの文字列リテラルを作成できます。 :# Pattern matching on <code>spans</code> :#*<code>Span<T></code> と <code>ReadOnlySpan<T></code> に対するパターンマッチングが可能になりました。 :# List patterns(リストパターン) :#*配列やリストに対する新しいパターンマッチング構文が追加されました。 :#*<code>[1, 2, .., 10]</code> のような形式でマッチングができます。 :# File-local types :#*<code>file</code> アクセス修飾子を使用して、ファイル内でのみアクセス可能な型を定義できます。 :# String interpolation improvements(文字列補間の改善) :#*新しい改行とインデントの処理 :#*より柔軟な式の使用が可能に ; C# 12.0 (2023年11月リリース) :# Primary constructors(プライマリコンストラクタ) :#*クラスやstructの宣言で直接パラメータを指定できるようになりました。 :#*より簡潔なコードが書けるようになりました。 :#*:<syntaxhighlight lang=csharp> public class Person(string name, int age) { public string Name => name; public int Age => age; } </syntaxhighlight> :# Collection expressions(コレクション式) :#*配列やリストの初期化をより簡潔に行えるようになりました。 :#*<code>[1, 2, 3]</code> のような構文で様々なコレクション型を初期化できます。 :#*スプレッド演算子 <code>..</code> を使用して既存のコレクションを展開できます。 :# Optional parameters in lambda expressions(ラムダ式のオプショナルパラメータ) :#*ラムダ式でオプショナルパラメータを使用できるようになりました。 :#*デフォルト値を指定可能です。 :# ref readonly parameters(参照読み取り専用パラメータ) :#*メソッドパラメータを参照渡しかつ読み取り専用として宣言できます。 :#*パフォーマンスと安全性の両立が可能に。 :# Alias any type(任意の型のエイリアス) :#*<code>using</code> ディレクティブで、より複雑な型に対してもエイリアスを定義できるようになりました。 :#*:<syntaxhighlight lang=csharp> using MyHandler = System.Action<string, System.Collections.Generic.IList<int>>; </syntaxhighlight> :# Experimental attribute(実験的属性) :#*<code>[Experimental]</code> 属性を使用して、実験的なAPIをマークできます。 :#*使用時に警告を生成し、開発者に注意を促します。 :# Interceptors(インターセプター) :#*メソッド呼び出しをインターセプトして、追加の処理を挿入できます。 :#*ロギングやキャッシュなどの横断的関心事の実装に有用です。 :# nameof accessing instance members(instanceメンバーへのnameofアクセス) :#*インスタンスメンバーに対して <code>nameof</code> 式を使用できるようになりました。 ; C# 13.0 (2024年11月リリース) :# Semi-auto properties(セミオートプロパティ) :#*プロパティの実装を部分的に自動化しつつ、カスタムロジックも追加できるようになりました。 :#*バッキングフィールドに直接アクセス可能になります。 :# Enhanced patterns(拡張パターン) :#*パターンマッチングの機能がさらに強化されました。 :#*より複雑な条件を簡潔に表現できるようになります。 :# Default interface method implementations in more contexts :#*デフォルトインターフェースメソッドの実装をより多くのコンテキストで使用できるようになりました。 :#*インターフェースの柔軟性が向上しました。 :# Inline arrays(インライン配列) :#*スタック上に配置される固定長の配列を定義できるようになりました。 :#*パフォーマンスが重要な場合に有用です。 :# Extended type inference(型推論の拡張) :#*より多くのコンテキストで型推論が可能になりました。 :#*コードの簡潔性が向上します。 ; C# 14.0 (2025年11月リリース予定) :# Value type methods(値型メソッド) :#*構造体やレコード構造体でのメソッド定義が改善されました。 :#*より効率的な値型の操作が可能になります。 :# Extended Collection Expressions(拡張コレクション式) :#*コレクション式の機能がさらに強化されました。 :#*より複雑なコレクションの初期化が簡潔に行えます。 :# Discriminated Unions(判別共用体) :#*パターンマッチングと組み合わせて使用できる判別共用体が導入されました。 :#*代数的データ型のような表現が可能になります。 :# Enhanced Type Parameters(拡張型パラメータ) :#*ジェネリック型パラメータの制約がより柔軟になりました。 :#*型安全性とコードの表現力が向上します。 :# Advanced reflection capabilities(高度なリフレクション機能) :#*リフレクションAPIが強化され、より詳細な型情報にアクセスできるようになりました。 :#*メタプログラミングの可能性が広がります。 これらの新機能により、C#は: # より簡潔で表現力豊かなコードが書けるように # パフォーマンスの最適化がより容易に # 型安全性がさらに向上 # クロスプラットフォーム開発がより便利になっています。 特にC# 12.0のプライマリコンストラクタとコレクション式は、日常的なコーディングを大幅に簡素化する重要な機能と言えます。 }} == 脚註 == <references /> == 下位階層のページ == *[[C Sharp/Hello World]] *[[C Sharp/インストール方法]] *[[C Sharp/クラスとメソッド]] *[[C Sharp/デザインパターン]] *[[C Sharp/リフレクション]] *[[C Sharp/値型]] *[[C Sharp/参照型]] *[[C Sharp/反復と反復子]] *[[C Sharp/変数]] *[[C Sharp/式と演算子]] *[[C Sharp/改廃された技術]] *[[C Sharp/条件分岐]] {{DEFAULTSORT:C SHARP}} [[Category:C Sharp|*]] [[Category:プログラミング言語]] {{NDC|007.64}} dvuekr7fffabpn5jskol8hfb9za0npk Go 0 28505 301309 299637 2026-07-08T10:05:40Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301309 wikitext text/x-wiki {{Pathnav|メインページ|工学|情報技術|プログラミング}} [[Go]]は、Googleが開発したオープンソースの汎用プログラミング言語であり、特にバックエンドサービスやネットワークプログラミングを主な目的として設計されています<ref name="Introduction">{{cite book | url = https://go.dev/ref/spec#Introduction | title = The Go Programming Language Specification Language version go1.23 (June 13, 2024) | chapter = Introduction¶ | date = June 13, 2024 | publisher = The Go website }}</ref>。 静的型付け言語であるため、高速で効率的なプログラムを作成することができます。また、並行処理を簡単に実装できるgoroutineという仕組みを持ち、高い並行性を実現しています。 Goの文法はシンプルで読みやすく、効率的にコーディングできるため、開発者は迅速に新しいコードを書くことができます。ガベージコレクションによって自動的にメモリを管理するため、メモリ管理に関する手間を減らすことができます。 さらに、Windows、macOS、Linuxなど、多くのプラットフォームで動作し、標準ライブラリが豊富です。多くの外部ライブラリも存在するため、広範な用途に対応することができます。 Goのコミュニティは活発であり、多くの開発者が参加しています。質問や問題解決のためのリソースが豊富であり、新しい機能やライブラリが定期的にリリースされています。 この教科書では、初めてGoを学ぶ人から、より高度なトピックに興味のある人まで、幅広い読者を対象に、Goの基本から応用までを網羅的に解説します。 __TOC__ == 目次 == ;チュートリアル篇 : [[/環境構築|環境構築]] : [[/実行の方法|実行の方法]] {{---}} [[Go/実行の方法#Hello, World|Hello, World]] : [[/文法の概要|文法の概要]] : [[/変数|変数と型変換]] : [[/算術演算と数学関数|算術演算と数学関数]] : [[/条件分岐と繰り返し|条件分岐と繰り返し]] {{---}} if, switch, select, for, break, continue, return : [[/関数|関数]] : [[/メソッドとインターフェース|メソッドとインターフェース]] : [[/ジェネリクス|ジェネリクス]] : [[/再帰的関数呼出し|再帰的関数呼出し]] : [[/メソッドチェイン|メソッドチェイン]] : [[/defer,panicとrecover|defer, panicとrecover]] : [[/並行処理|並行処理]] : [[/配列とスライス|配列型とスライス型]] : [[/マップ|マップ型]] : [[/構造体|構造体型と構造体スライス]] : [[/イテレータ|イテレータ]] : [[/Goのプログラムがどんなアセンブリにコンパイルされるか?|Goのプログラムがどんなアセンブリにコンパイルされるか?]] {{---}} go tool objdump : [[/クロスコンパイル|クロスコンパイル]] {{---}} GOOS, GOARCH : [[/cgoでGoのコードからCの関数を利用する|cgoでGoのコードからCの関数を利用する]] {{---}} cgo : [[/Goのコードでgoのバージョンを調べる方法|Goのコードでgoのバージョンを調べる方法]] : [[/HTTP|HTTP]] : [[/ファイル入出力|ファイル入出力]] : [[/コードギャラリー|コードギャラリー]] ;リファレンス篇 : [[/ソースコードの表現方法|ソースコードの表現方法]] : [[/キーワードと宣言済み識別子|キーワードと宣言済み識別子]] {{---}} [[/キーワードと宣言済み識別子#キーワード|キーワード]]・[[/キーワードと宣言済み識別子#宣言済み識別子|宣言済み識別子]]([[/キーワードと宣言済み識別子#組込み型|組込み型]]・[[/キーワードと宣言済み識別子#組込み関数|組込み関数]]) : [[/字句的要素|字句的要素]] : [[/定数と変数|定数と変数]] {{---}} [[/定数と変数#定数|定数]]([[/定数と変数#iota|iota]])・[[/定数と変数#変数|変数]] : [[/型|型]] : [[/型と値の特性|型と値の特性]] : [[/ブロック・宣言とスコープ|ブロック・宣言とスコープ]] {{---}} [[/ブロック・宣言とスコープ#ブロック|ブロック]]・[[/ブロック・宣言とスコープ#宣言とスコープ|宣言とスコープ]] : [[/式|式]] {{---}} [[/式#演算子|演算子]] : [[/文|文]] : [[/パッケージ|パッケージ]] : [[/プログラムの初期化と実行|プログラムの初期化と実行]] : [[/エラー|エラー]] : [[/EBNF|EBNF]] ;[[/標準ライブラリー|標準ライブラリー篇]] ;[[/改廃された技術|改廃された技術]] == バージョン間の変更点 == Go は、約半年ごとに新しいバージョンがリリースされます。バージョンが変わると、言語仕様に追加変更があったり、ツールチェーン、ランタイム、およびライブラリの実装に変更が加えられることがあり、稀に既存のプログラムに影響が出ることもあります。以下に、最新のバージョンから順に変更点を記載します。 === Go 1.26 === Go 1.26が、2026年2月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.26 | title = Go 1.26 Release Notes - The Go Programming Language | date = 2026/02/10 | accessdate = 2026/02/11 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.26 | title = Go 1.26 is released! - The Go Programming Language | date = 2026/02/10 | accessdate = 2026/02/11 }}</ref>。 Go 1.26のリリースでは、言語仕様への便利な糖衣構文の追加、ツールチェーンの大幅な刷新、および新しい暗号化標準のサポートが含まれています。最も注目すべき変更点は以下です。 {{Main|[https://go.dev/doc/go1.26 Go 1.26 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.26 Go 1.26 is released! The Go Blog]}} ; 言語の変更点: :# <code>new</code> 関数の拡張:組み込みの <code>new</code> 関数が、引数として初期値を指定する式を受け取れるようになりました。例えば <code>ptr := new(int64(300))</code> のように、1行で初期値付きのポインタを作成可能です。 :# 自己参照的なジェネリック型:型パラメータリスト内で、その型自体を参照することが可能になりました。これにより、複雑なデータ構造やインターフェースの柔軟な実装が可能になっています。 ; 新しい標準パッケージ: :# crypto/hpke:RFC 9180 で定義されている Hybrid Public Key Encryption (HPKE) をサポート。 :# testing/cryptotest:暗号化実装の適合性を検証するための共通テストスイートを提供。 :# crypto/mlkem/mlkemtest:ML-KEM 実装のテスト用パッケージ。 ; 実験的新機能: :# simd/archsimd:SIMD(Single Instruction Multiple Data)命令へのアクセスを抽象化する実験的パッケージ。 ; ランタイムとパフォーマンスの改善: :# Green Tea GC のデフォルト有効化:[[#Go 1.25|Go 1.25]]で実験的だった「Green Tea」ガベージコレクタがデフォルトで有効になりました。 :# cgo オーバーヘッドの削減:cgo 呼び出しのベースライン・オーバーヘッドが約 30% 削減されました。 :# スタック割り当ての最適化:スライスのバッキングストアがスタックに割り当てられる条件が緩和され、メモリアロケーションの効率が向上しました。 ; ツールの改善: :# go fix の完全刷新:Go analysis フレームワークを使用して書き直されました。新しい「modernizers」機能により、古いコードを最新の言語仕様やライブラリ機能に適合させる修正案(数ダースの種類)が自動提示されます。 :# //go:fix inline ディレクティブ:このディレクティブが付与された関数への呼び出しを、go fix が自動的にインライン展開する機能が追加されました。 ; 標準ライブラリの改善: :# crypto/tls:TLS 1.3 における X25519MLKEM768 鍵交換(ポスト量子暗号)がデフォルトで有効化。 :# math/rand/v2:PCG および ChaCha8 アルゴリズムによる乱数生成の安定性と速度が向上。 ; プラットフォームサポートの変更: :# macOS:macOS 12 Monterey をサポートする最後のバージョンとなりました。次期 [[#Go 1.27|Go 1.27]] では macOS 13 Ventura 以降が必須となります。 :# Windows:予告通り 32-bit ARM (windows/arm) ポートのサポートが削除されました。 Go 1.26では、開発者のコーディング負荷を軽減する言語仕様の改善と、エコシステム全体を最新化(Modernize)するための強力なツール提供に重点が置かれています。 === Go 1.25 === Go 1.25が、2025年8月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.25 | title = Go 1.25 Release Notes - The Go Programming Language | date = 2025/08/12 | accessdate = 2025/09/27 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.25 | title = Go 1.25 is released! - The Go Programming Language | date = 2025/08/12 | accessdate = 2025/09/27 }}</ref>。 Go 1.25のリリースでは、実験的機能を含む多くの重要な改良が含まれています。最も注目すべき変更点は以下です。 {{Main|[https://go.dev/doc/go1.25 Go 1.25 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.25 Go 1.25 is released! The Go Blog]}} ; 言語の変更点: :# 言語仕様上の変更はありませんが、言語仕様書からcore typesの概念が削除され、専用の記述に置き換えられました。これによりより正確で理解しやすい仕様書となっています。 ; 新しい標準パッケージ: :# testing/synctest:並行コードのテストをサポートするパッケージ。仮想化されたクロック機能により、並行プログラムのテストがより効率的に行えるようになりました。Go 1.24では実験的機能(GOEXPERIMENT=synctest)でしたが、Go 1.25で正式にサポートされました。 ; 実験的新機能: :# 新しい実験的ガベージコレクター:GOEXPERIMENT=greenteagcで有効化可能。小さなオブジェクトのマークとスキャンのパフォーマンスが大幅に改善され、実世界のプログラムでガベージコレクションのオーバーヘッドが10-40%削減される見込みです。 :# encoding/json/v2パッケージ:GOEXPERIMENT=jsonv2で有効化可能。既存のencoding/jsonパッケージの大幅な改良版で、特にデコード性能が大幅に向上しています。 ; ランタイムの改善: :# コンテナ対応のGOMAXPROCS:LinuxでcgroupのCPU帯域幅制限を考慮し、論理CPU数よりも制限が低い場合はGOMAXPROCSを制限値に設定します。また、全OSでGOMAXPROCSを動的に更新する機能が追加されました。 :# トレースフライトレコーダー:runtime/trace.FlightRecorderAPIにより、インメモリリングバッファを使用した軽量な実行トレースキャプチャが可能になりました。 :# VMAアノテーション:Linux上でメモリマッピングに目的を示すアノテーション([anon: Go: heap]など)が付加されるようになりました。 ; コンパイラの改善: :# nilポインターチェックのバグ修正:Go 1.21で導入された、nilポインターチェックが不適切に遅延される問題が修正されました。 :# DWARF5サポート:デバッグ情報でDWARF5が使用され、バイナリサイズの削減とリンク時間の短縮を実現しました。 :# スライスの高速化:より多くの状況でスライスのバッキングストアをスタックに割り当てることが可能になり、パフォーマンスが向上しました。 ; ツールの改善: :# go buildのLeakDetection:-asanオプションでプログラム終了時にメモリリーク検出がデフォルトで有効になりました。 :# go.modのignoreディレクティブ:go commandが無視すべきディレクトリを指定できるようになりました。 :# go docの-httpオプション:ドキュメントサーバーを起動しブラウザで表示する機能が追加されました。 :# go version -m -json:バイナリファイルの BuildInfo構造体をJSON形式で出力できるようになりました。 :# 新しいvetアナライザー:waitgroup(WaitGroup.Addの誤用を検出)、hostport(IPv6で動作しないアドレス構築パターンを検出)が追加されました。 ; 標準ライブラリの改善: :# crypto系パッケージでMessageSignerインターフェースが追加され、メッセージ自身をハッシュ化するサイナーをサポート。 :# crypto/sha1でSHA-NIインストラクションによる2倍の高速化。 :# crypto/sha3でApple Mプロセッサーでの2倍の高速化とCloner実装。 :# crypto/tlsでConnectionState.CurveIDフィールドとGetEncryptedClientHelloKeysコールバックを追加。 :# net/httpでCrossOriginProtectionによるCSRF保護機能が追加。 :# os/WindowsでのNewFileがFILE''FLAG''OVERLAPPEDハンドルに対応し、非同期I/Oをサポート。 :# sync.WaitGroup.Goメソッドによりgoroutineの作成とカウントパターンが簡便化。 :# testing系パッケージでT.Attr、B.Attr、F.Attrメソッドによるテスト属性出力をサポート。 ; セキュリティの改善: :# FIPS 140-3モードでの改善:crypto/ecdsaとcrypto/ed25519での署名処理が4倍高速化。 :# TLS 1.2でSHA-1署名アルゴリズムがデフォルトで無効化(RFC 9155準拠)。 :# crypto/x509でCreateCertificateがSHA-256を使用したSubjectKeyId生成を使用。 ; プラットフォームサポートの変更: :# macOS:macOS 12 Monterey以降が必要になりました(Go 1.24の予告通り)。 :# Windows:32-bit ARM(windows/arm)ポートはGo 1.25が最後のサポートバージョンとなり、Go 1.26で削除予定です。 :# linux/loong64:レースディテクターとCgoトレースバック、内部リンクモードでのcgoプログラムリンクに対応。 :# linux/riscv64:pluginビルドモードに対応。GORISCV64環境変数でrva23u64値をサポート。 Go 1.25では、パフォーマンス、セキュリティ、開発者体験の向上に重点が置かれ、特に実験的機能として提供される新しいガベージコレクターやJSON実装により、将来的なさらなるパフォーマンス向上の基盤が築かれています。 === Go 1.24 === Go 1.24が、2025年2月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.24 | title = Go 1.24 Release Notes - The Go Programming Language | date = 2025/02/11 | accessdate = 2025/02/23 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.24 | title = Go 1.24 is released! - The Go Programming Language | date = 2025/02/11 | accessdate = 2025/02/23 }}</ref>。 Go 1.24のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。 {{Main|[https://go.dev/doc/go1.24 Go 1.24 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.24 Go 1.24 is released! The Go Blog]}} ; 言語の変更点: :# ジェネリック型エイリアスが完全にサポートされるようになりました。これにより、型エイリアスに型パラメータを設定できるようになり、既存の型を制約付きで再定義することが可能になりました。たとえば <code>type VectorAlias[T any] = Vector[T]</code> のような定義ができます。この機能は Go 1.23 では実験的な機能(GOEXPERIMENT=aliastypeparams)でしたが、Go 1.24で正式にサポートされました。 ; 新しい標準パッケージ: :# crypto/mlkem:ML-KEM-768とML-KEM-1024を実装したパッケージ。 :# crypto/hkdf:HMAC-based Extract-and-Expand key derivation function (HKDF) を実装したパッケージ。 :# crypto/pbkdf2:password-based key derivation function (PBKDF2) を実装したパッケージ。 :# crypto/sha3:SHA-3ハッシュ関数とSHAKE/cSHAKE extendable-output functionsを実装したパッケージ。 :# weak:弱参照を提供するパッケージ。 :# testing/synctest:並行コードのテストをサポートする実験的なパッケージ(GOEXPERIMENT=synctestが必要)。 ; パフォーマンスの改善点: :# Swiss Tablesベースの新しいマップ実装により、2-3%のCPUオーバーヘッドが削減。 :# 小さなオブジェクトのメモリ割り当ての効率化。 :# 新しいランタイム内部ミューテックス実装。 ; ツールの改善: :# go.modファイルでツール依存関係を追跡できるようになりました。 :# go buildとgo installに -json フラグが追加され、構造化されたJSON出力が可能に。 :# go vetに新しいtestsアナライザーが追加され、テストの一般的な間違いを検出可能に。 ; セキュリティの改善: :# FIPS 140-3コンプライアンスのための新しいメカニズムが追加。 :# TLSサーバーがEncrypted Client Hello (ECH)をサポート。 :# RSAキーは1024ビット未満のキーサイズでエラーを返すように変更。 ; プラットフォームサポートの変更: :# Linuxはカーネルバージョン3.2以降が必要になりました。 :# Go 1.24はmacOS 11 Big Surをサポートする最後のバージョンとなります。 :# Windows 32-bit ARM (windows/arm)は「broken」とマークされました。 また、1.23でサポートされた"for-range"ループのイテレータ機能を活用し、bytes/stringsパッケージに新しいイテレータ関数(Lines、SplitSeq、SplitAfterSeq、FieldsSeq、FieldsFuncSeq)が追加されました。os.Root型による特定ディレクトリ内でのファイルシステム操作が可能になり、testing.B.Loopメソッドにより、ベンチマークの記述がより簡単で安全になっています。 === Go 1.23 === Go 1.23が、2024年8月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.23 | title = Go 1.23 Release Notes - The Go Programming Language | date = 2024/08/13 | accessdate = 2024/11/13 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.23 | title = Go 1.23 is released! - The Go Programming Language | date = 2024/08/13 | accessdate = 2024/11/13 }}</ref>。 Go 1.23のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。 {{Main|[https://go.dev/doc/go1.23 Go 1.23 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.23 Go 1.23 is released! The Go Blog]}} ; 言語の変更点: :# "for-range" ループでイテレータ関数がサポートされるようになりました。これにより、カスタムイテレーション値を生成する関数を使用できます。 :# ジェネリック型エイリアスのプレビューサポートが追加されました(GOEXPERIMENT=aliastypeparamsを有効にする必要があります)。 ; 新しい標準パッケージ: :# uniqueパッケージ:値の正規化(インターン化やハッシュコンス化)を行うための機能を提供します。 :# iterパッケージ:ユーザー定義のイテレータ機能を提供します。 :# structsパッケージ:構造体のメモリレイアウトなどのプロパティを制御する機能を提供します。 ; パフォーマンスの改善点: :# Profile Guided Optimization (PGO)のビルドオーバーヘッドが大幅に削減されました。以前は100%以上の増加が見られましたが、今回のリリースでは一桁台のパーセンテージまで改善されています。 :# コンパイラがローカル変数のスタックフレームスロットを最適化し、関数内の異なる領域で重複して使用できるようになり、スタック使用量が削減されました。 ; テレメトリーと開発者ツール: :# Goツールチェーンが使用状況と問題点の統計情報を収集できるテレメトリー機能が追加されました(オプトイン方式)。 :# go vetコマンドにstdversionアナライザーが追加され、使用しているGoバージョンと互換性のないシンボルの参照を検出できるようになりました。 ; プラットフォームサポートの変更: :# macOSは11 (Big Sur)以降が必要になりました。 :# Linux kernelは2.6.32以降が必要です(Go 1.24では3.2以降になる予定)。 :# OpenBSDの64-bit RISC-Vサポートが試験的に追加されました。 また、time.TimerとTime.Tickerの実装が大幅に改善され、未使用のタイマーがガベージコレクションの対象となるようになりました。セキュリティ面では、TLSクライアントがEncrypted Client Helloをサポートし、3DESの暗号スイートがデフォルトリストから削除されるなどの改善が行われています。 === Go 1.22 === Go 1.22が、2024年2月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.22 | title = Go 1.22 Release Notes - The Go Programming Language | date = 2024/02/06 | accessdate = 2024/02/11 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.22 | title = Go 1.22 is released! - The Go Programming Language | date = 2024/02/06 | accessdate = 2024/02/11 }}</ref>。 Go 1.22のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。 {{Main|[https://go.dev/doc/go1.22 Go 1.22 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.22 Go 1.22 is released! The Go Blog]}} ; 言語の変更点: :# 長らく問題視されてきた「for」ループの変数スコープが変更されました。以前は変数が一度だけ作成され、各イテレーションで更新されていましたが、Go 1.22以降は各イテレーションで新しい変数が作成されるようになり、意図しない共有の問題が解消されました。 :# 整数の範囲に対する<code>range</code>のサポートが追加されました。例えば、<code>for i := range 10</code>のような構文が可能になりました。 ; パフォーマンスの改善点: :# ガベージコレクションのメタデータを各ヒープオブジェクトの近くに配置するように最適化されました。これにより、CPUパフォーマンスが1-3%向上し、ほとんどのGoプログラムのメモリオーバーヘッドが約1%削減されました。 :# コンパイラのプロファイル誘導最適化(PGO)が改善され、より多くのインターフェースメソッド呼び出しの仮想化解除が可能になりました。代表的なGoプログラムの多くで、PGOを有効にすることで2-14%のパフォーマンス向上が見られます。 :# コンパイラは仮想化解除とインライン化を交互に行うようになり、インターフェースメソッド呼び出しの最適化が向上しました。 ; 標準ライブラリの追加と改善: :# 標準ライブラリで初めてのv2パッケージとなる<code>math/rand/v2</code>が追加されました。新しいパッケージでは、ChaCha8とPCGという2つの現代的な疑似乱数生成器を提供し、より高速なアルゴリズムを採用しています。 :# <code>net/http.ServeMux</code>のHTTPルーティングがより表現力豊かになりました。メソッドとワイルドカードをサポートし、例えば"POST /items/create"や"/items/{id}"のようなパターンが使用可能になりました。 :# <code>database/sql</code>パッケージに<code>Null[T]</code>型が追加され、任意の型のnullableカラムをスキャンする機能が提供されます。 :# <code>go/version</code>パッケージが追加され、Goバージョン文字列の検証と比較機能が提供されます。 :# <code>slices</code>パッケージに複数のスライスを連結する<code>Concat</code>関数が追加されました。 ; ツールの改善: :# Goコマンドでワークスペースのvendorディレクトリがサポートされるようになりました。<code>go work vendor</code>でディレクトリを作成し、<code>-mod=vendor</code>フラグで使用できます。 :# トレースツールのWebUIが改良され、スレッド指向のビューでトレースを探索できるようになりました。また、すべてのシステムコールの完全な実行時間が表示されるようになりました。 :# <code>go vet</code>ツールに新しい警告が追加され、appendに値を渡し忘れた場合や、time.Since呼び出しの遅延に関する問題を検出できるようになりました。 また、macOSのx86-64アーキテクチャ(darwin/amd64)向けのGoツールチェーンが、デフォルトで位置独立実行形式(PIE)を生成するようになりました。Go 1.23以降はmacOS 11 Big Sur以降が必要になることも発表されています。 === Go 1.21 === Go 1.21が、2023年8月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.21 | title = Go 1.21 Release Notes - The Go Programming Language | date = 2023/08/08 | accessdate = 2023-11-28 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.21 | title = Go 1.21 is released! - The Go Programming Language 5| date = 2023/08/08 | accessdate = 2023-11-28 }}</ref>。 {{Main|[https://go.dev/doc/go1.21 Go 1.21 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.21 Go 1.21 is released! The Go Blog]}} Go 1.21では、リリースの番号付けにわずかな変更が導入されました。Go 1.Nは、過去にGo言語のバージョン全体とリリースファミリー、およびそのファミリー内の最初のリリースを指すために使用されていました。しかし、Go 1.21から、最初のリリースはGo 1.N.0となりました。今日、Go 1.21言語とその初期実装であるGo 1.21.0リリースが公開されています。これらのノートは「Go 1.21」と呼ばれますが、go versionなどのツールは「go1.21.0」と報告されます(Go 1.21.1にアップグレードするまで)。 ; ツールの改善点: :# Profile Guided Optimization(PGO)機能が一般利用可能になりました。<code>default.pgo</code>という名前のファイルがメインパッケージのディレクトリにある場合、<code>go</code>コマンドはそれを使用してPGOビルドを有効にします。 :# <code>go</code>ツールは今後の言語の後方互換性と前方互換性をサポートします。 ; 言語の変更点: :# 新しい組み込み関数 <code>min</code>、<code>max</code>、<code>clear</code> が追加されました。 :# ジェネリック関数の型推論がいくつか改善され、仕様書の型推論の説明が拡張されました。 :# Goプログラミングの最も一般的な落とし穴の1つに取り組む予定で、そのプレビューがGo 1.21に含まれています。これは環境変数を使用してコードで有効にできます。詳細はLoopvarExperiment wikiページを参照してください。 ;標準ライブラリの追加点: :# 構造化ログのための新しいlog/slogパッケージが追加されました。 :# 任意の要素型のスライスに対する共通操作のための新しいslicesパッケージが追加されました。これには、一般的により高速で使いやすいソート関数も含まれています。 :# 任意のキーまたは要素型のマップに対する共通操作のための新しいmapsパッケージが追加されました。 :# 順序付けられた値を比較するための新しいユーティリティを提供するcmpパッケージが追加されました。 ; 性能の改善点: :# PGOを有効にした際のパフォーマンス向上に加えて、以下のような改善があります。 :# Goコンパイラ自体がPGOを有効にして再ビルドされ、ホストアーキテクチャによってはプログラムのビルドが2〜4%高速化されました。 :# ガベージコレクターの調整により、一部のアプリケーションではテールレイテンシーが最大40%削減される場合があります。 :# runtime/traceでトレースを収集する際のCPUコストが、amd64およびarm64で大幅に低減されました。 ; 新しいWASIポート: :# Go 1.21には、WebAssembly System Interface(WASI)の実験的なポートが追加されました(GOOS=wasip1、GOARCH=wasm)。 :# より一般的なWebAssembly(Wasm)コードの記述を容易にするために、コンパイラはWasmホストからの関数のインポートのための新しい指令 <code>go:wasmimport</code> をサポートしています。 === Go 1.20 === Go 1.20が、2023年2月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.20 | title = Go 1.20 Release Notes - The Go Programming Language | date = 2023/02/01 | accessdate = 2023-03-05 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.20 | title = Go 1.20 is released! - The Go Programming Language | date = 2023/02/01 | accessdate = 2023-03-05 }}</ref>。 {{Main|[https://go.dev/doc/go1.20 Go 1.20 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.20 Go 1.20 is released! The Go Blog]}} Go 1.20では、スライスから配列への変換が可能になりました。また、unsafeパッケージには新しい関数が追加され、スライスや文字列の値を構築および分解する完全な機能が提供されるようになりました。また、新しい仕様により、構造体のフィールドと配列の要素の比較が最初の不一致で停止するようになり、厳密に比較できない型引数を持つ型パラメータを使用して、比較制約に制限された型をインスタンス化することが可能になりました。 === Go 1.19 === Go 1.19が、2022年8月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.19 | title = Go 1.19 Release Notes - The Go Programming Language | date = 2022/08/02 | accessdate = 2022-08-04 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.19 | title = Go 1.19 is released! - The Go Programming Language | date = 2022/08/02 | accessdate = 2022-08-04 }}</ref>。 {{Main|[https://go.dev/doc/go1.19 Go 1.19 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.19 Go 1.19 is released! The Go Blog]}} Go 1.19では、ツールチェーン、ランタイム、およびライブラリの実装に変更が加えられています。言語にはわずかな修正があり、既存のプログラムには影響がないです。メモリモデルも更新され、C、C ++、Java、JavaScript、Rust、Swiftなどのメモリモデルに合わせられた。Go 1.19では、sync/atomicパッケージに新しい型が導入され、atomic.Int64やatomic.Pointer[T]などのatomic値をより簡単に使用できるようになっています。Go 1の互換性を維持しており、ほとんどのGoプログラムは引き続き従前どおりにコンパイルおよび実行されることが予想されます。 === Go 1.18 === Go 1.18が、2022年3月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.18 | title = Go 1.18 Release Notes - The Go Programming Language | date = 2022/03/10 | accessdate = 2022-08-04 }}</ref>。 {{Main|[https://go.dev/doc/go1.18 Go 1.18 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.18 Go 1.18 is released! The Go Blog]}} Go 1.18 には、型パラメータプロポーザル<ref>{{cite book | url=https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md | title=Type Parameters Proposal | accessdate=2021-09-30 }}</ref>で説明されたジェネリック機能の実装が含まれています。 以下は、最も目に付く変更点のリストです。 # 関数と型宣言の構文に型パラメータが使えるようになりました。⇒ [[/関数#ジェネリック関数]] # パラメータ化された関数や型は、その後に角括弧で型引数のリストを記述することでインスタンス化することができます。 # 新しいトークン <code>~</code> が演算子および区切子(punctuation)に追加されました。⇒ [[/字句的要素#演算子と区切子]] # インターフェイス型の構文では、任意の型(インターフェイスの型名だけでなく)、unionや~T型要素を埋め込むことができるようになりました。このようなインターフェースは、型制約としてのみ使用することができます。インターフェイスはメソッドと同様に型の集合を定義するようになりました。⇒ [[/型#インターフェース型]] # 新しい事前宣言された識別子<code>any</code>は空のインターフェースの別名です。これは <code>interface{} </code>の代わりに使用することができます。 # 新しい宣言済み識別子 <code>comparable</code> は <code>==</code> や <code>!=</code> を使って比較できる全ての型の集合を表すインターフェースです. ジェネリックを使った実験的なパッケージが3つあり、便利かもしれません。これらのパッケージは x/exp リポジトリにあります。これらのパッケージの API は Go 1 の保証の対象外であり、ジェネリックの経験を積むにつれて変更される可能性があります。 ;golang.org/x/exp/constraints :<code>constraints.Ordered</code>のようなジェネリックコードに便利な制約です。 ;golang.org/x/exp/slices :任意の要素タイプのスライス上で操作するジェネリック関数のコレクションです。 ;golang.org/x/exp/maps :任意のキーや要素タイプのマップ上で操作するジェネリック関数のコレクションです。 ---- Go 1.18は、言語、ツールチェーン、ランタイム、ライブラリに変更があり、互換性が保たれている。最大の変更点は、ジェネリックスの導入である。ジェネリックスはバックワード互換性があるが、実際に多くの人が書き、使用して初めて本番環境で十分にテストされる。ジェネリックスの使用は推奨されるが、本番環境で使用する場合は注意が必要である。ジェネリックスにはいくつかの制限があるが、これらは将来的に改善される可能性がある。これらの変更により、Goエコシステム全体に影響があり、完全なサポートには時間がかかるだろう。 === Go 1.17 === Go 1.17が、2021年8月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.17 | title = Go 1.17 Release Notes - The Go Programming Language | date = 2021/08/16 | accessdate = 2023-03-06 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.17 | title = Go 1.17 is released! - The Go Programming Language | date = 2021/08/16 | accessdate = 2023-03-06 }}</ref>。 {{Main|[https://go.dev/doc/go1.17 Go 1.17 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.17 Go 1.17 is released! The Go Blog]}} Go 1.17は、ツールチェーン、ランタイム、およびライブラリの実装の変更が中心で、ほとんどの変更は互換性が維持されています。言語自体には3つの小さな強化があり、スライスから配列ポインタへの変換、unsafe.Add、unsafe.Sliceが追加されました。このうち、スライスから配列ポインタへの変換が実行時にpanicを引き起こす場合があるため、タイプ変換が実行時にpanicを引き起こす可能性があることを考慮する必要があります。新しいプログラムを書く場合も、以前と同様に、unsafe.Pointerの安全ルールに従う必要があります。 === Go 1.16 === Go 1.16が、2021年2月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.16 | title = Go 1.16 Release Notes - The Go Programming Language | date = 2021/02/16 | accessdate = 2023-03-06 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.16 | title = Go 1.16 is released! - The Go Programming Language | date = 2021/02/16 | accessdate = 2023-03-06 }}</ref>。 {{Main|[https://go.dev/doc/go1.16 Go 1.16 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.16 Go 1.16 is released! The Go Blog]}} Go 1.16では、ツールチェーン、ランタイム、ライブラリの実装が変更されています。Go 1の互換性を維持しながら、ほとんどのプログラムが従来通りにコンパイルおよび実行できるようになっています。言語には変更はありません。 === Go 1.15 === Go 1.15が、2020年8月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.15 | title = Go 1.15 Release Notes - The Go Programming Language | date = 2020/08/11 | accessdate = 2023-03-12 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.15 | title = Go 1.15 is released! - The Go Programming Language | date = 2020/08/11 | accessdate = 2023-03-12 }}</ref>。 {{Main|[https://go.dev/doc/go1.15 Go 1.15 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.15 Go 1.15 is released! The Go Blog]}} Go 1.15では、リンカーの大幅な改良、高いコア数での小規模オブジェクトの割り当ての改善、X.509 CommonNameの非推奨化、そして新しい埋め込みtzdataパッケージの追加が含まれています。 === Go 1.14 === Go 1.14が、2020年2月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.14 | title = Go 1.14 Release Notes - The Go Programming Language | date = 2020/02/25 | accessdate = 2023-03-12 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.14 | title = Go 1.14 is released! - The Go Programming Language | date = 2020/02/25 | accessdate = 2023-03-12 }}</ref>。 {{Main|[https://go.dev/doc/go1.14 Go 1.14 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.14 Go 1.14 is released! The Go Blog]}} Go 1.14では、オーバーラップするインターフェースの提案により、埋め込まれたインターフェースで同じ名前とシグネチャを持つメソッドを許可するようになりました。しかし、インターフェース内で宣言されたメソッドは以前と同様にユニークである必要があります。 === Go 1.13 === Go 1.13が、2019年2月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.13 | title = Go 1.13 Release Notes - The Go Programming Language | date = 2019/09/03 | accessdate = 2023-03-12 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.13 | title = Go 1.13 is released! - The Go Programming Language | date = 2019/09/03 | accessdate = 2023-03-12 }}</ref>。 {{Main|[https://go.dev/doc/go1.13 Go 1.13 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.13 Go 1.13 is released! The Go Blog]}} Go 1.13では、数字リテラルの接頭辞が変更され、バイナリ整数、8進数整数、16進数浮動小数点数、虚数リテラル、数字区切りが使用できるようになりました。さらに、符号付きシフトカウントの制限が撤廃され、制限がなくなりました。これらの変更は、コンパイラの変更によって実現されました。Go 1.13を使用するには、go.modファイルで言語バージョンを指定する必要があります。 === Go 1.12 === Go 1.12が、2019年2月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.12 | title = Go 1.12 Release Notes - The Go Programming Language | date = 2019/02/25 | accessdate = 2024/11/13 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.12 | title = Go 1.12 is released! - The Go Programming Language | date = 2019/02/25 | accessdate = 2024/11/13 }}</ref>。 Go 1.12のリリースには、いくつかの新機能と改善が含まれ、Go言語のパフォーマンスやユーザビリティがさらに向上しました。以下が主な変更点です。 {{Main|[https://go.dev/doc/go1.12 Go 1.12 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.12 Go 1.12 is released! The Go Blog]}} ; 主要な新機能: :# Windows向けに、標準ライブラリがコントロールグループのサポートやシステムコールの改善により、性能向上と安定性が強化されました。 :# macOS向けの新しいサポートとして、ヒープメモリ使用量の削減や効率化が進められました。 ; パフォーマンスの改善点: :# 文字列操作の最適化が行われ、<code>strings.Trim</code>や<code>strings.Index</code>のパフォーマンスが向上しました。 :# 並列ガベージコレクションが改良され、メモリ管理の効率が向上しています。 :# コンパイラの境界チェックが一部のパターンで自動的に省略されるようになり、コード生成の効率がさらに向上しました。 ; デバッグ機能の改善: :# より正確な変数位置とスタック情報の提供により、デバッグ体験が改善されています。 :# 新たにDWARF生成の機能が拡充され、特に最適化コードにおいて、デバッグ情報の信頼性が高まりました。 ; ランタイムの改善: :# Windows上で、64ビットプロセスのアドレス空間使用が最適化され、より多くのメモリを使用可能になりました。 :# Goランタイムのシグナルハンドリングが強化され、システムシグナルの処理能力が向上しました。 ; 標準ライブラリの改善: :# <code>crypto/x509</code>パッケージで、証明書の検証がmacOSのシステム証明書ストアを使用するようになり、macOSでの信頼性が向上しました。 :# <code>net/http</code>において、HTTP/2の接続管理が改善され、特に大量接続環境での安定性が増しました。 :# <code>os</code>パッケージの<code>Process.Signal</code>がWindowsでも利用可能となり、Windows上のプロセス管理機能が強化されました。 ; ツールの改善: :# <code>go test</code>コマンドに<code>-json</code>フラグが追加され、テスト結果をJSON形式で出力できるようになりました。 :# goコマンドが<code>go.sum</code>ファイルを自動的に更新し、依存関係の信頼性が向上しています。 :# <code>gofmt</code>において、特定のコードパターンの整形が改良され、より一貫したコードスタイルが保たれます。 また、OpenBSD 6.4以降、macOS 10.11 El Capitan以降、またはWindows 7以降が必要となり、これらのOSの以前のバージョンのサポートが終了しました。リリースノートでは、Go 1の互換性は維持されており、ほとんどのGoプログラムは以前と同様に動作すると述べられています。 === Go 1.11 === Go 1.11が、2018年8月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.11 | title = Go 1.11 Release Notes - The Go Programming Language | date = 2018/08/24 | accessdate = 2024/11/13 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.11 | title = Go 1.11 is released! - The Go Programming Language | date = 2018/08/24 | accessdate = 2024/11/13 }}</ref>。 Go 1.11のリリースでは、いくつかの重要な新機能と改善が含まれています。最も注目すべき変更点は以下です。 {{Main|[https://go.dev/doc/go1.11 Go 1.11 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.11 Go 1.11 is released! The Go Blog]}} ; 主要な新機能: :# モジュールサポートの実験的な導入により、GOPATHに依存しない開発が可能になりました。バージョン管理と依存関係管理が統合され、より信頼性の高いビルドが実現できます。 :# WebAssembly(js/wasm)の実験的なポートが追加され、syscall/jsパッケージを通じてJavaScriptとの連携が可能になりました。 :# RISCVアーキテクチャ向けのGOARCH値("riscv"と"riscv64")が予約されました。 ; パフォーマンスの改善点: :# マップのクリア操作が最適化され、<code>for k := range m { delete(m, k) }</code>のようなコードが効率的に実行されるようになりました。 :# スライス拡張の<code>append(s, make([]T, n)...)</code>が最適化されました。 :# コンパイラの境界チェックと分岐除去が大幅に改善され、より効率的なコードが生成されるようになりました。 ; デバッグ機能の改善: :# 最適化されたバイナリのデバッグ情報が大幅に改善され、変数位置情報、行番号、ブレークポイント位置がより正確になりました。 :# DWARFセクションがデフォルトで圧縮されるようになりました。 :# デバッガー内からのGo関数呼び出しが実験的にサポートされました。 ; ランタイムの改善: :# スパースヒープレイアウトの採用により、Goヒープサイズの制限(従来は512GiB)が撤廃されました。 :# macOSとiOSで、カーネルの直接呼び出しの代わりにlibSystem.dylibを使用するように変更され、将来のOSバージョンとの互換性が向上しました。 ; 標準ライブラリの改善: :# <code>crypto/cipher</code>パッケージに、非標準のタグ長をサポートするGCM実装が追加されました。 :# <code>net/http</code>の<code>Transport</code>型に、ホストごとの最大接続数を制限する<code>MaxConnsPerHost</code>オプションが追加されました。 :# <code>os</code>パッケージに、ユーザー固有のキャッシュディレクトリを取得する<code>UserCacheDir</code>関数が追加されました。 ; ツールの改善: :# 環境変数<code>GOFLAGS</code>が導入され、goコマンドのデフォルトフラグを設定できるようになりました。 :# godocのWebサーバーが、APIの新機能がどのGoバージョンで導入されたかを表示するようになりました。 また、OpenBSD 6.2以降、macOS 10.10 Yosemite以降、またはWindows 7以降が必要となり、これらのOSの以前のバージョンのサポートが終了しました。リリースノートでは、Go 1の互換性は維持されており、ほとんどのGoプログラムは以前と同様に動作すると述べられています。 ---- === Go 1.10 === Go 1.10が、2018年2月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.10 | title = Go 1.10 Release Notes - The Go Programming Language | date = 2018/02/16 | accessdate = 2025/05/20 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.10 | title = Go 1.10 is released - The Go Programming Language | date = 2018/02/16 | accessdate = 2025/05/20 }}</ref>。 Go 1.10のリリースでは、開発体験を大幅に向上させる複数の重要な改善が含まれています。最も注目すべき変更点は以下です。 {{Main|[https://go.dev/doc/go1.10 Go 1.10 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.10 Go 1.10 is released! The Go Blog]}} ; ビルドシステムの大幅改善: :# ビルドキャッシュの導入により、最近ビルドしたパッケージが自動的にキャッシュされ、ビルド時間が大幅に短縮されました。 :# テスト結果のキャッシュ化により、変更のないテストは再実行せずにキャッシュされた結果を使用するようになりました。 :# <code>go test</code>時に<code>go vet</code>が自動実行され、テスト前にコードの問題を検出できるようになりました。 :# <code>go install</code>コマンドが、コマンドラインで指定されたパッケージのみをインストールするように変更されました。 ; cgoのセキュリティ強化と機能拡張: :# cgoの<code>#cgo CFLAGS</code>などで指定できるコンパイラオプションが安全なもののみに制限され、<code>-fplugin</code>などの危険なオプションは使用できなくなりました。 :# Go文字列値へのC言語からの直接アクセスが可能になり、<code>_GoString_</code>型、<code>_GoStringLen</code>、<code>_GoStringPtr</code>関数が追加されました。 :# CのtypedefがGoの型エイリアスとして実装され、<code>C.X</code>と<code>C.Y</code>を相互に使用できるようになりました。 ; パフォーマンスの改善点: :# ガベージコレクタが割り当て遅延への影響を軽減するよう改善されました。 :# コンパイラの最適化によりコード生成品質が向上し、サポートされている全アーキテクチャで性能が向上しました。 :# スタックトレースから暗黙のラッパー関数(<code><autogenerated></code>マーク)が除外され、より読みやすくなりました。 ; ツールの改善: :# <code>go doc</code>コマンドが、型Tを返すスライスや*Tを返す関数も型Tの表示に含めるようになりました。 :# <code>go test</code>に<code>-failfast</code>フラグが追加され、テスト失敗時に残りのテストを停止できるようになりました。 :# <code>go test -json</code>フラグが追加され、機械読み取り可能なJSON形式でテスト結果を出力できるようになりました。 :# <code>go get</code>コマンドでFossilソースコードリポジトリがサポートされました。 ; ランタイムの改善: :# <code>LockOSThread</code>と<code>UnlockOSThread</code>の呼び出しがネストをサポートするようになりました。 :# <code>GOMAXPROCS</code>の制限が撤廃されました(以前は1024が上限)。 :# <code>GOROOT</code>関数が、環境変数が設定されていない場合にプログラムのコンパイル時の値を使用するようになりました。 ; 標準ライブラリの改善: :# <code>strings</code>パッケージに新しい<code>Builder</code>型が追加され、文字列構築時のメモリ効率が向上しました。 :# <code>math</code>パッケージに<code>Round</code>、<code>RoundToEven</code>、<code>Erfinv</code>、<code>Erfcinv</code>関数が追加されました。 :# <code>net/url</code>の<code>ResolveReference</code>が複数の先頭スラッシュを保持するように修正され、RFC 3986に準拠しました。 :# <code>bytes</code>パッケージの<code>Fields</code>、<code>Split</code>系関数が、返すサブスライスの容量を長さと同じに設定するようになり、メモリ効率が向上しました。 :# <code>archive/tar</code>と<code>archive/zip</code>でより多くのヘッダー形式や時刻エンコーディングがサポートされました。 ; デバッグ機能の改善: :# バイナリ内のDWARFデバッグ情報が改善され、定数値の記録、より正確な行番号情報、パッケージ単位でのコンパイル単位の表現が実現されました。 :# 各種ビルドモードがより多くのシステムに対応し、<code>c-shared</code>、<code>pie</code>、<code>plugin</code>モードの対応プラットフォームが拡張されました。 ; アセンブラの拡張: :# ARM 32ビット、ARM 64ビット、PowerPC 64ビット、S390X、X86 64ビットアーキテクチャで多数の新しい命令がサポートされました。 :# 特にX86 64ビットでは、AVX、AVX2、BMI、BMI2、F16C、FMA3、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2などの拡張命令セットを含む359の新命令が追加されました。 ; ソースコードフォーマットの変更: :# <code>gofmt</code>のデフォルトフォーマットに軽微な変更があり、3つのインデックスを持つスライス式と単一行のインターフェースリテラルの表示が改善されました。 === Go 1.9 === Go 1.9が、2017年8月にリリースされました<ref>{{cite web | url = https://go.dev/doc/go1.9 | title = Go 1.9 Release Notes - The Go Programming Language | accessdate = 2025-05-20 }}</ref><ref>{{cite web | url = https://go.dev/blog/go1.9 | title = Go 1.9 is released - The Go Blog | date = 2017/08/24 | accessdate = 2025-05-20 }}</ref>。 Go 1.9のリリースでは、言語、ツール、ランタイム、標準ライブラリに多くの変更と改善が含まれています。主な変更点は以下の通りです。 {{Main|[https://go.dev/doc/go1.9 Go 1.9 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.9 Go 1.9 is released - The Go Blog]}} ; 言語の変更点: :# 型エイリアス: パッケージ間で型を移動する際などに、段階的なコードの修正をサポートするための型エイリアスが導入されました。 :#:<code>type T1 = T2</code> :#:の形式で宣言することで、既存の型 T2 に別の名前 T1 を与えることができます。 :# 浮動小数点演算の融合: 言語仕様が更新され、実装が浮動小数点演算(例えば、積和演算)を融合することが許可される条件が定義されました。中間結果の丸めを強制したい場合は、float64(x*y) + z のように明示的な型変換が必要です。 ; 新しい標準パッケージ: :# math/bits: 符号なし整数のビット操作(カウント、操作など)のための最適化された実装を提供する新しいパッケージが追加されました。可能な場合、CPUの特殊な命令が利用されます。 ; パフォーマンスの改善点: :# 並列コンパイル: パッケージ内の関数のコンパイルが並列化され、マルチコア環境でのビルド時間が改善されました。この機能はデフォルトで有効ですが、環境変数 GO19CONCURRENTCOMPILATION=0 を設定することで無効にできます。 :# ガベージコレクション: ストップザワールド型のガベージコレクションを引き起こしていたライブラリ関数 (runtime.GC, debug.SetGCPercent, debug.FreeOSMemory) が、呼び出し元のゴルーチンのみをブロックする並行ガベージコレクションに変更されました。 ; ツールの改善: :# Vendorディレクトリのマッチング: go test などのパッケージ名を引数に取るツールにおいて、./... が vendor ディレクトリ内のパッケージをマッチしなくなりました。vendor ディレクトリをマッチさせるには、./vendor/.... を使用する必要があります。 :# GOROOTの移動: go tool は、実行されたパスからGoのインストールツリーのルートを特定するようになりました。これにより、Goのインストールディレクトリ全体を移動した場合でも、go tool が通常通り動作するはずです。 :# go test -list: テスト、ベンチマーク、またはExampleの名前を正規表現でフィルタリングしてリスト表示する -list フラグが go test コマンドに追加されました。 :# go env -json: 環境変数をJSON形式で出力する -json フラグが go env コマンドに追加されました。 ; その他の注目すべき変更点: :# sync.Map: 並行アクセスに対応した新しいマップ型 sync.Map が追加されました。読み込み、書き込み、削除操作は償却定数時間で行われます。 :# testing.Helper: testing.T および testing.B に Helper メソッドが追加されました。このメソッドを呼び出すと、エラー報告などでファイル名と行番号が表示される際に、ヘルパー関数自身ではなく、ヘルパー関数を呼び出した箇所の情報が表示されるようになります。 :# timeパッケージ: time パッケージは、各 Time 値に透過的に単調時間(monotonic time)を追跡するようになり、壁時計の調整があっても二つの Time 値間の経過時間を安全に計算できるようになりました。 :# runtime.CallersFrames: インライン化されたフレームを含むコールスタックの情報を正確に取得するために、runtime.Callers の結果を直接検査するのではなく、runtime.CallersFrames を使用することが推奨されるようになりました。 :# runtime/pprof: runtime/pprof パッケージで生成されるプロファイルにシンボル情報が含まれるようになり、プロファイルを生成したバイナリなしで go tool pprof で表示できるようになりました。また、プロファイルレコードにラベルを追加する機能も追加されました。 Go 1.9には、上記以外にも多くの追加、改善、および修正が含まれています。詳細については、公式のリリースノートを参照してください。 === Go 1.8 === Go 1.8が、2017年2月にリリースされました<ref>{{cite web | url = https://go.dev/doc/go1.8 | title = Go 1.8 Release Notes - The Go Programming Language | accessdate = 2025-05-20 }}</ref><ref>{{cite web | url = https://go.dev/blog/go1.8 | title = Go 1.8 is released - The Go Blog | date = 2017/02/16 | accessdate = 2025-05-20 }}</ref>。 Go 1.8のリリースでは、ツールチェーン、ランタイム、およびライブラリの実装に多くの変更が含まれています。主な変更点は以下の通りです。 {{Main|[https://go.dev/doc/go1.8 Go 1.8 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.8 Go 1.8 is released - The Go Blog]}} ; 言語の変更点: :# '''構造体型の変換:''' Go 1.8以降、構造体間の明示的な型変換において、タグが無視されるようになりました。タグのみが異なる2つの構造体は、相互に変換可能です。 :# '''浮動小数点定数の指数:''' 言語仕様が更新され、実装が浮動小数点定数で最大16ビットの指数をサポートすることが要求されるようになりました。ただし、"gc" と gccgo コンパイラは、どちらも32ビットの指数をサポートしています。 ; ポート: :# '''32-bit MIPSのサポート:''' Linux上で、big-endian (linux/mips) と little-endian (linux/mipsle) の両方のマシンで、FPUまたはカーネルFPUエミュレーションを備えたMIPS32r1命令セットを実装する32-bit MIPSがサポートされるようになりました。 ; ツール: :# '''アセンブラ:''' 64-bit x86システム用に、VBROADCASTSD, BROADCASTSS, MOVDDUP, MOVSHDUP, MOVSLDUP, VMOVDDUP, VMOVSHDUP, VMOVSLDUPなどの命令が追加されました。 :# '''Yacc:''' yaccツールは削除されました。 :# '''Fix:''' fixツールに、"golang.org/x/net/context" から "context" へimportを変更する "context" fixが追加されました。 :# '''Pprof:''' pprofツールは、"https+insecure" URLスキームを使用して、TLSサーバーをプロファイルし、証明書の検証をスキップできるようになりました。 :# '''Trace:''' traceツールに、実行トレースからpprof互換のブロッキングおよびレイテンシプロファイルを生成するための -pprof フラグが追加されました。 :# '''Vet:''' Vetは、いくつかの点でより厳密になり、以前に誤検出を引き起こしていた箇所ではより緩くなりました。 ; コンパイラツールチェーン: :# '''SSAバックエンド:''' 64-bit x86システム用の新しいコンパイラバックエンドが導入されました。このバックエンドは、よりコンパクトで効率的なコードを生成し、境界チェックの排除などの最適化のためのより良いプラットフォームを提供します。 :# '''コンパイラとリンカの最適化:''' コンパイラとリンカが最適化され、Go 1.7よりも高速に実行されるようになりました。 ; Cgo: :# Goツールは、make.bash中に設定されたCGO_ENABLED環境変数の値を記憶し、デフォルトですべての将来のコンパイルに適用するようになりました。 ; デフォルトのGOPATH: :# GOPATH環境変数が設定されていない場合、デフォルト値を持つようになりました。Unixでは$HOME/go、Windowsでは%USERPROFILE%/goがデフォルトです。 ; Go get: :# "go get"コマンドは、-insecureフラグが使用されているかどうかに関係なく、HTTPプロキシ環境変数を常に尊重するようになりました。 ; Go bug: :# 新しい "go bug" コマンドは、現在のシステムに関する情報が事前に入力された状態で、GitHubでバグレポートを開始します。 ; Go doc: :# "go doc" コマンドは、godocの動作に従い、定数と変数をその型でグループ化するようになりました。 ; プラグイン: :# Goは、Goで記述されたプラグインを生成するための "plugin" ビルドモードと、実行時にそのようなプラグインをロードするための新しい plugin パッケージによる、プラグインの初期サポートを提供するようになりました。 ; ランタイム: :# '''引数の活性:''' ガベージコレクタは、関数全体の引数をライブとは見なしなくなりました。 :# '''並行マップの誤用:''' Go 1.6で、マップの並行誤用の軽量でベストエフォートな検出が追加されました。このリリースでは、マップへの並行書き込みと反復処理を行うプログラムの検出がサポートされ、その検出器が改善されました。 ; パフォーマンス: :# ガベージコレクションの一時停止が大幅に短縮され、通常は100マイクロ秒未満、多くの場合10マイクロ秒程度になりました。 :# deferred関数呼び出しのオーバーヘッドが約半分に削減されました。 :# GoからCへの呼び出しのオーバーヘッドが約半分に削減されました。 ; 標準ライブラリ: :# '''Examples:''' 多くのパッケージに例が追加されました。 :# '''Sort:''' sortパッケージに、less関数を指定してスライスをソートするための便利な関数Sliceが含まれるようになりました。 :# '''HTTP/2 Push:''' net/httpパッケージに、HandlerからHTTP/2サーバープッシュを送信するメカニズムが含まれるようになりました。 :# '''HTTPサーバーの正常シャットダウン:''' HTTPサーバーは、新しいServer.Shutdownメソッドを使用した正常シャットダウンと、新しいServer.Closeメソッドを使用した突然のシャットダウンをサポートするようになりました。 :# '''コンテキストのサポート:''' context.Contextの標準ライブラリへの採用を継続し、Go 1.8は、既存のパッケージへのコンテキストサポートを追加しました。 :# '''Mutex競合プロファイリング:''' ランタイムとツールが、競合するmutexのプロファイリングをサポートするようになりました。 Go 1.8には、上記以外にも多くの追加、改善、および修正が含まれています。詳細については、公式のリリースノートを参照してください。 === Go 1.7 === Go 1.7が、2016年8月にリリースされました<ref>{{cite web | url = https://go.dev/doc/go1.7 | title = Go 1.7 Release Notes - The Go Programming Language | accessdate = 2025-05-20 }}</ref><ref>{{cite web | url = https://go.dev/blog/go1.7 | title = Go 1.7 is released - The Go Blog | date = 2016/08/15 | accessdate = 2025-05-20 }}</ref>。 主な変更点は以下の通りです。 ; 主な変更点 * '''言語仕様''': 終了ステートメントの定義を明確化(既存の挙動を正式化) * '''パフォーマンス''': x86-64向け新しいコンパイラバックエンドで5-35%の性能向上 * '''標準ライブラリ''': ** <code>context</code>パッケージが標準ライブラリに昇格 ** <code>net/http/httptrace</code>パッケージ追加 ** テスト階層構造をサポート(サブテスト/サブベンチマーク) * '''ツールチェーン''': ** ビルド時間の改善 ** バイナリサイズの削減(20-30%減少することも) ** ベンダリングサポートが正式機能に * '''ポート''': ** macOS 10.12 Sierraサポート追加 ** Linux on z Systems(s390x)の実験的サポート追加 ; 互換性 Go 1の互換性保証を維持。ほとんどのGoプログラムは変更なしで動作する見込み。 ; その他の注目点 * ガベージコレクションの一時停止時間が短縮 * 多数の標準ライブラリで10%以上の性能改善 * Unicode 9.0サポート * WindowsでのメモリOS返還サポート * 実行トレースの収集オーバーヘッドが大幅改善(400%→25%) このリリースは主にツールチェーン、ランタイム、ライブラリの実装改善に焦点を当てています。 === Go 1.6 === Go 1.6が、2016年2月17日にリリースされました<ref>{{cite web | url = https://go.dev/blog/go1.6 | title = Go 1.6 Release Notes - The Go Programming Language | accessdate = 2025-06-29 }}</ref><ref>{{cite web | url = https://go.dev/blog/go1.6 | title = Go 1.6 is released - The Go Blog | date = 2016/02/17 | accessdate = 2025-06-29 }}</ref>。 主な変更点は以下の通りです。 ; 主な変更点 * '''言語仕様''': 言語仕様の変更なし * '''パフォーマンス''': ** Go 1ベンチマークスイートのプログラムが平均数パーセント高速化 ** ガベージコレクターの一時停止時間がさらに短縮(特にメモリを大量に使用するプログラムで) ** <code>compress/bzip2</code>、<code>compress/gzip</code>、<code>crypto/aes</code>、<code>crypto/elliptic</code>、<code>crypto/ecdsa</code>、<code>sort</code>パッケージで10%以上の最適化 ** <code>sort.Sort</code>の実装が効率化され、約10%高速化 * '''標準ライブラリ''': ** <code>net/http</code>パッケージがHTTPS使用時にHTTP/2を透過的かつ自動的にサポート ** <code>text/template</code>パッケージにテンプレート再利用の新メカニズムを追加(アクション周りの空白除去、<code>{{block}}</code>アクション) * '''ツールチェーン''': ** パーサーがyacc生成のものから手書きのものに変更 ** <code>linux/amd64</code>向けにClang MemorySanitizerとの連携のための新しい<code>-msan</code>フラグを追加 ** リンカーに新しい<code>-libgcc</code>オプションを追加 ** Go 1.5で導入されたビルドモードを多くのシステムに拡張(<code>c-shared</code>、<code>shared</code>、新しい<code>pie</code>モード) ** <code>go</code>コマンドがベンダリングをデフォルトで有効化(Go 1.5では実験的機能) ** <code>go doc</code>コマンドの曖昧性解消を改善(ベンダリングされたコピーよりも元のパッケージを優先) ** <code>go vet</code>コマンドが関数やメソッドの値を<code>Printf</code>に誤って渡す診断を開始 * '''ポート''': ** 64ビットMIPS上のLinuxと32ビットx86上のAndroidへの実験的な新しいポートを追加 ; 互換性 Go 1の互換性保証を維持。ほとんどのGoプログラムは変更なしでコンパイルおよび実行される見込み。 ; その他の注目点 * ランタイムでマップの同時誤用を軽量に検出(検出された場合はプログラムがクラッシュ) * プログラム終了時のパニックについて、ランタイムがデフォルトで実行中のゴルーチンのスタックのみを出力 * Goのガベージコレクターとの互換性を確保するため、GoポインタとCコード間の共有ルールを明確化し、強制 * Windowsでのグローバルタイマー解像度の1ms強制を停止 * <code>-buildmode=c-archive</code>または<code>-buildmode=c-shared</code>でビルドされたアーカイブおよび共有ライブラリのシグナルハンドリングを変更 * <code>reflect</code>パッケージで、エクスポートされたフィールドを含む埋め込まれた非エクスポート構造体型に関する非互換性を解決 === Go 1.5 === Go 1.5が、2015年8月19日にリリースされました<ref>{{cite web | url = https://go.dev/blog/go1.5 | title = Go 1.5 Release Notes - The Go Programming Language | accessdate = 2025-06-29 }}</ref><ref>{{cite web | url = https://go.dev/blog/go1.5 | title = Go 1.5 is released - The Go Blog | date = 2015/08/19 | accessdate = 2025-06-29 }}</ref>。 主な変更点は以下の通りです。 ; 主な変更点 * '''言語仕様''': ** マップリテラルの要素型の省略を許可する構文の制限が緩和 * '''パフォーマンス''': ** ガベージコレクターが再設計され、並行処理可能に。一時停止時間が劇的に短縮され、通常10ミリ秒未満に ** スケジューラーの改善により、<code>GOMAXPROCS</code>のデフォルト値が論理CPU数に変更 * '''標準ライブラリ''': ** <code>flag</code>パッケージでよりクリーンな使用法メッセージ ** <code>math/big</code>に任意精度浮動小数点数用の新しい<code>Float</code>型を追加 ** LinuxおよびBSDシステム上のDNSリゾルバーの改善により、名前ルックアップのcgo要件を削除 ** <code>go/types</code>パッケージが標準ライブラリに移動 ** <code>reflect</code>パッケージに<code>ArrayOf</code>および<code>FuncOf</code>関数が追加 * '''ツールチェーン''': ** コンパイラとランタイムが完全にGoで記述され、GoコードベースからすべてのCコードが削除 ** 従来のツール名(例: <code>6g</code>、<code>8g</code>)が廃止され、<code>go tool compile</code>、<code>go tool asm</code>、<code>go tool link</code>などの単一バイナリに置き換え ** 中間オブジェクトファイルが<code>.6</code>、<code>.8</code>などの代わりに<code>.o</code>サフィックスを使用 ** <code>go/types</code>パッケージの移動に伴い、<code>vet</code>および<code>cover</code>ツールも移動 ** コンパイラが定数評価に<code>math/big</code>パッケージを使用 ** アセンブラが新しいネイティブGo実装になり、わずかな互換性変更あり ** リンカーに拡張されたリンクスタイル(共有ライブラリのビルドなど)のための<code>-buildmode</code>オプションを導入 ** <code>go tool vet</code>コマンドが構造体タグのより厳密な検証を実行 ** <code>go test</code>コマンドに新しい<code>-count</code>フラグ、<code>go generate</code>に<code>-run</code>オプションと新しい環境変数を追加 ** <code>go get</code>コマンドに新しい<code>-insecure</code>フラグを追加 ** 外部依存関係の「ベンダリング」に対する実験的なサポートが導入(<code>go</code>コマンドが有効化) * '''ポート''': ** Snow Leopardおよび<code>dragonfly/386</code>のサポートが終了 ** <code>darwin/arm</code>、<code>darwin/arm64</code>(AppleのiPhoneおよびiPad用)、<code>linux/arm64</code>、<code>ppc64</code>、<code>ppc64le</code>(IBM 64ビットPowerPC)を含む新しいポートがソースから利用可能 ** FreeBSD (8-STABLE以上) およびNaCl (SDKバージョンpepper-41) の特定の要件 ** Solarisポートで完全な<code>cgo</code>サポートと<code>net</code>および<code>crypto/x509</code>の改善 ; 互換性 主要なアーキテクチャ変更にもかかわらず、Go 1の互換性保証を維持。ほとんどのGoプログラムは以前と同様にコンパイルおよび実行される見込み。ただし、ゴルーチンスケジューリング順序に暗黙的に依存するプログラムや、複数のコアでの実行を想定していないプログラム(<code>GOMAXPROCS</code>のデフォルト値変更のため)は更新が必要になる場合がある。 ; その他の注目点 * 内部パッケージのサポートがすべてのリポジトリで提供 * <code>install</code>サブコマンドがソースディレクトリに<code>build</code>によって作成されたバイナリを削除 * 新しいビルドオプションとして<code>-asmflags</code>、<code>-buildmode</code>、<code>-pkgdir</code>、<code>-toolexec</code>が追加 * <code>-ccflags</code>オプションが削除 === Go 1.4 === Go 1.4が、2014年12月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.4 | title = Go 1.4 Release Notes - The Go Programming Language | date = 2014/12/10 | accessdate = 2025/05/20 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.4 | title = Go 1.4 is released - The Go Programming Language | date = 2014/12/10 | accessdate = 2025/05/20 }}</ref>。 Go 1.4は、Go 1.3から約半年後のリリースとなり、プロジェクトの歴史において「実装のクリーンアップ」と「将来のプラットフォームへの布石」となる重要なバージョンです。最も注目すべき変更点は以下です。 {{Main|[https://go.dev/doc/go1.4 Go 1.4 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.4 Go 1.4 is released! The Go Blog]}} ; 言語の変更点: :# '''for-rangeループの簡略化''':ループ変数を必要としない場合に、変数名を省略して <code>for range s { ... }</code> と記述できるようになりました。 :# '''メソッド呼び出しの厳格化''':ポインタではないレシーバを持つメソッドを、二重ポインタ(<code>**T</code>)から直接呼び出すことが禁止されました。 ; 新しいプラットフォームのサポート: :# '''Androidのサポート''':<code>GOOS=android</code>、<code>GOARCH=arm</code> が追加されました。これにより、Goで書かれたライブラリをAndroidアプリ(Java/Kotlin)から呼び出すための基盤が整いました。 :# '''ARM64の実験的サポート''':将来の64ビットARMプロセッサを見据え、<code>linux/arm64</code> のサポートが開始されました。 ; ツールの改善: :# '''go generateコマンドの導入''':ソースコード内のコメント(<code>//go:generate ...</code>)をスキャンしてコード生成ツールを実行する新しいサブコマンドが追加されました。これにより、<code>stringer</code> などのツールを用いたメタプログラミングが容易になりました。 :# '''ビルド速度の改善''':コンパイラの一部がCからGoへ書き換えられ始めた過渡期であり、ツールチェーン全体の整理が進められました。 ; ランタイムの改善: :# '''スタック管理の変更''':連続スタック(contiguous stacks)の導入により、以前の「セグメントスタック」で発生していた「ホットスプリット問題(スタックの拡張と縮小が頻発してパフォーマンスが低下する現象)」が解消されました。 :# '''ガベージコレクタの改良''':ガベージコレクションの並行処理化に向けた準備として、ランタイムの内部構造が大幅に再設計されました。 ; 標準ライブラリの改善: :# '''contextパッケージの萌芽''':この時期、<code>golang.org/x/net/context</code> パッケージが開発され、Google内部で広く使われ始めました(後にGo 1.7で標準ライブラリ入りします)。 :# '''OSインターフェースの拡充''':<code>os</code> パッケージや <code>net</code> パッケージにおいて、システムリソースへのアクセス効率が向上しました。 Go 1.4は、Go言語が誕生以来使用してきたC言語による実装から、Go自身でGoをコンパイルする「セルフホスティング」へと移行するための重要なステップとなりました。 === Go 1.3 === Go 1.3が、2014年6月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.3 | title = Go 1.3 Release Notes - The Go Programming Language | date = 2014/06/18 | accessdate = 2025/05/19 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.3 | title = Go 1.3 is released - The Go Programming Language | date = 2014/06/18 | accessdate = 2025/05/19 }}</ref>。 Go 1.3は、Go 1.2から約半年後のリリースとなり、言語仕様自体の変更を含まない一方で、「ランタイムの大幅なパフォーマンス向上」と「ツールチェーンの再設計・近代化」に深く焦点を当てた重要なバージョンです。最も注目すべき変更点は以下です。 {{Main|[https://go.dev/doc/go1.3 Go 1.3 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.3 Go 1.3 is released! The Go Blog]}} ; 言語の変更点: :# '''仕様変更なし''':Go 1互換性ガイドラインに基づき、言語仕様自体への変更や追加はありません。既存のソースコードはそのまま完全にコンパイル可能です。 ; 新しいプラットフォームのサポート: :# '''Solarisのサポート''':<code>GOOS=solaris</code>、<code>GOARCH=amd64</code> が追加され、SolarisおよびIllumosベースのシステムが公式にサポートされました。 :# '''Plan 9のサポート改善''':<code>GOOS=plan9</code> において、AMD64アーキテクチャ(<code>GOARCH=amd64</code>)のサポートが追加されました。 :# '''Native Client (NaCl) の拡張''':Googleの安全なコード実行環境であるNative Clientにおいて、従来のx86(32ビット/64ビット)に加えてARMアーキテクチャ(<code>GOARCH=arm</code>)がサポートされました。 ; ツールの改善: :# '''リンカーとコンパイラの再構成''':C言語で書かれていた従来のツールチェーン(<code>6g</code>、<code>6l</code> など)を、Go言語自身で書き換える(セルフホスティング)ための前段階として、リンカーの内部構造を分割・整理する基礎工作が行われました。 :# '''godocの静的解析機能''':<code>godoc</code> に高度な静的解析機能(型分析、コールグラフ、メソッドセットの表示など)が統合され、コードブラウジングが強力になりました。 :# '''go testの機能拡張''':<code>go test -cpu</code> フラグで複数のCPUカウントをカンマ区切りで指定できるようになり、異なる並行度でのテストが容易になりました。また、ベンチマーク中のメモリアロケーション統計(<code>-benchmem</code>)がデフォルトで強化されました。 ; ランタイムの改善: :# '''スタック管理の変更(スタックコピーの導入)''':従来の「セグメントスタック(分割スタック)」方式から、必要に応じて新しいメモリ領域を確保してスタック全体を丸ごとコピーする「スタックコピー(後に連続スタックへと繋がる基盤)」方式へ移行が始まりました。これにより、スタック境界で関数呼び出しが繰り返される際のオーバーヘッドが激減しました。 :# '''正確なガベージコレクション(Precise GC)の進展''':ガベージコレクタがさらに精密化され、スタック上のポインタと非ポインタ(整数など)を完全に区別できるようになりました。これにより、誤ってメモリが保持され続ける「メモリリーク(浮遊ポインタ問題)」が解消され、ヒープサイズが縮小しました。 ; 標準ライブラリの改善: :# '''sync.Poolの導入''':ガベージコレクションの負荷を軽減するため、割り当て済みのオブジェクトを再利用するための並行安全なキャッシュ機構 <code>sync.Pool</code> が追加されました。高性能なネットワークサーバーなどの実装で劇的な効果を発揮します。 :# '''パフォーマンスの最適化''':<code>crypto/x509</code>、<code>fmt</code>、<code>net</code>、<code>os</code>、<code>reflect</code> などの主要パッケージでリファクタリングが行われ、多くのアロケーションが削減されたことで、実行速度が全体的に大幅に向上しました。 Go 1.3は、目に見える新機能こそ控えめですが、ランタイムの足腰を徹底的に鍛え上げ、次期バージョン(Go 1.4)以降で本格化する「コンパイラの100% Go言語化(セルフホスティング)」および「完全並行GC」へと向かうための、極めて強固なバイパス(土台)を築いたリリースです。 === Go 1.2 === Go 1.2が、2013年12月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.2 | title = Go 1.2 Release Notes - The Go Programming Language | date = 2013/12/01 | accessdate = 2025/05/20 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.2 | title = Go 1.2 is released - The Go Programming Language | date = 2013/12/01 | accessdate = 2025/05/20 }}</ref>。 Go 1.2は、Go 1.1のリリースから約半年後に提供され、言語仕様への細かな利便性の向上、開発ツールの強力なアップグレード、そしてランタイムのさらなる安定化をもたらしたバージョンです。互換性を維持しつつ、日々の開発体験を向上させる実用的な変更が多く含まれています。最も注目すべき変更点は以下です。 {{Main|[https://go.dev/doc/go1.2 Go 1.2 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.2 Go 1.2 is released! The Go Blog]}} ; 言語の変更点: :# '''3引数スライス(スライス容量の制御)''':スライス式において、従来の <code>s[i:j]</code> に加え、3つ目の引数を指定する <code>s[i:j:k]</code> という構文(3-index slices)が導入されました。これにより、得られる部分スライスの容量(<code>cap</code>)を最大 <code>k</code> までに制限できるようになり、サブスライスへの追加操作(<code>append</code>)が意図せず元配列の背後にあるメモリを上書きしてしまうリスクを安全に排除できるようになりました。 ; 新しいプラットフォームのサポート: :# '''特定のアーキテクチャへの特記なし''':既存のOS(Linux、Mac OS X、FreeBSD、Windowsなど)およびアーキテクチャ(amd64、386、arm)への最適化とバグ修正が中心であり、新しいOSターゲットの追加はこのバージョンでは行われませんでした。 ; ツールの改善: :# '''テストカバレッジツールの導入(go test -cover)''':<code>go test</code> コマンドに <code>-cover</code> フラグが追加され、コードのテストカバレッジを測定できるようになりました。これに伴い、新ツール <code>go tool cover</code> が提供され、どのコードパスが実行され、どのパスが実行されていないかをブラウザ上で色分けして視覚的に確認できるHTMLレポートの生成が可能になりました。 :# '''go testの並行実行制御''':<code>go test</code> に <code>-cpu</code> フラグの動作が調整されたほか、複数パッケージのテストを並行して実行するための <code>-p</code> フラグの挙動が洗練されました。 ; ランタイムの改善: :# '''ゴルーチンのプリエンプション(協調的スケジューリングの強化)''':ランタイムのスケジューラが拡張され、関数呼び出しのタイミングで自動的にプリエンプション(実行権の譲渡)チェックが挟まれるようになりました。これにより、タイトなループを実行し続ける特定のゴルーチンが1つのスレッドを占有し続け、他のゴルーチンやガベージコレクション(GC)の呼び出しを停止させてしまう問題(飢餓状態)が大幅に緩和されました。 :# '''スレッド制限の導入''':デフォルトで1つのプログラムが作成できるオペレーティングシステム(OS)のスレッド数が最大10,000個に制限されました(<code>runtime/debug.SetMaxThreads</code> で変更可能)。これは、無限にスレッドが生成されてシステム全体のメモリを枯渇させる暴走バグを防ぐための安全策です。 ; 標準ライブラリの改善: :# '''imageパッケージの刷新''':<code>image</code> および <code>image/color</code> パッケージにいくつかの新しいインターフェースと、パフォーマンス向上のためのピクセル精度の最適化が施されました。 :# '''多くのパッケージでの最適化''':<code>compress/bzip2</code>、<code>encoding/json</code>、<code>net</code> などの主要パッケージで、不要なアロケーションの削減やアルゴリズムのブラッシュアップが行われ、実行効率が向上しました。 Go 1.2は、仕様を大きく変えることなく、3引数スライスによる「堅牢性の向上」や、カバレッジツールによる「品質管理の容易化」、そしてスケジューラ改善による「並行処理の安定化」を確実にもたらしました。地味ながらも、プロダクション環境での信頼性を引き上げる確実な一歩となったリリースです。 === Go 1.1 === Go 1.1が、2013年5月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.1 | title = Go 1.1 Release Notes - The Go Programming Language | date = 2013/05/13 | accessdate = 2025/05/19 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.1 | title = Go 1.1 is released - The Go Programming Language | date = 2013/05/13 | accessdate = 2025/05/19 }}</ref>。 Go 1.1は、2012年3月のGo 1.0リリース以来、初めてのメジャーアップデートとなります。Go 1の「互換性約束(Compatibility Guarantee)」を厳格に守りつつ、コミュニティからのフィードバックを反映して、パフォーマンスの大幅な向上、言語仕様の洗練、そして開発ツールの強化が図られました。最も注目すべき変更点は以下です。 {{Main|[https://go.dev/doc/go1.1 Go 1.1 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.1 Go 1.1 is released! The Go Blog]}} ; 言語の変更点: :# '''メソッド値(Method Values)の導入''':オブジェクトのメソッドを、レシーバ(そのオブジェクト自身)を束縛した状態の関数値として直接取り出せるようになりました。たとえば、f := obj.Method と記述して、後から f() として呼び出すことが可能です。これにより、イベントハンドラやコールバックの記述が非常に簡潔になりました。 :# '''戻り値の要件の厳格化(および合理化)''':値を返す関数において、制御フローの末尾(terminate statement)に return がない場合のコンパイラチェックが厳密になりました。一方で、panic や無限ループで終わるパスなど、明らかに終端に到達しないコードベースでは return を省略できるよう仕様が整理されました。 :# '''整数除算のゼロ除算のランタイムエラー化''':定数ではない変数によるゼロ除算(x / 0)が、コンパイル時だけでなく実行時にも一貫してランタイムパニックを発生させるよう挙動が統一されました。 ; 新しいプラットフォームのサポート: :# '''ARMアーキテクチャのサポート強化''':GOARCH=arm において、浮動小数点演算のハードウェアアクセラレーション(GOARM=7 など)の対応が進み、Raspberry Piなどの組み込みデバイスでの実行速度が飛躍的に向上しました。 :# '''プラットフォームの実験的追加''':freebsd/arm や netbsd/386 などの新しいOS・アーキテクチャの組み合わせへの移植が開始されました。 ; ツールの改善: :# '''goコマンドの機能拡充''':go get や go test などのサブコマンドが大幅に強化されました。特に、他のリポジトリの依存関係の処理がスムーズになり、並行してテストを実行する仕組みが洗練されました。 :# '''レースディテクタ(Race Detector)の搭載''':データ競合(Data Race)を検出するための強力なツール -race フラグが go test、go run、go build に導入されました(ThreadSanitizerをバックエンドに使用)。並行処理プログラムにおいて、複数のゴルーチンが同期なしに同じメモリにアクセスする潜在的バグを自動で暴き出すことができます。 :# '''vetツールの標準化''':コードの静的解析を行い、ミス(Printf のフォーマット指定子の間違いなど)を検出する go vet コマンドが正式にツールチェーンに統合されました。 ; ランタイムの改善: :# '''パフォーマンスの劇的な向上(GCとスケジューラ)''':メモリ割り当て(アロケータ)の効率化、およびガベージコレクタ(GC)のマップ処理の最適化により、多くのプログラムで数10%〜2倍以上の高速化を達成しました。 :# '''新スケジューラ(G-M-Pモデル)への刷新''':ランタイムのゴルーチンスケジューラが全面的に書き換えられました。これまでの単一のグローバルロックによるボトルネックが解消され、複数CPUコア(GOMAXPROCS)を有効にしたマルチスレッド環境における並行処理のスケール性能が爆発的に向上しました。 ; 標準ライブラリの改善: :# '''netパッケージの刷新''':ネットワーク接続のタイムアウト処理や非同期I/Oのバックエンドが刷新され、より高負荷な通信を安定して捌けるようになりました。 :# '''新規パッケージの追加''':文字列やバイト列の効率的なプールを提供する bytes.Buffer の見直しや、データ構造を扱う各種内部パッケージの最適化が行われました。 Go 1.1は、最初のリリースで確立された「安定性」という土台の上に、プロダクション環境で戦うための「圧倒的な速度」と「バグを撃退する強力なツール(レースディテクタ)」を実装した、Go言語の進化において最もエキサイティングなマイルストーンの1つです。 === Go 1.0 === Go 1.0が、2012年3月にリリースされました<ref>{{cite book | url = https://go.dev/doc/go1.0 | title = Go 1.3 Release Notes - The Go Programming Language | date = 2012/03/28 | accessdate = 2025/05/19 }}</ref><ref>{{cite book | url = https://go.dev/blog/go1.0 | title = Go 1.0 is released - The Go Programming Language | date = 2012/03/28 | accessdate = 2025/05/19 }}</ref>。 Go 1.0は、2009年のオープンソース化以来、数年間にわたる活発な開発とコミュニティからのフィードバックを経て到達した、Goプロジェクト史上初の「安定版(Major Stable Release)」です。最大の特徴は、企業や開発者がプロダクション環境で安心して採用できるよう、将来にわたるソースコードの互換性を保証する「Go 1 互換性約束(Compatibility Guarantee)」が確立された点にあります。最も注目すべき変更点と仕様の確定は以下です。{{Main|[https://go.dev/doc/go1.0 Go 1.0 Release Notes - The Go Programming Language]|[https://go.dev/blog/go1.0 Go 1.0 is released! The Go Blog]}} ; 言語の確定と変更点: :# '''互換性の保証(Go 1の約束)''':Go 1.0で記述された標準仕様に準拠するソースコードは、将来のGo 1.x系バージョンにおいても修正なしでコンパイルでき、同じ動作をすることが保証されました。これにより、言語仕様の頻繁な変更に追われるリスクが解消されました。 :# '''新しい型システムと複素数''':complex64 および complex128 が組み込み型として完全に統合されました。また、エラー表現のための標準的なインターフェースとして error 型が導入され、従来の os.Error から置き換えられました。 :# '''マップとスライスのリテラル形式の洗練''':複合リテラル(Composite Literals)の記述において、要素の型を明示的に反復しなくても推論できるケースが増え、コードがより簡潔に記述できるようになりました。 ; プラットフォームのサポート: :# '''OSとアーキテクチャの公式サポート''':Linux(386/amd64/arm)、Mac OS X(Darwin 386/amd64)、FreeBSD(386/amd64)、およびWindows(386/amd64)が、第1級の市民として公式サポート対象となりました。 ; ツールの標準化: :# '''goコマンド(go tool)の誕生''':従来の 6g、6l、make、gotest、goinstall といったバラバラだったコンパイル・ビルド・パッケージ管理・テスト用のツール群が、すべて単一の go コマンド(go build, go install, go test, go get など)に統合されました。これにより、Makefileなしで依存関係を自動解決してビルドする近代的な開発環境が完成しました。 :# '''コードフォーマッタ(gofmt)の確定''':コードの自動整形ツール gofmt の挙動が公式スタイルとして固定され、コミュニティ全体で一貫した読みやすいコードベースを維持する文化が決定づけられました。 :# '''移行ツール(go fix)の提供''':週次ビルドや古いプレリリース(r60など)のコードを、Go 1.0の標準仕様へ自動的に書き換えるための go fix ツールが提供され、スムーズな移行が促されました。 ; ランタイムとメモリの改善: :# '''ガベージコレクタとスケジューラの基本設計''':並行処理を安全に行うためのゴルーチン(Goroutines)のスケジューリング機構、およびヒープメモリの自動管理を行うガベージコレクタ(GC)が、安定稼働を最優先とした第1世代の設計として統合されました。 ; 標準ライブラリの再編成: :# '''ディレクトリ構造の大規模な整理''':初期の雑多なパッケージ配置が見直され、現在の net/http、encoding/json、crypto といった論理的でクリーンな階層構造へと徹底的に再構成されました。 :# '''一貫したAPIデザイン''':すべてのパッケージにおいて、関数の命名規則(大文字開始によるエクスポート)や、エラーを関数の最後の戻り値((result, error))として返すシグネチャの統一が完了しました。 Go 1.0は、一言語のリリースにとどまらず、「言語仕様」「標準ツールチェーン」「標準ライブラリ」が三位一体となり、後方互換性を強く宣言したことで、Go言語が実験的なプロジェクトから、世界規模のクラウドインフラやバックエンドシステムを支える実用言語へと本格的に羽ばたくための不朽の原点となりました。 == Go1.0前史 == Goが2012年3月にメジャー安定版である「Go 1.0」として結実するまでには、約4年半にわたる「知的な実験」と「過酷な試行錯誤」の歴史(前史)が存在します。 UNIXやC言語、Plan 9を生み出した伝説的なエンジニアたちが、Googleという巨大なインフラの中で直面した課題を解決するために始めたプロジェクト――それがGoの始まりでした。 === 1. プロジェクトの誕生と動機(2007年) === Goプロジェクトは、'''2007年9月21日'''、Googleのエンジニアであった'''ロバート・グリースマー(Robert Griesemer)'''、'''ロブ・パイク(Rob Pike)'''、'''ケン・トンプソン(Ken Thompson)'''の3人によるホワイトボードの前での議論から始まりました。 彼らが共有していたのは、当時のソフトウェア開発環境、特にGoogle内部で主流だったC++による大規模システム開発に対する強い「不満」と「危機感」でした。 * '''ハードウェアの進化との乖離''': コンピュータはマルチコア化し、大規模なクラスタで動作する時代になっていたにもかかわらず、C++やJavaなどの言語はシングルコア時代の設計を引きずっており、並行処理(Concurrency)の記述が非常に複雑でエラーを誘発しやすかったこと。 * '''ビルド時間の爆発''': Googleの超巨大なコードベースをC++でビルドすると、ヘッダーファイルの依存関係の複雑さから、コンパイルに数時間から数日を要する「ビルド待ち時間」が発生し、開発効率を著しく低下させていたこと。 * '''言語の肥大化と認知負荷''': 言語に機能(パラダイム)が追加され続けることで複雑化し、他人が書いたコードを理解するコストが跳ね上がっていたこと。 彼らは「'''システムプログラミング言語が持つべき『効率性・静的型付けの安全性』と、動的言語(PythonやJavaScriptなど)が持つ『開発の手軽さ・俊敏さ』を高い次元で融合させた、21世紀のインフラのための新しい言語'''」を求めたのです。 === 2. 黎明期の設計と実装(2008年) === 2008年初頭、言語のプロトタイプ作成が本格化します。この時期に、現在のGoの根幹をなす特徴的な機能が次々と形作られていきました。 * '''コンパイラの着手''': ケン・トンプソンが、自身のUNIX時代の知見を活かしてC言語で独自のコンパイラ群(後にx86向けに <code>6g</code>、<code>6l</code> などと呼ばれるツールチェーン)を書き始めました。 * '''C言語ライクからの脱却''': 当初はC言語の純粋な拡張として構文を検討していましたが、宣言の記述順序(型を後ろに書く <code>x int</code> 形式)の変更や、セミコロンの自動挿入、暗黙の型変換の禁止など、クリーンで厳格な構文へと舵を切りました。 * '''インターフェースと並行処理の融合''': ロバート・グリースマーによる構造的型付け(Structural Typing)に基づく「明示的な宣言を必要としないインターフェース」の設計、そしてロブ・パイクによるPlan 9(NewsqueakやAlef)の知見をベースにした「チャネル(Channels)とゴルーチン(Goroutines)による通信」のアイデアが組み込まれました。 この年、コンパイラ開発の専門家であるイアン・ランス・テイラー(Ian Lance Taylor)'''がプロジェクトに参加し、GCCのフロントエンドとして <code>gccgo</code> の開発を開始。これにより、Goの設計が特定のコンパイラ実装に依存しない汎用的なものであることが証明されました。また、後にGoの主要開発者となる'''ラサ・コックス(Russ Cox)も加わり、ランタイムや標準ライブラリの整備が急速に進みます。 === 3. オープンソース化(2009年11月) === '''2009年11月10日'''、Goは世界に向けてオープンソースプロジェクトとして電撃的に発表されました。 当初は「Googleがまた新しい言語を作った」という好奇の目で見られましたが、その極端なシンプルさとコンパイルの圧倒的な速さは、初期の目の肥えたハッカーたちを魅了しました。 しかし、オープンソース化直後のGo(いわゆる「プレGo 1.0」時代)は、現在のモダンなGoからは想像もつかないほど激動の、そして「毎週のようにコードが壊れる」過酷な開発環境でした。 === 4. ウィークリービルド(Weekly)とリリース(R)の時代(2009年 - 2011年) === Go 1.0がリリースされるまでの約2年間、公式の安定版というものは存在せず、開発は <code>weekly</code>(週次ビルド)および <code>release</code>(r56, r60 など)というバージョン名で刻まれていました。 この時代の主な特徴と混乱は以下の通りです。 ==== ① 頻繁な言語仕様の変更(破壊的変更) ==== 言語のコア機能や組み込み関数が、毎週のように追加・削除・変更されました。 * '''<code>closed</code> から <code>panic</code> へ''': 当初、チャネルが閉じられたかどうかを検知する組み込み関数 <code>closed()</code> がありましたが、後に削除され、現在の <code>v, ok := <-ch</code> 形式へ統合されました。 * '''<code>map</code> のアクセス構文''': マップにキーが存在するかを調べる構文も二転三転し、一時は専用のビルトイン関数が検討されたこともありました。 * '''新しいキーワードの追加と廃止''': メモリ割り当ての <code>new</code> と <code>make</code> の役割分担の整理や、初期にあった特殊な制御構文のスクラップ・アンド・ビルドが繰り返されました。 ==== ② ばらばらのツールチェーン ==== 当時はまだ <code>go</code> コマンドがありませんでした。開発者は以下のような手順を手動(またはMakefile)で行っていました。 * x86-64環境であれば、コンパイルには <code>6g</code>、リンクには <code>6l</code> コマンドを直接叩く。 * 32ビットx86であれば <code>8g</code> / <code>8l</code>、ARMであれば <code>5g</code> / <code>5l</code> を使う。 * パッケージのインストールには <code>goinstall</code>、テストには <code>gotest</code> という別個のスクラップスクリプトが使われており、プロジェクトのビルド管理は非常に煩雑でした。 ==== ③ 標準ライブラリの未成熟と「os.Error」 ==== 現在おなじみの <code>error</code> インターフェース(組み込み型)は存在せず、<code>os</code> パッケージの中に <code>os.Error</code> という型として定義されていました。このため、文字通りあらゆるパッケージが <code>os</code> パッケージに依存するという、不健全な依存構造(循環参照のリスク)を抱えていました。 === 5. 「Go 1」へのカウントダウンと大掃除(2011年後半) === 世界中で徐々にGoが本番環境(初期のCloudflareやSoundCloudなど)で使われ始めるにつれ、「毎週のように仕様が変わり、アップデートするたびにコードが動かなくなる言語は、企業のシステムでは怖くて使えない」という悲鳴が上がりました。 これを受けたコア開発チームは、言語を広く普及させるためには'''「一切の破壊的変更を止め、後方互換性を永久に保証するマイルストーン」'''が必要であると決断します。これが'''「Go 1 共同宣言(Go 1 Release Planning)」'''です。 2011年後半から2012年3月にかけて、チームは「最後の大掃除」に着手しました。 * '''<code>os.Error</code> から 組み込みの <code>error</code> への格上げ''': 依存関係をクリーンにするため、言語自体の組み込み型として <code>error</code> インターフェースを再定義しました。 * '''パッケージの統廃合''': 雑多に広がっていた標準ライブラリ(<code>container/vector</code> の廃止、<code>os/signal</code> への整理など)のレイアウトを徹底的にリファクタリングしました。 * '''<code>go</code> コマンドの誕生''': ラサ・コックスらにより、バラバラだったコンパイル環境を1つに統合する <code>go</code> コマンドが設計され、Makefileが不要なモダンなビルドエコシステムが完成しました。 * '''<code>go fix</code> の提供''': これまで毎週の破壊的変更に苦しんできた世界中の開発者のために、古いプレリリースのソースコードを自動的に「Go 1.0 仕様」へと一括置換・修正してくれる救済ツール(<code>go fix</code>)が開発されました。 === そして「原点」へ === 2012年3月28日、すべての仕様が凍結され、未来永劫の互換性を誓った'''Go 1.0'''が正式にリリースされました。 カオスに満ちた4年半の「前史」で流された無数のリファクタリングの血と、UNIXの巨匠たちがこだわった「引き算の美学(不要な機能を入れない)」があったからこそ、Goは今日に至るまで「10年前のコードが今でもそのまま動く」という、圧倒的な安定性と信頼性を手に入れることができたのです。 == 脚註 == <references /> == 参考文献 == *{{cite book | url = https://go.dev/ref/spec | title = The Go Programming Language Specification | date = JJune 13, 2024 | publisher = The Go website }} == 下位階層のページ == *[[Go/&^]] *[[Go/0]] *[[Go/0.0]] *[[Go/:=]] *[[Go/=]] *[[Go/Cross-package inlining]] *[[Go/Cのif-elseのエラーパターン解消に関するGoの選択]] *[[Go/EBNF]] *[[Go/Goのコードでgoのバージョンを調べる方法]] *[[Go/Goのプログラムがどんなアセンブリにコンパイルされるか?]] *[[Go/Goコンパイラの変遷]] *[[Go/HTTP]] *[[Go/Hypot]] *[[Go/Keywords]] *[[Go/Mid-stack inlining]] *[[Go/Predeclared identifiers]] *[[Go/Size class]] *[[Go/Standard library]] *[[Go/Standard library/errors]] *[[Go/Standard library/fmt]] *[[Go/Standard library/os]] *[[Go/Zero value]] *[[Go/analysis]] *[[Go/any]] *[[Go/append]] *[[Go/bool]] *[[Go/break]] *[[Go/byte]] *[[Go/cap]] *[[Go/case]] *[[Go/cgoでGoのコードからCの関数を利用する]] *[[Go/chan]] *[[Go/clear]] *[[Go/close]] *[[Go/comparable]] *[[Go/complex]] *[[Go/complex128]] *[[Go/complex64]] *[[Go/const]] *[[Go/continue]] *[[Go/copy]] *[[Go/core type]] *[[Go/default]] *[[Go/defer]] *[[Go/defer,panicとrecover]] *[[Go/delete]] *[[Go/else]] *[[Go/else if]] *[[Go/error]] *[[Go/fallthrough]] *[[Go/false]] *[[Go/flag]] *[[Go/float32]] *[[Go/float64]] *[[Go/for]] *[[Go/func]] *[[Go/go]] *[[Go/go.mod]] *[[Go/go.work]] *[[Go/gofmtコマンド]] *[[Go/goto]] *[[Go/goコマンド]] *[[Go/goコマンド/bug]] *[[Go/goコマンド/build]] *[[Go/goコマンド/clean]] *[[Go/goコマンド/doc]] *[[Go/goコマンド/env]] *[[Go/goコマンド/fix]] *[[Go/goコマンド/fix/any]] *[[Go/goコマンド/fix/bloop]] *[[Go/goコマンド/fix/buildtag]] *[[Go/goコマンド/fix/errorsastype]] *[[Go/goコマンド/fix/fmtappendf]] *[[Go/goコマンド/fix/forvar]] *[[Go/goコマンド/fix/hostport]] *[[Go/goコマンド/fix/inline]] *[[Go/goコマンド/fix/mapsloop]] *[[Go/goコマンド/fix/minmax]] *[[Go/goコマンド/fix/newexpr]] *[[Go/goコマンド/fix/omitzero]] *[[Go/goコマンド/fix/plusbuild]] *[[Go/goコマンド/fix/rangeint]] *[[Go/goコマンド/fix/reflecttypefor]] *[[Go/goコマンド/fix/slicescontains]] *[[Go/goコマンド/fix/slicessort]] *[[Go/goコマンド/fix/stditerators]] *[[Go/goコマンド/fix/stringsbuilder]] *[[Go/goコマンド/fix/stringscut]] *[[Go/goコマンド/fix/stringscutprefix]] *[[Go/goコマンド/fix/stringsseq]] *[[Go/goコマンド/fix/testingcontext]] *[[Go/goコマンド/fix/waitgroup]] *[[Go/goコマンド/fmt]] *[[Go/goコマンド/generate]] *[[Go/goコマンド/get]] *[[Go/goコマンド/help]] *[[Go/goコマンド/install]] *[[Go/goコマンド/list]] *[[Go/goコマンド/mod]] *[[Go/goコマンド/run]] *[[Go/goコマンド/telemetry]] *[[Go/goコマンド/test]] *[[Go/goコマンド/tool]] *[[Go/goコマンド/tool/addr2line]] *[[Go/goコマンド/tool/asm]] *[[Go/goコマンド/tool/cgo]] *[[Go/goコマンド/tool/compile]] *[[Go/goコマンド/tool/covdata]] *[[Go/goコマンド/tool/covdata/debugdump]] *[[Go/goコマンド/tool/covdata/func]] *[[Go/goコマンド/tool/covdata/intersect]] *[[Go/goコマンド/tool/covdata/merge]] *[[Go/goコマンド/tool/covdata/percent]] *[[Go/goコマンド/tool/covdata/pkglist]] *[[Go/goコマンド/tool/covdata/subtract]] *[[Go/goコマンド/tool/covdata/textfmt]] *[[Go/goコマンド/tool/cover]] *[[Go/goコマンド/tool/dist]] *[[Go/goコマンド/tool/link]] *[[Go/goコマンド/tool/nm]] *[[Go/goコマンド/tool/objdump]] *[[Go/goコマンド/tool/pack]] *[[Go/goコマンド/tool/pprof]] *[[Go/goコマンド/tool/preprofile]] *[[Go/goコマンド/tool/test2json]] *[[Go/goコマンド/tool/trace]] *[[Go/goコマンド/version]] *[[Go/goコマンド/vet]] *[[Go/goコマンド/vet/appends]] *[[Go/goコマンド/vet/asmdecl]] *[[Go/goコマンド/vet/assign]] *[[Go/goコマンド/vet/atomic]] *[[Go/goコマンド/vet/bools]] *[[Go/goコマンド/vet/buildtag]] *[[Go/goコマンド/vet/cgocall]] *[[Go/goコマンド/vet/composites]] *[[Go/goコマンド/vet/copylocks]] *[[Go/goコマンド/vet/defers]] *[[Go/goコマンド/vet/directive *[[Go/goコマンド/vet/errorsas]] *[[Go/goコマンド/vet/framepointer]] *[[Go/goコマンド/vet/hostport]] *[[Go/goコマンド/vet/httpresponse]] *[[Go/goコマンド/vet/ifaceassert]] *[[Go/goコマンド/vet/loopclosure]] *[[Go/goコマンド/vet/lostcancel]] *[[Go/goコマンド/vet/nilfunc]] *[[Go/goコマンド/vet/printf]] *[[Go/goコマンド/vet/shift]] *[[Go/goコマンド/vet/sigchanyzer]] *[[Go/goコマンド/vet/slog]] *[[Go/goコマンド/vet/stdmethods]] *[[Go/goコマンド/vet/stdversion]] *[[Go/goコマンド/vet/stringintconv]] *[[Go/goコマンド/vet/structtag]] *[[Go/goコマンド/vet/testinggoroutine]] *[[Go/goコマンド/vet/tests]] *[[Go/goコマンド/vet/timeformat]] *[[Go/goコマンド/vet/unmarshal]] *[[Go/goコマンド/vet/unreachable]] *[[Go/goコマンド/vet/unsafeptr]] *[[Go/goコマンド/vet/unusedresult]] *[[Go/goコマンド/vet/waitgroup]] *[[Go/goコマンド/work]] *[[Go/goコマンド/work/init]] *[[Go/if]] *[[Go/imag]] *[[Go/import]] *[[Go/int]] *[[Go/int16]] *[[Go/int32]] *[[Go/int64]] *[[Go/int8]] *[[Go/interface]] *[[Go/iota]] *[[Go/iter.Seq版エラトステネスの篩]] *[[Go/len]] *[[Go/make]] *[[Go/map]] *[[Go/max]] *[[Go/min]] *[[Go/named type]] *[[Go/new]] *[[Go/nil]] *[[Go/os/Args]] *[[Go/package]] *[[Go/panic]] *[[Go/print]] *[[Go/println]] *[[Go/range]] *[[Go/real]] *[[Go/recover]] *[[Go/return]] *[[Go/rune]] *[[Go/select]] *[[Go/string]] *[[Go/struct]] *[[Go/switch]] *[[Go/true]] *[[Go/type]] *[[Go/type literal]] *[[Go/uint]] *[[Go/uint16]] *[[Go/uint32]] *[[Go/uint64]] *[[Go/uint8]] *[[Go/uintptr]] *[[Go/underlying type]] *[[Go/var]] *[[Go/イテレータ]] *[[Go/エラー]] *[[Go/キーワードと宣言済み識別子]] *[[Go/クロスコンパイル]] *[[Go/コードギャラリー]] *[[Go/ジェネリクス]] *[[Go/ソースコードの表現方法]] *[[Go/パッケージ]] *[[Go/ファイル入出力]] *[[Go/ブロック・宣言とスコープ]] *[[Go/プログラムの初期化と実行]] *[[Go/ポインタ]] *[[Go/マップ]] *[[Go/メソッド]] *[[Go/メソッドとインターフェース]] *[[Go/メソッドチェイン]] *[[Go/メモリアロケータ]] *[[Go/ユーザー定義型の配列とスライス]] *[[Go/並行処理]] *[[Go/主要な標準インターフェース]] *[[Go/修飾子不要なインライン関数展開]] *[[Go/再帰的関数呼出し]] *[[Go/型]] *[[Go/型と値の特性]] *[[Go/変数]] *[[Go/字句的要素]] *[[Go/定数と変数]] *[[Go/実行の方法]] *[[Go/宣言済型]] *[[Go/宣言済定数]] *[[Go/宣言済識別子]] *[[Go/宣言済関数]] *[[Go/式]] *[[Go/改廃された技術]] *[[Go/数リテラルの精度と型]] *[[Go/文]] *[[Go/文法の概要]] *[[Go/条件分岐と繰り返し]] *[[Go/構造体]] *[[Go/標準ライブラリー]] *[[Go/環境構築]] *[[Go/算術演算と数学関数]] *[[Go/識別子のスコープ]] *[[Go/配列とスライス]] *[[Go/配列とスライスとエスケープ解析]] *[[Go/関数]] == 外部リンク == {{Wikipedia|Go (プログラミング言語)|Go}} {{Wikiversity|Topic:Go|Go}} * [https://go.dev/ The Go Programming Language] - 公式サイト * [https://go.dev/play/ The Go Playground] * [https://golang.design/gossa The Go SSA Playground] {{DEFAULTSORT:GO}} [[Category:Go|*]] [[Category:プログラミング言語]] {{NDC|007.64}} 2dfhm6t3wuswuvcg21k846a7iz7wapb ECMAScript 0 30437 301302 267851 2026-07-08T09:23:26Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301302 wikitext text/x-wiki == ECMAScriptとは何か == ECMAScriptは、プログラミング言語[[JavaScript]]、[[JavaScript/JScript|JScript]]、[[ActionScript]]などの基盤となる標準規格であり、ECMA-262としても知られています。ECMAScriptは、[[スクリプト言語]]の仕様を定義し、特にWeb開発において不可欠な存在となっています。JavaScriptが主に使用される場面として、ブラウザ内でのインタラクティブなコンテンツや動的なWebアプリケーションの開発があります。 ECMAScriptの仕様は、プラットフォームやブラウザに依存しない一貫性を提供することを目的としています。これにより、異なる環境における動作の差異を減らし、開発者が予測しやすいコードを書くことが可能になります。具体的には、ECMAScriptはプログラムの実行環境、言語の構文、データ型、演算子、組み込みオブジェクトなどを標準化しています。 === ECMAScriptの歴史と進化 === ECMAScriptは、1996年に最初に策定された標準仕様であり、最初のECMAScript仕様は1997年にECMA-262として公開されました。この規格は、JavaScriptに標準を提供し、スクリプト言語の開発における一貫性を確保しました。それ以来、ECMAScriptの仕様は進化を続け、特にJavaScriptの成長と密接に関わっています。 * '''ECMAScript 3 (ES3)''': 1999年に発行されたES3は、JavaScriptの機能を大きく強化しました。主な変更点として、正規表現や例外処理(<code>try</code>/<code>catch</code>)、新しいデータ型(<code>Date</code>オブジェクト)などが追加され、広く普及しました。 * '''ECMAScript 5 (ES5)''': 2009年に発行されたES5は、さらに多くの改善が加えられました。<code>strict mode</code>(厳格モード)が導入され、セキュリティやパフォーマンスを強化するためにコードの書き方が規制されました。また、<code>Array.prototype</code>や<code>Object.create</code>などのメソッドが追加され、配列操作やオブジェクト管理の効率が向上しました。 * '''ECMAScript 6 (ES6)''': 2015年に登場したES6(別名ECMAScript 2015)は、JavaScriptに革命をもたらしました。これにより、クラス構文、モジュール、アロー関数、<code>let</code>/<code>const</code>といった新しい変数宣言方法、テンプレートリテラル、非同期処理の改善(Promise、async/await)などが導入されました。これらの機能は、より簡潔でモダンなコードの記述を可能にしました。 * '''ECMAScript 7以降(ES7以降)''': ES6以降、ECMAScriptは毎年1回新しい仕様を発行するサイクルを取り入れ、ES7(2016年)、ES8(2017年)といったバージョンが登場しました。これにより、言語仕様の安定性と新機能の迅速な導入が進みました。例えば、ES7では<code>Array.prototype.includes</code>、ES8では<code>async</code>/<code>await</code>が追加されました。 ECMAScriptの進化は、Webブラウザで動作するJavaScriptをはじめ、サーバーサイドやアプリケーション開発における言語としてのJavaScriptの役割を強化し、現代のプログラミングにおける重要な基盤を築いています。 === ECMAScriptの役割と重要性 === ECMAScriptは、単なるJavaScriptの標準ではなく、インターネット上で動作するアプリケーションの基盤を支えています。以下の点から、ECMAScriptの重要性が明確に分かります。 * '''クロスプラットフォーム開発''': ECMAScriptによる標準化により、JavaScriptコードは異なるブラウザ間や異なるプラットフォーム間でも同一の動作をすることが保証されます。これにより、開発者はWebアプリケーションを幅広い環境で動作させることができます。 * '''モダンなWebアプリケーション''': 現代のWebアプリケーションは、ユーザーとのインタラクションをリアルタイムで処理する必要があります。ECMAScriptの進化により、非同期処理やイベント駆動型プログラミングが可能になり、スムーズなユーザー体験が提供できるようになりました。 * '''サーバーサイドのJavaScript''': ECMAScriptは、サーバーサイドのJavaScript(例えば、Node.js)でも使用されており、バックエンドのアプリケーション開発にも適用されます。これにより、フロントエンドとバックエンドの両方をJavaScriptで開発することができ、開発者の生産性が向上しました。 * '''開発ツールとライブラリ''': ECMAScriptの進化は、React、Angular、Vue.jsなどのモダンなJavaScriptライブラリやフレームワークの開発にも寄与しています。これらのツールは、効率的でスケーラブルなWebアプリケーションの開発をサポートします。 === ECMAScriptの仕様書と進化のガイドライン === ECMAScriptは、ECMA国際規格(ECMA-262)によって詳細に定義されています。この仕様書は、ECMAScriptの動作や構文を厳密に記述しており、ブラウザやエンジンの実装において統一的な基準を提供します。新しいバージョンが登場するたびに、ECMAScriptの仕様は進化を続け、次世代のWeb技術に必要な機能を導入しています。 ECMAScriptの仕様書は、技術的に非常に詳細であり、JavaScriptエンジンの開発者やライブラリ作成者にとって欠かせない参考資料です。これにより、異なる環境で動作するJavaScriptコードが同じ動作をすることが保証されます。 === まとめ === ECMAScriptは、JavaScriptやその他のスクリプト言語の進化において重要な役割を果たしてきました。初期のシンプルなスクリプト言語から、現在ではモダンなWebアプリケーションやサーバーサイド開発に不可欠な言語に成長しました。ECMAScriptの理解は、Web開発者としての能力を高め、より効果的にプログラムを書くための強力なツールとなります。 本書では、ECMAScriptの詳細な仕様、歴史、最新機能について深く掘り下げ、実際のコーディングに役立つ情報を提供します。これにより、ECMAScriptを完全に理解し、最適な方法で活用できるようになります。 == 第1章: ECMAScriptの基本構文 == ECMAScriptは、プログラミング言語として広く使用されており、その構文や基本的な概念を理解することは、実際の開発において非常に重要です。この章では、ECMAScriptの基本的な構文と、プログラミングを始めるために必要な基本的な構成要素を紹介します。 === 1.1 変数と定数 === ECMAScriptでは、変数を宣言するために<code>var</code>、<code>let</code>、<code>const</code>の3つのキーワードを使用します。これらはそれぞれ異なるスコープや再代入の可否に関して異なる挙動を持っています。 * '''<code>var</code>''': 変数を宣言するための古い方法です。<code>var</code>で宣言された変数は関数スコープを持ち、再代入が可能です。 * '''<code>let</code>''': <code>let</code>はブロックスコープを持つ変数を宣言するための方法で、再代入が可能です。 * '''<code>const</code>''': <code>const</code>は定数を宣言するための方法で、宣言時に値が設定され、その後の再代入が禁止されます。 例えば、次のコードでは変数の宣言方法とその使用例を示しています。 :<syntaxhighlight lang=js copy> var x = 10; // 関数スコープの変数 let y = 20; // ブロックスコープの変数 const z = 30; // 定数 x = 15; // 再代入可能 y = 25; // 再代入可能 // z = 35; // エラー: 定数は再代入できません</syntaxhighlight> === 1.2 データ型 === ECMAScriptでは、いくつかの基本的なデータ型が提供されています。主なデータ型には、'''プリミティブ型'''と'''オブジェクト型'''があります。 * '''プリミティブ型''': ** '''<code>undefined</code>''': 値が未定義の状態を示します。 ** '''<code>null</code>''': 値が存在しないことを示します。 ** '''<code>boolean</code>''': <code>true</code>または<code>false</code>を表す論理型。 ** '''<code>number</code>''': 数値を表す型。整数と浮動小数点数を扱います。 ** '''<code>string</code>''': 文字列を表す型。 ** '''<code>symbol</code>''': ES6で導入された新しいプリミティブ型で、一意の識別子を作成します。 * '''オブジェクト型''': ** '''オブジェクト''': プロパティ(名前と値のペア)を持つデータ構造です。 ** '''配列''': 特別な種類のオブジェクトで、インデックスを使用してアクセスされる順序付きのデータのリストです。 ** '''関数''': 使い回し可能なコードブロックで、実行することができます。 以下は、データ型の例を示すコードです。 :<syntaxhighlight lang=js copy>let num = 42; // number型 let str = "Hello, World!"; // string型 let isActive = true; // boolean型 let person = { name: "John", age: 30 }; // オブジェクト型 let arr = [1, 2, 3]; // 配列型 let uniqueId = Symbol("id"); // symbol型</syntaxhighlight> === 1.3 演算子 === ECMAScriptでは、様々な演算子が提供されています。主な演算子には、算術演算子、比較演算子、論理演算子、代入演算子などがあります。 * '''算術演算子''': <code>+</code>, <code>-</code>, <code>*</code>, <code>/</code>, <code>%</code>, <code>++</code>, <code>--</code>(加算、減算、乗算、除算、剰余、インクリメント、デクリメント) * '''比較演算子''': <code>==</code>, <code>===</code>, <code>!=</code>, <code>!==</code>, <code>></code>, <code><</code>, <code>>=</code>, <code><=</code>(等価、不等価、大なり、小なり) * '''論理演算子''': <code>&&</code>, <code>||</code>, <code>!</code>(論理積、論理和、論理否定) * '''代入演算子''': <code>=</code>, <code>+=</code>, <code>-=</code>, <code>*=</code>, <code>/=</code>, <code>%=</code>(代入および合成代入) 以下のコード例では、演算子の使用方法を示しています。 :<syntaxhighlight lang=js copy>let a = 10, b = 5; let sum = a + b; // 15 let isEqual = (a == b); // false let result = (a > b) && (b > 0); // true a++; // 11</syntaxhighlight> === 1.4 制御フロー === ECMAScriptには、条件分岐やループなどの制御フローを制御するための構文が提供されています。 * '''if文''': 条件に基づいて処理を実行します。 *:<syntaxhighlight lang=js copy> const x = 10; if (x > 5) { console.log("xは5より大きい"); } else if (x > 5) { console.log("xは5未満"); } else if (x === 5) { console.log("xは5"); } else { console.log(`xは${x}`); } </syntaxhighlight> * '''switch文''': 複数の条件を評価して処理を選択します。 *:<syntaxhighlight lang=js copy> const day = 3; switch (day) { case 1: console.log("月曜日"); break; case 2: console.log("火曜日"); break; case 3: console.log("水曜日"); break; default: console.log("不明な曜日"); } </syntaxhighlight> * '''for文(;;)''': 定義された回数だけループを実行します。 *:<syntaxhighlight lang=js copy> for (let i = 0; i < 5; i++) { console.log(i); // 0, 1, 2, 3, 4 } </syntaxhighlight> * '''for..in文''': オブジェクトのプロパティや配列のインデックスに対して反復処理を行います。主にオブジェクトや配列のキー(インデックス)を取得するために使用します。 *:<syntaxhighlight lang=js copy> let obj = { a: 1, b: 2, c: 3 }; for (let key in obj) { console.log(key, obj[key]); // a 1, b 2, c 3 } </syntaxhighlight> * '''for..of文''': 配列やその他の反復可能なオブジェクト(配列、文字列、Set、Mapなど)を対象に、各要素を反復処理します。インデックスではなく、要素そのものを取得します。 *:<syntaxhighlight lang=js copy> let arr = [10, 20, 30]; for (let value of arr) { console.log(value); // 10, 20, 30 } </syntaxhighlight> * '''for await..of文''': 非同期イテラブル(例えば、非同期ジェネレータや非同期イテラブルオブジェクト)に対して、非同期処理を順次行います。<code>await</code>を使ってPromiseが解決されるのを待ちながら、反復処理を行います。 *:<syntaxhighlight lang=js copy> async function fetchData() { let data = [Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)]; for await (let value of data) { console.log(value); // 1, 2, 3 } } fetchData(); </syntaxhighlight> * '''while文''': 条件が真である限りループを実行します。 *:<syntaxhighlight lang=js copy> let i = 0; while (i < 5) { console.log(i); // 0, 1, 2, 3, 4 i++; } </syntaxhighlight> * '''do...while文''': 少なくとも1回はループを実行し、その後条件を評価します。 *:<syntaxhighlight lang=js copy> let i = 0; do { console.log(i); // 0, 1, 2, 3, 4 i++; } while (i < 5); </syntaxhighlight> 以下は、<code>break</code> と <code>continue</code> の概要説明を、指定されたフォーマットで記述したものです。 * '''break文''': ループまたはswitch文を途中で終了させるために使用します。<code>break</code>が実行されると、ループの処理を即座に終了し、次のコードに移ります。 *:<syntaxhighlight lang=js copy> for (let i = 0; i < 5; i++) { if (i === 3) { break; // iが3のときにループを終了 } console.log(i); // 0, 1, 2 } </syntaxhighlight> * '''continue文''': ループ内で次の反復処理に進むために使用します。<code>continue</code>が実行されると、ループの現在の反復が終了し、次の反復が開始されます。 *:<syntaxhighlight lang=js copy> for (let i = 0; i < 5; i++) { if (i === 3) { continue; // iが3のときに次の反復に進む } console.log(i); // 0, 1, 2, 4 } </syntaxhighlight> === 1.5 関数 === JavaScriptにおける関数は、プログラムの中で再利用可能な処理を定義するための重要な構成要素です。関数は、引数を受け取って処理を実行し、結果を返すための一連の命令をカプセル化します。ECMAScriptは、関数を作成するためのいくつかの構文を提供しており、それぞれ異なる用途に適しています。このセクションでは、通常の関数定義、アロー関数、ジェネレーター関数、および関数内で使用する<code>this</code>の取り扱いについて解説します。 ==== 1.5.1 通常の関数定義 ==== 通常の関数定義は、<code>function</code>キーワードを使用して行います。この方法では、関数名、引数リスト、関数の本体を定義します。 :<syntaxhighlight lang=js copy> function greet(name) { return `Hello, ${name}!`; } console.log(greet('Alice')); // "Hello, Alice!" </syntaxhighlight> この関数は、引数<code>name</code>を受け取り、その値を使って挨拶メッセージを返します。関数は<code>return</code>文を使用して戻り値を返します。 ==== 1.5.2 アロー関数 ==== ECMAScript 6 (ES6) では、アロー関数が導入され、従来の関数定義に比べて簡潔で柔軟に記述できるようになりました。アロー関数は、<code>function</code>キーワードを省略し、<code>=></code>を使用して関数を定義します。アロー関数は、<code>this</code>の取り扱いが異なるため、特定の状況で有利に働くことがあります。 :<syntaxhighlight lang=js copy> const greet = (name) => `Hello, ${name}!`; console.log(greet('Bob')); // "Hello, Bob!" </syntaxhighlight> この例では、<code>greet</code>はアロー関数で定義されており、シンプルで直感的に記述できます。関数の本体が1行の場合、<code>return</code>文を省略することもできます。 ===== アロー関数と<code>this</code> ===== アロー関数は、<code>this</code>を自身のスコープではなく、外部のスコープから継承します。この特性により、アロー関数はコールバック関数やイベントハンドラーでの使用が便利です。 :<syntaxhighlight lang=js copy> function Timer() { this.seconds = 0; setInterval(() => { this.seconds++; console.log(this.seconds); }, 1000); } const timer = new Timer(); // 毎秒秒数が増加して表示される </syntaxhighlight> 上記のコードでは、<code>setInterval</code>内でアロー関数を使用することで、<code>this</code>が<code>Timer</code>オブジェクトを指すようになり、秒数が正しくカウントされます。もし通常の関数を使った場合、<code>this</code>は<code>setInterval</code>内のコンテキストを指すため、正しく動作しません。 ==== 1.5.3 ジェネレーター関数 ==== ECMAScript 6 では、ジェネレーター関数が導入され、関数の実行を途中で停止し、後で再開することができるようになりました。ジェネレーター関数は、<code>function*</code>キーワードで定義します。この関数は、<code>yield</code>キーワードを使って中断し、値を返すことができます。 :<syntaxhighlight lang=js copy> function* countUp() { let count = 1; while (true) { yield count++; } } const counter = countUp(); console.log(counter.next().value); // 1 console.log(counter.next().value); // 2 console.log(counter.next().value); // 3 </syntaxhighlight> この例では、<code>countUp</code>というジェネレーター関数を定義し、<code>yield</code>を使ってカウントアップの値を返します。<code>counter.next()</code>を呼び出すと、次の<code>yield</code>が実行され、現在の値が返されます。ジェネレーター関数は、イテレーターを返すため、<code>next()</code>メソッドを使って次の値を取得することができます。 ===== ジェネレーター関数と<code>yield</code> ===== <code>yield</code>は、関数の実行を一時停止し、指定した値を呼び出し元に返します。呼び出し元は、<code>next()</code>メソッドを使って次の値を要求し、関数の実行が再開されます。 :<syntaxhighlight lang=js copy> function* fibonacci() { let [a, b] = [0, 1]; while (true) { yield a; [a, b] = [b, a + b]; } } const fib = fibonacci(); console.log(fib.next().value); // 0 console.log(fib.next().value); // 1 console.log(fib.next().value); // 1 console.log(fib.next().value); // 2 console.log(fib.next().value); // 3 </syntaxhighlight> このジェネレーター関数は、無限のフィボナッチ数列を生成します。<code>next()</code>を呼び出すたびに、次のフィボナッチ数が返されます。 ===== ジェネレーターと非同期処理 ===== ジェネレーター関数は、非同期処理とも組み合わせて使用されることがよくあります。<code>yield</code>を使って非同期操作の結果を待つことができます。 :<syntaxhighlight lang=js copy> function* fetchData() { const data1 = yield fetch('https://api.example.com/data1'); console.log(data1); const data2 = yield fetch('https://api.example.com/data2'); console.log(data2); } const gen = fetchData(); gen.next().value.then(response => response.json()).then(data => gen.next(data)); </syntaxhighlight> 上記のコードでは、<code>fetchData</code>ジェネレーター内で<code>yield</code>を使って非同期操作を待機しています。非同期関数を<code>yield</code>で一時停止させ、非同期処理が完了した後、次の操作を実行します。 === 1.5.4 <code>this</code>と関数 === JavaScriptでは、関数内での<code>this</code>の値は、その関数の呼び出し方によって異なります。通常の関数では、<code>this</code>は呼び出し元に基づいて決まりますが、アロー関数では、<code>this</code>は関数定義時の外部のスコープにバインドされます。 :<syntaxhighlight lang=js copy> function regularFunction() { console.log(this); } const obj = { method: regularFunction }; obj.method(); // thisはobjを指す const arrowFunction = () => { console.log(this); }; arrowFunction(); // thisは定義時のスコープ、例えばグローバルオブジェクトを指す </syntaxhighlight> 通常の関数では、<code>this</code>は関数がどのように呼ばれたかによって決まりますが、アロー関数では、<code>this</code>が外部スコープに基づいて決定されます。 このように、JavaScriptにおける関数は多様な形態を持ち、それぞれの用途に応じて柔軟に使用できます。特に、<code>function*</code>を使ったジェネレーター関数は、非同期処理や複雑な状態遷移を扱う際に非常に有用なツールとなります。 === 1.6 組み込みオブジェクト === ECMAScriptは、JavaScriptプログラムで頻繁に使用される基本的なデータ操作を支援する多くの組み込みオブジェクトを提供しています。これらのオブジェクトは、特定のデータ型に関連する操作を簡潔に行うためのメソッドやプロパティを提供し、開発者の生産性を向上させます。以下では、代表的な組み込みオブジェクトとその使用方法について解説します。 ==== 1.6.1 Array ==== <code>Array</code>は、配列(複数の値を順番に格納できるデータ構造)を扱うための組み込みオブジェクトです。配列の操作に便利なメソッドが多数用意されており、要素の追加、削除、並べ替え、検索などが簡単に行えます。 :<syntaxhighlight lang=js copy>let arr = [1, 2, 3, 4]; console.log(arr.length); // 4</syntaxhighlight> 配列の長さは<code>length</code>プロパティで取得できます。また、配列にはさまざまなメソッドが用意されています。 :<syntaxhighlight lang=js copy>arr.push(5); // 配列の末尾に要素を追加 console.log(arr); // [1, 2, 3, 4, 5] arr.pop(); // 配列の末尾から要素を削除 console.log(arr); // [1, 2, 3, 4]</syntaxhighlight> ==== 1.6.2 String ==== <code>String</code>オブジェクトは、文字列の操作を行うための組み込みオブジェクトです。文字列の長さを取得したり、大文字・小文字の変換、部分文字列の抽出、文字列の結合などを簡単に行うことができます。 :<syntaxhighlight lang=js copy>let str = "Hello, World!"; console.log(str.toUpperCase()); // "HELLO, WORLD!"</syntaxhighlight> 文字列の大文字・小文字の変換には<code>toUpperCase()</code>や<code>toLowerCase()</code>メソッドが使用されます。また、<code>substring()</code>メソッドを使って文字列の一部を抽出することもできます。 :<syntaxhighlight lang=js copy>let substring = str.substring(0, 5); // "Hello" console.log(substring);</syntaxhighlight> ==== 1.6.3 Math ==== <code>Math</code>オブジェクトは、数学的な計算を行うためのメソッドを提供します。数学関数の他にも、定数(円周率<code>Math.PI</code>や自然対数の底<code>Math.E</code>)が定義されています。 :<syntaxhighlight lang=js copy>let result = Math.sqrt(16); // 4 console.log(result); // 4</syntaxhighlight> <code>Math</code>オブジェクトには、平方根を求める<code>sqrt()</code>をはじめ、絶対値を求める<code>abs()</code>、最小値や最大値を求める<code>min()</code>や<code>max()</code>、乱数を生成する<code>random()</code>など、多くの便利なメソッドが備わっています。 :<syntaxhighlight lang=js copy>let randomNum = Math.random(); // 0以上1未満のランダムな数 console.log(randomNum);</syntaxhighlight> ==== 1.6.4 Object ==== <code>Object</code>は、JavaScriptの基本的なデータ型であり、プロパティとメソッドを持つデータ構造を作成するためのオブジェクトです。オブジェクトを利用して、関連する情報を一つの変数にまとめることができます。 :<syntaxhighlight lang=js copy>let person = { name: "Alice", age: 25 }; console.log(person.name); // "Alice" console.log(person.age); // 25</syntaxhighlight> オブジェクトはプロパティを持ち、<code>person.name</code>のようにプロパティにアクセスできます。オブジェクトのプロパティを追加することも可能です。 :<syntaxhighlight lang=js copy>person.city = "New York"; // 新しいプロパティを追加 console.log(person.city); // "New York"</syntaxhighlight> また、<code>Object</code>には、オブジェクトを操作するためのメソッドもいくつかあります。例えば、<code>Object.keys()</code>を使ってオブジェクトのプロパティ名を配列として取得できます。 :<syntaxhighlight lang=js copy>let keys = Object.keys(person); console.log(keys); // ["name", "age", "city"]</syntaxhighlight> ==== 1.6.5 Date ==== <code>Date</code>オブジェクトは、日付と時間を扱うための組み込みオブジェクトです。現在の日付や時刻を取得したり、特定の日付を操作したりすることができます。 :<syntaxhighlight lang=js copy>let now = new Date(); console.log(now); // 現在の日付と時刻</syntaxhighlight> <code>Date</code>には、日付をフォーマットするためのメソッドもあります。 :<syntaxhighlight lang=js copy>let dateString = now.toLocaleDateString(); console.log(dateString); // ロケールに基づいた日付の文字列</syntaxhighlight> ==== 1.6.6 RegExp ==== <code>RegExp</code>オブジェクトは、正規表現を扱うための組み込みオブジェクトです。文字列のパターンマッチングや文字列置換を行うために使用されます。 :<syntaxhighlight lang=js copy>let regex = /hello/; let str = "hello world"; console.log(regex.test(str)); // true</syntaxhighlight> <code>RegExp</code>を使うことで、文字列が特定のパターンに一致するかどうかをチェックしたり、文字列の一部を置換したりすることができます。 :<syntaxhighlight lang=js copy>let newStr = str.replace(/hello/, "hi"); console.log(newStr); // "hi world"</syntaxhighlight> ==== 1.6.7 Symbol ==== <code>Symbol</code>は、ECMAScript 6で導入された新しいプリミティブ型の一つで、オブジェクトのプロパティキーとして使用することができます。<code>Symbol</code>は一意であり、同じ名前でも異なる<code>Symbol</code>を作成することができます。 :<syntaxhighlight lang=js copy>let sym = Symbol('description'); console.log(sym); // Symbol(description)</syntaxhighlight> <code>Symbol</code>を使うことで、オブジェクトのプロパティ名に衝突を避けることができます。例えば、ライブラリ間での名前衝突を防ぐために使用されることが多いです。 ==== 1.6.8 その他の組み込みオブジェクト ==== ECMAScriptには他にも多くの組み込みオブジェクトが存在します。たとえば、<code>Set</code>や<code>Map</code>はコレクション操作を支援し、<code>Promise</code>は非同期操作をサポートします。また、<code>JSON</code>オブジェクトはJSONデータの処理に利用されます。 :<syntaxhighlight lang=js copy>let set = new Set([1, 2, 3, 3]); console.log(set); // Set {1, 2, 3} let map = new Map(); map.set('key1', 'value1'); console.log(map.get('key1')); // "value1"</syntaxhighlight> <code>Promise</code>は非同期処理の結果を扱うためのオブジェクトです。 :<syntaxhighlight lang=js copy>let promise = new Promise((resolve, reject) => { let success = true; if (success) { resolve("Success!"); } else { reject("Failure!"); } }); promise.then((result) => { console.log(result); // "Success!" }).catch((error) => { console.log(error); // "Failure!" });</syntaxhighlight> ==== 1.6.9 組み込みオブジェクトのまとめ ==== ECMAScriptにおける組み込みオブジェクトは、JavaScriptの開発において不可欠な機能を提供します。これらのオブジェクトを使うことで、複雑なデータ構造や操作をシンプルに処理でき、効率的なプログラミングが可能になります。各組み込みオブジェクトの特性を理解し、適切な場面で活用することが重要です。 == 第2章: ECMAScriptの組み込みオブジェクトとヘルパー関数 == ECMAScriptでは、プログラミングを効率的に行うための多くの組み込みオブジェクトとヘルパー関数が提供されています。これらは日常的に使用されることが多く、特にデータ操作や数学的な計算、文字列操作などに非常に役立ちます。この章では、代表的な組み込みオブジェクトとそのメソッド、さらにヘルパー関数について詳しく見ていきます。 === 2.1 組み込みオブジェクト === ECMAScriptには、データを管理し操作するための組み込みオブジェクトがいくつかあります。これらのオブジェクトは、標準ライブラリの一部として、あらかじめ定義されており、コード内で簡単に利用できます。主要な組み込みオブジェクトとしては、<code>Object</code>、<code>Array</code>、<code>String</code>、<code>Function</code>、<code>Date</code>、<code>Math</code>、<code>RegExp</code>などがあります。 ==== 2.1.1 Objectオブジェクト ==== <code>Object</code>オブジェクトは、プロパティ(名前と値のペア)を持つオブジェクトの基本です。すべてのECMAScriptのオブジェクトは、<code>Object</code>から派生しています。以下は、<code>Object</code>オブジェクトの利用例です。 :<syntaxhighlight lang=js copy> let person = { name: "John", age: 30, greet() { console.log("Hello, " + this.name); } }; person.greet(); // Hello, John</syntaxhighlight> <code>Object</code>オブジェクトには、プロパティやメソッドを操作するための多くのビルトインメソッドも用意されています。例えば、<code>Object.keys()</code>を使ってオブジェクトのプロパティ名を取得することができます。 :<syntaxhighlight lang=js copy>let keys = Object.keys(person); console.log(keys); // ["name", "age", "greet"]</syntaxhighlight> ==== 2.1.2 Arrayオブジェクト ==== <code>Array</code>オブジェクトは、順序付きのデータのリストを格納するためのオブジェクトです。配列は数値インデックスで要素をアクセスできるため、繰り返し処理などに便利です。 :<syntaxhighlight lang=js copy>let numbers = [1, 2, 3, 4, 5]; console.log(numbers[0]); // 1</syntaxhighlight> 配列は、要素を追加したり削除したりするメソッドを豊富に持っています。例えば、<code>push()</code>メソッドで配列の末尾に要素を追加したり、<code>pop()</code>メソッドで末尾の要素を取り除いたりできます。 :<syntaxhighlight lang=js copy>numbers.push(6); // 配列に6を追加 console.log(numbers); // [1, 2, 3, 4, 5, 6] let last = numbers.pop(); // 配列の末尾の要素を取り除く console.log(last); // 6</syntaxhighlight> ==== 2.1.3 Stringオブジェクト ==== <code>String</code>オブジェクトは、文字列を扱うためのオブジェクトです。文字列の操作には多くのメソッドが用意されています。 :<syntaxhighlight lang=js copy>let message = "Hello, World!"; console.log(message.toUpperCase()); // "HELLO, WORLD!" console.log(message.indexOf("World")); // 7</syntaxhighlight> <code>String</code>オブジェクトには、文字列を操作するためのメソッドがたくさんあります。例えば、<code>substring()</code>で文字列の一部分を抽出したり、<code>replace()</code>で文字列の一部を置き換えたりできます。 :<syntaxhighlight lang=js copy>let newMessage = message.replace("World", "JavaScript"); console.log(newMessage); // "Hello, JavaScript!"</syntaxhighlight> === 2.2 ヘルパー関数 === ECMAScriptには、よく使用される汎用的な処理を効率化するための組み込みヘルパー関数もいくつか提供されています。これらの関数は、コードの可読性や効率を高めるために非常に便利です。 ==== 2.2.1 Mathオブジェクト ==== <code>Math</code>オブジェクトは、数学的な計算を行うための関数を提供します。例えば、<code>Math.max()</code>や<code>Math.min()</code>を使って、数値の最大値や最小値を求めることができます。 :<syntaxhighlight lang=js copy>let max = Math.max(10, 20, 30, 40); console.log(max); // 40 let min = Math.min(10, 20, 30, 40); console.log(min); // 10</syntaxhighlight> <code>Math</code>オブジェクトは、数学的な演算を簡単に行える関数を多く持っており、例えば、<code>Math.random()</code>でランダムな数を生成することもできます。 :<syntaxhighlight lang=js copy>let randomValue = Math.random(); console.log(randomValue); // 0 以上 1 未満のランダムな値</syntaxhighlight> ==== 2.2.2 JSONオブジェクト ==== <code>JSON</code>オブジェクトは、JavaScriptオブジェクトをJSON形式の文字列に変換したり、逆にJSON文字列をJavaScriptオブジェクトに変換したりするためのメソッドを提供します。 :<syntaxhighlight lang=js copy>let personJson = JSON.stringify(person); console.log(personJson); // '{"name":"John","age":30,"greet":{}}' let personObject = JSON.parse(personJson); console.log(personObject.name); // John</syntaxhighlight> これらのヘルパー関数を使うことで、データのシリアライズやデータの変換を簡単に行うことができます。 === 2.3 非同期処理のためのヘルパー関数 === 現代のJavaScriptでは、非同期処理を扱うための多くの組み込み関数が用意されています。特に、<code>setTimeout()</code>や<code>setInterval()</code>、そして新しく導入された<code>Promise</code>などは、非同期のタスクを簡潔に扱うために非常に重要です。 ==== 2.3.1 setTimeout()とsetInterval() ==== <code>setTimeout()</code>は、指定された時間後に一度だけコールバック関数を実行します。 :<syntaxhighlight lang=js copy>setTimeout(function() { console.log("1秒後に実行"); }, 1000); // 1000ミリ秒後に実行</syntaxhighlight> <code>setInterval()</code>は、指定された時間間隔で繰り返しコールバック関数を実行します。 :<syntaxhighlight lang=js copy>let intervalId = setInterval(function() { console.log("2秒ごとに実行"); }, 2000); // 2000ミリ秒ごとに実行 // 5秒後にintervalを停止 setTimeout(function() { clearInterval(intervalId); }, 5000);</syntaxhighlight> ==== 2.3.2 Promise ==== <code>Promise</code>は非同期処理を扱うためのオブジェクトで、非同期の処理結果を簡潔に扱うために使います。<code>Promise</code>は<code>then()</code>メソッドや<code>catch()</code>メソッドを使って、成功または失敗した処理を後続で扱うことができます。 :<syntaxhighlight lang=js copy>let promise = new Promise(function(resolve, reject) { let success = true; // 処理の成功・失敗を示す if (success) { resolve("処理成功"); } else { reject("処理失敗"); } }); promise.then(function(result) { console.log(result); // 処理成功 }).catch(function(error) { console.log(error); // 処理失敗 });</syntaxhighlight> ==== 2.3.3 Proxy ==== <code>Proxy</code>はECMAScript 6 (ES6)で導入されたオブジェクトで、他のオブジェクトの振る舞いを動的に変更するための手段を提供します。<code>Proxy</code>は、基本的には既存のオブジェクトの操作(例えば、プロパティの読み書き、関数の呼び出し、オブジェクトの作成など)を監視したり変更したりするための「代理オブジェクト」を作成します。これにより、オブジェクトの操作をカスタマイズできるため、ロギング、アクセス制御、検証、リダイレクトなど、多様な用途に利用できます。 ===== Proxyの基本構文 ===== <code>Proxy</code>は、ターゲットオブジェクトと、ターゲットの操作を監視または変更するための「ハンドラ」を指定して作成されます。ハンドラは、ターゲットオブジェクトの操作に対するトラップを定義するオブジェクトです。トラップは、特定の操作が行われると呼び出されます。 :<syntaxhighlight lang=js copy> const target = {}; const handler = { get(target, prop, receiver) { console.log(`Getting ${prop}`); return prop in target ? target[prop] : 37; // プロパティが存在しない場合は37を返す } }; const proxy = new Proxy(target, handler); console.log(proxy.a); // Getting a </syntaxhighlight> この例では、<code>target</code>オブジェクトの<code>a</code>プロパティを取得しようとすると、<code>handler.get</code>メソッドが呼び出され、プロパティ<code>a</code>にアクセスする際にカスタマイズされた動作が実行されます。 ===== Proxyの主要なトラップ ===== <code>Proxy</code>では、以下のようなさまざまな操作に対するトラップを定義できます。 * <code>get</code>: プロパティの取得 * <code>set</code>: プロパティの設定 * <code>has</code>: <code>in</code> 演算子の使用時 * <code>deleteProperty</code>: <code>delete</code> 演算子の使用時 * <code>apply</code>: 関数の呼び出し時 * <code>construct</code>: <code>new</code> 演算子の使用時 * <code>getPrototypeOf</code>: オブジェクトのプロトタイプ取得時 * <code>setPrototypeOf</code>: オブジェクトのプロトタイプ設定時 * <code>isExtensible</code>: オブジェクトの拡張可能性を確認時 * <code>preventExtensions</code>: オブジェクトを拡張不可にする操作時 これらのトラップを活用することで、オブジェクトの動作を細かく制御することができます。 ===== Proxyの利用例 ===== 例えば、プロパティのアクセスをログに記録したり、オブジェクトのプロパティに制約を加えたりする用途で利用できます。 :<syntaxhighlight lang=js copy> const person = { name: 'Alice', age: 25 }; const handler = { get: (target, prop) => { if (prop in target) { console.log(`Property "${prop}" accessed`); return target[prop]; } else { console.log(`Property "${prop}" does not exist`); return undefined; } } }; const proxy = new Proxy(person, handler); console.log(proxy.name); // Property "name" accessed -> 'Alice' console.log(proxy.address); // Property "address" does not exist -> undefined </syntaxhighlight> このように、<code>Proxy</code>を利用することでオブジェクトの振る舞いを柔軟に変更し、アプリケーションに必要なカスタマイズを加えることができます。 ==== 2.3.4 Reflect ==== <code>Reflect</code>は、ES6で導入されたグローバルオブジェクトで、オブジェクトに対する低レベルの操作を簡潔に行うためのメソッドを提供します。<code>Reflect</code>は、主にオブジェクトの操作をより直感的に、安全かつ一貫性のある方法で行うためのインターフェースです。<code>Proxy</code>と一緒に使われることが多いですが、単体でも有用です。 <code>Reflect</code>は、オブジェクトのプロパティの読み書き、削除、関数呼び出し、プロトタイプ操作などを行うためのメソッドを提供します。<code>Reflect</code>は、通常のオブジェクト操作の結果を返し、エラーが発生した場合には<code>false</code>を返すなど、一貫性のある挙動を保証します。 ===== Reflectの基本メソッド ===== <code>Reflect</code>は、以下のようなメソッドを提供します。 * <code>Reflect.get()</code>: オブジェクトのプロパティを取得 * <code>Reflect.set()</code>: オブジェクトのプロパティを設定 * <code>Reflect.has()</code>: オブジェクトにプロパティがあるか確認 * <code>Reflect.deleteProperty()</code>: オブジェクトのプロパティを削除 * <code>Reflect.apply()</code>: 関数を呼び出し * <code>Reflect.construct()</code>: オブジェクトのインスタンスを生成 * <code>Reflect.getPrototypeOf()</code>: オブジェクトのプロトタイプを取得 * <code>Reflect.setPrototypeOf()</code>: オブジェクトのプロトタイプを設定 * <code>Reflect.isExtensible()</code>: オブジェクトが拡張可能か確認 * <code>Reflect.preventExtensions()</code>: オブジェクトの拡張を防止 ===== Reflectの利用例 ===== <code>Reflect</code>を使うことで、オブジェクト操作を明示的に行うことができ、エラー処理やデバッグを容易にします。例えば、プロパティの取得や設定時に、<code>Reflect</code>を使って処理を簡潔に記述できます。 :<syntaxhighlight lang=js copy> const obj = { name: 'Alice' }; // Reflect.get()でプロパティを取得 console.log(Reflect.get(obj, 'name')); // 'Alice' // Reflect.set()でプロパティを設定 Reflect.set(obj, 'age', 30); console.log(obj.age); // 30 // Reflect.deleteProperty()でプロパティを削除 Reflect.deleteProperty(obj, 'name'); console.log(obj.name); // undefined</syntaxhighlight> また、 < code > Reflect < /code>は、<code>Proxy</code > のトラップの内部で利用されることが多く、 < code > Proxy < /code>を実装する際に、標準的なオブジェクト操作を簡単に呼び出すことができます。: < syntaxhighlight lang = js copy > const handler = { get(target, prop, receiver) { return Reflect.get(...arguments); } }; const proxy = new Proxy({ name: 'Alice' }, handler); console.log(proxy.name); // 'Alice' </syntaxhighlight> <code>Reflect</code>を使用することで、低レベルのオブジェクト操作をよりシンプルかつエラー処理が明確な方法で実現でき、より安全で直感的なコードを記述できます。 ===== ProxyとReflectの関係 ===== <code>Proxy</code>と<code>Reflect</code>は密接に関連しており、<code>Proxy</code>のトラップ内で<code>Reflect</code>のメソッドを使用することが一般的です。<code>Proxy</code>を使ってオブジェクトの動作をカスタマイズする際、<code>Reflect</code>を使用して元の動作を簡単に呼び出し、プロキシオブジェクトの動作をより制御することができます。 例えば、プロパティの設定時に<code>Reflect.set()</code>を使うことで、プロパティの設定をカスタマイズした上で、元の設定動作を保持することができます。 :<syntaxhighlight lang=js copy> const handler = { set(target, prop, value, receiver) { console.log(`Setting ${prop} to ${value}`); return Reflect.set(...arguments); // 元の動作を呼び出す } }; const proxy = new Proxy({}, handler); proxy.name = 'Alice'; // Setting name to Alice </syntaxhighlight> このように、<code>Reflect</code>は<code>Proxy</code>と組み合わせて利用することで、より高機能なプロキシの実装が可能になります。 === 2.4 まとめ === ECMAScriptの組み込みオブジェクトとヘルパー関数は、開発の効率を大いに高めるための強力なツールです。これらのオブジェクトや関数をしっかりと理解し、適切に活用することで、より短く、効率的で読みやすいコードを書くことができるようになります。この章で紹介した内容を活用して、実際の開発で役立ててください。 == 第3章: ECMAScriptの非同期処理と最新構文 == 非同期処理は、現代のJavaScriptプログラミングにおいて不可欠な技術です。非同期処理を適切に利用することで、パフォーマンスの向上やより直感的なコードを書くことができます。この章では、非同期処理を扱うための最新技術と構文を学び、実際のコード例を通じて理解を深めます。 === 3.1 非同期処理の基本 === 非同期処理は、ある処理が実行されるまで他の処理がブロックされないようにするための仕組みです。これにより、例えば長時間かかるAPI呼び出しやファイル操作などの処理を非同期で行うことができ、アプリケーションの応答性が向上します。 JavaScriptでは、非同期処理を扱うためのいくつかの方法があります。伝統的な方法としては、コールバック関数を使った手法がありましたが、ES6以降は<code>Promise</code>と<code>async</code>/<code>await</code>が登場し、より直感的で可読性の高いコードが書けるようになりました。 ==== 3.1.1 コールバック関数 ==== コールバック関数は、ある処理が完了した後に呼び出される関数です。例えば、<code>setTimeout()</code>関数は、指定された時間が経過した後にコールバック関数を実行します。 :<syntaxhighlight lang=js copy> setTimeout(function() { console.log("1秒後に実行"); }, 1000);</syntaxhighlight> コールバック関数は、非同期処理の基本的な手法ですが、複数の非同期処理を連続して行う場合、コールバック地獄(callback hell)と呼ばれる可読性の低いコードになりがちです。 :<syntaxhighlight lang=js copy>setTimeout(function() { console.log("1"); setTimeout(function() { console.log("2"); setTimeout(function() { console.log("3"); }, 1000); }, 1000); }, 1000);</syntaxhighlight> このように、コールバック関数をネストすることで、コードが読みにくく、エラーの原因にもなりやすくなります。 ==== 3.1.2 Promise ==== <code>Promise</code>は、非同期処理の結果が成功したか失敗したかを扱うためのオブジェクトです。<code>Promise</code>は、非同期処理が完了した時点で<code>resolve()</code>または<code>reject()</code>が呼び出され、それを<code>then()</code>や<code>catch()</code>メソッドで受け取って後続の処理を行います。 :<syntaxhighlight lang=js copy> let promise = new Promise(function(resolve, reject) { let success = true; if (success) { resolve("処理成功"); } else { reject("処理失敗"); } }); promise.then(function(result) { console.log(result); // 処理成功 }).catch(function(error) { console.log(error); // 処理失敗 }); </syntaxhighlight> <code>Promise</code>を使用することで、コールバック関数を使った非同期処理よりも直感的で読みやすいコードを書くことができます。複数の非同期処理を連鎖させることもできます。 :<syntaxhighlight lang=js copy> function fetchData() { return new Promise(function(resolve) { setTimeout(function() { resolve("データ取得成功"); }, 1000); }); } fetchData().then(function(result) { console.log(result); // データ取得成功 }); </syntaxhighlight> <code>Promise.all()</code>や<code>Promise.race()</code>を使用すれば、複数の非同期処理を並行して実行し、その結果を扱うこともできます。 :<syntaxhighlight lang=js copy> const promise1 = fetchData(); const promise2 = fetchData(); Promise.all([promise1, promise2]).then(function(results) { console.log(results); // ["データ取得成功", "データ取得成功"] }); </syntaxhighlight> ==== 3.1.3 async/await ==== <code>async/await</code>は、<code>Promise</code>をより直感的に使えるようにした構文です。<code>async</code>キーワードは非同期関数を定義するために使い、その中で<code>await</code>キーワードを使うと、<code>Promise</code>が解決されるまで待機し、その結果を返すことができます。 :<syntaxhighlight lang=js copy> async function fetchData() { let result = await new Promise(function(resolve) { setTimeout(function() { resolve("データ取得成功"); }, 1000); }); console.log(result); // データ取得成功 } fetchData(); </syntaxhighlight> <code>async/await</code>を使うことで、非同期処理が同期処理のように記述でき、コールバック地獄を避けることができます。また、エラーハンドリングも<code>try/catch</code>構文で簡潔に行えます。 :<syntaxhighlight lang=js copy> async function fetchData() { try { let result = await new Promise(function(resolve, reject) { setTimeout(function() { resolve("データ取得成功"); }, 1000); }); console.log(result); // データ取得成功 } catch (error) { console.log("エラー: " + error); } } fetchData(); </syntaxhighlight> <code>async/await</code>は、非同期処理をより簡潔で可読性の高いコードにするため、非常に強力な構文です。 === 3.2 非同期イテレーション === ECMAScript 2018では、非同期イテレーションが追加されました。非同期イテレーションは、非同期処理を行いながら、イテレータ(反復処理)のようにデータを扱うことができる新しい構文です。 <code>for await...of</code>構文を使用することで、非同期のデータを順番に処理することができます。 :<syntaxhighlight lang=js copy> async function fetchData() { let data = ["データ1", "データ2", "データ3"]; for await (let item of data) { console.log(item); // データ1, データ2, データ3 } } fetchData(); </syntaxhighlight> 非同期イテレーションは、非同期処理が必要なループ処理を簡単に扱える強力なツールとなります。 === 3.3 最新構文と機能 === ES6以降、JavaScriptには多くの新機能と構文が追加され、コードの可読性やパフォーマンスが大きく向上しました。特に、<code>let</code>や<code>const</code>による変数宣言、アロー関数、デストラクチャリング、スプレッド演算子などが重要です。 ==== 3.3.1 アロー関数 ==== アロー関数は、簡潔な構文で関数を定義するための構文です。<code>function</code>キーワードを使わず、矢印(<code>=></code>)を使って関数を定義します。 :<syntaxhighlight lang=js copy> let add = (a, b) => a + b; console.log(add(1, 2)); // 3 </syntaxhighlight> アロー関数は、<code>this</code>の挙動も変わります。<code>this</code>は、関数が呼び出されたコンテキストに束縛されるのではなく、外側のコンテキストを参照します。 :<syntaxhighlight lang=js copy> let obj = { value: 10, add() { setTimeout(() => { console.log(this.value); }, 1000); } }; obj.add(); // 10 </syntaxhighlight> ==== 3.3.2 デストラクチャリング ==== デストラクチャリングは、オブジェクトや配列から個々の値を簡単に取り出すための構文です。 :<syntaxhighlight lang=js copy> let person = { name: "John", age: 30 }; let { name, age } = person; console.log(name); // John console.log(age); // 30 </syntaxhighlight> 配列のデストラクチャリングもサポートされており、要素を変数に分割して格納することができます。 :<syntaxhighlight lang=js copy> const numbers = [1, 2, 3]; let [a, b, c] = numbers; console.log(a); // 1 console.log(b); // 2 console.log(c); // 3 </syntaxhighlight> === 3.4 まとめ === 非同期処理と最新構文は、JavaScriptを効果的に使いこなすために欠かせない要素です。<code>Promise</code>や <code>async/await</code>を使った非同期処理の記述方法を理解し、ES6以降の機能を活用することで、よりモダンで可読性の高いコードを書くことができます。最新構文は、特にコードの簡潔さと直感的な理解を促進します。 == 第4章: ECMAScriptの組み込みオブジェクトとヘルパー関数 == ECMAScriptでは、プログラムを効率よく記述するために多くの組み込みオブジェクトやヘルパー関数が用意されています。これらは、数値計算や文字列操作、データ構造の操作などを簡単に行うために不可欠なツールです。この章では、ECMAScriptで提供されている主要な組み込みオブジェクトと、それらに関連するヘルパー関数を取り上げ、実際の使用例を通じて理解を深めます。 === 4.1 組み込みオブジェクトの概要 === ECMAScriptには、数多くの組み込みオブジェクトがあり、これらはJavaScriptの標準ライブラリとして利用できます。例えば、<code>Object</code>、<code>Array</code>、<code>String</code>、<code>Number</code>、<code>Math</code>、<code>Date</code>などがあり、これらはすべて基本的なデータ型を操作するためのメソッドやプロパティを提供します。 これらのオブジェクトは、JavaScriptの基本的なプログラムの構築に必要不可欠なツールであり、コードの可読性と効率性を向上させるために利用されます。 === 4.2 <code>Object</code>とそのメソッド === <code>Object</code>は、すべてのオブジェクトの基底オブジェクトであり、他のオブジェクトに共通する基本的な操作を提供します。<code>Object</code>には、プロパティやメソッドを操作するための多くの便利なメソッドが含まれています。 ==== 4.2.1 オブジェクトの操作 ==== <code>Object</code>オブジェクトは、オブジェクトのプロパティを取得したり設定したり、オブジェクトの状態を変更したりするためのメソッドを提供します。例えば、<code>Object.keys()</code>メソッドはオブジェクトのすべてのプロパティ名を配列として取得するために使用されます。 :<syntaxhighlight lang=js copy> let person = { name: "John", age: 30 }; let keys = Object.keys(person); console.log(keys); // ["name", "age"] </syntaxhighlight> また、<code>Object.assign()</code>メソッドを使うと、複数のオブジェクトをマージしたり、オブジェクトのコピーを作成したりすることができます。 :<syntaxhighlight lang=js copy> let obj1 = { a: 1, b: 2 }; let obj2 = { b: 3, c: 4 }; let merged = Object.assign({}, obj1, obj2); console.log(merged); // { a: 1, b: 3, c: 4 } </syntaxhighlight> ==== 4.2.2 オブジェクトの比較 ==== <code>Object.is()</code>メソッドは、2つの値が厳密に等しいかどうかを判定するために使用されます。このメソッドは、<code>===</code>演算子と似ていますが、<code>NaN</code>や<code>+0</code>と<code>-0</code>の比較において異なる挙動を示します。 :<syntaxhighlight lang=js copy> console.log(Object.is(25, 25)); // true console.log(Object.is(25, '25')); // false console.log(Object.is(NaN, NaN)); // true console.log(Object.is(+0, -0)); // false </syntaxhighlight> === 4.3 配列操作と<code>Array</code>オブジェクト === <code>Array</code>オブジェクトは、数値の順序付けられたリストを管理するための組み込みオブジェクトです。配列に関する操作を簡単に行うためのメソッドが多く用意されています。 ==== 4.3.1 配列の生成と操作 ==== 配列はリテラル表記を使って簡単に生成できます。例えば、以下のように<code>[]</code>で囲んで値を並べることで配列を作成できます。 :<syntaxhighlight lang=js copy> const fruits = ["apple", "banana", "cherry"]; console.log(fruits); // ["apple", "banana", "cherry"] </syntaxhighlight> <code>Array</code>オブジェクトには、配列を操作するための多くのメソッドがあります。例えば、<code>push()</code>メソッドで要素を配列の末尾に追加したり、<code>pop()</code>メソッドで末尾の要素を削除したりできます。 :<syntaxhighlight lang=js copy> fruits.push("orange"); console.log(fruits); // ["apple", "banana", "cherry", "orange"] fruits.pop(); console.log(fruits); // ["apple", "banana", "cherry"] </syntaxhighlight> また、<code>map()</code>や<code>filter()</code>といった高階関数を使うことで、配列を効率的に操作できます。 :<syntaxhighlight lang=js copy>let numbers = [1, 2, 3, 4, 5]; let squared = numbers.map(x => x * x); console.log(squared); // [1, 4, 9, 16, 25] </syntaxhighlight> ==== 4.3.2 配列の繰り返し処理 ==== 配列に対して繰り返し処理を行う場合、<code>forEach()</code>メソッドを使うことが一般的です。<code>forEach()</code>メソッドは、配列の各要素に対して指定した関数を実行します。 :<syntaxhighlight lang=js copy> fruits.forEach(function(fruit) { console.log(fruit); }); // apple // banana // cherry </syntaxhighlight> <code>forEach()</code>を使うことで、配列の各要素を順番に処理することができます。 === 4.4 文字列操作と<code>String</code>オブジェクト === <code>String</code>オブジェクトは、文字列を操作するためのメソッドを提供します。文字列の長さを取得したり、部分文字列を抽出したり、文字列を結合するためのメソッドが揃っています。 ==== 4.4.1 文字列の基本操作 ==== <code>String</code>オブジェクトは、文字列の長さを取得するために<code>length</code>プロパティを提供します。 :<syntaxhighlight lang=js copy> let text = "Hello, World!"; console.log(text.length); // 13 </syntaxhighlight> また、文字列を部分的に取得するための<code>slice()</code>メソッドもよく使用されます。 :<syntaxhighlight lang=js copy> let text = "Hello, World!"; console.log(text.slice(0, 5)); // "Hello" </syntaxhighlight> ==== 4.4.2 文字列の検索 ==== 文字列の中から特定の文字列を検索するためには、<code>indexOf()</code>メソッドを使用します。<code>indexOf()</code>は、検索する文字列が見つかった場合、その位置(インデックス)を返します。 :<syntaxhighlight lang=js copy> let text = "Hello, World!"; console.log(text.indexOf("World")); // 7 </syntaxhighlight> <code>includes()</code>メソッドを使うことで、文字列が指定したサブ文字列を含んでいるかどうかを確認することができます。 :<syntaxhighlight lang=js copy> console.log(text.includes("Hello")); // true console.log(text.includes("JavaScript")); // false </syntaxhighlight> === 4.5 数値計算と<code>Math</code>オブジェクト === <code>Math</code>オブジェクトは、数値の計算に関連する多くの数学的な関数を提供します。例えば、三角関数、対数関数、最大・最小値の取得、ランダムな数の生成などが含まれています。 ==== 4.5.1 基本的な数学関数 ==== <code>Math</code>オブジェクトには、基本的な数学的操作を行うためのメソッドが多数用意されています。例えば、<code>Math.max()</code>で複数の数値の中から最大値を取得できます。 :<syntaxhighlight lang=js copy> console.log(Math.max(10, 20, 30)); // 30 </syntaxhighlight> また、<code>Math.random()</code>を使うことで、0以上1未満のランダムな数を生成することができます。 :<syntaxhighlight lang=js copy> console.log(Math.random()); // 0.XXXX </syntaxhighlight> ==== 4.5.2 三角関数と対数関数 ==== <code>Math</code>オブジェクトでは、三角関数や対数関数も利用できます。例えば、<code>Math.sin()</code>でサインを、<code>Math.log()</code>で自然対数を計算することができます。 :<syntaxhighlight lang=js copy> console.log(Math.sin(Math.PI / 2)); // 1 console.log(Math.log(10)); // 2.302585092994046 </syntaxhighlight> === 4.6 その他の組み込みオブジェクト === ここでは、<code>Date</code>や<code>RegExp</code>など、日付・正規表現を扱うための組み込みオブジェクトについても簡単に触れます。これらのオブジェクトも頻繁に使用される重要なツールです。 ==== 4.6.1 <code>Date</code>オブジェクト ==== <code>Date</code>オブジェクトは、日付や時間を扱うための組み込みオブジェクトです。<code>Date</code>オブジェクトを使って、現在の日付や時刻を取得したり、指定した日付を操作したりできます。 :<syntaxhighlight lang=js copy> let currentDate = new Date(); console.log(currentDate.toString()); // Mon Dec 17 2024 00:00:00 GMT+0900 (Japan Standard Time) </syntaxhighlight> ==== 4.6.2 <code>RegExp</code>オブジェクト ==== <code>RegExp</code>オブジェクトは、文字列のパターンマッチングを行うための正規表現をサポートします。文字列の検索や置換処理などで広く利用されます。 :<syntaxhighlight lang=js copy> const regex = /hello/i; console.log(regex.test("Hello, World!")); // true </syntaxhighlight> === 4.7 まとめ === この章では、ECMAScriptの組み込みオブジェクトと、それらに関連する便利なヘルパー関数について詳しく解説しました。これらのツールを活用することで、日常的なプログラミング作業を大幅に効率化でき、可読性の高いコードを書くことができます。ECMAScriptの組み込みオブジェクトは、JavaScriptを効果的に活用するための基盤となる重要な要素であり、その使いこなし方を理解することは、プログラミングスキルを向上させるための第一歩となります。 == 第5章 関数とスコープ == === 5.1 関数の定義と呼び出し === JavaScriptでは、関数を使ってコードを整理し、再利用可能な部分を作ることができます。関数は、<code>function</code>キーワードを使って定義します。関数の基本的な構文は以下のようになります。 :<syntaxhighlight lang=js copy> function greet(name) { return "Hello, " + name + "!"; } console.log(greet("Alice")); // "Hello, Alice!" </syntaxhighlight> この例では、<code>greet</code>という関数が引数<code>name</code>を受け取り、文字列を返します。 === 5.2 引数と戻り値 === 関数は引数を取ることができ、また結果を返すこともできます。引数は関数を呼び出す際に渡され、関数内で利用されます。戻り値は関数が処理を終えた後に返される結果です。 :<syntaxhighlight lang=js copy> function sum(a, b) { return a + b; } let result = sum(3, 5); console.log(result); // 8 </syntaxhighlight> === 5.3 関数式とアロー関数 === JavaScriptでは、関数を変数に代入することもできます。この場合、関数は「関数式」として定義されます。また、ES6からはアロー関数が導入され、より簡潔な記述が可能です。 ==== 関数式 ==== :<syntaxhighlight lang=js copy> const multiply = function(a, b) { return a * b; }; console.log(multiply(4, 6)); // 24 </syntaxhighlight> ==== アロー関数 ==== アロー関数を使うことで、関数の定義がさらに簡単になります。 :<syntaxhighlight lang=js copy> const subtract = (a, b) => a - b; console.log(subtract(10, 3)); // 7 </syntaxhighlight> === 5.4 スコープ === スコープは、変数や関数がどこからアクセスできるかを決定します。JavaScriptには、グローバルスコープとローカルスコープがあります。 ==== グローバルスコープ ==== グローバルスコープは、コード全体からアクセスできる範囲です。関数の外で宣言された変数や関数は、グローバルスコープに属します。 :<syntaxhighlight lang=js copy> let globalVar = "I am global"; function showGlobal() { console.log(globalVar); } showGlobal(); // "I am global" </syntaxhighlight> ==== ローカルスコープ ==== ローカルスコープは、関数内で定義された変数や関数が有効な範囲です。関数内で定義された変数は、関数外からはアクセスできません。 :<syntaxhighlight lang=js copy> function localScope() { let localVar = "I am local"; console.log(localVar); } localScope(); // "I am local" console.log(localVar); // ReferenceError: localVar is not defined </syntaxhighlight> === 5.5 クロージャ === クロージャは、関数が自分が定義されたスコープ外の変数を参照できる機能です。これにより、関数内で外部の変数を保持し、後から利用することが可能になります。 :<syntaxhighlight lang=js copy> function outer() { let outerVar = "I am from outer scope"; return function inner() { console.log(outerVar); // outerVarはouter関数のスコープから参照される }; } let closureFunc = outer(); closureFunc(); // "I am from outer scope" </syntaxhighlight> === 5.6 高階関数 === 高階関数とは、引数に関数を取る、または戻り値として関数を返す関数のことです。JavaScriptでは、関数が第一級オブジェクトであるため、高階関数を活用することができます。 :<syntaxhighlight lang=js copy> function applyOperation(a, b, operation) { return operation(a, b); } const sumResult = applyOperation(2, 3, (x, y) => x + y); console.log(sumResult); // 5 </syntaxhighlight> === 5.7 まとめ === 関数とスコープはJavaScriptにおいて非常に重要な概念であり、プログラムの構造を整理し、再利用可能なコードを作るために不可欠です。関数の定義や呼び出し、引数と戻り値の扱い、スコープの概念、クロージャや高階関数の理解は、より効率的なプログラミングに繋がります。この章で学んだことを基に、より複雑なプログラムを作成していくことができます。 == 第6章 非同期処理 == === 6.1 非同期処理の基本 === 非同期処理は、プログラムがブロックすることなく複数の操作を同時に実行する方法を提供します。JavaScriptでは、非同期処理を行うためにいくつかの方法が提供されています。特に、コールバック関数、Promise、そして<code>async</code>/<code>await</code>構文が主な方法です。 通常、非同期処理は時間のかかる操作(ファイルの読み込み、APIリクエスト、タイマーの使用など)を扱う場合に使用され、これによりユーザーのインタラクションを妨げることなくプログラムが実行されます。 :<syntaxhighlight lang=js copy> // 非同期処理の一例: setTimeoutを使って時間差で関数を呼び出す setTimeout(() => { console.log("このメッセージは3秒後に表示されます"); }, 3000); </syntaxhighlight> === 6.2 コールバック関数 === コールバック関数は、非同期処理が完了した後に実行される関数です。最も古典的な方法であり、多くの非同期操作がコールバックで扱われてきました。 :<syntaxhighlight lang=js copy> function fetchData(callback) { setTimeout(() => { const data = "サーバーからのデータ"; callback(data); }, 1000); } fetchData((data) => { console.log(data); // 1秒後に表示される: "サーバーからのデータ" }); </syntaxhighlight> コールバック関数は直感的ですが、複数の非同期処理をネストする場合(いわゆる「コールバック地獄」)が発生し、コードの可読性や保守性が低下する可能性があります。 === 6.3 Promise === Promiseは、非同期操作が成功した場合の結果(<code>resolve</code>)や失敗した場合の理由(<code>reject</code>)を扱うためのオブジェクトです。Promiseを使用することで、非同期処理のフローをより管理しやすくすることができます。 Promiseの基本的な構文は以下のようになります。 :<syntaxhighlight lang=js copy> let promise = new Promise((resolve, reject) => { let success = true; // 成功/失敗のシミュレーション if (success) { resolve("成功しました"); } else { reject("失敗しました"); } }); promise .then((result) => { console.log(result); // "成功しました" }) .catch((error) => { console.error(error); // "失敗しました" }); </syntaxhighlight> <code>then</code>メソッドは、Promiseが成功した場合に呼び出され、<code>catch</code>メソッドはエラーが発生した場合に呼び出されます。これにより、コールバック関数を使う場合よりも、非同期処理のエラーハンドリングが簡単になります。 === 6.4 async/await === <code>async</code>/<code>await</code>は、非同期処理をより簡潔かつ直感的に書くための構文です。<code>async</code>キーワードは関数を非同期関数として定義し、<code>await</code>キーワードはPromiseの解決を待つために使用します。これにより、非同期コードを同期的なコードのように書くことができます。 :<syntaxhighlight lang=js copy> async function fetchData() { let promise = new Promise((resolve, reject) => { setTimeout(() => resolve("データを取得しました"), 2000); }); let result = await promise; console.log(result); // "データを取得しました"(2秒後) } fetchData(); </syntaxhighlight> <code>await</code>はPromiseの解決を待つため、通常の同期コードのように見えますが、非同期処理が進行中であることを忘れないようにしましょう。 === 6.5 非同期処理のエラーハンドリング === 非同期処理にはエラーハンドリングが非常に重要です。<code>async</code>/<code>await</code>と<code>Promise</code>の両方でエラーを適切に処理する方法について学びます。 ==== Promiseでのエラーハンドリング ==== :<syntaxhighlight lang=js copy> let promise = new Promise((resolve, reject) => { let success = false; // 成功/失敗のシミュレーション if (success) { resolve("成功"); } else { reject("エラーが発生しました"); } }); promise .then((result) => { console.log(result); }) .catch((error) => { console.error("エラー:", error); // "エラー: エラーが発生しました" }); </syntaxhighlight> ==== async/awaitでのエラーハンドリング ==== :<syntaxhighlight lang=js copy> async function fetchData() { try { let promise = new Promise((resolve, reject) => { let success = false; if (success) { resolve("成功"); } else { reject("エラーが発生しました"); } }); let result = await promise; console.log(result); } catch (error) { console.error("エラー:", error); // "エラー: エラーが発生しました" } } fetchData(); </syntaxhighlight> <code>async</code>/<code>await</code>を使うと、<code>try</code>/<code>catch</code>構文を使ってエラーハンドリングを同期コードのように記述できるため、非常に読みやすくなります。 === 6.6 非同期処理の並行実行 === 非同期処理を並行して実行する場合、<code>Promise.all</code>や<code>Promise.race</code>を利用することができます。これらを使うと、複数の非同期操作を同時に実行し、その結果を待つことができます。 ==== <code>Promise.all</code> ==== <code>Promise.all</code>は、複数のPromiseがすべて成功した場合に結果を返します。いずれかのPromiseが失敗すると、即座にエラーを返します。 :<syntaxhighlight lang=js copy> const p1 = new Promise((resolve) => setTimeout(resolve, 1000, "First")); const p2 = new Promise((resolve) => setTimeout(resolve, 2000, "Second")); Promise.all([p1, p2]) .then((results) => { console.log(results); // ["First", "Second"] }) .catch((error) => { console.error("エラー:", error); }); </syntaxhighlight> ==== <code>Promise.race</code> ==== <code>Promise.race</code>は、最初に解決または拒否されたPromiseを返します。 :<syntaxhighlight lang=js copy> const p1 = new Promise((resolve) => setTimeout(resolve, 1000, "First")); const p2 = new Promise((resolve) => setTimeout(resolve, 2000, "Second")); Promise.race([p1, p2]) .then((result) => { console.log(result); // "First" }) .catch((error) => { console.error("エラー:", error); }); </syntaxhighlight> === 6.7 まとめ === 非同期処理は、特に時間のかかる操作を扱う場合に非常に重要です。コールバック、Promise、そして<code>async</code>/<code>await</code>を使いこなすことで、より効率的で読みやすいコードを書くことができます。また、非同期処理のエラーハンドリングや並行実行のテクニックを理解することで、複雑な非同期処理にも対応できるようになります。この章で学んだ内容をもとに、さらに高度な非同期プログラミングに挑戦してみてください。 == 第7章 モジュールシステム == === 7.1 ECMAScriptモジュールの概要 === ECMAScript 6(ES6)で、JavaScriptには新たに公式なモジュールシステムが導入されました。それ以前は、主にCommonJSやAMD(Asynchronous Module Definition)などのサードパーティ製モジュールシステムが利用されていましたが、ES6では言語仕様として標準化されたモジュールシステムが提供されることになりました。これにより、JavaScriptのコードはより構造化され、依存関係が明確になります。 ES6モジュールシステムでは、<code>export</code>と<code>import</code>を使用して、モジュール間でコードを共有することができます。モジュールはデフォルトで「遅延読み込み」されるため、必要になった時に初めて評価され、実行されます。 === 7.2 モジュールのエクスポート === モジュール内でエクスポートしたい要素(変数、関数、クラスなど)は、<code>export</code>キーワードを使って明示的にエクスポートします。これにより、他のモジュールでその要素を利用できるようになります。 ==== 名前付きエクスポート ==== 名前付きエクスポートでは、モジュール内で複数の要素を個別にエクスポートします。この方法では、エクスポートする際に名前を指定し、インポートする際にも同じ名前を使用します。 ; myModule.js :<syntaxhighlight lang=js copy> export const PI = 3.14; export function calculateCircumference(radius) { return 2 * PI * radius; }</syntaxhighlight> この場合、<code>PI</code>や<code>calculateCircumference</code>を他のモジュールからインポートできます。 ; app.js :<syntaxhighlight lang=js copy> import { PI, calculateCircumference } from './myModule.js'; console.log(PI); // 3.14 console.log(calculateCircumference(5)); // 31.4</syntaxhighlight> ==== デフォルトエクスポート ==== デフォルトエクスポートでは、モジュール内で1つの要素をエクスポートする際に使用します。この方法では、エクスポートする要素に名前をつける必要がなく、インポートする側が任意の名前をつけてインポートします。 ; myModule.js :<syntaxhighlight lang=js copy> export default function greet(name) { console.log(`Hello, ${name}!`); }</syntaxhighlight> デフォルトエクスポートされた関数は、インポート側で任意の名前で使用できます。 ; app.js :<syntaxhighlight lang=js copy> import greet from './myModule.js'; greet('Alice'); // Hello, Alice!</syntaxhighlight> === 7.3 モジュールのインポート === モジュールをインポートする際は、<code>import</code>キーワードを使用します。インポートの際には、エクスポートされた要素を名前付きでインポートするか、デフォルトエクスポートされた要素をそのままインポートするかを選択できます。 ==== 名前付きインポート ==== 名前付きインポートでは、エクスポートされた要素を個別にインポートします。インポートする名前はエクスポートされた名前と一致させる必要があります。 ; myModule.js :<syntaxhighlight lang=js copy> export const name = "Alice"; export function greet() { console.log("Hello, " + name); }</syntaxhighlight> ; app.js :<syntaxhighlight lang=js copy> import { name, greet } from './myModule.js'; console.log(name); // Alice greet(); // Hello, Alice</syntaxhighlight> ==== デフォルトインポート ==== デフォルトインポートでは、モジュール内でデフォルトエクスポートされた要素をインポートします。この方法では、インポートする名前を任意に指定できます。 ; myModule.js :<syntaxhighlight lang=js copy> export default function greet() { console.log("Hello!"); }</syntaxhighlight> ; app.js :<syntaxhighlight lang=js copy> import greet from './myModule.js'; greet(); // Hello!</syntaxhighlight> === 7.4 モジュールの実行順序と依存関係 === モジュールは依存関係に基づいて順番に読み込まれ、実行されます。モジュール内のコードは、インポートされたモジュールが全てロードされる前に実行されることはありません。これにより、モジュール間の依存関係を管理し、循環参照などの問題を回避することができます。 モジュールがインポートされた順番に、依存関係が解決されます。例えば、モジュール<code>A</code>がモジュール<code>B</code>をインポートしている場合、モジュール<code>A</code>のコードはモジュール<code>B</code>が完全に評価された後に実行されます。 ; A.js :<syntaxhighlight lang=js copy> import { message } from './B.js'; console.log(message); // B.jsからインポートしたmessageが表示される </syntaxhighlight> ; B.js :<syntaxhighlight lang=js copy> export const message = "Hello from B!"; </syntaxhighlight> 上記の例では、<code>A.js</code>が<code>B.js</code>をインポートしていますが、<code>A.js</code>が実行される前に<code>B.js</code>が評価され、その後<code>A.js</code>が実行されます。 === 7.5 モジュールの動的インポート === ES6では、モジュールを動的にインポートすることもできます。これにより、必要な時にモジュールを非同期的にインポートすることができ、コードの分割や遅延読み込みを実現できます。動的インポートは、<code>import()</code>関数を使用して行います。 ; app.js :<syntaxhighlight lang=js copy> async function loadModule() { const module = await import('./myModule.js'); module.greet(); } loadModule();</syntaxhighlight> この方法を使用することで、アプリケーションのパフォーマンスを向上させることができ、必要なタイミングでのみモジュールをロードすることができます。 === 7.6 まとめ === モジュールは、JavaScriptコードの構造を整理し、再利用性を高め、依存関係を管理するための非常に重要な機能です。ES6で導入されたモジュールシステムにより、標準的で一貫性のある方法でコードを管理できるようになりました。<code>export</code>と<code>import</code>を適切に使いこなすことで、プロジェクトの規模が大きくなっても効率的にコードを管理できます。 この章で学んだ内容をもとに、さらに高度なモジュールシステムの使い方を探求し、実際のプロジェクトに役立てていきましょう。 == 第8章 クラスとオブジェクト指向プログラミング == === 8.1 クラスの導入 === ES6では、JavaScriptにおけるオブジェクト指向プログラミングを簡素化するために、<code>class</code>構文が導入されました。従来のJavaScriptでは、オブジェクトや関数を使って疑似的にクラスのようなものを実装していましたが、<code>class</code>構文を使用することで、より直感的にオブジェクト指向の考え方を実現できます。 クラスは、オブジェクトの設計図として機能します。インスタンス化することで、クラスから個別のオブジェクトを作成できます。 ==== クラスの定義 ==== クラスは<code>class</code>キーワードを使って定義します。クラスの中で定義するメソッドは、通常の関数とは異なり、関数名の前に<code>function</code>キーワードを記述する必要はありません。 :<syntaxhighlight lang=js copy> class Person { constructor(name, age) { this.name = name; this.age = age; } greet() { console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`); } } </syntaxhighlight> 上記の例では、<code>Person</code>クラスを定義しています。<code>constructor</code>メソッドは、インスタンス化時に呼ばれる特別なメソッドで、オブジェクトの初期状態を設定します。 ==== インスタンス化 ==== クラスを定義した後は、そのクラスからインスタンスを作成することができます。インスタンスは、<code>new</code>キーワードを使って作成します。 :<syntaxhighlight lang=js copy> const person1 = new Person("Alice", 30); person1.greet(); // Hello, my name is Alice and I am 30 years old. </syntaxhighlight> <code>person1</code>は<code>Person</code>クラスのインスタンスです。このインスタンスは、<code>name</code>と<code>age</code>のプロパティを持ち、<code>greet</code>メソッドを呼び出すことができます。 === 8.2 コンストラクタとプロパティ === クラスの<code>constructor</code>メソッドは、インスタンス化時に呼ばれ、オブジェクトの初期化を行います。<code>constructor</code>メソッドの中で<code>this</code>キーワードを使うと、そのインスタンスのプロパティにアクセスできます。 :<syntaxhighlight lang=js copy> class Rectangle { constructor(width, height) { this.width = width; this.height = height; } area() { return this.width * this.height; } } const rect = new Rectangle(10, 20); console.log(rect.area()); // 200 </syntaxhighlight> この例では、<code>Rectangle</code>クラスに<code>width</code>と<code>height</code>というプロパティを持たせ、<code>area</code>メソッドで面積を計算しています。<code>new Rectangle(10, 20)</code>により、インスタンス<code>rect</code>が作成され、<code>area</code>メソッドを使って面積が求められます。 === 8.3 継承と<code>extends</code>キーワード === ES6では、クラスの継承が簡単にできるようになりました。クラスは<code>extends</code>キーワードを使って他のクラスを継承することができます。継承することで、親クラスのプロパティやメソッドを子クラスで再利用することができ、コードの再利用性が高まります。 :<syntaxhighlight lang=js copy> class Animal { constructor(name) { this.name = name; } speak() { console.log(`${this.name} makes a sound.`); } } class Dog extends Animal { constructor(name, breed) { super(name); // 親クラスのコンストラクタを呼び出す this.breed = breed; } speak() { console.log(`${this.name} barks.`); } } const dog = new Dog("Rex", "German Shepherd"); dog.speak(); // Rex barks. </syntaxhighlight> 上記の例では、<code>Animal</code>クラスを基にして、<code>Dog</code>クラスが継承され、<code>speak</code>メソッドをオーバーライドしています。<code>super(name)</code>は、親クラスである<code>Animal</code>の<code>constructor</code>を呼び出すために使用されます。 === 8.4 ゲッターとセッター === JavaScriptのクラスには、オブジェクトのプロパティにアクセスするための「ゲッター」および「セッター」を定義することができます。ゲッターはプロパティを取得するために、セッターはプロパティに値を設定するために使用されます。 :<syntaxhighlight lang=js copy> class Circle { constructor(radius) { this._radius = radius; // アンダースコアを使ってプライベートプロパティを示す } get radius() { return this._radius; } set radius(value) { if (value <= 0) { console.log("Invalid radius"); } else { this._radius = value; } } } const circle = new Circle(5); console.log(circle.radius); // 5 circle.radius = -2; // Invalid radius </syntaxhighlight> この例では、<code>radius</code>プロパティに対してゲッターとセッターを定義しています。<code>circle.radius</code>を使ってプロパティにアクセスし、<code>circle.radius = -2</code>のように設定することができます。セッターでは、無効な値が設定された場合にエラーメッセージを表示するようにしています。 === 8.5 静的メソッド === クラスには静的メソッドを定義することもできます。静的メソッドは、インスタンスではなくクラス自体に関連付けられたメソッドです。静的メソッドは、<code>static</code>キーワードを使って定義します。 :<syntaxhighlight lang=js copy> class MathUtility { static square(x) { return x * x; } } console.log(MathUtility.square(5)); // 25 </syntaxhighlight> この例では、<code>MathUtility</code>クラスに<code>static</code>メソッド <code>square</code>を定義しています。このメソッドは、<code>MathUtility</code>クラスから直接呼び出すことができ、インスタンスを生成せずに使用できます。 === 8.6 まとめ === JavaScriptのクラスを使うことで、オブジェクト指向プログラミングを実践する際に非常に直感的で簡単にコードを構造化することができます。クラス構文は、インスタンス化、継承、メソッド定義、ゲッター・セッター、静的メソッドなど、さまざまなオブジェクト指向の概念をサポートしており、大規模なアプリケーションの開発において重要な役割を果たします。クラスを上手に活用することで、コードの可読性と再利用性を高めることができます。 == 終章 ECMAScriptの未来と進化 == ECMAScript(略してES)は、現在のJavaScriptの進化を支えている主要な仕様です。JavaScriptは、ウェブ開発において最も広く使用されているプログラミング言語の一つであり、進化を続けています。この終章では、ECMAScriptの今後の方向性、最近の進化、そして次のバージョンに期待される新機能について探ります。 === ECMAScriptの進化の歴史 === ECMAScriptは1997年に初めて策定され、その後、仕様が定期的に改訂されてきました。JavaScriptの普及により、ECMAScriptは様々な機能追加や改善が行われ、現在ではウェブアプリケーションやサーバーサイド開発、さらにはモバイルアプリケーションでも幅広く利用されています。 最初期のECMAScriptは、言語仕様としては非常に基本的なものであり、言語の型システムやオブジェクト指向のサポートが限定的でした。しかし、時間が経つにつれて、モダンなプログラミングパラダイムやツールとの統合が進み、より強力で使いやすい言語へと進化しました。特にES6(ECMAScript 2015)以降、モジュールシステム、クラス構文、<code>Promise</code>、非同期処理のための<code>async/await</code>などが追加され、JavaScriptの表現力が飛躍的に向上しました。 === ECMAScriptの最新進化 === ECMAScriptは毎年進化しています。新しい仕様がリリースされるたびに、言語はさらに強力で柔軟に、そして効率的になっています。最近では、以下のような重要な機能が追加され、改善されました。 ==== 1. Optional Chaining(オプショナルチェイニング) ==== ES2020で導入されたオプショナルチェイニング(<code>?.</code>)は、オブジェクトのプロパティを安全にアクセスするための構文です。これにより、プロパティが<code>null</code>や<code>undefined</code>であってもエラーを発生させずに、次の操作に進むことができます。 :<syntaxhighlight lang=js copy> const user = { address: { city: 'Tokyo' } }; const city = user?.address?.city; // 'Tokyo' const zipCode = user?.address?.zipCode; // undefined </syntaxhighlight> オプショナルチェイニングを使うことで、ネストされたプロパティにアクセスする際のエラーハンドリングが非常に簡単になりました。 ==== 2. Nullish Coalescing Operator(ヌリッシュ・コアレッシング演算子) ==== ES2020で追加された<code>??</code>演算子は、<code>null</code>または<code>undefined</code>の場合のみ右側の値を返す演算子です。従来の論理OR演算子(<code>||</code>)との違いは、<code>0</code>や空文字列(<code>""</code>)が<code>null</code>や<code>undefined</code>と同様に処理されない点です。 :<syntaxhighlight lang=js copy> const result = null ?? 'デフォルト値'; // 'デフォルト値' const value = '' ?? 'デフォルト値'; // '' </syntaxhighlight> <code>??</code>を使うことで、より正確に<code>null</code>や<code>undefined</code>を扱うことができます。 ==== 3. BigInt(ビッグインテジャ) ==== ES2020で導入された<code>BigInt</code>は、非常に大きな整数を扱うためのデータ型です。従来の<code>Number</code>型では扱えないような大きな整数を、<code>BigInt</code>を使って安全に計算することができます。 :<syntaxhighlight lang=js copy> const bigIntValue = 123456789012345678901234567890n; console.log(bigIntValue); // 123456789012345678901234567890n </syntaxhighlight> <code>BigInt</code>は、金融や科学技術計算、ゲーム開発などの分野で特に有用です。 ==== 4. Private Fields(プライベートフィールド) ==== ES2022で導入されたプライベートフィールドは、クラスの内部でのみアクセス可能なプロパティを定義する方法です。これにより、クラスの外部からは直接アクセスできない安全な内部状態を持つことができます。 :<syntaxhighlight lang=js copy> class Person { #name; constructor(name) { this.#name = name; } getName() { return this.#name; } } const person = new Person('Alice'); console.log(person.getName()); // 'Alice' console.log(person.#name); // SyntaxError: Private field '#name' must be declared in an enclosing class </syntaxhighlight> これにより、クラス内でのデータカプセル化が強化され、オブジェクト指向プログラミングにおけるデータの保護がより厳密に行えるようになりました。 ==== 5. Top-Level Await(トップレベルawait) ==== ES2022で導入されたトップレベルの<code>await</code>は、モジュールのトップレベルで非同期コードを実行できるようにする機能です。これにより、非同期処理を行うために関数をラップする必要がなくなり、コードがシンプルになります。 :<syntaxhighlight lang=js copy> const response = await fetch('https://api.example.com'); const data = await response.json(); console.log(data); </syntaxhighlight> トップレベルで<code>await</code>を使うことで、非同期コードをモジュール内で簡潔に記述できます。 === ECMAScriptの将来 === 今後、ECMAScriptの仕様はさらに進化し続けると予想されます。JavaScriptの普及と進化を牽引しているコミュニティやエンジニアたちは、言語の表現力、効率、セキュリティ、そして開発者の生産性を向上させるために、新しい提案や改善を続けています。 ==== 1. デコレーター ==== デコレーターは、クラスやメソッド、プロパティにメタデータを追加するための構文です。現在は提案段階にありますが、将来的にはJavaScriptの標準機能として取り入れられることが期待されています。 :<syntaxhighlight lang=js copy> function log(target, key, descriptor) { const original = descriptor.value; descriptor.value = function(...args) { console.log(`${key} was called with args: ${args}`); return original.apply(this, args); }; return descriptor; } class Example { @log method(a, b) { return a + b; } } </syntaxhighlight> デコレーターを使うことで、コードの保守性や再利用性が向上することが期待されています。 ==== 2. パターンマッチング ==== パターンマッチングは、条件に一致するコードブロックを選択するための新しい方法です。現在のところ提案段階ですが、条件分岐をより簡潔に、かつ直感的に記述できるようになります。 :<syntaxhighlight lang=js copy> // 現状のJavaScriptにおけるswitch文 let shape = { kind: 'circle', radius: 10 }; switch (shape.kind) { case 'circle': console.log(`円周: ${2 * Math.PI * shape.radius}`); break; case 'rectangle': // ... break; default: console.log('未知の形状'); } // パターンマッチングを用いた場合 let shape = { kind: 'circle', radius: 10 }; switch (shape) { case { kind: 'circle', radius: r }: console.log(`円周: ${2 * Math.PI * r}`); break; case { kind: 'rectangle', width: w, height: h }: console.log(`面積: ${w * h}`); break; default: console.log('未知の形状'); } </syntaxhighlight> これをパターンマッチングに置き換えることで、より洗練されたコードが書けるようになると期待されています。 === まとめ === ECMAScriptの進化は、JavaScriptの強力な機能と柔軟性を支える重要な要素です。最新の仕様では、非同期処理の改善、新しいデータ型、そしてコードの表現力を向上させる機能が追加され、ますます効率的でシンプルなコードを書くことができるようになっています。今後もECMAScriptは進化し続けると予想され、さらに多くの便利で強力な機能が追加されることでしょう。 本書では、ECMAScriptの基本的な構文から、最新の機能に至るまでを広範囲にわたって解説しました。これらの知識を元に、今後のJavaScript開発に役立てていただければと思います。 == 附録 == === キーワード一覧 === 以下は、ECMAScriptのキーワード一覧を表形式でまとめたものです。各キーワードの簡単な説明も加えています。 {| class="wikitable" |+ ECMAScriptのキーワード一覧 !キーワード !説明 |- !<code>await</code> |非同期関数内で使用され、Promiseが解決されるのを待つ。 |- !<code>break</code> |ループまたはswitch文を中断する。 |- !<code>case</code> |switch文で条件に一致する場合の処理を定義する。 |- !<code>catch</code> |try-catch文で例外をキャッチする。 |- !<code>class</code> |クラスを定義する。 |- !<code>const</code> |定数を定義する。 |- !<code>continue</code> |ループの次の反復に移行する。 |- !<code>debugger</code> |デバッガを起動する。 |- !<code>default</code> |switch文で、条件が一致しない場合のデフォルト処理を定義する。 |- !<code>delete</code> |オブジェクトのプロパティを削除する。 |- !<code>do</code> |do-whileループの開始を示す。 |- !<code>else</code> |if文で、条件が偽の場合の処理を定義する。 |- !<code>enum</code> |列挙型を定義する(ECMAScript 6以降、特定の環境で使用)。 |- !<code>export</code> |モジュールから外部にエクスポートする。 |- !<code>extends</code> |クラスが他のクラスを継承する際に使用。 |- !<code>false</code> |論理値の偽を示す定数。 |- !<code>finally</code> |例外処理の後に必ず実行される処理を定義する。 |- !<code>for</code> |forループを開始する。 |- !<code>function</code> |関数を定義する。 |- !<code>if</code> |条件に基づいて処理を分岐する。 |- !<code>import</code> |モジュールからインポートする。 |- !<code>in</code> |オブジェクトがプロパティを持っているかチェックする。 |- !<code>instanceof</code> |オブジェクトが特定のクラスのインスタンスかをチェックする。 |- !<code>new</code> |新しいインスタンスを生成する。 |- !<code>null</code> |ヌル値、変数に値が設定されていないことを示す。 |- !<code>return</code> |関数の実行を終了し、値を返す。 |- !<code>super</code> |親クラスのメソッドやコンストラクタを呼び出す。 |- !<code>switch</code> |複数のケースに基づいて処理を分岐する。 |- !<code>this</code> |現在のオブジェクトを指し示す。 |- !<code>throw</code> |例外を発生させる。 |- !<code>true</code> |論理値の真を示す定数。 |- !<code>try</code> |例外処理を始める。 |- !<code>typeof</code> |変数の型を返す演算子。 |- !<code>var</code> |変数を定義する(<code>let</code>や<code>const</code>の前に使われていた)。 |- !<code>void</code> |式の評価を行うが、戻り値を返さないようにする。 |- !<code>while</code> |whileループを開始する。 |- !<code>with</code> |オブジェクトのプロパティに直接アクセスできる範囲を設定する(推奨されない)。 |- !<code>yield</code> |ジェネレータ関数内で値を返すために使用。 |} これらのキーワードはECMAScriptの文法において予約語であり、変数名や関数名として使用することはできません。 ただし、プロパティやメソッドにはキーワードを使用することはできます。 == 下位階層のページ == *[[ECMAScript/ECMAScript proposals]] *[[ECMAScript/TC39プロセス]] *[[ECMAScript/Technical Committee 39]] *[[ECMAScript/遅延評価の歴史]] == 外部リンク == {{Wikipedia|{{SUBPAGENAME}}}} * [https://tc39.es/ Ecma International, Technical Committee 39] ** [https://tc39.es/ecma262/2023/ ECMAScript 2023 Language Specification] ** [https://tc39.es/ecma262/2024/ ECMAScript 2024 Language Specification] ** [https://tc39.es/ecma262/ ECMA-262 Living Standard] {{DEFAULTSORT:ECMASCRIPT}} [[Category:ECMAScript|*]] [[Category:JavaScript]] [[Category:プログラミング言語]] {{NDC|007.64}} 7p8vzc3r721mtwsk7d796hft3gg5gzz ChromeOS 0 35526 301297 267848 2026-07-08T09:12:11Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301297 wikitext text/x-wiki {{Wikipedia|Google ChromeOS}} <div style="width: fit-content;float:left; margin: 0 2rem 0 0">__TOC__</div> Google ChromeOS<ref>公式では「ChromeOS」と「Chrome&nbsp;OS」の表記が混在していますが、本項では「ChromeOS」に統一しました。</ref>は、Googleが開発したクラウドベースのオペレーティングシステムで、主にChromebookと呼ばれるラップトップコンピュータに搭載されています。ChromeOSはシンプルで使いやすく、起動時間が短く、バッテリーの持ちが長いのが特徴です。また、Googleのオンラインサービスにシームレスにアクセスできるよう設計されており、GoogleドキュメントやGmailなどのアプリケーションを使用する際に最適化されています。 == ChromeOS の概要 == ChromeOSは、Googleが開発したオペレーティングシステムです。このOSは、Google Chromeブラウザを基盤としており、Webアプリケーションを中心に設計されています。 ChromeOSの特徴は、その軽量性と高速性にあります。データは主にクラウド上のサーバーに保存されることを前提としており、ローカルストレージの代わりにGoogle Driveなどのオンラインストレージサービスが使用されます。このため、ユーザーはインターネット接続さえあれば、どこからでもデータにアクセスすることが可能です。また、Googleの各種サービスとの統合が進んでおり、Googleドキュメント、Gmail、Googleカレンダーなどをスムーズに利用することができます。 ChromeOSは、Chromebookと呼ばれるノートパソコンや、Chromeboxと呼ばれるデスクトップコンピュータなどのデバイスで利用されています。セキュリティが強化されており、OSは自動的にアップデートされるため、セキュリティ上のリスクを最小限に抑えることができます。また、最近ではAndroidアプリの実行にも対応しており、これにより、ChromeOS上でより多くのアプリケーションを利用することが可能となっています。さらに、Linuxアプリケーションのサポートも進んでおり、開発者や技術者にとっても便利な環境が整っています。 {{clear}} == ChromeOS の利点 == ChromeOSの利点は、以下の通りです。 # 高速かつ軽量:ChromeOSは、高速かつ軽量であり、起動時間が短く、アプリケーションの起動も迅速です。そのため、生産性が向上し、快適な使用感が得られます。 # セキュリティ:ChromeOSは、セキュリティが強化されています。自動的にアップデートされるため、最新のセキュリティパッチが適用され、セキュリティ上のリスクを最小限に抑えることができます。また、アップデートプロセスは非常に迅速で、通常数分以内に完了します。このため、常に安全な環境で作業することができます。 # 簡単な管理:ChromeOSは、クラウドベースの管理システムであるGoogle Workspaceと統合されており、デバイスの管理が簡単です。一度に多数のデバイスを効率的に管理できるため、大規模な展開や運用に適しています。 # オフラインでの使用:ChromeOSは、オフラインでも使用可能です。Google Driveなどのオンラインストレージにデータを保存することで、インターネット接続がない環境でも作業を続けることができます。これにより、インターネット接続が不安定な場所でも安心して使用できます。 # Androidアプリの利用:ChromeOSは、Androidアプリの実行が可能です。これにより、多数のアプリケーションが利用でき、より多様な用途に対応できます。ユーザーは、ChromeOS上で豊富なアプリケーションのエコシステムを享受できます。 # 低価格:Chromebookは、他のノートパソコンと比べて低価格であり、コストパフォーマンスが高いため、学校や企業などでの大規模な展開に適しています。経済的な選択肢として、多くの場面で活用されています。 {{コラム|width=100%| Google ChromeOS Flex |2=[[w:ChromeOS Flex|ChromeOS Flex]]は、Neverwareが開発したCloudReady OSの改良版で、Neverwareが[[w:Google|Google]]の傘下に入った後にさらなる開発が行われているオペレーティングシステムです。中古パソコンにChromebookと同等の操作性を提供することができ、純正のChromebookと同様に、高速な起動時間や長時間のバッテリー寿命が特長です。 ; 概要 ChromeOS Flexの最大の利点は、認定された中古パソコンにインストールできる点です。ただし、通常のChromebookとは異なり、Google PlayやAndroidアプリ、仮想マシンのサポートはありません。代わりにPWA(Progressive Web Apps)をサポートし、Linux環境も利用可能です。また、低スペックのパソコンにも対応しているため、既存のハードウェアを再利用することができます。 ; システム要件 ChromeOS Flexを利用するには、以下のスペックが必要です: * Intel または AMD x86 64ビットプロセッサ(2010年以降推奨) * メモリ: 4GB以上(推奨) * 内蔵ストレージ: 16GB以上 * UEFI対応(レガシーBIOSは非推奨) * USBブート機能 ;導入状況 ChromeOS Flexを利用して中古パソコンを販売している業者も存在し、エンタープライズ向けの管理機能も提供されています。認定デバイスのリストは定期的に更新され、対応機種は増加傾向にあります。 この取り組みは中古パソコンの再利用を促進し、電子廃棄物の削減にも貢献しています。 ; 注目の背景 [[w:Microsoft Windows 11|Microsoft Windows 11]]のシステム要件<ref>[https://www.microsoft.com/ja-jp/windows/windows-11-specifications#table1 Windows 11 の仕様、機能、コンピューターの要件を確認する]</ref>が発表され、TPM 2.0などの要件により多くのPCがサポート対象外となることが明らかになりました。これにより、ChromeOS Flexは既存PCの延命策として注目を集めることとなりました。ChromeOS Flexは、セキュリティ面でも優れた特長を持ち、企業や教育機関での導入も進んでいます。 }} {{コラム|width=100%|GIGAスクール構想|2=GIGAスクール構想は、日本の文部科学省が2019年に開始した取り組みで、全国の児童・生徒に1人1台のコンピューターと高速ネットワークを整備することを目的としています。この取り組みは、学校のICT環境が脆弱であり、地域間での整備状況に大きな格差があるという危機的な状況に対処するために始まりました。GIGAスクール構想は、2019年12月に閣議決定され、2021年度3月までに1,742自治体など(96.1%)が整備を完了し、小・中学生一人一台教育用端末の整備がほぼ完了しました。 ChromeOSは、『GIGAスクール構想の実現 標準仕様書』<ref>[https://www.mext.go.jp/content/20200303-mxt_jogai02-000003278_407.pdf GIGAスクール構想の実現 標準仕様書](2022-09-03 閲覧)</ref>で、「学習者用コンピュータ(児童生徒用)」として指定された3つのオペレーティングシステムの1つとして挙げられています。具体的には、以下の3種類です。 # Microsoft Windows 端末 # Google ChromeOS 端末 # iPadOS 端末 これらの中で、ChromeOSが全体の40.1%、Windowsが30.4%、iPadOSが29.0%と<ref>[https://active.nikkeibp.co.jp/atcl/act/19/00006/112500185/ GIGAスクール端末の利活用 小学校84%、中学校91%が全学年で開始 - データは語る:日経クロステック Active]</ref><ref>原資料ではiOSと記載されていましたが、iPadのOSはiPadOSであり、『GIGAスクール構想の実現 標準仕様書』でも「iPadOS 端末」としているため、iPadOSとしました。</ref>、ChromeOSの採用が目立ちました。GIGAスクール構想でChromeOSの採用が多かった理由として、さまざまな分析がありますが、標準仕様書のハードウェア・スペックは当時の水準から考えても比較的低く、特にChromeOSとWindowsを比較すると、ストレージの容量以外は同じスペックであり、相対的に使用資源が少ないChromeOSが軽快に動作し、Windowsが鈍重に感じられることが一因として挙げられます。 }} 以下に、ChromeOS、Windows、iPadOSの比較を表形式でまとめました。 {| class=wikitable |+ ChromeOS、Windows、iPadOSの比較 |- !機能/特徴 !ChromeOS !Windows !iPadOS |- !セキュリティ性 |高い |平均的 |高い |- !ハードウェア要件 |低い |高い |平均的 |- !ソフトウェア/アプリケーション |Google Playストアのアプリ、Linuxアプリに対応 |多数のソフトウェア/アプリケーションに対応 |App Storeのアプリに対応 |- !オフライン利用 |一部のアプリ/機能のみ利用可 |多数のアプリ/機能がオフライン利用可 |一部のアプリ/機能のみ利用可 |- !マルチタスク性 |高い |高い |平均的 |- !ファイル管理 |Google Driveを中心にしたクラウドストレージ |ローカルストレージやクラウドストレージに対応 |iCloudを中心にしたクラウドストレージ |- !タッチスクリーン対応 |一部のデバイスに対応 |一部のデバイスに対応 |ほぼ全てのデバイスに対応 |- !ペン入力対応 |一部のデバイスに対応 |一部のデバイスに対応 |ほぼ全てのデバイスに対応 |- !価格 |低価格から中価格 |低価格から高価格 |中価格から高価格 |} 以上のように、ChromeOSは低価格でありながらセキュリティ性が高く、Google PlayストアのアプリやLinuxアプリに対応している点が特徴的です。 一方、Windowsは多数のソフトウェア/アプリケーションに対応しているものの、価格が高く、ハードウェア要件が高いために高性能なデバイスが必要になることがあります。 iPadOSは、タッチスクリーンやペン入力に対応しており、クラウドストレージにはiCloudがありますが、比較的高価なデバイスが多い点が特徴的です。 == デバイスのセットアップ == Chromebookのセットアップには、以下の手順が含まれます。 === Chromebookの起動 === Chromebookを開封し、電源ボタンを押して起動します。初回起動時には、言語設定、キーボードの設定、ネットワーク接続の設定を行う必要があります。 === Wi-Fi接続 === 初回起動時には、Wi-Fi接続の設定を行う必要があります。接続先のWi-Fiネットワークを選択し、パスワードを入力することで、接続が完了します。 === Googleアカウントの設定 === 初回起動時には、Googleアカウントの設定も必要です。すでにGoogleアカウントを持っている場合は、そのアカウントでログインします。Googleアカウントを持っていない場合は、新しいアカウントを作成することができます。 Googleアカウントの設定が完了すると、Chromebookは自動的にGoogleのサービスと同期され、Googleドライブ、Gmail、Googleカレンダーなどのアプリケーションを利用できるようになります。 以上がChromebookのセットアップの基本的な手順です。Chromebookは簡単にセットアップでき、使いやすく、安全なオペレーティングシステムです。 == Chromebookの基本操作 == Chromebookの基本操作には、以下の手順が含まれます。 === デスクトップとシェル === Chromebookのデスクトップは、Google Chromeブラウザのウィンドウとして表示されます。アプリケーションを起動するには、左下のアプリ一覧からアプリをクリックするか、タスクバーにピン留めすることができます。 Chromebookのシェルは、Linuxベースのターミナルウィンドウとしてアクセスできます。シェルを開くには、Ctrl + Alt + Tを押して、ターミナルウィンドウを開くことができます。 === ウィンドウの操作 === Chromebookでは、複数のウィンドウを同時に開いて作業することができます。ウィンドウの移動は、Alt + Tabを使用することで行えます。ウィンドウの最大化と最小化は、ウィンドウ右上のアイコンをクリックすることで行えます。また、ウィンドウのサイズを調整するには、ウィンドウの右下にあるサイズ変更アイコンをクリックして、ウィンドウのサイズを変更することができます。 === ファイルの管理 === Chromebookでは、Google Driveやローカルストレージを使用して、ファイルの管理を行うことができます。Google Driveには、ドキュメント、スプレッドシート、プレゼンテーション、PDFファイルなどを保存できます。ローカルストレージには、写真、音楽、ビデオ、ダウンロードファイルなどを保存できます。 ファイルを開くには、Google Driveやローカルストレージからファイルをクリックするか、Chromebookのファイルマネージャーを使用することができます。ファイルマネージャーには、フォルダー、ファイル、ドライブなどが表示されます。ファイルマネージャーを開くには、タスクバーからファイルマネージャーアイコンをクリックします。 以上がChromebookの基本操作の手順です。Chromebookは、シンプルで使いやすいオペレーティングシステムであり、高速かつ軽量なため、生産性を向上させるために必要な操作が簡単に行えます。 == Googleアプリケーションの使い方 == ChromeOSには、Googleのさまざまなアプリケーションが搭載されています。以下では、主要なアプリケーションであるGmail、Googleドライブ、Googleカレンダーの使い方を紹介します。 === Gmail === Gmailは、Googleが提供するメールサービスです。Chromebookのデフォルトのメールアプリケーションとして使用することができます。Gmailは、スパムフィルター、自動返信、カレンダーとの連携、複数のアカウントの管理など、多数の便利な機能を提供しています。 Gmailを使用するには、Googleアカウントにログインする必要があります。ログイン後、左側のサイドバーからメールを送信したり、受信したりすることができます。また、Gmailの検索機能を使用して、過去に受信したメールを検索することもできます。 === Googleドライブ === Googleドライブは、クラウドストレージサービスであり、Googleが提供するオンラインストレージサービスです。Googleドライブには、ドキュメント、スプレッドシート、プレゼンテーション、PDFファイルなどのドキュメントを保存できます。また、Googleドライブに保存されたドキュメントは、Googleの共同編集機能を使用して、複数の人が同時に編集できます。 Googleドライブを使用するには、Googleアカウントにログインする必要があります。ログイン後、Googleドライブのウェブサイトにアクセスすることができます。ファイルのアップロード、共同編集、フォルダーの作成、共有など、多数の便利な機能を提供しています。 === Googleカレンダー === Googleカレンダーは、Googleが提供するカレンダーアプリケーションです。Googleカレンダーには、予定の作成、共有、通知、リマインダーなど、多数の便利な機能があります。 Googleカレンダーを使用するには、Googleアカウントにログインする必要があります。ログイン後、Googleカレンダーのウェブサイトにアクセスすることができます。予定の作成や共有、通知、リマインダーなど、多数の便利な機能を提供しています。 以上が、Chromebookに搭載されている主要なGoogleアプリケーションの使い方です。これらのアプリケーションは、Googleアカウントにログインするだけで利用することが可能です。 == Chromebookの高度な操作 == 以下は、Chromebookの高度な操作に関する内容です。 === キーボードショートカット === Chromebookには、多数のキーボードショートカットが用意されています。これらのショートカットを使用することで、タブの切り替え、画面のスクロール、ウィンドウの最大化/最小化などを簡単に行うことができます。 Chromebookの主なキーボードショートカットには、以下のものがあります。 * Ctrl + Alt + T: ターミナルを開く * Alt + 検索キー: アプリケーションメニューを開く * Ctrl + Shift + Q (2回): Chromebookをシャットダウンする * Ctrl + Shift + L: ログアウトする * Ctrl + Shift + W: タブをすべて閉じる * Ctrl + Shift + N: シークレットウィンドウを開く === Chromebookの設定 === Chromebookの設定は、Chromebookのステータスエリアをクリックして、設定アイコン(⚙)を選択することでアクセスできます。設定アイコンをクリックすると、Wi-Fi、Bluetooth、音量、スクリーンの明るさなど、多数の設定を変更できるメニューが表示されます。 Chromebookの設定メニューには、Chromebookの管理、デバイス、システム、アプリなどのカテゴリがあります。各カテゴリには、多数の設定項目が含まれています。たとえば、「デバイス」カテゴリには、マウス、タッチパッド、外部ディスプレイ、ストレージなどの設定項目があります。 === Linuxアプリケーションのインストール === Chromebookには、Linuxアプリケーションをインストールして使用することができます。Linuxアプリケーションをインストールするには、ChromebookにLinux開発環境をインストールする必要があります。 Linuxをインストールするには、Chromebookの設定メニューで「デベロッパー » Linux開発環境」オプションを有効にします。Linuxが有効になった後、Linux用のターミナルが利用可能になります。 Linux用のターミナルを使用して、DebianベースのLinuxパッケージ管理システムである「apt-get」を使用して、Linuxアプリケーションをインストールすることができます。 == ChromeOSにおけるLinuxサポートの概要 == ChromeOSは、Linuxアプリケーションを安全に実行するための仮想化環境を提供しています。この機能は「Linux開発環境」または「Crostini」として知られ、開発者やパワーユーザーがChromeOS上でLinuxアプリケーションを利用できるようにします。 === アーキテクチャ概要 === ChromeOSのLinux実行環境は、以下のような階層構造になっています: # 最上位層:ChromeOS(ホストOS) # 仮想化層:KVMベースの仮想マシン(termina) # コンテナ層:LXDで管理されるDebianベースのLinuxコンテナ(penguin) # アプリケーション層:Linuxアプリケーション === 主要な要素 === ChromeOSにおけるLinuxアプリケーション実行には以下の要素が含まれています: ==== 基盤システム ==== ; Crostini : ChromeOSの仮想化機能の総称です。以下の特徴があります: :* セキュリティを重視した設計で、Linuxアプリケーションをホストシステムから隔離 :* ファイルシステムの共有やクリップボードの連携機能を提供 :* GPUアクセラレーションのサポート :* ネットワークアクセスの管理 ; termina : ChromeOSの仮想化マネージャで、以下の役割を持ちます: :* KVMベースの軽量な仮想マシンを実行 :* システムリソースの管理 :* セキュリティ境界の確立 :* ホストOSとゲストOS間の通信制御 ==== コンテナ管理 ==== ; LXD : 高レベルのコンテナ管理ツールで、以下の機能を提供: :* コンテナのライフサイクル管理(作成、起動、停止、削除) :* リソース制限の設定 :* ストレージプールの管理 :* ネットワーク設定 :* スナップショットとバックアップ ; LXC : 低レベルのLinuxコンテナ技術で、以下の特徴があります: :* 軽量な仮想化環境の提供 :* システムコンテナのサポート :* カーネル名前空間の分離 :* リソース管理機能 ==== インターフェース ==== ; Wayland : 最新のディスプレイサーバーで、以下の役割を担います: :* グラフィカルアプリケーションの表示管理 :* ウィンドウマネージャとの連携 :* HiDPIサポート :* タッチスクリーン入力の処理 ; crosh : ChromeOS用のシェル環境で、以下の機能を提供: :* 開発者向けコマンドラインインターフェース :* システム診断コマンド :* ネットワーク設定ツール :* デバッグ機能 ==== 管理ツール ==== ; vsh : 仮想マシン操作ツールで、以下の機能があります: :* Crostini環境へのシェルアクセス :* 仮想マシンの状態確認 :* コマンドライン操作の実行 ; vmc : 仮想マシン管理ツールで、以下の操作が可能: :* 仮想マシンの起動/停止 :* コンテナの作成/削除 :* ネットワーク設定の変更 :* ディスク容量の管理 ==== Freon ==== : ChromeOSのグラフィックススタックの一部で、以下の機能を提供します: :* GPUリソースの管理 :* GPUドライバの効率的な利用 :* 低レイテンシのグラフィックス処理 ==== Project Lacros ==== : ChromeOS上でのLinuxアプリケーションの実行をさらに向上させるプロジェクトです。以下の特徴があります: :* LinuxアプリケーションをChromeブラウザと統合することにより、ネイティブアプリケーションのように動作させる :* ユーザー体験の向上を目指した新しいアーキテクチャを開発中 === 動作の流れ === # ユーザーがLinuxアプリケーションを起動 # ChromeOSがterminaを通じて仮想マシンを管理 # LXDがLinuxコンテナ内でアプリケーションを実行 # WaylandがGUIアプリケーションの表示を処理 # ChromeOSのウィンドウマネージャがアプリケーションウィンドウを管理 この階層化された構造により、セキュリティを確保しながら、ChromeOS上でLinuxアプリケーションをネイティブに近い性能で実行することが可能になっています。 == ChromeOSとWayland == ChromeOSは、Waylandと互換性を持つ部分もありますが、独自のディスプレイサーバーとウィンドウ管理システムを採用しているため、完全にWaylandに基づいているわけではありません。以下、ChromeOSとWaylandの関連について詳しく解説します。 === ChromeOSのディスプレイスタック === ChromeOSはもともと、X11やWaylandとは異なる独自のグラフィックススタックを使用していますが、特定の条件下でWayland互換を提供しています。以下のような設計が特徴です。 ; Freon : ChromeOSは以前はX11を一部で使用していましたが、「Freon」と呼ばれる独自のディスプレイ管理システムに切り替わっています。Freonは直接グラフィックハードウェアにアクセスし、レンダリングを効率化しています。この変更により、X11に依存しない軽量なグラフィックススタックが実現され、リソース消費の低減やパフォーマンス向上に寄与しています。 ; Waylandプロトコルの部分採用 : ChromeOSでは、特にLinuxアプリケーションサポート(Crostiniプロジェクト)において、Waylandプロトコルが部分的に使用されています。これにより、Wayland対応のLinuxアプリケーションがChromeOS上でシームレスに動作するようサポートされています。ただし、完全なWayland実装ではなく、ChromeOSのウィンドウ管理システムと統合された形で提供されています。 ; Exoコンポジタ : ChromeOSには「Exo」と呼ばれる独自のコンポジタがあり、これがWaylandクライアントに対してプロトコルの一部をエミュレートしています。ExoはWaylandと互換性を持ちながら、ChromeOSの固有のウィンドウ管理スタイルやアプリケーションの動作をサポートする役割を果たしています。特に、Crostini(Linuxアプリケーションのサポート)でLinuxアプリがChromeOS上で統合される際に使用されています。 ; ARC(Android Runtime for Chrome)との連携 : ChromeOSではAndroidアプリケーションも動作するため、WaylandベースのアプリとAndroidアプリが混在しています。ARCは独自のグラフィックス層を持ち、AndroidアプリケーションをChromeOSに統合するための役割を担っています。Waylandベースのアプリとは異なるものの、ChromeOS全体としてはシームレスなウィンドウ管理が提供されています。 === ChromeOS上でのWaylandアプリケーションの動作 === ChromeOSでLinuxアプリを動作させる際、Waylandプロトコルを通じて動作するアプリケーションのサポートが可能です。Waylandプロトコル対応のアプリケーションはExoコンポジタを介してChromeOSのディスプレイ環境に表示されます。このプロセスには次のようなポイントが含まれます。 ; Crostiniとの連携 : ChromeOSのLinux環境であるCrostiniでは、Waylandプロトコルの一部を利用してLinuxアプリケーションが動作します。これにより、ChromeOS上のLinuxウィンドウがネイティブに動作するように表示されます。実際にはWayland互換の仮想ディスプレイが設定されており、Exoを介してChromeOSの画面に描画されます。 ; Sommelier : ChromeOSでは、LinuxアプリケーションをWaylandまたはX11の両方でサポートするために、「Sommelier」と呼ばれる中間層が使用されます。Sommelierは、Waylandプロトコルを利用してChromeOSのディスプレイサーバーと通信し、ChromeOSのウィンドウ管理に適応します。これにより、LinuxアプリケーションがChromeOS上でまるでネイティブアプリのように動作します。 === まとめ === ChromeOSは独自のFreonおよびExoを使用しており、完全なWaylandスタックに基づいているわけではありません。しかし、Waylandプロトコルを一部採用し、Linuxアプリケーションのサポートを実現するために互換性が提供されています。特にCrostiniやSommelierの導入により、WaylandアプリケーションをChromeOS上でシームレスに動作させる環境が整えられ、ユーザーはChromeOSのシンプルなインターフェースで多様なアプリケーションを利用できます。 == トラブルシューティング == 以下は、Chromebookのトラブルシューティングに関する内容です。 === Chromebookの問題の特定 === Chromebookには、多数の問題が発生する可能性があります。たとえば、Chromebookが起動しない、Wi-Fiに接続できない、アプリケーションがクラッシュするなどの問題があります。 問題を特定するには、Chromebookの設定メニューで「問題の解決」オプションを使用します。問題の解決オプションを使用すると、問題が発生したときに取るべき手順が表示されます。たとえば、Wi-Fiに接続できない場合は、Wi-Fiアイコンをクリックして「問題の解決」オプションを選択することができます。問題の解決オプションを使用しても問題が解決しない場合は、Googleのサポートに連絡することができます。 === ネットワーク接続の問題解決 === Chromebookでネットワーク接続の問題が発生した場合は、以下の手順を実行して解決することができます。 * Wi-Fiをオンにする * Wi-Fiアイコンをクリックして、接続したいWi-Fiネットワークを選択する * Wi-Fiネットワークに接続できない場合は、パスワードが正しいことを確認する * Wi-Fiネットワークに接続できない場合は、ルーターの再起動を試みる * ルーターの再起動が効果がない場合は、Chromebookを再起動する === システムのリセット === Chromebookのシステムをリセットすることで、問題を解決することができます。システムをリセットするには、以下の手順を実行します。 * Chromebookをシャットダウンする * パワーボタンを押して、Chromebookを再起動する * Chromebookのログイン画面で、Esc + Refresh + Powerを同時に押す * 「Powerwash」オプションを選択して、Chromebookをリセットする システムをリセットすると、Chromebookのすべてのデータと設定が削除されます。リセット後に再びログインすると、Chromebookは新しい状態で開始されます。 {{コラム|width=100%|ChromiumOSとChromeOS|2=Chromium OSとChromeOSは、Googleによって開発されたオペレーティングシステムです。 Chromium OSは、Googleがオープンソースで開発しているオペレーティングシステムで、主にWebアプリケーションの実行を目的としています。Chromium OSは、Chromeブラウザをベースとしており、Googleが提供する多くのWebアプリケーションをサポートしています。また、Chromium OSは、セキュリティを強化するために、アプリケーションの実行をサンドボックス化するなどの機能を備えています。Chromium OSは、オープンソースであるため、誰でも自由に使用、改変、配布することができます。 一方、ChromeOSは、Chromium OSをベースにGoogleが開発した商用のオペレーティングシステムです。ChromeOSは、Chromium OSと同様にWebアプリケーションの実行に特化していますが、商用製品として提供されるため、セキュリティやユーザーインターフェースなどの点で、より洗練された仕組みを備えています。また、ChromeOSは、Chromebookというハードウェアプラットフォームに最適化されており、ChromebookにはChromeOSがプリインストールされています。 簡単に言えば、Chromium OSはオープンソースのプロジェクトで、誰でも自由に使用できるオペレーティングシステムであり、一方のChromeOSは商用のオペレーティングシステムであり、Googleが提供するハードウェアプラットフォームでのみ使用できます。 }} == 脚註 == <references /> == 外部リンク == * [https://www.google.com/intl/ja_jp/chromebook/chrome-os/ ChromeOS の機能 - Google Chromebook](Google) * [https://chromeos.dev/ ChromeOS for developers](en) == 下位階層のページ == *[[ChromeOS/Chromebrew]] *[[ChromeOS/Linux開発環境]] *[[ChromeOS/crosh]] *[[ChromeOS/vmc]] *[[ChromeOS/vsh]] [[Category:ChromeOS|*]] [[Category:オペレーティングシステム]] {{NDC|007.64}} 4j3i858tppo4v3ddwelasgxcmpzztn9 FreeBSD 0 37138 301305 268947 2026-07-08T09:40:24Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301305 wikitext text/x-wiki FreeBSDは高性能かつ信頼性の高いオペレーティングシステムであり、プログラマにとって非常に魅力的なプラットフォームです。本書では、FreeBSDの基本的な概念から始まり、システム管理、ネットワーキング、プログラミング環境のセットアップ、言語別の開発、デバッグ、モジュール開発など、広範かつ実践的なトピックをカバーします。初めてのユーザーにはインストールと基本設定から始め、より経験豊富なプログラマには高度なテーマまで幅広く扱います。豊富なイラストや手順の説明、具体的なコード例を交え、読者が理解を深めながら実際のプロジェクトでFreeBSDを活用できるようにサポートします。本書はFreeBSDの理解と利用において欠かせないリソースとなることでしょう。 == はじめに == === FreeBSDとは === FreeBSDは、高性能で安定性があり、オープンソースのUnix系オペレーティングシステムです。これは、幅広い用途に適したカーネルとユーザーランドプログラムで構成されており、多くのプログラマやシステム管理者に支持されています。 === 特徴と利点 === ;高い性能と安定性: FreeBSDは優れたパフォーマンスと信頼性を提供し、大規模なシステムから組み込みデバイスまで様々な環境で利用されています。 ;オープンソース: FreeBSDは、[[W:BSDライセンス#三条項BSDライセンス|三条項BSDライセンス]] (3-clause BSD license) から「書面上の許可なく開発者の名称を派生物の推奨や販売促進に使用しない」という条項を削除した'''[[W:BSDライセンス#二条項BSDライセンス|二条項BSDライセンス]]''' (2-clause BSD license) がの下で提供され、コミュニティによって開発・メンテナンスされています。これにより、ユーザーはソースコードにアクセスし、自由に変更やカスタマイズが可能です。 ;強力なネットワーキング機能: FreeBSDはネットワーキングに特化しており、高度なネットワークサービスやセキュリティ機能を提供します。 === FreeBSDの歴史 === FreeBSDは、[[Berkeley Software Distribution]] (BSD) から派生したオープンソースのUnix系オペレーティングシステムであり、その歴史は長いものです。以下にFreeBSDの主な歴史的な出来事を要約します。 :{| class=wikitable |+ FreeBSDの歴史 |- !style="width:8em"|年 |事象 |- !1974年 |カリフォルニア大学バークレー校のBob Fabry教授がAT&TからUnixのソースライセンスを取得。DARPAの支援を受けて、Computer Systems Research GroupがAT&T Research Unixを改良し、「Berkeley Unix」または「Berkeley Software Distribution」(BSD)と呼ばれるようになる。 |- !1976年 |Bill JoyによってBSDプロジェクトが設立。BSDはAT&T Unixのコードを含んでいたため、使用するためにはまずAT&Tからライセンスを取得する必要があった。 |- !1989年6月 |"Networking Release 1"または単にNet/1 - 最初のBSDの公開バージョンがリリースされる。 |- !1991年 |"Networking Release 2"(Net/2)がAT&Tのコードを一部残してリリースされる。 |- !1992年 |Net/2の数ヶ月後、WilliamとLynne JolitzがAT&Tの6つのファイルの代替物を作成し、BSDをIntel 80386ベースのマイクロプロセッサに移植。386BSDとしてリリースされる。 |- !1992年1月 |Berkeley Software Design Inc.(BSDi)がBSD/386(後のBSD/OS)をリリース。AT&TはBSDiに対し、AT&Tのソースコードの配布がライセンス違反であるとして訴訟を起こす。 |- !1993年 |FreeBSDプロジェクトがジョーダン・ハバード、Rod Grimes、David Greenmanによってスタート。 |- !1993年6月19日 |FreeBSDの開発開始がアナウンスされる。 |- !1993年12月 |FreeBSD 1.0が最初のリリース。 |- !1994年1月 |ノベルとカリフォルニア大学バークレー校とのUNIX訴訟の和解が成立。4.3BSD Net/2にUNIXのライセンスに抵触する部分が認められる。 |- !1994年 |BSDiとAT&Tの訴訟は和解し、具体的な条件は公開されなかったが、BSDiはソースベースを新しい4.4BSD-Lite2に移行することを合意。 |- !1994年5月 |FreeBSD 1.1がリリース。 |- !1994年7月 |FreeBSD 1.1.5.1が最後の4.3BSD Net/2ベースの開発としてリリース。 |- !1994年11月 |FreeBSDプロジェクトが4.4BSD-LiteをベースにしてFreeBSDの開発を再開し、FreeBSD 2.0がリリースされる。 |- !1994年以降 |FreeBSDは順調に発展を続け、標準のX Window SystemについてXFree86からX.Orgへの移行が行われる(FreeBSD 5.3以降)。 |} :;2024年現在: FreeBSDは広範な用途で利用され、高い性能、信頼性、柔軟性が評価されています。Webサーバ、ルータ、ファイアウォール、組み込みシステム、そしてNintendo Switchなど、さまざまなプラットフォームで動作しています。コミュニティと開発者によって継続的にメンテナンスが行われ、最新の技術にも追随しています。 <!-- ;1964年頃:Multicsプロジェクトが始まり、AT&Tベル研究所とGEが参加。 ;1969年:ケン・トンプソンやデニス・リッチーらがMulticsから離れ、シンプルで使いやすいOSの開発に着手。 ;1970年代:PDP-7上で初期のUNIXの開発が行われ、C言語が開発される。 ;1980年頃:DECがVAX-11を発売。AT&TがVAX-11にUNIXを移植するが、仮想記憶に非対応。カリフォルニア大学バークレー校が仮想記憶対応UNIXを発表し、BSDの始まり。 ;1983年:リチャード・ストールマンがGNUプロジェクトを立ち上げ。 ;1984年:X/OpenがUNIX標準化委員会を立ち上げる。 ;1980年代中頃:AT&T/SUNグループがUNIX System V Release 4を発表。OSFとUIが結成され、UNIX戦争が勃発。 ;1991年:カリフォルニア大学バークレー校がNetworking Release 2(Net/2)をリリース。BSD訴訟が発生。 ;1992年:BSDiに対してAT&Tが著作権侵害の訴訟を起こす。 ;1994年:カリフォルニア大学バークレー校がBSD4.4-LiteとAT&T由来のコードも含む2つのバージョンをリリース。 ;1990年代:UNIX戦争がX/OpenとOSFとUIの合併で終息。UNIXの著作権はノベルに渡り、SCOに一部移動。 ;2003年:SCOがLinuxがUNIXの権利を侵害しているとして訴訟を起こす。SCO訴訟が始まり、7年間続く。 ;2010年代:SCO訴訟の結末が「SCOはノベルからUNIXの権利をもらっていない」となり、UNIX戦争が終結。 --> === インストールと基本的な設定 === FreeBSDのインストールは直感的であり、以下の手順に従っています。 #インストールメディアの作成: 公式ウェブサイトから最新のインストールイメージをダウンロードし、CDやUSBに書き込んで起動メディアを作成します。 #インストールプロセスの開始: 起動メディアからコンピュータを起動し、インストールプロセスを開始します。 #基本設定: 言語、キーボード、ネットワーク設定など、基本的な設定を行います。 #ディスクのパーティションとインストール: インストール先のディスクを選択し、パーティション設定を行ってから、FreeBSDを選択したディスクにインストールします。 #ブートローダーの設定: インストールが完了したら、ブートローダーの設定を行います。 これにより、基本的なFreeBSDシステムが構築され、利用を開始することができます。 == FreeBSDの基本概念 == === カーネルとユーザーランド === ==== カーネル ==== FreeBSDのアーキテクチャは、カーネルとユーザーランドという2つの主要なコンポーネントに分かれています。カーネルはオペレーティングシステムの中核であり、システム全体の管理と制御を担当します。以下に、FreeBSDのカーネルに関連する重要な概念を紹介します。 ; ハードウェア制御 : カーネルはハードウェアと直接やり取りし、各種デバイス(プロセッサ、メモリ、ディスク、ネットワークインターフェースなど)を制御します。これにより、ハードウェア資源を効果的に利用し、システムの基本的な機能を提供します。 ; システムコール : カーネルはユーザーランドのプログラムがハードウェアリソースにアクセスできるように、システムコールと呼ばれる特定のインターフェースを提供します。これにより、ユーザーランドのアプリケーションは権限のある操作を実行できます。 ; プロセス管理 : カーネルはプロセスの生成、スケジューリング、終了など、プロセスのライフサイクル全般を管理します。これにより、マルチタスク環境で複数のプログラムが同時に実行されます。 ==== ユーザーランド ==== ユーザーランドは、ユーザーアプリケーションやプログラムが動作する領域です。ユーザーランドは以下の要素で構成されています。 ; ユーザーアプリケーション : ユーザーランドには、ユーザーが直接操作するためのアプリケーションが含まれます。これにはテキストエディタ、ウェブブラウザ、メールクライアントなどがあります。 ; シェル : ユーザーとシステムとの対話を可能にするコマンドラインインターフェース(シェル)もユーザーランドに属します。シェルはユーザーがコマンドを入力し、それを解釈してカーネルに伝えます。 ; システムライブラリ : ユーザーランドのプログラムが利用する標準ライブラリやシステムコールの呼び出しインターフェースが提供されます。これにより、プログラマは高度な機能を手軽に利用できます。 ==== カーネルとユーザーランドの連携 ==== カーネルとユーザーランドは密接に連携して動作します。ユーザーランドのプログラムはシステムコールを通じてカーネルにリクエストを送り、カーネルはこれに応じてハードウェアやシステムリソースを制御します。この連携により、安定性と効率性を保ちながら、様々なアプリケーションが実行されるのです。 ==== FreeBSDのソースコード管理 ==== FreeBSDのソースコードは、カーネルとユーザーランドの両方が一元管理され、それぞれのソースコードは <code>/usr/src/</code> ディレクトリに格納されています。この統一された管理体制は、システム全体の一貫性と効率的な開発プロセスを確保する役割を果たしています。 以下、ソースツリーの中で代表的なものをいくつか紹介します。 ; カーネルのソースコード (/usr/src/sys) : カーネルのソースコードは <code>/usr/src/sys</code> ディレクトリ内に配置されています。このディレクトリには、様々なハードウェアアーキテクチャやデバイスドライバ、システムコールなど、FreeBSDカーネルの要素が含まれています。 :; アーキテクチャごとのディレクトリ : カーネルのソースコードは、サポートされている異なるハードウェアアーキテクチャに対応するため、それぞれのアーキテクチャごとにディレクトリが用意されています。例えば、amd64アーキテクチャ向けのソースコードは <code>/usr/src/sys/amd64/</code> 以下に配置されています。 :; デバイスドライバ : カーネルの中には様々なデバイスを制御するためのデバイスドライバが含まれています。これらのデバイスドライバのソースコードは <code>/usr/src/sys/dev/</code> ディレクトリ以下に配置されています。 :; システムコールとカーネル機能 : システムコールやカーネルの基本的な機能に関連するソースコードは <code>/usr/src/sys/kern/</code> ディレクトリに格納されています。これにはプロセス管理、メモリ管理、ファイルシステムなど、カーネルの中核的な機能が含まれています。 ; ユーザーランドのソースコード (/usr/src/usr) : ユーザーランドのソースコードは <code>/usr/src/usr</code> ディレクトリ内に配置されています。このディレクトリには、ユーザーアプリケーション、シェル、システムツール、ライブラリなどが含まれています。 ; ユーザーアプリケーション : ユーザーアプリケーションのソースコードは <code>/usr/src/usr.bin/</code> ディレクトリ以下に存在します。ここには一般的なコマンドラインツールやユーザーが直接利用するプログラムが格納されています。 ; シェル : シェルのソースコードは <code>/usr/src/bin/sh/</code> ディレクトリに配置されています。シェルはユーザーがコマンドを入力して対話するための環境を提供します。 ; システムライブラリ : ユーザーアプリケーションが利用するシステムライブラリのソースコードは <code>/usr/src/lib/</code> ディレクトリ以下に位置しています。これらのライブラリは、プログラムの開発や実行に必要な基本的な機能を提供します。 このように、FreeBSDのソースコードは効果的に整理され、開発者が特定の領域に焦点を当てて作業することを容易にしています。 === プロセスとスレッド === プロセスは実行中のプログラムのインスタンスであり、メモリやリソースを独立して持ちます。それに対して、スレッドはプロセス内で動作する軽量な実行単位で、同じプロセス内のスレッドはメモリを共有します。FreeBSDはマルチスレッドをサポートしており、効率的なマルチコア処理が可能です。 === ファイルシステムとストレージ === FreeBSDは複数のファイルシステムをサポートし、ZFS(Zettabyte File System)などが特に注目されています。これにより、高度なデータ管理や耐障害性を実現できます。ストレージはディスクや他のメディアを指し、FreeBSDは様々なストレージデバイスを効果的に扱います。 === ネットワーキング === FreeBSDは強力なネットワーキング機能を備えており、TCP/IPスタックの実装や高度なネットワークサービスを提供します。ネットワーキングはシステムの中心的な要素であり、FreeBSDはこれを効果的かつ柔軟に扱います。ネットワーキング機能はシステムの安定性や性能に直結しているため、プログラマにとって重要な概念です。 これらの基本概念を理解することは、FreeBSD上でプログラムを開発する際の基盤となります。それぞれの概念について深く理解し、実践的なコーディングやシステム管理に活かすことが重要です。 == PortsとPkgs == FreeBSDでは、ソフトウェアの管理に Ports と Pkgs という2つの仕組みがあります。 ;Ports :Ports は、ソースコードからソフトウェアをビルド・インストールするためのフレームワークです。各ソフトウェアは専用のディレクトリ(ポート)内に配置され、そのディレクトリ内にはビルドやインストールに必要な手順が記述されています。ポートを使用することで、ユーザーはソースコードから最適なバイナリをビルドし、カスタマイズできます。これは特に、特定のオプションやライブラリの変更が必要な場合に有用です。 :; portsのディレクトリに移動して、特定のソフトウェアをビルド・インストールする例 ::<syntaxhighlight lang=tcsh> cd /usr/ports/category/software make install clean </syntaxhighlight> ;Pkgs :`kgs は、ビルド済みのバイナリパッケージを利用する仕組みです。Portsとは異なり、ユーザーはソフトウェアのビルド手順を気にすることなく、既にビルドされたパッケージを簡単にインストールできます。これにより、手軽かつ迅速にソフトウェアを導入できます。 :; pkgsを使用してソフトウェアをインストールする例 ::<syntaxhighlight lang=tcsh></syntaxhighlight> pkg install software </syntaxhighlight> どちらの方法も利用でき、状況や要件に応じて使い分けることができます。Portsは柔軟性が高く、Pkgsは手軽で効率的です。FreeBSDではこれらの仕組みを駆使して、システムを柔軟に構築・管理することが可能です。 == システム管理 == === ユーザーとグループ管理 === === プロセス管理とタスクスケジューリング === === システムログと監視 === === パフォーマンスチューニング === == ネットワーキングと通信 == === ネットワーク設定と構成 === === インターネットサービスの設定 (SSH, FTP, DNS, etc.) === === ファイアウォールとセキュリティ === == プログラミング環境のセットアップ == === コンパイラとビルドツール === === ライブラリとヘッダーファイル === === パッケージ管理 === == プログラミング言語と開発 == === C言語開発 === === シェルスクリプト === === 他のサポートされている言語 === == デバッグとプロファイリング == === gdbを用いたデバッグ === === パフォーマンスプロファイリングの基本 === == デバイスとハードウェアの操作 == === ドライバの開発 === === デバイスの管理と設定 === == カーネルモジュールの開発 == === カーネルモジュールの基本 === === カーネルの拡張とカスタマイズ === == プロジェクトと実践的なアプリケーション == === 実際のプロジェクト例 === === コードの最適化と保守 === == リソース == * FreeBSD 公式サイト (https://www.freebsd.org/) {{---}} FreeBSD のダウンロード、ドキュメント、FAQ、セキュリティ情報、アップデート、開発者リソースなど、さまざまな情報を提供しています。 * FreeBSD フォーラム (https://forums.freebsd.org/) {{---}} FreeBSD に関する質問や意見交換ができるフォーラムです。多くのユーザーがアクティブに参加しています。 * FreeBSD ドキュメンテーションプロジェクト (https://docs.freebsd.org/) {{---}} FreeBSD のドキュメントがまとめられているプロジェクトです。システム管理、ネットワーク、セキュリティ、開発などのトピックがカバーされています。 * FreeBSD Ports (https://www.freshports.org/) {{---}} FreeBSD Ports は、FreeBSD 用のソフトウェアパッケージを管理するシステムです。FreshPorts は、最新の更新情報や新しいソフトウェアパッケージなどを提供します。 * BSD Now (https://www.bsdnow.tv/) {{---}} BSD Now は、FreeBSD を含む BSD 系オペレーティングシステムに関するニュースや情報、チュートリアル、インタビューなどを提供するウェブサイトです。Podcast も配信されており、定期的に最新の BSD 系システムについての話題が取り上げられています。 * FreeBSD Handbook (https://www.freebsd.org/doc/handbook/) {{---}} FreeBSD Handbook は、FreeBSD システムの操作方法や設定方法、プログラムのビルド方法などについて詳細に説明したドキュメントです。初心者から上級者まで、幅広いユーザーに役立つ内容が含まれています。 * FreeBSD 日本語プロジェクト (https://www.jp.freebsd.org/) {{---}} FreeBSD 日本語プロジェクトは、日本語ユーザー向けに FreeBSD の情報やサポートを提供するコミュニティです。日本語ドキュメントやフォーラム、メーリングリストなどがあり、初心者でも安心して利用できます。 == 脚註 == <references /> == 下位階層のページ == *[[FreeBSD/14.0-RELEASE]] *[[FreeBSD/14.1-RELEASE]] *[[FreeBSD/14.2-RELEASE]] *[[FreeBSD/Address Space Layout Randomization]] *[[FreeBSD/Almquist Shell]] *[[FreeBSD/CAM]] *[[FreeBSD/CUBIC Congestion Control Algorithm]] *[[FreeBSD/Capsicum]] *[[FreeBSD/Chflags]] *[[FreeBSD/DragonFly Mail Agent]] *[[FreeBSD/GEOM]] *[[FreeBSD/Linuxディストリビューションとの違い]] *[[FreeBSD/NewReno Congestion Control Algorithm]] *[[FreeBSD/POSIX.1e]] *[[FreeBSD/Pkgシステム]] *[[FreeBSD/Portsコレクション]] *[[FreeBSD/RCスタートアップシステム]] *[[FreeBSD/TCP]] *[[FreeBSD/TCP Fast Open]] *[[FreeBSD/UFSチューニング]] *[[FreeBSD/Unified Buffer Cache]] *[[FreeBSD/ZFSの概要]] *[[FreeBSD/ZFSの設計と実装]] *[[FreeBSD/ZFSチューニング]] *[[FreeBSD/bsdlabel]] *[[FreeBSD/cpdup]] *[[FreeBSD/diskinfo]] *[[FreeBSD/dmidecode]] *[[FreeBSD/fusefs]] *[[FreeBSD/gitupを使ったソースツリーの維持]] *[[FreeBSD/gpart]] *[[FreeBSD/gstat]] *[[FreeBSD/vifconfig]] *[[FreeBSD/iostat]] *[[FreeBSD/jail]] *[[FreeBSD/kldstat]] *[[FreeBSD/netstat]] *[[FreeBSD/pciconf]] *[[FreeBSD/pdumpfs]] *[[FreeBSD/pkg]] *[[FreeBSD/portmaster]] *[[FreeBSD/rsync]] *[[FreeBSD/systat]] *[[FreeBSD/top]] *[[FreeBSD/ufs copy]] *[[FreeBSD/virtio]] *[[FreeBSD/vmstat]] *[[FreeBSD/zfs]] *[[FreeBSD/zpool]] *[[FreeBSD/カスタムカーネル]] *[[FreeBSD/コンテナ技術]] *[[FreeBSD/サービス管理]] *[[FreeBSD/ストレージ管理]] *[[FreeBSD/セキュリティ脆弱性の緩和策]] *[[FreeBSD/ハードウェアサポート]] *[[FreeBSD/パフォーマンスチューニング]] *[[FreeBSD/ブートプロセス]] *[[FreeBSD/モダンブートプロセス]] *[[FreeBSD/レガシーブートプロセス]] {{DEFAULTSORT:FREEBSD}} [[Category:FreeBSD|*]] [[Category:Berkeley Software Distribution]] [[Category:UNIX]] [[Category:オペレーティングシステム]] qkvrk6ihtbq414yeenorvuj2xo5w6qg 中学校家庭/持続可能な消費生活を目指して 0 37565 301267 301259 2026-07-07T13:18:25Z Kwawe 68789 301267 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>[[中学校家庭]]>持続可能な消費生活を目指して == キーワード == SDGS(Sustainable Development Goals)・エシカル消費・消費者市民社会 == エシカル消費推進までの背景 == == エシカル消費とは何か == == グリーンコンシューマーとは何か == == 消費者市民社会とは何か == == エシカル消費の種類と内容 == == フェアトレードの役割 == == まとめ == [[カテゴリ:中学校家庭科]] [[カテゴリ:経済生活]] 0v9pggh3ifi5c4njokla6u0j7hxzo5d 301268 301267 2026-07-07T13:30:57Z Kwawe 68789 301268 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>[[中学校家庭]]>持続可能な消費生活を目指して == キーワード == SDGS(Sustainable Development Goals)・エシカル消費・消費者市民社会 == エシカル消費推進までの背景 == === 地球環境への負荷 === === 持続可能な開発目標の12番目「つくる責任・つかう責任」 === == エシカル消費とは何か? == == グリーンコンシューマーとは何か? == == 消費者市民社会とは何か? == == エシカル消費の種類と内容 == == フェアトレードの役割 == == まとめ == [[カテゴリ:中学校家庭科]] [[カテゴリ:経済生活]] 7g9sgi8i9917pta0kvxz7t9i3kbt4qk 301269 301268 2026-07-07T13:54:17Z Kwawe 68789 301269 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>[[中学校家庭]]>持続可能な消費生活を目指して == キーワード == SDGS(Sustainable Development Goals)・エシカル消費・消費者市民社会 == 消費行動の社会性 == == エシカル消費推進までの背景 == === 地球環境への負荷 === === 持続可能な開発目標の12番目「つくる責任・つかう責任」 === == エシカル消費とは何か? == == グリーンコンシューマーとは何か? == == 消費者市民社会とは何か? == == エシカル消費の種類と内容 == == フェアトレードの役割 == == まとめ == [[カテゴリ:中学校家庭科]] [[カテゴリ:経済生活]] cptz40k0ymbxvynv2x5eres5sd77jx4 301270 301269 2026-07-07T13:56:03Z Kwawe 68789 /* 消費行動の社会性 */ 本文執筆。 301270 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>[[中学校家庭]]>持続可能な消費生活を目指して == キーワード == SDGS(Sustainable Development Goals)・エシカル消費・消費者市民社会 == 消費行動の社会性 == 私達が毎日買い物をすると、その選び方から社会と環境も大きく変わります。どの商品を選ぶかによって、私達の気持ち「この商品を作ってほしい」が生産者と企業にも伝わります。その結果、企業は選んでもらえるように取り組みを工夫します。したがって、買い物は投票と同じです。私達が相応しい商品を選んで相応しくない商品を買わなかったら、企業は買い物傾向から、相応しい商品を作るようにします。 == エシカル消費推進までの背景 == === 地球環境への負荷 === === 持続可能な開発目標の12番目「つくる責任・つかう責任」 === == エシカル消費とは何か? == == グリーンコンシューマーとは何か? == == 消費者市民社会とは何か? == == エシカル消費の種類と内容 == == フェアトレードの役割 == == まとめ == [[カテゴリ:中学校家庭科]] [[カテゴリ:経済生活]] 9i0fgkir579fdb1uag962np8ryrnggt 301272 301270 2026-07-07T15:22:05Z Kwawe 68789 /* エシカル消費とは何か? */ 本文執筆。 301272 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>[[中学校家庭]]>持続可能な消費生活を目指して == キーワード == SDGS(Sustainable Development Goals)・エシカル消費・消費者市民社会 == 消費行動の社会性 == 私達が毎日買い物をすると、その選び方から社会と環境も大きく変わります。どの商品を選ぶかによって、私達の気持ち「この商品を作ってほしい」が生産者と企業にも伝わります。その結果、企業は選んでもらえるように取り組みを工夫します。したがって、買い物は投票と同じです。私達が相応しい商品を選んで相応しくない商品を買わなかったら、企業は買い物傾向から、相応しい商品を作るようにします。 == エシカル消費推進までの背景 == === 地球環境への負荷 === === 持続可能な開発目標の12番目「つくる責任・つかう責任」 === == エシカル消費とは何か? == エシカル消費(倫理的な消費)は人間・社会・環境・地域に優しい買い物をいいます。エシカル消費(倫理的な消費)は日本人の価値観「思いやり」「もったいない」と同じです。どのような商品でも生産者がいないと成り立ちません。安さと見た目だけで商品を選ぶのではなく、生産者・社会・地球環境をよく考えて商品を選びましょう。 また、見栄を張るための買い物はエシカル消費と言えません。自分の収入に合う優しい買い物もエシカル消費の大切な考え方になります。 == グリーンコンシューマーとは何か? == == 消費者市民社会とは何か? == == エシカル消費の種類と内容 == == フェアトレードの役割 == == まとめ == [[カテゴリ:中学校家庭科]] [[カテゴリ:経済生活]] rab6aui6dpdjbmyk0bnfunqwhlnp5ro 301273 301272 2026-07-07T16:14:09Z Kwawe 68789 /* フェアトレードの役割 */ 本文執筆。 301273 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>[[中学校家庭]]>持続可能な消費生活を目指して == キーワード == SDGS(Sustainable Development Goals)・エシカル消費・消費者市民社会 == 消費行動の社会性 == 私達が毎日買い物をすると、その選び方から社会と環境も大きく変わります。どの商品を選ぶかによって、私達の気持ち「この商品を作ってほしい」が生産者と企業にも伝わります。その結果、企業は選んでもらえるように取り組みを工夫します。したがって、買い物は投票と同じです。私達が相応しい商品を選んで相応しくない商品を買わなかったら、企業は買い物傾向から、相応しい商品を作るようにします。 == エシカル消費推進までの背景 == === 地球環境への負荷 === === 持続可能な開発目標の12番目「つくる責任・つかう責任」 === == エシカル消費とは何か? == エシカル消費(倫理的な消費)は人間・社会・環境・地域に優しい買い物をいいます。エシカル消費(倫理的な消費)は日本人の価値観「思いやり」「もったいない」と同じです。どのような商品でも生産者がいないと成り立ちません。安さと見た目だけで商品を選ぶのではなく、生産者・社会・地球環境をよく考えて商品を選びましょう。 また、見栄を張るための買い物はエシカル消費と言えません。自分の収入に合う優しい買い物もエシカル消費の大切な考え方になります。 == グリーンコンシューマーとは何か? == == 消費者市民社会とは何か? == == エシカル消費の種類と内容 == == フェアトレードの役割 == 開発途上国の場合、商品を売ってもその値段が安くなったり高くなったりして、生産者の収入も毎月決まりません。その結果、子供も働いて家族の生活費用を稼がなければなりません。もし、消費者が原料・商品をずっと同じ値段で買い続けると生産者の暮らしも守れます(フェアトレード)。2012年のロンドンオリンピックはフェアトレード認証商品を大量に取り入れました。私達がフェアトレード認証商品を買うと開発途上国の生産者も喜ばれます。 == まとめ == [[カテゴリ:中学校家庭科]] [[カテゴリ:経済生活]] b8kob5ebox2pq4t8cwu10kice5nf6ar 301276 301273 2026-07-07T16:21:47Z Kwawe 68789 /* エシカル消費とは何か? */ 重要用語を色太字化。 301276 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>[[中学校家庭]]>持続可能な消費生活を目指して == キーワード == SDGS(Sustainable Development Goals)・エシカル消費・消費者市民社会 == 消費行動の社会性 == 私達が毎日買い物をすると、その選び方から社会と環境も大きく変わります。どの商品を選ぶかによって、私達の気持ち「この商品を作ってほしい」が生産者と企業にも伝わります。その結果、企業は選んでもらえるように取り組みを工夫します。したがって、買い物は投票と同じです。私達が相応しい商品を選んで相応しくない商品を買わなかったら、企業は買い物傾向から、相応しい商品を作るようにします。 == エシカル消費推進までの背景 == === 地球環境への負荷 === === 持続可能な開発目標の12番目「つくる責任・つかう責任」 === == エシカル消費とは何か? == <span style="color:#f29100">'''エシカル消費(倫理的な消費)'''</span>は人間・社会・環境・地域に優しい買い物をいいます。エシカル消費(倫理的な消費)は日本人の価値観「思いやり」「もったいない」と同じです。どのような商品でも生産者がいないと成り立ちません。安さと見た目だけで商品を選ぶのではなく、生産者・社会・地球環境をよく考えて商品を選びましょう。 また、見栄を張るための買い物はエシカル消費と言えません。自分の収入に合う優しい買い物もエシカル消費の大切な考え方になります。 == グリーンコンシューマーとは何か? == == 消費者市民社会とは何か? == == エシカル消費の種類と内容 == == フェアトレードの役割 == 開発途上国の場合、商品を売ってもその値段が安くなったり高くなったりして、生産者の収入も毎月決まりません。その結果、子供も働いて家族の生活費用を稼がなければなりません。もし、消費者が原料・商品をずっと同じ値段で買い続けると生産者の暮らしも守れます(フェアトレード)。2012年のロンドンオリンピックはフェアトレード認証商品を大量に取り入れました。私達がフェアトレード認証商品を買うと開発途上国の生産者も喜ばれます。 == まとめ == [[カテゴリ:中学校家庭科]] [[カテゴリ:経済生活]] b0dupdg1d6lmmd77og9l564p0bhluym 301280 301276 2026-07-07T17:56:11Z Kwawe 68789 /* エシカル消費の種類と内容 */ 本文を叙述。 301280 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>[[中学校家庭]]>持続可能な消費生活を目指して == キーワード == SDGS(Sustainable Development Goals)・エシカル消費・消費者市民社会 == 消費行動の社会性 == 私達が毎日買い物をすると、その選び方から社会と環境も大きく変わります。どの商品を選ぶかによって、私達の気持ち「この商品を作ってほしい」が生産者と企業にも伝わります。その結果、企業は選んでもらえるように取り組みを工夫します。したがって、買い物は投票と同じです。私達が相応しい商品を選んで相応しくない商品を買わなかったら、企業は買い物傾向から、相応しい商品を作るようにします。 == エシカル消費推進までの背景 == === 地球環境への負荷 === === 持続可能な開発目標の12番目「つくる責任・つかう責任」 === == エシカル消費とは何か? == <span style="color:#f29100">'''エシカル消費(倫理的な消費)'''</span>は人間・社会・環境・地域に優しい買い物をいいます。エシカル消費(倫理的な消費)は日本人の価値観「思いやり」「もったいない」と同じです。どのような商品でも生産者がいないと成り立ちません。安さと見た目だけで商品を選ぶのではなく、生産者・社会・地球環境をよく考えて商品を選びましょう。 また、見栄を張るための買い物はエシカル消費と言えません。自分の収入に合う優しい買い物もエシカル消費の大切な考え方になります。 == グリーンコンシューマーとは何か? == == 消費者市民社会とは何か? == == エシカル消費の種類と内容 == エシカル消費は人間・社会・環境・地域を明るくします。オーガニックコットン製品の服を買うと環境を守れます。オーガニックコットンは、農薬や肥料を出来るだけ使わずに育てられています。その後、工場で周りの空気や水を汚さないようにオーガニックコットン製品の服を作られています。処分品・使わない商品をリサイクル商品・アップサイクル商品に作り直したら資源と環境を守れます。地元産地の商品を買うとその地域も明るくなります(地産地消)。地元の農家・お店は地産地消で助かり、運送会社の軽油代も減らせます。消費者が就労継続支援事業所の商品を選ぶと、就労継続支援事業所内で働く障害者を守れます。レッドカップキャンペーンのマーク付き商品を買うと、学校給食調理員がその費用の一部から献立の食材を買って、給食を作ります。エシカル消費は認証ラベル付きの商品も含みます。国際フェアトレードラベル機構がその商品を取り入れたら、国際フェアトレード認証ラベルが貼られます。森林法に従って木を切ってその木から紙製品を作ったら、FSC認証ラベルが貼られます。水産流通適正化法に従って魚を獲って、その魚を売ったらMSC認証ラベルが貼られます。 == フェアトレードの役割 == 開発途上国の場合、商品を売ってもその値段が安くなったり高くなったりして、生産者の収入も毎月決まりません。その結果、子供も働いて家族の生活費用を稼がなければなりません。もし、消費者が原料・商品をずっと同じ値段で買い続けると生産者の暮らしも守れます(フェアトレード)。2012年のロンドンオリンピックはフェアトレード認証商品を大量に取り入れました。私達がフェアトレード認証商品を買うと開発途上国の生産者も喜ばれます。 == まとめ == [[カテゴリ:中学校家庭科]] [[カテゴリ:経済生活]] 0lbanmoygey7hwzh5bbz1bgey07i7ra 301282 301280 2026-07-08T00:23:10Z Kwawe 68789 /* 持続可能な開発目標の12番目「つくる責任・つかう責任」 */ 図版追加。 301282 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>[[中学校家庭]]>持続可能な消費生活を目指して == キーワード == SDGS(Sustainable Development Goals)・エシカル消費・消費者市民社会 == 消費行動の社会性 == 私達が毎日買い物をすると、その選び方から社会と環境も大きく変わります。どの商品を選ぶかによって、私達の気持ち「この商品を作ってほしい」が生産者と企業にも伝わります。その結果、企業は選んでもらえるように取り組みを工夫します。したがって、買い物は投票と同じです。私達が相応しい商品を選んで相応しくない商品を買わなかったら、企業は買い物傾向から、相応しい商品を作るようにします。 == エシカル消費推進までの背景 == [[ファイル:SDG 12 Japanese.png|サムネイル|159x159ピクセル|つくる責任・つかう責任]] === 地球環境への負荷 === === 持続可能な開発目標の12番目「つくる責任・つかう責任」 === == エシカル消費とは何か? == <span style="color:#f29100">'''エシカル消費(倫理的な消費)'''</span>は人間・社会・環境・地域に優しい買い物をいいます。エシカル消費(倫理的な消費)は日本人の価値観「思いやり」「もったいない」と同じです。どのような商品でも生産者がいないと成り立ちません。安さと見た目だけで商品を選ぶのではなく、生産者・社会・地球環境をよく考えて商品を選びましょう。 また、見栄を張るための買い物はエシカル消費と言えません。自分の収入に合う優しい買い物もエシカル消費の大切な考え方になります。 == グリーンコンシューマーとは何か? == == 消費者市民社会とは何か? == == エシカル消費の種類と内容 == エシカル消費は人間・社会・環境・地域を明るくします。オーガニックコットン製品の服を買うと環境を守れます。オーガニックコットンは、農薬や肥料を出来るだけ使わずに育てられています。その後、工場で周りの空気や水を汚さないようにオーガニックコットン製品の服を作られています。処分品・使わない商品をリサイクル商品・アップサイクル商品に作り直したら資源と環境を守れます。地元産地の商品を買うとその地域も明るくなります(地産地消)。地元の農家・お店は地産地消で助かり、運送会社の軽油代も減らせます。消費者が就労継続支援事業所の商品を選ぶと、就労継続支援事業所内で働く障害者を守れます。レッドカップキャンペーンのマーク付き商品を買うと、学校給食調理員がその費用の一部から献立の食材を買って、給食を作ります。エシカル消費は認証ラベル付きの商品も含みます。国際フェアトレードラベル機構がその商品を取り入れたら、国際フェアトレード認証ラベルが貼られます。森林法に従って木を切ってその木から紙製品を作ったら、FSC認証ラベルが貼られます。水産流通適正化法に従って魚を獲って、その魚を売ったらMSC認証ラベルが貼られます。 == フェアトレードの役割 == 開発途上国の場合、商品を売ってもその値段が安くなったり高くなったりして、生産者の収入も毎月決まりません。その結果、子供も働いて家族の生活費用を稼がなければなりません。もし、消費者が原料・商品をずっと同じ値段で買い続けると生産者の暮らしも守れます(フェアトレード)。2012年のロンドンオリンピックはフェアトレード認証商品を大量に取り入れました。私達がフェアトレード認証商品を買うと開発途上国の生産者も喜ばれます。 == まとめ == [[カテゴリ:中学校家庭科]] [[カテゴリ:経済生活]] 3robrmw2sgmlkct2k1nhokyeqk47gwo 301283 301282 2026-07-08T01:12:32Z Kwawe 68789 /* グリーンコンシューマーとは何か? */ 本文を叙述。 301283 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>[[中学校家庭]]>持続可能な消費生活を目指して == キーワード == SDGS(Sustainable Development Goals)・エシカル消費・消費者市民社会 == 消費行動の社会性 == 私達が毎日買い物をすると、その選び方から社会と環境も大きく変わります。どの商品を選ぶかによって、私達の気持ち「この商品を作ってほしい」が生産者と企業にも伝わります。その結果、企業は選んでもらえるように取り組みを工夫します。したがって、買い物は投票と同じです。私達が相応しい商品を選んで相応しくない商品を買わなかったら、企業は買い物傾向から、相応しい商品を作るようにします。 == エシカル消費推進までの背景 == [[ファイル:SDG 12 Japanese.png|サムネイル|159x159ピクセル|つくる責任・つかう責任]] === 地球環境への負荷 === === 持続可能な開発目標の12番目「つくる責任・つかう責任」 === == エシカル消費とは何か? == <span style="color:#f29100">'''エシカル消費(倫理的な消費)'''</span>は人間・社会・環境・地域に優しい買い物をいいます。エシカル消費(倫理的な消費)は日本人の価値観「思いやり」「もったいない」と同じです。どのような商品でも生産者がいないと成り立ちません。安さと見た目だけで商品を選ぶのではなく、生産者・社会・地球環境をよく考えて商品を選びましょう。 また、見栄を張るための買い物はエシカル消費と言えません。自分の収入に合う優しい買い物もエシカル消費の大切な考え方になります。 == グリーンコンシューマーとは何か? == 私達は毎日の買い物で自然環境を守ろうと取り組んでいます(グリーンコンシューマー)。グリーンコンシューマーは特別な準備・遠出・高い買い物・我慢などをしません。普段の買い物で「この商品は環境にやさしいか」「流行よりも自分に似合う商品」を考えて選んでいます。例えば、私服なら自分好みの色で、壊れにくく、暖かかったら同じ私服を長年ローテーションで着れます。その結果、買い替え費用とごみも減らせます。また、再生紙・プラスチック製品を選ぶと新しい木を切ったり、石油を新しく使ったりしなくて済みます。グリーンコンシューマーの行動は目立たなくてもお店(売り手)と工場(作り手)の売り上げに大きく関わります。お店(売り手)はグリーンコンシューマーの買い方から環境に優しい商品をより多くとり入れたいと会社に伝えます。工場(作り手)も環境に優しい商品をより多く作ろうとします。このように、環境に優しい商品は綺麗な空気・綺麗な水・資源を守ります。 == 消費者市民社会とは何か? == == エシカル消費の種類と内容 == エシカル消費は人間・社会・環境・地域を明るくします。オーガニックコットン製品の服を買うと環境を守れます。オーガニックコットンは、農薬や肥料を出来るだけ使わずに育てられています。その後、工場で周りの空気や水を汚さないようにオーガニックコットン製品の服を作られています。処分品・使わない商品をリサイクル商品・アップサイクル商品に作り直したら資源と環境を守れます。地元産地の商品を買うとその地域も明るくなります(地産地消)。地元の農家・お店は地産地消で助かり、運送会社の軽油代も減らせます。消費者が就労継続支援事業所の商品を選ぶと、就労継続支援事業所内で働く障害者を守れます。レッドカップキャンペーンのマーク付き商品を買うと、学校給食調理員がその費用の一部から献立の食材を買って、給食を作ります。エシカル消費は認証ラベル付きの商品も含みます。国際フェアトレードラベル機構がその商品を取り入れたら、国際フェアトレード認証ラベルが貼られます。森林法に従って木を切ってその木から紙製品を作ったら、FSC認証ラベルが貼られます。水産流通適正化法に従って魚を獲って、その魚を売ったらMSC認証ラベルが貼られます。 == フェアトレードの役割 == 開発途上国の場合、商品を売ってもその値段が安くなったり高くなったりして、生産者の収入も毎月決まりません。その結果、子供も働いて家族の生活費用を稼がなければなりません。もし、消費者が原料・商品をずっと同じ値段で買い続けると生産者の暮らしも守れます(フェアトレード)。2012年のロンドンオリンピックはフェアトレード認証商品を大量に取り入れました。私達がフェアトレード認証商品を買うと開発途上国の生産者も喜ばれます。 == まとめ == [[カテゴリ:中学校家庭科]] [[カテゴリ:経済生活]] fslw9no4gpayz9x8uvfzj4gysblr71o 301284 301283 2026-07-08T02:35:47Z Kwawe 68789 /* 持続可能な開発目標の12番目「つくる責任・つかう責任」 */ 本文を叙述。 301284 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>[[中学校家庭]]>持続可能な消費生活を目指して == キーワード == SDGs(Sustainable Development Goals)・エシカル消費・消費者市民社会 == 消費行動の社会性 == 私達が毎日買い物をすると、その選び方から社会と環境も大きく変わります。どの商品を選ぶかによって、私達の気持ち「この商品を作ってほしい」が生産者と企業にも伝わります。その結果、企業は選んでもらえるように取り組みを工夫します。したがって、買い物は投票と同じです。私達が相応しい商品を選んで相応しくない商品を買わなかったら、企業は買い物傾向から、相応しい商品を作るようにします。 == エシカル消費推進までの背景 == [[ファイル:SDG 12 Japanese.png|サムネイル|159x159ピクセル|つくる責任・つかう責任]] === 地球環境への負荷 === === 持続可能な開発目標の12番目「つくる責任・つかう責任」 === 2015年、持続可能な開発目標(Sustainable Development Goals:SDGs)が国連サミットで出されました。この時、多くの国際連合加盟国が持続可能な開発目標を守りたいと国際連合に伝えました。「生産者が環境に優しい商品を作らなければなりません。消費者も環境に優しい商品を選ばなければなりません。」を持続可能な開発目標の12番目「つくる責任・つかう責任」に記されています。このように、生産者と消費者は12番目の目標を守っていくと、環境問題も資源問題も減らせます。その結果、現役世代も将来世代も生活の安全を守れます。 == エシカル消費とは何か? == <span style="color:#f29100">'''エシカル消費(倫理的な消費)'''</span>は人間・社会・環境・地域に優しい買い物をいいます。エシカル消費(倫理的な消費)は日本人の価値観「思いやり」「もったいない」と同じです。どのような商品でも生産者がいないと成り立ちません。安さと見た目だけで商品を選ぶのではなく、生産者・社会・地球環境をよく考えて商品を選びましょう。 また、見栄を張るための買い物はエシカル消費と言えません。自分の収入に合う優しい買い物もエシカル消費の大切な考え方になります。 == グリーンコンシューマーとは何か? == 私達は毎日の買い物で自然環境を守ろうと取り組んでいます(グリーンコンシューマー)。グリーンコンシューマーは特別な準備・遠出・高い買い物・我慢などをしません。普段の買い物で「この商品は環境にやさしいか」「流行よりも自分に似合う商品」を考えて選んでいます。例えば、私服なら自分好みの色で、壊れにくく、暖かかったら同じ私服を長年ローテーションで着れます。その結果、買い替え費用とごみも減らせます。また、再生紙・プラスチック製品を選ぶと新しい木を切ったり、石油を新しく使ったりしなくて済みます。グリーンコンシューマーの行動は目立たなくてもお店(売り手)と工場(作り手)の売り上げに大きく関わります。お店(売り手)はグリーンコンシューマーの買い方から環境に優しい商品をより多くとり入れたいと会社に伝えます。工場(作り手)も環境に優しい商品をより多く作ろうとします。このように、環境に優しい商品は綺麗な空気・綺麗な水・資源を守ります。 == 消費者市民社会とは何か? == == エシカル消費の種類と内容 == エシカル消費は人間・社会・環境・地域を明るくします。オーガニックコットン製品の服を買うと環境を守れます。オーガニックコットンは、農薬や肥料を出来るだけ使わずに育てられています。その後、工場で周りの空気や水を汚さないようにオーガニックコットン製品の服を作られています。処分品・使わない商品をリサイクル商品・アップサイクル商品に作り直したら資源と環境を守れます。地元産地の商品を買うとその地域も明るくなります(地産地消)。地元の農家・お店は地産地消で助かり、運送会社の軽油代も減らせます。消費者が就労継続支援事業所の商品を選ぶと、就労継続支援事業所内で働く障害者を守れます。レッドカップキャンペーンのマーク付き商品を買うと、学校給食調理員がその費用の一部から献立の食材を買って、給食を作ります。エシカル消費は認証ラベル付きの商品も含みます。国際フェアトレードラベル機構がその商品を取り入れたら、国際フェアトレード認証ラベルが貼られます。森林法に従って木を切ってその木から紙製品を作ったら、FSC認証ラベルが貼られます。水産流通適正化法に従って魚を獲って、その魚を売ったらMSC認証ラベルが貼られます。 == フェアトレードの役割 == 開発途上国の場合、商品を売ってもその値段が安くなったり高くなったりして、生産者の収入も毎月決まりません。その結果、子供も働いて家族の生活費用を稼がなければなりません。もし、消費者が原料・商品をずっと同じ値段で買い続けると生産者の暮らしも守れます(フェアトレード)。2012年のロンドンオリンピックはフェアトレード認証商品を大量に取り入れました。私達がフェアトレード認証商品を買うと開発途上国の生産者も喜ばれます。 == まとめ == [[カテゴリ:中学校家庭科]] [[カテゴリ:経済生活]] 3v8iy8z31bwvpb0xfr1uteu23pguhws 301285 301284 2026-07-08T02:38:45Z Kwawe 68789 /* エシカル消費推進までの背景 */ 301285 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>[[中学校家庭]]>持続可能な消費生活を目指して == キーワード == SDGs(Sustainable Development Goals)・エシカル消費・消費者市民社会 == 消費行動の社会性 == 私達が毎日買い物をすると、その選び方から社会と環境も大きく変わります。どの商品を選ぶかによって、私達の気持ち「この商品を作ってほしい」が生産者と企業にも伝わります。その結果、企業は選んでもらえるように取り組みを工夫します。したがって、買い物は投票と同じです。私達が相応しい商品を選んで相応しくない商品を買わなかったら、企業は買い物傾向から、相応しい商品を作るようにします。 == エシカル消費推進までの背景 == [[ファイル:SDG 12 Japanese.png|サムネイル|159x159ピクセル|つくる責任・つかう責任]] === 地球環境への負荷 === === 持続可能な開発目標の12番目「つくる責任つかう責任」 === 2015年、持続可能な開発目標(Sustainable Development Goals:SDGs)が国連サミットで出されました。この時、多くの国際連合加盟国が持続可能な開発目標を守りたいと国際連合に伝えました。「生産者が環境に優しい商品を作らなければなりません。消費者も環境に優しい商品を選ばなければなりません。」を持続可能な開発目標の12番目「つくる責任つかう責任」に記されています。このように、生産者と消費者は12番目の目標を守っていくと、環境問題も資源問題も減らせます。その結果、現役世代も将来世代も生活の安全を守れます。 == エシカル消費とは何か? == <span style="color:#f29100">'''エシカル消費(倫理的な消費)'''</span>は人間・社会・環境・地域に優しい買い物をいいます。エシカル消費(倫理的な消費)は日本人の価値観「思いやり」「もったいない」と同じです。どのような商品でも生産者がいないと成り立ちません。安さと見た目だけで商品を選ぶのではなく、生産者・社会・地球環境をよく考えて商品を選びましょう。 また、見栄を張るための買い物はエシカル消費と言えません。自分の収入に合う優しい買い物もエシカル消費の大切な考え方になります。 == グリーンコンシューマーとは何か? == 私達は毎日の買い物で自然環境を守ろうと取り組んでいます(グリーンコンシューマー)。グリーンコンシューマーは特別な準備・遠出・高い買い物・我慢などをしません。普段の買い物で「この商品は環境にやさしいか」「流行よりも自分に似合う商品」を考えて選んでいます。例えば、私服なら自分好みの色で、壊れにくく、暖かかったら同じ私服を長年ローテーションで着れます。その結果、買い替え費用とごみも減らせます。また、再生紙・プラスチック製品を選ぶと新しい木を切ったり、石油を新しく使ったりしなくて済みます。グリーンコンシューマーの行動は目立たなくてもお店(売り手)と工場(作り手)の売り上げに大きく関わります。お店(売り手)はグリーンコンシューマーの買い方から環境に優しい商品をより多くとり入れたいと会社に伝えます。工場(作り手)も環境に優しい商品をより多く作ろうとします。このように、環境に優しい商品は綺麗な空気・綺麗な水・資源を守ります。 == 消費者市民社会とは何か? == == エシカル消費の種類と内容 == エシカル消費は人間・社会・環境・地域を明るくします。オーガニックコットン製品の服を買うと環境を守れます。オーガニックコットンは、農薬や肥料を出来るだけ使わずに育てられています。その後、工場で周りの空気や水を汚さないようにオーガニックコットン製品の服を作られています。処分品・使わない商品をリサイクル商品・アップサイクル商品に作り直したら資源と環境を守れます。地元産地の商品を買うとその地域も明るくなります(地産地消)。地元の農家・お店は地産地消で助かり、運送会社の軽油代も減らせます。消費者が就労継続支援事業所の商品を選ぶと、就労継続支援事業所内で働く障害者を守れます。レッドカップキャンペーンのマーク付き商品を買うと、学校給食調理員がその費用の一部から献立の食材を買って、給食を作ります。エシカル消費は認証ラベル付きの商品も含みます。国際フェアトレードラベル機構がその商品を取り入れたら、国際フェアトレード認証ラベルが貼られます。森林法に従って木を切ってその木から紙製品を作ったら、FSC認証ラベルが貼られます。水産流通適正化法に従って魚を獲って、その魚を売ったらMSC認証ラベルが貼られます。 == フェアトレードの役割 == 開発途上国の場合、商品を売ってもその値段が安くなったり高くなったりして、生産者の収入も毎月決まりません。その結果、子供も働いて家族の生活費用を稼がなければなりません。もし、消費者が原料・商品をずっと同じ値段で買い続けると生産者の暮らしも守れます(フェアトレード)。2012年のロンドンオリンピックはフェアトレード認証商品を大量に取り入れました。私達がフェアトレード認証商品を買うと開発途上国の生産者も喜ばれます。 == まとめ == [[カテゴリ:中学校家庭科]] [[カテゴリ:経済生活]] 3qff8pzwu9b84ejji4uwqfhtil7ee1t 301286 301285 2026-07-08T02:45:20Z Kwawe 68789 /* エシカル消費の種類と内容 */ ラベル写真を追加。MSC以外 301286 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>[[中学校家庭]]>持続可能な消費生活を目指して == キーワード == SDGs(Sustainable Development Goals)・エシカル消費・消費者市民社会 == 消費行動の社会性 == 私達が毎日買い物をすると、その選び方から社会と環境も大きく変わります。どの商品を選ぶかによって、私達の気持ち「この商品を作ってほしい」が生産者と企業にも伝わります。その結果、企業は選んでもらえるように取り組みを工夫します。したがって、買い物は投票と同じです。私達が相応しい商品を選んで相応しくない商品を買わなかったら、企業は買い物傾向から、相応しい商品を作るようにします。 == エシカル消費推進までの背景 == [[ファイル:SDG 12 Japanese.png|サムネイル|159x159ピクセル|つくる責任・つかう責任]] === 地球環境への負荷 === === 持続可能な開発目標の12番目「つくる責任つかう責任」 === 2015年、持続可能な開発目標(Sustainable Development Goals:SDGs)が国連サミットで出されました。この時、多くの国際連合加盟国が持続可能な開発目標を守りたいと国際連合に伝えました。「生産者が環境に優しい商品を作らなければなりません。消費者も環境に優しい商品を選ばなければなりません。」を持続可能な開発目標の12番目「つくる責任つかう責任」に記されています。このように、生産者と消費者は12番目の目標を守っていくと、環境問題も資源問題も減らせます。その結果、現役世代も将来世代も生活の安全を守れます。 == エシカル消費とは何か? == <span style="color:#f29100">'''エシカル消費(倫理的な消費)'''</span>は人間・社会・環境・地域に優しい買い物をいいます。エシカル消費(倫理的な消費)は日本人の価値観「思いやり」「もったいない」と同じです。どのような商品でも生産者がいないと成り立ちません。安さと見た目だけで商品を選ぶのではなく、生産者・社会・地球環境をよく考えて商品を選びましょう。 また、見栄を張るための買い物はエシカル消費と言えません。自分の収入に合う優しい買い物もエシカル消費の大切な考え方になります。 == グリーンコンシューマーとは何か? == 私達は毎日の買い物で自然環境を守ろうと取り組んでいます(グリーンコンシューマー)。グリーンコンシューマーは特別な準備・遠出・高い買い物・我慢などをしません。普段の買い物で「この商品は環境にやさしいか」「流行よりも自分に似合う商品」を考えて選んでいます。例えば、私服なら自分好みの色で、壊れにくく、暖かかったら同じ私服を長年ローテーションで着れます。その結果、買い替え費用とごみも減らせます。また、再生紙・プラスチック製品を選ぶと新しい木を切ったり、石油を新しく使ったりしなくて済みます。グリーンコンシューマーの行動は目立たなくてもお店(売り手)と工場(作り手)の売り上げに大きく関わります。お店(売り手)はグリーンコンシューマーの買い方から環境に優しい商品をより多くとり入れたいと会社に伝えます。工場(作り手)も環境に優しい商品をより多く作ろうとします。このように、環境に優しい商品は綺麗な空気・綺麗な水・資源を守ります。 == 消費者市民社会とは何か? == == エシカル消費の種類と内容 == エシカル消費は人間・社会・環境・地域を明るくします。オーガニックコットン製品の服を買うと環境を守れます。オーガニックコットンは、農薬や肥料を出来るだけ使わずに育てられています。その後、工場で周りの空気や水を汚さないようにオーガニックコットン製品の服を作られています。処分品・使わない商品をリサイクル商品・アップサイクル商品に作り直したら資源と環境を守れます。地元産地の商品を買うとその地域も明るくなります(地産地消)。地元の農家・お店は地産地消で助かり、運送会社の軽油代も減らせます。消費者が就労継続支援事業所の商品を選ぶと、就労継続支援事業所内で働く障害者を守れます。レッドカップキャンペーンのマーク付き商品を買うと、学校給食調理員がその費用の一部から献立の食材を買って、給食を作ります。エシカル消費は認証ラベル付きの商品も含みます。国際フェアトレードラベル機構がその商品を取り入れたら、国際フェアトレード認証ラベルが貼られます。森林法に従って木を切ってその木から紙製品を作ったら、FSC認証ラベルが貼られます。水産流通適正化法に従って魚を獲って、その魚を売ったらMSC認証ラベルが貼られます。<gallery widths="180" heights="180"> ファイル:Fairtrade Certification Mark.svg|国際フェアトレード認証ラベル ファイル:Forest Stewardship Council Logo.svg|FSC認証ラベル </gallery> == フェアトレードの役割 == 開発途上国の場合、商品を売ってもその値段が安くなったり高くなったりして、生産者の収入も毎月決まりません。その結果、子供も働いて家族の生活費用を稼がなければなりません。もし、消費者が原料・商品をずっと同じ値段で買い続けると生産者の暮らしも守れます(フェアトレード)。2012年のロンドンオリンピックはフェアトレード認証商品を大量に取り入れました。私達がフェアトレード認証商品を買うと開発途上国の生産者も喜ばれます。 == まとめ == [[カテゴリ:中学校家庭科]] [[カテゴリ:経済生活]] bv7h9y9nbswhin6o770fbw75rq6wykn 301287 301286 2026-07-08T04:55:33Z Kwawe 68789 /* 消費者市民社会とは何か? */ 本文を叙述。 301287 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>[[中学校家庭]]>持続可能な消費生活を目指して == キーワード == SDGs(Sustainable Development Goals)・エシカル消費・消費者市民社会 == 消費行動の社会性 == 私達が毎日買い物をすると、その選び方から社会と環境も大きく変わります。どの商品を選ぶかによって、私達の気持ち「この商品を作ってほしい」が生産者と企業にも伝わります。その結果、企業は選んでもらえるように取り組みを工夫します。したがって、買い物は投票と同じです。私達が相応しい商品を選んで相応しくない商品を買わなかったら、企業は買い物傾向から、相応しい商品を作るようにします。 == エシカル消費推進までの背景 == [[ファイル:SDG 12 Japanese.png|サムネイル|159x159ピクセル|つくる責任・つかう責任]] === 地球環境への負荷 === === 持続可能な開発目標の12番目「つくる責任つかう責任」 === 2015年、持続可能な開発目標(Sustainable Development Goals:SDGs)が国連サミットで出されました。この時、多くの国際連合加盟国が持続可能な開発目標を守りたいと国際連合に伝えました。「生産者が環境に優しい商品を作らなければなりません。消費者も環境に優しい商品を選ばなければなりません。」を持続可能な開発目標の12番目「つくる責任つかう責任」に記されています。このように、生産者と消費者は12番目の目標を守っていくと、環境問題も資源問題も減らせます。その結果、現役世代も将来世代も生活の安全を守れます。 == エシカル消費とは何か? == <span style="color:#f29100">'''エシカル消費(倫理的な消費)'''</span>は人間・社会・環境・地域に優しい買い物をいいます。エシカル消費(倫理的な消費)は日本人の価値観「思いやり」「もったいない」と同じです。どのような商品でも生産者がいないと成り立ちません。安さと見た目だけで商品を選ぶのではなく、生産者・社会・地球環境をよく考えて商品を選びましょう。 また、見栄を張るための買い物はエシカル消費と言えません。自分の収入に合う優しい買い物もエシカル消費の大切な考え方になります。 == グリーンコンシューマーとは何か? == 私達は毎日の買い物で自然環境を守ろうと取り組んでいます(グリーンコンシューマー)。グリーンコンシューマーは特別な準備・遠出・高い買い物・我慢などをしません。普段の買い物で「この商品は環境にやさしいか」「流行よりも自分に似合う商品」を考えて選んでいます。例えば、私服なら自分好みの色で、壊れにくく、暖かかったら同じ私服を長年ローテーションで着れます。その結果、買い替え費用とごみも減らせます。また、再生紙・プラスチック製品を選ぶと新しい木を切ったり、石油を新しく使ったりしなくて済みます。グリーンコンシューマーの行動は目立たなくてもお店(売り手)と工場(作り手)の売り上げに大きく関わります。お店(売り手)はグリーンコンシューマーの買い方から環境に優しい商品をより多くとり入れたいと会社に伝えます。工場(作り手)も環境に優しい商品をより多く作ろうとします。このように、環境に優しい商品は綺麗な空気・綺麗な水・資源を守ります。 == 消費者市民社会とは何か? == 私達は、毎日の買い物から「どの商品を選ぶか」を決めています。この選び方が日本経済と少しずつつながります(消費者市民社会)。言い換えると、消費者市民社会はどの商品を選んだら望ましい社会・望ましい環境になるのかをいいます。 == エシカル消費の種類と内容 == エシカル消費は人間・社会・環境・地域を明るくします。オーガニックコットン製品の服を買うと環境を守れます。オーガニックコットンは、農薬や肥料を出来るだけ使わずに育てられています。その後、工場で周りの空気や水を汚さないようにオーガニックコットン製品の服を作られています。処分品・使わない商品をリサイクル商品・アップサイクル商品に作り直したら資源と環境を守れます。地元産地の商品を買うとその地域も明るくなります(地産地消)。地元の農家・お店は地産地消で助かり、運送会社の軽油代も減らせます。消費者が就労継続支援事業所の商品を選ぶと、就労継続支援事業所内で働く障害者を守れます。レッドカップキャンペーンのマーク付き商品を買うと、学校給食調理員がその費用の一部から献立の食材を買って、給食を作ります。エシカル消費は認証ラベル付きの商品も含みます。国際フェアトレードラベル機構がその商品を取り入れたら、国際フェアトレード認証ラベルが貼られます。森林法に従って木を切ってその木から紙製品を作ったら、FSC認証ラベルが貼られます。水産流通適正化法に従って魚を獲って、その魚を売ったらMSC認証ラベルが貼られます。<gallery widths="180" heights="180"> ファイル:Fairtrade Certification Mark.svg|国際フェアトレード認証ラベル ファイル:Forest Stewardship Council Logo.svg|FSC認証ラベル </gallery> == フェアトレードの役割 == 開発途上国の場合、商品を売ってもその値段が安くなったり高くなったりして、生産者の収入も毎月決まりません。その結果、子供も働いて家族の生活費用を稼がなければなりません。もし、消費者が原料・商品をずっと同じ値段で買い続けると生産者の暮らしも守れます(フェアトレード)。2012年のロンドンオリンピックはフェアトレード認証商品を大量に取り入れました。私達がフェアトレード認証商品を買うと開発途上国の生産者も喜ばれます。 == まとめ == [[カテゴリ:中学校家庭科]] [[カテゴリ:経済生活]] 4tjx6rns5u7zmqvu0ayjycgavk45fd6 301311 301287 2026-07-08T10:28:27Z Kwawe 68789 重要用語を色太字化。 301311 wikitext text/x-wiki [[小学校・中学校・高等学校の学習]]>[[中学校の学習]]>[[中学校家庭]]>持続可能な消費生活を目指して == キーワード == SDGs(Sustainable Development Goals)・エシカル消費・消費者市民社会 == 消費行動の社会性 == 私達が毎日買い物をすると、その選び方から社会と環境も大きく変わります。どの商品を選ぶかによって、私達の気持ち「この商品を作ってほしい」が生産者と企業にも伝わります。その結果、企業は選んでもらえるように取り組みを工夫します。したがって、買い物は投票と同じです。私達が相応しい商品を選んで相応しくない商品を買わなかったら、企業は買い物傾向から、相応しい商品を作るようにします。 == エシカル消費推進までの背景 == [[ファイル:SDG 12 Japanese.png|サムネイル|159x159ピクセル|つくる責任・つかう責任]] === 地球環境への負荷 === === 持続可能な開発目標の12番目「つくる責任つかう責任」 === 2015年、持続可能な開発目標(<span style="color:#f29100">'''Sustainable Development Goals:SDGs'''</span>)が国連サミットで出されました。この時、多くの国際連合加盟国が持続可能な開発目標を守りたいと国際連合に伝えました。「生産者が環境に優しい商品を作らなければなりません。消費者も環境に優しい商品を選ばなければなりません。」を持続可能な開発目標の12番目「つくる責任つかう責任」に記されています。このように、生産者と消費者は12番目の目標を守っていくと、環境問題も資源問題も減らせます。その結果、現役世代も将来世代も生活の安全を守れます。 == エシカル消費とは何か? == <span style="color:#f29100">'''エシカル消費(倫理的な消費)'''</span>は人間・社会・環境・地域に優しい買い物をいいます。エシカル消費(倫理的な消費)は日本人の価値観「思いやり」「もったいない」と同じです。どのような商品でも生産者がいないと成り立ちません。安さと見た目だけで商品を選ぶのではなく、生産者・社会・地球環境をよく考えて商品を選びましょう。 また、見栄を張るための買い物はエシカル消費と言えません。自分の収入に合う優しい買い物もエシカル消費の大切な考え方になります。 == グリーンコンシューマーとは何か? == 私達は毎日の買い物で自然環境を守ろうと取り組んでいます(グリーンコンシューマー)。グリーンコンシューマーは特別な準備・遠出・高い買い物・我慢などをしません。普段の買い物で「この商品は環境にやさしいか」「流行よりも自分に似合う商品」を考えて選んでいます。例えば、私服なら自分好みの色で、壊れにくく、暖かかったら同じ私服を長年ローテーションで着れます。その結果、買い替え費用とごみも減らせます。また、再生紙・プラスチック製品を選ぶと新しい木を切ったり、石油を新しく使ったりしなくて済みます。グリーンコンシューマーの行動は目立たなくてもお店(売り手)と工場(作り手)の売り上げに大きく関わります。お店(売り手)はグリーンコンシューマーの買い方から環境に優しい商品をより多くとり入れたいと会社に伝えます。工場(作り手)も環境に優しい商品をより多く作ろうとします。このように、環境に優しい商品は綺麗な空気・綺麗な水・資源を守ります。 == 消費者市民社会とは何か? == 私達は、毎日の買い物から「どの商品を選ぶか」を決めています。この選び方が日本経済と少しずつつながります(<span style="color:#f29100">'''消費者市民社会'''</span>)。言い換えると、消費者市民社会はどの商品を選んだら望ましい社会・望ましい環境になるのかをいいます。 == エシカル消費の種類と内容 == エシカル消費は人間・社会・環境・地域を明るくします。オーガニックコットン製品の服を買うと環境を守れます。オーガニックコットンは、農薬や肥料を出来るだけ使わずに育てられています。その後、工場で周りの空気や水を汚さないようにオーガニックコットン製品の服を作られています。処分品・使わない商品をリサイクル商品・アップサイクル商品に作り直したら資源と環境を守れます。地元産地の商品を買うとその地域も明るくなります(地産地消)。地元の農家・お店は地産地消で助かり、運送会社の軽油代も減らせます。消費者が就労継続支援事業所の商品を選ぶと、就労継続支援事業所内で働く障害者を守れます。レッドカップキャンペーンのマーク付き商品を買うと、学校給食調理員がその費用の一部から献立の食材を買って、給食を作ります。エシカル消費は認証ラベル付きの商品も含みます。国際フェアトレードラベル機構がその商品を取り入れたら、国際フェアトレード認証ラベルが貼られます。森林法に従って木を切ってその木から紙製品を作ったら、FSC認証ラベルが貼られます。水産流通適正化法に従って魚を獲って、その魚を売ったらMSC認証ラベルが貼られます。<gallery widths="180" heights="180"> ファイル:Fairtrade Certification Mark.svg|国際フェアトレード認証ラベル ファイル:Forest Stewardship Council Logo.svg|FSC認証ラベル </gallery> == フェアトレードの役割 == 開発途上国の場合、商品を売ってもその値段が安くなったり高くなったりして、生産者の収入も毎月決まりません。その結果、子供も働いて家族の生活費用を稼がなければなりません。もし、消費者が原料・商品をずっと同じ値段で買い続けると生産者の暮らしも守れます(フェアトレード)。2012年のロンドンオリンピックはフェアトレード認証商品を大量に取り入れました。私達がフェアトレード認証商品を買うと開発途上国の生産者も喜ばれます。 == まとめ == [[カテゴリ:中学校家庭科]] [[カテゴリ:経済生活]] hzgzl6nt4gy1uhtv9ogungsox69vmjy Autotools 0 39918 301299 267846 2026-07-08T09:17:44Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301299 wikitext text/x-wiki == はじめに == === GNU autotoolsの概要 === GNU autotoolsは、ソースコードからユニックス系OSにおけるビルド済みバイナリを生成するためのツール群です。主要コンポーネントは次の3つです。 ; [[/autoconf|autoconf]] : ポータブルなconfigureスクリプトを生成する ; [[/automake|automake]] : Makefileの生成を自動化する ; [[/libtool|libtool]] : 共有/静的ライブラリのビルド、インストールを簡単化する これらのツールを使うことで、複数のプラットフォームに対応したポータブルなビルドシステムを構築できます。 === ビルドシステムの概要 === 一般的なソフトウェアのビルドプロセスは以下の手順で行われます。 ; 設定 (Configure) : ホスト環境に合わせて設定を行う ; ビルド (Build) : ソースからオブジェクトファイルやライブラリを生成する ; インストール (Install) : ビルド済みのファイルをシステムにインストールする autotoolsは主にこの手順を自動化するためのフレームワークです。autoconfが設定ステップ、automakeがビルドとインストールのルールを提供します。 == autoconfの利用 == === 概要 === autoconfはconfigure スクリプトを生成するツールです。configure.acと呼ばれる入力ファイルに、マクロと呼ばれる特殊な命令を記述することで、様々な処理を行うスクリプトを出力できます。 生成されたconfigureスクリプトは、ホストマシンの環境(OSの種類、アーキテクチャ、コンパイラの有無など)を検出し、それに合わせた設定を行います。 {{Main|Autotools/autoconf}} === configure.acの構文 === configure.acは、シェルスクリプトと同様の構文で記述されますが、autoconfマクロも多数使用します。以下は基本的な構造です。 ; configure.ac :<syntaxhighlight lang=text> AC_INIT(パッケージ名, バージョン, バグレポートメールアドレス) AM_INIT_AUTOMAKE(オプション) # 環境検査用マクロ AC_PROG_CC AC_PROG_INSTALL ... # パッケージ固有のマクロ AC_ARG_WITH([gnupg], ...) AC_CHECK_LIB([gcrypt], ...) ... AC_CONFIG_FILES(Makefile src/Makefile ...) # 出力ファイルの指定 AC_OUTPUT </syntaxhighlight> <code>AC_INIT</code>でパッケージの情報を設定し、<code>AC_CONFIG_FILES</code>で生成するファイル一覧を指定します。マクロの記述順序が重要です。 === マクロ === autoconfには数多くの事前定義マクロが用意されており、環境検査やユーザ入力の処理に使われます。いくつか紹介します。 ; <code>AC_PROG_CC</code> : C コンパイラの検出 ; <code>AC_PROG_INSTALL</code> : インストールプログラムの検出 ; <code>AC_CHECK_LIB(ライブラリ, 関数)</code> : 特定のライブラリと関数の存在を検査 ; <code>AC_ARG_WITH(スイッチ名, ヘルプ文字列, 保管先変数)</code> : <code>--with-スイッチ</code>オプションの処理 ; <code>AC_DEFINE(定義名, 値, 説明)</code> : プリプロセッサマクロの定義 さらに、プラットフォーム固有の設定用に、autoconf 2.14以降では <code>AC_CANONICAL_HOST</code>などのマクロが利用できます。 === 出力ファイル === configure.acからは主に以下のファイルが生成されます。 ; <code>configure</code> : 設定スクリプト本体 ; <code>config.status</code> : <code>configure</code>が更新するファイル一覧 ; <code>Makefile</code> : makefileのひな形(automakeが更に書き加える) ; <code>confdefs.h</code>、<code>conftest.*</code> : 一時ファイル <code>configure</code>の実行により、これらのファイルが更新され、最終的なビルド環境が整えられます。 == automakeの利用 == === 概要 === automakeは、autoconfから出力されたMakefileにさらなる指示を加え、本格的なMakefileを生成します。この入力ファイルをMakefile.amと呼び、特別なディレクティブを記述できます。 {{Main|Autotools/automake}} === Makefile.amの構文 === Makefile.amは、普通のMakefileと類似した構文で記述されますが、automakeディレクティブが追加で使えます。通常の構成は以下のようになります。 ; Makefile.am :<syntaxhighlight lang=make> AUTOMAKE_OPTIONS = クロスツリーの有無 コンパイラフラグ ... bin_PROGRAMS = プログラム名 プログラム名_SOURCES = ソースファイル一覧 プログラム名_CFLAGS = コンパイラオプション lib_LTLIBRARIES = ライブラリ名.la ライブラリ名_la_SOURCES = ソースファイル一覧 dist_man_MANS = マニュアルファイル # ビルドルール .PHONY: ターゲット ターゲット: 依存ファイル コマンド </syntaxhighlight> <code>bin_PROGRAMS</code>では実行ファイルのビルド対象を、<code>lib_LTLIBRARIES</code>では共有ライブラリの作成対象を指定します。 === プログラムのインストール === automakeでは、インストール先ディレクトリがデフォルトで設定されています。 ; <code>bin_PROGRAMS</code> : > <code>$(bindir)</code> ; <code>lib_LTLIBRARIES</code> : > <code>$(libdir)</code> ; <code>dist_man_MANS</code> : > <code>$(mandir)/man$(manext)</code> デフォルトの変更は可能ですが、オーバーヘッドがあるため基本的には標準の場所を使うことが推奨されています。 === サブディレクトリ === automakeはサブディレクトリ内のMakefileも自動生成します。そのためには、トップディレクトリのMakefile.amで以下を記述します。 :<syntaxhighlight lang=make> SUBDIRS = src utils doc </syntaxhighlight> これにより、ビルド時にサブディレクトリのMakefileが再帰的に参照されます。 === 条件付きコンパイル === featuresあるいはオプションコードを有条件で組み込むには、automakeの条件コンパイル構文を使います。 :<syntaxhighlight lang=make> if SOMECOND プログラム名_SOURCES += module.c else プログラム名_SOURCES += altmodule.c endif </syntaxhighlight> <code>SOMECOND</code>の値はautoconfで設定された変数で、真(true)か偽(false)を取ります。この値に応じて、<code>module.c</code>か<code>altmodule.c</code>がプログラムのソースファイルに追加されます。 この条件分岐は、特定の環境やオプションでのみコードを有効化したい場合に便利です。例えば、以下のようにしてGUIサポートの有無を切り替えることができます。 :<syntaxhighlight lang=make> if GUI_SUPPORT prog_SOURCES += gui.c gui_utils.c else prog_SOURCES += cui.c endif </syntaxhighlight> <code>GUI_SUPPORT</code>はconfigure時の<code>--enable-gui</code>オプションで設定される変数です。trueならGUIコード、falseならCUIコードがコンパイル対象に含まれます。 automakeの<code>if</code>ディレクティブでは、さらに複雑な条件分岐も可能です。 :<syntaxhighlight lang=make> if COND1 ... else IF COND2 ... else ... endif </syntaxhighlight> この例のように、ネストした<code>if</code>...<code>else</code>...<code>endif</code>の構造も使えます。<code>COND1</code>と<code>COND2</code>は別々の条件を表す変数です。 このように、autotoolsを使えばさまざまな条件でのビルドルールを柔軟に設定できるため、ポータビリティの高いソフトウェアが開発しやすくなります。 == libtoolの利用 == === 概要 === libtoolはautotoolsスイートの一部で、共有ライブラリと静的ライブラリの作成とインストールを簡単に行えるようにするツールです。ライブラリの種類やビルドルールはプラットフォームによって異なりますが、libtoolはそれらを自動的に処理してくれます。 {{Main|Autotools/libtool}} === 共有ライブラリの作成 === Makefile.amで<code>lib_LTLIBRARIES</code>変数にライブラリ名を割り当てると、共有ライブラリのビルドが行われます。 :<syntaxhighlight lang=make> lib_LTLIBRARIES = libfoo.la libfoo_la_SOURCES = foo.c bar.c </syntaxhighlight> 上記により、libfoo.laという名前の共有ライブラリが生成されます。<code>.la</code>拡張子はlibtools独自の形式です。 === 静的ライブラリの作成 === 静的ライブラリは<code>noinst_LIBRARIES</code>変数で指定します。<code>noinst</code>接頭辞により、インストールされない(非インストール)ライブラリとなります。 :<syntaxhighlight lang=make> noinst_LIBRARIES = libutil.a libutil_a_SOURCES = util1.c util2.c </syntaxhighlight> === インストールルール === 共有ライブラリのインストール先は通常<code>$(libdir)</code>ですが、libtoolでは複数のインストール場所を指定できます。 :<syntaxhighlight lang=make> libfoo_la_LDFLAGS = -version-info x:y:z install_fooHEADERS = foo.h fooincludedir = $(includedir)/foosubdir </syntaxhighlight> <code>libfoo_la_LDFLAGS</code>でバージョン情報を指定し、<code>install_fooHEADERS</code>でインストールするヘッダファイルを、<code>fooincludedir</code>でそのディレクトリを指定しています。 === プラットフォーム依存の処理 === libtoolは内部でプラットフォーム情報を利用し、OSごとにビルドルールを自動生成します。例えばライブラリのリンク方法は以下のように異なります。 ; FreeBSD: <code>cc -shared</code> ; 多くのLinuxのディストリビューション: <code>gcc -shared</code> ; Solaris: <code>/usr/ccs/bin/ld -G</code> ; AIX: <code>/usr/ccs/bin/ld -bhared</code> ユーザーはプラットフォームに依存しない統一的な方法で記述できるため、ポータビリティが高まります。 == 高度な機能 == === マルチスレッドプログラムのビルド === automakeには、POSIX スレッドを利用したマルチスレッドプログラムのビルドをサポートする機能があります。以下の手順で有効にできます。 # <code>configure.ac</code>に<code>AC_PROG_CC_C99</code>を追加(C99規格のスレッドサポートが必要) # <code>Makefile.am</code>で<code>AM_CPPFLAGS</code>にマルチスレッドフラグ <code>-pthread</code> を追加 #:<syntaxhighlight lang=make> AM_CPPFLAGS = -pthread </syntaxhighlight> これで各ソースコードが <code>-pthread</code>フラグ付きでコンパイルされ、必要なスレッドライブラリもリンクされるようになります。 === 国際化とローカライズ === GNU gettext を使った国際化(I18N)とローカライズ(L10N)もautotoolsでサポートされています。主な手順は以下の通りです。 # <code>configure.ac</code>に<code>AM_GNU_GETTEXT_VERSION</code>と<code>AM_GNU_GETTEXT</code>を追加 # <code>Makefile.am</code>にgettextマクロを記述 # <code>AC_CONFIG_FILES</code>に<code>po/Makefile.in</code>を追加 # <code>make update-po</code>でPOファイルテンプレートを生成 翻訳者はPOファイルに翻訳文字列を記入し、コンパイル時にそれらがプログラムに組み込まれます。 === ソースコード生成 === autoconfには、Cソースコードを生成するための機能も搭載されています。configure時にテストを実行し、その結果に基づいて使用する関数を切り替えたりできます。 例えば、標準のstrchrがない環境ではその実装が生成されます。 :<syntaxhighlight lang=text> AC_FUNC_STRCHR </syntaxhighlight> <code>autoconf</code>は、独自の<code>confdefs.h</code>ファイルにこれらの関数を書き出します。 === Automake条件分岐 === automakeには条件分岐のための<code>if</code>ディレクティブが用意されており、ビルド対象ファイルをホストマシンの環境に応じて切り替えられます。 :<syntaxhighlight lang=make> if CROSS_COMPILING bin_PROGRAMS = util_cross else bin_PROGRAMS = util_native endif </syntaxhighlight> <code>CROSS_COMPILING</code>はautoconfで定義された変数で、クロスコンパイル環境であれば<code>util_cross</code>、そうでなければ<code>util_native</code>がコンパイルの対象となります。 == トラブルシューティング == === 一般的なエラーとその対処 === autotoolsを使っていてよくあるエラーとその対処法を紹介します。 '''aclocal: 'openssl' hasn't been installed''' エラーの原因は<code>/usr/share/aclocal/openssl.m4</code>がないことです。Debian系の場合、<code>libssl-dev</code>パッケージをインストールすると解決できます。 ; automake failed: gnu/libtool.m4 not found in /usr/share/aclocal この場合、<code>libtool-devel</code>パッケージをインストールする必要があります。 '''X11.m4 couldn't be found''' Xライブラリのインストールが必要なエラーです。環境によって異なりますが、例えば<code>libx11-dev</code>パッケージなどを追加インストールしてください。 === デバッグ方法 === autotoolsスクリプトのバグを探すには、それぞれのツールの<code>-d</code>オプションを使うとよいでしょう。 * <code>autoreconf -iv --debug=automake</code> * <code>automake -a -v</code> * <code>autoconf -dv</code> これらはautotoolsの内部処理の詳細なログを出力するので、エラーの原因を特定しやすくなります。 Makefile自体をデバッグする際は、<code>make -d</code>を実行すると標準出力に詳細なログが表示されます。 分かりました。autoconfとautomakeのトレース機能について、続けて説明します。 === autoconfおよびautomakeのトレース === autoconfの実行時の検査内容を細かく追跡するには、<code>autoreconf</code>時に<code>--trace</code>オプションを付けます。 :<syntaxhighlight lang=bash> autoreconf -iv --trace=AC_CANONICAL_HOST </syntaxhighlight> 上記の例ではAC_CANONICAL_HOSTマクロの挙動がトレースされます。また、<code>info autoconf</code>でマクロ探索の詳細を確認できます。 トレース対象を複数指定する場合は<code>:</code> (コロン)で区切ります。 :<syntaxhighlight lang=text> --trace=AC_CANONICAL_HOST:AC_PROG_CC </syntaxhighlight> <code>--trace</code>オプションを指定しないと、autoconfはトレース情報をほとんど出力しません。問題解決の際は是非このオプションを活用してください。 一方、automakeのトレースは<code>AUTOMAKE_TRACE</code>環境変数で制御します。 :<syntaxhighlight lang=sh> AUTOMAKE_TRACE=true export AUTOMAKE_TRACE </syntaxhighlight> これで、automakeの処理ステップが全て出力されるようになります。特定の情報のみを出力したい場合は、以下のように指定します。 :<syntaxhighlight lang=sh> AUTOMAKE_TRACE='categories=condition:foo' </syntaxhighlight> <code>categories</code>で指定したカテゴリ(<code>condition</code>と<code>foo</code>)の情報のみがトレースされます。他のカテゴリはすべて以下のように表示されます。 :<syntaxhighlight lang=text> condition:... foo:... </syntaxhighlight> <code>categories</code>以外の指定方法もあり、<code>rules</code>ではパターンマッチでルールを選択できます。 :<syntaxhighlight lang=sh> AUTOMAKE_TRACE='rules=libtool' </syntaxhighlight> この設定なら、libtoolに関連するルールのみがトレースされます。 このようにトレース機能を適切に使えば、autotoolsの内部動作を詳細に追跡でき、問題の特定が容易になります。 === automakeのトレース === automakeの動作をトレースするには、<code>AUTOMAKE_TRACE</code>環境変数を使います。 :<syntaxhighlight lang=sh> export AUTOMAKE_TRACE=':-1' automake -a </syntaxhighlight> この設定で、automakeの実行ステップが全て表示されるようになります。特定の種類の情報のみを出力したい場合は以下のように指定します。 ; <code>AUTOMAKE_TRACE=categories=CATEGORY1[:CATEGORY2]...</code> :; 例: <code>categories=recursive:condition</code>でRecursiveとConditionのカテゴリ情報のみ表示 ; <code>AUTOMAKE_TRACE=rules=REGEX</code> :; 例: <code>rules='install\-data'</code>でインストールデータルールに関する情報のみ表示 このようにトレース機能を使えば、autotoolsの内部動作を詳細に追跡でき、問題の特定が容易になります。 == ツールリファレンス == === autoconf === autoconfのコマンドライン引数は次の通りです。 :<syntaxhighlight lang=bash> autoconf [OPTION]... [SHELL-FILE]... </syntaxhighlight> 主なオプションは以下です。 * <code>-o file</code> - 出力ファイル名を指定 * <code>-f file</code> - 補助スクリプトファイル名を指定 * <code>-B dir</code> - 一時ファイルの出力先ディレクトリを指定 * <code>-d</code> - 詳細なデバッグ情報を出力 * <code>-v, --verbose</code> - 処理内容を詳しく表示 * <code>--trace=ITEM</code> - 特定の処理をトレース ==== 代表的なマクロ ==== 一般的に利用されるautoconfマクロを紹介します。 ; プログラム検査 :; <code>AC_PROG_CC</code> : Cコンパイラを検出 :; <code>AC_PROG_CXX</code> : C++コンパイラを検出 :; <code>AC_PROG_F77</code> : Fortranコンパイラを検出 ; ライブラリ検査 :; <code>AC_CHECK_LIB(LIBRARY, FUNC)</code> : ライブラリとその関数の存在をチェック :; <code>AC_CHECK_HEADER(HEADER-FILE...)</code> : ヘッダファイルの存在をチェック ; オプション処理 :; <code>AC_ARG_WITH(PACKAGE...)</code> : <code>--with-package</code>オプションを処理 :; <code>AC_ARG_ENABLE(FEATURE...)</code> : <code>--enable-feature</code>オプションを処理 ; その他 :; <code>AC_DEFINE(DEFINITION...)</code> : プリプロセッサ定義を出力 :; <code>AC_CHECK_FUNCS(FUNC...)</code> : 関数の存在をチェック マクロの詳細は、<code>info autoconf</code>を参照してください。 === automake === automakeのコマンドライン引数は以下の通りです。 :<syntaxhighlight lang=bash> automake [OPTION]... [DIR]... </syntaxhighlight> 主なオプションは次のとおりです。 ; <code>-a, --add-missing</code> : 必要な設定ファイルを生成 ; <code>--foreign</code> : 非GNUプロジェクトの扱いにする ; <code>-i, --ignore-deps</code> : 非ストリクトな依存関係チェックを行う ; <code>--warnings=CATEGORY</code> : 特定のカテゴリの警告を表示 ==== 主要なディレクティブ ==== automakeで使用される主要なディレクティブは以下の通りです。 ; 実行ファイル ; <code>bin_PROGRAMS</code> : インストール対象の実行ファイル ; <code>noinst_PROGRAMS</code> : インストールされない実行ファイル ; <code>xxxxx_SOURCES</code> : プログラムのソースファイル ; ライブラリ ; <code>lib_LTLIBRARIES</code> : インストール対象の共有ライブラリ ; <code>noinst_LIBRARIES</code> : インストールされない静的ライブラリ ; その他ファイル ; <code>dist_man_MANS</code> : インストール対象のマニュアルファイル ; <code>dist_pkgdata_DATA</code> : パッケージデータファイル ; インストール先 ; <code>xxxdirname</code> : インストール先ディレクトリの変更 ; 条件分岐 ; <code>if ... else ... endif</code> : 条件によるコード分岐 === libtool === libtools のコマンドライン引数は以下のとおりです。 :<syntaxhighlight lang=bash> libtool [OPTION]... [MODE-ARGS]... </syntaxhighlight> 主なモードとオプションは次の通りです。 ; モード ; <code>--mode=link</code> : オブジェクトからライブラリを作成 ; <code>--mode=install</code> : ライブラリをインストール ; <code>--mode=uninstall</code> : ライブラリをアンインストール ; オプション ; <code>--silent</code> : 実行状況を表示しない ; <code>-n, --dry-run</code> : 実際のコマンドを実行せずに表示のみ行う ; <code>--preserve-dup-deps</code> : 重複した依存関係を残す ; <code>-static</code> : 共有ライブラリの代わりに静的ライブラリを作成 libtools自体の詳細は<code>info libtool</code>を参照してください。 == まとめ == 本書では、GNU autotoolsの主要3ツールであるautoconf、automake、libtoolについて解説しました。環境に応じたconfigureスクリプトの生成、Makefileの自動生成、共有ライブラリのビルドとインストールの自動化など、autotoolsを利用することでポータブルなビルドシステムが構築できます。 一方で、autotoolsの設定ファイルはかなり複雑で、理解と習熟に一定の時間がかかります。本書で基本的な使い方を理解したうえで、実際のプロジェクトに適用しながら経験を積むことが肝心です。 autoconfマクロやautomakeディレクティブの詳細については、<code>info</code>マニュアルをぜひ参照してください。本書でカバーしきれなかった部分も多々あると思われます。autotoolsを十分に活用し、高品質で可搬性の高いソフトウェアを開発できるようになることを願っています。 == 附録 == === サンプルコード === 本書で説明した内容を踏まえ、簡単なサンプルプロジェクトを作成してみましょう。フォルダ構成は以下のようにします。 :<syntaxhighlight lang=text> sampleproj/ ├── src/ │ └── main.c ├── doc/ │ └── sampleproj.txt ├── configure.ac ├── Makefile.am └── README </syntaxhighlight> 最初に<code>configure.ac</code>を作成します。 :<syntaxhighlight lang=text> AC_INIT([sampleproj],[1.0],[ info@example.com ]) AM_INIT_AUTOMAKE([foreign -Wall]) AC_PROG_CC AC_CONFIG_SRCDIR([src/main.c]) AC_CONFIG_HEADERS(config.h) AC_CONFIG_FILES([Makefile src/Makefile]) AC_OUTPUT </syntaxhighlight> 次に<code>Makefile.am</code>を作ります。 :<syntaxhighlight lang=make> SUBDIRS = src doc dist_doc_DATA = README # プログラムメインソース bin_PROGRAMS = sampleproj sampleproj_SOURCES = src/main.c </syntaxhighlight> <code>src/Makefile.am</code>も必要です。 :<syntaxhighlight lang=make> AM_CFLAGS = -Wall sampleproj_LDADD = @LIBS@ </syntaxhighlight> <code>src/main.c</code>の中身は単に"Hello World"を表示するだけの簡単なものとします。 :<syntaxhighlight lang=c> #include <stdio.h> int main(void) { printf("Hello World\n"); return 0; } </syntaxhighlight> :<syntaxhighlight lang=bash> $ autoreconf --install $ ./configure $ make $ src/sampleproj Hello World </syntaxhighlight> うまくビルドが行えました。このように、autotoolsを適切に設定すれば、ソースコードからバイナリまでの一連のビルドプロセスを自動化できます。 <code>autoreconf --install</code>コマンドで、configure、config.statusなどのスクリプトファイルが生成されます。<code>./configure</code>では環境に応じた設定が行われ、最終的に<code>make</code>でコンパイル・リンクされてバイナリが作られます。 このサンプルではごくシンプルな例を示しましたが、実際のプロジェクトではもっと複雑な設定が必要になることでしょう。例えば、以下のような機能を追加することが考えられます。 * 外部ライブラリの検出と利用設定 * GUIコードとCUIコードの分岐ビルド * 国際化(gettext)のサポート * サブディレクトリの並列ビルド * 各種インストール先の変更 これらはすべてautotoolsで実現可能です。設定ファイルにマクロやディレクティブを適切に記述することで、用途に合わせてカスタマイズできます。 <!-- 本書で学んだ知識を活かし、実際に自身のプロジェクトでautotoolsを活用してみることをお勧めします。最初はとまどうかもしれませんが、経験を重ねるごとにスムーズに扱えるようになるはずです。ポータブルでメンテナンス性の高いビルドシステムを構築する、強力なツールであることは間違いありません。 --> === 関連リソース === 本書で紹介したtoolsの他にも、autotoolsと関連するユーティリティがいくつか存在します。 ==== autoconf-archive ==== [[/autoconf-archive|autoconf-archive]] ( https://www.gnu.org/software/autoconf-archive/ ) は、一般的に使われるautoconfマクロを収集したオンラインリポジトリです。ここに登録されているマクロを使えば、環境検査やコーディングの手間が大幅に省けます。 例えば以下のようにしてZLIBライブラリの有無を検査できます。 :<syntaxhighlight lang=text> AX_ZLIB([ ZLIB_LIBS="-lz" ],[ AC_MSG_ERROR([zlib is required but wasn't found]) ]) </syntaxhighlight> ==== glib-gettext ==== [[glib-gettext]]は、GNUプロジェクトでの国際化(I18N)とローカリズ(L10N)をサポートするツールです。gettext toolkitとの連携により、POファイルの更新や翻訳文字列の抽出が容易になります。 :<syntaxhighlight lang=bash> $ glib-gettextize --force --copy $ intltoolize --force --copy --automake </syntaxhighlight> ==== gnulib ==== [[gnulib]](https://www.gnu.org/software/gnulib/) は、ポータブルなシステムユーティリティの集合体です。gnulibの関数をソースコードに組み込むことで、古いシステムでも最新の処理が利用できるようになります。 autoconfには<code>gl_FUNC_STRCHR</code>のようなマクロが用意されており、strchr関数の有無を検査し、ない場合はgnulibの実装を使うことができます。 == 下位階層のページ == *[[Autotools/aclocal]] *[[Autotools/autoconf]] *[[Autotools/autoconf-archive]] *[[Autotools/autoheader]] *[[Autotools/automake]] *[[Autotools/autoreconf]] *[[Autotools/autoscan]] *[[Autotools/autoupdate]] *[[Autotools/config.guess]] *[[Autotools/ifnames]] *[[Autotools/libltdl]] *[[Autotools/libtool]] *[[Autotools/libtoolize]] {{DEFAULTSORT:AUTOTOOLS}} [[Category:Autotools|*]] [[Category:ソフトウェア開発]] [[Category:GNU]] kig40jhy21z00kltsem52hbk1luptkj HTML Living Standard 0 40195 301313 267861 2026-07-08T11:11:16Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301313 wikitext text/x-wiki == 序章 == === HTMLとは? === HTML(HyperText Markup Language)は、ウェブページを作成するための標準的なマークアップ言語です。HTMLは、文書の構造を定義し、テキスト、画像、リンク、フォームなどの要素を組み合わせて、ブラウザ上で表示されるウェブページを形成します。 === HTML Living Standardの背景と目的 === HTML Living Standardは、従来の静的なバージョン管理から脱却し、ウェブ技術の進化に対応するために策定された動的な標準です。この標準は、ウェブ技術の最新の動向を反映し、継続的に更新されることを目指しています。これにより、開発者は最新のベストプラクティスと技術に基づいてウェブページを作成することができます。 === この教科書の使い方 === この教科書は、HTMLの基本から最新の仕様までを包括的にカバーしています。各章は段階的に進むように設計されており、初学者から中級者、上級者までが効果的に学べる内容となっています。各セクションには実例が含まれており、実際のコードを通じて理解を深めることができます。 == 基本構造と要素 == === HTML文書の基本構造 === HTML文書は、以下の基本構造で始まります。この構造は、HTML文書が正しく解析され、ブラウザによって適切に表示されるために必要です。 :<syntaxhighlight lang=html> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>HTMLの基本構造</title> </head> <body> <h1>こんにちは、世界!</h1> </body> </html> </syntaxhighlight> ==== 解説 ==== * [[/doctype|<syntaxhighlight lang=html inline><!DOCTYPE html></syntaxhighlight>]]:この宣言は、文書がHTML5仕様に基づいていることをブラウザに示します。 * [[/html|<syntaxhighlight lang=html inline><html lang="ja"></syntaxhighlight>]]:HTML文書のルート要素で、文書の言語を指定します。 * <code><[[/head|head]]></code>:メタデータを含むセクションです。タイトルや文字エンコーディング、外部リソースのリンクなどが含まれます。 * <code><[[/body|body]]></code>:実際にブラウザに表示されるコンテンツを含むセクションです。 === 最も重要な要素 === HTMLには多くの要素がありますが、以下は最も重要な要素です。 * '''見出し要素''' (<code><[[/h1|h1]]></code>〜<code><[[/h6|h6]]></code>): 文書の見出しを定義します。<code><[[/h1|h1]]></code>が最も重要で、<code><[[/h6|h6]]></code>が最も重要度が低い見出しです。 * '''段落要素''' (<code><[[/p|p]]></code>): テキストの段落を定義します。 * '''リンク要素''' (<code><[[/a|a]]></code>): 他の文書やリソースへのハイパーリンクを定義します。 * '''画像要素''' (<code><[[/img|img]]></code>): 画像を表示します。 * '''リスト要素''' (<code><[[/ul|ul]]></code>, <code><[[/ol|ol]]></code>, <code><[[/li|li]]></code>): 順序付きリスト(<code><[[/ol|ol]]></code>)、順序なしリスト(<code><[[/ul|ul]]></code>)、およびリスト項目(<code><[[/li|li]]></code>)を定義します。 === コメントとエスケープシーケンス === HTMLでは、コメントを使用してコード内に説明やメモを追加できます。コメントは、ブラウザに表示されることはありません。 :<syntaxhighlight lang=html> <!-- これはコメントです --> <p>この段落は表示されます。</p> </syntaxhighlight> エスケープシーケンス(実体参照)を使用すると、HTML特殊文字をそのまま表示することができます。 :<syntaxhighlight lang=html> <p>アンパサンド(&amp;)と小なり(&lt;)と大なり(&gt;)</p> </syntaxhighlight> == テキストコンテンツ == === 見出しと段落 === 見出しは文書のセクションを示すために使用され、段落はテキストのブロックを定義します。 :<syntaxhighlight lang=html> <h1>主要見出し</h1> <p>これは段落です。文書の本文を構成します。</p> <h2>副次見出し</h2> <p>もう一つの段落です。さらに詳細な情報を提供します。</p> </syntaxhighlight> === リストとリストアイテム === リストは、関連する項目をグループ化するために使用されます。 :<syntaxhighlight lang=html> <ul> <li>項目1</li> <li>項目2</li> <li>項目3</li> </ul> <ol> <li>最初の項目</li> <li>二番目の項目</li> <li>三番目の項目</li> </ol> </syntaxhighlight> === 引用と引用元の指定 === 引用要素は、他のソースからの引用を示します。 :<syntaxhighlight lang=html> <blockquote cite="https://www.example.com"> <p>これは引用です。</p> </blockquote> <cite>出典: <a href="https://www.example.com">Example</a></cite> </syntaxhighlight> {{Main|[[HTML Living Standard/blockquote|blockquote]]|[[HTML Living Standard/q|q]]|[[HTML Living Standard/cite|cite]]|[[HTML Living Standard/figure|figure]]|[[HTML Living Standard/figcaption|figcaption]]}} == セマンティックなHTML == === セマンティック要素の重要性 === セマンティックなHTML要素は、コンテンツの意味を明確にするために使用されます。これにより、検索エンジンや支援技術がコンテンツを正しく理解しやすくなります。 === 見出し要素、節要素、グループ化要素 === * '''見出し要素''' (<code><[[/header|header]]></code>, <code><[[/footer|footer]]></code>): 文書やセクションのヘッダーやフッターを定義します。 * '''節要素''' (<code><[[/section|section]]></code>, <code><[[/article|article]]></code>, <code><[[/aside|aside]]></code>): 文書の論理的なセクションを定義します。 * '''グループ化要素''' (<code><[[/div|div]]></code>, <code><[[/span|span]]></code>): スタイリングやスクリプト用にコンテンツをグループ化します。 === HTML5のセマンティック要素 === HTML5では、多くの新しいセマンティック要素が導入されています。 :<syntaxhighlight lang=html> <header> <h1>サイトのタイトル</h1> </header> <nav> <ul> <li><a href="#home">ホーム</a></li> <li><a href="#about">アバウト</a></li> <li><a href="#contact">コンタクト</a></li> </ul> </nav> <main> <article> <h2>記事のタイトル</h2> <p>この記事の内容です。</p> </article> <aside> <h2>サイドバーのタイトル</h2> <p>サイドバーの内容です。</p> </aside> </main> <footer> <p>&copy; 2024 会社名</p> </footer> </syntaxhighlight> == リンクとナビゲーション == === ハイパーリンクの基本 === ハイパーリンクを使用すると、ユーザーが他の文書やリソースに移動できます。 :<syntaxhighlight lang=html> <a href="https://www.example.com">Exampleへのリンク</a> </syntaxhighlight> === アンカーとフラグメント識別子 === フラグメント識別子を使用すると、同じ文書内の特定の場所にジャンプできます。 :<syntaxhighlight lang=html> <a href="#section1">セクション1に移動</a> <h2 id="section1">セクション1</h2> <p>セクション1の内容です。</p> </syntaxhighlight> === ナビゲーション要素とその利用 === ナビゲーション要素は、文書やサイトのナビゲーションリンクをグループ化するために使用されます。 :<syntaxhighlight lang=html> <nav> <ul> <li><a href="#home">ホーム</a></li> <li><a href="#about">アバウト</a></li> <li><a href="#contact">コンタクト</a></li> </ul> </nav> </syntaxhighlight> == 画像とマルチメディア == === 画像の挿入と管理 === 画像を挿入するには、<code><[[/img|img]]></code>要素を使用します。 :<syntaxhighlight lang=html> <img src="image.jpg" alt="画像の説明"> </syntaxhighlight> === 音声と動画の埋め込み === HTML5では、<code><[[/audio|audio]]></code>と<code><[[/video|video]]></code>要素を使用して音声と動画を埋め込むことができます。 :<syntaxhighlight lang=html> <audio controls> <source src="audio.mp3" type="audio/mpeg"> お使いのブラウザは音声要素をサポートしていません。 </audio> <video controls> <source src="video.mp4" type="video/mp4"> お使いのブラウザは動画要素をサポートしていません。 </video> </syntaxhighlight> {{Main |[[/audio|audio]] |[[/canvas|canvas]] |[[/embed|embed]] |[[/iframe|iframe]] |[[/img|img]] |[[/math|math]] |[[/object|object]] |[[/picture|picture]] |[[/svg|svg]] |[[/video|video]] }} === 代替テキストとアクセシビリティ === 画像には必ず<code>alt</code>属性を使用して、代替テキストを提供することが重要です。これにより、視覚障害者のユーザーもコンテンツを理解しやすくなります。 :<syntaxhighlight lang=html> <img src="logo.png" alt="会社のロゴ"> </syntaxhighlight> == フォームと入力要素 == === フォームの基本構造 === フォームは、ユーザーがデータを入力し、サーバーに送信するための手段を提供します。 :<syntaxhighlight lang=html> <form action="/submit" method="post"> <label for="name">名前:</label> <input type="text" id="name" name="name"> <input type="submit" value="送信"> </form> </syntaxhighlight> === 入力要素の種類と属性 === HTML5では、多くの新しい入力要素の種類が追加されました。 :<syntaxhighlight lang=html> <form> <label for="email">メールアドレス:</label> <input type="email" id="email" name="email"> <label for="date">日付:</label> <input type="date" id="date" name="date"> <label for="range">範囲:</label> <input type="range" id="range" name="range" min="0" max="10"> <input type="submit" value="送信"> </form> </syntaxhighlight> === フォームのバリデーションと送信 === フォームのバリデーションは、ユーザーがデータを送信する前に、入力内容を確認するために使用されます。 :<syntaxhighlight lang=html> <form> <label for="username">ユーザー名:</label> <input type="text" id="username" name="username" required> <label for="age">年齢:</label> <input type="number" id="age" name="age" min="18" required> <input type="submit" value="送信"> </form> </syntaxhighlight> == テーブル == === テーブルの基本構造 === テーブルは、データを行と列の形式で表示するために使用されます。 :<syntaxhighlight lang=html> <table> <thead> <tr> <th>見出し1</th> <th>見出し2</th> </tr> </thead> <tbody> <tr> <td>データ1</td> <td>データ2</td> </tr> <tr> <td>データ3</td> <td>データ4</td> </tr> </tbody> </table> </syntaxhighlight> === テーブルのスタイルとデザイン === CSSを使用してテーブルのスタイルをカスタマイズできます。 :<syntaxhighlight lang=html> <style> table { width: 100%; border-collapse: collapse; } th, td { border: 1px solid #ddd; padding: 8px; } th { background-color: #f2f2f2; } </style> </syntaxhighlight> === 複雑なテーブルの構造 === 複雑なテーブルは、複数の見出し行やセルの結合を含むことがあります。 :<syntaxhighlight lang=html> <table> <thead> <tr> <th rowspan="2">見出し1</th> <th colspan="2">見出し2</th> </tr> <tr> <th>サブ見出し1</th> <th>サブ見出し2</th> </tr> </thead> <tbody> <tr> <td>データ1</td> <td>データ2</td> <td>データ3</td> </tr> <tr> <td>データ4</td> <td>データ5</td> <td>データ6</td> </tr> </tbody> </table> </syntaxhighlight> == HTMLのAPIとDOM == === DOM(Document Object Model)とは? === DOM(Document Object Model)は、HTMLやXML文書の構造をツリー状に表現したもので、JavaScriptを使って文書の内容や構造を動的に操作するためのインターフェースを提供します。以下では、JavaScriptを使った基本的なDOM操作について説明します。 === JavaScriptを使ったDOM操作 === ==== DOMの基本操作 ==== ===== 要素の取得 ===== JavaScriptを使って、HTML文書内の要素を取得する方法にはいくつかあります。従来は、<code>document.getElementById</code>、<code>document.getElementsByClassName</code>、そして<code>document.getElementsByTagName</code>を適宜使い分けていましたが、[[CSS]]のセレクタと同じ構文が使えるので、<code>document.querySelector</code>や<code>document.querySelectorAll</code>の利用が推奨されます。 :<syntaxhighlight lang=html> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>DOM操作の例</title> </head> <body> <h1 id="main-title">DOM操作の例</h1> <p class="content">この段落はクラス名を使って取得されます。</p> <p>この段落はタグ名を使って取得されます。</p> <script> // IDを使って要素を取得 const title = document.querySelector("#main-title"); console.log(title); // クラス名を使って要素を取得 const content = document.querySelectorALl(".content"); console.log(content[0]); // タグ名を使って要素を取得 const paragraphs = document.querySelectorAll("p"); console.log(paragraphs[0]); // CSSセレクタを使って要素を取得 const firstParagraph = document.querySelector("p"); console.log(firstParagraph); </script> </body> </html> </syntaxhighlight> ===== 要素の作成と追加 ===== 新しい要素を作成して、既存の文書に追加するには、<code>document.createElement</code>を使います。作成した要素は、<code>appendChild</code>や<code>insertBefore</code>を使って文書に挿入します。 :<syntaxhighlight lang=html> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>要素の作成と追加</title> </head> <body> <div id="container"></div> <script> // 新しい段落要素を作成 const newParagraph = document.createElement("p"); newParagraph.textContent = "この段落はJavaScriptで作成されました。"; // 作成した段落を既存の要素に追加 const container = document.querySelector("#container"); container.appendChild(newParagraph); </script> </body> </html> </syntaxhighlight> ===== 要素の削除 ===== 既存の要素を削除するには、<code>parentNode.removeChild</code>を使います。 :<syntaxhighlight lang=html> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>要素の削除</title> </head> <body> <p id="remove-me">この段落は削除されます。</p> <script> // 削除する要素を取得 const paragraph = document.querySelector("#remove-me"); // 親要素から子要素として削除 paragraph.parentNode.removeChild(paragraph); </script> </body> </html> </syntaxhighlight> ==== 属性の操作 ==== ===== 属性の取得と設定 ===== 要素の属性を取得するには<code>getAttribute</code>、設定するには<code>setAttribute</code>を使います。 :<syntaxhighlight lang=html> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>属性の操作</title> </head> <body> <a id="link" href="https://www.example.com">Example</a> <script> // 要素の取得 const link = document.querySelector("#link"); // 属性の取得 const href = link.getAttribute("href"); console.log(href); // "https://www.example.com" // 属性の設定 link.setAttribute("href", "https://www.changed.com"); console.log(link.getAttribute("href")); // "https://www.changed.com" </script> </body> </html> </syntaxhighlight> ===== クラスの追加と削除 ===== 要素のクラスを操作するには、<code>classList</code>プロパティを使います。クラスの追加には<code>add</code>、削除には<code>remove</code>、存在確認には<code>contains</code>、トグル(切り替え)には<code>toggle</code>を使います。 :<syntaxhighlight lang=html> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>クラスの操作</title> <style> .highlight { background-color: yellow; } </style> </head> <body> <p id="text">この段落はクラスが追加されます。</p> <script> // 要素の取得 const text = document.querySelector("#text"); // クラスの追加 text.classList.add("highlight"); // クラスの削除 text.classList.remove("highlight"); // クラスのトグル text.classList.toggle("highlight"); // クラスの存在確認 console.log(text.classList.contains("highlight")); // true </script> </body> </html> </syntaxhighlight> ==== イベントの操作 ==== ===== イベントリスナーの追加 ===== イベントリスナーを追加するには、<code>addEventListener</code>を使います。これにより、ユーザーの操作(クリック、キーボード入力など)に応じて特定の関数を実行できます。 :<syntaxhighlight lang=html> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>イベントリスナーの追加</title> </head> <body> <button id="myButton">クリックして下さい</button> <script> // 要素の取得 const button = document.querySelector("#myButton"); // イベントリスナーの追加 button.addEventListener("click", function() { alert("ボタンがクリックされました!"); }); </script> </body> </html> </syntaxhighlight> ===== イベントの削除 ===== 追加したイベントリスナーを削除するには、<code>removeEventListener</code>を使います。 :<syntaxhighlight lang=html> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>イベントリスナーの削除</title> </head> <body> <button id="myButton">クリックして下さい</button> <script> // 要素の取得 const button = document.querySelector("#myButton"); // イベントリスナーの定義 function handleClick() { alert("ボタンがクリックされました!"); } // イベントリスナーの追加 button.addEventListener("click", handleClick); // イベントリスナーの削除 button.removeEventListener("click", handleClick); </script> </body> </html> </syntaxhighlight> ===== イベントオブジェクト ===== イベントが発生したときに提供されるイベントオブジェクトには、イベントに関する情報(発生元の要素、発生した場所など)が含まれています。 :<syntaxhighlight lang=html> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>イベントオブジェクト</title> </head> <body> <button id="myButton">クリックして下さい</button> <script> // 要素の取得 const button = document.querySelector("#myButton"); // イベントリスナーの追加 button.addEventListener("click", function(event) { console.log("クリックされた要素:", event.target); console.log("クリックされた位置:", event.clientX, event.clientY); }); </script> </body> </html> </syntaxhighlight> 以上が、JavaScriptを使った基本的なDOM操作の方法です。これらのテクニックを駆使することで、動的でインタラクティブなウェブコンテンツを作成することができます。 === イベントハンドリングとリスナー === イベントハンドリングは、ユーザーの操作に応じて動作を実行するための重要な技術です。 :<syntaxhighlight lang=html> <script> document.querySelector("#myButton").addEventListener("click", function() { alert("ボタンがクリックされました!"); }); </script> <button id="myButton">クリックして下さい</button> </syntaxhighlight> == グラフィックと描画 == === SVGの基本 === SVG(Scalable Vector Graphics)は、ベクター形式の画像を表示するためのXMLベースの言語です。 :<syntaxhighlight lang=html> <svg width="100" height="100"> <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" /> </svg> </syntaxhighlight> === Canvas要素による描画 === Canvas要素を使用すると、JavaScriptを使って動的なグラフィックを描画できます。 :<syntaxhighlight lang=html> <canvas id="myCanvas" width="200" height="200"></canvas> <script> var canvas = document.querySelector("#myCanvas"); var ctx = canvas.getContext("2d"); ctx.fillStyle = "#FF0000"; ctx.fillRect(20, 20, 150, 100); </script> </syntaxhighlight> === グラフィックの操作とアニメーション === Canvasを使用してアニメーションを作成する例です。 :<syntaxhighlight lang=html> <canvas id="animationCanvas" width="200" height="200"></canvas> <script> var canvas = document.querySelector("#animationCanvas"); var ctx = canvas.getContext("2d"); var x = 0; var y = 0; function draw() { ctx.clearRect(0, 0, canvas.width, canvas.height); ctx.fillStyle = "#00FF00"; ctx.fillRect(x, y, 50, 50); x++; y++; requestAnimationFrame(draw); } draw(); </script> </syntaxhighlight> == パフォーマンスと最適化 == ウェブサイトのパフォーマンスと最適化は、ユーザー体験を向上させるための重要な要素です。以下では、ページの読み込み速度、リソース管理、レンダリングパフォーマンスの向上に関する具体的な方法を説明します。 === ページの読み込み速度の改善 === ページの読み込み速度は、ユーザーがサイトにアクセスした際の最初の印象を左右します。読み込み速度を改善するための主な方法を以下に示します。 ==== 画像の最適化 ==== 画像はウェブページの読み込み速度に大きな影響を与える要素の一つです。画像の最適化には、以下の方法があります。 * '''画像サイズの調整:''' 画像を表示するのに必要な最大の解像度に合わせてサイズを調整します。これにより、無駄なデータの転送を防ぎます。 * '''圧縮:''' 画像圧縮ツールを使って、品質を保ちながらファイルサイズを縮小します。JPEGやPNG画像を圧縮することで、読み込み速度を大幅に向上させることができます。 :<syntaxhighlight lang=html> <img src="optimized-image.jpg" alt="最適化された画像"> </syntaxhighlight> ==== キャッシュの活用 ==== キャッシュを活用することで、ユーザーが同じページを再度訪れた際の読み込み時間を短縮できます。 * '''サーバーキャッシュ:''' サーバー側でキャッシュを設定し、静的リソース(画像、CSS、JavaScriptなど)のキャッシュ期間を設定します。 * '''ブラウザキャッシュ:''' <code>Cache-Control</code>や<code>Expires</code>ヘッダーを使用して、ブラウザがリソースをキャッシュするように指示します。 :<syntaxhighlight lang=http> Cache-Control: max-age=31536000 </syntaxhighlight> === 最適なリソース管理 === リソース管理のベストプラクティスを実践することで、ウェブページのパフォーマンスを大幅に向上させることができます。 ==== CSSとJavaScriptのミニファイ ==== CSSとJavaScriptファイルをミニファイ(圧縮)することで、ファイルサイズを小さくし、読み込み速度を向上させます。 * '''ミニファイツール:''' 例えば、UglifyJSやCSSNanoなどのツールを使用して、余分な空白やコメントを削除し、コードを圧縮します。 :<syntaxhighlight lang=html> <link rel="stylesheet" href="styles.min.css"> <script src="scripts.min.js"></script> </syntaxhighlight> ==== 非同期ロード ==== JavaScriptファイルを非同期にロードすることで、ページの初期表示を高速化します。 * '''<code>async</code>属性:''' スクリプトの読み込みと実行を非同期に行います。 * '''<code>defer</code>属性:''' スクリプトの実行をHTML解析後まで遅延させます。 :<syntaxhighlight lang=html> <script src="script.js" async></script> </syntaxhighlight> === レンダリングパフォーマンスの向上 === レンダリングパフォーマンスの向上は、スムーズで高速なユーザーインターフェースを実現するために重要です。 ==== CSSアニメーションの活用 ==== アニメーションをJavaScriptではなくCSSで実装することで、性能が向上する場合があります。CSSアニメーションはブラウザによって最適化されているため、よりスムーズに実行されます。 :<syntaxhighlight lang=css> @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .element { animation: fadeIn 1s ease-in-out; } </syntaxhighlight> ==== レイアウトスラッシングの回避 ==== レイアウトスラッシングとは、頻繁なレイアウト変更によるパフォーマンス低下のことです。これを回避するために、以下の方法を用います。 * '''スタイル変更のバッチ処理:''' 可能な限り、スタイルの変更を一度にまとめて行います。 * '''オフスクリーン操作:''' レイアウト変更が必要な操作をオフスクリーンで行い、その後一度に反映させます。 :<syntaxhighlight lang=javascript> // 要素の取得 const element = document.querySelector("#myElement"); // スタイルのバッチ変更 element.style.width = "100px"; element.style.height = "100px"; element.style.backgroundColor = "red"; </syntaxhighlight> 以上のテクニックを駆使することで、ウェブページのパフォーマンスとユーザーエクスペリエンスを大幅に向上させることができます。 == アクセシビリティ == アクセシビリティは、すべてのユーザーがウェブコンテンツに容易にアクセスできるようにするための重要な考え方です。ここでは、アクセシビリティの基本概念から、ARIA属性の使用方法、そしてアクセシビリティのテストと評価について詳しく説明します。 === アクセシビリティの基本概念 === ウェブアクセシビリティとは、障害の有無にかかわらず、すべてのユーザーがウェブサイトやウェブアプリケーションを理解し、操作できるようにする原則です。以下は、アクセシビリティを向上させるための基本的な考え方です。 * '''セマンティックなHTML:''' 適切なHTML要素を使用し、コンテンツの意味を正しく伝えます(例: <code><[[/nav|nav]]></code>、<code><[[/main|main]]></code>、<code><[[/footer|footer]]></code>など)。 * '''適切な色の使用:''' 色のコントラストを適切に設定し、色覚異常のユーザーも含めてコンテンツを視認しやすくします。 * '''キーボード操作のサポート:''' マウスやタッチパッドが利用できないユーザー向けに、すべての操作がキーボードだけで完了できるようにします。 === ARIA属性の使用 === ARIA(Accessible Rich Internet Applications)属性は、HTML要素に追加して、動的でインタラクティブなコンテンツのアクセシビリティを向上させる役割を果たします。 ==== ARIA属性の例 ==== ARIA属性は、<code>role</code>、<code>aria-</code>プレフィックスを持つ様々な属性で構成されています。以下は、ボタンに<code>aria-label</code>属性を使用した例です。 :<syntaxhighlight lang=html> <button aria-label="閉じる">X</button> </syntaxhighlight> この例では、"閉じる"というラベルがボタンの代替テキストとしてスクリーンリーダーに提供されます。これにより、視覚的に「X」ボタンとして表示されるが、スクリーンリーダーのユーザーには「閉じる」という意味が伝わります。 以下は、一般的に使用されるARIA属性の一覧を、名称、機能、用例の順に表組みで示したものです。 :{| class=wikitable |+ ARIA属性一覧 ! 名称 || 機能 || 用例 |- | <code>aria-atomic</code> || スクリーンリーダーによる更新を一括して通知 || 一連の関連する変更がある場合に、更新を一括して通知するために使用 |- | <code>aria-busy</code> || コンテンツが読み込み中または処理中であることを示す ||ページが読み込み中であることを示し、ユーザーに待機状態を伝えるために使用 |- | <code>aria-controls</code> || 制御する要素のIDを指定 || プルダウンメニューのボタンがコントロールするメニューのIDを指定するために使用 |- | <code>aria-describedby</code> || 要素の詳細説明の要素IDを指定 || フォームのエラーメッセージを、該当する入力フィールドのIDを指定して関連付けるために使用 |- | <code>aria-disabled</code> || 要素の無効化状態を示す || 操作不可なボタンや入力フィールドを示すために使用 |- | <code>aria-dropeffect</code> || ドラッグアンドドロップの動作を指定 || ドロップ可能なエリアに対して、許可される操作(copy/move/link/exec)を指定するために使用 |- | <code>aria-flowto</code> || 焦点が移動する次の要素のIDを指定 || セクションの内容が順番に表示される場合に、次のフォーカス先の要素のIDを指定するために使用 |- | <code>aria-grabbed</code> || ドラッグ可能な要素が現在つかまれているかどうかを示す || ドラッグ可能なリストアイテムが現在つかまれているかどうかを示すために使用 |- | <code>aria-haspopup</code> || ポップアップウィンドウの有無を示す || マウスオーバーで表示されるメニューなどのポップアップウィンドウがある場合に使用 |- | <code>aria-hidden</code> || スクリーンリーダーに非表示を指示 || 一時的に見えない要素をスクリーンリーダーから隠す場合に使用 |- | <code>aria-invalid</code> || 入力値の無効性を示す || 入力フィールドに不正な値が入力された場合に、エラーメッセージとともに使用 |- | <code>aria-label</code> || オブジェクトのラベルを提供 || 画像やボタンなど、ラベルがない要素に対して代替テキストを提供するために使用 |- | <code>aria-labelledby</code> ||ラベルの要素IDを指定 || 複数の要素をまとめてラベル付けする場合や、テキストの部分ラベルを指定する場合に使用 |- | <code>aria-live</code> || 動的に変化するコンテンツの更新方法を指定 || ダイナミックなコンテンツが更新された際にスクリーンリーダーに通知する方法を指定 |- | <code>aria-owns</code> || 所有するポップアップウィンドウやダイアログのIDを指定 ||ボタンが所有するドロップダウンメニューのIDを指定するために使用 |- | <code>aria-relevant</code> || コンテンツの更新の種類を指定 || 動的なコンテンツの更新がどのようにスクリーンリーダーに通知されるかを指定するために使用 |} これらの属性を正しく使用することで、ウェブアプリケーションのアクセシビリティを向上させることができます。 === アクセシビリティのテストと評価 === ウェブサイトのアクセシビリティを確保するために、さまざまなツールと手法があります。 ==== スクリーンリーダーテスト ==== スクリーンリーダーを使用して、ウェブサイトのコンテンツが適切に読み上げられるかどうかを確認します。主要なスクリーンリーダーには、VoiceOver(macOS)、NVDA(Windows)、JAWS(Windows)などがあります。 ==== 自動化ツール ==== 自動化テストツールを使用することで、アクセシビリティの問題を自動的に検出し、修正する手助けをします。 * '''Lighthouse:''' Googleが提供する開発者向けツールで、アクセシビリティの自動テストを含みます。 * '''axe:''' Deque Systemsが提供する、ウェブアクセシビリティの自動化ツールです。 自動化ツールを使用することで、コード内の問題を効率的に特定し、修正することができます。 === 結論 === ウェブアクセシビリティは、すべてのユーザーがウェブコンテンツにアクセスできるようにするための不可欠な要素です。セマンティックなHTMLの使用、適切な色の設定、キーボード操作のサポート、そしてARIA属性の適切な使用は、アクセシビリティを確保する上で重要です。また、スクリーンリーダーテストや自動化ツールを活用して、アクセシビリティの問題を特定し、改善することが推奨されます。 == セキュリティ == === Webセキュリティの基本 === Webセキュリティは、現代のウェブアプリケーション開発において不可欠な要素です。ウェブセキュリティの基本概念を理解することは、ユーザーのデータ保護やシステムの安全性を確保する上で重要です。 ウェブセキュリティの基本は、次の要素によって構成されています。 # '''機密性(Confidentiality):''' データや情報が不正アクセスから保護されること。暗号化やアクセス制御などの手法が使われます。 # '''完全性(Integrity):''' データが意図しない変更から保護されること。データの改ざんを防ぐために、ハッシュ関数や署名などの技術が用いられます。 # '''可用性(Availability):''' システムやサービスが正常に動作し続けること。サービス遮断攻撃(DoS攻撃)などからの保護が含まれます。 これらの基本原則は、セキュリティの三要素として知られています。ウェブアプリケーションを設計する際には、これらの原則を考慮してセキュリティ対策を実装することが重要です。 === セキュリティ脅威とその対策 === ウェブアプリケーション開発者は、さまざまなセキュリティ脅威に対処する必要があります。以下は、主要なセキュリティ脅威とそれに対する一般的な対策です。 # '''XSS(クロスサイトスクリプティング)''' #: XSS攻撃は、攻撃者が不正なスクリプトをウェブページに挿入し、ユーザーのブラウザで実行させる攻撃です。これにより、クッキー情報の盗み出しやセッション乗っ取りなどが行われることがあります。 #:; 対策 #:: ユーザーからの入力データを適切にエスケープする。 #:: Content Security Policy(CSP)を使用して、許可されたソースからのみスクリプトを実行できるように制限する。 # '''CSRF(クロスサイトリクエストフォージェリ)''' #: CSRF攻撃では、認証済みユーザーが意図しないリクエストを行うことが可能になります。攻撃者は、ユーザーが認証済みであることを利用して、不正な操作を実行します。 #:; 対策 #:: リクエストにワンタイムトークン(CSRFトークン)を含めて、正規のリクエストかどうかを確認する。 #:: SameSite属性を設定したCookieを使用して、クロスサイトリクエストを防止する。 === HTMLにおけるセキュリティベストプラクティス === HTMLを安全に保つための最善の方法を理解することは、ウェブアプリケーションのセキュリティ向上に不可欠です。具体的なセキュリティベストプラクティスとして以下があります。 # '''安全なコンテンツ配信(CSP)''' #: CSPを使用することで、サーバーからの許可されたリソースしか読み込まれないように制限することができます。これにより、XSS攻撃やデータの不正な取得を防止します。 #:; 用例 #:<syntaxhighlight lang=html> <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline'"> </syntaxhighlight> #: 上記の例では、スクリプトの実行を同じドメイン内でのみ許可し、インラインスクリプトの使用を許可しています。 # '''セキュアなCookieの使用''' #: Cookieには、HTTPOnly属性とSecure属性を適用することが推奨されます。 #:; '''HTTPOnly''': JavaScriptからCookieにアクセスできなくします。 #:; '''Secure''': HTTPS経由でのみCookieを送信します。 #:; 用例 #:<syntaxhighlight lang=html> Set-Cookie: sessionId=abc123; Secure; HttpOnly; </syntaxhighlight> #: 上記の例では、`sessionId` CookieがセキュアでHTTPOnlyであることが指定されています。 これらのセキュリティ対策を組み合わせて使用することで、ウェブアプリケーションのセキュリティを強化し、ユーザーのデータやシステムを保護することが可能です。 == 最新のHTML仕様 == === HTML Living Standardの最新アップデート === HTML Living Standardは、Web Hypertext Application Technology Working Group (WHATWG)によって継続的に更新されている仕様です。最近の主な更新内容には以下のようなものがあります: # <code><[[/dialog|dialog]]></code> 要素の改善: #: モーダルダイアログの実装がより簡単になり、アクセシビリティも向上しました。 # <syntaxhighlight lang=html inline><input type="date"></syntaxhighlight> の強化: #: 日付入力フィールドがより使いやすくなり、ブラウザ間の一貫性が向上しました。 # <code>loading</code> 属性の値 <code>lazy</code> 標準化: #: 画像やiframeの遅延読み込みが簡単に実装できるようになりました。 # <code><[[/picture|picture]]></code> 要素の拡張: #: レスポンシブ画像の実装がより柔軟になりました。 # セキュリティ関連の更新: #: クロスオリジンリソース共有(CORS)やコンテンツセキュリティポリシー(CSP)に関する仕様が改善されました。 === 将来の仕様と提案 === HTMLの将来に向けて、いくつかの興味深い提案や仕様が検討されています: # <code><[[/search|search]]></code> 要素: #: 検索フォームやその結果を意味的に表現するための新しい要素です。 # <code><[[/model|model]]></code> 要素: #: 3Dモデルを直接HTMLに埋め込むための要素で、AR/VR体験の向上が期待されています。 # <code><[[/portal|portal]]></code> 要素: #: シームレスなページ遷移を可能にする新しい要素で、SPAのようなユーザー体験を提供します。 # <code><[[/toast|toast]]></code> 要素: #: 一時的な通知を表示するための標準化された要素です。 # Container Queries: #: 親要素のサイズに基づいてスタイルを変更できる新しいCSS機能で、よりきめ細かいレスポンシブデザインが可能になります。 === 標準化プロセスへの参加方法 === HTML標準化プロセスへの参加は、Webの未来を形作る重要な機会です。参加方法と意義について以下に説明します: # WHATWG GitHub リポジトリの活用: #* issueを作成して問題提起や提案を行う #* 既存のissueにコメントして議論に参加する #* プルリクエストを送信して直接仕様の改善に貢献する # メーリングリストへの参加: #: WHATWGのメーリングリストに登録し、議論に参加することができます。 # 仕様のレビュー: #: 公開されている仕様をレビューし、フィードバックを提供することも重要な貢献です。 # 実装とフィードバック: #: ブラウザベンダーや開発者として、新しい仕様を実装し、実際の使用経験に基づくフィードバックを提供することができます。 # イベントへの参加: #: WHATWGやW3Cが主催するイベントや会議に参加し、直接議論に加わることができます。 標準化プロセスに参加する意義: * Webの進化に直接貢献できる * 最新の技術動向を把握できる * グローバルな開発者コミュニティとの交流ができる * 自身のスキルやキャリアの向上につながる HTML標準化プロセスへの参加は、技術的な貢献だけでなく、Webのオープンな特性を維持し、より良いインターネットを作り上げるための重要な活動です。 == 附録 == === A. HTMLリファレンス === HTML Living Standardの要素を網羅的にリスト化し、それぞれの要素について「名称」、「機能」、「親要素」、「カテゴリ」、「使用例」を表形式でまとめました。以下の表をご覧ください。 :{| class="sortable wikitable" ! 名称 || 機能 || 親要素 || カテゴリ || 使用例 |- | <code><[[/a|a]]></code> || ハイパーリンクを作成 || フロー || フロー || <syntaxhighlight lang=html inline><a href="https://example.com">Example</a></syntaxhighlight> |- | <code><[[/abbr|abbr]]></code> || 略語の説明 || フロー || フロー || <syntaxhighlight lang=html inline><abbr title="Internationalization">i18n</abbr></syntaxhighlight> |- | <code><[[/address|address]]></code> ||連絡先情報を定義 || フロー || フロー || <syntaxhighlight lang=html inline><address>123 Main St, Anytown, USA</address></syntaxhighlight> |- | <code><[[/area|area]]></code> || イメージマップ内のホットスポット || <code><[[/map|map]]></code> || フロー || <syntaxhighlight lang=html inline><area shape="rect" coords="34,44,270,350" href="https://example.com"></syntaxhighlight> |- | <code><[[/article|article]]></code> ||自己完結型の || フロー || セクショニング || <syntaxhighlight lang=html inline><article><h2>Article Title</h2><p>Content here...</p></article></syntaxhighlight> |- | <code><[[/aside|aside]]></code> || 補足的な内容 || フロー || セクショニング || <syntaxhighlight lang=html inline><aside><p>Related information...</p></aside></syntaxhighlight> |- | <code><[[/audio|audio]]></code> || オーディオコンテンツを埋め込む || フロー || 埋め込み || <syntaxhighlight lang=html inline><audio controls><source src="audio.mp3" type="audio/mpeg"></audio></syntaxhighlight> |- | <code><[[/b|b]]></code> || 重要ではないが強調する || フロー || フロー || <syntaxhighlight lang=html inline><b>Bold text</b></syntaxhighlight> |- | <code><[[/base|base]]></code> || ベースURLを設定 || <code><[[/head|head]]></code> || メタデータ || <syntaxhighlight lang=html inline><base href="https://example.com/"></syntaxhighlight> |- | <code><[[/bdi|bdi]]></code> || テキストの双方向性を無視 || フロー || フロー || <syntaxhighlight lang=html inline><bdi>مثال</bdi></syntaxhighlight> |- | <code><[[/bdo|bdo]]></code> || テキストの方向性を上書き || フロー || フロー || <syntaxhighlight lang=html inline><bdo dir="rtl">مثال</bdo></syntaxhighlight> |- | <code><[[/blockquote|blockquote]]></code> || 引用ブロック || フロー || フロー || <syntaxhighlight lang=html inline><blockquote cite="https://example.com">Quote here...</blockquote></syntaxhighlight> |- | <code><[[/body|body]]></code> || ドキュメントの内容を含む || <code><[[/html|html]]></code> || フロー || <syntaxhighlight lang=html inline><body><p>Content here...</p></body></syntaxhighlight> |- | <code><[[/br|br]]></code> || 改行 || フロー || フロー || <syntaxhighlight lang=html inline>Line 1<br>Line 2</syntaxhighlight> |- | <code><[[/button|button]]></code> || インタラクティブなボタンを作成 || フロー || フロー || <syntaxhighlight lang=html inline><button type="button">Click me</button></syntaxhighlight> |- | <code><[[/canvas|canvas]]></code> || グラフィックスを描画する || フロー || 埋め込み || <syntaxhighlight lang=html inline><canvas id="myCanvas" width="200" height="100"></canvas></syntaxhighlight> |- | <code><[[/caption|caption]]></code> ||テーブルキャプション || <code><[[/table|table]]></code> || フロー || <syntaxhighlight lang=html inline><caption>Table Caption</caption></syntaxhighlight> |- | <code><[[/cite|cite]]></code> || 作品のタイトルを引用 || フロー || フロー || <syntaxhighlight lang=html inline><cite>Book Title</cite></syntaxhighlight> |- | <code><[[/code|code]]></code> || コードスニペットを表現 || フロー || フロー || <syntaxhighlight lang=html inline><code>console.log('Hello, world!');</code></syntaxhighlight> |- | <code><[[/col|col]]></code> || テーブル列のプロパティを定義 || <code><[[/colgroup|colgroup]]></code> || フロー || <syntaxhighlight lang=html inline><col span="2" style="background-color: yellow"></syntaxhighlight> |- | <code><[[/colgroup|colgroup]]></code> || テーブル列のグループを定義 || <code><[[/table|table]]></code> || フロー || <syntaxhighlight lang=html inline><colgroup><col span="2"><col style="background-color: yellow"></colgroup></syntaxhighlight> |- | <code><[[/data|data]]></code> || マシン可読なデータを結びつける || フロー || フロー || <syntaxhighlight lang=html inline><data value="12345">Product 12345</data></syntaxhighlight> |- | <code><[[/datalist|datalist]]></code> ||入力候補のリストを定義 || フロー || フロー || <syntaxhighlight lang=html inline><datalist id="browsers"><option value="Chrome"><option value="Firefox"></datalist></syntaxhighlight> |- | <code><[[/dd|dd]]></code> || 定義リストの定義 || <code><[[/dl|dl]]></code> || フロー || <syntaxhighlight lang=html inline><dd>A description here...</dd></syntaxhighlight> |- | <code><[[/del|del]]></code> || 削除されたテキストを示す || フロー || フロー || <syntaxhighlight lang=html inline><del>Deleted text</del></syntaxhighlight> |- | <code><[[/details|details]]></code> ||折りたたみ可能な内容 || フロー || インタラクティブ || <syntaxhighlight lang=html inline><details><summary>More info</summary><p>Details here...</p></details></syntaxhighlight> |- | <code><[[/dfn|dfn]]></code> || 用語の定義を示す || フロー || フロー || <syntaxhighlight lang=html inline><dfn>Term</dfn></syntaxhighlight> |- | <code><[[/dialog|dialog]]></code> || ダイアログまたはモーダル || フロー || インタラクティブ || <syntaxhighlight lang=html inline><dialog open><p>Dialog content...</p></dialog></syntaxhighlight> |- | <code><[[/div|div]]></code> || 汎用コンテナ || フロー || フロー || <syntaxhighlight lang=html inline><div><p>Content here...</p></div></syntaxhighlight> |- | <code><[[/dl|dl]]></code> || 定義リスト || フロー || フロー || <syntaxhighlight lang=html inline><dl><dt>Term</dt><dd>Definition</dd></dl></syntaxhighlight> |- | <code><[[/dt|dt]]></code> || 定義リストの項目 || <code><[[/dl|dl]]></code> || フロー || <syntaxhighlight lang=html inline><dt>Term</dt></syntaxhighlight> |- | <code><[[/em|em]]></code> || 強調テキスト || フロー || フロー || <syntaxhighlight lang=html inline><em>Emphasized text</em></syntaxhighlight> |- | <code><[[/embed|embed]]></code> || 外部リソースを埋め込む || フロー || 埋め込み || <syntaxhighlight lang=html inline><embed src="file.swf" width="200" height="100"></syntaxhighlight> |- | <code><[[/fieldset|fieldset]]></code> ||フォーム内のグループ化 || フロー || フロー || <syntaxhighlight lang=html inline><fieldset><legend>Group</legend><input type="text"></fieldset></syntaxhighlight> |- | <code><[[/figcaption|figcaption]]></code> || 図のキャプション || <code><[[/figure|figure]]></code> || フロー || <syntaxhighlight lang=html inline><figcaption>Figure Caption</figcaption></syntaxhighlight> |- | <code><[[/figure|figure]]></code> || 図をグループ化する || フロー || フロー || <syntaxhighlight lang=html inline><figure><img src="image.jpg"><figcaption>Caption</figcaption></figure></syntaxhighlight> |- | <code><[[/footer|footer]]></code> || セクションまたはページのフッター || フロー || フロー || <syntaxhighlight lang=html inline><footer><p>Footer content...</p></footer></syntaxhighlight> |- | <code><[[/form|form]]></code> || ユーザー入力を収集する || フロー || インタラクティブ || <syntaxhighlight lang=html inline><form action="/submit"><input type="text"><button>Submit</button></form></syntaxhighlight> |- | <code><[[/h1|h1]]></code> - <code><[[/h6|h6]]></code> || 見出し || フロー || フロー || <syntaxhighlight lang=html inline><h1>Heading 1</h1></syntaxhighlight> |- | <code><[[/head|head]]></code> || メタデータを含む || <code><[[/html|html]]></code> || メタデータ || <syntaxhighlight lang=html inline><head><title>Page Title</title></head></syntaxhighlight> |- | <code><[[/header|header]]></code> || セクションまたはページのヘッダー || フロー || フロー || <syntaxhighlight lang=html inline><header><h1>Header content...</h1></header></syntaxhighlight> |- | <code><[[/hgroup|hgroup]]></code> || 見出しのグループを定義。主見出しとサブ見出しなどをグループ化する際に使用 || フロー || フロー || <syntaxhighlight lang=html inline><hgroup><h1>Main Title</h1><h2>Subtitle</h2></hgroup></syntaxhighlight> |- | <code><[[/hr|hr]]></code> || テーマの変更を表す水平線 || フロー || フロー || <code><[[/hr|hr]]></code> |- | <code><[[/html|html]]></code> || ドキュメントのルート要素 || none || メタデータ || <syntaxhighlight lang=html inline><html><head></head><body></body></html></syntaxhighlight> |- | <code><[[/i|i]]></code> || 重要ではないが特別なテキスト || フロー || フロー || <syntaxhighlight lang=html inline><i>Italic text</i></syntaxhighlight> |- | <code><[[/iframe|iframe]]></code> || 別のHTMLページを埋め込む || フロー || 埋め込み || <syntaxhighlight lang=html inline><iframe src="https://example.com" width="200" height="100"></iframe></syntaxhighlight> |- | <code><[[/img|img]]></code> || 画像を埋め込む || フロー || 埋め込み || <syntaxhighlight lang=html inline><img src="image.jpg" alt="Description"></syntaxhighlight> |- | <code><[[/input|input]]></code> || ユーザー入力を受け取る || フロー || インタラクティブ || <syntaxhighlight lang=html inline><input type="text" name="name"></syntaxhighlight> |- | <code><[[/ins|ins]]></code> || 挿入されたテキストを示す || フロー || フロー || <syntaxhighlight lang=html inline><ins>Inserted text</ins></syntaxhighlight> |- | <code><[[/kbd|kbd]]></code> || キーボード入力を表す || フロー || フロー || <syntaxhighlight lang=html inline><kbd>Ctrl+C</kbd></syntaxhighlight> |- | <code><[[/label|label]]></code> || フォーム要素のラベル || フロー || フロー || <syntaxhighlight lang=html inline><label for="name">Name</label></syntaxhighlight> |- | <code><[[/legend|legend]]></code> || フィールドセットのタイトル || <code><[[/fieldset|fieldset]]></code> || フロー || <syntaxhighlight lang=html inline><legend>Group Title</legend></syntaxhighlight> |- | <code><[[/li|li]]></code> || リストの項目 || <code><[[/ul|ul]]></code>, <code><[[/ol|ol]]></code>, <code><[[/menu|menu]]></code> || フロー || <syntaxhighlight lang=html inline><li>List item</li></syntaxhighlight> |- | <code><[[/link|link]]></code> || 外部リソースのリンク || <code><[[/head|head]]></code> || メタデータ || <syntaxhighlight lang=html inline><link rel="stylesheet" href="styles.css"></syntaxhighlight> |- | <code><[[/main|main]]></code> || 文書の主要内容 || フロー || フロー || <syntaxhighlight lang=html inline><main><p>Main content...</p></main></syntaxhighlight> |- | <code><[[/map|map]]></code> || イメージマップを定義 || フロー || フロー || <syntaxhighlight lang=html inline><map name="image-map"><area shape="rect" coords="34,44,270,350" href="https://example.com"></map></syntaxhighlight> |- | <code><[[/mark|mark]]></code> || ハイライトされたテキスト || フロー || フロー || <syntaxhighlight lang=html inline><mark>Highlighted text</mark></syntaxhighlight> |- | <code><[[/menu|menu]]></code> || インタラクティブな操作のためのコマンドリストを表現 || フロー || フロー || <syntaxhighlight lang=html inline><menu><li><button onclick="copy()">Copy</button></li><li><button onclick="paste()">Paste</button></li></menu></syntaxhighlight> |- | <code><[[/meta|meta]]></code> || メタデータを定義 || <code><[[/head|head]]></code> || メタデータ || <syntaxhighlight lang=html inline><meta charset="UTF-8"></syntaxhighlight> |- | <code><[[/meter|meter]]></code> || 測定値の範囲を表す || フロー || フロー || <syntaxhighlight lang=html inline><meter value="0.6">60%</meter></syntaxhighlight> |- | <code><[[/nav|nav]]></code> || ナビゲーションリンクのセクション || フロー || フロー || <syntaxhighlight lang=html inline><nav><ul><li><a href="/">Home</a></li></ul></nav></syntaxhighlight> |- | <code><[[/noscript|noscript]]></code> || JavaScriptが無効な場合の代替内容 || フロー || フロー || <syntaxhighlight lang=html inline><noscript><p>JavaScript is disabled.</p></noscript></syntaxhighlight> |- | <code><[[/object|object]]></code> || 外部リソースを埋め込む || フロー || 埋め込み || <syntaxhighlight lang=html inline><object data="file.pdf" type="application/pdf" width="200" height="100"></object></syntaxhighlight> |- | <code><[[/ol|ol]]></code> || 順序付きリスト || フロー || フロー || <syntaxhighlight lang=html inline><ol><li>First item</li><li>Second item</li></ol></syntaxhighlight> |- | <code><[[/optgroup|optgroup]]></code> || ドロップダウンリストのグループ || <code><[[/select|select]]></code> || フロー || <syntaxhighlight lang=html inline><optgroup label="Group 1"><option>Option 1</option></optgroup></syntaxhighlight> |- | <code><[[/option|option]]></code> || ドロップダウンリストの項目 || <code><[[/select|select]]></code>, <code><[[/datalist|datalist]]></code> || フロー || <syntaxhighlight lang=html inline><option value="value1">Option 1</option></syntaxhighlight> |- | <code><[[/output|output]]></code> || 計算結果を表示 || フロー || フロー || <syntaxhighlight lang=html inline><output name="result">42</output></syntaxhighlight> |- | <code><[[/p|p]]></code> || 段落 || フロー || フロー || <syntaxhighlight lang=html inline><p>This is a paragraph.</p></syntaxhighlight> |- | <code><[[/param|param]]></code> || <code><[[/object|object]]></code>のパラメータ || <code><[[/object|object]]></code> || フロー || <syntaxhighlight lang=html inline><param name="autoplay" value="true"></syntaxhighlight> |- | <code><[[/picture|picture]]></code> ||レスポンシブ画像のコンテナ || フロー || 埋め込み || <syntaxhighlight lang=html inline><picture><source srcset="small.jpg" media="(max-width: 600px)"><img src="large.jpg" alt="Image"></picture></syntaxhighlight><!-- |- | <code><[[/portal|portal]]></code> || 別のHTMLページをプレビューとして埋め込むための実験的な要素 || フロー || 埋め込み || <syntaxhighlight lang=html inline><portal src="https://example.com/preview"></portal></syntaxhighlight>--> |- | <code><[[/pre|pre]]></code> || 整形済みテキスト || フロー || フロー || <syntaxhighlight lang=html inline><pre>Preformatted text</pre></syntaxhighlight> |- | <code><[[/progress|progress]]></code> || 進行状況を示す || フロー || フロー || <syntaxhighlight lang=html inline><progress value="70" max="100">70%</progress></syntaxhighlight> |- | <code><[[/q|q]]></code> || インライン引用 || フロー || フロー || <syntaxhighlight lang=html inline><q cite="https://example.com">Quote</q></syntaxhighlight> |- | <code><[[/rp|rp]]></code> || ルビ注釈のかっこ || <code><[[/ruby|ruby]]></code> || フロー || <syntaxhighlight lang=html inline><rp>(</rp>漢字<rp>)</rp></syntaxhighlight> |- | <code><[[/rt|rt]]></code> || ルビ注釈のテキスト || <code><[[/ruby|ruby]]></code> || フロー || <syntaxhighlight lang=html inline><rt>かんじ</rt></syntaxhighlight> |- | <code><[[/ruby|ruby]]></code> || ルビ注釈を含む || フロー || フロー || <syntaxhighlight lang=html inline><ruby>漢字<rt>かんじ</rt></ruby></syntaxhighlight> |- | <code><[[/s|s]]></code> || 取り消し線を表示 || フロー || フロー || <syntaxhighlight lang=html inline><s>Strikethrough text</s></syntaxhighlight> |- | <code><[[/samp|samp]]></code> || サンプル出力を表す || フロー || フロー || <syntaxhighlight lang=html inline><samp>Sample output</samp></syntaxhighlight> |- | <code><[[/script|script]]></code> || クライアントサイドのスクリプト || フロー || スクリプト || <syntaxhighlight lang=html inline><script src="script.js"></script></syntaxhighlight> |- | <code><[[/search|search]]></code> || 検索フォームを定義 || フロー || インタラクティブ || <syntaxhighlight lang=html inline><search placeholder="Search..."></search></syntaxhighlight> |- | <code><[[/section|section]]></code> ||セクションを定義 || フロー || セクショニング || <syntaxhighlight lang=html inline><section><h2>Section Title</h2><p>Section content...</p></section></syntaxhighlight> |- | <code><[[/select|select]]></code> || ドロップダウンリストを作成 || フロー || インタラクティブ || <syntaxhighlight lang=html inline><select><option>Option 1</option></select></syntaxhighlight> |- | <code><[[/slot|slot]]></code> || Web Componentsにおけるカスタム要素のプレースホルダーとして使用 || フロー || フロー || <syntaxhighlight lang=html inline><slot name="my-text">Default text</slot></syntaxhighlight> |- | <code><[[/small|small]]></code> || 小さいテキスト || フロー || フロー || <syntaxhighlight lang=html inline><small>Small text</small></syntaxhighlight> |- | <code><[[/source|source]]></code> || 複数のメディアリソースを指定 || <code><[[/audio|audio]]></code>, <code><[[/video|video]]></code>, <code><[[/picture|picture]]></code> || フロー || <syntaxhighlight lang=html inline><source src="audio.mp3" type="audio/mpeg"></syntaxhighlight> |- | <code><[[/span|span]]></code> || インラインコンテナ || フロー || フロー || <syntaxhighlight lang=html inline><span>Inline content</span></syntaxhighlight> |- | <code><[[/strong|strong]]></code> || 重要なテキストを強調 || フロー || フロー || <syntaxhighlight lang=html inline><strong>Strong text</strong></syntaxhighlight> |- | <code><[[/style|style]]></code> || ドキュメント内のスタイルシート || フロー || メタデータ || <syntaxhighlight lang=html inline><style>body { font-family: Arial; }</style></syntaxhighlight> |- | <code><[[/sub|sub]]></code> || 下付き文字 || フロー || フロー || <syntaxhighlight lang=html inline>H<sub>2</sub>O</syntaxhighlight> |- | <code><[[/summary|summary]]></code> ||<code><[[/details|details]]></code>要素の要約 || <code><[[/details|details]]></code> || フロー || <syntaxhighlight lang=html inline><summary>Summary here...</summary></syntaxhighlight> |- | <code><[[/sup|sup]]></code> || 上付き文字 || フロー || フロー || <syntaxhighlight lang=html inline>E=mc<sup>2</sup></syntaxhighlight> |- | <code><[[/table|table]]></code> || テーブルを定義 || セクショニング || フロー || <syntaxhighlight lang=html inline><table><tr><th>Header</th></tr><tr><td>Data</td></tr></table></syntaxhighlight> |- | <code><[[/tbody|tbody]]></code> || テーブルの本体をグループ化 || <code><[[/table|table]]></code> || フロー || <syntaxhighlight lang=html inline><tbody><tr><td>Data</td></tr></tbody></syntaxhighlight> |- | <code><[[/td|td]]></code> || テーブルデータセルを定義 || <code><[[/tr|tr]]></code> || フロー || <syntaxhighlight lang=html inline><td>Data</td></syntaxhighlight> |- | <code><[[/template|template]]></code> || 再利用可能なテンプレート内容 || フロー || フロー || <syntaxhighlight lang=html inline><template><p>Template content...</p></template></syntaxhighlight> |- | <code><[[/textarea|textarea]]></code> || マルチラインテキスト入力 || フロー || インタラクティブ || <syntaxhighlight lang=html inline><textarea rows="4" cols="50"></textarea></syntaxhighlight> |- | <code><[[/tfoot|tfoot]]></code> || テーブルのフッターをグループ化 || <code><[[/table|table]]></code> || フロー || <syntaxhighlight lang=html inline><tfoot><tr><td>Footer data</td></tr></tfoot></syntaxhighlight> |- | <code><[[/th|th]]></code> || テーブルヘッダセルを定義 || <code><[[/tr|tr]]></code> || フロー || <syntaxhighlight lang=html inline><th>Header</th></syntaxhighlight> |- | <code><[[/thead|thead]]></code> || テーブルのヘッダーをグループ化 || <code><[[/table|table]]></code> || フロー || <syntaxhighlight lang=html inline><thead><tr><th>Header</th></tr></thead></syntaxhighlight> |- | <code><[[/time|time]]></code> || 日付または時間を表す || フロー || フロー || <syntaxhighlight lang=html inline><time datetime="2022-01-01">January 1, 2022</time></syntaxhighlight> |- | <code><[[/title|title]]></code> || ドキュメントのタイトルを設定 || <code><[[/head|head]]></code> || メタデータ || <syntaxhighlight lang=html inline><title>Document Title</title></syntaxhighlight> |- | <code><[[/tr|tr]]></code> || テーブル行を定義 || <code><[[/table|table]]></code>, <code><[[/tbody|tbody]]></code>, <code><[[/thead|thead]]></code>, <code><[[/tfoot|tfoot]]></code> || フロー || <syntaxhighlight lang=html inline><tr><td>Data</td></tr></syntaxhighlight> |- | <code><[[/track|track]]></code> || <code><[[/video|video]]></code>や<code><[[/audio|audio]]></code> のテキストトラック || <code><[[/video|video]]></code>, <code><[[/audio|audio]]></code> || フロー || <syntaxhighlight lang=html inline><track kind="subtitles" src="subs_en.vtt" srclang="en" label="English"></syntaxhighlight> |- | <code><[[/u|u]]></code> || 下線付きテキストを表す || フロー || フロー || <syntaxhighlight lang=html inline><u>Underlined text</u></syntaxhighlight> |- | <code><[[/ul|ul]]></code> || 順序なしリストを定義 || フロー || フロー || <syntaxhighlight lang=html inline><ul><li>Item 1</li><li>Item 2</li></ul></syntaxhighlight> |- | <code><[[/var|var]]></code> || 変数を表す || フロー || フロー || <syntaxhighlight lang=html inline><var>x</var></syntaxhighlight> |- | <code><[[/video|video]]></code> || ビデオコンテンツを埋め込む || フロー || 埋め込み || <syntaxhighlight lang=html inline><video controls><source src="video.mp4" type="video/mp4"></video></syntaxhighlight> |- | <code><[[/wbr|wbr]]></code> || 単語の改行可能位置を定義 || フロー || フロー || <syntaxhighlight lang=html inline>Super<wbr>califragilisticexpialidocious</syntaxhighlight> |} これらはHTML Living Standardに含まれる主要な要素です。各要素の詳細な仕様や使い方については、最新のHTML Living Standardのドキュメントを参照してください。 ==== A.2 コンテンツカテゴリー ==== HTML Living Standardにおけるコンテンツカテゴリーは、HTML要素を9つのグループに分類したものです。各カテゴリーは、要素の役割や特性を共有しており、コンテンツモデルを定義する上で重要な役割を果たします。 '''コンテンツカテゴリーは以下の9つです''' # '''[[/メタデータ・コンテンツ|メタデータ・コンテンツ]]''' #* ドキュメント全体に関する情報などを記述する要素 #* <code><[[/html|html]]></code>, <code><[[/head|head]]></code>, <code><[[/title|title]]></code>, <code><[[/meta|meta]]></code> など # '''[[/フロー・コンテンツ|フロー・コンテンツ]]''' #* 文脈の流れに沿って配置される要素 #* <code><[[/p|p]]></code>, <code><[[/div|div]]></code>, <code><[[/span|span]]></code>, <code><[[/img|img]]></code>, <code><[[/a|a]]></code> など # '''[[/セクショニング・コンテンツ|セクショニング・コンテンツ]]''' #* 文書を論理的なセクションに分割する要素 #* <code><[[/header|header]]></code>, <code><[[/nav|nav]]></code>, <code><[[/article|article]]></code>, <code><[[/aside|aside]]></code>, <code><[[/footer|footer]]></code> など # '''[[/ヘディング・コンテンツ|ヘディング・コンテンツ]]''' #* 文書の見出しを定義する要素 #* <code><[[/h1|h1]]></code>、<code><[[/h2|h2]]></code>、<code><[[/h3|h3]]></code>、<code><[[/h4|h4]]></code>、<code><[[/h5|h5]]></code>、<code><[[/h6|h6]]></code> など # '''[[/フレージング・コンテンツ|フレージング・コンテンツ]]''' #* 文章の構成要素となる要素 #* <code><[[/b|b]]></code>, <code><[[/em|em]]></code>, <code><[[/strong|strong]]></code>, <code><[[/i|i]]></code>, <code><[[/small|small]]></code>, <code><[[/del|del]]></code>, <code><[[/ins|ins]]></code> など # '''[[/インタラクティブ・コンテンツ|インタラクティブ・コンテンツ]]''' #* ユーザーとのインタラクションを可能にする要素 #* <code><[[/a|a]]></code>, <code><[[/button|button]]></code>, <code><[[/input|input]]></code>, <code><[[/select|select]]></code>, <code><[[/textarea|textarea]]></code> など # '''[[/エンベッディッド・コンテンツ|エンベッディッド・コンテンツ]]''' #* 外部リソースを埋め込む要素 #* <code><[[/img|img]]></code>, <code><[[/video|video]]></code>, <code><[[/audio|audio]]></code>, <code><[[/iframe|iframe]]></code> など # '''[[/非フロー・コンテンツ|非フロー・コンテンツ]]''' #* フローコンテンツの流れに影響を与えない要素 #* <code><[[/script|script]]></code>, <code><[[/style|style]]></code> など # '''[[/トランスペアレント・コンテンツ|トランスペアレント・コンテンツ]]''' #* 親要素のコンテンツモデルを継承する要素 #* <code><[[/br|br]]></code>, <code><[[/hr|hr]]></code> など 各コンテンツカテゴリーの詳細については、HTML Living Standardの公式ドキュメントを参照してください。 '''コンテンツカテゴリーの役割''' コンテンツカテゴリーは、以下の役割を果たします。 * '''要素の許可と禁止を制御する''' ** 各コンテンツカテゴリーには、許可されている要素と禁止されている要素が定義されています。 ** 例えば、<code><[[/table|table]]></code> 要素はセクショニングコンテンツにのみ許可されており、フローコンテンツには許可されていません。 * '''要素のネスト構造を制限する''' ** 親要素に許可されているコンテンツカテゴリーの子要素のみをネストできます。 ** 例えば、フローコンテンツ要素はセクショニングコンテンツ要素の子要素としてのみネストできます。 * '''要素のデフォルトのスタイルを定義する''' ** 各コンテンツカテゴリーには、デフォルトのスタイルが定義されています。 ** 例えば、ヘディングコンテンツ要素はデフォルトで太字で表示されます。 コンテンツカテゴリーを理解することで、HTMLドキュメントの構造と意味をより深く理解することができます。また、適切なコンテンツカテゴリーの要素を使用することで、より構造化された、メンテナンスしやすいHTMLドキュメントを作成することができます。 なお、HTML Living Standardでは、コンテンツカテゴリーに加えて、'''コンテンツモデル'''という概念も導入されています。コンテンツモデルは、コンテンツカテゴリーに加えて、要素の許可と禁止の関係、ネスト構造、デフォルトのスタイルなどをより詳細に定義したものです。 ==== A.3 コンテンツモデル ==== HTML Living Standardのコンテンツモデルとは、HTML要素がどのような種類のコンテンツを含むことができるかを定義する概念です。これにより、各要素が適切に使用されることを保証し、HTML文書の構造と意味論的な一貫性を保つことができます。 HTMLのコンテンツモデルには以下の主要なカテゴリがあります: # '''メタデータコンテンツ(Metadata content)''' #: 文書のメタデータを定義する要素。例えば、<code><[[/title|title]]></code>, <code><[[/base|base]]></code>, <code><[[/link|link]]></code>, <code><[[/meta|meta]]></code>, <code><[[/style|style]]></code>, <code><[[/script|script]]></code>, <code><[[/noscript|noscript]]></code> など。 # '''フローコンテンツ(Flow content)''' #: 文書の大部分を構成する要素。例えば、見出し(<code><[[/h1|h1]]></code>~<code><[[/h6|h6]]></code>)、段落(<code><[[/p|p]]></code>)、リスト(<code><[[/ul|ul]]></code>, <code><[[/ol|ol]]></code>)、<code><[[/div|div]]></code>, <code><[[/main|main]]></code> など。 # '''セクショニングコンテンツ(Sectioning content)''' #: 文書に新しいセクションを作成する要素。例えば、<code><[[/article|article]]></code>, <code><[[/aside|aside]]></code>, <code><[[/nav|nav]]></code>, <code><[[/section|section]]></code> など。 # '''ヘディングコンテンツ(Heading content)''' #: セクションの見出しを定義する要素。例えば、<code><[[/h1|h1]]></code>~<code><[[/h6|h6]]></code> など。 # '''フレージングコンテンツ(Phrasing content)''' #: テキストの内容を構成する要素。例えば、<code><[[/span|span]]></code>, <code><[[/a|a]]></code>, <code><[[/strong|strong]]></code>, <code><[[/em|em]]></code>, <code><[[/img|img]]></code> など。 # '''埋め込みコンテンツ(Embedded content)''' #: 他のリソースを埋め込むための要素。例えば、<code><[[/img|img]]></code>, <code><[[/video|video]]></code>, <code><[[/audio|audio]]></code>, <code><[[/iframe|iframe]]></code>, <code><[[/object|object]]></code>, <code><[[/embed|embed]]></code> など。 # '''インタラクティブコンテンツ(Interactive content)''' #: ユーザーが操作可能な要素。例えば、<code><[[/a|a]]></code>, <code><[[/button|button]]></code>, <code><[[/input|input]]></code>, <code><[[/textarea|textarea]]></code>, <code><[[/select|select]]></code>, <code><[[/details|details]]></code> など。 # '''透明コンテンツモデル(Transparent content model)''' #: 親要素のコンテンツモデルに従う要素。例えば、<code><[[/a|a]]></code>, <code><[[/del|del]]></code>, <code><[[/ins|ins]]></code> など。 ===== 使用例 ===== ; フローコンテンツ : <code><[[/div|div]]></code>要素はフローコンテンツを含むことができ、フローコンテンツの中に配置することができます。 :<syntaxhighlight lang=html> <div> <p>This is a paragraph inside a div.</p> <ul> <li>List item 1</li> <li>List item 2</li> </ul> </div> </syntaxhighlight> ; セクショニングコンテンツ : <code><[[/section|section]]></code>要素は他のセクショニングコンテンツを含むことができます。 :<syntaxhighlight lang=html> <section> <h1>Section Title</h1> <article> <h2>Article Title</h2> <p>Article content...</p> </article> </section> </syntaxhighlight> ; 埋め込みコンテンツ : <code><[[/video|video]]></code>要素は埋め込みコンテンツを含むことができます。 :<syntaxhighlight lang=html> <video controls> <source src="video.mp4" type="video/mp4"> Your browser does not support the video tag. </video> </syntaxhighlight> ==== A.4.2 既存要素の説明の補足 ==== '''<code><[[/details|details]]></code>要素''' * カテゴリ:フロー * open属性:要素を開いた状態で表示するかどうかを制御 * 使用例の補足: :<syntaxhighlight lang=html> <details> <summary>詳細を表示</summary> <p>詳細なコンテンツをここに記述します。</p> </details> </syntaxhighlight> '''<code><[[/time|time]]></code>要素''' * datetime属性の形式: ** 日付:<code>YYYY-MM-DD</code> ** 時刻:<code>HH:mm:SS</code> ** 日時:<code>YYYY-MM-DDTHH:mm:SS</code> * マイクロフォーマットとの互換性あり * 使用例の補足: :<syntaxhighlight lang=html> <time datetime="2024-01-07T15:00:00"> 2024年1月7日 15:00 </time> </syntaxhighlight> '''<code><[[/data|data]]></code>要素''' * value属性に機械可読な値、要素の内容に人間可読な値を指定 * 使用例の補足: :<syntaxhighlight lang=html> <data value="398">398円</data> <data value="PRODUCTID001">商品番号:001</data> </syntaxhighlight> ==== A.4.3 追加のコンテンツカテゴリー ==== # '''パルパブルコンテンツ(Palpable content)''' #* ユーザーが直接知覚できるコンテンツを含む要素 #* 特徴: #** 空ではない要素であること #** 視覚的または聴覚的に認識可能な内容を持つこと #* 例: #** 空でない<code><[[/p|p]]></code>要素 #** テキストを含む<code><[[/div|div]]></code>要素 #** <code><[[/img|img]]></code>要素 #** <code><[[/canvas|canvas]]></code>要素 # '''スクリプトサポーティングコンテンツ(Script-supporting content)''' #* スクリプトの実行やテンプレート機能をサポートする要素 #* 特徴: #** 直接的なレンダリングを目的としない #** JavaScriptやテンプレートエンジンと連携 #* 例: #** <code><[[/script|script]]></code>要素 #** <code><[[/template|template]]></code>要素 #** <code><[[/slot|slot]]></code>要素 #* 使用場面: #** カスタム要素の定義 #** テンプレートベースのレンダリング #** 動的コンテンツの生成 HTML Living Standardのコンテンツモデルは、要素の正しい使用方法をガイドし、構造化された意味論的に正しいHTML文書を作成するための重要な基礎です。 === B. よくある質問(FAQ) === # '''HTMLとは何ですか?''' #: HTML(HyperText Markup Language)は、ウェブページを作成するための標準的なマークアップ言語です。文書の構造を定義し、テキスト、画像、リンク、メディアなどの要素を指定するために使用されます。 # '''HTMLの最新バージョンは何ですか?''' #: HTMLの最新バージョンは「HTML Living Standard」です。これは、WHATWG(Web Hypertext Application Technology Working Group)によって策定されており、継続的に更新されています。HTML5のすべてのバージョンはW3Cによって廃止・失効が宣言され、現在ではHTMLに関する唯一の有効な規格はWHATWGのHTML Living Standardです。この標準はバージョン番号を持ちません。 # '''HTML要素とは何ですか?''' #: HTML要素は、開始タグ、コンテンツ、終了タグで構成される構文を指します。例えば、段落を表す<code><[[/p|p]]></code>要素は次のようになります。 #:<syntaxhighlight lang=html> <p>This is a paragraph.</p> </syntaxhighlight> # '''HTMLタグとは何ですか?''' #: HTMLタグは、要素の開始と終了を示すためのマークアップです。開始タグは要素の名前で囲まれ、終了タグはスラッシュで始まります。例えば、<code><[[/h1|h1]]></code>は見出しレベル1の開始タグ、<syntaxhighlight lang=html inline></h1></syntaxhighlight>は終了タグです。 # '''HTMLとCSSの違いは何ですか?''' #: HTMLはウェブページの構造と内容を定義するための言語で、CSS(Cascading Style Sheets)はウェブページの外観やスタイルを指定するための言語です。HTMLは骨組みを作り、CSSはその骨組みに装飾を施します。 # '''HTMLファイルの基本的な構造は何ですか?''' #: HTMLファイルの基本的な構造は以下のようになります。 #:<syntaxhighlight lang=html> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>ドキュメント</title> </head> <body> <h1>Hello, World!</h1> <p>段落</p> </body> </html> </syntaxhighlight> # '''フローコンテンツとは何ですか?''' #: フローコンテンツは、文書の大部分を構成する要素のことです。これには、段落、見出し、リスト、リンク、フォーム、セクションなどが含まれます。フローコンテンツは他のフローコンテンツと自由に混在することができます。 # '''メタデータコンテンツとは何ですか?''' #: メタデータコンテンツは、文書のメタデータを定義するための要素です。これは、文書の設定や外部リソースのリンク、スクリプト、スタイルシートなどを含みます。代表的な例として、<code><[[/meta|meta]]></code>, <code><[[/link|link]]></code>, <code><[[/style|style]]></code>, <code><[[/script|script]]></code>があります。 # '''セクショニングコンテンツとは何ですか?''' #: セクショニングコンテンツは、文書に新しいセクションを作成するための要素です。これにより、文書を論理的な部分に分割し、各セクションに独自の構造と意味を持たせることができます。代表的な例として、<code><[[/article|article]]></code>, <code><[[/section|section]]></code>, <code><[[/nav|nav]]></code>, <code><[[/aside|aside]]></code>があります。 # '''インタラクティブコンテンツとは何ですか?''' #: インタラクティブコンテンツは、ユーザーが操作できる要素です。これには、リンク、ボタン、フォームコントロール(入力フィールド、チェックボックス、ラジオボタンなど)、詳細情報を表示するための要素などが含まれます。代表的な例として、<code><[[/a|a]]></code>, <code><[[/button|button]]></code>, <code><[[/input|input]]></code>, <code><[[/textarea|textarea]]></code>, <code><[[/select|select]]></code>があります。 # '''埋め込みコンテンツとは何ですか?''' #: 埋め込みコンテンツは、他のリソースをHTML文書内に埋め込むための要素です。これには、画像、ビデオ、オーディオ、iframe、オブジェクトなどが含まれます。代表的な例として、<code><[[/img|img]]></code>, <code><[[/video|video]]></code>, <code><[[/audio|audio]]></code>, <code><[[/iframe|iframe]]></code>, <code><[[/embed|embed]]></code>があります。 # '''HTMLファイルをどのように表示できますか?''' #: HTMLファイルは、ウェブブラウザで表示することができます。HTMLファイルを作成したら、ファイルをダブルクリックするか、ブラウザで開くことでその内容を表示できます。また、開発者向けツールを使用してHTMLを編集しながらリアルタイムでプレビューすることも可能です。 # '''HTMLとJavaScriptの関係は何ですか?''' #: HTMLはウェブページの構造を定義し、JavaScriptはそのページに動的な機能を追加します。JavaScriptを使用して、ユーザーインタラクションに応じてページの内容を変更したり、アニメーションを追加したり、データを処理したりすることができます。JavaScriptはHTML内で<code><[[/script|script]]></code>タグを使用して追加されます。 # '''HTML要素の属性とは何ですか?''' #: HTML要素の属性は、要素に追加の情報を提供するために使用されます。属性は開始タグ内で指定され、キーと値のペアで構成されます。例えば、<code><[[/a|a]]></code>要素の<syntaxhighlight lang=html inline>href</syntaxhighlight>属性はリンク先のURLを指定します。 #:<syntaxhighlight lang=html> <a href="https://example.com">Visit Example</a> </syntaxhighlight> # '''コメントをHTMLに追加する方法は?''' #: HTMLにコメントを追加するには、<syntaxhighlight lang=html inline><!--</syntaxhighlight>で始まり、<syntaxhighlight lang=html inline>--></syntaxhighlight>で終わるコメントタグを使用します。コメントはブラウザに表示されません。 #:<syntaxhighlight lang=html> <!-- This is a comment --> <p>This is visible content.</p> </syntaxhighlight> これらの質問と回答が、HTMLに関する基本的な理解を深める助けとなれば幸いです。HTMLの詳細については、公式のHTML Living Standardドキュメントを参照してください。 === C. HTMLの廃止技術 === ==== HTMLの廃止要素 ==== HTMLの廃止要素の一覧を表形式でまとめました: :{| class="sortable wikitable" |+ HTMLの廃止要素 ! 要素 || 代替手段 |- | applet || [[/embed|embed]] または [[/object|object]] を使用 |- | acronym || [[/abbr|abbr]] を使用 |- | bgsound || [[/audio|audio]] を使用 |- | dir || [[/ul|ul]] を使用 |- | frame || [[/iframe|iframe]] と [[/CSS|CSS]] を使用、または[[/サーバーサイドインクルード|サーバーサイドインクルード]]を使用 |- | frameset || [[/iframe|iframe]] と [[/CSS|CSS]] を使用、または[[/サーバーサイドインクルード|サーバーサイドインクルード]]を使用 |- | noframes || [[/iframe|iframe]] と [[/CSS|CSS]] を使用、または[[/サーバーサイドインクルード|サーバーサイドインクルード]]を使用 |- | isindex || 明示的なフォームとテキスト入力を使用 |- | keygen || [[/Web Cryptography API|Web Cryptography API]] を使用 |- | listing || [[/pre|pre]] と [[/code|code]] を使用 |- | menuitem || [[/contextmenuイベント|contextmenuイベント]]を処理するスクリプトを使用 |- | nextid || [[/GUID|GUID]]を使用 |- | noembed || fallbackが必要な場合は [[/object|object]] を使用 |- | plaintext || "text/plain" MIMEタイプを使用 |- | rb || [[/ruby|ruby]]要素内に直接ルビのベーステキストを記述 |- | rtc || 入れ子の[[/ruby|ruby]]要素を使用 |- | strike || 編集を示す場合は [[/del|del]] を、そうでない場合は [[/s|s]] を使用 |- | xmp || [[/pre|pre]] と [[/code|code]] を使用し、"<"と"&"をエスケープ |- | basefont || 適切な要素または[[/CSS|CSS]]を使用 |- | big || 適切な要素または[[/CSS|CSS]]を使用 |- | blink || 適切な要素または[[/CSS|CSS]]を使用 |- | center || 適切な要素または[[/CSS|CSS]]を使用 |- | font || 適切な要素または[[/CSS|CSS]]を使用 |- | marquee || 適切な要素または[[/CSS|CSS]]を使用 |- | multicol || 適切な要素または[[/CSS|CSS]]を使用 |- | nobr || 適切な要素または[[/CSS|CSS]]を使用 |- | spacer || 適切な要素または[[/CSS|CSS]]を使用 |- | tt || 適切な要素または[[/CSS|CSS]]を使用 |} これらの要素は完全に廃止されており、マークアップに使用してはいけません。代わりに、表の「代替手段」列に記載された方法を使用することが推奨されています。 ==== HTML要素の廃止属性 ==== 以下は、廃止された属性の一覧を表にまとめたものです。この表では、要素とその廃止された属性、および推奨される代替方法を示しています。 :{| class="sortable wikitable" |+ HTML要素の廃止属性 !要素 !廃止属性 !推奨される代替方法 |- |rowspan=3| '''全要素''' || <code>contextmenu</code> || カスタムのコンテキストメニューを実装するには、スクリプトでcontextmenuイベントを処理する。 |- | <code>dropzone</code> || スクリプトでdragenter と dragover イベントを処理する。 |- | <code>onshow</code> || カスタムのコンテキストメニューを実装するには、スクリプトでcontextmenuイベントを処理する。 |- |rowspan=9| <code><[[/a|a]]></code> || <code>charset</code> || HTTP <code>Content-Type</code> ヘッダーを使用する |- | <code>coords</code> || <code>area</code> 要素を使用する |- | <code>datafld</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>methods</code> || HTTP OPTIONS 機能を使用する |- | <code>name</code> || <code>id</code> 属性を使用する |- | <code>rev</code> || <code>rel</code> 属性を反対の用語で使用する (例: <code>rev="made"</code> → <code>rel="author"</code>) |- | <code>shape</code> || <code>area</code> 要素を使用する |- | <code>urn</code> || <code>href</code> 属性で識別子を指定する |- |rowspan=3| <code><[[/area|area]]></code> || <code>hreflang</code> || 使用しない |- | <code>nohref</code> || <code>href</code> 属性を省略する |- | <code>type</code> || 使用しない |- |rowspan=12| <code><[[/body|body]]></code> || <code>alink</code> || CSS を使用する |- | <code>background</code> || CSS を使用する |- | <code>bgcolor</code> || CSS を使用する |- | <code>bottommargin</code> || CSS を使用する |- | <code>leftmargin</code> || CSS を使用する |- | <code>link</code> || CSS を使用する |- | <code>marginheight</code> || CSS を使用する |- | <code>marginwidth</code> || CSS を使用する |- | <code>rightmargin</code> || CSS を使用する |- | <code>text</code> || CSS を使用する |- | <code>topmargin</code> || CSS を使用する |- | <code>vlink</code> || CSS を使用する |- |rowspan=1| <code><[[/br|br]]></code> || <code>clear</code> || CSS を使用する |- |rowspan=3| <code><[[/button|button]]></code> || <code>datafld</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>dataformatas</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- |rowspan=1| <code><[[/caption|caption]]></code> || <code>align</code> || CSS を使用する |- |rowspan=5| <code><[[/col|col]]></code> || <code>align</code> || CSS を使用する |- | <code>char</code> || CSS を使用する |- | <code>charoff</code> || CSS を使用する |- | <code>valign</code> || CSS を使用する |- | <code>width</code> || CSS を使用する |- |rowspan=4| <code><[[/div|div]]></code> || <code>align</code> || CSS を使用する |- | <code>datafld</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>dataformatas</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- |rowspan=1| <code><[[/dl|dl]]></code> || <code>compact</code> || CSS を使用する |- |rowspan=4| <code><[[/embed|embed]]></code> || <code>align</code> || CSS を使用する |- | <code>hspace</code> || CSS を使用する |- | <code>name</code> || <code>id</code> 属性を使用する |- | <code>vspace</code> || CSS を使用する |- |rowspan=1| <code><[[/fieldset|fieldset]]></code> || <code>datafld</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- |rowspan=1| <code><[[/form|form]]></code> || <code>accept</code> || <code>input</code> 要素に直接 <code>accept</code> 属性を指定する |- |rowspan=2| <code><[[/frame|frame]]></code> || <code>datafld</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- |rowspan=1| <code><[[/h1|h1]]></code>—<code><[[/h6|h6]]></code> || <code>align</code> || CSS を使用する |- |rowspan=1| <code><[[/head|head]]></code> || <code>profile</code> || 不必要 |- |rowspan=5| <code><[[/hr|hr]]></code> || <code>align</code> || CSS を使用する |- | <code>color</code> || CSS を使用する |- | <code>noshade</code> || CSS を使用する |- | <code>size</code> || CSS を使用する |- | <code>width</code> || CSS を使用する |- |rowspan=2| <code><[[/html|html]]></code> || <code>manifest</code> || サービスワーカーを使用する |- | <code>version</code> || 使用しない |- |rowspan=12| <code><[[/iframe|iframe]]></code> || <code>align</code> || CSS を使用する |- | <code>allowtransparency</code> || CSS を使用する |- | <code>datafld</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>frameborder</code> || CSS を使用する |- | <code>framespacing</code> || CSS を使用する |- | <code>hspace</code> || CSS を使用する |- | <code>longdesc</code> || 通常の <code><[[/a|a]]></code> 要素を使用して説明へのリンクを作成するか、(画像の場合)イメージマップを使用して画像から画像の説明へのリンクを提供する。 |- | <code>marginheight</code> || CSS を使用する |- | <code>marginwidth</code> || CSS を使用する |- | <code>scrolling</code> || CSS を使用する |- | <code>vspace</code> || CSS を使用する |- |rowspan=9| <code><[[/img|img]]></code> || <code>align</code> || CSS を使用する |- | <code>border</code> || CSS を使用する |- | <code>datafld</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>hspace</code> || CSS を使用する |- | <code>longdesc</code> || 通常の <code><[[/a|a]]></code> 要素を使用して説明へのリンクを作成するか、(画像の場合)イメージマップを使用して画像から画像の説明へのリンクを提供する。 |- | <code>lowsrc</code> || 2 つの別々の画像を使用する代わりに、<code>src</code> 属性で指定されたプログレッシブ JPEG 画像を使用する。 |- | <code>name</code> || <code>id</code> 属性を使用する |- | <code>vspace</code> || CSS を使用する |- |rowspan=9| <code><[[/input|input]]></code> || <code>align</code> || CSS を使用する |- | <code>border</code> || CSS を使用する |- | <code>datafld</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>dataformatas</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>hspace</code> || CSS を使用する |- | <code>ismap</code> || 不要 |- | <code>usemap</code> || イメージマップに <code><[[/img|img]]></code> 要素を使用する。 |- | <code>vspace</code> || CSS を使用する |- |rowspan=3| <code><[[/label|label]]></code> || <code>datafld</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>dataformatas</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- |rowspan=4| <code><[[/legend|legend]]></code> || <code>align</code> || CSS を使用する |- | <code>datafld</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>dataformatas</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- |rowspan=1| <code><[[/li|li]]></code> || <code>type</code> || CSS を使用する |- |rowspan=5| <code><[[/link|link]]></code> || <code>charset</code> || HTTP <code>Content-Type</code> ヘッダーを使用する |- | <code>methods</code> || HTTP OPTIONS 機能を使用する |- | <code>rev</code> || <code>rel</code> 属性を反対の用語で使用する (例: <code>rev="made"</code> → <code>rel="author"</code>) |- | <code>target</code> || 不要 |- | <code>urn</code> || <code>href</code> 属性で識別子を指定する |- |rowspan=3| <code><[[/marquee|marquee]]></code> || <code>datafld</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>dataformatas</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- |rowspan=3| <code><[[/menu|menu]]></code> || <code>compact</code> || CSS を使用する |- | <code>label</code> || カスタムのコンテキストメニューを実装するには、スクリプトでcontextmenuイベントを処理する。 |- | <code>type</code> || カスタムコンテキストメニューを実装するには、スクリプトを使用し <code>contextmenu</code> イベントを処理する。ツールバーメニューの場合は省略する。 |- |rowspan=1| <code><[[/meta|meta]]></code> || <code>scheme</code> || フィールドごとにスキーマを1つだけ使用するか、スキーマ宣言を値の一部とする。 |- |rowspan=16| <code><[[/object|object]]></code> || <code>align</code> || CSS を使用する |- | <code>archive</code> || データ属性とタイプ属性を使ってプラグインを呼び出す |- | <code>border</code> || CSS を使用する |- | <code>classid</code> || データ属性とタイプ属性を使ってプラグインを呼び出す |- | <code>code</code> || データ属性とタイプ属性を使ってプラグインを呼び出す |- | <code>codebase</code> || データ属性とタイプ属性を使ってプラグインを呼び出す |- | <code>codetype</code> || データ属性とタイプ属性を使ってプラグインを呼び出す |- | <code>datafld</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>dataformatas</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>declare</code> || データ属性とタイプ属性を使ってプラグインを呼び出す |- | <code>hspace</code> || CSS を使用する |- | <code>standby</code> || データ属性とタイプ属性を使ってプラグインを呼び出す |- | <code>typemustmatch</code> || データ属性とタイプ属性を使ってプラグインを呼び出す |- | <code>usemap</code> || イメージマップに <code><[[/img|img]]></code> 要素を使用する。 |- | <code>vspace</code> || CSS を使用する |- |rowspan=1| <code><[[/ol|ol]]></code> || <code>compact</code> || CSS を使用する |- |rowspan=3| <code><[[/option|option]]></code> || <code>dataformatas</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>name</code> || <code>id</code> 属性を使用する |- |rowspan=1| <code><[[/p|p]]></code> || <code>align</code> || CSS を使用する |- |rowspan=1| <code><[[/pre|pre]]></code> || <code>width</code> || CSS を使用する |- |rowspan=4| <code><[[/script|script]]></code> || <code>charset</code> || HTTP <code>Content-Type</code> ヘッダーを使用する |- | <code>event</code> || DOMのイベントを使用する |- | <code>for</code> || DOMのイベントを使用する |- | <code>language</code> || 不要、JavaScriptとされる。<code>type</code>属性で指定できる。 |- |rowspan=3| <code><[[/select|select]]></code> || <code>datafld</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>dataformatas</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- |rowspan=3| <code><[[/span|span]]></code> || <code>datafld</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>dataformatas</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- |rowspan=1| <code><[[/style|style]]></code> || <code>type</code> || CSS 用には属性を省略する |- |rowspan=15| <code><[[/table|table]]></code> || <code>align</code> || CSS を使用する |- | <code>background</code> || CSS を使用する |- | <code>bgcolor</code> || CSS を使用する |- | <code>border</code> || CSS を使用する |- | <code>bordercolor</code> || CSS を使用する |- | <code>cellpadding</code> || CSS を使用する |- | <code>cellspacing</code> || CSS を使用する |- | <code>dataformatas</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datapagesize</code> || 不要 |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>frame</code> || CSS を使用する |- | <code>height</code> || CSS を使用する |- | <code>rules</code> || CSS を使用する |- | <code>summary</code> || <code><[[/table|table]]></code>要素参照 |- | <code>width</code> || CSS を使用する |- |rowspan=6| <code><[[/tbody|tbody]]></code> || <code>align</code> || CSS を使用する |- | <code>background</code> || CSS を使用する |- | <code>char</code> || CSS を使用する |- | <code>charoff</code> || CSS を使用する |- | <code>height</code> || CSS を使用する |- | <code>valign</code> || CSS を使用する |- |rowspan=3| <code><[[/td|td]]></code> || <code>abbr</code> || |- | <code>background</code> || CSS を使用する |- | <code>scope</code> || <code><[[/th|th]]></code>を使用 |- |rowspan=9| <code><[[/th|th]]></code> <code><[[/td|td]]></code> || <code>align</code> || CSS を使用する |- | <code>axis</code> || <code><[[/th|th]]></code>の<code>scope</code>属性を使用 |- | <code>bgcolor</code> || CSS を使用する |- | <code>char</code> || CSS を使用する |- | <code>charoff</code> || CSS を使用する |- | <code>height</code> || CSS を使用する |- | <code>nowrap</code> || CSS を使用する |- | <code>valign</code> || CSS を使用する |- | <code>width</code> || CSS を使用する |- |rowspan=2| <code><[[/textarea|textarea]]></code> || <code>datafld</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- | <code>datasrc</code> || <code>XMLHttpRequest</code> を使用して動的にページを更新する |- |rowspan=6| <code><[[/tfoot|tfoot]]></code> || <code>align</code> || CSS を使用する |- | <code>background</code> || CSS を使用する |- | <code>char</code> || CSS を使用する |- | <code>charoff</code> || CSS を使用する |- | <code>height</code> || CSS を使用する |- | <code>valign</code> || CSS を使用する |- |rowspan=1| <code><[[/th|th]]></code> || <code>background</code> || CSS を使用する |- |rowspan=6| <code><[[/thead|thead]]></code> || <code>align</code> || CSS を使用する |- | <code>background</code> || CSS を使用する |- | <code>char</code> || CSS を使用する |- | <code>charoff</code> || CSS を使用する |- | <code>height</code> || CSS を使用する |- | <code>valign</code> || CSS を使用する |- |rowspan=7| <code><[[/tr|tr]]></code> || <code>align</code> || CSS を使用する |- | <code>background</code> || CSS を使用する |- | <code>bgcolor</code> || CSS を使用する |- | <code>char</code> || CSS を使用する |- | <code>charoff</code> || CSS を使用する |- | <code>height</code> || CSS を使用する |- | <code>valign</code> || CSS を使用する |- |rowspan=2| <code><[[/ul|ul]]></code> || <code>compact</code> || CSS を使用する |- | <code>type</code> || CSS を使用する |} この表は、HTML Living Standard に基づいて廃止された属性とその代替方法をわかりやすくまとめたものです。各属性の使用を避け、推奨される代替手段を採用してください。 == 下位階層のページ == *[[HTML Living Standard/ARIA属性]] *[[HTML Living Standard/CSS]] *[[HTML Living Standard/DOM/Element]] *[[HTML Living Standard/DOM/HTMLElement]] *[[HTML Living Standard/JavaScript]] *[[HTML Living Standard/Web IDL]] *[[HTML Living Standard/XML構文]] *[[HTML Living Standard/a]] *[[HTML Living Standard/abbr]] *[[HTML Living Standard/accept属性]] *[[HTML Living Standard/accesskey属性]] *[[HTML Living Standard/address]] *[[HTML Living Standard/anchor属性]] *[[HTML Living Standard/area]] *[[HTML Living Standard/article]] *[[HTML Living Standard/aside]] *[[HTML Living Standard/audio]] *[[HTML Living Standard/autocapitalize属性]] *[[HTML Living Standard/autocomplete属性]] *[[HTML Living Standard/autocorrect属性]] *[[HTML Living Standard/autofocus属性]] *[[HTML Living Standard/b]] *[[HTML Living Standard/base]] *[[HTML Living Standard/bdi]] *[[HTML Living Standard/bdo]] *[[HTML Living Standard/blockquote]] *[[HTML Living Standard/body]] *[[HTML Living Standard/br]] *[[HTML Living Standard/button]] *[[HTML Living Standard/canvas]] *[[HTML Living Standard/caption]] *[[HTML Living Standard/capture属性]] *[[HTML Living Standard/cite]] *[[HTML Living Standard/class属性]] *[[HTML Living Standard/code]] *[[HTML Living Standard/col]] *[[HTML Living Standard/colgroup]] *[[HTML Living Standard/contenteditable属性]] *[[HTML Living Standard/crossorigin属性]] *[[HTML Living Standard/data]] *[[HTML Living Standard/data-*属性]] *[[HTML Living Standard/datalist]] *[[HTML Living Standard/dd]] *[[HTML Living Standard/del]] *[[HTML Living Standard/details]] *[[HTML Living Standard/dfn]] *[[HTML Living Standard/dialog]] *[[HTML Living Standard/dirname属性]] *[[HTML Living Standard/dir属性]] *[[HTML Living Standard/div]] *[[HTML Living Standard/dl]] *[[HTML Living Standard/doctype]] *[[HTML Living Standard/draggable属性]] *[[HTML Living Standard/dt]] *[[HTML Living Standard/em]] *[[HTML Living Standard/embed]] *[[HTML Living Standard/enterkeyhint属性]] *[[HTML Living Standard/exportparts属性]] *[[HTML Living Standard/fieldset]] *[[HTML Living Standard/figcaption]] *[[HTML Living Standard/figure]] *[[HTML Living Standard/footer]] *[[HTML Living Standard/form]] *[[HTML Living Standard/h1]] *[[HTML Living Standard/head]] *[[HTML Living Standard/header]] *[[HTML Living Standard/hgroup]] *[[HTML Living Standard/hidden属性]] *[[HTML Living Standard/hr]] *[[HTML Living Standard/href属性]] *[[HTML Living Standard/html]] *[[HTML Living Standard/i]] *[[HTML Living Standard/id属性]] *[[HTML Living Standard/iframe]] *[[HTML Living Standard/img]] *[[HTML Living Standard/inert属性]] *[[HTML Living Standard/input]] *[[HTML Living Standard/inputmode属性]] *[[HTML Living Standard/ins]] *[[HTML Living Standard/is属性]] *[[HTML Living Standard/itemid属性]] *[[HTML Living Standard/itemprop属性]] *[[HTML Living Standard/itemref属性]] *[[HTML Living Standard/itemscope属性]] *[[HTML Living Standard/itemtype属性]] *[[HTML Living Standard/kbd]] *[[HTML Living Standard/label]] *[[HTML Living Standard/lang属性]] *[[HTML Living Standard/legend]] *[[HTML Living Standard/li]] *[[HTML Living Standard/link]] *[[HTML Living Standard/main]] *[[HTML Living Standard/map]] *[[HTML Living Standard/mark]] *[[HTML Living Standard/math]] *[[HTML Living Standard/menu]] *[[HTML Living Standard/meta]] *[[HTML Living Standard/meter]] *[[HTML Living Standard/name属性]] *[[HTML Living Standard/nav]] *[[HTML Living Standard/nonce属性]] *[[HTML Living Standard/noscript]] *[[HTML Living Standard/object]] *[[HTML Living Standard/ol]] *[[HTML Living Standard/optgroup]] *[[HTML Living Standard/option]] *[[HTML Living Standard/output]] *[[HTML Living Standard/p]] *[[HTML Living Standard/param]] *[[HTML Living Standard/part属性]] *[[HTML Living Standard/picture]] *[[HTML Living Standard/popover属性]] *[[HTML Living Standard/pre]] *[[HTML Living Standard/progress]] *[[HTML Living Standard/q]] *[[HTML Living Standard/rel属性]] *[[HTML Living Standard/rp]] *[[HTML Living Standard/rt]] *[[HTML Living Standard/ruby]] *[[HTML Living Standard/s]] *[[HTML Living Standard/samp]] *[[HTML Living Standard/script]] *[[HTML Living Standard/search]] *[[HTML Living Standard/section]] *[[HTML Living Standard/select]] *[[HTML Living Standard/slot]] *[[HTML Living Standard/slot属性]] *[[HTML Living Standard/small]] *[[HTML Living Standard/source]] *[[HTML Living Standard/span]] *[[HTML Living Standard/spellcheck属性]] *[[HTML Living Standard/strong]] *[[HTML Living Standard/style]] *[[HTML Living Standard/style属性]] *[[HTML Living Standard/sub]] *[[HTML Living Standard/summary]] *[[HTML Living Standard/sup]] *[[HTML Living Standard/tabindex属性]] *[[HTML Living Standard/table]] *[[HTML Living Standard/tbody]] *[[HTML Living Standard/td]] *[[HTML Living Standard/template]] *[[HTML Living Standard/textarea]] *[[HTML Living Standard/tfoot]] *[[HTML Living Standard/th]] *[[HTML Living Standard/thead]] *[[HTML Living Standard/time]] *[[HTML Living Standard/title]] *[[HTML Living Standard/title属性]] *[[HTML Living Standard/tr]] *[[HTML Living Standard/track]] *[[HTML Living Standard/translate属性]] *[[HTML Living Standard/u]] *[[HTML Living Standard/ul]] *[[HTML Living Standard/var]] *[[HTML Living Standard/video]] *[[HTML Living Standard/virtualkeyboardpolicy属性]] *[[HTML Living Standard/wbr]] *[[HTML Living Standard/writingsuggestions属性]] *[[HTML Living Standard/イベント属性]] *[[HTML Living Standard/インタラクティブ・コンテンツ]] *[[HTML Living Standard/ウェブコンポーネント]] *[[HTML Living Standard/エンベッディッド・コンテンツ]] *[[HTML Living Standard/グローバル属性]] *[[HTML Living Standard/コンテンツカテゴリー]] *[[HTML Living Standard/セクショニング・コンテンツ]] *[[HTML Living Standard/セマンティック要素]] *[[HTML Living Standard/トランスペアレント・コンテンツ]] *[[HTML Living Standard/パルパブル・コンテンツ]] *[[HTML Living Standard/フレージング・コンテンツ]] *[[HTML Living Standard/フロー・コンテンツ]] *[[HTML Living Standard/ヘディング・コンテンツ]] *[[HTML Living Standard/マイクロデータ]] *[[HTML Living Standard/メタデータ・コンテンツ]] *[[HTML Living Standard/一般的な属性]] *[[HTML Living Standard/文字エンコーディング]] *[[HTML Living Standard/要素インターフェース対応表]] *[[HTML Living Standard/非フロー・コンテンツ]] {{DEFAULTSORT:HTML LIVING STANDARD}} [[Category:HTML Living Standard|*]] [[Category:HTML]] j25gijjiv44qs2b7ob753yfbq1ik52x .NET 0 43664 301300 267881 2026-07-08T09:18:45Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301300 wikitext text/x-wiki '''.NET'''は、マイクロソフトが開発したクロスプラットフォーム対応のソフトウェア開発プラットフォームであり、現代のソフトウェア開発において革新的な役割を果たしています。その歴史は2002年のマイクロソフト [[.NET Framework]]の初回リリースにさかのぼり、長年にわたって進化を続けてきました。 従来の .NET Frameworkは主にWindowsプラットフォームに限定されていましたが、.NET Core(現在の .NET)は根本的に異なるアプローチを採用しました。クロスプラットフォーム性を最優先し、Windows、macOS、GNU/Linuxのディストリビューションなど、多様な環境で動作することを可能にしたのです。 サポートされる主要なプログラミング言語には、[[C Sharp|C#]]、[[F Sharp|F#]]、[[Visual Basic]]があり、それぞれ異なる開発スタイルと哲学を持っています。中でもC#は最も広く使用され、言語仕様の継続的な改良によって、開発者に柔軟で強力なプログラミング体験を提供しています。 == 開発環境のセットアップ == .NET開発環境の構築は、現代のソフトウェア開発において重要な最初のステップです。.NET SDKをインストールすることで、クロスプラットフォームでのアプリケーション開発が可能になります。開発者は、自身のニーズと好みに応じて、[[Visual Studio]]、[[Visual Studio Code]]、[[JetBrains Rider]]など、多様な統合開発環境(IDE)を選択できます。 Visual Studioは、エンタープライズレベルの包括的な開発ツールであり、豊富な機能と緊密な統合環境を提供します。一方、Visual Studio Codeは、軽量でカスタマイズ性の高いエディターとして、モダンな開発ワークフローに適しています。 クロスプラットフォーム開発を支援するツールチェーンも充実しており、コマンドラインインターフェース(CLI)ツールを使用することで、効率的なプロジェクト管理と開発が可能になります。 == C#の基本と最新機能 == C#は .NETエコシステムにおける中心的なプログラミング言語であり、オブジェクト指向プログラミングのパラダイムを強力にサポートしています。最新バージョンでは、パターンマッチング、初期化子、ローカル関数、非同期ストリームなど、開発者の生産性を高める革新的な機能が追加されてきました。 特に注目すべき機能として、[[LINQ]](Language Integrated Query)があります。LINQは、データソースに対して宣言的で型安全なクエリ操作を可能にし、コレクション、データベース、XMLドキュメントなど、多様なデータソースを均一な方法で操作できます。 非同期プログラミングのサポートも C# の大きな特徴です。async/await キーワードにより、複雑な非同期処理を直感的かつ簡潔に記述できるようになりました。 == .NETアーキテクチャ == .NETのアーキテクチャは、Common Language Runtime(CLR)を中心に設計されています。CLRは、メモリ管理、セキュリティ、例外処理などの重要な機能を提供し、プラットフォーム間の抽象化レイヤーとして機能します。 ガベージコレクションは、.NETの自動メモリ管理機能の中核をなすメカニズムです。開発者は明示的なメモリ解放から解放され、アプリケーションの信頼性と安定性を向上させることができます。 クラスライブラリは、.NETの豊富な機能セットを提供し、開発者は再利用可能で最適化されたコンポーネントを活用できます。 == クロスプラットフォーム開発 == クロスプラットフォーム開発は、現代のソフトウェア開発において最も重要な戦略の一つとなっています。.NETは、Windows、macOS、Linuxなど、異なるオペレーティングシステム間でシームレスな開発を可能にします。これにより、開発者は単一のコードベースで複数のプラットフォームに対応するアプリケーションを構築できるようになりました。 コンテナ技術、特にDockerは、.NETアプリケーションの展開をさらに柔軟にしています。コンテナ化により、アプリケーションの依存関係と実行環境を一貫して管理でき、異なるインフラストラクチャ間での移植性が大幅に向上します。クラウドネイティブな開発アプローチと相まって、.NETは現代のマイクロサービスアーキテクチャに最適なプラットフォームとして進化しています。 == Webアプリケーション開発 == [[ASP.NET Core]]は、モダンでスケーラブルなWebアプリケーションを構築するための最新のフレームワークです。従来のWeb開発モデルから大きく進化し、軽量で高性能なWeb APIとサーバーサイドアプリケーションの開発を可能にしています。 [[Blazor]]は、.NETによるWebフロントエンド開発における革新的なアプローチを提供します。[[WebAssembly]]を利用することで、C#コードをブラウザ上で直接実行でき、フルスタックのWeb開発を.NET開発者に開放しています。サーバーサイドレンダリングとクライアントサイドの両方のモードをサポートし、柔軟な開発が可能となっています。 Minimal APIsは、軽量で高性能なWeb APIエンドポイントを最小限のコードで実装できる革新的な機能です。従来の重厚なコントローラーベースのアプローチから脱却し、よりシンプルで読みやすいAPIコードを実現します。 == モバイルアプリケーション開発 == モバイルアプリケーション開発の領域において、[[.NET MAUI]]は次世代のクロスプラットフォームフレームワークとして注目を集めています。Xamarin.Formsの後継として、iOS、Android、macOS、Windowsなど、マルチプラットフォームに対して単一のコードベースでネイティブアプリケーションを開発できます。 .NET MAUIは、プラットフォーム固有の機能とのシームレスな統合、パフォーマンスの最適化、そして直感的な開発エクスペリエンスを提供します。グラフィカルユーザーインターフェース(GUI)コンポーネントの再利用性を高め、開発生産性を大幅に向上させています。 == データアクセスとデータベース == [[Entity Framework Core]]は、.NETにおける[[オブジェクトリレーショナルマッピング]](ORM)の中心的な技術です。リレーショナルデータベースとのインタラクションを抽象化し、開発者がデータベース操作に関する低レベルの詳細から解放されます。コード優先(Code-First)やデータベース優先(Database-First)のアプローチをサポートし、柔軟なデータモデリングを可能にしています。 [[NoSQL]]データベースとの統合も .NET の強力な機能の一つです。[[MongoDB]]、[[Cassandra]]、[[Redis]] などの異なるデータストアと効率的に連携できるライブラリとツールが豊富に提供されています。マイクロサービスアーキテクチャにおいて、この柔軟性は特に重要な意味を持ちます。 == パフォーマンスとチューニング == .NETアプリケーションのパフォーマンス最適化は、高効率なソフトウェア開発において極めて重要な課題です。最新の .NET では、きめ細かなパフォーマンス分析とチューニングのためのツールと技術が豊富に提供されています。 プロファイリングツールは、アプリケーションの詳細なパフォーマンス特性を可視化します。Visual Studio に統合されたプロファイラーは、CPU使用率、メモリ割り当て、実行時間などの重要なメトリクスをリアルタイムで分析できます。これにより、開発者はボトルネックを特定し、効果的な最適化戦略を立案できます。 メモリ効率の改善は、.NET の継続的な進化において重要なテーマとなっています。最新のガベージコレクションアルゴリズムは、アプリケーションの応答性を維持しながら、メモリ消費を最適化します。特に、大規模で高負荷なアプリケーションにおいて、この最適化は決定的な意味を持ちます。 並列処理とマルチスレッドプログラミングは、モダンなマルチコアプロセッサ環境における性能向上の鍵となります。.NET は、タスク並列ライブラリ(TPL)や async/await パターンを通じて、複雑な並行処理を簡潔かつ安全に実装する手段を提供しています。 == セキュリティ == セキュリティは現代のソフトウェア開発における最重要課題の一つであり、.NET はこの領域において包括的なアプローチを提供しています。認証と認可のメカニズムは、ASP.NET Core のセキュリティアーキテクチャの中核を成しています。 [[Identity Framework]]は、ユーザー認証、ロール管理、外部ログインプロバイダとの統合など、包括的な認証ソリューションを提供します。[[OAuth 2.0]]、[[OpenID Connect]]などの最新の認証プロトコルをネイティブにサポートし、セキュアな認証フローを実装できます。 暗号化技術は、.NET のセキュリティ戦略において重要な役割を果たします。対称暗号化、非対称暗号化、ハッシュ関数など、様々な暗号化メカニズムがライブラリとして提供され、データの機密性と完全性を保護します。 セキュアコーディングプラクティスは、単なる技術的な対策を超えて、開発プロセス全体に組み込まれるべき重要な考え方です。入力バリデーション、安全なデータ処理、適切な例外処理など、セキュリティを意識したコーディングパターンが推奨されています。 == テストと継続的インテグレーション == 効果的なソフトウェア品質管理は、現代のソフトウェア開発において不可欠です。.NET エコシステムは、包括的なテスティングフレームワークと継続的インテグレーション(CI)ツールを提供しています。 単体テストと統合テストは、[[xUnit]]、[[NUnit]]、[[MSTest]]などのフレームワークによって強力にサポートされています。これらのフレームワークは、依存性の注入、モック作成、高度なアサーション機能を提供し、堅牢で信頼性の高いテストコードの作成を可能にします。 継続的インテグレーションと継続的デプロイメント(CI/CD)は、[[Azure DevOps]]、[[GitHub Actions]]、[[GitLab CI]]などのツールによって実現されます。これらのプラットフォームは、コードのビルド、テスト、デプロイメントを自動化し、開発サイクルの効率を劇的に向上させます。 == デプロイメントと運用 == コンテナ戦略は、現代のクラウドネイティブアプリケーション展開において中心的な役割を果たしています。Dockerコンテナを使用することで、.NETアプリケーションの一貫性のある、再現可能な展開が可能になります。[[Kubernetes]]などのオーケストレーションプラットフォームと組み合わせることで、スケーラブルで柔軟な運用環境を構築できます。 クラウドデプロイメントは、[[Azure]]、[[AWS]]、[[Google Cloud Platform]]などの主要クラウドプロバイダによって高度にサポートされています。これらのプラットフォームは、.NETアプリケーション向けに最適化されたサービスと緊密な統合を提供し、効率的なクラウド移行を実現します。 サーバーレスコンピューティングは、[[Azure Functions]] や [[AWS Lambda]] などのサービスを通じて、.NET開発者に新たな可能性を開いています。従来のサーバー管理から解放され、イベント駆動型のスケーラブルなアプリケーションアーキテクチャを実現できます。 監視とログ管理は、運用段階における重要な機能です。[[Application Insights]]などの高度な監視ツールにより、リアルタイムのパフォーマンス分析、エラー追跡、ユーザー行動洞察が可能になります。 == 最新トレンドと将来の展望 == .NETエコシステムは、テクノロジーの進化と開発者のニーズに応じて継続的に進化しています。オープンソースコミュニティの貢献により、.NETは単なる商用プラットフォームを超えて、グローバルな開発者コミュニティによって形作られるプラットフォームへと変貌を遂げました。 最新のバージョンでは、クロスプラットフォーム性のさらなる強化、パフォーマンスの最適化、開発者生産性の向上に焦点が当てられています。ネイティブのAoT(Ahead-of-Time)コンパイル、より洗練された言語機能、次世代のランタイム最適化など、技術的な革新が続いています。 マイクロソフトのロードマップでは、クラウドネイティブコンピューティング、人工知能との統合、IoTデバイスサポートの拡張など、将来の方向性が示されています。開発者コミュニティとのオープンな対話を通じて、プラットフォームの進化が継続的に推進されています。 == 附録 == === サンプルプロジェクト === 附録では、.NET 開発の実践的な理解を深めるために、多様な領域をカバーしたサンプルプロジェクトを提供します。これらのプロジェクトは、初学者から中級・上級者まで、幅広いスキルレベルの開発者を対象に設計されており、実際の開発シナリオを反映しています。各プロジェクトにはベストプラクティスが組み込まれており、コーディングスタイル、設計パターン、セキュリティ対策などの学びが得られます。 ==== 1. Web アプリケーション ==== * '''プロジェクト概要:''' *: ASP.NET Core を使用したブログ管理システム。ユーザー認証、記事投稿、コメント機能を含む完全な CRUD アプリケーション。 * '''主な学習ポイント:''' ** MVC (Model-View-Controller) パターンの実装。 ** Entity Framework Core を用いたデータベース操作。 ** 認証と認可の基本。 ; Startup.cs :<syntaxhighlight lang=cs copy> using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.EntityFrameworkCore; using BlogManagementSystem.Data; namespace BlogManagementSystem { public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); services.AddDbContext<AppDbContext>(options => options.UseInMemoryDatabase("BlogDb")); // Using In-Memory DB for simplicity. services.AddRazorPages(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); endpoints.MapRazorPages(); }); } } } </syntaxhighlight> ; Models/Post.cs :<syntaxhighlight lang=cs copy> using System; using System.ComponentModel.DataAnnotations; namespace BlogManagementSystem.Models { public class Post { public int Id { get; set; } [Required] [StringLength(100)] public string Title { get; set; } [Required] public string Content { get; set; } public DateTime CreatedAt { get; set; } = DateTime.Now; } } </syntaxhighlight> ; Data/AppDbContext.cs :<syntaxhighlight lang=cs copy> using Microsoft.EntityFrameworkCore; using BlogManagementSystem.Models; namespace BlogManagementSystem.Data { public class AppDbContext : DbContext { public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { } public DbSet<Post> Posts { get; set; } } } </syntaxhighlight> ; Controllers/PostsController.cs :<syntaxhighlight lang=cs copy> using System.Linq; using Microsoft.AspNetCore.Mvc; using BlogManagementSystem.Data; using BlogManagementSystem.Models; namespace BlogManagementSystem.Controllers { public class PostsController : Controller { private readonly AppDbContext _context; public PostsController(AppDbContext context) { _context = context; } public IActionResult Index() { var posts = _context.Posts.ToList(); return View(posts); } public IActionResult Create() { return View(); } [HttpPost] [ValidateAntiForgeryToken] public IActionResult Create(Post post) { if (ModelState.IsValid) { _context.Posts.Add(post); _context.SaveChanges(); return RedirectToAction(nameof(Index)); } return View(post); } } } </syntaxhighlight> ; Views/Posts/Index.cshtml :<syntaxhighlight lang=html copy> @model IEnumerable<BlogManagementSystem.Models.Post> <h1>Blog Posts</h1> <a href="/Posts/Create">Create New Post</a> <table class="table"> <thead> <tr> <th>Title</th> <th>Content</th> <th>Created At</th> </tr> </thead> <tbody> @foreach (var post in Model) { <tr> <td>@post.Title</td> <td>@post.Content</td> <td>@post.CreatedAt</td> </tr> } </tbody> </table> </syntaxhighlight> ;; Views/Posts/Create.cshtml :<syntaxhighlight lang=html copy> @model BlogManagementSystem.Models.Post <h1>Create New Post</h1> <form asp-action="Create" method="post"> <div class="form-group"> <label asp-for="Title"></label> <input asp-for="Title" class="form-control" /> <span asp-validation-for="Title" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="Content"></label> <textarea asp-for="Content" class="form-control"></textarea> <span asp-validation-for="Content" class="text-danger"></span> </div> <button type="submit" class="btn btn-primary">Create</button> </form> @section Scripts { <partial name="_ValidationScriptsPartial" /> } </syntaxhighlight> ==== 2. モバイルアプリケーション ==== * '''プロジェクト概要:''' *: Xamarin または .NET MAUI を使用して開発するタスク管理アプリ。オフライン同期機能付き。 * '''主な学習ポイント:''' ** クロスプラットフォーム UI の作成。 ** ローカルデータストレージ(SQLite)の活用。 ** REST API と連携したバックエンド通信。 ==== 3. マイクロサービス ==== * '''プロジェクト概要:''' *: .NET で構築されたマイクロサービスアーキテクチャの E コマースプラットフォーム。注文管理、在庫管理、支払い処理を各サービスで分割。 * '''主な学習ポイント:''' ** Docker と Kubernetes を用いたコンテナ化。 ** RabbitMQ を使用したメッセージング。 ** gRPC または REST API によるサービス間通信。 ==== 4. データ分析アプリケーション ==== * '''プロジェクト概要:''' *: .NET で開発するデータ分析ダッシュボード。CSV やデータベースからデータを取り込み、視覚的なグラフを表示。 * '''主な学習ポイント:''' ** LINQ を用いたデータ操作。 ** SignalR によるリアルタイム更新。 ** Chart.js などのライブラリを利用したデータ可視化。 ==== 5. コンソールアプリケーション ==== * '''プロジェクト概要:''' *: C# を使用して開発するファイル整理ツール。フォルダ内のファイルを種類ごとに分類し、自動的に整理する。 * '''主な学習ポイント:''' ** ファイルシステム API の活用。 ** ユニットテストによるコード品質の向上。 ** コマンドライン引数の処理。 ==== 提供されるサポート ==== 各プロジェクトには以下の要素が含まれています: * '''README ファイル:''' セットアップ手順、依存関係、使用方法を解説。 * '''コードコメント:''' 各セクションで何をしているかを詳細に記載。 * '''演習:''' 応用力を高めるための追加タスク。 これらのプロジェクトを通じて、.NET の実践的なスキルを深め、現実の開発シナリオに備えることができます。 === ベストプラクティス === 効果的な .NET 開発のためのベストプラクティスを以下にまとめています。これらのガイドラインを参考にすることで、コードの品質向上、保守性の向上、パフォーマンスの最適化、セキュリティの強化を図ることができます。 ==== コーディング規約 ==== # '''命名規則の統一''' #* クラス名やメソッド名は PascalCase を採用する。例: <code>CustomerManager</code> #* ローカル変数やフィールドには camelCase を使用する。例: <code>customerName</code> #* 定数には全て大文字を使用し、単語間はアンダースコアで区切る。例: <code>MAX_RETRY_COUNT</code> # '''コメントの適切な使用''' #* XML コメント (<code>///</code>) を活用して、クラスやメソッドの目的を明確にする。 #* 不要なコメントや、コードの説明が冗長にならないよう注意する。 # '''DRY 原則の遵守''' #* "Don't Repeat Yourself" を徹底し、コードの再利用性を高める。 #* 共通処理はユーティリティクラスや拡張メソッドに切り出す。 ==== アーキテクチャパターン ==== # '''レイヤードアーキテクチャの採用''' #* アプリケーションを明確な層(例: プレゼンテーション層、ビジネスロジック層、データアクセス層)に分割する。 #* 各層が疎結合であることを保ち、インターフェースや依存性注入を活用する。 # '''Clean Architecture''' #* ドメイン層を中心に据え、外部の変更が影響を与えない構造を目指す。 #* エンティティ、ユースケース、インターフェースの順でレイヤーを分離する。 # '''Microservices の利用''' #* 小規模かつ独立したサービスとしてアプリケーションを構築し、スケーラビリティとメンテナンス性を向上させる。 #* サービス間通信には REST API や gRPC を使用する。 ==== セキュリティ ==== # '''入力データの検証''' #* 必要に応じて入力データをサニタイズし、不正なデータの注入を防ぐ(例: SQL インジェクション対策としてパラメータ化クエリを使用)。 #* ASP.NET Core のバリデーション属性(<code>[Required]</code>, <code>[MaxLength]</code> など)を活用する。 # '''認証と認可''' #* 認証には ASP.NET Core Identity または OAuth を使用し、安全な認証フローを構築する。 #* ロールベースまたはポリシーベースの認可を導入する。 # '''セキュリティヘッダーの設定''' #* <code>Content-Security-Policy</code> や <code>Strict-Transport-Security</code> ヘッダーを適切に設定し、アプリケーションを保護する。 #* HTTPS を強制し、TLS 証明書を利用する。 ==== パフォーマンス最適化 ==== # '''非同期プログラミングの活用''' #* 非同期メソッド(<code>async/await</code>)を使用して、スケーラビリティを高める。 #* I/O バウンドの処理には非同期 API を使用する。 # '''キャッシュの有効活用''' #* 頻繁にアクセスされるデータをメモリキャッシュや分散キャッシュ(Redis など)に保存する。 #* HTTP 応答にキャッシュ制御ヘッダーを含める。 # '''パフォーマンスプロファイリング''' #* .NET の診断ツール(<code>dotnet trace</code>, <code>dotnet-counters</code>)を使用してボトルネックを特定する。 #* 不要なリソースの使用を最小限に抑える。 ==== コミュニティ知見とリソース ==== * '''公式ドキュメント''': Microsoft Docs の最新情報を参照。 * '''オープンソースプロジェクト''': GitHub 上の .NET リポジトリを通じて他の開発者の実装例を学ぶ。 * '''ユーザーフォーラム''': Stack Overflow や .NET Foundation のフォーラムで質問や議論を行う。 以上のベストプラクティスを実践することで、堅牢で高性能なアプリケーション開発を行うことができます。 === 参考文献とリソース === .NET 開発に関する最新の技術情報や学習リソース、コミュニティフォーラム、公式ドキュメントなど、開発者が活用できる情報源を以下にまとめます。これらは、学習やスキル向上、最新トレンドの把握に役立つ包括的なリソースとして利用できます。 ==== 公式ドキュメント ==== # '''Microsoft Learn: .NET''' #* .NET 開発に関する詳細な公式ガイド。基礎から高度なトピックまで幅広くカバー。 #* [https://learn.microsoft.com/dotnet https://learn.microsoft.com/dotnet] # '''.NET API Browser''' #* .NET の各種 API リファレンスを検索可能。開発中に役立つ便利なツール。 #* [https://learn.microsoft.com/dotnet/api https://learn.microsoft.com/dotnet/api] ==== 学習リソース ==== # '''プログラミングガイド''' #* C#、F#、VB.NET の基礎や応用テクニックを学べる豊富なガイド。 #* [https://learn.microsoft.com/dotnet/csharp/ https://learn.microsoft.com/dotnet/csharp/] # '''Microsoft Learn のラーニングパス''' #* ハンズオン形式で学べるコースを多数提供。実践的な学習が可能。 #* [https://learn.microsoft.com/training/ https://learn.microsoft.com/training/] # '''書籍''' #* ''C# in Depth''(Jon Skeet 著) #* ''Pro ASP.NET Core''(Adam Freeman 著) #* ''The Pragmatic Programmer''(David Thomas, Andrew Hunt 著)など ==== コミュニティフォーラム ==== # '''Stack Overflow''' #* .NET に関する質問やトラブルシューティングに活用可能な開発者向け Q&A サイト。 #* [https://stackoverflow.com/questions/tagged/.net https://stackoverflow.com/questions/tagged/.net] # '''Reddit: r/dotnet''' #* 開発者コミュニティが集うディスカッションフォーラム。最新ニュースや意見交換の場。 #* [https://www.reddit.com/r/dotnet/ https://www.reddit.com/r/dotnet/] # '''.NET Foundation''' #* オープンソースプロジェクトを支援するコミュニティ。最新イベント情報や開発リソースを提供。 #* [https://dotnetfoundation.org/ https://dotnetfoundation.org/] ==== 開発ツールとライブラリ ==== # '''Visual Studio''' #* Microsoft の公式 IDE。 #* [https://visualstudio.microsoft.com/ https://visualstudio.microsoft.com/] # '''JetBrains Rider''' #* クロスプラットフォーム対応の .NET IDE。軽量かつ高速。 #* [https://www.jetbrains.com/rider/ https://www.jetbrains.com/rider/] # '''NuGet''' #* .NET 用のパッケージマネージャー。数十万のライブラリを利用可能。 #* [https://www.nuget.org/ https://www.nuget.org/] ==== 動画とウェビナー ==== # '''Microsoft .NET YouTube チャンネル''' #* チュートリアルや最新トピックのウェビナーを視聴可能。 #* [https://www.youtube.com/c/dotNET https://www.youtube.com/c/dotNET] # '''Channel 9''' #* Microsoft の開発者向けチャンネル。技術トークやイベント情報が豊富。 #* [https://channel9.msdn.com/ https://channel9.msdn.com/] ==== 最新トレンドとニュース ==== # '''The .NET Blog''' #* Microsoft が運営する公式ブログ。最新リリース情報や技術トピックをカバー。 #* [https://devblogs.microsoft.com/dotnet/ https://devblogs.microsoft.com/dotnet/] # '''InfoQ''' #* ソフトウェア開発の最新トレンドや事例を提供する技術ニュースサイト。 #* [https://www.infoq.com/dotnet/ https://www.infoq.com/dotnet/] # '''X(旧:Twitter)''' #* .NET 関連の公式アカウント([https://twitter.com/dotnet @dotnet])をフォローすることで、リアルタイムの情報を取得可能。 これらのリソースを活用することで、継続的な学習とプロジェクトの成功に役立ててください。 == .NET製品のライフサイクル == 以下は、.NET 製品のライフサイクルをまとめた表です。 :{| class="wikitable" |+ .NET 製品のライフサイクル ! バージョン || リリース日 || 最新パッチバージョン || パッチリリース日 || リリースタイプ || サポートフェーズ || サポート終了日 |- ! .NET 9 | 2024年11月12日 || 9.0.1 || 2025年1月14日 || STS || アクティブ || 2026年5月12日 |- ! .NET 8 | 2023年11月14日 || 8.0.12 || 2025年1月14日 || LTS || アクティブ || 2026年11月10日 |- ! .NET 7 | 2022年11月8日 || 7.0.20 || 2024年5月28日 || STS || 終了 || 2024年5月14日 |- ! .NET 6 | 2021年11月8日 || 6.0.36 || 2024年11月12日 || LTS || 終了 || 2024年11月12日 |- ! .NET 5 | 2020年11月10日 || 5.0.17 || 2022年5月10日 || STS || 終了 || 2022年5月10日 |- ! .NET Core 3.1 | 2019年12月3日 || 3.1.32 || 2022年12月13日 || LTS || 終了 || 2022年12月13日 |- ! .NET Core 3.0 | 2019年9月23日 || 3.0.3 || 2020年2月18日 || STS || 終了 || 2020年3月3日 |- ! .NET Core 2.2 | 2018年12月4日 || 2.2.8 || 2019年11月19日 || STS || 終了 || 2019年12月23日 |- ! .NET Core 2.1 | 2018年5月30日 || 2.1.30 || 2021年8月19日 || LTS || 終了 || 2021年8月21日 |- ! .NET Core 2.0 | 2017年8月14日 || 2.0.9 || 2018年7月10日 || STS || 終了 || 2018年10月1日 |- ! .NET Core 1.1 | 2016年11月16日 || 1.1.13 || 2019年5月14日 || STS || 終了 || 2019年6月27日 |- ! .NET Core 1.0 | 2016年6月27日 || 1.0.16 || 2019年5月14日 || STS || 終了 || 2019年6月27日 |- |colspan=7 style="text-align:right;"|<small>出典:[https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core .NET and .NET Core official support policy &dash; dotnet.microsoft.com] 2025年1月17日閲覧</small> |} === 註釈 === # '''LTS (Long Term Support)''': 長期サポートリリースで、リリース日から3年間サポートされます。 # '''STS (Standard Term Support)''': 短期サポートリリースで、リリース日から18か月間サポートされます。 # サポート終了日は、リリースの種類と「Patch Tuesday(第2火曜日)」に基づいて計算されます。 この表は .NET 製品のサポートポリシーを基に作成されており、最新のパッチを適用することがサポート対象である条件です。 == 下位階層のページ == [[.NET/沿革]] [[.NET/要素技術]] == おわりに == .NETは単なるプログラミングプラットフォームを超えて、現代のソフトウェア開発におけるエコシステムとして進化し続けています。クロスプラットフォーム性、高いパフォーマンス、豊富なライブラリ、そして活発なコミュニティにより、.NETは多様な開発ニーズに応える柔軟で強力な選択肢となっています。 技術の進化は決して止むことはありません。.NET も、開発者のニーズと技術革新に応じて、常に進化し、改良され続けるでしょう。このハンドブックが、.NET の世界への入り口となり、読者の開発旅行の一助となることを願っています。 {{DEFAULTSORT:DOT.NET}} [[Category:.NET|*]] [[Category:ソフトウェア]] m7zf49ow836frty5v22clbtvdugpg0c Express 0 43889 301304 267852 2026-07-08T09:34:31Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301304 wikitext text/x-wiki このハンドブックでは、[[Node.js]] の人気フレームワークである '''Express''' の基本的な使い方から、応用的な内容までを解説します。本稿では、最新の '''ESM (ECMAScript Modules)''' ベースでの記述を採用しています。 == はじめに == '''Express''' は、Node.js 上で動作する軽量で柔軟な Web フレームワークです。高速で、簡潔なコードで Web アプリケーションや API を構築するためのツールを提供します。 * [https://expressjs.com/ 公式サイト] * [https://github.com/expressjs/express GitHubリポジトリ] == Expressのインストール == Express をインストールするには、[[Node.js]] と [[npm]] (Node Package Manager) が必要です。 === インストール手順 === # Node.js がインストールされていることを確認してください。 # 新しいプロジェクトを作成します。 #:<syntaxhighlight lang=shell-session copy> mkdir my-express-app cd my-express-app npm init -y </syntaxhighlight> # Express をインストールします。 #:<syntaxhighlight lang=shell-session copy> npm install express </syntaxhighlight> == 基本的なルーティング == 以下は基本的な Express アプリケーションの例です。 === コード例 === ; hello-app.mjs :<syntaxhighlight lang=js copy> import express from 'express'; const app = express(); const PORT = 3000; // ルートに対するリクエストを処理 app.get('/', (req, res) => { res.send('Hello, World!'); }); // サーバーを起動 app.listen(PORT, () => { console.log(`サーバーが http://localhost:${PORT} で起動しました`); }); </syntaxhighlight> ;サービスを起動 :<syntaxhighlight lang=shell-session copy> node hello-app.mjs </syntaxhighlight> == ミドルウェア == ミドルウェアは、リクエストとレスポンスの処理を拡張するための関数です。Express アプリケーションでは、ミドルウェアを使ってさまざまな機能を追加できます。 === 基本的なミドルウェアの使用例 === ; logging-app.mjs :<syntaxhighlight lang=js copy> import express from 'express'; const app = express(); const PORT = 3000; // リクエストログを出力するミドルウェア app.use((req, res, next) => { console.log(`${req.method} ${req.url}`); next(); }); app.get('/', (req, res) => { res.send('Hello, Middleware!'); }); app.listen(PORT, () => { console.log(`サーバーが http://localhost:${PORT} で起動しました`); }); </syntaxhighlight> == テンプレートエンジン == Express は、HTML を生成するためにテンプレートエンジンと連携できます。以下は EJS を使用する例です。 === 設定例 === # EJS をインストールします。 #:<syntaxhighlight lang=js copy>npm install ejs</syntaxhighlight> # アプリケーションで設定します。 #; ejs-app.mjs #:<syntaxhighlight lang=js copy> import express from 'express'; const app = express(); const PORT = 3000; app.set('view engine', 'ejs'); app.get('/', (req, res) => { res.render('index', { name: 'World' }); }); app.listen(PORT, () => { console.log(`サーバーが http://localhost:${PORT} で起動しました`); }); </syntaxhighlight> # <code>views/index.ejs</code> ファイルを作成します。 #; views/index.ejs #:<syntaxhighlight lang=html copy> <h1>Hello, <%= name %>!</h1> </syntaxhighlight> == 静的ファイルの配信 == 静的ファイル(画像、CSS、JavaScript など)を配信するには、<code>express.static</code> を使用します。 === 設定例 === ; static-app.mjs :<syntaxhighlight lang=js copy> import express from 'express'; import path from 'path'; const app = express(); const PORT = 3000; // 静的ファイルを配信 const __dirname = path.resolve(); app.use(express.static(path.join(__dirname, 'public'))); app.listen(PORT, () => { console.log(`サーバーが http://localhost:${PORT} で起動しました`); }); </syntaxhighlight> == エラー処理 == Express では、エラーハンドリング用のミドルウェアを使用してエラーを処理します。 === 基本例 === ; error-handle-app.mjs :<syntaxhighlight lang=js copy> import express from 'express'; const app = express(); const PORT = 3000; app.get('/', (req, res) => { throw new Error('意図的なエラーです'); }); // エラー処理ミドルウェア app.use((err, req, res, next) => { console.error(err.stack); res.status(500).send('何か問題が発生しました!'); }); app.listen(PORT, () => { console.log(`サーバーが http://localhost:${PORT} で起動しました`); }); </syntaxhighlight> == デプロイ == Express アプリケーションを本番環境にデプロイする方法を解説します。 === Heroku でのデプロイ例 === # Heroku CLI をインストールします。 # アプリケーションを Heroku にプッシュします。 #:<syntaxhighlight lang=js copy> git init heroku create git add . git commit -m "First commit" git push heroku main </syntaxhighlight> == ユーティリティ == Express 関連の便利なユーティリティやライブラリはいくつかあります。それらを利用することで、より効率的にアプリケーションを構築したり、特定の課題を解決できます。以下に主要なユーティリティをいくつか挙げて説明します。 {| class="wikitable" style="margin: 0 auto" |+ Express関連の便利なユーティリティ !ユーティリティ名 !説明 !インストール方法 |- ! [[/express-generator|express-generator]] |Express アプリケーションの雛形を自動生成する公式ツール。 | <syntaxhighlight lang=shell-session inline>npm install -g express-generator</syntaxhighlight> |- ! [[/morgan|morgan]] |HTTP リクエストのログを記録するミドルウェア。 | <syntaxhighlight lang=shell-session inline>npm install morgan</syntaxhighlight> |- ! [[/body-parser|body-parser]] |POSTリクエストのデータ(JSON、URLエンコード形式など)を解析するミドルウェア。 | <syntaxhighlight lang=shell-session inline>npm install body-parser</syntaxhighlight> |- ! [[/cookie-parser|cookie-parser]] |クライアント側のクッキーを解析するミドルウェア。 | <syntaxhighlight lang=shell-session inline>npm install cookie-parser</syntaxhighlight> |- ! [[/express-session|express-session]] |セッション管理を行うためのミドルウェア。 | <syntaxhighlight lang=shell-session inline>npm install express-session</syntaxhighlight> |- ! [[/compression|compression]] |HTTP レスポンスの圧縮を行うミドルウェア。 | <syntaxhighlight lang=shell-session inline>npm install compression</syntaxhighlight> |- ! [[/helmet|helmet]] |セキュリティヘッダーを設定してアプリケーションを保護するミドルウェア。 | <syntaxhighlight lang=shell-session inline>npm install helmet</syntaxhighlight> |- ! [[/cors|cors]] |CORS (クロスオリジンリソースシェアリング) を設定するミドルウェア。 | <syntaxhighlight lang=shell-session inline>npm install cors</syntaxhighlight> |- ! [[/multer|multer]] |ファイルアップロードを処理するためのミドルウェア。 | <syntaxhighlight lang=shell-session inline>npm install multer</syntaxhighlight> |- ! [[/dotenv|dotenv]] |環境変数を <code>.env</code> ファイルから読み込むためのライブラリ。 | <syntaxhighlight lang=shell-session inline>npm install dotenv</syntaxhighlight> |- ! [[/passport|passport]] |ユーザー認証のための柔軟なミドルウェア。 | <syntaxhighlight lang=shell-session inline>npm install passport</syntaxhighlight> |- ! [[/express-validator|express-validator]] |バリデーションとデータのサニタイズを簡単に行うためのミドルウェア。 | <syntaxhighlight lang=shell-session inline>npm install express-validator</syntaxhighlight> |- ! [[/http-errors|http-errors]] |カスタムHTTPエラーを作成するためのライブラリ。 | <syntaxhighlight lang=shell-session inline>npm install http-errors</syntaxhighlight> |- ! [[/serve-static|serve-static]] |静的ファイルを提供するためのミドルウェア(Express に組み込み済み)。 |N/A |} === 各ユーティリティの簡単な使用例 === ==== 1. morgan(リクエストのログ出力) ==== :<syntaxhighlight lang=js copy>import express from 'express'; import morgan from 'morgan'; const app = express(); app.use(morgan('combined')); // ログフォーマットを指定 app.get('/', (req, res) => { res.send('Hello World'); }); app.listen(3000, () => console.log('Server running on port 3000'));</syntaxhighlight> ==== 2. dotenv(環境変数の管理) ==== <code>.env</code> ファイル: :<syntaxhighlight lang=js copy>PORT=3000</syntaxhighlight> <code>server.js</code>: :<syntaxhighlight lang=js copy>import express from 'express'; import dotenv from 'dotenv'; dotenv.config(); // .env ファイルを読み込む const app = express(); const port = process.env.PORT || 3000; app.get('/', (req, res) => { res.send('Hello World'); }); app.listen(port, () => console.log(`Server running on port ${port}`));</syntaxhighlight> ==== 3. cors(CORS設定) ==== :<syntaxhighlight lang=js copy>import express from 'express'; import cors from 'cors'; const app = express(); app.use(cors({ origin: '<nowiki>https://example.com'</nowiki> })); // 特定のオリジンを許可 app.get('/', (req, res) => { res.send('CORS is enabled for <nowiki>https://example.com'</nowiki>); }); app.listen(3000, () => console.log('Server running on port 3000'));</syntaxhighlight> ==== 4. multer(ファイルアップロード) ==== :<syntaxhighlight lang=js copy>import express from 'express'; import multer from 'multer'; const upload = multer({ dest: 'uploads/' }); const app = express(); app.post('/upload', upload.single('file'), (req, res) => { res.send(`File uploaded: ${req.file.filename}`); }); app.listen(3000, () => console.log('Server running on port 3000')); </syntaxhighlight> === 組み合わせた活用例 === 以下は複数のミドルウェアを組み合わせた例です。 :<syntaxhighlight lang=js copy>import express from 'express'; import morgan from 'morgan'; import cors from 'cors'; import bodyParser from 'body-parser'; import cookieParser from 'cookie-parser'; import helmet from 'helmet'; const app = express(); app.use(morgan('dev')); app.use(cors()); app.use(bodyParser.json()); app.use(cookieParser()); app.use(helmet()); app.get('/', (req, res) => { res.send('Hello Secure World'); }); app.listen(3000, () => console.log('Server running on port 3000'));</syntaxhighlight> これらのユーティリティを活用することで、Expressアプリケーションの開発が大幅に効率化されます。用途に応じて適切なものを選び、プロジェクトに導入してください。 == 下位階層のページ == *[[Express/Express 5の主な変更点]] *[[Express/express-generator]] *[[Express/裏技集]] == 参考資料 == * [https://expressjs.com/ Express公式ドキュメント] * [https://www.npmjs.com/ npm公式サイト] * [https://nodejs.org/ Node.js公式サイト] {{DEFAULTSORT:EXPRESS}} [[Category:Express|*]] [[Category:Node.js]] [[Category:JavaScript]] [[Category:フレームワーク]] ip4h8m3n0nx8glxlriicgmwv98h5lvg GTK 0 43954 301307 266488 2026-07-08T09:48:18Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301307 wikitext text/x-wiki == はじめに == '''GTK'''(GIMP Toolkit)は、クロスプラットフォームのGUIツールキットです。このハンドブックでは、GTKの基本概念から実践的な使用方法まで解説します。 このハンドブックでは特記ない限り、[[C言語]]バインディングのAPIのコードを紹介します。 == 基本概念 == === ウィジェット階層 === GTKのGUIは、ウィジェットの階層構造で構成されます: # トップレベルウィンドウ # コンテナウィジェット # 基本ウィジェット # カスタムウィジェット === シグナルとイベント === * シグナル:ウィジェットの状態変化を通知 * イベント:ユーザー入力や外部からの通知 * コールバック:シグナルやイベントに対する処理 == 基本的なウィジェット == === ウィンドウ関連 === :<syntaxhighlight lang=c copy> // メインウィンドウの作成 GtkWidget *window = gtk_window_new(); gtk_window_set_title(GTK_WINDOW(window), "Example"); gtk_window_set_default_size(GTK_WINDOW(window), 400, 300); </syntaxhighlight> === コンテナウィジェット === * Box:水平/垂直のレイアウト * Grid:格子状のレイアウト * Paned:分割可能なコンテナ * Notebook:タブ付きコンテナ === 基本的な入力ウィジェット === * Button:クリック可能なボタン * Entry:一行テキスト入力 * TextView:複数行テキスト入力 * CheckButton:チェックボックス * RadioButton:ラジオボタン == レイアウト管理 == === Boxレイアウト === :<syntaxhighlight lang=c copy> GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5); gtk_box_append(GTK_BOX(box), button1); gtk_box_append(GTK_BOX(box), button2); </syntaxhighlight> === Gridレイアウト === :<syntaxhighlight lang=c copy> GtkWidget *grid = gtk_grid_new(); gtk_grid_attach(GTK_GRID(grid), widget1, 0, 0, 1, 1); gtk_grid_attach(GTK_GRID(grid), widget2, 1, 0, 1, 1); </syntaxhighlight> == イベント処理 == === シグナルの接続 === :<syntaxhighlight lang=c copy> g_signal_connect(button, "clicked", G_CALLBACK(on_button_clicked), NULL); void on_button_clicked(GtkButton *button, gpointer user_data) { // クリック時の処理 } </syntaxhighlight> === イベントコントローラー === :<syntaxhighlight lang=c copy> GtkEventController *controller = gtk_event_controller_key_new(); gtk_widget_add_controller(widget, controller); </syntaxhighlight> == スタイリング == === CSSの適用 === :<syntaxhighlight lang=c copy> GtkCssProvider *provider = gtk_css_provider_new(); gtk_css_provider_load_from_data(provider, "button { background: red; }", -1); </syntaxhighlight> === テーマの設定 === :<syntaxhighlight lang=c copy> g_object_set(gtk_settings_get_default(), "gtk-theme-name", "Adwaita", NULL); </syntaxhighlight> == ダイアログとポップアップ == === メッセージダイアログ === :<syntaxhighlight lang=c copy> GtkWidget *dialog = gtk_message_dialog_new( parent_window, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Message" ); </syntaxhighlight> === ファイル選択ダイアログ === :<syntaxhighlight lang=c copy> GtkWidget *dialog = gtk_file_chooser_dialog_new( "Open File", parent_window, GTK_FILE_CHOOSER_ACTION_OPEN, "_Cancel", GTK_RESPONSE_CANCEL, "_Open", GTK_RESPONSE_ACCEPT, NULL ); </syntaxhighlight> == データモデルとビュー == === ListStore === :<syntaxhighlight lang=c copy> GtkListStore *store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT); gtk_list_store_insert_with_values(store, NULL, -1, 0, "Item", 1, 42, -1); </syntaxhighlight> === TreeView === :<syntaxhighlight lang=c copy> GtkWidget *view = gtk_tree_view_new_with_model( GTK_TREE_MODEL(store)); GtkTreeViewColumn *column = gtk_tree_view_column_new(); gtk_tree_view_append_column(GTK_TREE_VIEW(view), column); </syntaxhighlight> == メニューとツールバー == === メニューバー === :<syntaxhighlight lang=c copy> GMenu *menu = g_menu_new(); g_menu_append(menu, "New", "app.new"); g_menu_append(menu, "Open", "app.open"); </syntaxhighlight> === ツールバー === :<syntaxhighlight lang=c copy> GtkWidget *toolbar = gtk_toolbar_new(); GtkToolItem *new_button = gtk_tool_button_new(NULL, "New"); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), new_button, -1); </syntaxhighlight> == アプリケーション設定 == === GSettings === :<syntaxhighlight lang=c copy> GSettings *settings = g_settings_new("org.example.app"); g_settings_set_string(settings, "username", "user"); </syntaxhighlight> === キーバインディング === :<syntaxhighlight lang=c copy> gtk_application_set_accels_for_action(GTK_APPLICATION(app), "app.quit", {"<Ctrl>Q", NULL}); </syntaxhighlight> == 非同期処理 == === GTask === :<syntaxhighlight lang=c copy> void do_async_operation(GTask *task) { // 非同期処理 g_task_return_boolean(task, TRUE); } g_task_new(NULL, NULL, callback, user_data); </syntaxhighlight> == デバッグとプロファイリング == === GTKインスペクタ === :<syntaxhighlight lang=bash copy> GTK_DEBUG=interactive ./application </syntaxhighlight> === メモリプロファイリング === :<syntaxhighlight lang=bash copy> G_DEBUG=gc-friendly G_SLICE=always-malloc valgrind ./application </syntaxhighlight> == パフォーマンス最適化 == === ウィジェットのキャッシュ === :<syntaxhighlight lang=c copy> static GtkWidget *cached_widget = NULL; if (!cached_widget) { cached_widget = create_complex_widget(); } </syntaxhighlight> === レンダリング最適化 === :<syntaxhighlight lang=c copy> gtk_widget_set_double_buffered(widget, TRUE); </syntaxhighlight> == セキュリティ考慮事項 == * 入力のバリデーション * ファイルアクセスの制限 * 権限の適切な管理 == ベストプラクティス == # 一貫したコーディングスタイル # 適切なエラー処理 # リソースの適切な解放 # モジュール化と再利用性 # ドキュメント化 == トラブルシューティング == 一般的な問題と解決方法: # シグナル接続の失敗 # メモリリーク # ウィジェットの表示問題 # イベント処理の問題 == まとめ == GTKは強力で柔軟なGUIツールキットです。基本概念を理解し、適切な実装方法を選択することで、効率的なアプリケーション開発が可能になります。 == 下位階層のページ == *[[GTK/GTK3とGTK4の比較]] *[[GTK/GTKプログラミング言語バインディング]] {{DEFAULTSORT:GTK}} [[Category:GTK|*]] [[Category:GUIツールキット]] dg86hscv26l719sfnbljqjrjq1q4tkq GUIツールキット 0 43959 301308 267859 2026-07-08T09:49:18Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301308 wikitext text/x-wiki == はじめに == '''GUIツールキット'''は、グラフィカルユーザーインターフェースの開発を可能にするライブラリやフレームワークのコレクションです。 == 主要なGUIツールキット == === Qt === * クロスプラットフォーム * C++ベース * 豊富なウィジェット * 独自のシグナル/スロットシステム ; 例: :<syntaxhighlight lang=cpp copy> #include <QApplication> #include <QMainWindow> auto main(int argc, char *argv[]) -> int { QApplication app(argc, argv); QMainWindow window; window.show(); return app.exec(); } </syntaxhighlight> === GTK === * GNOMEデスクトップの標準 * C言語ベース * 多言語バインディング * GObjectシステム ; 例: :<syntaxhighlight lang=c copy> #include <gtk/gtk.h> int main(int argc, char *argv[]) { gtk_init(&argc, &argv); GtkWidget *window = gtk_window_new(); gtk_widget_show(window); gtk_main(); return 0; } </syntaxhighlight> === wxWidgets === * ネイティブルック&フィール * C++ベース * 豊富なプラットフォームサポート ; 例: :<syntaxhighlight lang=cpp copy> #include <wx/wx.h> class MyApp: public wxApp { public: auto OnInit() -> bool { wxFrame *frame = new wxFrame(NULL, wxID_ANY, "Hello"); frame->Show(true); return true; } }; wxIMPLEMENT_APP(MyApp); </syntaxhighlight> === Xm (Motif ツールキット) === * クロスプラットフォーム(主にUNIX系) * C言語ベース * 伝統的なデザイン * ウィジェットライブラリの一部として標準的なGUIコンポーネントを提供 ; 例: :<syntaxhighlight lang=c copy> #include <Xm/Xm.h> #include <Xm/PushB.h> void on_button_click(Widget widget, XtPointer client_data, XtPointer call_data) { printf("Button clicked!\n"); } int main(int argc, char *argv[]) { XtAppContext app_context; Widget top_wid, push_button; top_wid = XtVaAppInitialize(&app_context, "XmExample", NULL, 0, &argc, argv, NULL, NULL); push_button = XmCreatePushButton(top_wid, "Push Me", NULL, 0); XtManageChild(push_button); XtAddCallback(push_button, XmNactivateCallback, on_button_click, NULL); XtRealizeWidget(top_wid); XtAppMainLoop(app_context); return 0; } </syntaxhighlight> === Xaw (Athena Widget Set) === * 軽量なウィジェットセット * C言語ベース * X Window System向け * シンプルで構造化されたGUIコンポーネント ; 例: :<syntaxhighlight lang=c copy> #include <X11/Intrinsic.h> #include <X11/StringDefs.h> #include <X11/Xaw/Command.h> #include <X11/Xaw/Box.h> void on_button_click(Widget widget, XtPointer client_data, XtPointer call_data) { printf("Button clicked!\n"); } int main(int argc, char *argv[]) { XtAppContext app_context; Widget top_wid, box, button; top_wid = XtVaAppInitialize(&app_context, "XawExample", NULL, 0, &argc, argv, NULL, NULL); box = XtVaCreateManagedWidget("box", boxWidgetClass, top_wid, NULL); button = XtVaCreateManagedWidget("Push Me", commandWidgetClass, box, NULL); XtAddCallback(button, XtNcallback, on_button_click, NULL); XtRealizeWidget(top_wid); XtAppMainLoop(app_context); return 0; } </syntaxhighlight> === Xt (X Toolkit Intrinsics) === * X Window Systemの基盤ライブラリ * C言語ベース * 他のウィジェットライブラリ(Motif, Xaw)の基礎 * イベント駆動型GUIプログラムの構築を支援 ; 例: :<syntaxhighlight lang=c copy> #include <X11/Intrinsic.h> #include <X11/StringDefs.h> void on_expose(Widget widget, XtPointer client_data, XEvent *event, Boolean *continue_to_dispatch) { printf("Expose event triggered!\n"); } int main(int argc, char *argv[]) { XtAppContext app_context; Widget top_wid; top_wid = XtVaAppInitialize(&app_context, "XtExample", NULL, 0, &argc, argv, NULL, NULL); XtAddEventHandler(top_wid, ExposureMask, False, on_expose, NULL); XtRealizeWidget(top_wid); XtAppMainLoop(app_context); return 0; } </syntaxhighlight> == 基本コンポーネント == === ウィンドウ管理 === * メインウィンドウ * ダイアログ * ポップアップ * モーダルウィンドウ === レイアウト管理 === * 垂直/水平ボックス * グリッドレイアウト * フレックスレイアウト * アンカーレイアウト === 基本ウィジェット === # ボタン # テキスト入力 # ラベル # チェックボックス # ラジオボタン # コンボボックス === 高度なウィジェット === # ツリービュー # テーブル # タブコントロール # プログレスバー # スライダー == イベント処理 == === イベントモデル === :<syntaxhighlight lang=cpp copy> // Qt例 connect(button, &QPushButton::clicked, this, &MyClass::handleClick); // GTK例 g_signal_connect(button, "clicked", G_CALLBACK(handle_click), NULL); </syntaxhighlight> === シグナル/スロット === :<syntaxhighlight lang=cpp copy> class MyWidget : public QWidget { Q_OBJECT public slots: void handleEvent(); signals: void eventOccurred(); }; </syntaxhighlight> == スタイリング == === CSS統合 === :<syntaxhighlight lang=css copy> /* QSSスタイル (Qt) */ QPushButton { background-color: #4CAF50; color: white; border-radius: 4px; } /* GTKスタイル */ button { background-color: #4CAF50; color: white; border-radius: 4px; } </syntaxhighlight> === テーマ設定 === :<syntaxhighlight lang=cpp copy> // Qt app.setStyle("Fusion"); // GTK gtk_style_context_add_provider_for_display(display, provider, priority); </syntaxhighlight> == データバインディング == === モデル/ビューアーキテクチャ === :<syntaxhighlight lang=cpp copy> // Qtの例 QStringListModel *model = new QStringListModel(); QListView *view = new QListView(); view->setModel(model); </syntaxhighlight> === プロパティバインディング === :<syntaxhighlight lang=cpp copy> // Qt QObject::connect(source, SIGNAL(valueChanged(int)), target, SLOT(setValue(int))); </syntaxhighlight> == グラフィックスとアニメーション == === 2Dグラフィックス === :<syntaxhighlight lang=cpp copy> void paintEvent(QPaintEvent *) { QPainter painter(this); painter.drawRect(10, 10, 100, 100); } </syntaxhighlight> === アニメーション === :<syntaxhighlight lang=cpp copy> QPropertyAnimation *animation = new QPropertyAnimation(widget, "geometry"); animation->setDuration(1000); animation->setStartValue(QRect(0, 0, 100, 100)); animation->setEndValue(QRect(200, 200, 100, 100)); </syntaxhighlight> == 国際化 == === 文字列の翻訳 === :<syntaxhighlight lang=cpp copy> // Qt QString text = tr("Hello World"); // GTK char *text = _("Hello World"); </syntaxhighlight> === ロケール設定 === :<syntaxhighlight lang=cpp copy> QLocale::setDefault(QLocale(QLocale::Japanese)); </syntaxhighlight> == アクセシビリティ == === スクリーンリーダーサポート === :<syntaxhighlight lang=cpp copy> widget->setAccessibleName("Button Description"); widget->setAccessibleDescription("Detailed description"); </syntaxhighlight> === キーボードナビゲーション === :<syntaxhighlight lang=cpp copy> widget->setFocusPolicy(Qt::StrongFocus); widget->setTabOrder(widget1, widget2); </syntaxhighlight> == パフォーマンス最適化 == === レンダリング最適化 === :<syntaxhighlight lang=cpp copy> // ダブルバッファリング widget->setAttribute(Qt::WA_DoubleBuffered); // 部分更新 widget->update(rect); </syntaxhighlight> === メモリ管理 === :<syntaxhighlight lang=cpp copy> // オブジェクト所有権 widget->setParent(parent); QScopedPointer<QWidget> widget(new QWidget); </syntaxhighlight> == デバッグとテスト == === デバッグツール === :<syntaxhighlight lang=cpp copy> // Qtデバッグ出力 qDebug() << "Debug message"; qWarning() << "Warning message"; </syntaxhighlight> === ユニットテスト === :<syntaxhighlight lang=cpp copy> class TestGui : public QTest { Q_OBJECT private slots: void testButton() { QTest::mouseClick(button, Qt::LeftButton); QCOMPARE(result, expected); } }; </syntaxhighlight> == クロスプラットフォーム対応 == === プラットフォーム固有のコード === :<syntaxhighlight lang=cpp copy> #ifdef Q_OS_WIN // Windowsの場合 #elif defined(Q_OS_MAC) // macOSの場合 #else // その他のプラットフォーム #endif </syntaxhighlight> === 環境検出 === :<syntaxhighlight lang=cpp copy> if (QSysInfo::productType() == "windows") { // Windows固有の処理 } </syntaxhighlight> == まとめ == GUIツールキットは現代のアプリケーション開発に不可欠なツールです。主要な考慮点: # 適切なツールキットの選択 # プラットフォーム要件の理解 # パフォーマンスとメモリ管理 # アクセシビリティとユーザビリティ # テストと品質保証 これらの要素を適切に考慮することで、高品質なGUIアプリケーションを開発できます。 == 下位階層のページ == *[[GUIツールキット/ChromeOS]] *[[GUIツールキット/フレームワークとの違い]] *[[GUIツールキット/概論]] *[[GUIツールキット/歴史]] {{DEFAULTSORT:GUIつるきつと}} [[Category:GUIツールキット|*]] [[Category:プログラミング]] 6626x6lcdrnn8e2gpjprzestkotaxul HTTP 0 44471 301314 268272 2026-07-08T11:22:26Z AkiR27User 90873 /* 下位階層のページ */ テンプレート削除、直接リンク追加。詳細は[[Wikibooks:談話室#孤立しているページについて]]まで 301314 wikitext text/x-wiki [[HTTP]](Hypertext Transfer Protocol)は、インターネット上でウェブページを表示するために使用される通信プロトコルです。クライアント(通常はウェブブラウザ)がサーバーにリクエストを送信し、サーバーがレスポンスを返すことで、ウェブページやその他のリソースが表示される仕組みです。HTTPは、リクエストとレスポンスの形式で情報を交換し、ウェブコンテンツを取得・表示するための基本的な通信手段です。 以下は、'''[[HTTP/1.0]]'''、'''[[HTTP/1.1]]'''、'''[[HTTP/2]]'''、'''[[HTTP/3]]''' の比較表です。各プロトコルの主要な特徴や違いをまとめています。 == [[HTTP/1.0]]、[[HTTP/1.1]]、[[HTTP/2]]、[[HTTP/3]] の比較表 == {| class="wikitable" ! 特徴 || [[HTTP/1.0]] || [[HTTP/1.1]] || [[HTTP/2]] || [[HTTP/3]] |- ! リリース年 | 1996 || 1999 || 2015 || 2020 |- ! プロトコル形式 | テキストベース || テキストベース || バイナリベース || バイナリベース |- ! 接続モデル | 非持続的接続(1リクエストごとに接続と切断) || 持続的接続(複数リクエストを1接続で処理) || 持続的接続 + 多重化 || 持続的接続 + 多重化 |- ! 多重化 | 非対応 || 非対応 || 対応(単一接続で複数ストリームを並行処理) || 対応(QUICプロトコルによる高度な多重化) |- ! ヘッダー圧縮 | 非対応 || 非対応 || 対応(HPACKアルゴリズム) || 対応(QPACKアルゴリズム) |- ! サーバープッシュ | 非対応 || 非対応 || 対応(サーバーがクライアントにリソースをプッシュ) || 対応 |- ! パイプライン処理 | 非対応 || 対応(理論上は可能だが実用的でない) || 不要(多重化により解決) || 不要 |- ! トランスポート層 | TCP || TCP || TCP || QUIC(UDPベース) |- ! セキュリティ | オプション(HTTPSは別途設定) || オプション(HTTPSは別途設定) || 事実上必須(TLSを前提) || 必須(TLSが組み込まれている) |- ! レイテンシ | 高い(接続のオーバーヘッドが大きい) || 中程度(持続的接続で改善) || 低い(多重化とヘッダー圧縮による) || 非常に低い(QUICの効率的な設計) |- ! エラー回復 | 低速(TCPの再送信に依存) || 低速(TCPの再送信に依存) || 低速(TCPの再送信に依存) || 高速(QUICのパケット再送信が独立) |- ! ユースケース | シンプルなWebサイト || 一般的なWebサイトやAPI || 高トラフィックサイト、リアルタイムアプリ || モバイルアプリ、高パフォーマンスWeb |} === 各プロトコルの主な特徴 === # '''[[HTTP/1.0]]''' #* シンプルで基本的なプロトコル。 #* 1リクエストごとに接続を確立し、レスポンス後に切断するため、オーバーヘッドが大きい。 #* キャッシュ制御やホストヘッダーが未対応。 # '''[[HTTP/1.1]]''' #* 持続的接続を導入し、1つのTCP接続で複数のリクエストを処理可能。 #* ホストヘッダーが必須化され、仮想ホストをサポート。 #* キャッシュ制御が強化されたが、ヘッダー圧縮や多重化は未対応。 # '''[[HTTP/2]]''' #* バイナリプロトコルに変更され、効率的なデータ転送を実現。 #* ストリームの多重化により、単一接続で複数リクエストを並行処理。 #* ヘッダー圧縮([[HPACK]])とサーバープッシュをサポート。 # '''[[HTTP/3]]''' #* [[QUIC]]プロトコルを採用し、UDPベースで通信。 #* [[TCP]]の制約を排除し、パケットロスやネットワーク切り替え時のレイテンシを大幅に改善。 #* [[TLS]]が組み込まれており、セキュリティが強化。 === 比較のポイント === * '''パフォーマンス''': [[HTTP/1.0]] < [[HTTP/1.1]] < [[HTTP/2]] < [[HTTP/3]] * '''セキュリティ''': [[HTTP/1.0]]・[[HTTP/1.1]](オプション) < [[HTTP/2]]・[[HTTP/3]](必須) * '''複雑さ''': [[HTTP/1.0]](シンプル) < [[HTTP/1.1]] < [[HTTP/2]] < [[HTTP/3]](高度) === どのプロトコルを選ぶべきか? === * '''レガシーシステム''': [[HTTP/1.1]] * '''一般的なWebサイト''': [[HTTP/2]] * '''高パフォーマンスが必要な場合''': [[HTTP/3]] この比較表を参考に、プロジェクトの要件に応じて適切なHTTPプロトコルを選択してください。[[HTTP/3]]は、特にモバイル環境や高トラフィックサイトでその真価を発揮します。 == 下位階層のページ == *[[HTTP/0.9]] *[[HTTP/1.0]] *[[HTTP/1.1]] *[[HTTP/2]] *[[HTTP/3]] {{DEFAULTSORT:HTTP}} [[Category:プロトコル]] 88ubic7bt00k0tsx6pey95u1zenoqhh 立木ニ関スル法律 0 48467 301274 2026-07-07T16:15:10Z Fukupow 34984 新規作成 301274 wikitext text/x-wiki [[法学]]>[[民事法]]>[[コンメンタール]]>[[立木ニ関スル法律]] {{Wikipedia|立木ニ関スル法律}} 立木ニ関スル法律(明治42年4月5日法律第22号<ref>{{Cite book |和書 |title=官報 |volume=第七千七百二十九号 |publisher=印刷局 |date=1909-04-05 |pages=79-80 |url=https://dl.ndl.go.jp/pid/2951079}}</ref>、最終改正:平成16年6月18日法律第124号)の逐条解説書。 ==目次== ===本則=== *[[立木ニ関スル法律第1条|第1条]] *[[立木ニ関スル法律第2条|第2条]] *[[立木ニ関スル法律第3条|第3条]] *[[立木ニ関スル法律第4条|第4条]] *[[立木ニ関スル法律第5条|第5条]] *[[立木ニ関スル法律第6条|第6条]] *[[立木ニ関スル法律第7条|第7条]] *[[立木ニ関スル法律第8条|第8条]] *[[立木ニ関スル法律第9条|第9条]] *[[立木ニ関スル法律第10条|第10条]] *[[立木ニ関スル法律第11条|第11条]] *[[立木ニ関スル法律第12条|第12条]] *[[立木ニ関スル法律第13条|第13条]] *[[立木ニ関スル法律第14条|第14条]] *[[立木ニ関スル法律第15条|第15条]] *[[立木ニ関スル法律第16条|第16条]] *[[立木ニ関スル法律第17条|第17条]] *[[立木ニ関スル法律第18条|第18条]] *[[立木ニ関スル法律第19条|第19条]] *[[立木ニ関スル法律第20条|第20条]] *[[立木ニ関スル法律第21条|第21条]] ===制定附則=== 本法施行ノ期日ハ勅令ヲ以テ之ヲ定ム ==関連条文== * [[立木ノ先取特権ニ関スル法律]] ==脚注== {{reflist}} ==外部リンク== * [https://laws.e-gov.go.jp/law/142AC0000000022 明治四十二年法律第二十二号(立木ニ関スル法律) | e-Gov 法令検索] {{stub|law}} {{DEFAULTSORT:りゆうほくにかんするほうりつ}} [[category:コンメンタール]] [[category:立木ニ関スル法律|*]] mwpvxpq9vb5hle7vu27yrq2mush5a7s 立木ニ関スル法律第1条 0 48468 301275 2026-07-07T16:15:18Z Fukupow 34984 新規作成 301275 wikitext text/x-wiki {{Pathnav|法学|民事法|コンメンタール|立木ニ関スル法律|frame=1}} ==条文== ; 第1条 # 本法ニ於テ立木ト称スルハ1筆ノ土地又ハ1筆ノ土地ノ一部分ニ生立スル樹木ノ集団ニシテ其ノ所有者カ本法ニ依リ所有権保存ノ登記ヲ受ケタルモノヲ謂フ # 前項ノ樹木ノ集団ノ範囲ハ勅令ヲ以テ之ヲ定ム : <small>(昭和6年3月31日法律第22号<ref>{{Cite book |和書 |title=官報 |volume=第千二百七十四号 |publisher=印刷局 |date=1931-04-01 |page=4 |url=https://dl.ndl.go.jp/pid/2957742}}</ref>改正)</small> ===改正経緯=== ====明治42年4月5日法律第22号==== ; 第1条 : 本法ニ於テ立木ト称スルハ1筆ノ土地又ハ1筆ノ土地ノ一部分ニ植栽ニ依リ生立セシメタル樹木ノ集団ニシテ其ノ所有者カ本法ニ依リ所有権保存ノ登記ヲ受ケタルモノヲ謂フ ==解説== 本条は、本法における「'''{{ruby|立木|りゅうぼく}}'''<ref>{{Cite book |和書 |title=必携法令難語辞典 |date=1989-07-01 |publisher=三省堂 |page=237 |isbn=4-385-15294-2}}</ref>」について規定している。 本法にいう「立木」とは、1筆の土地または1筆の土地の一部分に生えている樹木の集団で、所有者が本法の手続きにより、所有権の保存の登記を受けたものをいう。 所有権の保存の登記をした樹木の集団は、立木として1個の不動産とみなされ、土地と分離して譲渡したり、抵当権の目的としたりすることができるようになる<ref>{{Cite web |url=https://houmukyoku.moj.go.jp/homu/content/000130962.pdf |title=登記所には登記簿(登記記録)のほかにどのような帳簿や図面が備え付けられているのですか? |publisher=法務局 |accessdate=2026-07-08}}</ref>。 2項の勅令は、「昭和7年勅令第12号(明治42年法律第22号第1条第2項ノ規定ニ依リ樹木ノ集団ノ範囲ヲ定ムルノ件)<ref>{{Cite web |url=https://laws.e-gov.go.jp/law/307IO0000000012 |title=昭和七年勅令第十二号(明治四十二年法律第二十二号第一条第二項ノ規定ニ依リ樹木ノ集団ノ範囲ヲ定ムルノ件) |publisher=e-Gov 法令検索 |accessdate=2026-07-08}}</ref>」を指す。 ==参照条文== * [[明治42年法律第22号第1条第2項ノ規定ニ依リ樹木ノ集団ノ範囲ヲ定ムルノ件第1条]] * [[明治42年法律第22号第1条第2項ノ規定ニ依リ樹木ノ集団ノ範囲ヲ定ムルノ件第2条]] * [[明治42年法律第22号第1条第2項ノ規定ニ依リ樹木ノ集団ノ範囲ヲ定ムルノ件別表]] == 脚注 == {{reflist}} == 参考文献 == ---- {{前後 |[[立木ニ関スル法律]] | |- |[[立木ニ関スル法律第2条|第2条]] }} {{stub|law}} [[category:立木ニ関スル法律|01]] 7tc91xqh4xkjg4pzlj4sx6hn394bka4 利用者:Lin Xiangru 2 48469 301277 2026-07-07T17:00:12Z Lin Xiangru 52825 /* */ 301277 wikitext text/x-wiki '''Lin Xiangru'''です。ユーザーネームは[[藺相如]]の英語表記で、そのうち最初の部分をとって'''りん'''と自称しています。いろいろ未熟で迷惑をかけてしまうこともあるかと思いますが、よろしくお願いします。 == 自己紹介 == 主に日本語版ウィキペディアにて活動しています。そちらでは、主に日本史の記事を編集しています。 中の人は、化学を専攻している学部生です。ウィキブックスでの編集は大学化学が中心になるかと思います。 f2nxoustb06q4141n04kd0mx2t5s240 運動会 0 48470 301289 2026-07-08T07:29:15Z AkiR27User 90873 ページの作成:「{{Pathnav|ゲーム|frame=1}} {{Wikipedia}} 運動会は、体を動かし、協力や競争を楽しみながら体験することを、学校や地域で行う行事です。 生徒は、仲間との関係を深めたり、達成感を味わうことができます。 == 進行 == {{Main|/進行}} == 競技 == '''種目''' *[[徒競走]] *[[かけっこ]] *[[リレー]] *[[二人三脚(運動会)]] *[[綱引き]] *[[玉入れ]] *[[借り物競争]] *ムカ…」 301289 wikitext text/x-wiki {{Pathnav|ゲーム|frame=1}} {{Wikipedia}} 運動会は、体を動かし、協力や競争を楽しみながら体験することを、学校や地域で行う行事です。 生徒は、仲間との関係を深めたり、達成感を味わうことができます。 == 進行 == {{Main|/進行}} == 競技 == '''種目''' *[[徒競走]] *[[かけっこ]] *[[リレー]] *[[二人三脚(運動会)]] *[[綱引き]] *[[玉入れ]] *[[借り物競争]] *[[ムカデ競争]] *[[大縄跳び]] *[[応援合戦]] *[[パン食い競走]] *[[騎馬戦]] *[[団体演技]] == 安全と配慮 == {{Main|/安全と配慮}} [[Category:ゲーム]] {{DEFAULTSORT:うんとうかい}} [[Category:運動会|*]] mtc4wjo2j8pu67decc9533x4zft99u9 団体演技 0 48471 301291 2026-07-08T07:50:17Z AkiR27User 90873 ページの作成:「{{Pathnav|ゲーム|frame=1}} {{wikipedia}} 団体演技は、沢山の参加者が動きをそろえながら表現を行う競技で、運動会の中でも特に一体感と美しさがある種目です。 道具を使ったりしながら、チーム全体でひとつの作品を作り上げます。 == 所要 == '''用意''' *道具(必要に応じて) **ポンポン **旗 **布など '''人数''' *学年で行うことが多い == 団体競技 == 以下の…」 301291 wikitext text/x-wiki {{Pathnav|ゲーム|frame=1}} {{wikipedia}} 団体演技は、沢山の参加者が動きをそろえながら表現を行う競技で、運動会の中でも特に一体感と美しさがある種目です。 道具を使ったりしながら、チーム全体でひとつの作品を作り上げます。 == 所要 == '''用意''' *道具(必要に応じて) **ポンポン **旗 **布など '''人数''' *学年で行うことが多い == 団体競技 == 以下のものが多いです *ダンス *フラッグ *ポンポン *大布 *フォーメーションダンス *パラシュート *ボール *リボン *組体操 == ルール == *隊形の移動はゆっくり行います *道具は正しく丁寧に扱います *音楽に合わせて動きを揃えます *ほかの人の動きを妨げません *係や指導者の指示に従います == コツ == 揃える意識を持つ *細かい部分も合わせると、演技が美しくなります 移動を正確に行う *ぶつかったり、乱れるのを防げて、安全性が上がります どう見えるかを意識する *見栄えを意識すると完成度が上がります 声かけを意識する *声を掛け合うことで全体の動きがそろいやすくなります 表情も意識する *笑顔や明るい表情が演技の印象を上げます {{DEFAULTSORT:たんたいきようき}} [[Category:ゲーム]] [[Category:運動会]] r5ydunblt149z9zywaiot0w71569bve