Laravelの元コード読んでみた
この該当コード、ここらへん読むと、aliasが書かれてる。
ヘルパ関数の引数とかの挙動は?
ここで処理してるよ。
私がLaravelコントリビュートしたのも、ここのコードの修正だよ。
ぼそっと
.oO(昨日、またヘルパ関数でちょっと違和感感じる処理見つけたので、もしかしたらまたプルリク出すかも)
この該当コード、ここらへん読むと、aliasが書かれてる。
ここで処理してるよ。
私がLaravelコントリビュートしたのも、ここのコードの修正だよ。
.oO(昨日、またヘルパ関数でちょっと違和感感じる処理見つけたので、もしかしたらまたプルリク出すかも)
XxxService
public function func($flag) { if($flag) { return $this->user_repository->xxx(); } return $this->user_repository->yyy(); }
こんなとき、xxxとyyyが読み込まれる場合をチェックしたい
public testFunc($flag, $function_name) $mock = Mockery::mock('Tests\Unit\App\Stubs\StubUserRepository')->makePartial(); // 該当関数が一度だけ呼ばれるのを期待する $mock->shouldReceive($function_name) ->once(); (new XxxService($mock))->func($flag); } public function FuncDataProvider() { return [ 'flagがtrueの場合' => [ 'flag' => true, 'function_name' => 'xxx', ], 'flagがfalseの場合' => [ 'flag' => false, 'function_name' => 'yyy', ], ]; }
shouldReceiveの関数名の部分をdataProviderで分岐させてチェックする。
Laravelの日本のConference第一回に、なんと登壇しますわーい!
https://conference2019.laravel.jpconference2019.laravel.jp
30分のトークします。内容は、やっぱりLaravelコントリビュートについて。
新卒2年目がLaravelコントリビュート出来た理由とその面白さ by 小畑 昌紀 | プロポーザル | Laravel JP Conference 2019 - fortee.jp
どうやってコントリビュート出来たの?
本当に初心者でも出来るの?
どうやってコード読むの?
みたいな話に加えて、
orderByの特殊な挙動だったり、そもそも私がなにバグ直したかの話も混ぜる予定。
熟練者に向けては、初心者の私がどうして先輩の背を見て、元コードを読む習慣をつけたかを話す予定。
30分トークだと7人の内の一人・・・
しかも、お金をいただくイベントで登壇・・・
やっば、めっちゃドキドキしてきた((((;゚Д゚))))ガクガクブルブル
ただ、友人たちがPHP Conferenceで登壇していたのを見て、悔しかったからこれでぷちリベンジ出来て嬉しいです(^o^)
ってことで、これからもアウトプットは継続していきます!
インプットは負けても、アウトプット負けてなければ、
これから外から勝手にインプットの機会がもらえるだろう。
そんな精神でがんばります(^o^)応援よろしくお願いいたします!
あ、当日会場にいる方は、ほんと、ほんとお気軽にお声がけください、私ぼっちなので(((
1.以下のときに"apple","grape"の値だけを返したい
["apple", "orange", "grape"] ["apple", "grape", "banana"]
2.array_intersect()を使う
$array_1 = ["apple", "orange", "grape"]; $array_2 = ["apple", "grape", "banana"];
こんなときに、"apple","grape"を取り出したい。
ユーザーの共通項を取り出したり、
条件を配列で用意しておいて、条件一致しているものを確認するなどに使えますね。
$array_1 = ["apple", "orange", "grape"]; $array_2 = ["apple", "grape", "banana"]; return array_intersect($array_1, $array_2);
これでよし。
元気に仕事出来ました!
テンション上がると自分には良いことを発見。
1.音楽聞いてテンションめっちゃ上がると良いコードが書けることが発覚。
2.なかなかキレイにコード書けたから満足
引っ越しが、オーナーの都合でおじゃんになりましたOTL
そんな予感はしていたから、さっさとこちらから切ってしまうのも視野に入れても良かったかも・・・
音楽聞いてテンションめっちゃ上がると良いコードが書けることが判明。わりとあのコードキレイっぽい。
テンションは、昔好きだった音楽とか聞きまくってテンション上げました(^o^)
在宅でコーディングは、私には合っていることが判明。
室温、作業が細切れにならない、酸素濃度。いろいろいいところだらけっぽい。
年越し気持ちよくやりたいね(^o^)
引っ越しが、、、2週間まるまる無駄になりました(T_T)
計画が完全に崩れて、これからどうしよう(T_T)
1.以下のときに"a"のキーだけを返したい
["a"=>"ringo", "b"=>null, "c"=>null, "d"=>false]
2.array_filter()を使う
["a"=>"ringo", "b"=>null, "c"=>null, "d"=>false];
こんなときに、"a"のキーのものを取り出したい。
nullとか、falseとか、想定外のものを削りたいとかよくありますよね。
$array = ["a"=>"ringo", "b"=>null, "c"=>null, "d"=>false]; return array_filter($array)
これでよし。値がPHPの型変換でfalseになるものは全部削られる。0とかも削られる。
逆に言うと、trueになるものだけ残る。
となると、こういうこともしたくなる。
削るものを指定したい。これも同じくarray_filterを使うことが出来る。
むしろ、それが本来の役割。第二引数に関数を指定するといい。
$array = ["a"=>"ringo", "b"=>null, "c"=>null, "d"=>false]; // ["a"=>"ringo", "d"=>false] return array_filter($array, function ($value, $key) { return !is_null($value); });
これで、nullはfalseになるので除外される。結果、trueになる"a"と"d"のキーのものだけが残った配列が返ってくる。
public function __construct(User $user) { $this->user = $user; } public function updateUser() { $this->user->timestamps = false; // update_atを更新させない $this->user->where('id', '=', $user_id) ->update([ 'is_active' => 1, ]); }
こんなふうに、Repositoryパターンとかで、共通のインスタンスを使うときに、
値を書き換えてしまった。
このままだと、同じインスタンスを使うために、別な関数でupdate文を書くと、
update_atが更新されなくなってしまう。
$timestamps = $this->user->timestamps; $this->user->timestamps = false; $this->user->where('id', '=', $user_id) ->update([ 'is_active' => 1, ]); $this->user->timestamps = $timestamps;
こうやって、元の値を一旦保存して、
update文を書き終わったら、またもとに戻そう。これで大丈夫
他にも良い書き方がありましたら、ぜひ教えてください!
一旦これで進めようと思いますー
ってことでお疲れ様でした。
ギルド運営にできて、会社の組織運営にできないことを考えてみた。
それは、大量雇用、そして素早い解雇。
たくさん集めて、良くないものは破棄、みたいな話。
単純に、質の良いものが残るから良いよねってお話。
もちろん、これ以外にもギルド運営が楽な要因はあると思いますが、一旦まずこれがあるなと
じゃあ、これと同じことを会社等の組織でやってみては?
・・・まあ、難しいですよね。
何が難しいって、雇用という形態を取ると、まあすぐにやめさせるとかは契約次第では難しい。
さらに、離職率という数値が、会社の信用に響いてきて、本当にいい人も近寄らなくなるかもしれない。
契約、外から見たときの印象、この2つがデメリットとして上げられそうです。他にもあるかも。
では、この手法を取り入れるためにどうすればいいか。
契約、これは色んな方法で回避出来るかもしれないですね。試用期間とか。
外から見たときの印象・・・ねえ、なんで今の社会、離職率が低い会社がいい会社とされてるの?
やっぱりこの常識が悪いんだ!これは常識を壊すしk(知ってる人は知ってる私の発作
・・・じゃなくて。離職率一つで下がるような会社のイメージなのを何とかするほうがいいのかも。
あると思います・・・w
そもそも、雇うために人事の人件費とか、かけてるお金と成果が見合わないとかありますね。
そういや、ギルドとかは、ボタンポチッで所属ができて、契約もボタンポチッでできますね。
そういう風土とか作れるような業種や契約形態とかないのかな。
みたいな、ことも考えてみたいなーとか思いました。