Location via proxy:   
[Report a bug]   [Manage cookies]                

2024/8/26(月)本日のお題 ⇒ 【tarコマンドについて(Linux)】【jarファイルとは】【ファイルの拡張子とは】【javaのpackageとは】【javaのimport文とは】【javaのextendsとは】

【tarコマンドについて(Linux)】

------------------------------------------------------------------------

tarコマンドとは

 

Linuxでは、複数のファイルをまとめて1つのアーカイブファイルとして作成するには「tar」コマンドを使用します。

「tar」コマンドで作成されたアーカイブ拡張子「.tar」として書庫化されて、ファイルの圧縮はされずに1つのファイルをまとめて管理することを目的としています。

圧縮するには「zip」コマンドや後述する拡張子「.tar.gz」形式で行う方法があります。

-----------------------------------------------------------------------

 

 

[個人的な感想]

 

最初tarコマンドはファイルを圧縮・展開するコマンドなんだなって思ってて、

 

実際オプションをつければそうゆうこともできるから認識自体は間違ってはなさそうやけど

 

そもそものtarコマンドの主たる目的(機能)は

 

複数のファイルをまとめて一つのアーカイブという箱にまとめる

 

ということであって、圧縮・展開に関してはそこについてくるオプション機能(使いたいなら使っていいよ)みたいな感じだった

 

 

 

 

 

≪参照≫

www.sejuku.net

 

 

 

 

 

 

【jarファイルとは】

------------------------------------------------------------------------------

jarファイルとは

 

jarファイルは、「Java Archive」ファイルの略称で、「アーカイブ」つまりJava開発で利用するファイルをまとめて保管しているファイルということになります。

 

具体的には、jarファイルはコンパイル済みのclassファイルや画像などのファイルを、zip形式に圧縮してまとめたファイルです。

 

jarファイルはなぜ利用される?

 

Javaシステム開発では、いくつものファイルが組み合わさることでシステムとして稼働するように構築していきます。

 

全てのファイルを1つにまとめると容量が非常に大きくなってしまうことも少なくありません。

 

ファイルを圧縮して1つのファイルにまとめることで、大幅に容量の節約が可能となります。

 

さらに、jarファイルはzip形式のファイルと異なり、jarファイルの状態で使用することが出来るメリットがあります。

 

zip形式のような解凍作業は不要で、利便性が高くなっている点もjarファイルが利用される要因です。

----------------------------------------------------------------------------

[個人的な感想]

jarファイルっていうのはjavaソースコードを書いたファイル等を圧縮したファイルってことなのか。

 

しかもzip形式と異なり、解凍不要で使用できる点はかなり熱いですね。

 

javaの研修等々で見かけたことは度々あったけど

 

なんのことやらさっぱりわからない状態だったのでスッキリしました。

 

 

 

≪参照≫

style.potepan.com

 

 

 

 

 

 

【ファイルの拡張子とは】

--------------------------------------------------------------------------------

 

拡張子とは

 

拡張子とは、ファイルの種類を示す文字列のことです。

 

テキストや画像、音声、動画など、ファイルの種類によって使われる拡張子は異なります。

 

拡張子の役割を理解することで、ファイルの種類の識別や使用するソフトウェアの判断、異なるOSでの互換性の確保などに役立つでしょう。

 

-------------------------------------------------------------------------------

[個人的な感想]

ファイルの種類を表す文字列のことね、なるほどなるほど。

 

なんとなーくそんなイメージはあったけど、改めて調べてみると認識が凄いクリアになりました。

 

これから実務をしていくうえで、頻繁に使う拡張子の名前ぐらいは無意識レベルで理解して仕事できるレベルまでもっていきたいです。

 

(最近テキストファイルの拡張子が「.txt」だということを覚えたぐらいなので。)

 

正直意識してファイルの語尾についている拡張子の種類なんてみたことなかったので、

 

今まではメモ帳のアイコンがあればそれがテキストファイルぐらいの認識しかなかったのですが

 

これからはGUI環境じゃなくてCUI環境での作業も増えていくことを考えると

 

頻繁に使うものぐらいは覚えておくと、多少は業務の負担が減りそうだと思いました。

 

 

 

 

www.mouse-jp.co.jp

 

 

 

 

 

 

javaのpackageとは】

---------------------------------------------------------------------------------

packageとは

 

パッケージ(package)はクラスやインターフェースをグループ化して分ける仕組みです。

Javaでプログラミングをするとたくさんのクラスを作ることはよくあります。たくさんのクラスを作ると同じクラス名を付けることはできません。

しかし、グループ化して分けてさえいれば、同じクラス名を付けていても問題は発生しなくなります。また、同じ機能や関連するクラスをグループ化して分けていることで、クラスも検索し易くなり修正や改良する際に探す手間も省くことができます。

 

--------------------------------------------------------------------------

[ぼやきのコーナー]

一応javaの研修は受けていたつもりだったんですけど、

 

まさかpackageがどんなものなのか失念してしまうなんて...

 

これ基礎中の基礎なのでマジ恥ずかしいです。。。

 

一応調べたらすぐ思い返すことができたので、完璧に忘れているわけではなかったとこは良かったのと

 

packageを使うことの利点の部分を改めて認識することができたのでそこは良かったです!

 

(研修中も恐らく説明はあったはずなんでしょうけど、packageというものの概念を覚えることに精いっぱいで

 

packageを使うことによって何のメリットがあるのか見たいな話までは理解できていなかったので今回知れてよかったです!)

 

今度javaの基礎文法をおさらいする記事でも書いて復習しないとあきませんな。

 

 

 

≪参照≫

chibicat.hatenablog.jp

 

[↓参照した記事で個人的に見やすかったものとしてこちらも置いときます↓]

qiita.com

 

 

 

 

 

 

 

 

 

javaのimport文とは】

--------------------------------------------------------------------------------

Java ではあらかじめ用意されたクラスを自分のプログラムの中で利用することができます

 

クラスを利用するには java.util.regex.Pattern のようにクラス名にパッケージ名を加えた完全修飾名で記述する必要がありますが、

 

あらかじめ import 宣言を行っておくことでクラス名だけで記述することができます。

 

--------------------------------------------------------------------------------

 

 

[ぼやきのコーナー]

これも研修で確実にやったんだけど

 

何をするためのものなのかの認識があまりにもざっくりとしすぎてて

 

かなり認識が霧がかってたやつだ。

 

これも改めて調べることで内容を再認識したのに加えて、importを使うメリットも把握できたのでよかったです。

 

正直私は容量が悪すぎて、一度にたくさんの事を言われても覚えることができないので

 

「一回見たり聞いたりしたことがある状態」

 

っていうのを作ったうえで改めて内容を調べるということはかなり大事なのではないかと思っています。

 

まずそもそも初見の言葉なんて日本語で書いてあったとしても他言語をみたときぐらい

 

見聞きしたときに抵抗感を覚えるんですよね。

 

まずその言葉の抵抗感を少なくする作業から入らないとすんなり理解できないんですよね自分って。笑

 

そこが自分自身が容量悪いと思うところです。

 

まあスペックなんて人それぞれですから、自分に合ったアプローチで頑張りますよ。

 

 

 

 

≪参照≫

www.javadrive.jp

 

 

 

 

 

 

 

 

 

javaのextendsとは】

--------------------------------------------------------------------------------

 

extendsとは

 

Javaの継承(extends)とは、既存クラスのメソッドやフィールドの内容を引き継ぎながら、新しいクラスを定義することです。

 

継承元となるクラスのことを「スーパークラス」、継承した新しいクラスのことを「サブクラス」といいます。

 

 

---------------------------------------------------------------------------------

 

 

[個人的な認識として]

extends(継承)って最初研修で存在を知った時から本当にようけわからんやつで

 

理解するのが難しかったjavaの機能です。

 

一応ざっくりとした私の認識は

 

自分が今持ち合わせている能力に、他のやつが持っている能力を足して、強くなった自分を作る

 

というもので、これをjavaっぽく説明すると

 

継承先(サブクラス)のクラスで定義した機能に、

 

継承元(スーパークラス)のクラスで定義したメソッド等の機能を全て渡して使えるようにしてあげることで

 

二つのクラスの機能をどちらも使える新しい最強のクラスが出来るよ

 

みたいな感じなのかな....恐らく。

 

実際に能力を譲渡した側(スーパークラス)の機能を使う方法とか(クラス名.メソッド名で記述とかとか)細かいルールみたいなのは存在するにしても

 

他のクラスの機能を使える最強のクラスを作れるって点ではかなり便利な機能だなとは思います。

 

でも私はこのextendsに出逢った時からマジで思っていたことが一つあって

 

これは私の価値観的な話が大いに混ざったかなり私的な意見なのですが、

 

能力を継承される側・・・能力を受け取るクラスのことを「サブクラス」

 

能力を譲渡する側・・・能力を渡すクラスのことを「スーパークラス

 

というのですが、

 

 

『いや、能力を渡されてパワーアップするんやから能力貰った方がスーパーなクラスってことでスーパークラスやろ普通!!!!!!!!!』

 

ってずっと思ってました。

 

この「スーパーなクラスなんやから能力高い方がスーパークラスやろ」みたいな考えが変にあったせいで

 

extendsを理解するのにかなり苦労しました。

 

まあでもなぜ継承元(能力を渡す方)がスーパークラスで、継承先(能力を受け取る方)がサブクラスなのかっていうのは一応考え方があって

 

一応理解はしているつもりなんですけど、説明し始めると2時間ぐらいかかりそうなので

 

どうゆう考えでスーパークラス・サブクラスを分けているのかっていうのを

 

とてもわかりやすく説明されている記事がありましたので

 

そちらをご覧いただけると理解できるかと思います。(下記参照)

 

「スーパー=凄い強そう」

 

みたいなイメージがあった自分には、理解するのに苦労したっていう話です。

 

<おまけ>

[オーバーライド]

一緒に覚えておきたいものとしてオーバーライドというものがあって

 

スーパークラスで既に存在しているメソッドをサブクラスで上書きして

 

新しいメソッドとして使うことができるもの

 

 

 

 

 

≪参考≫

camp.trainocate.co.jp

 

[スーパークラス・サブクラスを分かりやすく解説してくれている記事]

https://mrp-net.co.jp/mrp_blog/tech_20231006/

 

 

 

 

 

 

 

2024/08/09(金) 本日のお題 ⇒ 【Apacheとはなにか】【ミドルウェアとは】【リレーショナルデータベース(RDB)とは】【SQL文と管理コマンドの違い】【データベースのschema(スキーマ)について】【データベースの種類(型)と主要なデータベースについて】

Apacheとはなにか】
Apache(アパッチ)とは、オープンソースとして無料で利用できるWebサーバーソフトウェアです。
(Webサーバーソフトウェアとは、ChromeSafariなどのWebブラウザを利用してWebサイトへアクセスした際に、Webサーバーで処理をして接続元(のブラウザ)へHTMLやCSSJavaScriptなどの情報を返却する役割を持つソフトウェアです。)

高い処理性能豊富な拡張機能使いやすい管理画面などが特徴で、大規模Webサイトでも柔軟に対応できます。

一方で、高機能ゆえに設定が複雑になる傾向があり、セキュリティ対策やメンテナンス、運用作業にも注意が必要です。継続的な保守が欠かせません。

Apacheとは?特徴や導入目的や人気のWEBサーバーとの比較をわかりやすく解説:https://jitera.com/ja/insights/7276#:~:text=Apache(%E3%82%A2%E3%83%91%E3%83%83%E3%83%81)%E3%81%A8%E3%81%AF%E3%80%81,%E3%82%82%E6%B3%A8%E6%84%8F%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%A7%E3%81%99%E3%80%82

 

 

 

ミドルウェアとは】
[アプリケーションとOSの中間に存在するソフトウェア]
ミドルウェア(middleware)とは、コンピュータを構成する要素の一つで、基本機能を提供するOSOSだけではできない特別なことを提供するアプリケーションとの間に存在します。

ミドルウェアとソフトウェアの違いがわからないという声も聞きますが、ミドルウェアはソフトウェアの一種です。

アプリケーションは業務の遂行に特化した機能OSは汎用的な機能を担いますが、求められる機能の中にはアプリケーションほど具体的ではなく、OSほど汎用的でないものもあるでしょう。それを担うのが両者の中間に存在するミドルウェアです。

ミドルウェアとは?役割や機能、種類をわかりやすく解説!:https://it-trend.jp/development_tools/article/32-0044

 

 

 


【リレーショナルデータベース(RDB)とは】

--------------------------------------------------------------------
RDB(Relational Database:リレーショナルデータベース)とは、表形式の複数データを関連付けて使えるようにしたデータベースのことです。

RDBは、必要なデータを取り出しやすいというデータ操作性の高さから、大手企業の基幹系システムの約8割で利用されているといわれています。

リレーショナルデータベースでは、データを行と列で構成されるテーブルに格納します。各行は特定のレコードを表し、列は属性です。テーブルは、キーによって互いに関連付けられることで、データ間の関係が明確になります。

リレーショナルデータベースの利点は、データの整理と抽出が非常に効率的であることです。たとえば、企業が顧客情報を管理する場合、顧客の名前等の各データや購買履歴などを個別のテーブルに分けて保存し、必要に応じて関連付けた使用が可能です。

リレーショナルデータベースは、データの一貫性と整合性を保ち、複雑なクエリを迅速に処理する能力があります。データベースの初心者から専門家まで、最適なデータ管理と運用を実現するための多岐にわたる選択肢を提供しています。

--------------------------------------------------------------------

RDB(リレーショナルデータベース)とは|NoSQLとの違いやメリットを紹介:https://business.ntt-east.co.jp/content/cloudsolution/column-338.html

≪リレーショナルデータベース(RDB)とは?メリット・デメリットや活用例を紹介:https://blog.trocco.io/glossary/relational-database

 

 

 

 


SQL文と管理コマンドの違い】
[SQL文]
SQL文とはデータベースを操作する言語のことで、データの検索や追加などの命令を出す文を指します。 Javaなどのプログラミング言語よりも比較的扱いやすく、基本の命令文は「SELECT」「INSERT」「UPDATE」「DELETE」の4種類しかありません。

[管理コマンド]
指令。 コンピューターで処理装置に指示する特定の文字列キーボード入力を主とするCUIオペレーティングシステムやアプリケーションソフトなどにおいて使われる命令語を指す

 

 

SQL文とは?基本命令文と書き方をわかりやすく解説!:https://it-trend.jp/development_tools/article/32-0012#:~:text=SQL%E6%96%87%E3%81%A8%E3%81%AF%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9,%E3%81%AE%EF%BC%94%E7%A8%AE%E9%A1%9E%E3%81%97%E3%81%8B%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82

 

 

 

 

 

【データベースのschema(スキーマ)について】
[DBのスキーマとは?]
データの構造、性質、データベースを操作するときのルールや表現法などを定義したものデータベースの設計図のようなものです。

スキーマは、データベースの設計図というイメージを持っていると良いでしょう。それぞれ三層のスキーマがほかの層に影響しないようにすることで、データベースの変更のインパクトを吸収することも重要です。

 


≪データベース(DB)のスキーマについてわかりやすく解説します!:https://www.engineer-route.com/column/7480/

 

 

 


【データベースの種類(型)と主要なデータベースについて】
データベースの種類は構造によって以下の4種類に分類できます。

・階層型
・ネットワーク型
・リレーショナル型
・NoSQL

 

□階層型
階層型のデータベースは、ノードと呼ばれる特定情報の集まりでデータを蓄積します。いわゆる家系図のような構造になっており、特定のノード(親ノード)の下に複数のノード(子ノード)がつながっていて、ツリー状に派生していきます。

 

・メリット
データにアクセスする速度が速い
・デメリット
重複登録が必要で柔軟性に欠ける

 

 

□ネットワーク型
ネットワーク型のデータベースは、情報の集まりであるノード同士が網目状につながる構造になっています。


・メリット
重複登録が必要ない
・デメリット
使用に高度な知識が必要

 

 

□リレーショナル型
リレーショナル型のデータベースは、各データを行と列から構成される表形式で蓄積するのが特徴です。複数の表を関連させることで、複雑なデータを柔軟に整理・保管できるようになります。

・メリット
柔軟なデータの取り扱い可能
データの一貫性を保てる
複雑なデータを扱える
データ検索が可能

 

・デメリット
プログラムが複雑化しやすい
処理速度が遅くなる

 

 

□NoSQL
基本構造はリレーショナル型と同じですが、リレーショナルデータベースを制御する一般的なデータベース言語であるSQLを使用しないタイプです。

・メリット
大規模なデータを扱える
応答速度が速い

 

・デメリット
データの整合性が保てない
データの加工が難しい

 


[リレーショナル型データベース]
MySQL
Oracle Database
Microsoft SQL Server
Microsoft Access
PostgreSQL
SQLite
Amazon Aurora

 


[NoSQL型データベース]
・MongoDB
・HBase
・Cassandra
Amazon Dynamo DB
Amazon ElastiCache

 


≪データベースの種類を解説!主要データベース12選:https://meetsmore.com/product-services/databases/media/99426

 

 

 

2024/08/08(木) 本日のお題 ⇒ 【一個ずつやっていく】【eclipseのエラーログの見方】【コンソールで右クリック→すべて終了/切断】【やることを細分化する】【絶対パスと相対パスについて】


【一個ずつやっていく】
いただいた課題をこなしていたときに、

マルチタスクってわけじゃないんだけど実装したい機能だったりを一気に作ったりして

最後にプロジェクトを実行したときにエラーが出たときってどの作業をしたときにエラーが出たかが一気に作業してしまうとわからなくなってしまう

なので例えばデータベースからデータを引っ張り出してWebサイトに表示させるものを作るってなった時

データベースに連携Webサイトを作成等々の作業を一気にやるんじゃなくてまずは

➀データベースに連携して実行できるようになるまでやる

②そのあとにWebサイトを作成する

みたいに一個一個作っていくとエラーが出たときになんの作業の最中で出たエラーかがわかるからいいよって言われた。

マジでそうだと思った

 

 

 

 

 

eclipseのエラーログの見方】

Javaのエラー解決の王道~スタックトレースの読み方~:https://ittoybox.com/archives/588

 

【コンソールで右クリック→すべて終了/切断】

eclipseでプロジェクトを実行したときに他のプロジェクトを起動していて、

8080ポートの取り合いになったときeclipseを再起動したら直っていたのでその場面に遭遇したら毎度のごとく再起動してたけど

[コンソールで右クリック→すべて終了/切断]

でいちいち再起動しなくてもプロジェクトを切断することができたよって話

 

【やることを細分化する】

この記事の一番最初に書いた【一個ずつやっていく】と内容が被るところなんだけど

上司に教えていただいたことで、

➀自分が今からやることの全体像を把握してゴールを定める

②ゴールに到達するためにやらなければならないことをある程度大きなかたまりに分解する

③その大きなかたまりごとに更にやることを細分化する

そうするとやらなければならないことが明確化するし、エラーが出たらどの作業でエラーが出たかより明確になる

 

 

 

 

 

絶対パス相対パスについて】

[絶対パスとは]
絶対パス(absolute path)とは、ファイルを最初から最後まで完全に記述する形式のことです。たとえば、インターネット上での絶対パスは、ブラウザのアドレスバーに書かれている文字列すべてです。

[相対パスとは]
相対パスとは、現在作業をしているファイルを起点とした、目的ファイルまでの経路を記載する方法です。現在、作業をしているファイルから、目的のファイルまでの道筋を記述します。
先ほどの「https://ipeinc.jp/seo/example.html」において、現在作業中のファイルが「example.html」の場合、相対パスは「example.html」と表記します。
絶対パス相対パスの違いは、表記する起点をどこにするかという点があります。
絶対パスは、ディレクトリの階層構造の頂点を起点にして目的のファイルまでの道筋を省略せずに表記して、
相対パスは現在作業をしているファイルを起点にして、目的ファイルまでの経路を表記します。
絶対パス相対パスの違いは?書き方・調べ方や使い分ける方法など解説!:https://ipeinc.jp/media/absolute-path/
 
 
 
 
 

DHCPについて】
DHCPとは「Dynamic Host Configuration Protocol(ダイナミック ホスト コンフィギュレーション プロトコル)」の頭文字をとった言葉で

コンピュータがネットワークに接続して通信する際に必要な設定情報を自動的に割り当てる機能です。

コンピュータが通信を行うには、IPアドレスをコンピュータ1台1台に割り当てることによって正しく通信が行えます。

しかしすべてのコンピュータに手動でIPアドレスを割り当てるのは時間や手間がかかる上に、台数が増えれば増えるほど大きな業務負担となります。

この課題を解決するのがDHCPです。

 

 

 

2024/08/07(水) 本日のお題 ⇒ 【タグ系ソースコードのチェックの仕方】【application.propertiesの役割】【エラーメッセージを出しているファイルがあっても、プロジェクトを実行できた話】【暗号化通信について】【プロジェクト開発の名前の話】【chatGPTを信じすぎない】

【タグ系ソースコードのチェックの仕方】
HTMLみたいなタグのソースをもつソースコードは、

(タグのソースコードとは<!DOCTYPE html> <html lang="ja"> <head>みたいな<>←この括弧を使うもののこと)

テキストエディタ(メモ帳でもなんでもいい)にソースコードをコピペしてどっか適当に保存したテキストファイルをブラウザにドラック&ドロップすると


1,ソースコードにエラーがない場合
ソースコードの全文がそのままブラウザに表示される

2,ソースコードにエラーがある場合
エラーがありますよって表示してくれる

こうやってチェックすることができるので知っておくといい(と上司の人に教えてもらいました)

 

 

 

 

 

【application.propertiesの役割】

--------------------------------------------------------------

application.propertiesの目的

SpringBootに限らずApplicationには内部に埋め込みたくない値がある。

DBの接続情報とかがそれで、内部に埋め込まず外部に用意する設定ファイルに記述することで、同じアプリケーションを異なる環境で動かすことができるようになる。

---------------------------------------------------------------

上記の文を分かりやすく教えてとchatGPT先生に聞いてみると、、、

アプリケーションには、データベースの接続情報など、環境によって異なる設定が必要な値があります。これらの値をアプリケーションの内部に直接書かずに、外部の設定ファイルに記述することで、同じアプリケーションを開発環境、テスト環境、本番環境など、異なる環境で適切に動作させることができる、という意味です。

application.propertiesもそれを実現する手段の一つである。

とのことです。


≪【SpringBoot】application.propertyについて:https://yaruki-strong-zero.hatenablog.jp/entry/application_properties

 

 

 

 

 

 

【エラーメッセージを出しているファイルがあっても、プロジェクトを実行できた話】

エラーメッセージを出しているファイルがあってそれのエラー解決のためにひたすら調べまくって色々試したんだけど全然エラーが解決できなくて手詰まりの状態だった。

(それかエラー解決できてもまた別のエラーがでて、何個かのエラーをループしている感覚だった)

で、わからなかったので上司に聞いてみたら

「設定ファイルで出ているエラーは気にしなくてもいいことがほとんど

なぜかというと設定ファイルのコードはタグ系のソースコード(HTML系統)で、
eclipseで設定されているコンパイルエラーが出る基準っていうのはJavaソースコードに対して文法的なエラーだったりが出るように設定されているので、(そもそもeclipseJava特化のIDEだったのもあり)

タグ系のソースコードはそもそも書き方違うし、文法も違うので母国語のチェック基準で他の国の言語のチェックをしているようなもの

そんなの絶対エラーが出るにきまってる」
ってことで実行したら、普通に設定ファイルは通りました。

(他のファイルでエラーが出て直してもらったのは内緒)


【暗号化通信について】

httpsとは?httpとの違いとは?:https://www.ssl.ph/compare/ssl/datalibrary/contents06.html

 

 

 

 

 

 

【sha-256】
SHA-256(読:エスエィチエー256)とは

----------------------------------------------------------------------------

入力されたデータをもとにして作った適当な値を返してくれる関数(ハッシュ関数)のひとつ

であり

「SHA-2」と呼ばれるハッシュ関数に分類されるやつ……がいくつかあるけど、その中のひとつ

です。

---------------------------------------------------------------

≪SHA-256とは:https://wa3.i-3-i.info/word15997.html

 

 

 

 

 

 

 

 

 

 

【プロジェクト開発の名前】

プロジェクト開発の名前に[空白][全角]は使えるけどマジで避けた方がいいといわれました。(それに関連するpathにあるファイルも全て)


【chatGPTを信じすぎない】⇒(本題以外にも色々話しているので少し内容が長いです)

入社して案件が始まるまでの間、暇な時間が多かったので上司から課題をいただいてそれに取り組んでいたのだが

あまりにもIT初心者過ぎて、少しでもプログラミングを勉強したりとかIT系の資格を勉強したら知ってるような用語とかも全くわからない状態だったので

課題をいただいたときに
「○○を使って○○が起動するものを作って欲しくて、データベースは○○を使って他にも、、、、、」
って色々指示をいただいたんだけど正直何を言ってるのか全く分からない

日本語として認識はしているけど、単語の意味が全く分からないから最終的に何を作ったらいいのかとか全くわからなかった

なんか音として耳には入ってくるけど全くもって何を言っているのかわからないから、まじで英語を聞き流してる気分だった

指示していただいたときに正直1,2個はその場でこれなんですかって聞いたんだけど、それ以外はさすがに迷惑かなって思って聞けなかったので、一旦言われた言葉をひらがなで殴り書きしたメモをみてそれをchatGPT先生に質問してみた。

そしたら色々回答が返ってきて、もしかしたらこうゆうことがしたいんじゃないかって予想までしてくれて挙句の果てにはやり方までのっけてくれて我大歓喜

早速教えてくれた手順で作成に取り掛かりました

が、何度やってもうまくいかず

数時間ずっとそのやり方のエラーが出る箇所をネットで調べてエラー解決してはまた次のエラーが出ての繰り返し

途中で滅入りそうになって一旦休憩

で、また作業を再開しようとしたときに上司から「今進捗はどんな感じ?」って言われて

ほんとにここですっごいいまさらなんだけど

「俺ってそもそも何をしたくてこの手順で作業してるんだっけ」

「最終目標はなんだっけ」

ってなって頭真っ白に

上手くこたえきれずに大恥をかきました。

⇒(2024/8/31追記)頭真っ白になってからはなんか喋らないとってなって

「えっとー...スー(息を吸う音)」みたいなのリアルに3分ぐらいずっとしてて

いざ喋ろうと思ってしゃべり始めてからも、何話してるのか自分でもようわからんかったし、記憶がないし、周りに聞かれて引かれてたしでまじ未だにトラウマ。

滝汗えぐかったの覚えてます。

 

 

なんかchatGPT先生に最初聞いたときに多分こうゆうことがしたいんじゃないって言われて

あ!上司から言われたことそのまんまだ!

ってなって手順通りに作業を進めてたんだけど

最初の方は何がしたくてこの作業をしているのか覚えているんだけど、

エラーが発生してエラー解決に集中し始めてから

自分って結局このエラーが解決したら何がしたいんだっけって忘れてしまうことが多々あって。。。

まじ目的を見失うの良くないわ。

あと上司から

「chatGPT使うのは全然いいけど、自分が聞いた質問に対して正解8割・間違い2割の回答しか返ってこないから自分でネットで調べたほうがいいし、

chatGPTはかなり使えるんだけど使い方は考えた方がいいよ

って言われて非常に勉強になりました。(正解8割・間違い2割の回答ってのいうのは8割の確率で正解の回答が返ってきて2割の確率で間違いの回答が返ってくるわけじゃなくて、返ってきた回答の内容が8割あってて2割間違えてるよって意味)

あと、chatGPTは2割間違った答えが返ってくるからその間違った答えを間違いと見分けれる知識が必要だとアドバイスをいただきました。



 

 

2024/8/6(火) 本日のお題 ⇒ 【MyBatisとは】【Spring bootのスタータプロジェクトの設定画面の内容がよくわからない】【MavenとGradleの違い】【再起動大事】【pom.xmlの役割について】【WebアプリケーションとWebシステムの違い】【pgAdminについて】

【MyBatisとは】
MyBatisはJavaフレームワークのひとつでJavaを使用してデータベース操作を行うフレームワークの名称です。Javaで書かれたアプリケーションとリレーショナルデータベース(RDB)との間のデータのやり取りの手間を少なくする、O/Rマッパーと呼ばれるツールに分類されます。

ちなみに、、、
・リレーショナルデータベース(RDB)
RDB」とは、表形式の複数データを関連付けて使えるようにしたデータベースのことです。
RDBでは複数の表データから、「RDBMS(Relational Database Management System:リレーショナルデータベース管理システム」という専用の管理システムを使って、必要なデータを組み合わせて引き出すことができます。顧客管理データベースを始めとして、多くの企業のデータベースで活用されています。

研修とかで学んだMySQLを思い出してみると、データを引き出して表示したときも表みたいな形で表示されてたけどあれはデータを表で管理するRDBだったからなのだろうな。


『参照:https://udemy.benesse.co.jp/development/mybatis.html
 
 
 
 
 
 
 

【Spring bootのスタータプロジェクトの設定画面の内容がよくわからない】
これに関しては良記事を見つけたのでわからなくなったら随時これを見る
⇒良記事『https://qiita.com/t-yama-3/items/969825d5c1bc4a16866d

ついでに、、、

 

 

 

 

 

 

 

 

 

 

【Thymleafについて】

Thymeleaf(タイムリーフ)はJavaの代表的なテンプレートエンジンで,SpringBootアプリケーションを開発する際によく利用される.基本的に通常のHTMLファイルに少しだけ記述を加えるだけで利用することができる
(テンプレートエンジンについても詳しく載ってます)

『参照:https://qiita.com/thirai67/items/64fd18810a8ccfedd459
 
 
 
 
 
 
 

【pgAdminについて】
pgAdminはPostgreSQL操作用のGUIツールです。
ということで、pgAdminはポスグレをGUIで操作できるものって認識が「今は」ついてはいるが、最初はデータベースソフトウェアを一括してまとめて管理できるものって認識していたのでかなり作業でミスが生じた記憶がある。
(MySQLをpgAdminで管理しようとして、永遠に沼にはまってました)

 

 

 

 

 

 

 

 

 

【WebアプリケーションとWebシステムの違い】
----------------------------------
元々なぜこんなことを調べ始めたかの経緯で言うと、、、
上司からSpringbootを使ってデータベースから情報を持ってこれるようなものを作ってみようかといわれ作業をしていたのだが、わからないところがあったので質問しようとしたときに「今作ろうとしている○○に関してなんですけど」って聞こうとしたのだが、その○○に入るワードがWebアプリケーションなのかWebシステムなのかなんて聞けばいいのかよくわからずに困ったという経緯の元調べることになった。(調べていく中で思ったけどこれそもそもIDE上で表示するのか、それともちゃんと表示する用のWebサイトを作るのかによって聞き方変わりませんかみたいな話はあると思う)
------------------------------------
アプリ開発とは、主にモバイルアプリケーション(スマートフォンタブレット向け)、デスクトップアプリケーション(PC向け)、ウェブアプリケーション(ブラウザ上で実行されるアプリ)など、特定のプラットフォームの中で動くアプリを開発することを指します。
システム開発とは、エンタープライズソフトウェア、オペレーティングシステム、データベース管理システムなど、主に企業における業務効率化を目的としたシステムを開発することです。

『参照:https://iridge.jp/blog/202312/35484/
『参照:https://www.c3index.co.jp/blog/blog_278/

結局、、、
○○に入る部分がわからなかったのでchatGPT先生に聞いたら
----------------------------------------------
上司に
プロジェクトが主にユーザーとのインタラクションを含むものであれば、「Webアプリケーション」
プロジェクトが企業全体の業務プロセスやデータの統合を目的としている場合、「Webシステム」
IDE上で表示する場合: 開発中
考えと、社長に質問する際には、あなたが作っているものの目的や機能に応じて「Web アプリケーション」または「Web システム」のどちらか使うと良いでしょう。具体的には、ユーザーが直接操作する部分が多い場合は「Webアプリケーション」、業務全体の統合や管理を含む広範なシステムの場合は「Webシステム」といった感じです。
----------------------------------------
上記のような回答をいただきました。
これを見ても明確な正解がよくわからないんですけど、恐らく自分はIDE上で表示する予定で作っていたので正解は「IDE(eclipse)上でデータベースの情報を表示しようとしてわからないことがあったのでお聞きしたいのですが・・・」ぐらいが伝えたいことが9割方は伝わるのではないかなと思いました。
(ちなみにその日はちんぷんかんぷんな聞き方をして上司は宇宙猫みたいな顔してこっち見てました。あれは生涯忘れられないだろうな。)

 

⇒(2024/8/31追記)この日記を書いたのは三週間ぐらい前なんですけど、書いてる当時も正直頭の中混乱しまくってた記憶があります。

でも今だったら何となく理解できそう。

恐らくこのパターンの時の○○に入るものはどちらかと言えば「Webアプリケーション」よりも「Webシステム」があってる

とは思うけど、今となっては元も子もないことを言うと「Webアプリケーション」も「Webシステム」も恐らく間違っている気がしてる。

 

っていうのもただ単にデータベースから情報を一つ持ってきて表示させるってこと自体が別にそんな大したことしてないから「Webシステム」っていう規模感でかめな言葉が合ってないんじゃないかみたいな印象は正直受けた。

なので正解はやっぱり

eclipse上でコンソールにデータベースの情報を表示しようとしてわからないことがあったのでお聞きしたいのですが・・・」

が正解な気がする

 

といっても三週間前の俺がこの文言を導き出して聞けることは絶対ないと思うけど。笑

 

どうせ「コンソールってなんですか?」みたいなところから始まるから笑

 

 

 

 

 

 

 

 

 

 


【pom.xmlの役割について】
これについては【Spring bootのスタータープロジェクトの設定画面の内容がよくわからない】の良記事にも説明があったと思うのでそれを見るといいと思うが改めて調べてみると

pom.xmlMavenを使用してプロジェクトを効率的に管理するための重要な設定ファイル
プロジェクトの依存関係ビルド設定プラグインの設定などを一元管理し、開発者がプロジェクトを容易にビルド、テスト、デプロイできるようにしている

自分が使ってて凄いと思ったのは依存関係を自動インストールしてくれることです

 

 

 

『参照:https://qiita.com/a999/items/103993c0ce5fa65ef37c
『参照:https://qiita.com/TaikiTkwkbysh/items/5553a8625ff95314a392

 

 

 

 

 

 

 

 

【再起動大事】
Mavenを使いたくてインストールしたときにインストールしているはずなのにエラーが出ていたので困っていたがパソコンを再起動したらちゃんと起動するようになったって話


MavenとGradleの違い】
まずはMavenとGradleの役割について

---------------------------------------------------------------------------------
≪記事抜粋≫
Javaプロジェクトに触っていくに当たって、「このGradleというのは何だろう……」と思いながらなんとなく触っていたので、しっかりお勉強します。
主にGradleの話をします。

「Gradleはビルドツールです」「ビルドツールって何ですか」
ビルドツールって、結局何なんですか。コンパイルじゃだめなんですか。状態でしたので、まずそこから。

Javaで書いたプログラムを’きちんと’動かすためには、

コンパイルして
・ちゃんと動くかテストして
・公開できるように、依存しているライブラリを集めてパッケージ化して
・共有、デプロイする
必要があり、本来は一つ一つコマンド叩いて操作する必要がありました。

でも手作業でやるのはめんどくさいし、色々問題が起きる(みんなで開発しようとするとバージョンが違う!とか、環境が違う!とか)ので、自動的にやってくれる仕組みが色々作られました。

その中でも今のところ一番ナウいのがMavenとGradleだよ、ということ。

ライブラリのバージョンの管理などを自動でやってくれる。

---------------------------------------------------------------------------------


で、MavenとGradleの違いは何なんだということに関しては参照の記事で確認

 

 

『【Javaのお勉強】(Mavenと)Gradleの役割についてのお勉強:https://note.com/yucco72/n/n65119966d801

『参照:https://qiita.com/MahoTakara/items/ff73338e218b656bedfa

『参照:https://toumaswitch.com/4r6eo4hy72/

 

 

 

疲れたので今日のところは終わり
お昼は上司の方に勧めていただいたつけ麺を食べに行って家に帰ります
⇒(2024/8/31追記)普通に開いてませんでした、まだ行けてません

2024/08/05(月) 本日のお題 ⇒【シェルとシェルスクリプトについて】【ビルドとは】【コマンドプロンプトとターミナルの違い】

【シェルとシェルスクリプトについて】
シェル(Shell)とは、Linux(ここ大事)を操作するためのインターフェースです。
(⇒シェルスクリプトを使ってブラウザを立ち上げてみてとの課題をいただいたが最初shellがLinux環境のことだということを認識していなくてつまずいた)

⇒(2024/8/30追記)ちなみに最初shellはWindows環境での話だと思っていたのですが、Windows環境でshellと同じ働きをするのはバッチファイルです。

 

----------------------------------------------------------------

入力されたコマンドはシェルを介してLinuxカーネルに送信され、実行されます。

そのコマンドを一塊にしたものがシェルスクリプトで、複数のコマンドを一度に実行するためのスクリプト言語です。

複数のコマンドを順次実行すること、つまりシェルスクリプトに上からコマンドを書いていけば、その順番で実行されるということです。頻繁に実行する処理の一連の流れをシェルスクリプトに記述しておけば、いつでもまとめてその処理を実行できます。

このため、UnixLinuxを効率よく運用するためには、シェルおよびシェルスクリプトの理解が欠かせません。
『参照:https://www.miraiserver.ne.jp/column/about_shell/

----------------------------------------------------------------


対して、Windows環境上で似たようなものとしてバッチファイルがある。恐らくバッチファイルの方が先だと思われる。

 

 

 

 

 

 

 

【ビルドとは】
~前提として~
コンパイルは、プログラミング言語で書かれたソースコードをコンピュータが理解できる機械語(バイナリコード)に変換するプロセスで、この変換はコンパイラと呼ばれるソフトウェアによって行われます。コンパイルは、ビルドプロセスの一部として行われることが多いです。)

一方でビルドは、コンパイルされたコードを実行可能なソフトウェアに組み立てるプロセスです。これには、コンパイルだけでなくリンクやパッケージングなどの追加のステップが含まれます。ビルドは、ソフトウェアの完成形を作り出すための一連の作業のことを指します。

『参照:https://jitera.com/ja/insights/14840#:~:text=%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%81%AF%E3%80%81%E3%83%93%E3%83%AB%E3%83%89%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%AE,%E3%81%AE%E3%81%93%E3%81%A8%E3%82%92%E6%8C%87%E3%81%97%E3%81%BE%E3%81%99%E3%80%82

 

 

 

 

 

コマンドプロンプトとターミナルの違い】
各OSでの呼び名の違いという認識で最初は大丈夫だが、調べ始めると細かい違いはありそう

2024/08/05(月) 本日のお題 ⇒ 【シェルとシェルスクリプトについて】【ビルドとは】【コマンドプロンプトとターミナルの違い】

【シェルとシェルスクリプトについて】
シェル(Shell)とは、Linux(ここ大事)を操作するためのインターフェースです。
(⇒シェルスクリプトを使ってブラウザを立ち上げてみてとの課題をいただいたが最初shellがLinux環境のことだということを認識していなくてつまずいた)

⇒(2024/8/30追記)ちなみに最初shellはWindows環境での話だと思っていたのですが、Windows環境でshellと同じ働きをするのはバッチファイルです。

 

----------------------------------------------------------------

入力されたコマンドはシェルを介してLinuxカーネルに送信され、実行されます。

そのコマンドを一塊にしたものがシェルスクリプトで、複数のコマンドを一度に実行するためのスクリプト言語です。

複数のコマンドを順次実行すること、つまりシェルスクリプトに上からコマンドを書いていけば、その順番で実行されるということです。頻繁に実行する処理の一連の流れをシェルスクリプトに記述しておけば、いつでもまとめてその処理を実行できます。

このため、UnixLinuxを効率よく運用するためには、シェルおよびシェルスクリプトの理解が欠かせません。
『参照:https://www.miraiserver.ne.jp/column/about_shell/

----------------------------------------------------------------


対して、Windows環境上で似たようなものとしてバッチファイルがある。恐らくバッチファイルの方が先だと思われる。

 

 

 

 

 

 

【ビルドとは】
~前提として~
コンパイルは、プログラミング言語で書かれたソースコードをコンピュータが理解できる機械語(バイナリコード)に変換するプロセスで、この変換はコンパイラと呼ばれるソフトウェアによって行われます。コンパイルは、ビルドプロセスの一部として行われることが多いです。)

一方でビルドは、コンパイルされたコードを実行可能なソフトウェアに組み立てるプロセスです。これには、コンパイルだけでなくリンクやパッケージングなどの追加のステップが含まれます。ビルドは、ソフトウェアの完成形を作り出すための一連の作業のことを指します。

『参照:https://jitera.com/ja/insights/14840#:~:text=%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%81%AF%E3%80%81%E3%83%93%E3%83%AB%E3%83%89%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%AE,%E3%81%AE%E3%81%93%E3%81%A8%E3%82%92%E6%8C%87%E3%81%97%E3%81%BE%E3%81%99%E3%80%82

 

 

 

 

 

【【コマンドプロンプトとターミナルの違い】
各OSでの呼び名の違いという認識で最初は大丈夫だが、調べ始めると細かい違いはありそう