「PHPUnit」を含む日記 RSS

はてなキーワード: PHPUnitとは

2024-01-31

本日趣味プログラミング

第2回 Larabelチュートリアルを参考にログインするだけのWebアプリケーション(?)を作る

第1回で終わらなかったことを褒めて欲しい。

プロジェクト作成

composer create-project laravel/laravel example-app_20240131

index.phpアクセスできることを確認

続いて、Composerを使用してLaravel Breezeインストール

composer require laravel/breeze --dev

breeze:install Artisanコマンドを実行

php artisan breeze:install

いろいろ聞かれる。わからん。とりあえずBlade/Yes/PHPUnitを選択

すると「・・・・installed successfully.」と表示されたので何かが成功したっぽい。

続いて

php artisan migrate

するとエラー

Illuminate\Database\QueryException
SQLSTATE[HY000] [2002] Connection refused 

そもそもデータベースの準備を何もしてなかったので、エラーが出るのは当たり前だった。

サンプル用にデータベース作成し、それに合わせて.envファイル修正する。

再度、

php artisan migrate

すると「DONE」と表示。成功したっぽい

チュートリアルに従い、「ウェブブラウザアプリケーションの/loginか/register URLアクセス」。

すると、Laravelが出してるっぽいエラー

Illuminate \ Foundation \ ViteManifestNotFoundException
PHP 8.1.27
10.43.0
Vite manifest not found at: /******/example-app_20240131/public/build/manifest.json
Run npm run dev in your terminal and refresh the page.

npmとやらが「not found」だったので手順を飛ばしたのがやはりダメだった。

さくらインターネットでnpmを使うにはnode.jsインストールしてnpmをコンパイルする必要がある?

はい、もう無理。飽きたので今日はここまで。

次回があれば「さくらインターネットスタンダードプラン環境にnpmをインストールする」である

早くHello Worldとか書きたい。

2012-04-25

無職が一ヶ月かけてWebゲームみたいな奴を作った

Webゲームっていうか、ブラウザ上で動くような奴。PHP(5.3)で突貫工事したので、ペラペラな感じだけど、なんとか公開できて、たまに遊びに来てくれる人がいて(一時はVIPに募集スレも立ったらしい)、何戦かして帰っていくので、とりあえずサーバー代を払った価値くらいはあったかなーという感じ。

で、どういうゲームかっていえば、人狼みたいに「陣営に別れて、決められた目標クリアするゲーム」です。

レジスタンス』っていう卓上ゲームというのかな?それを参考にして作りました

レジスタンス・チャット

ちょうど開発してから、一ヶ月程度になったので、宣伝をかねて、現状みたいなのをメモ

俺のスペック

一応、前提としては、Pythonだったら、何かしらのシェルプログラムを書いてcronしてるけど、それ以上のことはしていない程度の、技術ワナビー

ほぼ業務経験なし。継続してスクリプトを開発したのは、今回が始めてという感じ。

作ろうと思ったきっか

単純にPHPで何か作りたいなーと思ったから。一度はPHPを書くべきだなあと思ったりした。それで、何かいい題材ないかなーと思って探してた。

「昔、人狼BBS遊んだとあるなー、でも同じ人狼ゲームを作っても芸が無いしなー」と考えていたところ、知人と遊んだレジスタンス』ってゲームにピンと来て、「こういうゲームWeb上で遊べたらいいかな。調べたところ、Web上でも人狼っぽいって言われるし、上手くそういう層にアピールできそう」ということで作り始めたのでした。

反省

綺麗なコード意識する

はいえ、最初は勢いで書き散らしたので、本当にClassとかまったくなかった。それを徐々に整え直して、なんとかファイル分割できるようになった。それでも、全く足りない。具体的には下のような部分が汚い。

MVCをちゃんと意識する

本当はCakePHPとかそういったフレームワークを使えば良かったんだろうけど、「重いんだったら仕方ないしなー」というわけで、フレームワーク無しで使ってみたんだけど、結果として表示部分にやたらと処理が入って醜いったらありゃしない。

表示部分と、実際のシステム部分はわけられるべきだし、フレームワークを使わないまでも、そういう風な機能分割は必要

そうなるとある程度までは綺麗なコードになるような気がする。

で、そういうコードを書いたせいで、下のようなことが起きる。

テストは丁寧に書いておく

PHPUnit使ってユニットテストは書いているんだけど、まったく足りない。

全部グリーンにはなるんだけど、実際に動かしてみるとバンバンエラーが出る。

幾つかの関数テストを先に書いたりしたんだけど、表示部分とかは「ここテスト書きにくいから誤魔化しちゃえー」といって書いたりした。

で、何が起きるかっつーと、リファクタリングするときガンガン機能が落ちる。そして死ぬ

さすがに一つのClassが1000行くらいになってきたので「うっわー、これは駄目だわ。分割するべき」って、ゴミみたいなコードに手を入れ始めるんだけど、全く歯が立たない。

とりあえず、既存テストグリーンになるけど、どこかで処理がつまづいているという状態でこれは駄目。

「うわ、この部分、テスト書きにくい!」って思った時点で、何かを嗅ぎつけてちゃんとテストに落としておけばよかった、と反省することしきり。

結果として手作業で複数ブラウザ起動して……みたいなことになっちゃう。バグの温存。

楽ができるならば、楽をする

CSSとか勉強のために、自分で1から書いているけれども、これは本当にだるい

知人から、綺麗にコードが書けるから、と薦めてもらったSaSSを使っているけれども、なかなか綺麗にできない。

一応、Twitter BootStrapは知っていたけれども、それに頼るよりは一から書こうと決心して書いたためか、ようわからないし、デザインとしてもこなれていないために気持ち悪いことになっている。

上記のフレームワークについてもそうだけど、流行っているものには、それなりの理由があって、それをわざわざ避けても、結果として、それ以上のものは(素人に毛が生えているくらいでしかない以上)ならないような気がする。

ならばとっととそういうものを使って、さっさと済ませてしまえばよかったなーと思ったりした。

ゲームという性質である以上、どんどん情報量が増えていくために、そういうのを表示しまくっていると、本当に画面がぐちゃぐちゃになる。

ユーザーインターフェイスまじで苦労する。

セキュリティー……

セキュリティーには本当手をつけられていない。(徳丸本読めという話になると思う)

ドキュメント……

(略)

一ヶ月間続けてみてよかったこと

で、本当にボロボロになりながら作ってみて良かったことをメモしておく。

単純にプログラミングって楽しいよね

自分は割と現実逃避の為に何かに没頭することがあって、その逃げ先としてプログラミングっていいなあと思ったりした。

あと、自分が書いたコードがヒョコヒョコ頑張っている姿をみていると、すごくかわいくなる。形にもなるし、「こういうものを作ったよ」とも言える。それは単純に楽しい経験

自分が作ったものが単純に楽しい

元々、自分が好きそうなものから題材をピックアップしただけあって、自分が作っているものが、自分が一番愛用しているというのは幸せなことだなと思う。

自分が楽しむためのものから自分が一番のユーザーであるし、自分が快適に使いつづけるために改良を続けてる。

から「こうしたらいいんじゃないの?」というのも勉強になるし、自分がちゃんと&楽に機能拡張できるように、ちゃんと勉強しようとも思う。そういうのは本当にいい循環。

使ってくれる人がいる

大抵は、自分が使うから自分だけのものだったので、あまり他の人が使ってくれることを期待していなかったんだけど、今回のは、ときどき遊びに来てくれる人が居る。

例えば、VIPスレが立ってたり、あるいはニコニコ生放送プレイ実況を配信してくれたり。

割と「くっだらねー」と思うけど、一人で細々と開発していると、そういう些細なことが嬉しかったりする。

なので、ついついみてしまったり、場合によっては、プレイしているところをいつまでも一緒に徹夜して観戦していたりする。人のプレイしている姿が楽しいというのも、自分が作って良かったなあと思う。

逆に言えば、使ってくれる人がいるからこそ、一ヶ月間開発が続いているようなもので、「ああ、自分プログラムで楽しんでくれる人が居るんだな」という手応えみたいなものが、モチベーションになっている。

遊んでくれる人が見えるというのは、自分にとっては、モチベーション維持に大切になってる。

今後として

だいたい三日坊主で終わっている自分としては、開発が長く続いているほうだと思う。

目指すところは、もっと綺麗なソースコードにして、Githubで公開すること(いや、もうアカウントは既に持っているんだけど、公開するのは凄く恥ずかしい)。

まだまだ勉強することが多いなー、というわけではてブPHPの記事をあさったりしているところです。

2011-01-22

http://anond.hatelabo.jp/20110122000048

このエントリ気になるなあ。

ある要求を実現するにはどのような技術を用いるか、オプソがあるならどれを使うか、どの範囲を我々がコードするか、事前に経験豊富な(はずの)SEが決めておくべきだったんじゃなかろうか、と思ってみた。

そうじゃないと、工数計算できないはずなんだよね。

はい現実は、設計工程の終盤にならないと、顧客の要求って完全には出てこないんだよね。少し製造を始めてみないと、オプソで済ますべきか否かが見えてこなかったり。

とりあえず俺はZend Frameworkディスパッチ部分はゴミ箱に捨てたくて捨てたくてたまらない。無理して ZendFw を使うんじゃなくて、PATH_INFO を自力で解析して自力でディスパッチする方がずっと効率がいい。その方が、Zend Framework の思想を知らない顧客の要求も呑みやすいし顧客URLの形式についてもいろいろ面白い事を言ってくるものだよね)、PHPUnitとの調整もしやすいし

 
ログイン ユーザー登録
ようこそ ゲスト さん