組み込み系からWeb系へのスキルチェンジ【随時更新】


はじめに

組み込みの開発しかほぼしたことしかない中で、Web系のスキルを身に着けるためにやったことをメモっておきます。

現状のWeb系のスキル。

  • Perl/PHP/javascript/HTML5:ちょっと使えるレベル
  • github/Slack:プライベートで少し使ってるレベル

書籍

Web系

No タイトル メモや所感
1 TECHNICAL MASTER はじめてのPHPプロフェッショナル開発 PHP7対応 チーム開発に即した形(もちろん会社やプロジェクトにもよるだろうけど)で書かれてたので、PLをやるのに役立ちそうだったので購入。推奨動作環境はMacOSで書かれています。
2 PHPフレームワーク Laravel入門 第2版 Laravel6ベースです
3 JavaScript本格入門 ~モダンスタイルによる基礎からAjax・jQueryまで 昔買ったもの再勉強。現在は改訂版が出てます。
4 これからはじめるVue.js実践入門 3.と同じ執筆者のもの
5 速習 TypeScript 第2版 速習シリーズ Kindle版 Kindle Unlimitedの対象。3.と同じ執筆者のもの
6 いまから始めるWebフロントエンド開発 Kindle版 Kindle Unlimitedの対象。2016年初版で10年くらいのWeb開発の流れが書かれている。他の本によく出てくる言葉の説明とかもあるので、初めに読んどくといいかも。
7 これ1冊でゼロから学べる Webプログラミング超入門 ーHTML,CSS,JavaScript,PHPをまるごとマスター Kindle版 Kindle Unlimitedの対象。広く浅く書かれている。2.と同じ執筆者のもの。流し読み
8 速習webpack 速習シリーズ Kindle版 Kindle Unlimitedの対象。3.と同じ執筆者のもの。流し読み

ツール系

No タイトル メモや所感
A サルでもわかるGit入門 Kindle版 Kindle Unlimitedの対象。 SourceTreeの操作主体で書かれている。付録でコマンドライン操作あり
B Web制作者のためのGitHubの教科書 チームの効率を最大化する共同開発ツール Web制作者のための教科書シリーズ Kindle版 Kindle Unlimitedの対象。SourceTreeの操作主体で書かれている。流し読み

マネージメント系

No タイトル メモや所感
SCRUM BOOT CAMP THE BOOK【増補改訂版】 スクラムチームではじめるアジャイル開発 2020/5/20に改訂版が出ています

デザイン系

No タイトル メモや所感
UXと理論で作る Webデザイン: デザイナーでなくてもわかる Kindle版 Kindle Unlimitedの対象。読みやすい構成だった。

Web学習

  1. paizaラーニング(PHP系)
  2. paizaラーニング(HTML/CSS入門編):Bootstrap勉強向け
  3. paizaラーニング(Git入門編):初歩だけ
  4. paizaラーニング(Java入門編):思い出す!
  5. Udemy JavaSE8 インタフェース ラムダ式 ストリーム 集中コース

環境構築

手持ちがWindows10 homeしかなくDockerを入れれないので、VirtualBox+Ubuntuベースで環境構築しました。

Windows10にVirtualBoxとUbuntuをインストール

Windows10にVirtualBoxとUbuntuをインストールを参考にしました。
Ubuntuのバージョンは2020/3/22時点で最新のLSTの「Ubuntu 18.04.4 LTS」を使用しましたが、手順はほぼ一緒です。

設定変更

Ubuntuに割り当てたHDD容量を変更

Docker

VirtualBox に Ubuntu 18.04 と Docker をインストールしたメモを参考にインストール。バージョンは19.03.8。

追加でdocker-composeをインストール

$ sudo apt install docker-compose

PHP

一旦、書籍1.に合わせてPHP7.2を入れる。
Ubuntu 16.04 で PHP 7.2 を使う手順

MySQL

UbuntuにMySQLをインストールを参考にインストール。
バージョンは14.14。

$ sudo apt install mysql-server mysql-client
//rootユーザ設定
$ sudo mysql_secure_installation

SQLite

$ sudo apt-get install -y sqlite3
$ sqlite3 -version
3.22.0 2018-01-22 18:45:57 0c55d179733b46d8d0ba4d88e01a25e10677046ee3da1d5b1581e86726f2alt1
$ sudo apt-get install sqlitebrowser
$ sudo apt-get install php7.2-sqlite3

Laravel

UbuntuにLaravelをインストールし起動 を参考にインストール。 PHP拡張パッケージは以下も追加でインストール

$ sudo apt-get install php7.2-json

Visual Studio Code

簡単にUbuntuにVSCode (Visual Studio Code) をインストールする方法を参考にインストール。
バージョンは1.43.2。

日本語化

Visual Studio Code のユーザーインタフェイス(UI) 表示を日本語にする

PHP IntelliSense

以下を参考に導入。

setting.jsonの設定は、LinuxのPHPのインストール先に合わせて以下になります。

~/.config/Code/User/setting.json
{
  "php.validate.enable": false,
  "php.suggest.basic": false,
  "php.executablePath": "/usr/bin/php"
}

PHP Intelephense

PHP IntelliSenseより使い勝手がいいかも。HTML部分も補完してくれる。

Git関連

設定

  • エクスプローラーのフォルダ階層のインデント幅変更:Workbench > Tree: Indent
  • [定義へ移動]などで、常に別タブで開くようにする:Workbench > Editor:Enabel Preview:→OFF

やったこと

PHP+Dockerの環境構築

書籍1.を見ながら、環境構築。

うまくいかなかったとこ

Dcokerでdocker-entrypoint-initdb.dをマウントするときにPermission deniedエラーがでる。

docker-compose.ymlに以下を追加したら、エラーがでるようになった。(全文は書籍の内容なので割愛します。)

docker-compose.yml
    volumes:
      - ./Docker/mysql/sqls:/docker-entrypoint-initdb.d
$ docker-compose up
Creating network "phpbookapp_default" with the default driver
Creating php-book-app-db ... 
Creating php-book-app-db ... done
Attaching to php-book-app-db
php-book-app-db | 2020-03-29 01:19:13+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.29-1debian10 started.
php-book-app-db | 2020-03-29 01:19:13+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
php-book-app-db | 2020-03-29 01:19:13+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.29-1debian10 started.
php-book-app-db | ls: cannot open directory '/docker-entrypoint-initdb.d/': Permission denied
php-book-app-db exited with code 2
解決策

ホスト側のディレクトリにgroupとotherの読み取り・実行権限がなかったのが原因でした。。。

LaravelでPHPとPythonの連携

別記事にしました。
ゼロから作るPHPとPythonの連携 on Laravel

VueとTypeScriptの導入

別記事にしました。
ゼロから作るPHPとPythonの連携 on Laravel + Vue + TypeScript
TypeScriptはC#やってた人間からすると、たいぶ扱いやすいですね。さずがMS。