メむンコンテンツぞスキップ
芋出し画像

【スプリングブヌタヌの挂流蚘 #1】Spring Bootæ­Ž10幎超のSE、今さら倖の䞖界が気になり始めた

    はじめに10幎以䞊䜿い続けおきたSpring Boot

    システム開発に携わっお20幎以䞊。そのうち10幎以䞊、Spring Bootを䜿っおきたした。

    開発のスピヌドを倧きく倉えおくれた、頌れる盞棒です。今でも、その信頌は倉わりたせん。

    けれど、ふず思いたした。

    もし今、䜕もないずころから新しいシステムを䜜るなら、私はもう䞀床Spring Bootを遞ぶのだろうか。

    䜿い慣れおいるから、ずいう理由をいったん脇に眮いお考えおみたい。ほかの技術にも觊れたうえで、自分の遞択肢を芋盎しおみたくなりたした。

    「スプリングブヌタヌの挂流蚘」は、そんなSEの技術探玢の蚘録です。初回は、出発点ずなったこれたでの経隓ず、これから確かめたいこずを曞いおみたす。


    Spring Boot登堎前のJava開発

    Spring Bootを䜿う前は、Struts 1やStruts 2、Spring Framework、Java EEなどで開発しおいたした。

    圓時の開発を振り返るず、業務の凊理を曞く前に、蚭定や実行環境を敎える䜜業がありたした。XMLの蚭定やラむブラリの組み合わせなど、アプリケヌションを動かすための準備も仕事の䞀郚でした。

    もちろん、そこで身に぀いた知識は、その埌の開発にも぀ながっおいたす。ただ、䜜りたい機胜にたどり着くたでの道のりは、もう少し短くならないものかず思っおいたした。


    Spring Bootずの出䌚いは衝撃だった

    Spring Bootを䜿い始めお匷く感じたのは、「開発のスピヌドが栌段に䞊がった」ずいうこずでした。

    XMLで曞いおいた蚭定が枛り、䟝存関係の管理がしやすくなりたした。組み蟌みTomcatでアプリケヌションを動かせるこずも、REST APIを䜜りやすいこずも、私には倧きな倉化でした。

    それたで準備に䜿っおいた時間を、䜜りたい凊理に回せる。その手応えがありたした。

    プロゞェクトの構成をそろえやすくなったこずも、チヌムで開発するうえでは助かりたした。長く䜿い続けおきたのは、こうした䟿利さを実感しおきたからです。


    䞀床基盀を䜜れば、開発は驚くほど進む

    ずはいえ、Spring Bootを遞べば、最初からすべおが決たるわけではありたせん。

    私の開発では、パッケヌゞをどう分けるか、ログをどう出すか、セッションや䟋倖をどう扱うか、ずいった刀断が必芁でした。䟝存関係も含め、最初の基盀は詊行錯誀しながら䜜っおいたす。

    その埌は、既存プロゞェクトの基盀を出発点にしお、バヌゞョンに合わせお手を入れたり、改善したりしおきたした。

    䞀床土台が敎えば、チヌムで開発を進めやすくなりたす。共通のやり方があるこずで、個々の機胜に集䞭しやすくなるからです。

    この蓄積は、長く䜿っおきた技術の匷みだず感じおいたす。同時に、ほかの技術ず比べるずきには、私が持っおいる経隓の差も意識する必芁がありそうです。


    䟿利な䞀方、理解できおいるのだろうか

    䜿い続けるうちに、䟿利さずは別の問いも出おきたした。

    DI、アノテヌション、自動蚭定。開発を助けおくれる仕組みですが、内郚の動きを十分に理解しないたたでも、䜿えおしたうずころがありたす。

    私自身、動いおいるこずず、仕組みを説明できるこずを、分けお考えたいず思うようになりたした。

    たた、以前のプロゞェクトで䜿った蚭蚈が、次のプロゞェクトにも合っおいるずは限りたせん。基盀を再利甚できるのは䟿利ですが、今回の芁件にも必芁なのかは、改めお考える䜙地がありたす。

    慣れおいるず、遞ぶ理由を説明する前に手が動きたす。その手際のよさを生かし぀぀、ずきには立ち止たっおみたいのです。


    10幎䜿い続けたからこそ芋えおきた課題

    もう䞀぀気になっおいるのが、䜿い続けるための負担です。

    アップグレヌドでは、互換性を調べ、必芁な修正を入れ、回垰テストを行いたす。Spring Securityの蚭定倉曎など、調査や察応に手間を感じるこずもありたした。

    機胜を䜜る時間だけでなく、維持する時間も含めお技術を考えたい。長く䜿っおきたからこそ、そう思いたす。

    ただし、これはSpring Bootだけに固有の問題ずは限りたせん。ほかの技術でも、曎新ぞの察応や孊び盎しは必芁になるでしょう。ただ比范しおいない段階で、隣の芝生の手入れたで楜だず決めるわけにはいきたせん。

    始めやすさず、続けやすさ。その䞡方を確かめおみたいず思っおいたす。


    今、れロから䜜るなら䜕を遞ぶか

    実際の技術遞定では、過去の資産やチヌムの習熟床を無芖できたせん。私にずっおも、Spring Bootの経隓は倧きな刀断材料です。

    では、その制玄をいったん倖しお、小さなシステムを䜜るならどうでしょうか。

    これから、次の技術で同じ仕様のAPIを段階的に実装し、比べおみる予定です。

    • Spring BootJava

    • FastAPIPython

    • NestJSTypeScript

    • QuarkusJava

    • GoフレヌムワヌクはGinかEchoを怜蚎䞭

    たずはGETずPOSTでJSONを扱うずころから始め、DBのCRUD、入力怜蚌、䟋倖凊理ぞ進む構想です。その先には、認蚌・認可やトランザクションなども考えおいたす。

    芋おみたいのは、凊理の速さだけではありたせん。最初に動くたでの手間、コヌドの読みやすさ、孊習や保守の負担も気になりたす。䜕をどう枬るかは、実装を始める前に敎理したす。

    比范の結果、やはりSpring Bootを遞ぶかもしれたせん。甚途によっお、別の技術を遞びたくなるかもしれたせん。今のずころ、答えは決たっおいたせん。

    長く䜿っおきた盞棒のよさも、倖ぞ出おみるず違っお芋える気がしたす。

    次回は、比范する技術ず、同じ条件で䜕を確かめるかを敎理する予定です。たずは、小さなAPIを䜜るずころぞ向けお準備を進めたす。

     
     
    実務経隓20幎以䞊のシステム゚ンゞニア。 超䞊流工皋から蚭蚈・開発・むンフラ構築・運甚たで䞀気通貫で経隓。フルスタック開発やPM、採甚・組織運営の経隓を掻かし、AI・最新技術の怜蚌から、IT実務やマネゞメントに関する䜓隓談・考察たで幅広く発信しおいきたす。

    あなたぞのおすすめ