2020/05/14(木)

今朝は4:00起床からのapex。

自宅待機。

Java開発では、ドロップボックスに表示する内容をenumで設定。そこで選択した値を取得する方法がわからないので、要調査。

そのほか、エラーが発生したときにだけ表示されるメッセージを設定。

Java開発

【開発環境】
フレームワーク・・・SpringBoot
Html・・・Thymeleaf
DB・・・MySQL
DB接続・・・mybatis
Webサーバー・・・Joboss
統合開発環境・・・Eclipse
PC・・・Windows10
【おススメサイト】
・CMAN・・・HTMLの各項目が見やすい
・初心者向けCSS(スタイルシート)入門・・・CSSの仕組みを初心者向けに分かりやすく説明している。
【開発手順】
①Eclipseインストール
②EclipseへのSpringBootの
 インストール
 ※Eclipseマーケットプレース検索時に、
  複数のspringがある場合、
[参考サイト]
・Eclipse、STSインストール~プロジェクト起動JDK、JRE設定

③新規プロジェクト作成
[参考サイト]
・spring bootプロジェクト作成

④JBoss(Webサーバー)ダウンロード
[参考サイト]
・Red Hat JBossダウンロード
 ※20200423現在 コロナの影響かダウンロードできない。

⑤MySQL(DB)ダウンロード


【その他】
・フレームワークが消えた場合。
 →フレームワークのダウンロード
【アノテーション】
<springアノテーション>
アノテーションが付与されたクラスをSpringのDIコンテナにbeanとして登録する。

■@Controller
 ・画面遷移の制御
 ・ドメイン層の Service の呼出 (主処理を実行する)
 ・リクエストの窓口になるクラス
 [参考]
  ・Controller、Service、Repositoryの違い

■@Service
 ・業務処理を提供する。
 ・ビジネスロジックを実装するクラス

■@Repository
 ・データ層のクラス(DAO等のDBアクセスを行うクラス)に付与する。
 ・データ永続化を行うクラス

■@Component
 ・Spring MVCに限らず、SpringのDIコンテナに
  beanとして登録したいクラスへ付与する。

■@RequestMapping
 ・Controllerの処理対象のパスを指定
 [参考:各種属性]
 └ ■Post
    
 └ ■Get

■@SpringBootApplication
 下記のアノテーションが使用可能となる。
 ・@Configuration・・・設定を記述するクラス
 ・@EnableAutoConfiguration・・・
 ・@ComponentScan

■@ModelAttribute
 メソッド内の処理よりも先に実行される。
 画面の値をコントローラーで使用する。

■@Autowired

■@AssertTrue
 boolean型メソッドの作成。


------------------------
<入力チェック>Validation
Controllerに下記を記載する。
■@Validated
 チェックしたいFormに付加する。

Formに下記を記載する。
■@NotNull
■@Max,@Min
■@Size(max=5,min=1)
■@Pattern
■
■
【Javaクラス】ビジネスロジック
-----------------------------
<単語>
■Model
 データの値を格納

■redirect

■model
 入っている値を画面(html)に返すための変数


■Map
 Javaでキーと値をセットにして扱いたい時に使うデータ構造

■messages.properties
 メッセージを設定する。このファイルからメッセージを取込み表示する。
 [参考]
  ・設定手順
  ・バリデーションでの設定

■enum
 [参考]
  ・基本設定~リスト設定
  ・ラジオ・チェックボックス
  ・enum値からデータを取得配列(Object型)

■List

■for
 [参考]
  ・拡張for文...etc

----------------------------
<各条件>
■画面遷移
 参考:構成

■セレクトボックスから値を取得
 [参考]
  ・チェック、ボタン、セレクトから取得
【HTML】画面に表示する内容の設定
■h1~h6
 見出しタグ・・・h1=大きい文字~h6=小さい文字
■span
 グループ化タグ・・・表示する文字をグループ化して、文字色などを変える。
 例)<span style="color:red">赤色</span>
■div
 グループ化タグ・・・文字の高さや幅、改行など、細かく設定できる。
 参考サイト:https://saruwakakun.com/html-css/basic/div-span
■meta

■button(デフォルトtype=submit)
 innerHTMLで見た目をcssで自由に設定できる。
 └submitとbuttonの違い
  submit・・・押しただけで送信される。
  button・・・何も指定しなければ、押せるだけで、何も送信できない。

■input
 [参考:type]

■form
 入力・送信フォームの作成。
 └ method
   └ post・・・値のみを送信する。
          サーバー側のデータを変更するような送信の場合。
   └ get・・・サーバー側のデータを変更せずに取得する場合。
 [参考:各属性methodの違い]

■table
 テーブル(表)を作成。
 └ TR・・・行
 └ TD・・・列
 └ TH・・・見出し
 [参考]
  ・テーブル、枠、CSS
  ・セル結合

■iframe
  分割された各フレームに表示するファイルと表示方法を指定。
  [参考:http://www.htmq.com/html5/iframe.shtml]

■submit
 送信処理。押下時に即送信される。
 [参考]
  ・

■メッセージ読み込み
 [参考]
  ・html直接参照
  ・エラーメッセージ

■if
 [参考]
  ・複数条件のif文
  ・空文字の判定方法
  ・真・偽判定

■block
 [参考]
  ・block,each,if,with,

■#クラス名(ユーティリティオブジェクト)
 [参考]
  ・#string,#objects・・・etcフラグメント
 mainのhtmlに別のhtmlに記述している内容を呼び出して表示する。
 [参考]
  ・
■eachattr・・・定義されていない属性値の設定ができる。
■href(<a>タグの属性)・・・出発点を記述する。「到達点」として指定のできるのはname属性やid属性。

■style
 ・styleタグ・・・cssの中身をすべてHtml上に記載する。
 ・style属性・・・各タグにcssのプロパティを書き込む。

■$,#,@,*の使い方th:utext・・・改行コードを含む文字列で改行コードをエスケープせずに表示する。(messages.propertiesに定義している値も使用可能)
 注意・・・XSS攻撃の危険有り
【その他】
■ポートの使用状況確認方法(8080)
https://qiita.com/hirorin/items/e26d3aec0bfc97b9a173

■ファイル内文字の文字化け
 ①ファイルの文字コード=UTF-8か確認。
 ②Eclipseの当該ファイルプロパティが
  UTF-8か確認。

■色コードテーブル各行色分け
【CSS】文字色やフォント、固定文字の設定ファイル
 ・CSSの使い方(基礎)
【JavaScript】
■document
 htmlの内容を取得する。
 [参考]
  ・各種プロパティ、
  ・使用例/チェックボックス、ラジオボタン等
  ・各種プロパティ2

■function
 [参考:function,ボタン,リンク,input]

■replace
 置換

■値取得
 
■const
 「定数」。値は再代入による変更はできず、再宣言もできません。

■ifgetElementById
【Eclipse】
■ショートカット
 └ インシデント・・・Ctrl + i (範囲選択必要)
 └ getter/setter・・・Alt + Shift + S → Generate getters and settersを選択

【DB接続手順】
①MySQLセットアップ~データベース・テーブル・ユーザー作成
 参考:https://sibrog11.com/2020/04/27/mysql関連/

②設定ファイルの作成(java)
 ■application.properties・・・MySQL接続設定
 ■entity・・・テーブル情報設定
 ■Mapper・・・select等のsql文の設定
 ■controller・・・データの取得等の処理記述
 ■xml・・・select等のsql文の設定
 ■html・・・controllerから取得したデータを元に画面表示設定
 参考:DBデータ表示


【XML】
■SQL文
 [参考:updateupdate2]

■select、update、delete・・・etc
 [参考]
  ・パラメータ

 └ parameterType = "map"
    Javaでキーと値をセットにして扱いたい時に使うデータ構造
    [参考]
   ・select使用例

2020/03/24(火)

今朝は1:30に一回起きて、資料作成して提出。で、もう一回就寝して、5:30起床。

例えば4:00に起きて資料作って、そのまま朝食、出勤でも使った時間は一緒だが、どちらの方が出勤時に眠たくならないか、脳が疲れないか、を試してみようと思う。

で、今日の業務はJavaの製造。これまでの製造経験をもとにコードを見ていると、これまでよりもスムーズに製造することが出来た。以前はなにをどうみたらいいのかわからず、上司に聞きまくっていたが、今回はあまり聞かずに作成できた。

eclipseの使い方もわかってきたので、自宅での開発もどんどんやっていこうと思えた。


今日の考察


【睡眠】

最近よく夢をみる。ということはあまり熟睡出来ておらず、睡眠の質が悪いのではないかと思ったので、調べてみる。(まとめ:睡眠)


今日のnews


【スペース X の「衛星インターネット」、年内に北米で始動へ】堀江さんメルマガ

今までの地上での通信を宇宙の衛星に移すことで、基地局を持っている会社の一人勝ちが出来なくなり、そしてそれよりも広範囲の通信範囲を形成できることで、地上のどこでもネット使える時代が来ている気がする。

またこの事業により、天文学者との衝突も起こっているようだ。今後どのような対応を行っていくのか、気になる。

記事:https://forbesjapan.com/articles/detail/32886/1/1/1?s=ns/


Javaの特徴

ニーズ

・2001年のリリース以降、プログラミングランキングで常に上位 。

・ Javaのニーズは安定して高い 。

・ サーバー内で動くプログラミング言語。

・ サーバー構築を行うプログラマーにJavaのスキルが求められることが多い 。

・ サーバーやシステムの運用のために、今後もJavaのスキルは安定して求められる 。


【メリット】

・ ライブラリやAPIが充実している 。

  画像処理 →  OpenCV

  グラフィック →  JavaFX

  構文解析 →  JavaParser

・ 自由度の高い実行環境

  JVM(Java Virtual Machine:Java仮想マシン)というプログラム上で動作しており、 MacでもWindowsでも、JVMさえ使えればどんな環境でもJavaを動作させることができる。

・ 処理速度が速い

  Javaがコンパイラ型言語であるため、動作が速い 。

コンパイラ型言語は事前に機械用のソースへコンパイルするため、インタプリタ型言語に比べて、実行速度が速くデータ処理に優れてる。 

・ セキュリティ面が優れている 。

【デメリット】

・ オブジェクト指向に対する理解が必要 。

・ 小規模システム開発に適していない 。

 Javaの強みである拡張性と再利用性が小規模なシステムでは活かされないうえに、無理にJavaを用いることでソースが長くなってしまったり、挙動がおかしくなってしまうことも考えられる。 

個人で案件獲得を目指すのであれば、RubyやPHPといったプログラミング言語がおすすめ。


【 フレームワーク 】

フレームワークのメリットは、

  • 開発期間を短くできる 。
  • 多人数開発時にソースの記述方法が統一されやすい。
  • フリーランスとしても仕事が取れる 。

デメリットは、

  • パターン化されているため、その脆弱性が見つかり易く、そこを攻撃されることがある

 ( プログラミング言語:フレームワーク = 2:8」くらいの力配分で学習を進めるという認識でいると効率的に学習を進めていくことができる )

 Rubyなら「Ruby on Rails」 
 PHPなら「CakePHP」 
 Javascriptなら「AngularJS」

Javaの代表的なフレームワーク

1位  Spring Framework

特徴

  • カバーしている範囲がとても広い万能型フレームワーク 。
  • 拡張性が高い 。
  • 保守性が高い 。
  • 再利用性が高い 。
  • 万能なフレームワークなので様々なシステム構築に対応可能

2位  Play Framework

特徴

  • 動作が速い
  • 堅牢性がある
  • 高速に開発ができる
  • 少ないリソースでアプリを動作させることができる

3位 JSF

特徴

  • 開発チームとデザインチームで分業できる
  • ユーザーインターフェイス(ユーザーが操作する見た目の部分)を簡単に作ることができる
  • 綺麗なかっこいい画面を作る!ということはあまり得意ではない
  • システム全体のうち見た目に関する部分を提供してくれる

【 オブジェクト指向】

開発におけるポイントを実現したもの 。

  • プログラムの独立性  → カプセル化
  • プログラムの再利用性 → 継承
  • プログラムの拡張性 → ポリモーフィズム

プログラムの種類

  • オブジェクト指向型
  • 手続き型
  • 関数型

2020/02/20(木)

今朝は5:00起床。

このサイトのSSL設定をしようと思って調べていたが、イマイチわからず、まだ時間がかかりそうだったので、週末に設定することにした。


今日のNews


【YouTube】堀江さんメルマガ

最近の動画で超強力シュレッダーになんでも入れる動画が流行っているらしい。これは喋らないため、グローバルな動画となり、日本人に限らず外国人でも動画を見れるため、再生回数が飛躍的に伸びるということらしい。

そういったことも、今後動画を作って収益をとりたいなら、考慮するべきだろう。

【法人税と所得税】堀江さんメルマガ

日本の法人税、所得税は諸外国と比べて、あまりにも高いらしい。現在、合わせて税率55%のようだ。

法人税率のみを比べると、

日本23.2% シンガポール17% 香港16.5%

しかし、香港は課税所得が約2800万以下なら8.25%まで軽減されるそうだ。

そのため、外国企業が日本に入ってこず、日本の大企業は海外へ出ていく。(税収減)

しかも法人税は消費税と違って、不景気の影響をもろにうければ減収になるなど、安定した収入にならない。

法人税を下げて、消費税を上げるべきだ、という話だった。


今日の取組み


【Java開発】

今日はDBからデータを取ってくる処理を実装した。

SQLを XMLに記載し、それを呼び出す処理を実装。


2020/02/19(水)

今朝は5:00起床。

朝食まで発表資料作成&勉強。

昨日の夜帰宅中にラジオでサンドウィッチマンの天使のつくり笑いを聞いてみたら、オジンオズボーン篠宮さんの難しい漢字の覚え方がめっちゃ面白かった!

鬱という漢字の覚え方を喋っていたが、笑えるw

YouTubeで投稿したところ、かなり子供に人気があるようだ。

他にも色々な漢字バージョンがあり、漢字ドリルもあるそうだ。


今日の考察


【コミュニティの作り方】

自身と同じぐらいの熱量、考え方の人を集めて、何か新しいことをしたいなあと最近よく思う。

今の会社内にはそういう人はおらず、そのほかの交友関係を考えてみても、なかなかそういう人がいないので、どうやったらそんな人と出会い、活動していけるかを考えたとき、コミュニティを作ることを思い立った。

・ブログを読んでもらい、共感してくれる人と仲良くなる。(受け派)

ブログに日々の日記や考え方を書いていると、それを読んだ時に、似てるな〜とか、僕もそう思う!といったように共感出来ると、ブログ投稿者に興味が出るはず。

そこですぐに連絡が取れるように、ブログの日記に常に連絡先を載せるとか、コミュニティへ参加しやすいように記載するなどしてみる。(事前にコミュニティを作る必要あり)

・逆に人のブログやTwitterなどを読んで、共感出来る人に連絡をとってみる。(行動派)

やはり気になる人には積極的に行動あるのみ。


今日の取組み


【Java開発】

今日も業務でJava開発を行っているが、アノテーションの@autowiredの意味がわからん。

インターフェースと抽象クラスがなぜ分かれていて、分けるきとによるメリットもわからん。

サイトで検索したが、例文がわかりにくすぎ。

コード例と言葉だけで説明しようとするからわかりにくい。イメージ図も入れればいいのに。

結局サイトの説明ではただ時間を無駄に消費するだけだったので、先輩に教えてもらい、ある程度理解できた。ただ、このような構成にするメリットがわからない。

これからもっと製造して、学習していこう。

2020/02/18(火)

今朝子供の泣き声で5:30起床。

いつもより1h早めに起きれたかな。


今日の動画


今日の堀江さんの話は、

「やりたいことがない奴何ていない!」

という話だった。それが無いという人は、目標レベルの考え方が間違っており、例えば、

①好きな芸能人はだれか?←新垣結衣さん

②新垣結衣さんと付き合って結婚したくない?←結婚したい

③それが目標

という具合にささいな、自分本意な目標はいくらでもあるはずということ。

注意点

・目標の損切りはしっかりやらないといけない(行動する前から諦めるのはNG)


今日の考察


【新型コロナウィルスの影響】

現在中国で発生した新型コロナウィルスの影響により、中国や東京ではネット授業やテレワークの導入が進められてるようだ。

もともと東京では、今年開催される東京オリンピックのためにテレワーク導入が加速していたみたいだが、新型ウィルスでさらに加速しそう。

きっかけがないと、導入がすんなり進まない会社は、常に後手に回る会社なのかなと、考察してみる。


【ブログについて】

気になるnewsのピックアップ、考察書いていこう


【Java開発】

今日から業務で、Java開発が始まった!

初めての本格的なJava開発に入れて嬉しい!

で、早速参考ソースを3hほど見ていたが、さっぱりわからん!w

どれが関数で、どれがフレームで、どれが独自に書いたものなのか一切わからない。1単語ずつネット検索するしかなく、絶望的に時間がかかるし、眠たくなるし。

さすがに先輩にソースの一部の流れを教えてもらい、なんとなくそれぞれの役割がわかったので、明日再度自身で検証して、作っていこう。