hijikitaroのブログ

しがないSIerとして、日々プロジェクトを管理し、システムを育て、日々お子を見守り育てる中での出来事や学びを淡々と書いています。

FindBugについてちょっとした調べもの

ちょっと使う機会があったので調べたついでにメモしてみました。

(そういえば、数年前にも開発で虫マークが大量発生したことがあるなと・・・思っていました)

FindBugとは

FindBugsとはビル・ピューとデビッド・ホベメイヤーが製作したオープンソースプログラムでJavaコードにあるバグを解析する[2][3]。静的解析を使って[2][4]Javaプログラム内で100種類もの潜在的なエラーを検査する[2]。FindBugsソースコードではなくJavaバイトコード上で運用され[4]、スタンドアロンGUIアプリケーションで配布される。またEclipseNetBeans[5]、IntelliJ IDEA[6][7][8]、Hudson[9]、Jenkins[10]のプラグインとしても利用可能である。

出典:FindBugs - Wikipedia

大雑把に言うと、プログラミング中にバグがありそうなコードをチェックして知らせてくれるツールといった感じかと思います。(ビルドしなくてもよいので、その場でパッと見れる点が良い点なのかと)

ちなみに、FindBugs はもう開発はされていないそうです。(ということは、今後はSpotBugs を使用するように考えた方がよいのかもしれない。)

FindBugsの後継としてのSpotBugsの紹介 - Kengo's blog

何ができるのか

  • バグ予備群が検知できる

検知できるバグの種類は以下リンクに記載されている。

findbugs.sourceforge.net

また、バグのパターンは下記記事で整理されている。

FindBugsのバグパターン一覧 - 現場のためのソフトウェア開発プロセス - たかのり日記

使い方は下記記事でまとめられている。

(今回私が使う場合は、 Eclipse と思われる。)

qiita.com

おわりに

FindBugs 実施することでコードの品質があがるのかは今後試しながらやっていくしかないかなという気がしている。さらに、基準やコードの修正方法などいくつかの方針を決めてから本格的な修正に入らないと無限に対応することになりそうだなとも感じました。

もう少し自分の中で整理してどのバグパターンを重視してみていくかは考えていきたいと思います。

あとは、毎回 Eclipse 開いて実行して確認してはイヤなので、チェックと展開までを自動化を試みようと思われる。 ただし、まずは上記でどれだけの潜在バグが発生するかを分析してからかなと思っています。

参考

www.techmatrix.co.jp

findbugs.sourceforge.net

weblabo.oscasierra.net

英語の発音記号を知りたいときにやったこと 小粒Tips

英語の勉強している時に、英単語の発音記号、特に英文に出ている書く英単語の発音記号を一気に知りたいなと思うことがあると思います(自分がたまたま英語耳の練習をしているからなのか)。

そんな時に、自分がやっているちょっとしたTipsになります。

使ったツール

使うツールは以下の2つになります。

webkikaku.co.jp

tophonetics.com

手順

  1. 英文を写真か画像で保存する(本などから一度にテキスト化したい場合にやります) ※ただし、PDFなどのテキストでコピペできる場合はこの手順は不要

  2. Googleドライブに保存し、OCRGoogleドキュメントにする

  3. ドキュメントからコピペし、toPhoneticsで発音記号へ変換する ※必要であればコピペし保存する

以上。

おわりに

私は英文と発音記号が記載されたドキュメントを保存し、いつでも見れるようにしています。 ただし、数が多くなると割とめんどくさい作業なので、そのうち自動化できればと思っています。

技術メモ:SpringBootを使ってDocker上のMySQLへ接続する

ちょっとしたことをしたのでメモしておきます。

目的

  • SpringBootを使ってDB接続ができること

やったこと

  • SpringBootを使い、Docker 上のMySQLコンテナへ接続する

環境

  • Windows 10 Home (64bit)
  • Docker Toolbox
    • ポート:3306 ※ポートフォワードで「Vitual box(3306)→Docker_MySQLコンテナ(3306)」に接続するように設定済

手順

下記ブログを参考にし、DBの接続先のみDocker上のMySQLコンテナに変更しました。 qiita.com

ポートフォワードの設定をしているからか下記のように localhost と設定しても接続できました。

spring.datasource.url=jdbc:mysql://localhost:3306/{databasename}
spring.datasource.username={username}
spring.datasource.password={password}
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jpa.database=MYSQL
spring.jpa.hibernate.ddl-auto=update

おそらく Virtual Box を使用しない場合、接続設定に注意が必要と思います。

qiita.com

参考

qiita.com

qiita.com

stackoverflow.com

技術メモ:ローカルPCからDocker上のMySQLコンテナに接続する

2020年は技術的な何かをやったらしょうもないことでもブログに残していきます。

やったこと

  • phpMyAdminコンテナ と MySQLコンテナ を Docker 上に構築し、ローカルPC から phpMyAdminコンテナ 経由で MySQLコンテナ へ接続する

環境

  • Windows 10 Home (64bit)
  • Docker Toolbox
    • ポート:8090 ※ポートフォワードで「Vitual box(8090)→Docker(8080)」に接続するように設定済

手順

下記ブログをそのまま実施 qiita.com

もともとは A5:SQL Mk-2 などのデスクトップアプリから接続してみようと考えていたが、Docker のみで簡易に接続できる方法があるのであれば試してみようと思い、phpMyAdmin を採用してみました。

Dokcerのみで完結するのであれば、ローカル環境を汚すこともないため、便利と感じました。

こういった便利さからコンテナ技術はどんどん流行ってきており、今後も活用していくことでもっと開発がスムーズになり、環境の差異による面倒な問題が解決していくと幸せな世の中になるのではと思ったり思わなかったりしています。

※ A5:SQL Mk-2 は実務でも使ったことがある。下記のようなツール。 a5m2.mmatsubara.com

できなかったこと

docker-compose.yml の MySQL のvolumes が設定できなかった。 下記記事でも上手くできていないので、もう少し調べてみようかと。

qiita.com

読書記録(2020年):ソフトウェア・ファースト

今回の読書記録は

ソフトウェア・ファースト

ソフトウェア・ファースト あらゆるビジネスを一変させる最強戦略

ソフトウェア・ファースト あらゆるビジネスを一変させる最強戦略

かなりぐさっとくる内容だと感じたものの、その通りなのでぐうの音も出ないなと思いました。世の中のITを開発・使うすべての人、特にSIerの人は読んだ方がよいと感じました。(ただ、あまり心穏やかじゃなくなるかもしれませんが・・・)

読むきっかけは?

Twitter上で読むべきとよく流れてきていることが本を知るきっかけになったと思います。その中でSIerの人が読むとよいという内容があった気がするため、転職後もSIerとして働く自分としては読むべきだと思い、読むことにしました。

ちなみに自分は何をしている人か

  • 前職と現職ともにSIer(前職はメーカーのIT子会社、現職はITベンダー)
  • 事業会社の業務効率化のためのシステム開発経験
  • プロジェクトマネジメントを中心、少し前はシステムアーキテクトを中心

※現職は2020年1月からなので、現時点では業務は何もしていない。

この本をなぜ読む?

以下の2つに関することを得れればなと思っていました。

  1. 今後ソフトウェアをSIer側として関わっていく際の考え方
  2. 現時点での世の中のソフトウェアの在り方と考え方

この本を読んでどうだった?

ITを「 効率化の道具」と過小評価

これは実際に自分が開発を行っている時に、強く感じていたなと思いました。事業会社でもただの効率化のためITへの期待があまりにも小さく、また、IT開発の丸投げ感が強かったと感じ、さらに、SIer側である自分たちもITを使って事業会社をよくしようとする意識が弱く、言われたことをただITに落とすのみ、かつ、ITによる価値を上げるための活動はできていなかったと感じていました。 また、実際に自分の経験だと、まだまだクラウドを実業務(R&D関連以外)では活用できておらず、さらに、開発方法も何も改善されていないままのウォーターフォールで開発し毎回時間がかかりすぎ、かつ、業務効率がされないといったことが多い状態になっていると思います。

上記以外のいろいろ思うことがありますが、ソフトウェアを軽視している雰囲気があることを指摘して頂いています。

DXの本質的な意味

この本では「ITの手の内化」が書かれており、上記の内容と被るが、ITを軽視せず、ITによって今のビジネスがより良くなることを意識していくことが重要と再認識させていただきました。2018年にある海外研修で、「世の中のすべての企業はITを活用してビジネスをしているため、どの企業もIT企業だと考えてITを開発していくべき」だというような内容を受け、それ以来は事業会社とSIer含めて、ITをビジネスのコアととらえ、「作って終わり」と考えず、「育てていく」いと考えていくべきだと思っていました。

このDXに関する捉え方や手の内化するための組織論も書いてあり、ぜひ各企業のIT部門以外の人も含めて読んでみるとよいと感じました。

「 π(パイ)型人材」

エンジニアとして今後のキャリアを考えるにあたって、今後はT型を発展させた幅広い知識と深い専門性×2の形をめざして自分だけの武器をもった人材になっていくとよいということが書かれており、どんどんエンジニアとしての価値を高めるためには、多くの勉強をしていく必要があることを感じました。実際に、今後の世の中は、「どこでも活躍できる人材」になっていかないと終身雇用もなくなり、手に職がないと生きていけない世の中になると強く感じています。

このような時代背景も含めて、ソフトウェアに関わる人のキャリアパスとそのための組織に関して書かれており、今後のSIerとしてのキャリアを考えるよい本だなと感じました。

おわりに

この本を書く事業会社の方が読み、ITの手の内化が本格的に進んでいったらSIerの規模は激減していくだろうなと思いました。10年後はもう今みたいな働き方はきっとできず、本当にスキルもっていないとITとして仕事できないだろうし、スキルがないと事業会社へ転職することも難しくなるかもしれないなと危機感を感じさせてくれる本だったなと思いました。

※そのために、ビジネスを向上のために適したソフトウェアアーキテクチャを考えられる人材になっていきたい。

技術メモ:ローカルPCからDocker上のMySQLコンテナに接続する

2020年は技術的な何かをやったらしょうもないことでもブログに残していきます。

やったこと

  • phpMyAdminコンテナ と MySQLコンテナ を Docker 上に構築し、ローカルPC から phpMyAdminコンテナ 経由で MySQLコンテナ へ接続する

環境

  • Windows 10 Home (64bit)
  • Docker Toolbox
    • ポート:8090 ※ポートフォワードで「Vitual box(8090)→Docker(8080)」に接続するように設定済

手順

下記ブログをそのまま実施 qiita.com

もともとは A5:SQL Mk-2 などのデスクトップアプリから接続してみようと考えていたが、Docker のみで簡易に接続できる方法があるのであれば試してみようと思い、phpMyAdmin を採用してみました。

Dokcerのみで完結するのであれば、ローカル環境を汚すこともないため、便利と感じました。

こういった便利さからコンテナ技術はどんどん流行ってきており、今後も活用していくことでもっと開発がスムーズになり、環境の差異による面倒な問題が解決していくと幸せな世の中になるのではと思ったり思わなかったりしています。

※ A5:SQL Mk-2 は実務でも使ったことがある。下記のようなツール。 a5m2.mmatsubara.com

できなかったこと

docker-compose.yml の MySQL のvolumes が設定できなかった。 下記記事でも上手くできていないので、もう少し調べてみようかと。

qiita.com

2019年振り返り

2019年も今日で終わるということで、だらだらと振り返ってみようと思います。

2018年も振り返りを見てみると、2019年は試す年にしたいと書いてあり、いろいろと試すことができた年だったんじゃないかと感じています。

何をやったのか

ブログ

ほぼチュートリアル的な内容しか書いていないが、技術系の内容をアウトプットすることができたと思います。まだまだ深い内容はかけていない、かつ、対象とする技術も流行りでほかの人が多く記事を書いている技術しかできていません。が、自分なりに勉強したことをアウトプットすることはかなり意味があると感じた一年でした。

Twitter

技術の最新情報を収集するためにTwitterを始めました。自分から発信はほかの人の記事をTwitterに流す、かつ、雑多な内容をつぶやいているでの有益な情報は全然発信できていません。ただ、少しでも自分がつぶやいた内容を「いいね!」されると嬉しいものがあることに気付くことができた一年になりました。(たまたまTwitterで取り上げられたことで、ブログのアクセス数が増えるんだなと驚く経験もできました。が、それ以降は全然でした。)

勉強会 & イベント

今年は初めて勉強会に参加しました。きっかけは前職の人が発表するから参加しないと言われたことがでした(そう言ってくれた人は、かなりQiita、Twitterで有名だと言うことを後日知りました。なぜこの会社で働いているのかが不思議で仕方ない人です。本当に。)。

ハンズオン?ハッカソン?形式の勉強会にも参加し、会社を離れるとこんなにも技術力が高い、かつ、志が高い人が多いだということに気付くことができました。それに、周りの話を聞くと自分が全然新しい技術を使った環境にいないことも強く実感する機会になりました(他の人は実務でクラウド使ってこんな部分に困っているなどを話していて楽しそうだなと感じた)。

テック系イベントへも初めて参加し、世の中はこんなにも新しい技術で盛り上がっていて、面白いことがどんどん実現されていくことを強く感じることができました。

こういった会社外に出ることの重要性を強く感じた一年でした。

転職

人生初めての転職をします(2020年から別の会社で働きます)。その転職に関する思いやらなんやらは下記ブログに書いたので、そちらを参照ください。

hijikitaro.hatenadiary.com

英語

高校以来、英語を割と真剣に勉強しました。これも下記ブログに書いたので、そちらを参照ください。

hijikitaro.hatenadiary.com

お子の生誕とお子の子育て

今年一番の大きな出来事と人生が大きく変わる出来事でした。初めて接する自分のお子の可愛さと愛おしさを強く気づくことができた。そして、お子を育てる大変さとお妻の強さと存在の大きさにも気づくことができた。自分自身はなかなか成長することがなくなってきたが、お子は本当にすぐに成長していく。最初は話さず無表情だったのに、今では感情をもって言葉にならない言葉を話してくれたり、ごはんも食べるようになってくれたり、つかまり立ちしたり、とまだ一歳にもなってないのにどんどん成長したなと思います。人生を充実させてくれるお子に感謝の一年でした。(お子を見ているとAIの学習はまだまだだなと感じたりもした。)

まとめと2020年の目標

2019年は人生が大きく変わる年だったと思います。2018年に変わりそうな兆しがあり、アウトプットや外を見るようになることで、何か変わるきっかけとなった年だったのではと感じています。さらに、お子の生誕により、今まで以上に家族の将来を考えるようになることで、会社に頼らずにしっかりと自分の力でお金を稼げるように今スキルを磨こうという気持ちが大きなってきたように感じている。

ここまで、かなりだらだらと書いてしまったが、アウトプットすることで少しづつ変わっていくことが実感できた一年になりました。

  • 2020年の目標
    • チュートリアル的な実装でなく、技術を深堀したブログを書く
    • 家族が助かるアプリを開発する
    • フォロー数を50以上にする(技術的なアウトプットをきっかけに)
    • 勉強会への継続した参加 & LTチャレンジ
    • テック系イベントへの継続した参加
    • TOEIC700点越え
    • 新しい会社を全力で楽しむ
    • 子育てを全力で楽しむ