no_name-no-***

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

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と呼ぶらしいから使ってみた。

2day

あまりネタを考えてなかった

ひとまずLaravelでのお話

実務でチームでのLaravel開発

いうての初体験だった。 鬼のようなことをいう上司(上司じゃないブラザーだと言われたが)がいて

とんでもない人だなと思ったりまた怒られる・・・って憂鬱な日々だったけどそれがどれだけエンジニアとして幸せな期間だったかを今になってしみじみ感じている。

今思いつくミス

  • 初歩的だけども以下のようなmigration fileがあった場合
<?php
declare(strict_types=1);

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

/**
 * CreateHoge class
 */
class CreateHoge extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('hoges', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->timestamps();
            $table->softDeletes();
        });
    }

ごくごく普通ですね。 このbigIncrementsint(10) にしたいと言われ僕は普通に以下のように書いたmigration fileを作成してしまった。

$table->integer('id')->unsigned()->change();

んな業務的になにも考えてない結果普通に考えたらやらんだろってことをした

その結果auto incrementが付与されているカラムに対して変更を上記のようにするとauto incrementは引き継がれないってことを証明できてしまった。

Laravelでphpunitを書いていますが人によって書き方がまちまちになり、検証する対象もボーダーがC0と決められていますが人間は、楽な道を選びがちなわけで結果C0すら怪しいラインのものも。。。

phpunitに関しては、つまづいているわけではないがちょっとして小話

下記のようなコレクションがあったとします

$collection = collect();
$this->assertTrue($collection->isEmpty);

みたいにコレクションがEmptyかどうかを検証するassertionを書いたとしましょう。

この書き方で僕はなんら問題ないと思っています。

ただし以下の書き方もでき、また僕は、以下のように書き直すように指摘をもらいました。

$this->assertEmpty($collection);

カッコ内のものが空か?とこの一文で読むことができますので可読性という点では間違えなくこちらでいいとおもいます。ただ僕が最初の書き方でも問題ない、同じだと思うのは、単純に後に述べたassertEmpty は、結果isEmptyを呼んでいるからです。

ネタがあまり書けなかった

続けることに意味があるからまずは続けることに念頭につらつら書いていこうと思う。

現場復帰して一番の収穫

エンジニアとしての基本的な思考を叩き込んでいただいた。 オブジェクト指向アルゴリズム、DB関連などなど

そしてリーダブルコード

元々よんでいたがほんわかな中途半端なイメージのみしかなかった。それが具現化して目の前に存在したこと

今となっては、1メソッドが15行超え始めたらまったく読む気にならないし読みたくないと思うようになった。

大切なのは、プログラミング言語は、言語だということ

誰が、何を、どうするのか

何を、どうやって、どうするのか

処理を日本語として読めないならそれはもうただの迷文でしかないと思う

日に日に迷文が増えつつあるが自分だけは、ぼろくそあーだこーだ言われ悔しかったり、つらかったり、逃げ出したかった日々を逃げずにかつ上司(上司ではなくブラザーだと言ってた)と向き合った(向き合えたと思いたい)期間学んだことを忘れたくないから常にリーダブルで明文(名文)を意識してコーディングしていこうと思う。

あっroutes/web.php の行数が1000超えそうで吐きそうだ

ちなみに難しいことを難しく言ったりする人が苦手だ(専門用語ばっか使う人ね)

久々にブログ・質問形式で現状把握

今何をしているか?

現場復帰してとある会社に出向中

言語は?

PHP

FWは?

laravel

ブランクは?

すごくあった もう二度と教育を専売にはしたくないと思った。

感覚は取り戻したか?

まだまだ。けど以前外に出てた時よりもいい状態にもっていけそう。

久々のブログ投稿

やはり英語を学びたいのと

35,6くらいまでは、フリーランスでもいいかなと思った できればたくさんの経験と知見を広げたい

今後

まぁーなんとなくここまで生きてきてしまったから

もう30だし将来を考えた動きをしていかないとってのを毎日考えていがそういえば人類初体験だから先がどうなるかなんてわからねって 思ったから

今可能な限りスキル伸ばすことにした

なので今日からできる限り

今触っているLaravelについてわかったこと

こんちくしょーっておもったことなどを解決策とともに書いていこう

あとやはりオブジェクト指向が絶対の正義ではないって最近色々と記事だったりで書かれているけど

しっくりこないなー回りくどいなーややこだなーって思ってたから

あー僕だけじゃないんだって思った

けどオブジェクト指向がわるいってことでもないから

仕事として成立する知識とスキルはつけたいと思う

DDDやらレイヤー、atomic designやらGoFやら色々あるけど

コンピュータサイエンスをまなびたいって思った。

さて明日からまた頑張ってブログを書くことにする