no_name-no-***

ぷろぐらみんぐ的なことと趣味的な日常を少々

やはり続かない

久々にブログ

気づいたらはてなhttpsじゃなかった

今日はふとネット記事で見かけたアプリの紹介

まさかまさかこんな〜!!!!

って思うくらいこれは流行ると思う

むしろ流行って欲しい!

これです

gigazine.net

できれば業者は入って欲しくないけど

何かというと

Trickleというアプリ

ものは試しに入れてみた

ひとまず日々草を生やすことを目指そうと思ったりする

たったそれだけのブログです

以上!!!

day8

 土日挟むと完全にあかん

前の自分なら完全に放置を再開していただろう。

Bladeのdirectiveを拡張したけど使われないっぽい

いい勉強になったからよし。

@以下の引数をごにょっているんだけど本家のやり方って結構めんどいやり方してた。

最近よくLaravelのコアな箇所を読むんだけど色々と参考になる。

PHPとしても一プログラミング言語としても  

実際引数は文字列として認識されるけどもBlade側では使用できる変数が文字列になっているだけだからそのまま文字列を返却しつつ期待通りになるように書いてあげるだけ。

あとはなんだ。微妙なハマりポイントがLaravelのCollection操作で使うeachだ。

こやつコールバックの引数が複数になると直感的な入り方してくれなくてくそやんって思ったのは内緒。俺がくそなだけだと思うようにした。

ちなみに@以下の引数を実処理側で展開したい場合は、オススメしないけどevalがいい。

オススメしないのは、任意の悪意あるコードも強制的にPHPとして動作せることが可能なため

Generatorをごにょる

PHPには、Generatorがデフォで存在してて今回は、こやつを使って処理を書いた。

yield自体は、jsで触ったことあるしまぁー色々とみかける単語でもあるしイメージも持っているからどんなんかは、理解できた。

がGeneratorを使って対象レコードが存在したら処理続行 対象レコードが存在したら処理終了

って感じの処理だったわけです。

単純に以下のように使えるわけでございます。

<?php
declare(strict_types=1);

class Sample

    public function example(int $userId): bool
    {
        $generator = $this->generatorRecords($userId);
        if (is_null($generator->current())) {
            // 処理
        } else {
            // 処理
            return false;
        }
        return true;
    }

   private function generatorRecords(int $userId): Generator
   {
        // 取得処理
        while(!is_null($users)) {
            yield $users;
        }
   }

的な

実際にはこれとは違う形で書きましたがこれにプラスして再帰呼び出しも加えひとまず完了としました。

なんかこうもっっっっっと良さげな書き方があるとおもうんだ。

phpでタイプヒンティングを使い、型を意識して書くようになってからプログラミングが楽しくなってきた。

typescriptとHanamiで書いているのも進捗が悪いけども ※Lumenと悩んできたけども。

Reactともう少し戯れてjsの型にもなれ関数型を意識した書き方がそれとなくできるようになりたいその際はRustをもう一度勉強する。

Rustかっこいいじゃん名前。

いつになったらroutes/web.phpを分割して管理するようになるのだろう。

たぶん分割して管理した方が保守運用にも向いている気がする。

7day

昨日寝落ちしてかけてなかったいかんいかん

昨日Qiitaでちょいと気になる記事を

qiita.com

タイトル的にも中身的にも気になり覗くとなんとまぁーRust製のGPUを使用したターミナルエミュレータと!!

さっそくinstallしました。

感想

うむまだ触って30分もたたないでこれ書いているのでもうちょい触ってからにする

動画で英語になれる

日々英語しゃべれるようになりたいなーとかおもっているわけでただネイティブの人の日曜会話はクッソはやいので説明系の動画を長しっぱにして耳でまず慣れることからリハビリします。

その次はシャドーウィングをしようと思う。1日10~15分から始めようと思う。

6day

明日は台風だから休みでいいと思う

SQLアンチパターン

タグ検索を実装する上でエンジニアならToxi法を使うと思います(自分は恥ずかしながら知りませんでした。)

And検索と書いてあっても・・・っていうね。

たしかWordPressなどもこれを採用しているみたいですが。

今回自分が再度実装することになったのは、And検索。

しかし通常とはことなるやーつです。

この辺見ていただけたら理解していただけるかと・・・

senews.jp

本題

僕が実装したのは、タグ名での完全一致での検索です。もちろん条件は他にももりもりと。

指定されたタグ名分Inner Join する。

ただそれだけなんすが実際これは、SQLアンチパターンの例外として記載されている回避法です。

いうてタグ名を曖昧検索していないのでインデックスがきいてくれるのでスロークエリーになるとは考えづらいですが。

また負荷試験を行うのでその際にまたチューニングを行うことにはなると思いますが。

これにたどり着くまで結構な時間を要しました。時間かけたことによってできない人レッテルを貼られてしまった・・・

ただこの実装にあたり多くのことが学べましたね。それは今も生かされているのでできねーがなんだって思いました。できるようになればいいだけなんです。

身体がばきばきになってきた

本社勤の時は、最後のは自分の座席すらなくなっておりましたな。

そのころから身体はバキバキに。

この仕事は身体がほんと資本なんで椅子やデスクにお金かけている会社に行きたい。

あとモニターね。

結果家が一番最強なわけだ。

5day

また検索機能と戦う

少し前にそれ必要なの?という機能つきの検索機能を作成し途中で断念したことがありました。

それの続編です。

一応の守秘義務で詳しくはかけないけども単純に検索ってOR検索じゃねーの?って話ね。

めんどいけども

WindowsUbuntu入れたのでそれにdocker-compose入れた。

理由は、これまためんどいけどすぐ破棄が可能なWordPressの環境を速攻作りたかったから

いうてもMacなのか仮想環境なのかDockerなのか何がはやくてホストOSを汚さないで充電長く持つかをはっきりさせたいところである。

あすは台風なのか

明後日からがやばいらしいけども普通に会社が明日とかある日本ってクソだと思う。

電車で揺られながら、始業時間が固定でMTGを腐る程やってけど決まらずってどんな会社でもおきるあるあるだろうけどなんだかなーって思う。

頭の悪い俺にはよーわからんす。

満員電車に乗らないで済むように努力しましょ。自分

4day

基本土日には、何も考えないようにしている

のでなにも手につけていない。

が書籍でUML図をぱらぱらみててあーしっかりと本質的部分は理解しておきたいなって思った。

またはてなでRustについて書いてた緑の会社のアドテクにいる女性の記事の2/3 くらいついていけんかった。体感的には、わかるが本質的にはわかっていない。記事を書いた、知識を持った方ですら国外のエンジニアの人ひいては、日本が後進国と言ってた現発展途上国の人たちのスキルレベルがすごいと書いてた。前々からそれは言われてたことだが、自分もsoftware engineerってカテゴリにいるならライバルになるわけだ(おれのが圧倒的に頑張らないといけない立場だけど)、悔しいねー

まずやることを明確化し今の会社にいたら腐る。それに人生後悔して終わる。

どうせ年金いくらもらえるかも何もかも将来がわからん世界で 10年後がどうなっているかなんてわからん。

だれが10年前に今のようにiPhone等々携帯電話の進化やITの日常化を予想したんだろうか。

これからの10年がどうかわっていくかなんてわからん。なら明日死んでも1ヶ月後に死んでも後悔ないように生きようじゃないか。そのためには、スキルがないとね。

それと思い立ったらなんでもできる金を作らないとね。

英語とコンピュータサイエンスが今のおれには、必須だ。

日々ポエムな内容書いてあれだが振り返って自分が恥ずかしくないように周りにでかいこといってやらざる終えない状況にもっていこうと思う。

3day

よし書く

最近のお気にいりのメソッドがlist()です

PHP: list - Manual

単純に配列を分割するのがだるいので以下のような使い方をしてます。

 <?php
declare(strict_types=1);

namespace App¥Hoge;

class Fuga
{

    /**
    * 一覧
    * @return array
    */
    public function get(): array
    {
        list($attributes, $items) = $this->generateParams();
        return [$attributes, $items];
    }
    
    /**
    * 処理
    * @return array
    */
    private function generateParams(): array
    {
        // なにかしらの処理
        return [$attirbutes, $items];
    }

的な感じに使うとなんかかっけーって思って最近いきって使ってみましたね。

ちなみにPHPのコーディングルール

タイプヒンティングを使用することが絶対のルールになっております。今の職場。

今の職場の影響もあり

リーダブルに書くこと

型を気にすること

より簡潔に書くことが重要視するように

なのでやたら長いメソッドなんかみた日に気になって気になって書き直したくなる。

基本的に自分が手が止まる場合

仕様が不明確な場合と記述する場所(職場のルールに載せるべきと思う)ことでんーどうしようってなることが多い。

あとはPHPの言語仕様をやはりまだまだ理解しきれてないこと

アルゴリズムの理解の薄さ

列挙したあたりがどうも作業を止める要因

密かにJS

最近は、書く機会がないけど自宅ではReact + TypeScript でたまわむれている。

その時APIサーバーとして使おうかなと思ったのがHanami 設計思想が今の職場に似ているのもあり、構成ファイル数がまぁあああああ少なくどシンプルなわけです。かつDDDというね。

個人的にレイヤーアーキテクチャは大賛成というかしっくりくるのでMVCは、超小規模アプリ以外では、避けたいと思うようになった。まぁーもう無理だね。

CS(コンピューターサイエンス)をしっかり学びたいと思った要因だ。*国外ではCSと呼ぶらしいから使ってみた。