LOWCAL

NEWSニュース

【技術ブログ】WEB開発エンジニアとして携わったはじめてのPHP経験〜当時の振り返り〜

2020/03/12

LOWCALPHPブログ202012TOP

BLOG

昨今、WEB業界において需要の高い「PHP」。WEB業界にいる方であれば1度は聞いたことがあるかと思います。
PHPはWEBサイトやアプリケーションを開発するためのスクリプト言語で、ドキュメントの数も多く書き方のルールも他言語に比べて自由度が高いため未経験の方でも触れやすい言語です。

今回は、PHPエンジニア6年目のWさんに初めて携わったWEB開発経験についてお話しを伺いました。

 

〜Wさんプロフィール〜
LOWCALプロフィール

大学では社会情報学部を専攻。ゼミではC++でゲーム開発を経験。
新卒でSES企業へ入社。
3ヶ月間の研修を経てアパレルECサイト案件を担当。
以降PHPやJavaScriptをメインにWeb系開発から業務系開発まで幅広い案件を担当しエンジニアとして6年間の経験を積んでいる。

 

PHPとは?

PHPの正式名称は「PHP: Hypertext Preprocessor」
PHPとは動的にWebページやコンテンツを生成することができるサーバーサイドのスクリプト言語です。他のプログラミング言語と比較して仕様や文法が簡単なため習得しやすいと言われています。
またMySQLなどのデータベースとの連携が容易なことなどから、WordPressを含めたWebアプリケーションの開発にもよく使われる有名なスクリプト言語でもあります。

 

近年のPHPの傾向

PythonやGoLangが注目される昨今ではありますが、Web業界においてPHPは依然幅ひろく使用されている言語です。
例:Facebook、Wikipedia、Tumblr、Pixivなど

その中でもEC業界でPHPがよく使われていますが、理由は以下の点かと思います。

①ECを対象にしたパッケージ(EC-CUBE、EC-Orange)があり、ドキュメントやナレッジがあるため導入コストが低い②PHPファイルにHTMLやCSS、JavaScriptを組み込みやすいためデザイナーと分業しやすい
③Javaに比べ習得しやすくドキュメント数も多いため、スピード感を求められる案件に向いている
※Javaなどは基幹システムなど大規模案件に向いている

なお、PHPのECサイトで多く使われるフレームワークはLaravelが非常に人気です。
Laravelは2011年に登場し、歴史としては浅めではありますが、日本語のドキュメントがとても多く、コマンドも豊富に用意されています。コマンドはCakePHPやSymfony、FuelPHPにも用意されていますがダントツで多いです。また、構成管理にも特化しており設定によって自由に開発できることから人気の高さがあります。

LOWCAL PHPブログ画像

 

Wさんが初めてPHPに触れたとき

新卒で入社した会社での研修は、ビジネスマナーと開発に向けて情報処理の基本的知識、プログラミング言語、DB設計、MySQLを中心に学習し、チームになってDB設計をおこないました。
同期は8人おり、進捗度で競争したり教えあったりと仲良く取り組めたことで、その後別業務になった際にも悩みを相談しあったりと心の支えとなりました。

研修ではじめてPHPに触れた際にはC++に触れたことがあったおかげか、はじめは入り込みやすかったです。スクリプト言語なのでプログラミングしたあとにコンパイル(プログラミング言語で記入された文字列をコンピュータ上で実行可能形式に変換すること)は必要なくすぐに表示、確認ができ、実践を通して理解を深めていきました。

ただ、PHP特有の「$」や文末にセミコロンを書き忘れていたり、比較(==)を代入(=)と記載していたりと初めての場合あるあるなところでつまづいたり、DBを用いての演習やMVCの概念はとても苦戦したのを覚えています。

 

チームであるという事、要望を理解することが大切

 

LOWCAL PHPブログ挿入画

 

初めての現場

記念すべき初めての案件先はアパレルEC会社で、PHP経験歴10年以上の先輩と一緒に常駐でした。

案件が決まった時は自分の利用したことがあるブランド名が多くて、わくわくしていたのを覚えています。
ですが!いざ、現場に入ると男性ばかりで「なじめる気がしない・・・・・!!」というのが初出社した時の正直な気持ちでした。
そんな中でも研修で教わった「挨拶、笑顔は大事!」を意識し、きっと硬かったでしょうがひたすら笑顔で挨拶するように心がけました。その結果、ランチを一緒に行ったり、業界知識を教えてもらうことができました。(今でも一緒にお酒を飲みに行ったりします^^)

勉強も兼ねて会議やクライアント先の打ち合わせに参加させてもらう機会が何度かあったのですが、初めて聞く単語(APIやUI、レスポンシブなど)ばかりで議事録をとるのに必死でした。
口頭でのやりとりも多く、説明している人が早口だったので、とにかくメモをとったり、業務上で見聞きしたPHPやフレームワークの単語、業界専門用語をEvernoteに書き出して帰り道に調べながら書き足したりしました。

月に1度帰社日があったのでその際に先輩や同期に仕事の進め方を聞き、アドバイスをもらうようにしていました。上記でも書きましたが、エンジニアをする上で情報収集は大事だと今でも感じています。

そして、業務にも現場環境にも少しずつ慣れてきた頃、CentOSの構築方法をマニュアル化するタスクを振ってもらうことができました!

Redmine(リンクはる:http://redmine.jp/overview/)のWikiに書かれている節々の情報を元に構築しましたが、Wikiの情報が古い内容も多く、とても苦戦しました・・・・。
CentOSを構築していくなかでコマンドライン用の黒い画面カッコいいー!私もプログラマーだ!と思った矢先、上司からの依頼はCUIではなくGUIでの構築方法だったためキャプチャを全部取り直しとなりました。(あのときの絶望感は今でも忘れません。そこから確認は怠らないようになりました)
また、構築を何回もトライすることでネットワーク設定、ディレクトリ構成、サイト構築に必要な情報を環境構築に少しずつ学ぶことができました。

その他にも画面修正やAPIを実装するタスクを振っていただきましたが、実装してみると動かないこと続きで表示してみてもエラーエラーエラー・・・・・しかも何が原因で動かないのかがわからない!研修でも学習したMVCに馴染めView(テンプレートファイル)に制御系のコードを何度も書き、何度もレビューを返されました。
その度に、エラーの原因になった箇所やレビュー時に教えていただいた内容を付箋に書いてPCに貼り繰り返し目を通すようにしました。
業務経験以外からもPHPの勉強会やカンファレンスに積極的に参加し、情報収集するように心がけ、以前に比べ指摘される回数も減っていきました。

結果、携わったサービスが自分のスマホで動いているのを実感したときはとても嬉しかったし、その感情今でも原動力だと思います。

担当ブランドへ足を運び、アプリを利用している人がいないかをこっそり偵察してました!笑

 

プロジェクトに入って学んだこと

当時の私は完璧を求めすぎていて、完成してから提出をするという信念でした。
その結果、期限をすぎても仕事が終わらないことが度々ありました。

その際に以下のことを教わりました。

・自分の担当している箇所だけで仕事が完結している訳ではない。
・サイトを一緒に作っている方々や後継する人がいること。
・自分の仕事のスケジュールが遅れると多くの人たちに影響を及ぼしてしまうこと。

教わったことを元に以下のことを意識するように心がけるようになりました。

・情報収集を怠らない
・15分考えてもわからないことは他の人に聞く
・完璧を求めすぎない
・見積もりは「できるなと思う時間 × 1.5倍」で提示する
・タスクの目的やゴールをあらかじめ確認する

大事なのは自分1人で完璧を求めず、期限は「絶対守る!」ということです。ECサイトは顧客・商品・在庫・受注・発送・返品などの情報を管理するため機能がたくさんあり、タスクや課題もたくさん出てくるものです。それらを解決するために上記のことを意識することはとても大事だと学びました。

今までの経験を振り返ると、挫折しそうになることも多々ありました。新しいことを経験する上で失敗はつきものですが、そこでへこたれずに次に繋げるために何をすべきか、自分に何ができるかを考えるようになれました

今後もECをはじめとしたWeb関連のプロジェクトに関わっていくので、もっと広い視点で、かつ軸や目的、ゴールは明確にした上で取り組んでいきたいです。

 

LOWCALを気になっていただいた方は下記よりご応募ください!
PHPエンジニア募集要項

 

★Wantedly
★公式LINE@
★Instagram
★Twitter
★Facebook
★YouTube