laptop-g378a91fdd_640

1: それでも動く名無し 2022/05/28(土) 00:58:46.09 ID:wZepJ+EU0
どう書いたら見やすくなる?


2: それでも動く名無し 2022/05/28(土) 01:00:10.70 ID:wZepJ+EU0
わからんわからんわからんわからんわからんわからんわからんわからんわからんわからんわからんわからん

4: それでも動く名無し 2022/05/28(土) 01:06:42.40 ID:8ES6kCu3d
ブロック化する


処理
{//デバッグコメント
 デバッグ用処理
}
処理

5: それでも動く名無し 2022/05/28(土) 01:08:10.21 ID:wZepJ+EU0
>>4
pythonの場合は・・・?

7: それでも動く名無し 2022/05/28(土) 01:09:23.71 ID:8ES6kCu3d
>>5
関数化するなり デバッグ用フラグ作ってifでブロック化するなり、好きにすりゃいいだろ!😅
あんま怠いスレ立てるとぶん殴っちゃうよ

9: それでも動く名無し 2022/05/28(土) 01:10:03.32 ID:wZepJ+EU0
>>7
ログの種類ごとに関数作るん?
ifでブロック化して見やすくなる??

10: それでも動く名無し 2022/05/28(土) 01:11:47.52 ID:kLDKSGgq0
logger ライブラリとかあるやろ

14: それでも動く名無し 2022/05/28(土) 01:12:36.24 ID:wZepJ+EU0
>>10
ライブラリあったところでログ出力するかどうか判断する部分は残るやん

11: それでも動く名無し 2022/05/28(土) 01:11:54.44 ID:7s+egCBI0
出力内容を定数化するかクラス分けろ
せめてメソッドを分けろ

17: それでも動く名無し 2022/05/28(土) 01:14:22.91 ID:wZepJ+EU0
>>11
出力は変数の状態によって変わるからなぁ

32: それでも動く名無し 2022/05/28(土) 01:27:54.67 ID:7s+egCBI0
>>17
クラス化を検討するレベルやな

12: それでも動く名無し 2022/05/28(土) 01:12:13.89 ID:qjO8scJu0
関数作るならログの種類の引数渡すようにすればええだけやん…

15: それでも動く名無し 2022/05/28(土) 01:13:33.37 ID:wZepJ+EU0
>>12
ログの種類によって使う情報変わるからクソコードにならんかそれ?

33: それでも動く名無し 2022/05/28(土) 01:28:41.07 ID:7s+egCBI0
>>15
むしろその状態だとクラス化しない方がクソコードまである

34: それでも動く名無し 2022/05/28(土) 01:29:41.66 ID:wZepJ+EU0
>>33
具体的にどうするん?

36: それでも動く名無し 2022/05/28(土) 01:30:14.34 ID:7s+egCBI0
>>34
使う情報によってメソッドか場合によってはクラス分けたら?

37: それでも動く名無し 2022/05/28(土) 01:30:51.73 ID:wZepJ+EU0
>>36
関数だらけになるやん

38: それでも動く名無し 2022/05/28(土) 01:32:41.09 ID:7s+egCBI0
>>37
必要なんだから仕方ないやん

13: それでも動く名無し 2022/05/28(土) 01:12:15.61 ID:VUHD4s2oM
ソースコードここに載せろ

28: それでも動く名無し 2022/05/28(土) 01:24:23.33 ID:wZepJ+EU0
>>13
例書こうとしたら他所でやってください言われたわ

16: それでも動く名無し 2022/05/28(土) 01:14:13.57 ID:aGf3MSJE0
結果として処理する事が目的であり大前提やのに変にカッコつけるためだけに悩んでるならアホちゃう

20: それでも動く名無し 2022/05/28(土) 01:14:40.31 ID:wZepJ+EU0
>>16
公開するとき変な書き方しとったら恥ずかしいやん

18: それでも動く名無し 2022/05/28(土) 01:14:31.76 ID:xQr8hCuV0
ログやジャーナル関連の書籍や記事漁ってまず頭の中では体系化しろ

23: それでも動く名無し 2022/05/28(土) 01:15:55.06 ID:kLDKSGgq0
変数を引数にとるコンストラクタを持つLogメッセージクラスとか作ってその中でメッセージを作成したら

25: それでも動く名無し 2022/05/28(土) 01:21:37.77 ID:wZepJ+EU0
>>23
ログの種類ごとに継承してクラス作るん?
冗長すぎん?

27: それでも動く名無し 2022/05/28(土) 01:23:27.87 ID:4Q7oa/ZL0
ソースを公開用にする時にデバッグ出力の箇所を削除すればいいじゃん
開発環境から公開に移すたびに手動で削除するのが嫌なら特定のコメントで囲んでそれを識別して自動削除するツールを作ればいいじゃん

29: それでも動く名無し 2022/05/28(土) 01:25:00.18 ID:wZepJ+EU0
>>27
コンソールログ出力するのもプログラムの要件なんやけど

35: それでも動く名無し 2022/05/28(土) 01:30:09.32 ID:4Q7oa/ZL0
コンソール出力の処理をカッコ良く書きたいって事?
メッセージの文字列がだらだら書いてあるのが嫌ならメッセージごとにid振って別ファイルで辞書を定義するかDBから読めばいいと思うよ

40: それでも動く名無し 2022/05/28(土) 01:33:33.72 ID:wZepJ+EU0
>>35
本来の機能を実行しとる部分と参考情報を出すためのコンソール出力が入り混じっとるのをなんとかできたらなぁと思っとるんや
機能事態が結構複雑やから処理の流れ知りたい人が読んだときに「その間に挟まっとる数行の処理が結局コンソールログ出すだけかい」ってなるのを防ぎたい

43: それでも動く名無し 2022/05/28(土) 01:36:13.25 ID:CxHZp61M0
>>40
別クラスに切り出してメインフレーム内では1行記述にしたらええやん

45: それでも動く名無し 2022/05/28(土) 01:38:10.83 ID:wZepJ+EU0
>>43
ログの仕様がどのくらい変わるかわからんのに関数ポコポコ作るの気持ち悪くないか?

51: それでも動く名無し 2022/05/28(土) 01:41:26.54 ID:CxHZp61M0
>>45
仕様が変わるって何が変わるかわからんけど、条件で内容変わるなら引数で変えたらええやろ

44: それでも動く名無し 2022/05/28(土) 01:36:14.65 ID:7s+egCBI0
>>40
まさにクラス分けるべき案件やん

42: それでも動く名無し 2022/05/28(土) 01:35:12.28 ID:wZepJ+EU0
>>35
文字が長いわけではない

47: それでも動く名無し 2022/05/28(土) 01:39:00.06 ID:pRtqMXdL0
しょうもない事考える暇があったら他のソフトウェアはどうしてるかいくつか見繕ってログ見ればいいだろ
dockerも使えねえのか?

48: それでも動く名無し 2022/05/28(土) 01:39:40.40 ID:4Q7oa/ZL0
コンソール出力の箇所と業務ロジックを区別して見やすくするだけならコメントを工夫してここ業務ロジックに関係無いから無視してねみたいな事を書くだけいい気がするけど

50: それでも動く名無し 2022/05/28(土) 01:40:40.00 ID:wZepJ+EU0
>>48
やっぱそれかなぁ

49: それでも動く名無し 2022/05/28(土) 01:40:15.15 ID:pRtqMXdL0
ログレベル決めるだけの話を具体性もないモヤっとした理想で無視してるようにしか見えない

56: それでも動く名無し 2022/05/28(土) 02:00:46.42 ID:31ka2Xs40

クラス分けるんじゃないのこういうの

63: それでも動く名無し 2022/05/28(土) 02:15:17.40 ID:mKfCYdYV0
コメントなり標準出力なり使って★★★★★★★★★★★★★★みたいな目印使って囲む

引用元: https://nova.5ch.net/test/read.cgi/livegalileo/1653667126/


リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
Dustin Boswell(著), Trevor Foucher(著), 須藤 功平(解説), 角 征典(翻訳)
(2012-06-23T00:00:01Z)
5つ星のうち4.5