初めてOSSにプルリク送って感じたこと

経緯 npxコマンドでNuxt.js + Vuetifyのプロジェクトテンプレートが簡単に作れるのだけど、初期テンプレートにあるVuetifyのロゴの解像度が低くてぼやけているのが気になって、「これなら自分でも直せそうだな」と思ったので修正してみることにした。 はじめ…

Laravelのコードで学ぶSOLIDの原則

Laravelのコードで学ぶSOLIDの原則 たまたま観た動画が、before-after形式でコードサンプルが書かれてあってわかりやすかったのでまとめる。 原題は「SOLIDの設計原則を用いてより良い開発者になるには」 SOLIDの原則とは? 詳しくは割愛 postd.cc 単一責任の…

『1兆ドルコーチ』を読んだ

以前から思っていたのだけれど、マネジメントされるではなくマネジメントする側にならないと給料が上がらないと思うので、そういうスキルについて知るために読んだ。 人がすべて どんな会社の成功を支えるのも、人だ。マネジャーのいちばん大事な仕事は、部…

AWS Hands-on for Beginners 〜Serverless 編〜をやった

AWS

aws.amazon.com AWS Lambdaを使用したことがなかったことと、サーバレスアーキテクチャについてちょっと知りたかったのでやることにした。 Udemyの手を動かしながら2週間で学ぶ AWS 基本から応用までの作者の方のハンズオンなので、自分にとって声とかスピー…

Core i3-6100からCore i5-9400Fに交換した

経緯 ボーダーランズ3をプレイしているとカクカクしてしょっちゅうフリーズするのでCPUを変えることにした。 今までの構成は3年前に組んだものでGTA5がやりたくて組んだ気がする。 構成 CPU:Core i3-6100 GPU:玄人志向 GF-GTX1050Ti-4GB/OC/SF マザボ:H110M …

Ubuntu18.04にMeCabをインストールする

$ sudo apt install mecab $ sudo apt install libmecab-dev $ sudo apt install mecab-ipadic-utf8 mecabコマンドをテスト。エラーが出る。 $ mecab param.cpp(69) [ifs] no such file or directory: /usr/local/lib/mecab/dic/ipadic/dicrc 辞書ディレクト…

PDCAを回せるやつは強い

某附属小学校の話を聞いたのだけど、何事にも本気で取り組むそうだ。 運動会の綱引きもどうすれば勝てるのか研究するらしい。 小学生のときからPDCAを回せるやつは強い。

『Head Firstデザインパターン』 Factoryパターン

「new」を見たら「具象」と考える newは具象クラスをインスタンス化する。しかし、コードの柔軟性を保つためにインターフェースを使いたい。 「new」の何が問題か 本当の問題は「変更」であり、変更によってnewの使用箇所がどのような影響を受けるのかという…

『Head Firstデザインパターン』 Decoratorパターン

Decoratorパターンとは Decoratorパターンはオブジェクトに付加的な責務を動的に付与する。デコレータはサブクラス化の代替となる、柔軟な機能拡張手段を提供する。 スターバズコーヒー 継承を使って飲み物を増やすのはクラス爆発や硬直した設計になる。 継…

『Head Firstデザインパターン』 Observerパターン

Observerパターンとは Observerパターンは、オブジェクト間の1対多の依存関係を定義し、あるオブジェクトの状態が変化するとそれに依存しているすべてのオブジェクトが自動的に通知され更新されるようにする。 ObserverパターンではPublisherをサブジェクト…

Every adventure requires a first step. Trite, but true even here.

最近TDDとまではいかないんだけどテストをちゃんと書くことを意識していて、できるだけロジックの部分だけでもテストが書きやすくなるようにコードを書いている。はじめは依存性ありまくりでテストしやすいコードを書けなかったけど書いていくうちに、クラス…

『Head Firstデザインパターン』 Chapter1 デザインパターンの根底にあるオブジェクト指向の原則

はじめの状態 共通の処理を抽象クラスに書きサブクラスが継承する。 いわゆる差分プログラミング。 飛ぶ振る舞いをもたせる必要が出てきた 飛ぶ振る舞いを基底クラスに追加したがDuckのすべてのサブクラスが飛ぶ必要はない。 コードに対する局所的な更新によ…

NullObjectパターンを覚えた

出品者のデータにフィルタをかけて該当する出品者のSellerオブジェクトを返すメソッドがあるとします。 サンプルコード data = $data; } /** * 出品者の価格 * @return int */ public function price(): int { return $this->…

LaravelでデータをDBに保存したいときのメモリ不足をなんとかする

APIで取得した50万件分のデータを保存する 環境 Linux 5.0.0-27-generic #28~18.04.1-Ubuntu PHP 7.3.9 Laravel Framework 6.0.3 MySQL 8.0 結論 CSVに一旦保存してLOAD DATA IN FILEが一番速い。 前提 509,999件分のデータを一括で取得できるAPIがあります…

LEMP環境をDockerで構築

今までPHPを動かすときは、DockerHubからPHPとApacheが一体になったImageを使用していたのだけど、nginxも使ってみたかったのでphp-fpm+nginx環境をDockerで立ち上げてLaravelを動かしてみた。 今まではApacheが同梱されていてコンテナを立ち上げてlocalhost…

ValueObjectっぽいものを導入したらいい感じになってきた

今までAPIで取得した値を加工・計算したい場合とりあえず連想配列に入れてゴニョゴニョしていた。 連想配列にいろいろなデータ詰め込みすぎると何入ってるのかわかんなくなるし、面倒なのがある条件のときだけ存在しないキーがあったりしたら、isset()とかem…

Spider Engineを構築する

Spider環境構築 ローカルの開発環境にMariaDBをインストールし、複数DBを立ち上げSpider Engineを試す。 環境: mysql Ver 15.1 Distrib 10.4.7-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 Linux 5.0.0-27-generic #28~18.04.1-Ubuntu Maria…

抽象化が苦手

DBに関する本とかネットの記事読むと、多対多のテーブルとか出てくるじゃないですか。よくあるのが授業管理システムとかで、 ・授業テーブル授業ID:1授業名:経済学教授ID:100 ・学生テーブル学生ID:1名前:佐藤 ・受講テーブル学生ID授業ID 授業は複数の学生…

『Head First オブジェクト指向設計』第7章

第7章 アーキテクチャ アーキテクチャとは、設計の構造であり、アプリケーション内において重要である部分とそれらの重要部分間での関係に着目する。 アーキテクチャとは、システムの組織化された構造である。各部分への分割、部分間の接続、相互作用メカニ…

『Head First オブジェクト指向設計』第6章

第6章 本当に大きな問題の解決 今まではせいぜい10個程度のクラスのアプリケーションを開発してきた。より大規模なアプリケーションの開発はどうやって行うのか? →大きな問題も小さな問題と同じように解決する。 顧客が必要とする処理をソフトウェアが実行す…

『Head First オブジェクト指向設計』第5章 後半

第5章 後半 良い設計=柔軟なソフトウェア 柔軟ではないコードに対処する アプリケーションの変更時に問題が発生するのは、ソフトウェアの柔軟性が足りないから。「凝集度」を高めて結合の問題を解決する。 ・凝集度と結合度 設計におけるオブジェクトの責務…

Ubuntuの入力言語(英語入力・日本語入力)の切り替えをWindowsのようにCtrl+Shiftで行う

英語キーボードの場合、半角/全角ボタンがないので、英語入力と日本語入力の切り替えを任意のキーでバインドすることになると思います。 Windowsを使用しているときは入力言語の切換をCtrl+Shiftで行っていましたが、Ubuntuの場合デフォルトでSuper(Windows…

UbuntuでHeidiSQLを動かす

今までDBのGUIツールとしてHeidiSQLを使用していましたが、HeidiSQLはWindows専用なのでLinuxでは使うことができません。 Linuxで使用できるDBのGUIツールとして、DBeaverやMySQL Workbench が有名なので、両方のソフトを試してみましたがHeidiSQLと比べると…

Ubuntuのフリーズを解消する

環境 System: Kernel: 5.0.0-23-generic x86_64 bits: 64 Desktop: Gnome 3.28.4 Distro: Ubuntu 18.04.3 LTS CPU: Quad core AMD Ryzen 5 PRO 2400G with Radeon Vega Graphics (-MT-MCP-) cache: 2048 KB clock speeds: max: 3600 MHz 1: 1554 MHz 2: 1464…

UbuntuにEclipseをインストール・日本語化する

環境 Eclipse IDE 2019‑06 $ uname -a Linux 5.0.0-23-generic #24~18.04.1-Ubuntu SMP Mon Jul 29 16:12:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux $ cat /etc/os-release NAME="Ubuntu" VERSION="18.04.3 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debia…

『入門Goプログラミング』を読んだ

入門Goプログラミング 作者: Nathan Youngman,Roger Pepp,吉川邦夫 出版社/メーカー: 翔泳社 発売日: 2019/05/13 メディア: 単行本(ソフトカバー) この商品を含むブログを見る GoでAPIサーバを作ったことをきっかけにGoをちゃんと学びたいと思ったので読ん…

"InnoDB: Plugin initialization aborted with error Generic error"

DB

docker-compose up でMySQLが突然起動しなくなった。 環境 Windows10 Pro 64bit MySQL 5.7.26 Docker 18.09.2 $ docker logs mysql 2019-07-25T01:19:35.869478Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_d…

PHP+msmtpとMailCatcherをDockerで動かす

PHP+msmtpとMailCatcherをDockerで動かす 今までPHP+ssmtpとMailCatcherを使用していた。 WSL2にしてDockerを動かそうとしたら Package 'ssmtp' has no installation candidate と出てインストールできなかった。 ssmtpはメンテされていないことを知ったので…

『達人に学ぶDB設計徹底指南書』を読んだ

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ作者: ミック出版社/メーカー: 翔泳社発売日: 2012/03/16メディア: 単行本(ソフトカバー)購入: 21人 クリック: 316回この商品を含むブログ (24件) を見るDB設計をする上で必要な知識が詰まって…

やる気が出ない原因がわかった

今週はあまりやる気が出ず集中力もなかったと思う。ただ原因がわからなかった。 今日も朝起きてから写経して、疲れて昼寝したけど体が重い感じがしてさっぱり疲れが取れている感じがしなかった。 昨日は仕事中に夕方ぐらいから腰が痛くなって、それはずっと…