2021/04/10開催 Developer eXperience Day 2021 「クソコード動画『Userクラス』で考える技術的負債解消の観点」の解説資料です。 https://dxd2021.cto-a.org/program/time-table/b-3 クソコード動画はこちら …
タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。
みりせっく@雌尻ンダー extends Siri @grandcraws ツイ主が勘違いされて傷ついてるようなので、一旦謝罪とこの場でも補足しますが、初学者のコードは普通汚い。初心者はコードが綺麗か汚いかも判断基準がないから。だから教える側がここは綺麗、ここはまずい、普通はこう書く、特殊な書き方はやめよう、という教えをちゃんとやりなさいっていう話です。 2022-08-17 02:49:22 みりせっく@雌尻ンダー extends Siri @grandcraws @manaboru 正論を言うことと相手を傷付けることは無関係で、傷付けるから正論を言わないは間違いだと思いますよ。傷付かないように正論を言うべきで。で、今回はその配慮が足りず誤解させて傷付けてしまったからそこに対して衆人に見える形でリプで直接謝罪してます。それ以上の話として何を求められてますか? 2022-08-17 12:2
先日のJJUG CCC 2023 Fallの懇親会でクソコードを研究しているという学生がいたのだけど、クソコードの研究は難しいという話をした。 人工的にクソコードを再現しても、あの野生のクソコードのクソさには全く足りないわけで。 トルストイが言うように「すべてきれいなコードは互いに似通っているが、クソコードはそれぞれにクソの趣を異にしているものである」なので、なかなか「これがクソコード」のように類型化するのも難しい。 典型的なクソコードを書いてみても、なんだかきれいなクソコードができてしまう。 クソコードはネットに出回らないので、資料の収集もまた難しい。ネットにないということは、ネットの情報に基づいている「AI」もホンモノのクソコードには触れていないことになる。 クソコード収集サイトをつくっても、実際のクソコードは業務固有処理も含まれるので、掲載できる形に整理していくと本来のクソさが薄れて
クソコードを読ませない💩 https://uit.connpass.com/event/291443/ 免責事項 「クソコードという言葉を使うな」と思った人、いると思います。 攻撃的で、解像度も荒くて、建設的でない言葉だと私は思っています。 一方で、目にすることも多い言葉であり、具体例に関してはふわりとした共通認識が持たれているのと、そういったコードに対するダメージコントロールの話なので、便宜上クソコードという言葉を使います。とあるソースコードに対してクソコードと呼ぶのはよくないですが、クソコードという概念そのものについて話すことに対しては有益だと思います。 自己紹介 sadnessOjisan JS/TS, Rust, 最近 Go, PHP マイブーム: 優光というラーメン屋 クソコードとは何か クソコードとは何でしょうか? 知りません。 インターネットミーム? https://tog
業務で結構な量のコードレビューを毎日してるんだけど 最近マジでクソコードが多い 適当に書き殴ったコードなんじゃなくて とにかく思い付いたところからコーディングして 実際に動作させたら思い通りに行かないから継ぎ接ぎで修正して 最終的に機能を満たしたから完成、PR作成、レビューよろしく、みたいなのが本当に多い 無駄な処理が多数含まれているのなんて当たり前だし 機能を満たせてるように見えるコードも境界値的なところでバグだらけだったり そういうコードが特に最近増えている 問題なのはレビューで指摘した部分が実は今回のPRではなくて既に業務システムに組み込まれてる、とかいうのも多々あって めちゃくちゃヒヤリとするようなコードも多い レビューは数人でやってるんだけど、こういうコードを通してしまう人物に2,3人心当たりがあるし とはいえ人材不足で仕方ないんだろうな、という気がしている 多分だけどソフトウェ
なんか、あんまりいい感じじゃないなぁって思うコードに出会ったとして、それをクソコードと呼ばないようにはしてたんだけど、いつからか、そもそもクソコードだと思わなくなってる そのときの、そのコードが書かれた環境があって、それは、その人が持っているスキル以上のことをなんとかしないといけなかったのかもしれないし、めちゃくちゃなスケジュールの中でやらないといけなかったのかもしれないし、お試しで作ったものをそのまま使われちゃったのかもしれない あんまりいい感じじゃない構造だったとしても、そのコードによってシステムは動いて価値をもたらしていて、そのおかげで僕がそのコードに出会ってるんだから、それはとてもスゴイことだなぁって思う コードを悪者にして文句を言っても何も変わらないし、僕はエンジニアなのだから、そのコードをより良いコードにすればそれでいい 自分がコードを書くときには少し気をつけたり、あんまりいい
最近、クソコード話が少ない気がするので、直近のクソコード情報を提供する。 出会い昨年夏、新卒二年目にして初めてクソコードに出会った。 あれは、新しいチームに移動した初日のことだった。 ファイルを開いた瞬間、大量のDimと、画面から見切れている、自動生成みたいな長さの変数宣言の行が目に飛び込んできた。 初めて見たクソコードのあまりの衝撃に、私は言葉を失った。ありえない。しかし、同時に興奮していた。これが俗にいうクソコードか...本当に存在していたんだ...と。 気を取り直して変数宣言のすぐ下にある関数の中身を確認する。MainProcess()と名付けられた15,000行の関数は、GUIの制御と入力値のバリデーションと業務ロジックの制御と処理結果の出力を司っていた。共通化できそうな処理は当然のようにコピペで済まされていた。 コピペの山を越えると、今度は、50~100行程度の関数たちが現れ始め
この記事で伝えたいこと ここでは、私が設計を勉強しながらコーディングした経験から、初心者でも簡単に実践できる簡単なルールを3つピックアップしました。 一つのクラスは150行以内に収める 循環参照はしない 継承はしない この3つを守れば、破滅的なクソコードであれば割と簡単に防げるかと思います。 この記事における「破滅的なクソコード」は「一切のリファクタリングの余地も残されていないほどのコード」を意味し、この記事の目的は、「破滅的なクソコード」から、「最低限リファクタリングすればなんとかなるコード」になる程度の手法を紹介することです。 マサカリは大歓迎ですがお手柔らかにお願いします。 読む上で留意して欲しいこと この記事はあくまで 「初心者のための破滅的なクソコードを書かないための簡単な方法論」 であって、「効率的で分かりやすい設計の方法論」ではありません。 この3つは「銀の弾丸」ではないです
$date0 = '20201122'; //画面からYYYYMMDDで文字列が来る $date1 = $date0 -10000; $year = substr($date1, 0, 4); $month = substr($date1, 4, 2); $day = substr($date1, 6, 2); なんだこの1万を引いている処理は・・・。 (当時の)同僚が保守中の仕組みからこのコード見つけ、一緒に悩んだ。 日付系処理では1万はキリが悪い。。。 幸いにも書いた輩が隣に居たので直接聞いてみた。 1年前を計算している なるほど! 書き直せ! 幸いにも書いた輩が高校から友人(同級生)だったので、とりあえず殴った。 日付操作は日付操作用の関数がちゃんとあるので、それを使いましょう。 (と言うか、私は静的型畑の人間なので、動的型変換の使い方にも膝が震えた。) ③ たこいかぱにっく
最凶コード 論より証拠、そのコードを見てみよう。そのコードとは、JavaScriptで書かれたコードである。 t = 1234.56 : if(n==0){ var a, b, c, d, e, f = t, w = self._iFirst, x = self._iSecond, y = self._iThird, z = self._iFourth; z.innerHTML = "0", f > 100 ? (a = f, b = self._getRound(a), d = "", y.style.width = "234px", w.innerHTML = "120", x.innerHTML = "240" ) : (c = self._getRound(f), e = self._getRound(f / 2), y.style.width = (mmpix * 2 * Mat
おしゃれなカフェで... 私はエンジニア。 コーヒー片手にMacでプログラミングしています。 今日はどんな素晴らしいアート(プログラム)が生まれるかしら?♪ 的な事を演出したいときって、誰にだってありますよね? 今日は、カフェでMacを使っている時に周りから 「お、この人Macで何かやってるな。何か難しそうな事をしているからエンジニアなんだな。素敵だな。」 と思わせる素敵な(Kuso)プログラムを用意しました。 ぜひ、おしゃれカフェで使ってみてください。 ターミナルで実行すればカッコイイJavaコード2つ ステータスが変化してる風コード まずは、何か処理が動いているように見せるコードがこちら! /** * ステータスを更新してる風コード */ public class DungStatusChange { public static void main(String[] args) { /
1. はじめに 私達の世界にはクソコードという言葉があり、品質の低いコードを貶めるワードとして日々親しまれています。しかし、私達は一体どのようにクソコードを見分けているのでしょうか。その一つの指標として、ソフトウェアメトリックと呼ばれるコードの品質を測る方法論があります。 クソコードの定義は人により様々ですが、ここでは「複雑性の高いコード」と定義します。最も美しいコードはゼロ行のコードという極論が示唆するように、コードは可能な限り簡潔であるべきです。その理由として、コードの複雑性は可読性を下げ、再利用性を下げ、凝集度を下げ、拡張性を下げ、バグの温床になることが挙げられます。 本記事ではソフトウェアメトリックについて概説した後、その中でも汎用的なABC Metricという手法を実例を交えて紹介し、どのようにクソコードとの戦いに活かすか検討します。 2. ソフトウェアメトリックとは何か 広義の
おしゃれなカフェで... 私はエンジニア。 コーヒー片手にMacでプログラミングしています。 今日はどんな素晴らしいアート(プログラム)が生まれるかしら?♪ 的な事を演出したいときって、誰にだってありますよね? 今日は、カフェでMacを使っている時に周りから 「お、この人Macで何かやってるな。何か難しそうな事をしているからエンジニアなんだな。素敵だな。」 と思わせる素敵な(Kuso)プログラムを用意しました。 ぜひ、おしゃれカフェで使ってみてください。 ターミナルで実行すればカッコイイJavaコード2つ ステータスが変化してる風コード まずは、何か処理が動いているように見せるコードがこちら! /** * ステータスを更新してる風コード */ public class DungStatusChange { public static void main(String[] args) { /
この記事は僕がちゃんとプログラミングを勉強し始めるきっかけとなったJSの問題に関する内容の記事になります。 はじめに 最近ではNext.jsを使った長期インターンに参加できるほどに少しはマシになったとは思いますが、半年前まではJavaScriptを少しかじっただけで、何も理解していませんでした。 しかし、ある時期に今回ご紹介する問題を 否が応でも 解かないといけない状況になり、JS-Primer(JSの教科書的なやつ)と睨めっこしながら奮闘しなんとか解き、先輩方にそれをレビューしてもらいました。 そこで 、今回の記事では、 前よりは成長した僕の知見と、先輩エンジニアの方々のアドバイスを融合させつつ 昔の僕のコードの何がダメなのか より良い解答(1を踏まえて、どこを改善すると良くなるのか) 補足説明 この3点に着目しつつ解説していこうと思います! 前置き この問題は(ほぼJSの知識だけで解け
ここにクソコードがある。 誰が作ったかはわからぬ。それが、どのような経緯でクソコードとなったのか、 あるいは、最初からクソコードであったのか、それらは全てクソコード自身が知るのみである。 ファーストコンタクト ある日、営業からシステム案件を打診されたので見積もりして欲しい。というメールが来る。 とある企業の既存システムに機能を追加する簡単な案件ですが、なななんとソースや仕様書をご支給いただけます! と、それはサンタにプレゼントが貰えると信じて疑わぬ子供のような真っ直ぐなメールである。 ソースコードが入った圧縮ファイルを受け取ったプログラマは、早速、コードを読んでみる。 そのシステムが本当にいいコードで書かれているかを判断するには時間がかかるが、 クソコードであるかはおおよそ30分でわかる。 インデントがタブとスペースどちらかに統一されていないとか、フレームワークの誤用があるとか、またはフレ
「クソコード」と言われて傷つく人は職業プログラマに向いてない(改訂版)俺もお前もどうせクソコードしかかけないよ。 というわけで、「これクソコードじゃん」と言われて人格否定だと感じる人はコード書くことを仕事にしないほうがいいと思います。 職業プログラマってのは40年くらい自分が書いたコードに対してクソコードだと言われ続ける仕事ですよ? 「コードには2種類ある。クソコードと、まだクソコードと呼ぶ理由が見つかっていないコードだ。」時間の流れとは残酷なものです。 良いコードの評価基準は日々変化し、あらゆるコードは経年劣化による腐敗に耐えられません。 いまどんなに頑張って良いコードを書いても、良くて数年、悪ければ3日後くらいには目も当てられないクソコードに成り果てます。 目の前にあるクソコードをクソコードと断じることができるのは、我々が現代のベストプラクティスに関する知見を持ち、 かつそのコードが原
クソコード動画「switch文」 #ooc_2020 pic.twitter.com/USTrFcRCAS— ミノ駆動 (@MinoDriven) February 16, 2020 解説スライドはこちらになります。 #ooc_2020 https://t.co/lIpEjTUgnV— ミノ駆動 (@MinoDriven) February 16, 2020 http://javablack.hatenablog.com/entry/2019/06/27/074222 http://javablack.hatenablog.com/entry/20190804/1564845022 オブジェクト指向における再利用のためのデザインパターン 作者:エリック ガンマ,ラルフ ジョンソン,リチャード ヘルム,ジョン ブリシディース出版社/メーカー: ソフトバンククリエイティブ発売日: 1999/1
みりせっく@雌尻ンダー extends Siri @grandcraws ツイ主が勘違いされて傷ついてるようなので、一旦謝罪とこの場でも補足しますが、初学者のコードは普通汚い。初心者はコードが綺麗か汚いかも判断基準がないから。だから教える側がここは綺麗、ここはまずい、普通はこう書く、特殊な書き方はやめよう、という教えをちゃんとやりなさいっていう話です。 2022-08-17 02:49:22 みりせっく@雌尻ンダー extends Siri @grandcraws @manaboru 正論を言うことと相手を傷付けることは無関係で、傷付けるから正論を言わないは間違いだと思いますよ。傷付かないように正論を言うべきで。で、今回はその配慮が足りず誤解させて傷付けてしまったからそこに対して衆人に見える形でリプで直接謝罪してます。それ以上の話として何を求められてますか? 2022-08-17 12:2
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く