MapとforEachはどちらでもいい? Mapの方がスマート?

1週間ほど前のものですが、雑にまとめました。 だいたいの色の使い分けですが、赤が「どちらでもいい」、青は「mapが良い」、緑が「その他」です。
1
あゆゆん♪ @ayu_littlewing

エンジニアちゃんたちがコードレビューで喧嘩してるから何かと思ったら、「オブジェクトの変換処理をforEachで愚直に書くよりMapで書いた方がスマートだ」とかそんなような話で、、、 「どっちでもいいわい!!」 スタイルガイドに明文化してないんだから、コードとして正しいのに趣味を押し付けるな

2023-01-25 16:56:36
あゆゆん♪ @ayu_littlewing

個人的には最低限のスタイルはフォーマッターとLintで保証してるので、それ以上の細かいところはロジックとして正しいのであればレビュワーが個人の好みを押し付けるべきではないと思ってるんだけど、、、 「こっちの方がスマートだ!!」みたいな不毛な議論に時間使うのやめよ。。。

2023-01-25 16:58:55
Pooh3 🥶 @Pooh3Mobi

val list = MutableList<String>() data.forEach { list.add(it.toFOo) } 僕はこのコードを見るたびに怒ってるw twitter.com/ayu_littlewing…

2023-01-25 17:17:10
Pooh3 🥶 @Pooh3Mobi

スマートかどうかじゃなくて意図が見づらい。 なんでmapの方が意図が明確なのにそっち?ってなる。 あとはforEachの中端折ってるけど大体コードとして見にくいんよ。

2023-01-25 17:20:39
RayStark a.k.a. ロジニキ @RayStark77

コードとして正しいのに趣味を押し付けるなというのも、「スマートだから」と言う理由で無駄に時間を奪うなというのも同意するんだけれど、forEachとmapという特殊な例では待ったをかけたくなってしまうなぁ この例だと副作用に起因する複雑さへの問題意識が足りないと思われても仕方ない twitter.com/ayu_littlewing…

2023-01-25 18:48:19
Kazupon @stepism

@ayu_littlewing その謎レビューに体力を使うのが馬鹿らしくて、読みやすくて素直なら何でも良いでしょと答えています。

2023-01-25 18:49:58
RayStark a.k.a. ロジニキ @RayStark77

forEachとmapは結果的に良くない例だったんだけれど、それはそれとして「スマート」っていう主観的な基準でレビューされるとつらいよね

2023-01-25 18:58:45
かたくりこ @mizutoki_

言われる側の立場だったとして、修正を強要されたら嫌だけど、こっちの方がこういう風にも書けるよって教えてくれた方が次書くときにも選択肢増えるからありがたいな 自分はこっちの方がスマートだと思うけどあなたはどう思う?と委ねてくれれば良い レビューする側でもそう気をつける twitter.com/ayu_littlewing…

2023-01-25 22:39:22
phenan @phenan

mutable state を特に必要性のないところで使っていた場合はレビューで弾くのは当然だと思うが… twitter.com/ayu_littlewing…

2023-01-26 00:35:42
田中 @z9flg

メンテナンス効率と可読性を秤にかけて最適解を探しているだけで、「趣味を押し付けて」いるわけではないのよ。それがわかって、ようやくエンジニアとしてはよちよち歩きレベル。頑張りましょうね。( ^∀^) twitter.com/ayu_littlewing…

2023-01-26 00:45:58
エンジニアの愚痴の溜まり場 @IWuU0SDmRRGcQI0

言語によって速度がそれなりに違うからしゃあなしと思うけど、割と差のある言語かつ数十から数百msで勝負してる現場でnが百万超えてくるなら マジで死ねよってなる案件 twitter.com/ayu_littlewing…

2023-01-26 01:20:53
みゅーとん @_mew_ton

こういうのは「実はこういう書き方もありまっせ」っていうコメントで済まして終わり twitter.com/ayu_littlewing…

2023-01-26 01:43:21
taka2 @Jj1Fxh

論点違うけど、map使って書けるものをforEachを使うのは謎 なるべく副作用は起こしたくない twitter.com/ayu_littlewing…

2023-01-26 02:50:44
takataro@フリーランスエンジニア @beltway7

値を返すならmap返さないならforEachじゃないかな? twitter.com/ayu_littlewing…

2023-01-26 06:03:45
odorry @odorry

@ayu_littlewing なんの言語かわかりませんが、map だとインスタンスを作り直しますし、foreach だと使い回す可能性がありますよね。 immutable で使い捨てインスタンスみたいなことも考慮しての「map の方がいい」という意見であれば、なかなかやるなお主、的にも聞こえますが、わかりやすければ何でもいいですw

2023-01-26 06:49:48
t_hase @t_hase

@ayu_littlewing 過去に似たような経験があり、その議論のおかげで現実逃避を兼ね、進捗に役立っていると勝手に思いました。こだわりって他人にはわからないですから。。。

2023-01-26 07:34:08
けー @Flutter @PDgCno5wN68EVTn

@ayu_littlewing forとの使い分けでforeachは繰り返し処理をする場合で使い、 mapはmap内で処理を行って新しく配列を作り直して配列を返すものだと捉えて使っていますね。

2023-01-26 07:39:40
Naoko Kubo / Interrupt LLC. @Naoko_Interrupt

どっちでもいいから決めてくれた方でかくわ。 そういうレビューがあるだけいいよね。 (実質自己マージの現場から逃げてきたばかりなので) twitter.com/ayu_littlewing…

2023-01-26 08:30:54
みん(民)みん(民)みん(民)く(幸) @Picnicer

@ayu_littlewing mapとかselectを一度味わってしまうと絶対eachやらないマンになってしまう…。実際each each each if if if が連なるよりかはかっこよくなりますし。

2023-01-26 09:12:33
シライシ@UniqueVision @punksy2

map なら見た瞬間に新しい配列を計算したいという意図が伝わるし、forEach だと逆に map ではできないような処理が入っているんだろうな、と思って読むので、スマートかどうかではなく、可読性の点で分けた方が良いと思った! twitter.com/ayu_littlewing…

2023-01-26 09:30:41
しゅいろ @syuilo

何の言語かはわからないけどmap vs forEachについてはどっちでも良いことはないんじゃないかな 挙動が期待するものであればどんなコード書いてもいいわけじゃないし(パフォーマンスに差が出る) 単に書き方の違い、かつプロジェクトでルールが決められていないのであれば確かにそれはどっちでも良いけど twitter.com/ayu_littlewing…

2023-01-26 09:35:43
涼宮青葉@FSCodism @SuzumiyaAoba

mapとforEachどっちでも同じ場面なんてなくないか? スマートかどうかではなく

2023-01-26 09:39:52
みイゃンんコ @chocoiro773

どっちでも良い派 vs 高階関数派 vs 負荷重視でforEachも検討派 宗教戦争ではあるけれど… twitter.com/ayu_littlewing…

2023-01-26 09:45:22
jnst @jnst3

@ayu_littlewing 自分ならPRのレビュー書くときに冒頭に[nits]と書いてmapのが変数スコープ短くなって良い書き方ですみたいなコメント書きます 最後にnitsやimoは修正しなくて大丈夫な指摘です🙆‍♂️と書きます

2023-01-26 10:05:18
1 ・・ 4 次へ