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

- 1
広瀬すず破局1 : 2025/03/24(月) 13:10:52.22 ID:Ad/pRR8H0 https://greta.5ch.net/ 【スクープ】広瀬すずと山崎賢人が破局!一時はペアリングも昨年秋、広...
- 2
【画像】フワちゃんの現在wwwwwwwww1 : 2025/03/24(月) 14:30:54.48 ID:BbUCDp5MH https://greta.5ch.net 2 : 2025/03/24(月) 14:31:23.98 ID:r...
- 3
【福岡】女性刺殺した当時15歳の受刑者に5400万円賠償命令 福岡地裁、母親への請求は退ける1 : 2025/03/24(月) 14:38:11.11 ID:E/asrK859 産経新聞2025/3/24 11:44 https://www.sankei.com/article/20250...
- 4
病院の人件費や医療機器が1.5倍になるも診療報酬はほぼ据え置き1 名前:匿名のゴリラ 投稿日時:2025/03/24(月) 13:29:54.00 ID:+uf0Zqn/0 https://note.com/uvc/n/n41955ddee289 2 名前:匿...
- 5
【大阪万博】「不安しかない」議員から商店主まであきらめムード 開幕直前に流れる「不穏すぎる空気」1 : 2025/03/24(月) 14:06:45.49 ID:E/asrK859 「不安しかない」議員から商店主まであきらめムード…万博開幕直前の大阪で流れる「不穏すぎる空気」 FRIDAYデジ...
- 6
女優・大後寿々花が生成AI騒動の車折神社から玉垣奉納を取り下げたことを報告「AIがもたらすエンタメ業界への影響に懸念」1 : 2025/03/24(月) 13:35:56.95 ID:YMiDcOOa9 2025年03月24日 11:14 京都・嵐山のパワースポットとして有名な車折神社は22日に公式サイトを通じ、...
- 7
杉村太蔵 フジテレビ朝の新情報番組『サン!シャイン』SPキャスター決定! 谷原章介、武田鉄矢、カズレーザーの4人体制に1 : 2025/03/24(月) 14:01:19.45 ID:QMj+oNkV9 https://news.yahoo.co.jp/articles/fa125a1330519dc0eb4d81...
- 8
アイドルさん、いきなり壁ドンされて手が震えてしまう 1 : 2025/03/23(日) 16:01:34.95 ID:lnEBqrDn0 https://kaigo-postseven.com/181547 2 : 2025/03/23(日) 16:...
- 9
【画像】映画館で自慰する女子、社会問題に【2ch】【画像】映画館で自慰する女子、社会問題に【2ch】 とまとニュースまとめ速報
- 10
【朗報】「極太蕎麦」流行りだすwww【朗報】「極太蕎麦」流行りだすwww ねことダンボール
- 11
【悲報】橋下徹「兵庫県はオウム真理教と同じ。危険な組織」【悲報】橋下徹「兵庫県はオウム真理教と同じ。危険な組織」 キニ速
- 12
【大学】芸大留学生7割が中国人、10年で11倍の大学も ゲーム系就職が「永住権の近道」認識か1 : 2025/03/24(月) 13:58:59.61 ID:E/asrK859 産経新聞2025/3/21 12:11 https://www.sankei.com/article/20250...
- 13
【産経】石破内閣支持率30.4%、不支持率63.0%、石破総理が辞める必要はない62.6%【産経】石破内閣支持率30.4%、不支持率63.0%、石破総理が辞める必要はない62.6% 冷笑速報
- 14
パルコに入ってる服屋さん、アリエクの980円の中国製服を1万円で売ってしまうパルコに入ってる服屋さん、アリエクの980円の中国製服を1万円で売ってしまう 冷笑速報
- 15
【悲報】中国人観光客、謎の失踪相次ぐ!逃走?拉致?はたまた・・・・・【悲報】中国人観光客、謎の失踪相次ぐ!逃走?拉致?はたまた・・・・・ アジア〇みえ情報
- 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つのポインタを連動させて矛盾なく参照先をずらす処理と、
ポインタのポインタを使った二重の間接参照と、
どっちが「優れている」とも言い難い気がするがのう。“イディオム”として見慣れているかどうかの問題な気が。
もちろん「どっかから動くコード断片をコピーしてくればいい」とは違う話。
コメント