ラベル プログラミング の投稿を表示しています。 すべての投稿を表示
ラベル プログラミング の投稿を表示しています。 すべての投稿を表示

2020年8月14日金曜日

PHP初心者が勉強する方法は?


こんにちは。

最近、「プログラミングを勉強しています」という声をよく耳にします。

特にWebエンジニアを目指している方が多いようです。

Webエンジニアになるには、以下の技術が必要になります。
  • HTML
  • javascript
  • PHP
HTML、javascriptは、クライアント側で主にデザイナーが担います。

PHPは、サーバー側でエンジニアの仕事となります。

そこで今回は、PHP初心者へむけて勉強方法を書いていきます。

ちなみに、私は、組み込みエンジニアとして7年ほど、その後は、Webエンジニアとして10年ほど働いて来ました。

PHP初心者が勉強する方法は?


PHPを勉強する方法は、以下になります。
  1. 基礎を勉強する
  2. ソースコードを読む
  3. 実際に作業を行う
PHPに限らず、プログラム言語を勉強する方法は、上の3つになります。

では、詳細を以下で説明します。

1.基礎を勉強する


何をやるにも基礎は大事です。

なので、PHPの勉強も基礎からやっていきます。

まずは、Hello World からですね。

いろんなプログラム言語を習得している方でも、はじめはここから始めます。

理由は、使用する環境が正常に動作するかの確認です。

その後は、プログラミングの基礎の勉強をします。
  • 分岐
  • ループ
  • 関数
  • クラス
この辺ですかね。

PHPの基礎については、Webで「PHP 入門」と検索すれば、たくさん出て来ますので、そこで勉強すればOKです。

なので、ここでは細かく取り上げません。

2.ソースコードを読む


PHPの基礎が理解できたら、一旦、他の方が書いたソースコードを読んでみましょう。

この、「ソースコードを読む」を飛ばして、実際に作業をする方が多いですが、そういう方が書いたソースコードは、読み辛く、無駄な処理が多いです。

ソースコードは、同じ処理や同じような処理を、関数やクラスでまとめて重複しないようにするのが1番です。

そう言った方法は、他の人が書いたソースコードを読むことで身に着きます。

まずは、ソースコードを読んでいて読みやすいと思うソースコードを真似することで、自分でも読みやすいソースコードが書けるようになるのです。

また、プログラミング言語には、それぞれにコーディング規約があります。

PHPだとSRP-2ですかね。

コーディング規約を読むことも必要なのですが、いろんなソースコードを読んでいると、次第に身に着いてきます。

今では、githubなどで多くのソースコードが公開されています。

ここで必要なことは、ロジックを理解する事ではなく、ソースコードの書き方や、クラスのまとめ方を見るようにしてください。

3.実際に作業を行う


ここまで来ると、勉強はおしまいです。

実際に作業をしましょう。

最初は、難しいと思います。

実際の作業は、勉強とはレベルが違います。

しかし、勉強ばかりしていても、実績が着きません。

なので、実際に作業をしながら勉強するようにしましょう。

PHPには、標準でいろんな関数が用意されています。

Webで検索すれば出て来ますので、困ったときは検索するようにしましょう。

それでもない時は、ロジックから考えて作ることになります。

技術は本では身につかない


PHPなどのプログラミングもそうですが、技術と言われるスキルは、本を読むだけでは身につきません。

本で知識を習得したら、手を動かし実際にやってみる必要があるのです。

プログラミングを習得するなら、本を読みながら手を動かし、実際にソースコードを書いてみて動かしてみるのです。

最初は、動かないことが多いかもしれません。

でも、それを乗り越える事でスキルは身についていくのです。

そして、基礎勉強が終わったら、実際に作業をする必要があります。

上にも書きましたが、実際に作業としてプログラミングを行うと、壁に何度もぶつかります。

それを、一つずつ乗り越える事で、実績が積み上げられるのです。

まとめ


今回は、PHP初心者が勉強する方法について書きました。
  1. 基礎を勉強する
  2. ソースコードを読む
  3. 実作業を行う
この方法は、他のプログラミング言語を勉強する時も同じです。

コツコツと勉強することができれば、数ヶ月で実際に作業ができるまでに成長できます。

でも、モチベーションが保てなくて挫折する人も多いです。

そんな時は、お金を払ってプログラミング講座を受講するのも良いと思います。

お金を払って勉強しても、実際にプログラマーになれば、すぐに元が取れますし、勉強するモチベーションも保てると思いますよ。

では、今日はこの辺で。

2020年6月4日木曜日

変数の命名方法



こんにちは。

今日は、変数の命名方法について書いてみます。

プログラマの中には、命名規則に沿っていないソースコードを書く人がいます。

特に、経験の浅い人は、自分の好きなように、関数名や変数名を書く人が多いようです。

しかし、システム開発は、1度作ったら終わりとなる開発はありません。

有名なシステムの場合は、半年ごとに機能が見直されるため、自分が作った機能を、他の誰かが改造することは良くあります。

なので、命名規則には十分に注意が必要なのです。

では、最低限守った方がいい命名規則が以下になります。
  • 英単語を使用する
  • 1文字の変数は使用しない
  • プロジェクトで統一する
では、それぞれ説明しますね。

英単語を使用する


変数は、見ただけで何の値が格納されているのかが分かるように命名します。

プログラマの中には、日本語をローマ字で書く人もいます。

確かに、日本語をローマ字にした変数名だと、日本人には分かりやすいかもしれません。

しかし、今はグローバル社会ですよね。

今外国人と仕事していなくとも、後々、そのソースコードを外国人が修正するかもしれない。

その時、日本語をローマ字に変換しただけの変数名だと、外国の方には、記号にしか見えないのです。

なので、ソースコードを誰でも修正できるように、変数名は、英単語の変数名にしましょう。

1文字の変数は使用しない


日本語をローマ字に変換しただけの変数が、外国人には記号にしか見えないのと同じように、1文字の変数は誰が見ても記号です。

特に、入れるのインデックス値を1文字の変数にする人が多いです。

1文字の変数は、見てすぐに何の変数か分かりませんよね。

インデックスならば、indexと書いてあった方が意味が分かりやすいですよね。

これて、修正に修正が入って、ソースコードが長くなったりすると、1文字変数は意味が分からないくなることが良くあります。

なので、ソースコードが長くなると、不具合の原因になることが良くあるのです。

私も、長く修正が行われているソースコードで、1文字変数の意味が途中で変わって不具合になっているのを見たことがあります。

なので、1文字の変数は使わないようにしましょう。

1文字の変数が良く使われるのは、ちょっとしたサンプルのソースコードで良く使われるからです。

サンプルのソースコードって、短いし、後に修正が行われることを考える必要がないので、1文字の変数でもいいのです。

しかし、仕事でソースコードを書く場合は、後に修正が行われることを意識して書く必要があるのです。

プロジェクトで統一する


変数名の付け方は、プロジェクトで統一しましょう。

開発する時は、統一されているかもしれませんが、修正されるたびに変数名がぐちゃぐちゃになることが良くあるのです。

一番ひどいのが、英単語の変数名と日本語をローマ字に変換した変数名が混在している場合です。

プログラマの中には、自己流の命名規則に則って修正を行う人が結構いるのです。

修正する時に、命名規則がない場合は、修正する前にソースコードを読みましょう。

必要なソースコードだけでなく、他のソースコードも読むと変数名をどうすれば良いかは分かるはずです。

今は、オブジェクト思考でコーディングされていることが多いですよね。

なので、必要なクラスのソースコードや、継承元のソースコードを読めば良いのです。

まとめ


では、もう一度繰り返しますね。

変数名をつける時は、以下のことに気おつけるようにしましょう。
  • 英単語を使用する
  • 1文字の変数は使用しない
  • プロジェクトで統一する
少なくとも上記のことに気おつけることで、ソースコードが読みやすくなります。

できれば、会社で命名規則を統一しておくと、他のプロジェクトでも取り組みやすくなるので良いと思います。

では、今日はこの辺で。

2020年4月5日日曜日

コーディング規約の重要性

こんにちは。

今日は、コーディング規約の重要性について書いてみようと思います。

結論から言うと以下になります。
  • コーディング規約を無視したソースコードは読み辛い
  • フレームワークを使う場合はフレームワークのコーディング規約を使う
  • 独自コーディング規約よりも公式のコーディング規約を使おう
個人でWebサービスやソフトウェアを作っている時は、コーディング規約なんて気にしないと思います。

でも、チームで開発する時は、コーディング規約はとても重要です。

この辺を、私の経験を踏まえながら書いていきますね。

コーディング規約を無視したソースコードは読み辛い

チームで開発をしていると、コードレビューをします。

私も何度もチームメンバーのコードレビューをしてきました。

でも、コーディング規約を無視して書かれたソースコードは本当に読み辛いです。

コーディング規約を無視してコーディングする方は、大体がソースコードは動けばいい、くらいにしか考えていない方が多いです。

でも、考えてください。

システムは、一度作ってしまえは終わりと言う時代は昔の話です。

今は、システムは、育てていく時代です。

つまり、自分が書いたソースコードは、いつかは修正されるのです。

読み辛いソースコードを書いていると、修正をする方がとても苦労します。

苦労するだけじゃなくて、修正に時間がかかってしまい、修正する方へ大きなストレスを与えるのです。

私も、プログラマとして働き出したばかりの頃は、コーディング規約を重視していませんでした。

でも、時間がたった後で、自分のソースコードを修正する時、自分ソースコードなのに読み辛く、修正に多くの時間が必要でした。

自分の作ったソースコードに対して、「誰だこんなソースコードを書いたのは」と突っ込んでいたくらいです。

なので、チームを持つようになってからは、コーディング規約に沿ってないソースコードは、時間がなくても書き直してもらうようにしています。

若いプログラマの中には、不平・不満を言う方もいます。

そういうプログラマには、コーディング規約の重要性と、今のシステムを育てて、今後もっといいシステムにしたい意思を伝えるようにしています。

フレームワークを使う場合はフレームワークのコーディング規約を使う

仕事としてシステム開発をしていると、フレームワークをよく使います。

最近では、いちからスクラッチで開発することはほぼありません。

フルスクラッチで開発する時も、laravelやreactなどのフレームワークを使用します。

その場合は、laravelやreactのコーディング規約に沿ってコーディングを行うことで、読みやすいソースコードになります。

例えば、Wordpressのプラグイン開発をする場合を考えてみましょう。

Wordpressのプラグインを開発する場合、Wordpressで公開されている関数をよく使います。

そんな時、Wordpressのコーディング規約を知っていると、公開されている関数や変数を探しやすくなります。

また、他のプラグインと連携するのも容易になります。

これが、全く違うコーディング規約を使ったらどうなるでしょうか。

まず、Wordpressで公開されている関数を見つけるのに時間がかかってしまいます。

もしかすると、同じような処理をする関数を1から作ることになるかもしれません。

でも、自作した関数は、セキュリティ的に大丈夫か、想定外のデータを取得した場合の処理は適切かなど、検討しなければいけないことが増えてしまいます。

他のプラグインとの連携でも同じことが考えられます。

Wordpressのコーディング規約に沿って開発するだけで、少しでも手間が省けるのです。

以下にワードプレースのコーディング規約へのリンクを貼っておきますね。

Wordpressコーディング規約 (外部リンク)

独自コーディング規約よりも公式のコーディング規約を使おう

大手のシステム企業では、独自のコーディング規約を設けている所もあります。

でも、これからコーディング規約を作るのであれば、公式のコーディング規約を使いましょう。

何故かというと、コーディング規約を作ることが、あなたの企業の業務ではないからです。

そこに、時間をかけるくらいなら、システム開発をすることに注力した方が充分に利益につながります。

何度も同じコーディング規約を使用していると、少しずつ足りないなと思う点が見えてきます。

足りない点を既存のコーディング規約に追加していけばいいだけなのです。

私が勤めている会社でも、数年前に独自のコーディング規約を作ろうとした時期がありました。

いろんなコーディング規約のいいとこ取りをしようと考えていたのですが、結局、公式のコーディング規約を使用することになりました。

理由は簡単で、いろんなコーディング規約を読んでまとめる充分な時間が取れないというのが理由でした。

また、公式のコーディング規約には、基本的なことは定義されています。

基本的な規約に沿ってソースコードをコーディングするだけでも、読みやすいソースコードになりますし、システム全体の統一性も保たれます。

以下に、私が勤める会社で使用しているコーディング規約のリンクを貼っておきますね。

PHP Standards Recommendations(外部リンク)

まとめ

コーディング規約は、チームで開発する時には、とても重要です。

でも、ベテランのプログラマでも、コーディング規約を軽視している方が結構いるように思います。

ただ、自分が書いたソースコードを、後々、誰かが読んで、もっといいソースコードに書き換えてくれると考えると、コーディング規約に沿ってコーディングする大切さが分かるのではないでしょうか。

では、今日はこの辺で。

おまけ

システム開発ついて書いた過去のブログを以下に紹介します。




2020年3月26日木曜日

プログラミングを勉強する時に大切なこと

こんにちは。

今日は、プログラミングを勉強する時に大切なことについて書いてみます。

結論から言うと以下になります。
  • まずは1つのプログラム言語をマスターする
  • フレームワークは学ぶ必要ない
  • Linuxコマンドをマスターする
この3点に注力すれば、3ヶ月でそこそこ動くプログラムを作ることができるようになります。

これは、社会に出たばかりの自分に伝えたいことです。

まずは1つのプログラム言語をマスターする

まずは、1つのプログラム言語を充分にマスターしましょう。

プログラム言語は、どの言語も似ている点が多いです。

また、基本となる処理は以下のみです。
  • 分岐
  • ループ
  • 関数
基本となる処理については、過去に書いた記事がありますのでそちらを参照してください。


1つのプログラム言語をマスターしてしまえば、違うプログラム言語を勉強するのも、すんなり入ってきます。

フレームワークは学ぶ必要はない

フレームワークは、初めのうちは学ぶ必要はありません。

実際に仕事をするようになると、フレームワークを使います。

しかし、企業によって使うフレームワークは違ってきます。

プロジェクトによって違う場合もあります。

なのでフレームワークを学ぶのではなく、まずは、1つのプログラム言語を十分に身に付けることを意識してください。

フレームワークは、実際に仕事をするようになってからで十分に学ぶことができます。

また、使用するフレームワークに詳しい先輩や仲間がいるので、分からないことは使いながら学ぶことが可能です。

しかし、プログラム言語を1つも知らなと仕事になりません。

Linuxコマンドをマスターする

実際にプログラマーとして仕事をすると、Linuxサーバでの作業が多いです。

開発するPCはWindowsでも、実際に動作するOSはLinuxが大半です。

Linuxコマンドが使えなと動作試験で苦労します。

Linuxは、デスクトップもありますが、コマンドで使えるようにしておきましょう。

GUIのツールがある場合もありますが、実際遅いです。

Linuxコマンドに慣れているだけで、プログラマーとしての生産性が結構違います。

まとめ

つまり、Linuxで1つのプログラム言語をとことん勉強するのが一番です。

私が社会に出たばかりの頃は、いろんなプログラム言語を勉強していました。

それに使えそうなフレームワークがあれば、いろいろと使ってみてました。

でも、フレームワークは、プロジェクトで決まっていることが多く、いろんなフレームワークを知っていてもあまり役に立ちませんでした。

結局、私はいろいろとやって遠回りをしてしまいました。

この3点に注力すれば、プログラミングの仕事は何とかなるのではないでしょうか。

では、今日はこの辺で。

2020年3月7日土曜日

プログラムの基本処理

こんにちは。

今日は、プログラムを学習するときに押さえておきたい点について書いていきます。

結論から言うと以下の処理を押さえておけば、プログラムを読むことはできるようになります。

  • 分岐(if文)
  • ループ(for文、while文)
  • 関数

プログラムの基本処理

プログラムは、全てが四則演算でできています。

入力された値を変数に入れて、足したり、引いたりと加工し、出力した値を作り上げます。

私は、いろいろなプログラム言語で開発した経験があるのですが、コーディングを開始する前に、まず確認するのが、分岐、ループ、関数の書き方、呼び出し方です。

分岐(if文)

まず必ずと言って良いほど必要なのが「分岐(if文)」です。

条件によって処理を分岐することは必ず発生します。

Javascriptだと以下のような書き方になります。

if (<条件>) {
// 処理
}


分岐を理解するだけでも、プログラムは読めるようになります。

ループ(for文、while文)

同じ処理を繰り返し行う場合は、ループで処理します。

同じ処理を何度も書かないということは、不具合を減らすためにとても大切なことです。

Javascriptでは以下のように書きます。
for (<初期値> ;<条件> ; <加算> ) {
// 条件が不一致となるまで実行する処理
}


ちょっとわかり辛いですかね。
具体的なソースコードを書いておきます。

var a = 0;
for ( var i = 1 ; i < 5 ; i++) {
a = a + i;
}
// a = 10


a の初期値は0です。
i の初期値は1で、5より小さい値の間、i を1づつ加えて処理します。
つまり、a の値は以下のように変化します。

a = 0;
a = 1;     // i = 1
a = 3;     // i = 2
a = 6;     // i = 3
a = 10;   // i = 4

i は 5 まで変わりますが、条件に不一致となるので、ループを抜けます。

ループには、while文という処理もあります。

while文は、条件判定は処理した後に行う時によく使用します。

つまり、一度はループ内の処理を行った後条件を判定する場合です。

Javascriptでは以下のようになります。


do {
// 処理が不一致の場合に実行する処理
} while (<条件>);


while文で気を付けないといけないのは、条件の部分です。

while文は、条件が一致した場合にループを抜けます

また、無限ループを作成し、処理内で分岐してループを抜ける場合もあります。


while(1) {
// 処理
if (<条件>) {
break;
}
}


ただ、このような書き方は、できるだけしない方がいいです。
できるだけ条件を入れて無限ループは作らないようにしましょう

関数

最後に必要となるのは、関数です。

ループ処理でも書きましたが、同じ処理は何度も書くと不具合の原因となります

同じ処理と何度も必要となる時は、関数にして呼び出すようにしましょう。

また、最近の書き方だと、1関数1処理で書くようにすると綺麗なソースコードになります。

Javascriptだと以下のような書き方になります。


function <関数名> (<引数>) {
// 処理
}


プログラミングの経験を積んだ方でも、処理を関数化せずにダラダラと書く方がいます。
そういうソースコードをスパゲティコードといいます。

処理が長くなって、少し修正するだけで不具合の原因となったりします。

まとめ

プログラムを読む際の基本となるのは、この3点です。
  • 分岐
  • ループ
  • 関数
そして、後は多くのソースコードを読んで、処理の書き方や、綺麗なソースコードの書き方を学んでください。ソースコードは人によって書き方が違います。読むだけでも結構勉強になったりしますよ。

では、今日はこの辺で。