新入社員ブログ 松井(第6回)

こんにちは。松井です。
もう3月になってもうすぐ年度が替わりますね!

今回はフォローアップ研修について紹介します。
フォローアップ研修の内容について簡単に説明すると業種に問わず社会人として必要なスキルを習得するための研修で、8月から2月まで月に1回の頻度で参加しました。どれも仕事上に使う内容となっており、就職前でも知っておいたほうがいいという内容でした。

ビジネス基礎研修

8月はビジネス基礎で学ぶことは一人一人が成長するために意識しないといけないことについて学びました。心構えやマナー、コミュニケーションの取り方といった仕事のやり方についての内容でした。特に印象に残ったのは「多くの視点を持つ」ということです。小さな部分だけ見るのではなく、視点を広く見たり長くしたり、時には切り替えることも必要ということです。そのため、様々な視点を持って仕事に取り組めるようになりたいと思いました。仕事への取り組み方について「分からない」といったところがあれば基本的な内容としてこの研修の内容について思い出せるようにしたいと思いました。

報連相研修

10月は報連相研修で仕事上必要な情報が入手したり他の人に情報を渡すときに必要なスキルを学びました。報連相とは「報告」、「連絡」、「相談」の3つを表します。社内の内容であればスピード重視されるため正確性は重視されませんが、社外に対してはその逆でスピードより正確性が重視されます。私の場合、社外に対する連絡の機会が少ないため、まずはスピードを重視するようにして、可能であれば正確性を担保できるようにしたいと思います。そのため、まずは自分が読み手の立場になって「伝わりやすい」報告や相談をかけるようにしています。

ロジカルシンキング研修

11月はロジカルシンキング研修で論理的に考える方法について学びました。ロジカルシンキングとは論理的思考と訳され、誰にでも使いこなせるスキルで、問題解決や仕事促進に使えるスキルです。「研修を通じて直ぐに使えるようになりたい!」と思いましたが、論理的に考えることは直ぐに使えるものではなく、経験を積むことが必要だと思いました。そのため、論理的に話すための練習を積み重ねようと思いました。そのために、何か相談をする際には自分の意見をしっかりと持って上司に説明できるように努力しています。

文章力向上研修

12月は文章力向上研修で分かりやすい文章を書くためのスキルを学びました。報連相研修やロジカルシンキングと重複している内容に似ていますが、「文章を書くためのコツ」について学びました。この研修に参加したことによって、入社前と比べ、報連相といった社内でコミュニケーションをとる際により簡潔かつより分かりやすく説明できるようになったと思いました。

ストレスマネジメント研修

1月はストレスマネジメントではストレスとの向き合い方について学びました。この研修を通じて思ったことはストレスを重ねることがないように前向きな気持ちにしようということです。また、健康管理もストレスを予防するということに関わっていますので、健康管理に気をつけようと改めて思いました。

メンター研修

2月は4月から入ってくる後輩との関わり方について学びました。メンターというのは上司といった育成者とは別の役割をしており、新人にとって「安心できる存在」となります。メンターになるメリットとしては、新人社員といった育成される立場には気づかないことについて学べるということを知りました。研修で学んだことを来年度以降先輩社員として後輩と関わる際に活かせるようにしたいです。


フォローアップ研修で学んだ内容は仕事においてかなり役に立ったと思います。特に報連相研修や文章力向上研修では、困ったことや会議で決まったことなど情報の伝え方についてコツをつかめたと思いました!
最後までお読みいただき、ありがとうございました!

Laravel Sailで記事投稿フォームを作成してみた

こんにちは。22年度入社の中島です。

前回はLinuxについて書きましたが、今回は少し前に学習していたLaravel Sailについてまとめました。

●Laravel Sailとは
Dockerを使った開発環境であり、ターミナルでコマンド実行するだけで、DockerでLaravel環境を一発で作ってくれる便利なコマンドラインツールです。
Laravel Sailを使うメリットは次の通りです。

・開発に最低限必要なツールを一度にインストールでき、インストールの手間を省ける
・本番環境と同じ環境を手元に用意して、動作を確認できる
・PHPのバージョンが異なる複数のプロジェクトの管理が楽にできる
(Laravel 8.x からLaravel Sailは標準でインストールされています。)

●なぜLaravel Sailを使っているのか?
Laravelの学習するときに使用していた技術書がLaravel Sailでの環境構築、実装方法を紹介しているのを見て、docker環境との連携も取りやすいと思ったため、復習を兼ねてSailの紹介をやってみようと思いました。


使用したテキスト:『Laravelの教科書』

Laravel Sailのセットアップ及びLaravelトップ画面の表示
1.Docker Desktopをインストール
Dockerのインストールです。Dockerの公式サイトからDocker Desktop のインストーラーをダウンロードします。

2.Laravel Sailをインストールするディレクトリを予め作成しておきます。
今回はtest-projectフォルダを作成しました。

3.Laravel Sailのインストール
Ubuntuまたはターミナルで、次のコマンドを実行します。(今回はUbuntuを使用)

4.途中でパスワードが求められたらPCのパスワードを入力。

5.下記メッセージが出たらインストール完了です。

6.「test-project」ディレクトリへ移動します。

7.Dockerコンテナを起動します。

これによりLaravel Sailが使用する複数のDockerコンテナが起動します。
起動したコンテナについて、Docker Desktopのウィンドウで確認してみましょう。

※./vendor/bin/sail コマンドを毎回入力するのは大変です。
これを「sail」だけで使えるようにするため、エイリアス登録を行います。

以降は sail コマンドとして記載していきます。

8.マイグレーションコマンドを実行して、初期テーブルを作成する。

9.ブラウザで「http://localhost/」 へアクセスするとLaravelのスタート画面が表示されます。※Ubuntuまたはターミナルを開いたまま、ブラウザでアクセスしてください。

今回は、Laravelの復習として過去に作成したフォームの一部を紹介したいと思います。
『件名』『本文』にテキストエリアがあり、フォームの下に『送信する』ボタンがあるフォームを作成していきます。

1.モデルとマイグレーションファイルを作成
まずは、モデルとマイグレーションファイルを作ります。下記コマンドを実行して、Postモデルとマイグレーションファイルを作ります。

このコマンドを実行すると、database/migrations 配下と app/Modelsにファイルが作成されます。次にdatabase/migrations 配下に作成されたマイグレーションファイルに、postsテーブルを作成するためのtitleカラムとbodyカラムを設定します。

./database/migrations/(年)_()_(日)_(時刻)_create_posts_table.php

マイグレート実行し、データベースにpostsテーブルを作成

2.ビューファイルの作成
次にビューファイルを作ります。resources/viewsの中にpostフォルダを作り、その中に create.blade.phpファイルを作ります。create.blade.phpファイルの中には以下のコードを追加します。

create.blade.php

3.ビューファイル表示用コードを追加
次にコントローラです。下記コマンドを実行して、PostControllerを作成。

コマンド実行後、app/Http/Controllerの中のPostController.phpを開きます。先ほど作成した resources/views/post/create.blade.phpファイルを表示するためと投稿データ保存のために、下記のように記述します。

PostController.php

4.ルーティングの設定(ビューファイル表示用のルート設定)を追加
ルート設定の作成です。routes/web.phpの中に、下記のuse宣言とフォーム表示用のルート設定と投稿データ保存用のルート設定を加えます。これにより今回作成したフォームがブラウザに表示されます。

web.php

これまで記述したコードによって、次の流れが実現します。

  1. ユーザーがログイン後にhttp://localhost/postにアクセスする
  2. ルート設定により、PostControllerのcreateメソッドに処理が割り振られる
  3. 処理が実行され、resources/views/post/create.blade.phpの内容がブラウザに表示される

    実際に作成したもの

4.件名(title)と本文(body)を入力し『送信する』ボタンを押すことで、PostControllerにフォーム(http://localhost/post)を通じて値が送信される
5.ルート設定により、PostControllerのstoreメソッドに処理が割り振られる
6.処理が実行され、件名が$request->titleに、本文が$request->body にそれぞれ入っているため、Post::create() に渡してやることでpostsレコードの対応するフィールドに値がセットされる
7.returu back()によっての元ページに戻る

いかがでしょうか。

今回は振り返る形でLaravel Sailのことを書きました。
今後も学んだことを忘れないようにLaravelやLinux、業務で行った作業なども復習する形でブログ更新していきたいと思います。

今回はここまで
最後までご覧いただきありがとうございました!

今年度を振り返って… 紙屋06

お疲れ様です!
’23年度入社の紙屋です!

まだ寒い日も続きますね。
私は2月の一時期暖かくなった時から花粉症が出てきました…
今年の花粉症は目がとても痒いです……(泣)
薬の眠たさと闘いつつ、目の痒みとも闘いつつ、日々仕事に取り組んでいます!
早く気候も落ち着いてほしいです!

気づけばもう3月になりましたね。
先日の社内技術者定例会では新年度に向け、新入社員への対応の話も出ていました。
まだまだ新入社員でいたい気持ちもありますが、今年度を振り返って来年度に備えようと思います。


2023年4月は全くこの業界を知らないで入社しました。
入社当初は外部研修に参加させていただき、MySQL、PHP、Laravelを中心に学びました。プログラミングをやってみたい気持ちはありましたが、知れば知るほど難しく、私の固い頭では理解が追い付きませんでした。研修中は「なんで?」が多く、講師の先生へ質問を多く投げていました。今思えば、自分でも調べて質問すればよかったのですが、自分の癖もありよく調べもせずにすぐに人に聞いてしまっていました。嫌な顔をせずなんでも答えてくださった講師の先生にはとても感謝しています。

外部研修を終えて会社に戻ってからは、参考書で勉強し、課題に取り組みました。参考書はSQLドリル、PHP独習、LinuCを一通り勉強しました。研修でも触れたSQLやPHPは前向きに取り組めましたが、案件の前準備として勉強したLinuCはとても苦手意識が強かったです。ですが、案件に入った今ではよく見直してコマンドにはお世話になっています!

10月あたりからOJTでご指導いただきながら実際の案件に入りました。最初は資料の確認からでしたが、少しずつ実際のシステムの保守にも携わらさせていただきました。外部研修から社内での課題は会員登録システムを難易度をあげて取り組むものでしたが、実際の案件は扱うテーブル数もコードもとても多く、フレームワークも違って難易度がぐーんと上がりました。そこで一度「自分には無理かも…」と思ってしまい、苦手意識が生まれてしまいました。分からない点は質問すると答えてくださいますが、自分の聞きたいことがまとまらず、うまくニュアンスも伝えられず、モヤモヤすることも多かったです。

このままではいけないと、取り組む姿勢を見直しました。
それは、
① 質問する前には必ず調べ、自分の考えをしっかりと整理すること
② 活用できるメモをとること
③ アウトプットすること

です。

まずは質問する前には必ず調べ、自分の考えをしっかりと整理することですが、調べないと方向性の違う質問をしてしまったり、返答いただいてもその内容を理解できないことが多かったりしたからです。よくネット検索を活用しますが、調べたいことにたどり着けなかったり、とても時間がかかったりしてしまい、自分の考えを整理するまでに時間を要すので、これはまだまだ取り組みが必要です。

次に、しっかりとメモをすることです。教えていただく中で「前にも伝えたと思いますが」という言葉を耳にします。メモを取ることは新人にとっては当たり前ですが、メモしてもそれを活かせないのであればメモの意味がありません。私はメモを取るときは、必ず日付を書くこと、チケット番号など見出しや題名をつけること、メモの書く場所を注意する、内容によって社内業務なのか、案件のものか、期限付きのものなのかを意識して場所も分けるように書いています。todoリストのように□の枠を書いて目立つようにしたり、レビュー中(画面共有中)はコードの中にコメントとして入力し、指導者へもメモ内容が見えるように意識しています。電子媒体でメモを取りたいなとは思っていますが、まだまだアナログな私は紙媒体でのメモが主流です。技術面で新しいことを教えていただいた時には紙媒体でのメモは後で見返してもよく整理ができないので、教えていただいた後すぐに自分なりの手順書を作っていつでも見返すことができるようにしています。

あとは、アウトプットをすることです。このブログもそのひとつですが、小さな取り組みとしては、なるべく声に出すようにしています。1対1のLINE上のやりとりももちろんあるのですが、文章ではニュアンスも伝えにくく、文章ではうまく伝えられなかったが、通話でやり取りするとそこまで考えが乖離していなかったということが時々ありました。これはこれで文章力を鍛える必要がありますが…(汗)。また朝礼や終礼での報告時も集団の中であえて質問など声にだすことで、自分の考えを知ってもらえれば、その考えがどうなのかを確かめられたり、それを繰り返すことによって自信につながったりすると思っているからです。今はレビューいただいたときは必ず結果の要約や次回までにすべきことを自分の言葉で繰り返して指導者へ伝えるように努力しています。

他にも意識して取り組むべきことはあると思いますが、とりあえずはこれらを意識しています。まだまだ学習やプログラミングに触れる機会を増やす必要があると思っています。
来年度は実際にコードをかくことはもちろんですが、
① 基本情報技術者試験に挑戦!(ITパスポートは無事合格しました!)
② PHPカンファレンスなどの勉強会にも参加する!(2023年度のPHPカンファレンスは近所で開催されていたのに情報収集が足りずに開催直後に気づきました…)
③ 通勤中の時間を使って、ポットキャストで初心者向けのプログラミング番組を聞く!(現在継続チャレンジ中で習慣化へ!)
と思っています!

このブログも使ってこれからの成長した姿もお伝えできればと思います!
今年度の残りも、来年度からもまだ頑張りますので、応援、ご指導よろしくお願いいたします!
では!!

新入社員ブログ 松井(第5回)

こんにちは。松井です。もうすぐ2月になりまだまだ寒い時期が続きますね。

今回はOJTについて紹介します!内部研修が終わって、8月からOJTに参加しています。OJTということで、案件に参加していますが、私の場合は基本設計から参加しました。難しい作業を割り振られることはありませんが、とにかく仕事に慣れることに苦労しました。1月末までどんなことをやってきたか、簡単になりますが紹介します!

基本設計・詳細設計

お客様との打ち合わせや社内会議を聞いてメモを取ったり、画面設計書を見ていました。また、先輩社員がテーブル定義の物理カラム名の名前をつけていました。画面設計書やテーブル定義について「おかしい!」と思ったところは迷わず先輩社員に質問していきました。例を2つ挙げると画面設計書に書いてあることがテーブル定義に書かれていないといった資料での漏れとテーブル定義には必須扱いになっているにもかかわらず画面設計書では必須ではないといった資料間による矛盾です。冷静に資料を見比べることで漏れや矛盾が無いかチェックをしていましたので、該当する部分が資料内にあるか探すのが大変でした。しかし、設計段階で漏れや矛盾を減らしたということにおいてはやりがいを感じられました!

API仕様書・詳細設計書作成

簡単な処理のAPI仕様書・詳細設計書を作成しました。最初はやり方が分からず簡単そうな画面を先輩社員に教えてもらいながら一通り作成しました。最初は簡単な仕様の詳細設計書を書きましたが、やり方が分からず先輩社員が作成した詳細設計書を参考に書くようにしました。ある程度詳細設計書を書いたら「内容は違っても他の詳細設計書にも同じことを書ける」ということを意識するようにしました。その際に自分たちが作った設計書をもとに実装されるので、「仕様が違う」ということが無いように気を付けるようにしました。

API実装・テスト

今は作成したAPI仕様書や詳細設計書を元にAPIを実装しつつ、テストして想定した挙動になっているか確認しています。研修で学んだLaravelで実装しておりますが、実際に仕事として使うのは始めてでプログラムの書き方に戸惑うことがあります。しかし公式ドキュメントやQiita等で使い方を調べて出来る限り自力でプログラムを組めるように努力しています!

今回はここまでです。次回はフォローアップ研修について紹介します。最後まで読んで頂きありがとうございます!

SQLの不思議… 紙屋05

’23年度入社の紙屋です!
2024年もよろしくお願いいたします。

新年一発目の投稿です。
無事に新年を迎えることができました!
昨年は少し実際の案件にも携わらせていただきました。少しずつできることも増えてきたことはうれしいです!
2024年もできることを着実に増やしながら成長したいと思います!

今回はその案件の中であるデータの差分の調査を行っているときに不思議に思ったことを検証してみようと思います。
それはSQLである一定の期間のデータを抽出しようとしたときに、何気なく使っていたある演算子で躓きました。最初は気づかなかったのですが、調査結果のデータ数がおかしいことの指摘もあり気づきました。
それは『BETWEEN』の使い方です!

—————————————-
式 BETWEEN 値1 AND 値2
—————————————-
BETWEEN演算子では、値が「値1以上かつ値2以下」の場合に真になる

と参考書ではあります。
私は1か月分のデータを抽出したかったので、

というSQL文を作成し抽出しました。
特に疑問に思うこともなく作業を続け、他で分からないところがあったので、質問したときに、指導者とのSQL文の違いに気づきました。

「ん?演算子ちがうけど、まぁいっか、同じことだし…」
「でも、結果も違うんだよなぁ…、どうしてだろう?」
と思ったことで調べるとどうやらデータ型がdatetime型であることも関係しているらしいということが分かりました。
そこでダミーデータを作って検証してみることにしました。

今回、ダミーデータはLaravelのマイグレーションとシーダーを利用して’2023/11/01 00:00:00’から’2023/12/31 23:59:59’までのデータを100件作成しました。
そして、同じ条件式で行数をカウントしました。

この条件式の結果は、条件式1は50件、条件式2は56件と件数の差が出ました。
ちなみに、抽出条件の範囲を変えると、条件式3は53件、条件式4は3件でした。
抽出する条件のデータ型がdatetime型だったので、範囲指定には注意が必要そうです。

ちなみにdate型でもデータ数のカウントを行いましたが、時間が無い分、選ぶ演算子での差はみられませんでした。
今回の始まりは演算子の疑問で始まりました。
BETWEENを使う際は抽出される範囲とデータ型を十分に理解したうえで使う必要があります。
私みたいな初学者や不慣れな方は、データの範囲を指定して抽出する場合はまず比較演算子を利用する方が良いということを覚えておきましょう!

今回は文献を調べるだけでなく、自分でも実際のデータを使って結果の違いを理解できたので、引き続き今回のように検証しながら自分の理解を深めたいと思います。

では、また次回!!

ITパスポートの試験を受けました!紙屋04

お疲れ様です!
’23年度入社の紙屋です!
12月に入り本当に寒くなってきました。
こんな季節は温泉にゆっくりつかって、コタツで丸くなりたいですね!

さて、この業種について9か月が経とうとしています。
未経験で入社し、外部研修や日々の学習や課題をこなしてきました。今もOJTとして少しずつ実際の案件に携わらせてもらっています。
分からないことの方が多く、教えていただいてもなかなか理解ができないことの方が多い毎日です。
なので、基礎知識の学習という意味でもITパスポート試験を受けることにしました。

ITパスポート試験とは何か?

ITを利活用するすべての社会人・これから社会人となる学生が備えておくべき、ITに関する基礎的な知識が証明できる国家試験

https://www3.jitec.ipa.go.jp/JitesCbt/html/about/about.html

とのことです。
確かに、前職は全く違う分野でしたが、ITなくして業務は成り立ちませんでした。
基礎的知識を学ぶためにもちょうどよい機会かなと思い、チャレンジしました!

内容は、新しい技術(AI、IoT など)や手法に関する知識、経営全般の知識、IT(セキュリティ、ネットワークなど)の知識、プロジェクトマネジメントの知識など幅広い分野にわたります。

実際の試験は100問(/120分間)あり、ストラテジ系、マネジメント系、テクノロジ系と3分野に分かれ、合格基準点は3分野それぞれ300/1000点以上正答し、合計で600/1000点以上あれば良いとのこと。

勉強期間は約2か月間。
最初はテキストの内容をまとめ、各章末問題を解き、試験前は過去問をひたすら解きました。
広く知識を求められ、テキストを通るだけでもかなりのボリュームがありました。
適宜まとめた内容を上長へレビューいただきましたが、広い分野に対しても必ずコメントをいただき、アドバイスもいただいて、その知識量に逆に怖くなりました(笑)

どれも知らない知識ばかりで、特にストラテジ系とテクノロジ系が難しかったです。
3,4文字のアルファベットの略語は暗号にしか思えず、関数の条件式を問うような問題ではまず問題文の理解に苦しみました…
過去問で類似問題を数回解くことでなんとか少しずつ覚えていきました。

過去問を解き始めたころは5,6割の正答率でした。過去問を数回解くことで正答率は7,8割まで安定してきたので、「よし!いける!」と自信満々で試験を受けに行きました。
今までも国家試験を受けてきたので特に緊張はしませんでした。
受験者の中には管理職ぐらいの年代の方から小学生までいて驚きました!

試験の方は、苦手分野のストラテジ系でさらに新しい単語が出題され、とても焦りました…(汗)
利益やコストの計算や関数の条件式を問う問題など、計算問題が過去問より多く、それでも焦りました…(汗)
残り時間20分ぐらいでやっと一通り解答できましたが、見直ししたい問題が多すぎて「詰んだー」と焦りました…(汗)

試験後はすぐに解答され、ギリギリ基準点は満たすことができて一安心。
覚えも悪くなってきているなと痛感した1日でした。
今回の勉強の熱が冷めないうちに、勉強を続けてさらなる挑戦に挑みたいと思います。
また何か動きがあれば決意表明をしたいと思います!
では、また次回!!

LinuCの試験について

こんにちは。22年度入社の中島です。

この間、Linux資格のLinuCを受験しました。
今回私が受けたのは、LinuCレベル1(101試験)になります。
この試験は、101試験と102試験があり、認定されるためには2試験を(片方を合格していたら5年以内に)合格する必要があります。

今回は、LinucCレベル1 101試験を受けた感想や試験の内容を簡単に書いていこうと思います。

Linux技術者認定「LinuC(リナック)」とは
クラウドやDX時代のITエンジニアに求められるシステム構築から運用管理に必要なスキルを証明できる技術者認定です。

・受験動機
この試験を受ける理由は、仕事に対する自信につなげられるようにするためと、これからの業務の役に立つと思い受験しました。

・予約と受験方法、前日までの準備について
今回はオンラインでの受験だったので、テストセンターでいかなくてよかったのですが、
試験を受けるにあたっての、本人確認書類の用意、受験スペース準備や規則などが大変でした。

・試験対策と試験概要
対策として、テキストでの学習や過去問を解くなどをしていました。一日に学習する範囲を決めてやったり、章まとめの問題集を何回も解きなおしていました。

LinuCレベル1(101試験)は試験時間は85分で出題数は60問でした。
以下は試験囲です。

第1章: Linuxのインストールと仮想マシン・コンテナの利用
第2章: ファイル・ディレクトリの操作と管理
第3章: GNUとUnixのコマンド
第4章: リポジトリとパッケージ管理
第5章: ハードウェア、ディスク、パーティション、ファイルシステム

・勉強してみた感想
Linuxのことを何もわからない状態からのスタートだったので、なんとなく理解するのにも時間がかかりました。
特にコマンドとそのオプションを覚えきれず、とても苦労しました。

・結果と感想
結果は残念ながら不合格でした。
1~5章の全範囲まんべんなく出ていたので、全体的に復習が必要だと思いました。
受験した感想といたしましては、どのような形で問題が出されるのかわからず、緊張して問題とくペース配分がうまくいかず、時間が掛かりました。
それによって見直しを行う時間がありませんでした。
また、第3章、第4章のコマンドを忘れていたり、コマンドは合っているのにオプションを間違えてるなどのミスが目立ちました。

今回の試験で自分の努力不足をとても感じました。次回受験する際には過去問やりこみ、解くスピードを上げて見直しをする時間を作りたいと思います。模擬試験で正解8割を安定して出せるようになってから再度、受験したいと思います。

現在は、ping-tというサイトを使って過去問を解いています。
このサイトは、試験範囲・問題数・出題形式まで自由に決めることができて便利です。
間違ってもわかりやすい解説があるので、おすすめです。(アカウント登録が必要です。)

https://mondai.ping-t.com/users/sign_in

いかがでしたでしょうか。

久しぶりのブログでしたが、よいネタを見つけたら投稿していきたと思います。

最後までご覧いただきありがとうございました!

2023年 新入社員ブログ 松井(第4回)

こんにちは。入社1年目の松井です。
前回までの内容は下に貼っておきます!

第1回はこちらです!

第2回はこちらです!

第3回はこちらです!

今回の内容はLaravel演習です。演習の内容の前にLaravelとは何なのかについて簡単に説明します!

Laravelは、多くのWebアプリケーションの開発に使われているPHP言語で開発されたフレームワークです。そもそもフレームワークとは何なのかについて説明すると、プログラミングの作業を毎回0から書く必要がある内容を予め「枠組み」として纏められている仕組みです。その枠組みがあることで、新しいアプリケーションを作るたびに同じ機能を実装させるという手間を無くすことができます。

社内で行われたLaravel演習の内容は前回紹介したPHP演習と大差ないので、もう一度紹介しますね。演習課題はPHPと同じく「会員登録フォームの作成」です。主な実装内容は以下の通りです。

会員登録フォームの内容

  • 会員登録/ログイン機能の実装
  • 会員一覧機能の実装
  • 会員情報変更機能の実装
  • 会員削除機能の実装

PHPで苦労した内容がLaravelで簡単なコードで実現できることを体感することができました。例えばPHPでは、ログイン後のページ一つ一つにセッションをつけないと不正アクセスかどうか判別できませんでした。しかし、Laravelでは、ミドルウェアという機能を使って簡単にログインしているかどうかで処理を振り分けることができます。また、PHP演習で苦労したページネーション機能は一行で書けるようになります。下記にページネーション機能を実装するために書いたコードを抜粋します。

PHPのコード

PHPだと複雑なコードを書かない上に多くの行数を費やしてしまいます。コードを読んだことがない人にとってはコメントが無いと何を書いているのか非常に分かりにくいと思います。

Laravelのコード

このコードはPHPと比較して非常にすっきりとした印象を持てますね。Laravelだと細かい部分はフレームワーク側で処理してくれるからここまで簡単に書けるようになります。

Laravelで作成した一覧画面を下に貼っておきます。大まかな構成はPHP演習で作ったものとあまり大差ありません。

今回の内容はPHPで実装するに苦労したものがLaravelでは簡単に作れたという内容でした。
最後まで読んで頂き、誠にありがとうございました!

2023年 新入社員ブログ 松井(第3回)

こんにちは。松井です。
もう11月になって上着を着用してる人が増えてきましたね!

前回までの内容は下に貼っておきます!

第1回はこちら
第2回はこちら

第2回ではSQL演習について紹介しましたが、今回と次回でPHP/Laravel演習について紹介します。今回はPHP側の演習について紹介します。演習内容の前にPHPについて簡単に紹介します!

PHPとはWebページを作ることがサーバサイドのプログラミング言語です。HTMLやJavaScriptと混同されやすいです。HTMLやJavaScriptはブラウザ側(ユーザ側)で動かしていますが、PHPはサーバ側で動かしています。PHPを使う最大の利点はデータベースとの連携を容易に行えるということです。サーバ側で動かしているので、Webサイト上でよく見るデータのやりとりを実現できるということです。

PHP/Laravel演習の課題は「会員登録フォームの作成」です。主な実装内容は以下の通りです。

会員登録フォームの内容

  • 会員登録/ログイン機能の実装
  • 会員一覧機能の実装
  • 会員情報変更機能の実装
  • 会員削除機能の実装

基本的に上記の内容を実装するという内容ですが、ユーザにとって使いやすいように配慮することが大変でした。例えば間違えてページのリロードをしたら入力内容が全て消えてしまうという問題は「値を保持させないといけない」ということや必要です。また、誤って入力した内容が直ぐにデータベースに登録されるのを防ぐために「確認画面を作る」ことや登録したかどうか確認するために「完了画面を作る」機能も必要でした。機能作成の面で特に大変だったことは「ページネーション機能の実装」でした。実装するために多くの行数を書く必要があることやページを遷移することによって入力した値が保持できないといったバグを対処することがとても大変でした。作成した会員一覧ページはこのような感じです。

次回はLaravel演習について書きます。LaravelはPHPと比べ、複雑な機能を簡単に書けるという特徴を持っていますのでPHPとの違いについても紹介していきます!
最後まで読んでくれてありがとうございました!

2023年 新入社員ブログ 松井(第2回)

こんにちは。
入社1年目の松井です。
もう10月になって冷えてきましたね!

前回は外部研修について紹介しました。
「外部研修とは?」と思った方はこちらのURLに書いてありますので気になったら覗いてみてください!

https://blog-s.xchange.jp/archives/date/2023/08/03

内部研修の概要

6月から7月末にかけて内部研修を行いました。
内部研修の内容は以下の2つです。

  • SQL演習(6月中旬まで)
  • PHP/Laravel演習(6月下旬から7月末まで)

SQL演習

SQLの問題集を読み、演習問題を解きました。外部研修中ではなかなか問題を解く機会が少なかったので内部研修を通じてSQLの勉強をしました。内部研修に使った本はこの下にURLを貼っておきますので、気になった人は覗いてみてください!

https://book.impress.co.jp/books/1121101090

SQLでの勉強で難しかったところは副問い合わせでした。副問い合わせとは「他のSQL文の一部分として入っているSELECT文」です。特徴としては「検索結果に基づいて表を操作する」という点です。言葉だけだと分かりづらいので例を挙げます。

例:家計簿というテーブルから最も大きな出費を調べ、その費目と金額を求める

文章で書くと簡単に見えますが、SQLではそうはいきません。SQLでは「最も大きな出費を調べる」、「それを基に費目と金額を求める」の2つのステップが必要です。まずはステップごとのコードを書いてみます。

(1)で調べた値を基に費目と金額を求め、(2)で費目と金額を求めることができました。これだと(1)の値が急に変わったときに調べ直すのが面倒です。そこで、(1)のコードを(2)のコードに書いてある「(1)から書き写した値」に埋め込みます。

(3)では、(2)のWHERE句の中に(1)を埋め込みました。このようにすれば、(1)と(2)の動作を一括に実行でき、(1)で出力されるものが変わっても(2)を書き換える必要がなくなります。(3)のコードに入っている括弧の中身が副問い合わせということです。

このようにしてSQL文の意味や使い方について深く学んでいきました。

SQL演習についての話はここまでです。次回はPHP/Laravel演習について書きます。最後まで読んで頂き、誠にありがとうございました!