タグ

javaに関するkasahiのブックマーク (110)

  • 技術に対するモチベーションが下がったらどうする?Javaスペシャリストを20年以上支えてきた思考法とは - Findy Engineer Lab

    世の中にはさまざまなタイプのエンジニアがいます。流行に合わせて次々と新しいプログラミング言語やフレームワークを習得する人もいれば、特定の技術に長く携わり専門性を高める人もいるでしょう。 後者のタイプの代表格と言える一人が、Javaのスペシャリストとして知られるLINE Fukuoka株式会社のきしだなおき(@kis)さん。 彼は20年以上にわたり、この言語と向き合いスキルを突き詰めてきました。 最近では、書籍『プロになるJava*』を執筆するなど、Javaの認知拡大・普及のための活動も行っています。 きしださんは、Javaへの興味が長く続いた理由として「技術コミュニティの存在が大きく影響している」と語ります。 今回はきしださんに、技術コミュニティに関連したエピソードとともに、キャリアを振り返っていただきました。 *…技術評論社より2022.3.19出版。きしだなおきさん、山裕介さん、杉山

    技術に対するモチベーションが下がったらどうする?Javaスペシャリストを20年以上支えてきた思考法とは - Findy Engineer Lab
  • 元JavaエンジニアがGoに感じた「表現力の低さ」と「開発生産性」の話 - DMM inside

    |DMM inside

    元JavaエンジニアがGoに感じた「表現力の低さ」と「開発生産性」の話 - DMM inside
  • PerlからJavaへ DL数3000万以上を誇る「LINEマンガ」の裏側

    LINEマンガ」サービスを提供しているLINE Digital Frontier株式会社のエンジニア採用説明会で、マンガサービス開発室室長の山一成氏がLINEマンガの開発全体について、小澤正幸氏がサーバーサイドエンジニアとしてのお仕事について紹介しました。 DL数2,700万以上を誇る「LINEマンガ」 山一成氏(以下、山):LINEマンガの開発全体を見ている山と申します。よろしくお願いいたします。私からは、主にこの5つについてお話したいと思います。 まずはLINEマンガについて、簡単に紹介いたします。LINEマンガ自体はもともとはLINEのファミリーサービスで、2013年4月にサービスを開始しました。今はLINE Digital Frontierという会社に分社化しまして、独自の会社としてサービスを運営しています。 サービス規模については、こちらに記載したとおり、2020年4月

    PerlからJavaへ DL数3000万以上を誇る「LINEマンガ」の裏側
  • DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる - Qiita

    追記 2022/11/12 追記 この記事読んで、DI 便利だなって思ったらこちらも併せて読んでみてください。クリーンアーキテクチャーの開設の中で依存性逆転の説明が出てきます。難しいかもしれませんが、一度理解すればつぶしが効く考え方なので腰を据えて読んでみてください。 文 ここでは、最近のそこそこの規模のアプリだと大体使われてる(と私は思ってる)Dependency Injection(DI)について、何故使ってるのか?というのを私の理解で書いていきたいと思います。 今回の対象言語は C# ですが、DI 使ってる言語であれば大体同じ事情なのかなと思います。 単体テストしたいよね アプリケーションを作るとうまく動いているかテストをすると思います。 たとえ、そのアプリがハローワールドだとしても動かして目視で確認してると思います。 もうちょっとアプリの規模が大きくなってくるとクラス単位やクラス

    DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる - Qiita
  • 【Java】Spring Boot 2.3.1×Thymeleafでエコーアプリケーション作ったった - Qiita

    はじめに こんにちは! macでSTSの環境構築を行って、Spring BootでHelloWorldしていた者です。 今回は簡単なエコーアプリケーションを作成してみました。 画面遷移図っぽくすると、以下のようになります。 ↓「送信」押下   ↑「お返事bot TOP」押下 前回、前々回同様、Spring徹底入門を参考に進めました。 にはSpring MVCでのエコーアプリケーションの作り方と、SpringBootでのHelloWorldのコードは載っているのですが、Spring Bootでのエコーアプリケーションの方法はなかったので、なんとか混ぜ合わせながら作りました。 当はバリデートとかテストコードとかもチャカチャカ実装するつもりだったのですが…Viewで使っているThymeleafに馴染みがなく(今までJSPを使っていましたが、非推奨らしい…!)、概念と書き方に慣れるのにちょっと

    【Java】Spring Boot 2.3.1×Thymeleafでエコーアプリケーション作ったった - Qiita
  • JJUG CCC 2019 Fall 資料まとめました - Qiita

    タイトルのとおり昨日開催された「JJUG CCC 2019 Fall」の資料をまとめました。 資料が見つからなかった場合のリンクは、部屋番号のハッシュタグといった関連する内容のツイッターになっています。 ーーー タイムテーブル 10:00〜10:45 A+B 試して学ぼう、Java EE アプリケーションをOpenShift(Minishift)でデプロイ! C+D Head toward Java 13 and Java 14 E+F All people are VIP~Disney哲学から考えるDiversity G+H Gradle を完全に理解した人が、何も分からなくなるための第一歩 I JavaGraalVMとPicocliで、ときめくネイティブコマンドラインアプリを作ろう L Coding That Sparks Joy with Quarkus M前半 BigQueryを

    JJUG CCC 2019 Fall 資料まとめました - Qiita
  • Spring BootとPlay Framework、どっちがどう良いの? 専門家が5つの視点で徹底解説 - エンジニアHub|Webエンジニアのキャリアを考える!

    Spring BootとPlay Framework、どっちがどう良いの? 専門家が5つの視点で徹底解説 Spring BootとPlay Framework、どちらを使うべきか……?開発者を悩ませる疑問に答えるべく、専門家2人がさまざまな視点で両フレームワークの特徴を解説します。 【比較ポイント(1)】設計思想や登場してきた歴史的背景 【比較ポイント(2)】得意分野や利用されている領域 【比較ポイント(3)】各コンポーネントの実装スタイル 【比較ポイント(4)】データベース接続まわり 【比較ポイント(5)】今後のリリース展開について Webアプリケーション開発において、フレームワークは欠かせない存在となっています。開発者が実装すべき処理に集中でき、堅牢でメンテナンスしやすいアプリケーションをすばやく開発できる。これこそ、フレームワークを使う最大の利点といえるでしょう。 JavaやScal

    Spring BootとPlay Framework、どっちがどう良いの? 専門家が5つの視点で徹底解説 - エンジニアHub|Webエンジニアのキャリアを考える!
  • SpringBootを使ってSwaggerに入門してみた

    チーム内でバックエンドとフロントエンドを担当分けることになり、 僕はフロント側を担当することになりました。 APIだけ先に用意してほしいな〜ってことで、試しにSwaggerを使ってみたら、だいぶ楽だった。 使い方調べてたら、いくつも方法があるみたいなので、 整理を含めて書き残しておこうと思い立った次第です。 今回はSpring Bootを利用してボトムアップアプローチで設計書を書き起こしてみます。 ボトムアップ・アプローチ:ソースコードから書き起こす ボトムアップアプローチというのは、ソースコードをベースにSwaggerを作成します。 ボトムアップアプローチの良いところは以下2点ですね。 ソースコードベースで設計書が出来上がるので、ドキュメントとコードが乖離しにくくなる 設計書作ってからソースコード書くという二度手間がなくなる 「手戻り発生したら困るじゃないですか〜」みたいな話もありますが

    SpringBootを使ってSwaggerに入門してみた
  • Spring Boot でマイクロサービスを作る - Qiita

    はじめに 私が前に参画していたプロジェクトでは、一部でマイクロサービスというアーキテクチャが採用されていました。 マイクローサービスという言葉は、前々からかなり流行っていたらしいですが、当時の私はそんなことはつゆ知らず、ずっとMicrosoftのサービスなのだと勘違いをして、赤っ恥を掻いた覚えがあります。 ただ、当時も案件の忙しさから曖昧な理解のまま開発を終えて今に至るため、このままでは完全に全てを忘れてしまうと危機感を覚え、しっかりと勉強しようと思い立ちました。 以前JavaとSpringBootで1つサービスを作ったのですが、今回は復習として同じような環境でマイクロサービスを作成してみたいと思います。 作成するのは物凄く簡単なRESTサービスです。 マイクロサービスとは 実際に私が受けた説明としては、1つのアプリケーションに全ての機能が詰まっているこれまでのアプリケーション(モノリシッ

    Spring Boot でマイクロサービスを作る - Qiita
  • Javaのサポート期間 - Qiita

    LTS(=長期サポート)はバージョン11から開始で、5年サポートで、3年おきにリリース。8以前も長期サポートだったので、同等とし、LTS に ○ を付けました。 このリリースサイクルですと、9もLTSにしないとおかしくないでしょうか?8→11への移行期間が4ヶ月しかないです。まぁ、恐らくバージョン8の商用利用も結局、2020年12月までのサポートに変わるのかもしれません。あと、OpenJDK と Oracle JDK のサポート期限は同一にして欲しいです。全て Java 8 は2020年12月にして欲しいです。 Ubuntu LTS の OpenJDK のサポート期限は発表になっていません。Ubuntu 16.04 の default-jdk は 8 です。Ubuntu 18.04 は default-jdk は openjdk-11-jdk ですが中身は Java 10 で、Java 1

    Javaのサポート期間 - Qiita
    kasahi
    kasahi 2019/01/16
  • いまさらJavaのアノテーションを復習する - Qiita

    概要 業務でSpring Bootを使うことになり、はるか昔の新卒のJava研修の内容しかなかった頭にアノテーションの概念をインプットする必要に迫られた。 参考にしたサイト ものすごいわかりやすかったです http://www.atmarkit.co.jp/ait/articles/1105/19/news127.html 特にこの例でスッと入ってきました アノテーションとは、「注釈」という意味です。Javadocコメントは開発者に対してプログラムがどういうものかを説明するために使いましたが、これと同様に、コンパイラや実行環境に対してプログラムがどういうものかを伝えたいことがあります。 後述する具体的な例を見れば分かりますが、Javaではアノテーションをプログラムに記述することにより、コンパイラで出力される警告メッセージを抑制したり、実行環境によってプログラムの動作を変更したりできます。

    いまさらJavaのアノテーションを復習する - Qiita
    kasahi
    kasahi 2019/01/16
  • Spring-Bootでログイン機能を実装してみる - Qiita

    前置きと環境 Spring-Bootを使って簡単なログイン機能を実装しました。 似たようなことはPHPで一回やってるし余裕っしょーって思ったらめちゃくちゃ苦戦しまくったので備忘録としてまとめておきます。 全てを網羅して書くと力尽きてしまうので、詰まった部分を中心にざっくりと書いていこうと思います。 ここ間違ってるよ!などありましたらやさしく教えて頂けると喜びます(╹◡╹) 環境 Spring-Boot(2.0.4) MySQL(ユーザ情報、セッション情報格納用) Spring-Security(認証・認可処理に利用) 処理の流れ 今回の処理の流れは以下のようになります。 画面は「hello.html」、「login.html」が存在し、hello.htmlはログインしないと見られない画面とします。 ①認可処理 hello.htmlへログインなしにアクセスしようとするとlogin.html

    Spring-Bootでログイン機能を実装してみる - Qiita
  • Spring BootでREST APIを実装する - Qiita

    Spring BootでREST APIを実装するときのツールの組み合わせについて、2018年6月時点での個人的なベストプラクティスをまとめてみました。 開発環境(IDE) 選択肢 Eclipse + Spring Tool Suite (STS) IntelliJ IDEA → IDEとしてはAndroidの公式開発環境に採用されていることもあり、今後はIntelliJ IDEAが普及していきそうだが、Spring開発サポート機能を利用するにはUltimate Editionが必要となる。ライセンスを購入するほどでもないプロジェクトではEclipseを使うのが良い。 参考 https://www.jetbrains.com/idea/features/editions_comparison_matrix.html ビルドツール 選択肢 Gradle Maven → Groovyで柔軟に処

    Spring BootでREST APIを実装する - Qiita
  • 最近のJava界隈はとても良い感じ - Qiita

    はじめに 私はこれまでのエンジニア歴で継続的にJavaを使い続けていますが、以前と比較すると使い勝手の面で格段に良くなっていると実感しています。 また、JJUG、JSUGなどで講演を聞いたりしたりする中で、個人的に最近のJava界隈は非常に進歩的で良い感じだと感じています。 そんな中、「Javaは人口が多いだけで特別に採用するメリットが無い」「Javaはレガシーで生産性が低い」というツイートを見かけたので、その反論を込めて私の考えを書き連ねたいと思います。 なお、以下で述べる内容には、Javaが良いというよりは、特定のフレームワークが良いだけ、というものもありますが、あくまでJava「界隈」について述べているのであしからず 。 最近のJavaの良いと思う点 言語仕様、標準ライブラリの改善 プロジェクトの立ち上がりの早さ 型安全性の活用 マイクロサービスアーキテクチャへの対応 パフォーマンス

    最近のJava界隈はとても良い感じ - Qiita
    kasahi
    kasahi 2019/01/15
  • これは便利!人気のJavaライブラリ+αのまとめ - Qiita

    概要 Mavenのリポジトリのランキング( https://mvnrepository.com/open-source )からランキング上位のものと自身の独断のものを追加。 記載例 1. ライブラリのタイトル(公式ページへのリンク) 2. GitHubのページ 3. バージョン情報 4. 使い方例 5. 使用する際のMavenのタグ(※) ※ 注意事項:Mavenのバージョンタグ(version)のバージョンナンバーは常に変わるので注意。 テストフレームワーク JunitJavaのユニットテストの定番ライブラリ GitHub:https://github.com/junit-team/junit5 バージョン情報:https://mvnrepository.com/artifact/junit/junit 使い方例:https://qiita.com/takehiro224/items

    これは便利!人気のJavaライブラリ+αのまとめ - Qiita
    kasahi
    kasahi 2019/01/15
  • Javaで三項演算子はどこまで許されるか - Qiita

    はじめに この記事ではJavaに限った話をします。 先日、以下の記事を書きました(タイトル変更してます)。 Javaではif (isAdmin == true)というコードを書いてはいけない - Qiita この記事で、以下のように三項演算子を良い例として挙げました。 しかし、三項演算子は読みにくいという反応が結構ありました。あくまでシンプルな例として挙げたつもりだったのですが、説明不足だったので、別途記事を書きます。 三項演算子を使っていいのは、単純なもののみに限られるのが自分の中での結論です。 三項演算子とは 三項演算子(ternary operator)は以下のような形をしています。

    Javaで三項演算子はどこまで許されるか - Qiita
    kasahi
    kasahi 2019/01/09
  • JavaのHTTPクライアントはどれがいいのか? - Qiita

    議題 JavaでHTTP通信を書くことになったけれど、クライアントライブラリはいったいどれを使うのが良いのか? 候補が多くて迷った。 前提条件 簡単に導入してサクッと使いたい 分かりやすくてシンプルなコードにしたい そんなにたくさん機能はいらない Androidでも使えるといい 何があるか 使ったことがあるもの、知っているもの Apache Commons HttpClient > 昔よく使った古株の有名どころ。情報が多い。 Apache HttpComponents > 上記の発展系 OkHttp > 最近Androidアプリで使った google-http-java-client > 使ったことないけどそこそこメジャーっぽい HttpURLConnectionで自前実装 > 昔実装したけど結構めんどい 他にもないか探す Googleで「okhttp vs」や「apache httpcl

    JavaのHTTPクライアントはどれがいいのか? - Qiita
  • 僕は僕にどういう教育を授けたか - 怠惰を求めて勤勉に行き着く

    まえがき 会社の若い子に「情報系出身でもないのに一体どうやって勉強してきたんですか?」と聞かれたのでランチべながら「こんな読んだ。これもタメになった。あ、これもタメになった」とKindleを広げながらリストアップした。思い返せばたくさんを読んだ。その中には役に立ったものもあれば時間の無駄だったものもある。すると「あ、役に立っただけ抽出したら有益かもしれないな」と思ったのでエントリにする。 僕は文章を簡潔に分かりやすくまとめる才能が致命的にないのでこのエントリもげっそりするほど長い*1が、2017年も暮れなのでここはひとつ日酒でもかっ喰らいながら自分の人生を振り返ってみようと思う。 無理やり要点をまとめるならば、 TCP/IPの知識 Linuxの知識 なにかひとつプログラミング言語 なにかひとつGUIシステムの理解 アルゴリズムとデータ構造 強運*2 を身につけたらどんなに低く見

    僕は僕にどういう教育を授けたか - 怠惰を求めて勤勉に行き着く
  • 闇雲な「JavaじゃなくてKotlinやりたい!」という気持ちが消えた理由 - Mi in progress

    前置き 先日このようなツイートをしたのですが、予想以上の反響を頂いて驚きました。 知的好奇心・エンジニアとしての漠然とした成長の観点から、「JavaよりKotlinやりたい」と思っていたが、現在自分たちが抱えているプロダクトの課題を俯瞰すると、「重大な課題は、プログラミング言語を変えて解決するものではない」という結論に至った。— つくし 𝕄𝕚𝕤𝕒𝕜𝕚 𝕄𝕒𝕜𝕚𝕟𝕠 (@T5uku5hi) 2018年9月12日 ツイートを読み返し、「この書きぶりだと様々な文脈を憶測できてしまうな」と思い、140字では書ききれなかった文脈の部分を記事で書き起こすことにしました。 結論 知的好奇心・エンジニアとしての漠然とした成長の観点から、「プロダクトの言語をJavaからKotlinに変更したい」と思っていましたが、 「事実・課題・解決策」に対する認知能力の向上 言語仕様をトレードオ

    闇雲な「JavaじゃなくてKotlinやりたい!」という気持ちが消えた理由 - Mi in progress
  • 私からあなたへ 一人前のJavaエンジニアになるためのロードマップを送ろう - Qiita

    内容 以下記載のURLを参考にロードマップをJavaバージョンにしてみた。 初心者から立派なJava エンジニアになる方への学習の道しるべになれば。 また自分自身すべてできるわけではないので、できるようにするためのメモ書きとして。 (ただ以下をなんとなく理解するだけで2,3年以上かかった。。。) 参考 ※ 会社の同期から基文法についてレベル別記載のアドバイスをいただいたので修正(2018/4/9) 学習方法 1.Hello World どのプログラミング言語でもそうですが、まずは動かし方を学びましょう。 ゲシュタルト崩壊するくらいHello Worldは書きましょう。 最初のうちはstatic void mainの意味も分からなくて大丈夫です。徐々に理解できるはずです。 2.基を学ぶ 以下のサイトや書籍を使用してプログラミングの基礎を知りましょう。 文法の書き方やメソッドの使い方、アク

    私からあなたへ 一人前のJavaエンジニアになるためのロードマップを送ろう - Qiita