プログラマの雑談部屋 ★210

■ このスレッドは過去ログ倉庫に格納されています
2022/06/25(土) 13:24:58.31
皆仲良くしましょう

プログラマの雑談部屋 ★204
https://medaka.5ch.net/test/read.cgi/prog/1653003887/
プログラマの雑談部屋 ★205
https://medaka.5ch.net/test/read.cgi/prog/1653402902/
プログラマの雑談部屋 ★206
https://medaka.5ch.net/test/read.cgi/prog/1653916960/
プログラマの雑談部屋 ★207
https://medaka.5ch.net/test/read.cgi/prog/1654397561/
プログラマの雑談部屋 ★208
https://medaka.5ch.net/test/read.cgi/prog/1654849649/
プログラマの雑談部屋 ★209
https://medaka.5ch.net/test/read.cgi/prog/1655440371/
2022/07/01(金) 08:18:33.32
>>684
自分が読めないからクソコードの人
2022/07/01(金) 08:19:47.01
>>685
何でも否定から入る人登場?
2022/07/01(金) 08:20:21.78
クソコードでも頑張れば読めるだろ
もっと簡素に書けるよね!って疑問持ちながら中身を読むだけ
2022/07/01(金) 08:20:49.94
>>686
読めないから読めるように書きやがれってことね
2022/07/01(金) 08:21:06.78
みんな仲良くするのだ
2022/07/01(金) 08:21:30.48
>>687
条件も言語も指定して具体的な質問もしてるのに突然何でもかんでもと的外れな人格攻撃を始めた時点でこれは答えられないんだなということが理解できた
2022/07/01(金) 08:21:57.44
俺の中でのクソコードは死んだコードが大量に残ってるソース
2022/07/01(金) 08:22:56.08
>>691
>>681
何書いても否定する人センサー働いたからあと勝手にどうぞ
2022/07/01(金) 08:23:23.41
怖いから消しづらいんだけど最近使わないのは灰色になるからまあそんなに気にならない
2022/07/01(金) 08:23:37.23
>>693
はいさようなら
2022/07/01(金) 08:24:09.09
技術書を絵本にする技術者がこの世に何人いるのかな?

園児「この技術書はクソ」
2022/07/01(金) 08:24:23.76
ひでぇ逃げ方だなw
2022/07/01(金) 08:25:28.16
園児ニア「クソコード読めない!」
2022/07/01(金) 08:26:01.42
自分の知らないことを喧嘩腰に聞いたりクソコードと他人を責めたり
これだから文系は嫌だね
2022/07/01(金) 08:26:44.77
というか言ってしまうと実はこの世界で稼働しているコードにはクソコードしかない
エレガントなコードは書籍やチュートリアルの中だけにしかない
2022/07/01(金) 08:26:52.03
>>685
https://github.com/torvalds/linux/search?q=goto
2022/07/01(金) 08:27:00.78
>>688
それに工数を使ってることをお忘れなく
時間はコストやぞ
それに修正できるか(影響範囲の多さ)はまた別問題やし
2022/07/01(金) 08:27:31.36
数百行のコメントアウトってウザいよね
2022/07/01(金) 08:29:01.30
コメントはコメントだろ
死んだコードってのは生きてるように見えるけど使われてないコードだ
2022/07/01(金) 08:29:42.33
無駄なコメントはノイズ
2022/07/01(金) 08:30:43.71
ツールでけせばよよし
2022/07/01(金) 08:31:06.84
>>701
テストコードでは俺も書くと言ってるしCでは書いたこともあると言ってるしそのコードは関数30行くらいで読みやすいし
それを見て言語問わず上から下に数百行関数に分けずに書けという結論に達したのがマジでびっくりなんですが

てかさよならだったのでは?
2022/07/01(金) 08:31:58.81
>>702
書く時の時間に差は?
2022/07/01(金) 08:32:39.83
同じ言語を学ばせて
同じフレームワークを学ばせて
同じ規約で書かせる
この3行さえ守られていれば俺たちは読める
オマエらフレームワークの一部だから勝手なことしたら怒られるぞ
2022/07/01(金) 08:33:12.05
>>707
別人だし極論坊か
2022/07/01(金) 08:33:32.10
上から下に読めるコードしか読めないやつがいるクソ現場ではそれに合わせてやらないと回らないっていう話してたんじゃないの
OSのカーネルが関数長かったりgoto使ったりしてるのはそんな理由じゃねーだろ たぶん
2022/07/01(金) 08:33:46.92
別の言語で別のフレームワークで別の規約ならすぐに対応できるのができるプログラマだよね
意固地になってるのは大抵無能
2022/07/01(金) 08:35:18.85
上から下まで一本糞ソースなら誰でも読める
だったら読めないソースというのは関数を駆使したソースの事だ
2022/07/01(金) 08:35:53.77
>>710
無言で出てきていきなり極論坊とかアスペもほどがある
2022/07/01(金) 08:35:59.48
朝っぱらからレスバする元気なオタク達
2022/07/01(金) 08:36:32.35
>>713
ジュニア向けにはそうやって書けるようにフレームワークを用意するわな
2022/07/01(金) 08:37:16.39
本気で面倒臭い文系がいるのな
718仕様書無しさん
垢版 |
2022/07/01(金) 08:39:11.85
>>713
一万行のソースでもmain関数ひとつなの?
2022/07/01(金) 08:39:58.24
文系文系と理由も何もないレッテル貼りも論理的なのかどうか
プログラマには文章の組み立て方のような文系的な能力も大事だよ
2022/07/01(金) 08:41:56.32
>>719
文系オンリーと文理両刀を一緒にしないでくれる?
2022/07/01(金) 08:44:26.38
そういう問題ではない
2022/07/01(金) 08:44:47.40
>>713
かんじをつかわずぜんぶひらがなでかけばだれでもよめる
よめないぶんしょうというのはかんじをつかったぶんしょうのことだ
2022/07/01(金) 08:45:18.39
>>718
約8000行の関数なら見たことある
しかも中身がほぼ同じ関数が6個あってマルチスレッドに使われてた
読みやすかったけど流石に棄てた
2022/07/01(金) 08:45:35.95
>>713
読めても保守コストがヤバいね
当然読めても時間がかかる
まぁ世の中のシステムはそんなのばっかやから数行しか修正してないのに何十万、数百万掛かったりするパターンをよく見かけるがなw
2022/07/01(金) 08:47:18.22
>>724
関数が分かれてないことで時間がかかる部分ってなんだろう?
2022/07/01(金) 08:49:36.44
関数の行が多くても破綻しないのは通しで処理されることに意味がある点と
ネストが浅いからだろうから、読みにくいって事はないだろうな
2022/07/01(金) 08:50:22.13
個人的には長いから関数に切り出すわけじゃないかなあ
共通処理にしたい場合は切り出す感じ
まあ可読性あげるために関数だけ並べるみたいなのは普通にあるけどさ
結局のところは動けばいいんだから周りと合わせながら柔軟的にやるしかないでしょ
2022/07/01(金) 08:50:47.70
ビジネスが大事で各社によって違ってジュニアレベルに書かせたいものとか上でも書いたようにテストとかでそれ以上のレベルで再利用しないものは上から下まで書いたほうがわかりやすい時もあるし、どういう状況だとどういう理由でどのような方式がいいのかって話であって

そこからの>>675
2022/07/01(金) 08:51:59.69
誰もが読めるコードは>>709の最初の3行に書かれている
2022/07/01(金) 08:52:18.61
間違ったそこからの>>657
2022/07/01(金) 08:52:23.07
テストコードは共通化しちゃダメ
共通部分を修正されたらテストの意味がなくなっちゃう
2022/07/01(金) 08:53:15.61
>>725
恐ろしい分岐の数、変数の共有
行を上から下まで読まなければ処理の理解が困難
修正した際の影響範囲
上げればいくらでもある
大きな問題は小さく分けて考える
シンプルな処理で分岐もなく一つの処理しかしてないものを関数に分けろという話ではないよ?
そもそも関数に分ければ全て解決するという話でもないし
当然、まともなクラス設計ありきよ
2022/07/01(金) 08:53:26.88
竜王「関数の半分をおまえにくれてやろう」
2022/07/01(金) 08:54:10.25
>>707
ちょっと探せば数百行の関数ごろごろあるよ
https://github.com/torvalds/linux/blob/dbe69e43372212527abf48609aba7fc39a6daa27/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c#L1694
2022/07/01(金) 08:54:27.63
今日はスレ元気だな
2022/07/01(金) 08:54:50.74
>>732
変数宣言を頭に書かないといけないコードではそうだろうけど
途中宣言できるコードでは要らぬ心配だな
2022/07/01(金) 08:55:02.49
>>731
うん
だから上から下まで方式で書くよね
ただし共通部分はまとめてテスト本体では意識しないでいいように書く
738仕様書無しさん
垢版 |
2022/07/01(金) 08:55:15.69
>>731
え、普通にテストコードもリファクタリングして
ある程度は共通化するもんだろ
2022/07/01(金) 08:56:43.07
どこまでいってもプログラミングなんてちょっとしかわからないんだから謙虚にいこうぜ・・・
2022/07/01(金) 08:57:04.45
>>732
上から下まで読まないとって関数に分かれてても同じやん
むしろ関数追っかけないといけない分面倒
2022/07/01(金) 08:57:15.38
>>734
ざっと見たかぎり一番長いので200行程度で大概は数十行の1画面だが
ファイルと関数を間違えてるってことはないよね?
2022/07/01(金) 08:58:19.72
ワイの環境だとメモリ足りなくてファイル開けなくなるからあんまり長い関数やめてクレメンス
2022/07/01(金) 08:58:39.09
関数にわけるのが得意なのは出世して現場を去ったプログラマだけだよ
744仕様書無しさん
垢版 |
2022/07/01(金) 08:58:42.42
変数名を付けるのが下手過ぎて
いつの間にかシステムハンガリアンみたいなやり方してて萎える

PythonとかでついXXXdata_aryとかYYYdata_dictとか付けちゃうけど
良い変数名の記法ルールで勉強になるのない?
本読んでも抽象的すぎて分からん
2022/07/01(金) 08:59:28.75
>>741
100行超え許せないのか妥協できんのか分からん人だね
2022/07/01(金) 08:59:37.56
自分が読むだけなら自分がわかりやすけりゃいいだろ
2022/07/01(金) 09:00:41.19
英語の語彙の部分も大きいので英語の新聞だの小説だのとかもちろんCSのGoFの本あたりとか読んだ量悩んだ量で決まる部分もある
2022/07/01(金) 09:02:09.77
関数いっぱいあるとIDEが悲鳴あげちゃう
特にソースをインライン展開してるとわけがわからなくなっちゃう

一本関数のほうがIDEの負担は低い
vimでも読めるし秀丸でも読める
メモ帳は実用するにはちょっと厳しいけどそれでも1万行ぐらいなら余裕で開ける

逆に関数いっぱいって特定のIDEがなきゃ読めないでしょ?
2022/07/01(金) 09:02:19.18
>>741
btc8821a2ant_tdma_duration_adjustは200行余裕で超えてるよ
2022/07/01(金) 09:03:46.74
>>740
処理の全容がぱっと見でわかるかどうかが大事なんやぞ
抽象度を揃えておくことが大事
本でも目次や章に分かれてるから読みやすく
どこに何が書かれていていそうか分かるやろ
プログラムも同じやで、そもそもが人間に理解できるように発明されたプログラミング言語なんだ
整理して人間がわかりやすくすることは重要なことなのよ
2022/07/01(金) 09:03:57.00
>>745
大体数十行でたまに二百くらいのものを普通の人は数百行上から下へかけむやみに関数に分けるなとは言わないよ

なんなら理系的に行数の中央値と平均値出してそれがどれくらいか見てみればいい
2022/07/01(金) 09:04:14.77
CDはコード、KBNは区分
こういう業界知識を暗記した者が有能なんだ

変数名の再開発をするやつはいずれ世の中を良くしてくれるかもしれない
しかし、当面の間は社内を混乱させるだけなんだ
2022/07/01(金) 09:05:27.83
無能プログラマをまとめあげるには1本関数でいいとか主張してるけど
自称有能なら関数あたりの行数は20行までしか許さないけどいいの?
2022/07/01(金) 09:06:15.74
>>749
一つ二つとかの話はしてないしそもそも200行余裕で超えてるって数百行にギリギリかかるかどうかだろう…

どれが一個二個あるから数百行上から下まで書くべきと本気でいうつもりなの?

中央値と平均値出してみ
2022/07/01(金) 09:06:35.16
>>750
それは関数に分かれてるかどうかでは変わらないよ
関数名、関数コメント、処理中コメント
2022/07/01(金) 09:06:54.61
>>753
お前は何を言ってるんだw
2022/07/01(金) 09:07:10.12
おはようございます
仕事行ってきます
2022/07/01(金) 09:07:45.20
>>754
朝から面倒臭い子やぁ
2022/07/01(金) 09:08:25.80
>>758
日本語が通じないんだから数字で出してもらうしかないわな
2022/07/01(金) 09:08:46.61
Martin Fowler 氏の主張
「 6 行を超えたらもう関数に分ける 」
2022/07/01(金) 09:09:07.16
>>759
おたくの場合は会話が成り立たない
2022/07/01(金) 09:10:36.86
好ましい関数/メソッドの行数
投票結果


10行以下 64 票 / 9%
20行以下 94 票 / 14%
30行以下 113 票 / 16%
40行以下 60 票 / 9%
50行以下 90 票 / 13%
60行以下 21 票 / 3%
70行以下 34 票 / 5%
いくら長くてもOK 189 票 / 28%
2022/07/01(金) 09:11:14.30
>>748
IDEがあるのにvimで読めなきゃならないという要件にぶちあたったことないわ
IDEが無いような環境を考慮しなきゃならないとか、制約があるならそれに即した書き方すればええんちゃうってだけやな
そんなもん一般には当てはまらん
そもそもクラス単位でちゃんと設計するから一ファイルのコード量は少ない
パッケージ分割も当然する
けど一覧性的にIDEは必須になる
>>755
当然、いいコードを書くという話なんやから
ちゃんとしたクラス設計、わかりやすい関数名、正しい依存関係での設計までひっくるめての話やろ
2022/07/01(金) 09:11:22.24
>>750
処理を見てブロックを把握し適切に読み飛ばせるのも熟練度の差が出る
結局のところ英語読めましぇん、俺でも理解できるように書いてくだしゃい
と同じ
2022/07/01(金) 09:11:54.89
>いくら長くてもOK 189 票 / 28%

圧倒的じゃないか
これが日本国民が適切だと思う関数の長さだ
2022/07/01(金) 09:12:18.65
頭から全部をリバースエンジニアリングするなんてことあんまりないし
大抵は目的の場所探してそこを起点に見るんだから関数で分かれてる方が明らかに良いわ
2022/07/01(金) 09:12:28.88
わかったわかった
改行しなきゃいいんだろ?はいはいわーかーりーまーしーたー
2022/07/01(金) 09:12:51.99
・いいコードとは何か
・バカばかりのプログラマで無難に運営する方法

これが混ざってるな
2022/07/01(金) 09:13:35.34
関数を適切に分ける、の中に
細切れにするって要素はない
2022/07/01(金) 09:13:51.08
有能は忙しいからコーディングはバカでも出来るようなルールにしておいたほうがいい
2022/07/01(金) 09:15:37.94
>>769
それな
長さだけで語るからおかしなことになる
2022/07/01(金) 09:15:56.56
未だに、構造化プログラミングにもオブジェクト指向にも言及するレスが一切無いことに震える……
キレイなコード云々は若いうちにかかる麻疹みたいなもんだからいいけどさ……
2022/07/01(金) 09:16:01.89
>>762
10行以下から50行以下までを合計すると50%を超える
2022/07/01(金) 09:16:16.02
>>761
うんそうだね
理系らしく数字でよろしく
2022/07/01(金) 09:17:09.67
状況次第だよだから
アスペはこれだから
776仕様書無しさん
垢版 |
2022/07/01(金) 09:21:58.18
システムエラー時にどこのモジュールのエラーかが直ぐに特定出来る
且つモジュール内部でも適切な関数の切り分けがなされてて
一部のエラー部分aの改修が他の関数群のaの参照によって反映されモジュール全体のエラー修正へと変容する

これが良いコードだな
先ず、エラー修正の為にコード全文読もうってのが頭おかしい
2022/07/01(金) 09:22:33.18
動けばいいよで済まされてるとこで働いてる奴は楽そうで羨ましい
2022/07/01(金) 09:23:39.31
非ネイティブのようにモジュール単位では分からない言語もあるしねぇ
行番号でド直球のとか
779仕様書無しさん
垢版 |
2022/07/01(金) 09:24:43.84
綺麗なコードもそうだけど
ちゃんとユニットテスト書いていこう?
参考書でも影が薄いし悲しすぎるわ
テスト駆動開発を広めたいのに前段のテストコードを書くって事すら広まらない
2022/07/01(金) 09:25:53.71
自分のプロジェクトで誰も納得してくれないの??
2022/07/01(金) 09:26:03.28
>>779
わっかるーー

まぁ工数的にも無理ってパターン多い
2022/07/01(金) 09:28:39.74
vim9出た
2022/07/01(金) 09:30:57.46
ほんまや、まあバージョンアップが必要なほど使いこなしてないけれども
2022/07/01(金) 09:32:40.63
知るか金払え
785仕様書無しさん
垢版 |
2022/07/01(金) 09:32:53.57
vimってやたら好きな連中多いみたいだが
あれ何でそんな人気なんだ?
emacsの方が良くね?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況