エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

チャットボットを作るべきとは?(Tweetまとめ)【229日目】

この勉強会行ってきました

使われてた資料は下のページにあります!

感想

ビジネス観点とか多めでいい話でした。かなりおすすめの話。

チャットボットわりとあり

BtoBでCV率上げるのに使えるっぽい

『それチャットボットでやる必要ある?』が重要

ツイートまとめ

【Laravel】bladeでforeachの回数カウント3種類($loop使えない用)【228日目】

こんなとき使う

@foreach($titles as $title)

  @if($index == 4)
  @endif

@endforeach

こんなふうに、4番目のデータのときにだけなにかをしたい場合。

書き方いくつかあります。

$loop変数を使う(Laravel5.3以上)

@foreach ($titles as $title)

    @if ($loop->index == 3)
    @endif

@endforeach

0から読み込んだ回数が入ります。

$loop->iterationなら1から始まります。

配列のキーを用いる(Laravel5.2以下)

@foreach ($titles as $index => $title)

    @if ($index == 3)
    @endif

@endforeach

配列などは、キーを明示しなければ、0,1,2,3...というキーを用いるのを応用する形。

ただ、配列にすでにキーを設定している場合は以下の対応になると思います

PHPを直書きする

<?php $index=0; ?>
@foreach($titles as $title)

  @if($index == 4)
  @endif

  <?php $index++; ?>
@endforeach

これでむりやりindexという変数を生成して用いる。

極力前の2つを使った方がいいと思います。

ってことで、Laravel5.2で悲しみを背負ったういろうでした。

【HTML・JS】defer。書き順関係なく、HTMLの後にJSファイルを読み込む【227日目】

いつ使うの

HTMLファイルの中でscriptタグでJSファイルを読み込むときで、

・必ず読み込んでほしいとき
・HTMLを描画終わった後にJSファイルを読み込んでほしいとき

何書くの

<script src="https://xxxxxx.jp/yyyyy.js" defer>

scriptタグの最後にdeferを書く

何が起きてるの

通常:HTML読み込んでscriptタグがあったときは、JSファイル読み込みまでHTMLタグ読み込み止まる
async:HTMLとJSが並行して読み込む
defer:HTML読み込み完了→JSファイル読み込み

ブラウザシェア

だいたい使える

Can I use... Support tables for HTML5, CSS3, etc

try catchする時は、Exceptionをcatchしているか確認する【226日目】

こんなプログラム書きました

try {
    someFunction();
} catch (PDOException e) {
    rollback();
}

これは、PDOexceptionの時だけrollbackするコードです。

何が問題か

これは、PDO関連のエラーの時に、ロールバックの対応をする。
ということです。

つまり、PDO以外のエラーがあった時には何もしないです。

それでも良いコードであれば良いですが、ユーザーの入力が間違っていても、サーバでエラーが出ても、PDOExceptionにならなければrollbackしないことになります。

PDOException以外のエラーではrollbackしないです。

どうするべきだったか

try {
    someFunction();
} catch (Exception e) {
    rollback();
}

問題があったら、rollbackする。

エラーがあってもrollbackしないのであれば、DBのアクセス途中で問題があっても一部のデータが書き込みされてしまう。

データA、データB、データCの3つがそろって初めて意味があるデータのときに、
データBで問題が発生すると、中途半端なデータAが残ってしまう。

これではサイトにいろんな問題が残っていまいます。

これで考えることは

PDOExceptionだけでcatchしようと考えた時は、それ以外のエラーの時どうしたいんだっけ?っていうのを考えてみる。

そもそもユーザーにさせたい動きが間違っていないか考える

【日記】私個人の振り返り。『振り返り』を疎かにしていた【225日目】

最近こんなことがありました

仕事を任せられました。

それは、今週の仕事の振り返りをしようというものでした。
わかる方に言うと、スプリントレトロスペクティブです。

振り返りでは、
1.何があったか
2.何が良かったかor悪かったか 3.今後どうするか
をまとめる必要がありました。

そこで私は『今回成績が良かったのは、みんなが結果を出すことを意識出来たから』と結論付けて終わりました。

後から振り返ったら、何が良かったかわかりませんし、3.の今後どうするかが無いですね。

どうしたら良かったか

今回成績が良かったのは、『どんな行動を起こしたからか』。『なぜその行動を起こせたか』。

『何をしたか』『その行動が起こせた要因はなにか』を明らかにすべきでした。

なぜなら、『次に何をするか』が明らかではない。
また、『今後同じことするにはどうするか』という一般化が出来ていない。

どうして私が『その行動を起こせなかったか』

で、今回の私を振り返ってみましょう。

その行動を起こせなかった理由は、私が振り返りの『目的』と『成果物』を意識していなかったこと、タスクだけを意識していたことが問題だと思います。

今後どうするか

『振り返り』には、『今後どうするか』をまとめる。
各タスクの『成果物』を定義する

を取り組みます。

ぼやき

一週間か二週間区切りで、自分自身の活動に対しても振り返りをやってみるのを検討中。

今まではプログラムを書いていたから成果や成長がわかりやすかったし、打ち手を考えるのは楽だったけど、
今後マネジメント系に進むとしたら、成果見にくいし、自分がどの状況にあるのかが瞬間的にはわからないので、振り返りの時間を取ろうかと思っています。

ちなみに、スプリントレトロスペクティブの対象はスプリントなので、これからやる振り返りの対象はあくまで私個人に対するものです。

【MySQL】出力結果を見やすく!結果を縦に表示する【224日目】

こんなとき使う

カラム数が多いテーブルを取得するとき。

mysql> select * from users where id = 1;
+----+-----------+----------------+-----------+---------------+-------------+---------------+------------------+-----------------------------------------------------------------------------------+---------------------+---------------------+------------+
| id |  name |                        aaaa |                  bbbb |               cccc |                  dddd |                 eeee |                     ffff |                   created_at  |               
   updated_at | deleted_at |
+----+-----------+----------------+-----------+---------------+-------------+---------------+------------------+-----------------------------------------------------------------------------------+---------------------+---------------------+------------+
|  1 |   uiro |   aaaaaaaaaaaaa | bbbbbbbbbbb | cccccccccccccccc |     ddddddddddddddd |      eeeeeeeeeeeeee  |      ffffffffffffffff  | 2017-12-16 06:06:29 | 2017-12-25 04:31:04 | NULL       |
+----+-----------+----------------+-----------+---------------+-------------+---------------+------------------+-----------------------------------------------------------------------------------+---------------------+---------------------+------------+

見にくいいいいいいいいいいいいいい

SQL文書き換える

最後を ;にしていたのを \Gに書き換える

mysql> select * from themes where id = 1\G
*************************** 1. row ***************************
                id: 1
              name: uiro
              aaaa:aaaaaaaaaaaaa 
              bbbb: bbbbbbbbbbb 
              cccc: cccccccccccccccc 
              dddd: ddddddddddddddd   
              eeee: eeeeeeeeeeeeee  
              ffff:ffffffffffffffff  
        created_at: 2017-12-16 06:06:29
        updated_at: 2017-12-25 04:31:04
        deleted_at: NULL
1 row in set (0.00 sec)

めっちゃ見やすい。

カラム名が揃えられるので、おすすめです。

【PHP】traitを使って、関数を余分な場所に読み込ませない【223日目】

注意

traitの本質とは違います。オブジェクト指向とかも触れません。

ただ、trait使った時に、実際の動きとしてどんな違いが出るかについてのメモ書きになります。

2つのファイル

hello.php

<?php
public function sayHello() {
    echo 'Hello World!';
}

human.php

<?php
require_once 'hello.php'

class boy {
    public function main() {
        sayHello();
    }
}

class girl {
    public function main() {
        sayHello();
    }
}

sayHello();

これだと、human.phpの中は全てhello.phpのsayHello()が読み込めてしまう。

違うんだ。私はboyクラスにだけsayHello()をもたせたかったんだ。

traitを使ってみる

hello.php

trait HelloWorld {
    public function sayHello() {
        echo 'Hello World!';
    }
}

human.php

<?php
require_once 'hello.php'

class boy {
    use HelloWorld;
    public function main() {
        $this->sayHello();
    }
}

// sayHello(); 読み込めない

これでよし。

公式ドキュメント

PHP: トレイト - Manual

【思考】毎日質が高くないブログvs一週間で質が高いブログ【222日目】

言い方悪いけど

毎日ブログ書くけど、質は高くないブログ。

はい、私ですね。

で、一週間で質の高いブログ書いた方がいいのではないかという提案受けたので、それについて考えてみる。

毎日書く利点

1.習慣になる。

2.1日の思考整理になる

3.記事の数が増える

一週間の利点

1.一個の記事にかけれる時間が増える

2.雑な記事がなくなり、ブログを見て評価がされやすくなる

3.より難しい記事が書ける

どうしたいか

理想は両方の利点を手に入れたい。

で、一週間で書くときの利点は、
1.3.は土日とかに時間を取る。そもそも、毎日書いて、それを繋げて1つの室の高いブログを書くという手も打てる。

2.今まで書いていった記事から、質の高い記事だけ残したブログを新しく用意する

でそれらの利点は手に入るのかなと思ってます。

他にも、一週間毎の方がいい利点もあるかもしれないです。

次にやること

今回毎日書くことのデメリットは、質が低いものが乱立されることなのかな?と一旦認識してみました。

で、今一週間かければ質の高い記事がかけるかというと・・・私が今やってることがそんな質高くないので難しいのカナーって気がしてます。

ただ、他にも一週間に一度書く利点や、毎日書く利点もあるかもしれないので、ブログ書くことの意義と利点をしっかり明らかにして、この習慣を良いものにしていきたいです。