2024-09-02

anond:20240902113934

一見シンプルに見えるのが可読性高いわけじゃないんだよ

全部まとめちゃってそもそも中身をみないと何が来てるのかわからないのは、全くの素人シグネチャだけみたら簡潔に見えるかもしれないけど

実際には可読性かなり下がってる

他の人が指摘してるように

引数無茶苦茶ふえてるのがそもそも問題だし

クラスにするというのもそのとおり

もう一つ付け加えると引数名前見て何だか全くわからない

記事への反応 -
  • 粗結合性から見るとアンチパターンだが、コードの見やすさは上がる。 #改善前def honya1(a,b,c,d,e,f,g,h,i,j,k,l,m,n): (処理)#改善後def honya2(**kwargs): (処理) 追記: 文脈がわかってないような...

    • ぐっちゃぐちゃやんけ 何くるかわかんないんだから下がってるよ OOPまず抑えなよ

      • 一見シンプルに見えるのが可読性高いわけじゃないんだよ 全部まとめちゃってそもそも中身をみないと何が来てるのかわからないのは、全くの素人がシグネチャだけみたら簡潔に見える...

        • 具体的に言うと、honya1は直積を取る算術計算。んで、honya1(a,b,c)はa × b × cになる。 でもこれだと不便なので辞書を使う。

          • 俺は普段は英語でわかるようにかくけど 例外的に数学絡むやつは数学で使われるままに書くよ てか3つやん

            • アスペか?3つで書いたのは単に便宜上であり、実際は可能性のある入力の個数は複数通りある。すべての通りに対応するために引数をその個数に合わせるより*argsか**kwargsにしたほうが効...

              • 君がそう思うなら君のコードなんだからそうすればいいけど デベロッパー数百人、ひょっとしたら数十人も、の環境は経験なさそうね でかいとこは数千人とか数万人だからまあ求められ...

            • ハッタショすぎるw説明用に端折ったほにゃららのほにゃだろどう考えてもw

              • あー、1ビットで全て駄目になる世界の話で適当に端折るんだ 挙句に差別用語で罵倒始める 開発ノート君そういう感じなんだね

                • これだけ抽象レイヤーが進歩した時代になんで1ビットとか言ってんの? 可愛そうになってくるよ、お前の話聞いてると

              • 大体お前さー 引数が多い時点で設計ミスとか 多いなら構造体にするとか 料理でいうなら米を洗剤で洗うなレベルのことを優しく言われてるのに(俺ではない) 逆ギレして差別用語で罵...

                • うるせぇ小便小僧

                • 任意個の集合の直積を出すという処理で、なんで構造体を使うの?頭おかしいでしょ😂

                  • そもそも任意なら元の引数なんで固定なんだよ 言い訳がすぎる

                    • 存在しない場合はNoneを与えるという非効率なことをしていたから だからそれよりは*argsとかを使うほうがマシって話だろ、文盲か?

                      • お前本当差別的な罵倒ばかりだが あまりにもレベルが低すぎてわかるわけないだろ まさか仕事じゃないよね?

                        • ただのメモにつっかかってくんなよ低能

                          • じゃあ自分のメモに書いとけよ

                          • 🐊「……増田よ」 🐊「頭の悪いオレだがだまされ続けたおかげで一つ物を知った…」 🐊「それは……!」 🐊「この世には本当に煮ても焼いても食えぬヤツがいる!」 🐊「……とい...

                      • 🐊「たとえ両眼が失われようと」 🐊「おれにはまだ心の目がある」 🐊「おまえがぬぐってくれた心の目がな・・!!」

                      • 任意の数なのにたくさーん引数でいいでしょを**にしたから偉いでしょって お前のコード本当に任意の数ハンドルできてるか? あげてみなさい、特別にタダで見てあげるから

                        • あ?何いってんだお前??

                        • コードはこんな感じ def cartesian_product(**kwargs): def recursive_product(sets, current_index=0, current_combination=[]): if current_index == len(sets): yield tuple(current_combination) else: for item i...

                          • ああ、いいじゃん これならいいよ 引数が多いのがシンプルになったってレベルじゃなくて回帰で綺麗にできてる

                  • まさか任意の数なのにたくさん引数作ればええやろ!でたくさんabcとかやってたの? 仕事でやってる方ではないよね?

                    • 最初は2つだったんだが、要件が増えていく時に徐々に増えていってめんどくさくて引数に新しいのを追加するだけにしてたらしいんだよね それじゃおかしいだろっていって*argsとか**kwarg...

                      • おまえ障害だの文盲だの言ってきたくせになに普通に話しかけてるの? コードは問題外だがコード以前にお前が障害だから病院にいけ まあ障害は治らないが対処の方法はあるかもしれな...

                  • ど素人が相手を障害だのいったり顔文字で笑ったりしてたの? すげえな

                    • ど素人はお前 ハイ論破

                      • お前の職場(嘲笑) 最初は2つだったんだが、要件が増えていく時に徐々に増えていってめんどくさくて引数に新しいのを追加するだけ

                        • 正直、職場のレベルは低い、全員が社内ニートだからな

                          • 罵倒しまくりなのに突然まともになるのやめーや 数学の天才でもコードができるとは限らないから人としてとか能力としてという話ではないが(お前は低脳だのレベルがだの障害だの人...

      • これは実際に存在するパターンだぞ キーワード引数のアンパックと言う

        • パターンではなくて機能だね 使い場所使い方よっぽど考えないとぐっちゃぐちゃになるよ

    • そもそもそんだけ引数必要な時点で設計ミスってる感

    • その引数群を特定の関数にしか渡さないのなら辞書化する意味ないかな。 複数箇所で使うなら構造体(pyhtonならdataclass?)かクラス使うかな?

    • def 牛丼作る(牛肉,玉ねぎ,ご飯,醤油,砂糖,酒,味醂,水,紅生姜,丼,トレイ,おしぼり): これだったらわかるじゃん 具の部分とご飯と食器部分と分けろや、とはなるけどまあわかる def 牛丼作...

      • それは関数の処理によるだろ。 この関数は任意個の集合の直積を取る関数だから、*argとか**kwargsのほうがわかりやすいんだよ。

        • 君にはわかりやすくてもそれに用のある他人(つまり直積がわかってその表記に慣れてる人、あるいはわからないけどその表記で検索して出てきたら助かる人)には**kwargsでは意味わから...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん