bz0のにっき

quick and dirty prototype

GoFパターン写経

個人開発の作業開始時にエンジンかけるため・毎日コード書く習慣を促進させるためにGoFパターンの写経しています。
こういうやり方もあるのね、と自分の引き出しを増やす意味でやっています。

量があって、まだ全部やれてないので順次追加していきます。


GoF Builderパターンのサンプル

GoF Commandパターン

GoF Bridgeパターン

GoF Compositeパターン

GoF Decoratorパターン

GoF Flyweightパターン

GoF Interpreterパターン

GoF Mediatorパターン

GoF Stateパターン

GoF Strategyパターン

GoF Facadeパターン

タスクコミッターというサービスを作りました

もしよかったら使ってみて下さいー。

curl_multiを使った並列リクエストライブラリを作った

参考

下記記事を参考につくりました。
curl_multiでHTTP並行リクエストを行うサンプル - Qiita

ライブラリを使うメリット

下記2点です。

■コードすっきり
・libcurl7.20以上での実行が前提(curl_multi_execを実行するときにdo-whileを除外)
・クラス化してメソッドを処理ごとに区分け

■実行しやすい
・簡易的に使う場合は、リクエストしたいURLをライブラリに渡すだけ
・リクエストごとにcurlのオプションを指定可能です

ライブラリ

github.com
libディレクトリ内のrapidFire.phpを読み込んで利用して下さい。

2018年1月の振り返り

2018年1月にやったこと

リポジトリ3つ作った。
ほぼVueとTypescriptの扱いに慣れようと四苦八苦してた感じです。

typescriptで作った入力バリデーション

observerモデルを使って作ったので、observerモデルの理解も深まった。(と思う)
github.com

vue+typescriptで作ったはてなホッテントリクローン

vueとtypescriptで何か作ろうと思ってやったやつ。動かすだけで精一杯だった。
github.com

vue+Firevaseで作った食費管理ログ

firebaseを使ってみたくて作ったやつ。認証もDBもfirebaseに任せられるので、クライアントの実装だけでアプリを作れる。
でもリアルタイムデータベースの扱いは、実際運用まで持っていこうと思うとまだまだよくわかってない事が多いと思う。。。
github.com

Gist

自分の開発スタイルとして、gistで簡単に実装して形になってきたらリポジトリで開発していくようにしてます。
その方が全体を見渡しながら開発を進めやすい / アウトプットを短期間で出しやすくなるので、頓挫せず続きやすいからです。

作ってたコード片としては、下記です。

2018年2月にやること

PHPフレームワークを自作するのがひとつと、chrome拡張を1つリリースしたいと思ってます。
あとは引き続きVue+Typescriptでクライアントアプリを作るのは続けていきます。

  • phpフレームワークを作る
    • ルータ
    • ORM
    • テンプレートエンジン
  • chrome拡張を作る
    • twitterいいねシークレットツールを作る
  • Vue+Typescriptでクライアントアプリ作る

typescriptでフォームの入力バリデーションを書いてみた

typescriptで入力バリデーションを書いてみました。

github.com

学んだこと

・observerモデルでの実装
・typescriptで、document.querySelectorAllで取得したHTML要素を使うときの型定義

HTML要素(inputタグ)のvalue要素を取得する

(input as HTMLInputElement).value

HTML要素(inputタグ)のクラス名を取得する

(nextElement as HTMLInputElement).className

よくわかってないこと

・typescriptのライブラリ化
 最終的にブラウザ・nodeで利用できるようにするには?という点がよくわかってないので調べる。