ごみばこ

プログラムに関する備忘録などを書いています。

うつ病と診断されてしまった

なるはずないだろーwwwと思ってた時期が自分にもあった。

去年の11、12月あたりからとてつもなく会社に行きたくない日がたまにあったけど、そこまで気にはしてなかった。 ここ最近のタスクが結構大変で、帰ったら日付が変わってるか、変わる手前になっていて、寝て起きてまた仕事みたいな状況。

元々社内のプロジェクトを担当してて、今年に入ってから新しく受託案件をすることになった。 初めてのFWを触って、フロントのコーディングも初めてゴリゴリ書くことになった。

初めは問題なく進んでたけど、徐々に遅れが出始めて、とうとう休日出勤をすることに。 自分が原因で遅れてしまっていると思い込んでしまい、それを毎日繰り返してるうちにメンタルがやられてしまった。 自分の中で納得の行くラインがあって、それを満たせないと自分を激しく責めてしまう癖があるというのを友人に言われた。

上司にもあんまり責めなくていいし、ミスしたなら謝ればいいと言われた。

ひとまず1ヶ月休養期間を貰ったからのんびりする。
アニメ観たり、本読んだり、ゲームをする。
幸いプログラミングしたい欲もあるから、仕事を意識しない程度にコーディングもしようと思う。

雇ってくれるところ探してます

真面目に精神衛生上よろしくなくなってきてるので。

何をしてるか

経歴としてはSIer1年、現職のweb系。

  • 社内サービス開発したり、受託案件やったりしてる。
    • コーダー。PHPとAngularを触ってる。やってきた内容はサーバーサイドの方が比率高め。

転職したい理由

  • 給与を上げたい
    • 年収が280万より下
  • ノイズが多い
    • 大体何かしらの悪口が聞こえてきてアレ

無駄に神経質なのかもしれないが、頻繁に悪口が聞こえてくるような場所で作業をするというのが苦痛。

やりたいこと・希望など

可能であればサーバーサイドで働きたい。

  • 給与が今より多い
    • 年300万は欲しい。
  • PHPでの開発
    • 型を意識して書けるといいなという願望
    • 趣味でLaravelを触ってるので、業務でも使ってみたい

Twitterでリプライしていただけたら反応します。

こんな感じですが興味を持たれた方がいらっしゃったらご連絡お待ちしてます。

2017年振り返り

年明けまで1時間を切ったので、ざっくり振り返り

続きを読む

条件付きでリレーション先のModelオブジェクトを取得する

ORMでリレーション先のデータも取りたいことはよくあります。 Phalconの場合、アローでモデル名を書くことでリレーション先のModelオブジェクトが取得できます。以下ではRobotsクラスとリレーションが組まれているRobotPartsクラスの取得方法です。

$robot = Robots::findFirst();

$robotParts = $robot->RobotParts;

これで取得出来るのですが、PhalconのModelクラスには上記の処理を行うメソッドがgetRelatedメソッドとして用意されています。

$robot = Robots::findFirst();

$robotParts = $robot->getRelated('RobotParts');

結果としては同じですが、以下の利点があります。

  • 実装されているメソッドの為、処理が追いやすくなる
  • プロパティ形式の取得と異なり、第2引数に取得条件を追記出来る

例えば、RobotPartsを取得したいと明確に決まっているのであれば、 RobotsクラスにgetRobotParts($parameters)とメソッドを追加することで、 他人がコードを読む時に処理が追いやすくなります。 過去のドキュメントにもMagic Getters vs. Explicit methodsに記載されています。

また、論理削除を適用しているテーブルに対して、削除されていないデータのみを取得したいとなった場合、プロパティ形式をそのまま使用すると削除済みとして扱われているデータも取得してしまいます。 しかし、getRelatedメソッドを使用することで条件に一致するデータに絞って取得が行えます。

前者の形式も便利ではあるので、状況に応じて使い分けると良いですかね? 個人的には処理が追いやすくなるので後者が好きです。

参考URL

記事に誤り等があればコメントください。

もくもく会にいってきた

エンたまもくもく会に参加してきました。

もくもく会でやったこと

xamarinとローカルDB(SQLite)を使って、入力した数値をリスト表示させるまでを行いました。

xamarinのサンプルが充実していて、Todoのサンプルが用意されていたので、それを元に写経してました。

データのバインドがかなり楽に書けるのと、VB.NET触ってたのでイベントの紐付けとかが似ていて懐かしさを感じた…。

感想

こういうイベントに初めて参加したけど、すごく楽しめた。

コミュ障なりに話せたので進歩(?)

xamarinのわからないところが多少明確になったのでいい時間を過ごせました!

クラス内で自クラスインスタンス生成した時のスコープ

掲題のとおり。

概要

クラスAの中で自身のインスタンスを生成し、 get_object_vars()を実行するとprivateまで返却される。

get_object_varsに関してはマニュアルで以下のように記載されている。 「そのスコープ内」という記述がオブジェクトを指していると解釈していたが、メソッドを呼び出している箇所を指しているみたい?

指定したオブジェクトのプロパティを取得する。
指定した object について、 そのスコープ内でアクセス可能な非 static プロパティを取得します。

class A
{
    private $privateValue = 0;
    public $publicValue1 = 1;
    public $publicValue2 = 2;
    public $publicValue3 = 3;

    public function getProperties(): void
    {
        $instance = new A();
        var_dump(get_object_vars($instance));
    }

    public function set(): void
    {
        $instance = new A();
        $instance->privateValue = 10;
        var_dump(get_object_vars($instance));
    }
}

$a = new A();
$a->getProperties();
$a->set();
実行結果

scope.php:13:
array(4) {
  'privateValue' =>
  int(0)
  'publicValue1' =>
  int(1)
  'publicValue2' =>
  int(2)
  'publicValue3' =>
  int(3)
}

scope.php:20:
array(4) {
  'privateValue' =>
  int(10)
  'publicValue1' =>
  int(1)
  'publicValue2' =>
  int(2)
  'publicValue3' =>
  int(3)
}

結果の通り、private変数まで返却されていることがわかる。

今回わかったこと

  • 同クラスのインスタンスであればprivateにもアクセス出来る
    • javaで似たようなコードを書いても同様な結果が返却された。

勉強不足ですね・・・。

Laravel Note - todoリスト(Viewの作成)

前回はテーブルの作成等を行いました。
今回はページの見た目であるViewの作成と、todoの登録を行っていきます。

続きを読む