sato's note

技術メモ

【要約】マネジメントの基本 from エンジニアのためのマネジメントキャリアパス

上司に何を求めるか 1対1のミーティング 目的は2つ 1. 上司との間に人間的な「つながり」を作ること。 「部下にも私生活がある1個の人間」として扱う 2.「要検討事項について上司と1対1で話し合う定期的な場を設けること」 上司と責任を分かち合いたい…

Golang 制御文

Go

if 基本 条件をかっこで囲む必要はない 三項演算子はサポートされていない if x%2 == 0 { fmt.Println(x, "is even") } 変数の初期化 ifステートメント中に変数の初期化ができる。 スコープはifブロックの中だけになる。 if num := getnumber(); num < 0 { f…

【要約】チームで意思決定プロセスを改善する5つのステップと4つの手法

概要 優れた意思決定プロセスの条件 さまざまな人に入ってもらう。 意思決定できる状態で会議する。 肩書きは脇に置いておく 意思決定プロセス改善のための 5 ステップ 解決策ではなく問題を明らかにする クリティカルシンキングを促進する 意見の不一致を想…

Golang パッケージ

Go

パッケージ パッケージ パッケージの作成 ディレクトリ構成 パッケージソース ビルドの実行 モジュールの作成 ローカル パッケージ の参照 準備 go.modの作成 go.modの編集 パッケージの使用 外部 (サードパーティ) パッケージの参照 go.mod パッケージの作…

Golang 関数

Go

関数定義 関数定義 構文 例 関数の戻り値に名前をつける 複数の値を返す ポインター渡し 構文 func name(parameters) (results) { body-content } 例 package main func sum(x int, y int) int { return x + y } func main(){ sum := sum(2, 3) println("Sum…

Golang 変数

Go

変数の宣言 単数 複数一括 初期化 定数 変数の宣言 単数 var firstName string 複数一括 var ( firstName, lastName string age int ) 初期化 var ( firstName string = "John" lastName = "Doe" // 型推定 age int = 32 ) 定数 const ( StatusOK = 0 Status…

MySQL 再帰クエリで階層構造のデータを一度に取得

準備 テーブル定義 CREATE TABLE `categories` ( `id` int(10) unsigned NOT NULL, `name` varchar(45) NOT NULL, `parent_id` int(10) unsigned DEFAULT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`parent_id`) REFERENCES `categories` (`id`) ON DELETE SE…

Mac + MySQLクライント + Docker + Mariadb

MySQLクライアントのインストール ❯ brew install mysql-client Mariadbコンテナの作成 ❯ docker run -d -e MARIADB_ALLOW_EMPTY_PASSWORD=1 mariadb/server コンテナの確認 ❯ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a7252458d78…

DockerをMacにインストール

インストール ❯ brew install docker --cask バージョン確認 ❯ docker --version Docker version 20.10.7, build f0df35096d 起動 ❯ open /Applications/Docker.app

モノリシックとマイクロサービス

概要 ソフトウェアにおけるモノリシックとは、分割されていない1つのモジュールで構成されたものを指す。 マイクロサービスとは、複数の小さいサービスの集合体から一つのアプリケーションを構成するアーキテクチャの一種。 モノリシックとマイクロサービス…

DRYの原則

概要 Don't repeat yourself 直訳:同じコードを重複させるな。 本来の意図:ソフトウェア開発全体において情報を重複させない DBスキーマ、テスト計画、ビルドシステムや、ドキュメンテーション等、幅広く適用できる。 この原則がうまく適用されたとき、い…

YAGNIの原則

概要 You ain't gonna need it 機能は実際に必要となるまでは追加しないのがよい 後で使うだろうという予測の元に作ったものの90%は無駄になる。 予期しない変更に対しては、設計を単純にすることが備えとなる。 コードをすばやく実装するために最も良い方法…

KISSの原則

概要 Keep It Simple Stupid.(シンプルで愚鈍にする) 以下の様な解釈もある Keep it short and simple Keep it simple, stupid どちらにしてもシンプルに設計・開発する様にという事。 技術力を見せつける為の様な複雑な設計は要らない。

SOLIDの原則

概要 Single Responsibility Principle:単一責任の原則 Open/closed principle:オープン/クロースドの原則 Liskov substitution principle:リスコフの置換原則 Interface segregation principle:インターフェース分離の原則 Dependency inversion princi…

N+1問題

概要 DBアクセスが合計 N+1 回実行される問題 SELECT を 1 回実行し、N レコードを取得 Nレコードに関連するデータを取得するSELECT を N 回実行 抽象化コード list_all = select_all() // Nレコード取得 for( row in list_all){ detail = select_detail(row…

ACID特性とは

Atomicity(原子性) トランザクション内の処理がすべて実行されるか、または全く実行されないことを保証する性質。 Consistency(一貫性) トランザクションによりデータの矛盾が生じず、整合性を満たすことを保証する性質。 Isolation(独立性) 複数のトランザ…

バックエンドエンジニアのロードマップ(文字起こし)

インターネット インターネットの仕組み DNSとは・DNSの仕組み ドメイン名とは ホスティングとは 基本的なフロントエンドの知識 OSの基本的な知識 OSの仕組み プロセス管理 スレッドと同時並行性 メモリ管理 プロセス間通信 入出力管理 POSIXの基礎 基本的な…

ホスティングとは

ブラウザとは・ブラウザの仕組み

バックエンドエンジニアのロードマップ