
【IT】Linuxを生み出したリーナス・トーバルズが考える「優れたコード」とは何か?

- 1
【朝日ネット調査】都議選投票先 自民最多維持、都民ファ増、国民微減1 : 2025/06/19(木) 21:59:47.25 ID:3axjoYdl9 東京都議選(6月22日投開票)について、朝日新聞社はインターネットによる第3回トレンド調査を18、19両日に実施...
- 2
日本では「ダメ。ゼッタイ。」だけど…アメリカ政府が後押し、「医療大麻」がシニア層に広がる”本当の理由”1 : 2025/06/19(木) 22:36:23.86 ID:cXaG9F8v9 https://news.yahoo.co.jp/articles/2a8304ac27d2a87bc3b590...
- 3
【中東情勢】イランがホルムズ海峡封鎖なら…原油ルートの8割を依存する日本はGDP3%減も1 : 2025/06/19(木) 22:27:20.72 ID:+Iprf9Vl9 ※6/19(木) 21:09 産経ニュース イスラエルとイランの交戦が続く中、イスラエルに攻撃されたイランが報復...
- 4
【調査】「東京の若者は万博に行きたがらない」なぜ?都民「中央線沿いに住んでいると…」意外な理由が明らかに1 : 2025/06/19(木) 21:44:32.81 ID:+Iprf9Vl9 ※2025.6.19 TRILL 少し外出すれば、生活に必要なものの大部分が揃う「東京」。大きなイベントごとも、...
- 5
日本人はIQが高いけど、ギフテッドを活かせていないよな?1 : 2025/06/19(木) 20:52:35.30 ID:pWWUlK5y0 ●第1位:日本(平均IQ 106.48) 2025年版ランキングでトップに立ったのは日本。平均IQは106.4...
- 6
農家さん、カンボジア人技能実習生をレイプし中絶を強要。「誰かに話せば帰国させる」と脅す1 : 2025/06/19(木) 21:40:33.37 ID:UZOUDTL40 栃木県内のイチゴ農園で働いていたカンボジア人技能実習生の女性(23)が、農園の男性経営者(58)に繰り返し性的暴...
- 7
箕輪氏「中川翔子にスイッチをあげたのは私だ!」→「やっぱ嘘あげてない」。謎の糞ムーブをかます1 : 2025/06/19(木) 21:43:19.79 ID:ukwyYy7V0 中川翔子の元マネジャー 箕輪厚介氏の言動に苦言「クソofクソofクソ」 箕輪氏は18日、自身のユーチューブチャン...
- 8
ソープランドで売春場所を提供 経営者に有罪判決 3年弱で9億円以上の収益1 名前:押しボタン式の匿名希望者 投稿日時:2025/06/19(木) 21:18:52.25 ID:3qg8giYd0 千葉市中央区のソープランドで女性に売春場所を提供したとして、売春防止法違...
- 9
安芸高田市 前市長の発言巡る裁判の賠償金 石丸伸二前市長への請求を検討 広島1 名前:押しボタン式の匿名希望者 投稿日時:2025/06/19(木) 20:40:41.21 ID:McjU1qwP9 広島県安芸高田市の石丸伸二前市長が、在任中、議会での発言やSNSの投稿で市...
- 10
【小泉進次郎農相】「牛丼もぐもぐ」「昼食パクパク」「おにぎりムシャムシャ」動画3部作1 名前:押しボタン式の匿名希望者 投稿日時:2025/06/19(木) 21:28:05.00 ID:+Iprf9Vl9 ※6/19(木) 21:19 日刊スポーツ 小泉進次郎農相のX投稿がネット...
- 11
原因はヌルポ。Google Cloudの大規模障害、原因は管理システムのヌルポインタ参照原因はヌルポ。Google Cloudの大規模障害、原因は管理システムのヌルポインタ参照 ニュース・噂話まとめ
- 12
タクシーがバックする→旗を掲げるポールに衝突→ポールが倒れる→先生の頭に命中→先生死亡タクシーがバックする→旗を掲げるポールに衝突→ポールが倒れる→先生の頭に命中→先生死亡 ネギ速
- 13
【新潟】「うるせぇ」と言って男子児童を歩道に押し倒す 無職の39歳女を現行犯逮捕 「押したら勝手に転びました」と話す1 : 2025/06/19 19:08:41 ??? 暴行の疑いで長岡市に住む無職の女(39)が19日、現行犯逮捕されました。 警察の調べによりますと、女は19日午後1時10分頃、長岡市内で、10...
- 14
【画】生徒1人だけの田舎学校JC、アニメの主人公みがあると話題に。【画】生徒1人だけの田舎学校JC、アニメの主人公みがあると話題に。 反日うぉっち!
- 15
【維新】猪瀬参院議員の敗訴確定 朝日「セクハラ」報道は真実―最高裁1 : 2025/06/19(木) 20:51:36.19 ID:+hdZ2KcJ9 時事ドットコム https://www.jiji.com/jc/article?k=2025061901032&...
- 16
【画】生徒1人だけの田舎学校JC、アニメの主人公みがあると話題に。1 : 2025/06/19(木) 21:04:12.23 ID:1yE6GTU5M https://sakechazuke.com/ 2 : 2025/06/19(木) 21:04:26.71 I...
- 1 : 2020/12/09(水) 22:10:29.77 ID:CAP_USER
プログラミングをする上で、コメントをきちんと残したり、わかりやすい変数名をつけたりして「読みやすいコード」を目指す作業は重要です。しかし、「読みやすいコード」と「優れたコード」の間には、時として構造上の大きな違いがあるのも事実。そんな「優れたコード」に対するLinuxの開発者リーナス・トーバルズ氏の考え方について、エンジニアのmkirchner氏が説明しています。
トーバルズ氏は2016年のTEDインタビュー内で「連結リストの実装方法」を例とし、自身の「優れたコード」に対する考えを説明しています。連結リストはデータを線形につなげたリストのことで、データを扱う構造のひとつ。具体的には「4」や「12」といった値そのものと「次の値」を示すポインタで構成される「ボックス」を順番につなげたものが連結リストです。
連結リストをC言語で実装したコードは以下。値そのものである「value」と次の値を示すポインタ「next」で「IntListItem」構造体が作られており、IntListItem構造体からボックスが生成されます。「IntList」構造体はリストの先頭を表す変数「head」を持っています。
この連結リストからあるボックスを消去する処理について、スタンフォード大学の計算機科学講義「Computer Science 101(CS101)」で紹介されていたコードが以下とのこと。
上のコードが行っている処理はこんな感じ。まずはコードの以下の部分で「消去したいボックス」をリストの先頭から探索します。連結リストはリストの先頭からしか値をたどることができないので、まずリスト先頭のボックスのアドレスを「cur」ポインタに格納し、「prev」ポインタはNULLで初期化。curポインタが消去したいボックスのアドレスと一致するまで、curポインタを次のボックスのアドレスへと移しながら照合していきます。
先ほどの処理のイメージを図で表したものが以下。ちょうどprevポインタとcurポインタがリスト後部のボックスへスライドしていくようなイメージです。
以下ソース
https://gigazine.net/news/20201208-linked-list-good-taste/- 2 : 2020/12/09(水) 22:18:15.40 ID:RTL5tQs5
- あんまり条件分岐を作っちゃいけないんだな。それは解る。
- 4 : 2020/12/09(水) 22:25:15.90 ID:WntZ5Pi0
- >>2
サイクロマティック数ってやつだな - 3 : 2020/12/09(水) 22:24:08.28 ID:eXttlEXM
- かと言ってメンテ性より効率性に拘りすぎたソースは逆に使いにくい
集団でコーディングする場合は - 5 : 2020/12/09(水) 22:29:50.24 ID:KsAvao0z
- この人が亡くなったらLinuxどないなるんやろね
- 7 : 2020/12/09(水) 22:39:50.63 ID:LT0kIIel
- >>5
Linux EoLになる
Linusはもう何もやってない
10年以上前から広報担当しかしてない
KernelのメンテナンスはRedHatがやってるし、非採用バージョンもRedHatがブランチを出してる
そもそも、debianが超優秀なのでLinusは用済み - 12 : 2020/12/10(木) 00:10:26.19 ID:DRrDxoyR
- >>7
『debianが超優秀なのでLinusは用済み』ってどういうこと?
debianはカーネルよりも上の層という理解なんだけど、違うの?
Linusさんて、カーネルよりも上の層の開発とかもやっていたの? - 8 : 2020/12/09(水) 22:56:39.27 ID:lalfKSee
- NULLPO
- 9 : 2020/12/09(水) 22:59:29.34 ID:q3ulBKbX
- >>8
ガッ(ベージコレクション)! - 10 : 2020/12/09(水) 23:16:38.33 ID:3IvtsZB0
- Gコード(´・ω・`)
- 11 : 2020/12/09(水) 23:35:57.63 ID:IA5LH6VM
- ポインタのポインタ
- 14 : 2020/12/10(木) 00:20:04.45 ID:SCHSpxjk
- carとcdr
- 20 : 2020/12/10(木) 01:09:03.94 ID:+nAR4sQk
- >>14
そうで コンス - 26 : 2020/12/10(木) 01:34:46.27 ID:5E63aR78
- >>20
Lispだっけ? - 16 : 2020/12/10(木) 00:45:47.58 ID:/1StOwEX
- 童貞・学歴・免許スレは伸びるのにこういうスレは全然伸びないな
テレビと大差ない - 18 : 2020/12/10(木) 00:54:23.74 ID:O7Ah3Gqc
- 優れたコードは、複雑な処理と考えガチなものを見方を変えてシンプルにする。
つまり、refactor(因数分解)って感じだねー
まーしらんkど
- 19 : 2020/12/10(木) 01:02:22.22 ID:tGsCzTXv
- 変数名がpじゃなかったら完璧
- 21 : 2020/12/10(木) 01:15:50.61 ID:J3xH0wAA
- C言語ではポインタの比較ってしちゃいけないんじゃなかった?
x86みたいなセグメントつきのアドレスだとおかしな事になる。 - 22 : 2020/12/10(木) 01:16:38.48 ID:JpU5m4mP
- たまには変数名 x,y,z,zz,zzzとか言うのをデバッグしてみろ
- 23 : 2020/12/10(木) 01:24:31.06 ID:Fzxl3UKe
- ポインタのポインタは昔一部の界隈でハンドルって言ってた。
- 28 : 2020/12/10(木) 02:07:18.53 ID:smidZUMs
- >>23
Win32APIでハンドルって単語がやたら出てきたのはそのことだったのか - 24 : 2020/12/10(木) 01:28:54.63 ID:fwJx6gro
- NULLぽしてるから優れたコードではない
- 25 : 2020/12/10(木) 01:29:00.92 ID:9kfzNoak
- 「優れた」の基準が明らかじゃないとな
Cとアセンブリ言語でカツカツにチューンしたコードが速いのは間違いないし
高級言語で読みやすいコードが引き継ぎやすいのには変わりないからな - 27 : 2020/12/10(木) 01:51:37.22 ID:O/kczejv
- そんなことより、スペースでのインデントとか、コードブロック開始時の
{ をいちいち改行して1行費やす書き方に辟易している。
コードの文字数や行数で金貰っているのが多いのか? - 29 : 2020/12/10(木) 02:09:02.59 ID:kFAZ8Rs4
- >27
自分はそれで脱落したけど
頭いい人は逆に分かりやすいのかな… - 30 : 2020/12/10(木) 02:45:00.68 ID:/iUNfJqw
- 最初は環境依存Unixをdos/v用にリサイズしただけなんじゃないんか?
カーネルの主要部しか作ってないんじゃないのけ?リーナスさんは
- 31 : 2020/12/10(木) 06:31:47.63 ID:IVydVJrD
- 2つのポインタを連動させて矛盾なく参照先をずらす処理と、
ポインタのポインタを使った二重の間接参照と、
どっちが「優れている」とも言い難い気がするがのう。“イディオム”として見慣れているかどうかの問題な気が。
もちろん「どっかから動くコード断片をコピーしてくればいい」とは違う話。
コメント