タグ

ブックマーク / nowokay.hatenablog.com (7)

  • きれいなコードは互いに似通っているが、クソコードはどこもその趣が異なっている - きしだのHatena

    先日のJJUG CCC 2023 Fallの懇親会でクソコードを研究しているという学生がいたのだけど、クソコードの研究は難しいという話をした。 人工的にクソコードを再現しても、あの野生のクソコードのクソさには全く足りないわけで。 トルストイが言うように「すべてきれいなコードは互いに似通っているが、クソコードはそれぞれにクソの趣を異にしているものである」なので、なかなか「これがクソコード」のように類型化するのも難しい。 典型的なクソコードを書いてみても、なんだかきれいなクソコードができてしまう。 クソコードはネットに出回らないので、資料の収集もまた難しい。ネットにないということは、ネットの情報に基づいている「AI」もホンモノのクソコードには触れていないことになる。 クソコード収集サイトをつくっても、実際のクソコードは業務固有処理も含まれるので、掲載できる形に整理していくと来のクソさが薄れて

    きれいなコードは互いに似通っているが、クソコードはどこもその趣が異なっている - きしだのHatena
    takuwz
    takuwz 2023/11/19
  • StringBuilderを使ったクソコードはどこまで遅いか - きしだのHatena

    ※ 4/9 11:25 いろいろ計測しなおしてます。こちらも参照 Javaで文字列連結する場合には+演算子よりもStringBuilderを使うべき、という話があるのですが、よく sb.append("[" + data + "]"); みたいなコードをみかけて、あんまり意味ないなーと思ったりします。 あと、 sb.append("title:"); sb.append("[" + data + "]"); みたいに、+演算子を使った一行の式にして sb = "title:" + "[" + data + "]"; としておけば「title:」と「[」はコンパイル時点で最適化されたのに、ってコードもあります。 ということでTwitterJavaでの文字列連結は+を使うべき、ってやったほうが、StringBuilder使ったsb.append("[" + data + "]")みたいなク

    StringBuilderを使ったクソコードはどこまで遅いか - きしだのHatena
    takuwz
    takuwz 2018/01/31
  • 組み込みソフトウェア業界というナゾの裏世界の話 - きしだのHatena

    ここまでのあらすじ 我々の住むソフトウェア業界は、SI、サービス・パッケージ、ユーザー企業という大小3つの大陸にわかれ、時々いさかいがありながらも平和に暮らしていた。 そして、我々の住む世界とは別に、同規模の技術者が暮らす、組み込み業界という世界の存在も知られていた。 組み込み業界は、存在はすることは確かなのだが技術者の姿は見えず、そのプロダクトの存在も、わかるものにしかわからないのであった。 我々は、組み込み業界と交信できる唯一の手段、C言語を使って、その世界の住人と交信するしかなかった。 しかしあるとき、FPGAという次元ホールをみつけたワカモノ達が、組み込み業界に迷い込んでしまう。ワカモノ達の前に立ちはだかる屈強な組み込み技術者。彼らの前にワカモノたちは、あるものは倒され、あるものは捕らわれ、そして、命からがら表の世界に逃れてきたワカモノも「べり・・・ろ・・ぐ・・・」というナゾの言葉

    組み込みソフトウェア業界というナゾの裏世界の話 - きしだのHatena
  • コミュニティに入るか入らないかでエンジニアとしての幸福度がかわる - きしだのHatena

    以前、「勉強会に参加しないと不幸になる話」というのをアップしました。 勉強会に参加しないと不幸になる話 - きしだのはてな このときは、勉強会x勉強会という枠だったので、「勉強会」と表現していますが、実際にはコミュニティに参加しないと不幸になる話でした。 あと、ここでの幸せ・不幸せというのは、エンジニアとして、という話で、エンジニアリング能力があがるとか、エンジニアリングの活動がやりやすいとか、エンジニアリングの活動が評価されるとか、エンジニアリングの話題を共有できる仲間が増えるとか、そういう観点です。 エンジニアとしての幸せ以外にも、人生にはさまざまな観点の幸せがある、ということは最初に補足しておきます。 会社が教育機能をもっていない エンジニアとしての幸せに大切なのは、エンジニアリング能力を上げていくことです。 ただ、2013年の産業経済省IT人材白書の概要に IT企業に対して、201

    コミュニティに入るか入らないかでエンジニアとしての幸福度がかわる - きしだのHatena
  • FPGAのおすすめ教材 - きしだのHatena

    ここ最近のエントリを見て、モテたくてFPGAを触りたくなったという人もいるだろうと思います。 ただ、FPGAを触るといっても、どこから始めればいいのか、何を買えばいいかわからない人も多いのではないでしょうか。 そこで、FPGAを触るために用意するもので、おすすめのものをまとめてみます。下書きでずっと放置していたのですが、ばたばたと公開しておきます。 前提としては、今までハードウェアを触ったことのないソフトウェア技術者が、今後FPGAでデータ処理をしてモテるための準備をするということを想定してます。 「まず3万円用意します」 最初に、FPGAの評価ボードが必要です。 いろいろ安い評価ボードもありますが、ある程度最初からデバイスがついていないと楽しくないし、勉強もやりにくいです。また、その評価ボードを使ったテキストも必要になります。 そういう点で考えると、いまはDE0一択になると思います。 D

    FPGAのおすすめ教材 - きしだのHatena
  • FPGAとArduinoとRasberryPIの違いと、FPGAを勉強する理由 - きしだのHatena

    はたから見てると、FPGAとArduinoとRasberry PIって、なんか小さくてデバイス挿して使ってて似たもののように見えるかもしれません。 そんな中、どこが違うの?って思ってる人もいるかと思ったので、それぞれの違いと、そしてそこから得られる技術者としての知識をまとめてみます。 まあ、得られる知識として「それぞれのデバイスの使い方と周辺環境」ってのはありますが、それは当然として。「それぞれのデバイスの使い方と周辺環境」を得るメリットがわかる比較としてまとめたいと思います。 根底は「なんで最近FPGAをやってるか」っていうことの説明なので、そういうバイアスがあると思ってください。 FPGAというのはチップの種類なので、実際にはDE0などのFPGA評価ボードとの比較ですが。中でもDE0-nanoは大きさや価格を考えると、豪華なArduinoくらいの位置づけとして出してきたようにも見えます

    FPGAとArduinoとRasberryPIの違いと、FPGAを勉強する理由 - きしだのHatena
  • プログラマの実力は経験だけであがらないことがレベル格差につながる - きしだのはてな

    プログラマというのは、道具に慣れることが、実力があがることにならないのですよね。だから、勉強せず業務経験だけだとレベルが低いままということになってしまう。 Javaを10年さわり続けて、Strutsを5年さわり続けても、それだけでは、与えられた画面を手際よく作成できるようになるだけで、たとえばStrutsすらよりよく使えるようになるわけではなかったりする。 Javaにしても、「volatileってなんですか?」という問いに、まあ知らないのはしかたないとしても、解説を見ながらですら答えられない可能性がある。 プログラムの反復生産は、プログラミング能力の向上にあまりつながらない。設定や記述に慣れるだけだ。そして、この「慣れ」というのには「難しいからそもそも実装を回避する」というようなものも含まれる。実力の向上は、作業ができるレベルで止まってしまう。 プログラマとしての実力をあげるための勉強が自

    プログラマの実力は経験だけであがらないことがレベル格差につながる - きしだのはてな
  • 1