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

  • 時代がstaticおじさんに追いついてきた(追記あり) - きしだのHatena

    この文章みてください。 オレはもう20年以上システム業界にいるけどな、その長い経験から言うと、オブジェクト指向なんてものは、理論としては面白いけど、およそ実用的とは言い難いものだな。まぁ、例えばGUIのコンポーネントとかはオブジェクト指向に基づいて作られているようだから、そういうツールとかを作る人には必要なものなのかもしれない。しかし君たちがいずれ作ることになる業務アルゴリズムにはまったく無縁のものだと思ってもらって間違いない。どうもこの業界、オブジェクト指向でなければダメ、というような風潮がまかりとおっているけどな、オブジェクト指向なんか当に使っている人はほとんどいないよ。オレも少し勉強してみたけど、カプセル化とかポリ何とかとか、どうにも利点が理解できなかったね。実際、実業務で使ったことなどないしな…… 「またお前、オブジェクト指向の話をしてるのか」と思ったかもしれませんが、2010年

    時代がstaticおじさんに追いついてきた(追記あり) - きしだのHatena
    estragon
    estragon 2024/05/18
    staticの使用に慎重になるのはスレッドセーフを破壊しやすいからだから、そこに気をつけられていれば忌避するもんではないのはそうだけど、何年もメンテしてると混入して事故を起こしたりとか
  • Javaで最低限おさえておいてほしいクラス・インタフェース35 - 2024年版 - きしだのHatena

    ま、このくらい知っておいてもらわないと&とりあえずこんだけ知ってればだいたいの処理が書けるクラス・インタフェースをまとめてみました。2024年版。 詳しく知りたい人は「プロになるJava」を! java.lang.Class java.lang.Exception <- new java.lang.Integer java.lang.Object <- new java.lang.Runnable java.lang.String java.lang.System java.lang.Thread java.nio.file.Files <- new java.nio.file.Path <- new java.io.InputStream java.io.InputStreamReader java.io.BufferedReader java.io.OutputStream java.

    Javaで最低限おさえておいてほしいクラス・インタフェース35 - 2024年版 - きしだのHatena
    estragon
    estragon 2024/05/17
    選定基準が分からず困惑する。Exception、Object、BigDecimalなんかの重要度が上がったってこと?
  • 掛算の順序と学習指導要領 - きしだのHatena

    あいかわらず掛算の順序の話がもりあがってるようなのだけど、コーディングルールの話なんだから計算の定義の話をしても徒労だよなと思いながら見ていた。 で、ちょっと教育指導要領解説を見てみたのでまとめる。 学習指導要領解説の記述 「【算数編】小学校学習指導要領(平成29年告示)解説」では次のようになっています。順序は表現のときの問題で、計算では交換則を使っていいとなっています。 被乗数と乗数の順序は、「一つ分の大きさの幾つ分かに当たる大きさを求める」という日常生活などの問題の場面を式で表現する場合に大切にすべきことである。一方、乗法の計算の結果を求める場合には、交換法則を必要に応じて活用し、被乗数と乗数を逆にして計算してもよい。 このPDFの115ページ。 https://www.mext.go.jp/content/20211102-mxt_kyoiku02-100002607_04.pdf

    掛算の順序と学習指導要領 - きしだのHatena
    estragon
    estragon 2024/04/07
    5本の🍡の団子の個数は3個/串×5本以外に、5本×3個/串、5個/色×3色、5個×3倍でも同様に正しい。「ずつ」のようなキーワードに着目したパターンマッチになり分からない子が置いてけぼりになる
  • サーブレットを「JavaでのWebアプリケーションの基礎」として最初に勉強させるのをやめてあげてほしい - きしだのHatena

    研修がはじまるという画像でサーブレットJSPのが並んでて、サーブレットを最初に勉強させるのをやめてあげてほしいと思った話。 オブジェクト指向もそうなんだけど、現状で使わなくなっているにもかかわらず情報更新がされずオブジェクト指向やサーブレットJSPが教えられ続けが売り続けられるという現状がある。 でももうさすがに変わってほしさ。 ただ、JSPはそこまで悪くないので、サーブレットで話を進める。(ただし、サーブレットが動かない環境ではJSPは動かない) 使われていない まず、いまの案件の多くがSpring / Spring Bootになってて、サーブレットをさわるということは少ない。 2020年のJetBrainsの調査ではこんな感じ https://blog.jetbrains.com/ja/idea/2020/10/a-picture-of-java-in-2020-ja/ 2021年

    サーブレットを「JavaでのWebアプリケーションの基礎」として最初に勉強させるのをやめてあげてほしい - きしだのHatena
    estragon
    estragon 2023/07/16
    業務で使うにはフレームワークを学ぶ必要があるのがハードル上げてるよね。そのフレームワークの最初にJEEの低レベルから入るかSpring bootから入るかというのはあるけど、流石にサーブレットは一定分かってるべきでは
  • Javaがパブリックスタティックヴォイドメインの呪文から解放される - きしだのHatena

    みなさん、今日もパブリックスタティックヴォイドメインしてますか? ジャバと言えばパブリックスタティックヴォイドメインですよね。 最近はIDEでmain[tab]と入力すれば補完してくれるとはいえ、コードを読むときには目に入ってきたりしますね。 そんなパブリックスタティックヴォイドメインの呪文から解放される日が近づいています。 TL; DR 9月リリースのJava 21の試用機能として void main() { System.out.println("Hello"); } をhello.javaで保存したら、java hello.javaで実行できるようになります。 (Java 21では--enable-preview --source 21が必要) Javaではプログラムを開始するときにpublicなclassなどにStringの配列を受け取るpublicでs

    Javaがパブリックスタティックヴォイドメインの呪文から解放される - きしだのHatena
    estragon
    estragon 2023/06/13
    良いような、悪いような。ショートハンドで使うのは良いと思うけど、パブリックスタティックヴォイドメインとシステムアウトプリントエルエヌは、理解困難度と理解の有用性とのpros&cons評価したとき、どちらに傾くか
  • 空の配列に対するmaxは何を返すか - きしだのHatena

    ちょっと前に「配列中のすべての要素が条件を満たすかどうか判別する関数で、空の配列はTrueを返すべきかFalseを返すべきか」のような話が話題になってました。 まあこれは「Trueを返す」が答えなわけですが、では「配列中の最大値を返す関数で空の配列の場合は何を返すか」が気になりました。 「配列中のすべての要素が条件を満たすかどうか判別する関数」について言えば、簡単に言えばこんな感じ。 まず、配列のすべての要素が偶数であるかどうか判別する関数を考えます。 void main() { int[] data = { 23, 44, 12, 98, 5 }; System.out.println(allEven(data)); } boolean allEven(int[] data) { for (int n : data) { if (n % 2 != 0) return false; } r

    空の配列に対するmaxは何を返すか - きしだのHatena
    estragon
    estragon 2023/06/06
    特定の要素を返すものなら、-infとかじゃなくnullか例外を返して欲しい気持ちはある(実際にそういう値が入ってるのと区別したいので)/ 何であれドキュメンテーションされてれば良いけど
  • オブジェクト指向はすでに粒度が時代にあっていない - きしだのHatena

    定期的にオブジェクト指向disを書いてしまってるのだけど。 とりあえずオブジェクト指向の話をすると定義が人によって違いすぎるので、改めてここでの定義を書いておくと 、基的にはOMTの「データ構造と振る舞いが一体となったオブジェクトの集まりとしてソフトウェアを組織化すること」 に従うのですが 「1990年に流行りソフトウェア開発のすべてを飲み込み、いまとなっては人それぞれ定義が違って技術的議論に使えなくなった、主にオブジェクトを基単位としてプログラムを整理するやりかたを指すマーケティング用語」 という感じです。 ほとんどの場合で人によってオブジェクト指向の指す範囲が違いすぎて、技術的知見の共有には使えなくなっています。でも、いずれの定義にしろオブジェクトを基単位にするというのは重要ではないかと。 ソフトウェアの組織化の単位としてオブジェクトを使うというのが大事で、データの搬送に構造体代

    オブジェクト指向はすでに粒度が時代にあっていない - きしだのHatena
    estragon
    estragon 2021/09/25
    SOAもマイクロサービスも、インタフェースとインフラアーキテクチャの話で、その中身の作り方としてのOOA/OODおよびOOPとレイヤが異なるものなので、矛盾するものではなくない?オブジェクト指向の何をdisろうとしてるの
  • コードに対してコメントを書くと実装に関するコメントになる - きしだのHatena

    おととい、渋谷JVMというイベントがあって登壇させてもらったんですが、そのあとビール飲んでるときに、ぼくが「コード書く前にコメントだけ書くのいいよね」と言ったあとの返答としてきょんくん(kyon_mm)が言った言葉。 全体としては 「コード先に書いてそのコードに対してテストを書くと実装に対するテストになるし、コードを先に書いてそのコードに対してコメントを書くと実装に対するコメントになる」 という感じ。 ここに至るまでの話もおもしろかったんだけど、ここでは、コメントについて書いてみます。 まず、実装に対するコメントってどういうのかというと、こういうの。 id = findId(name); if(id == -1){ // idが-1だったとき登録 register(name); } いやそれはコード見ればわかるから、ってやつですね。 これは、こうやるとより適切です。 id = findId

    コードに対してコメントを書くと実装に関するコメントになる - きしだのHatena
    estragon
    estragon 2015/04/21
    「どうやったら意図をあらわすコメントが書けるか」、「コードを書くとき、なんらか意図があってコードを書くわけなんで、その時点でコメント書いておけば意図をあらわすコメントになるだろう」
  • 1