[CSS] OOCSS、SMACSS、BEM 参考サイト

OOCSS

Home · stubbornella/oocss Wiki · GitHub
https://github.com/stubbornella/oocss/wiki

An Introduction To Object Oriented CSS (OOCSS) – Smashing Magazine
https://www.smashingmagazine.com/2011/12/an-introduction-to-object-oriented-css-oocss/

OOCSS(オブジェクト指向CSS)のススメ | hijiriworld Web
http://hijiriworld.com/web/oocss/

知っておきたいHTMLテンプレート設計法 – OOCSSの基本 | CodeGrid
https://app.codegrid.net/entry/oocss-1

CSSにもオブジェクト指向を – OOCSSことはじめ
https://www.slideshare.net/kimuranisei/css-31872360?next_slideshow=1

[CSS] Object Oriented CSSを学んで綺麗なコードを書く – YoheiM .NET
http://www.yoheim.net/blog.php?q=20141201

SMACSS

Home – Scalable and Modular Architecture for CSS
https://smacss.com/

悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
https://www.slideshare.net/horiguchiseito/master-architecture-forcss

SMACSSによるCSSの設計 – ベースとレイアウト | CodeGrid
https://app.codegrid.net/entry/smacss-1

[CSS] モジュール化についてしっくりと理解できないので、ちゃんと考えてみました – YoheiM .NET
http://www.yoheim.net/blog.php?q=20130602

BEM

BEM — Block Element Modifier
http://getbem.com/

BEMによるフロントエンドの設計 – 基本概念とルール | CodeGrid
https://app.codegrid.net/entry/bem-basic-1

BEMを参考にしたCSS設計 – Qiita
http://qiita.com/mrd-takahashi/items/07dc3b4bad027daa2884

実践 めんどうくさくない BEM – ダーシマ・ヱンヂニヤリング
http://tsmd.hateblo.jp/entry/2013/12/12/004059

[PHP] Guzzle – 自由度の高いHTTPクライアント

GuzzleはPHPで書かれたHTTPクライアント。

GitHub – guzzle/guzzle: Guzzle, an extensible PHP HTTP client
https://github.com/guzzle/guzzle

Guzzle | PHP HTTP client and framework for consuming RESTful web services — Guzzle documentation
http://guzzle3.readthedocs.io/index.html#

Newest ‘guzzle’ Questions – Stack Overflow
https://stackoverflow.com/questions/tagged/guzzle

guzzle/guzzle – Gitter
https://gitter.im/guzzle/guzzle

Laravelでの用法は以下ページが参考になる。

Consume External API from Laravel 5.2 using Guzzle Http Client | PHP Lab
http://www.phplab.info/categories/laravel/consume-external-api-from-laravel-5-using-guzzle-http-client

Laravel POST requests with Guzzle – Chilion
http://chilion.nl/laravel-post-requests-with-guzzle/
2015/8/19

Using GuzzleHttp with Laravel – Laravel 5 — The right way – Medium
https://medium.com/laravel-5-the-right-way/using-guzzlehttp-with-laravel-1dbea1f633da
2016/4/20

[Webサイト制作] REST APIデザインのベストプラクティス

– Use HTTP VERBS to determine action to be taken
– API Versioning
– Use plurals to describe resources
– Use query strings to build relations
– Partial responses
– Response Codes and Error Handling
– Limit the number of request in a given time period from the same IP Address
– Consider Banning requests based on IP Address
– Use json as the default
– Use OAuth latest version for authentication
– Cache GET results for less frequently changing data

10 REST API Design Best Practices That Will Make Developers Love
http://www.kode-blog.com/10-rest-api-design-best-practices-that-will-make-developers-love-your-api/

[Webサイト制作] 高速なWebサーバアプリケーションを構築するための6つの経験則

– 時期尚早な最適化を回避する
– 最小限の作業で問題を解決する
– 今すぐやらなくてもいい作業は延期する
– 使えるときはキャッシュを使う
– リレーショナルデータベースのN+1問題を理解し、回避する
– 可能ならアプリケーションに水平スケーラビリティをもたせる

高速なWebサーバアプリケーションを構築するための6つの経験則 | プログラミング | POSTD
http://postd.cc/6-rules-of-thumb-to-build-blazing-fast-web-server-applications/

[Laravel] A modern REST API in Laravel 5

有益な記事。APIサーバー設計のテクニックに加えて、大規模システムを綺麗に作るのに役立つデザインパターン(サービス・リポジトリなど)やディレクトリ配置、例外処理などに関する解説もあり。プロジェクトが肥大化して迷いが出たら読み返すといいかも。

A modern REST API in Laravel 5 Part 0: Introduction – Esben Petersen
http://esbenp.github.io/2016/04/11/modern-rest-api-laravel-part-0/

A modern REST API in Laravel 5 Part 1: Structure – Esben Petersen
http://esbenp.github.io/2016/04/11/modern-rest-api-laravel-part-1/

A modern REST API in Laravel 5 Part 2: Resource controls – Esben Petersen
http://esbenp.github.io/2016/04/15/modern-rest-api-laravel-part-2/

A modern REST API in Laravel 5 Part 3: Error handling – Esben Petersen
http://esbenp.github.io/2017/01/14/modern-rest-api-laravel-part-3/

A modern REST API in Laravel 5 Part 4: Authentication using Laravel Passport – Esben Petersen
http://esbenp.github.io/2017/03/19/modern-rest-api-laravel-part-4/

[Webサイト制作] Nightwatch.jsを使ってフロントエンドをテストする

ブラウザを自動運転することでフロントエンドのテストを自動で実行したい。そう思ってツールを探していたところ、Nightwatch.jsが良さげ。ちなみにこういうテストはE2E(エンドツーエンド)テストと呼ばれるらしい。

Nightwatch.js | Node.js powered End-to-End testing framework
http://nightwatchjs.org/

Getting Started | Nightwatch.js
http://nightwatchjs.org/gettingstarted

環境を作って試してみる。

Node.jsのインストール

Node.js
https://nodejs.org/ja/

今回のテストマシンはMac。Node.jsは既に入っていたので軽く動作確認。

Nightwatch.jsのインストール

JDK 8のインストール

Java SE Development Kit 8 – Downloads
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Java SE Development Kit 8u131をダウンロード
dk-8u131-macosx-x64.dmg (Mac OS X 226.57 MB)

インストーラを使ってインストール

Seleniumのインストール

Selenium – Web Browser Automation
http://www.seleniumhq.org/

Selenium Standalone Serverをダウンロード
selenium-server-standalone-3.4.0.jar (version 3.4.0)

実行する

ブラウザ毎にWebDriverのインストール

Selenium WebDriver
http://www.seleniumhq.org/projects/webdriver/

Nightwatch.jsは標準でFirefoxで実行される
Firefox以外のブラウザで実行するにはドライバが必要

設定ファイルの作成

とりあえずサンプルの設定ファイルをコピペ。

Getting Started | Nightwatch.js
http://nightwatchjs.org/gettingstarted#settings-file

テストコードを書く

テストを実行

参考サイト

javascript – switch to a frame with Nightwatch.js – Stack Overflow
https://stackoverflow.com/questions/27548030/switch-to-a-frame-with-nightwatch-js

Nightwatch.jsをE2Eテストフレームワークとして実プロジェクトに適用する時のtipsまとめ | MMMブログ
http://blog.mmmcorp.co.jp/blog/2015/09/24/use-nightwatch/

WebアプリのUIテストを手軽に自動化できるNightwatch.jsの使い方 – WPJ
https://www.webprofessional.jp/javascript-functional-testing-nightwatch-js/

姫路のホームページ製作屋WILDWEST-SERVICE
https://www.wildwest-service.com/nightwatch/

以下はフロントエンドテストに関する参考ページ

フロントエンドにテストを導入 – Qiita
http://qiita.com/howdy39/items/cdd5b252096f5a2fa438

フロントエンドのテストに真面目に向き合う – Qiita
http://qiita.com/okmttdhr/items/cc58e83c259aa0049538

[Laravel] 認証にJWTを使ったAPIサーバーのサンプル

APIサーバーを作る必用に迫られていたところへ良く出来たサンプルを見つけたので覚書リンク。APIサーバーの何たるかとLaravelでの実装例を同時に学ぶことができて有益。作者に感謝。

How to Build an API-Only JWT-Powered Laravel App — SitePoint
https://www.sitepoint.com/how-to-build-an-api-only-jwt-powered-laravel-app/

認証にはJWT (JSON Web Token)を使っている。

JSON Web Tokens – jwt.io
https://jwt.io/

このサンプルが利用するモジュールは以下3つ。

GitHub – dingo/api: A RESTful API package for the Laravel and Lumen frameworks.
https://github.com/dingo/api

GitHub – tymondesigns/jwt-auth: JSON Web Token Authentication for Laravel & Lumen
https://github.com/tymondesigns/jwt-auth

GitHub – barryvdh/laravel-cors: Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application
https://github.com/barryvdh/laravel-cors

途中段階のプロジェクトがGitHubにある。これをベースに記事を読みながらコードを追加すれば完成する。リポジトリはLaravel 5.4ベースだけど記事は少し古いバージョンのLaravelベースなので、コードを若干いじる必要あり。

GitHub – francescomalatesta/laravel-api-boilerplate-jwt: An API Boilerplate to create a ready-to-use REST API in seconds.
https://github.com/francescomalatesta/laravel-api-boilerplate-jwt

APIのテストにはPostmanが超便利。API開発には必須のツールだな。

Postman | Supercharge your API workflow
https://www.getpostman.com/

同じ作者によって、このAPIサーバーを使ったAngularJS製のフロントエンドのサンプルも公開されている。時間があるときに、こちらも勉強してみたい。

How to Consume Laravel API with AngularJS — SitePoint
https://www.sitepoint.com/how-to-consume-laravel-api-with-angularjs/

[Go言語] LIGが自社サービス開発にGo言語を採用したお話

覚書リンク。参考になる。

PHPとGoって何が違うの?LIGが自社サービス開発にGo言語を採用したお話 | Go Golang!
https://liginc.co.jp/284306

PHPからGoへ乗り換えるリスクとは?LIGが自社サービス開発にGo言語を採用したお話 | Go Golang!
https://liginc.co.jp/295527

【GO言語のパッケージ管理:決定版】「Glide」を使ってみよう | Go Golang!
https://liginc.co.jp/305623

「言語を移行するためのAPI」LIGが自社サービス開発にGo言語を採用したお話 | Go Golang!
https://liginc.co.jp/313982

【はじめてのGo言語】Go言語について詳しく知ろう〜Go言語で何ができるの?〜 | Go Golang!
https://liginc.co.jp/320855

【はじめてのGo言語】Go言語でアプリケーションを作ってみよう 〜こんにちは、世界編〜 | Go Golang!
https://liginc.co.jp/327259

【はじめてのGo言語】Go言語でアプリケーションを作ってみよう 〜Webサーバー編〜 | Go Golang!
https://liginc.co.jp/333868