Go言語の強力な機能の一つに、軽量なスレッドがあります。Goroutineを活用して、MySQLに対して複数のクエリを並列に実行することで、パフォーマンス向上を図りたいと考えたりもするかもしれません。
でも、並列クエリには注意が必要です。
ちゃなことで。この記事では、Goroutineを使って並列クエリを投げたくなるようなパターンと、その回避方法について詳しく解説します。特に、SQLのUN...
Go言語は、その設計哲学から「シンプルさ」や「明快さ」を重視しています。その一方で、Goコミュニティには公式思想からやや外れた「便利ツール」や「シンタックスシュガー的な関数」を提供するサードパーティライブラリが数多く存在します。その代表格の一つが、samber/lo ライブラリです。
lo、結構実務では使ってるんですが、簡単に言うと、Go標準にはないMapやFilterといった関数型プログ...
Go言語は2009年にリリースされて以降、「シンプルで明快」な設計哲学を貫いてきたことで知られています。C言語やJavaといった、多機能で柔軟性の高い言語から移行してくると、Goの最小主義的な設計には「そこ切り捨てちゃう?」という驚きがありますよね。
そんなGoでは、「あえて存在しない」ものがいくつかあります。そのうちの一つが「三項演算子」ですよね。三項演算子が大好きな私です。切ない別れです...
前回の記事で解説したように、Kubernetes(K8s)のクラスタ内ではPod間通信は主にDNSによって行われ、Service → Endpoints → Podという仕組みを通じてPodが入れ替わるたびにトラフィック先を動的に更新します。DNS TTLも短く設定され、Pod入れ替え時のDNSキャッシュ問題を最小化していることがポイントでした。
しかし、このメカニズムを前提にしたK...
Kubernetes(以下K8s)上で分散システムやマイクロサービスを構築する際、アプリケーションコンポーネントはPodとしてデプロイされ、相互に通信を行います。この際、Pod同士の通信先を特定するために使われる仕組みの一つがDNSによる名前解決です。「Podはスケールやアップデートによって入れ替わるが、その度にIPアドレスって変わるよね?DNSキャッシュが残ってたら古いIPを参照し...
ハローコンソール使いの皆さん。日常的にコンソール(ターミナル)を使用していると、効率的な作業を実現するためにカーソル移動のショートカットが欠かせません。便利なカーソル移動方法が数多く存在します。
でも結構業界歴長い人が意外と知らなかったりすることがあって、そういえばわざわざ教えることも無いかも?
この記事では、コンソールでのカーソル移動方法をあれこれ紹介してみようと思います。「これ知らん...
コンピュータのパフォーマンスを最大限に引き出すために、昨今のメニーコア時代、並列実行(マルチスレッドやマルチプロセス)の活用が一般的だと思います。でも、並列実行数を増やせば必ずしもパフォーマンスが向上するわけではありません。
「こんな並列数にしたらかえってパフォーマンス落ちるけど・・」って思うことがあるんで、この記事では、並列実行数を増やすことが必ずしも望ましい結果をもたらさない理由について...
実はなにやっても戻せるんですよね。
Gitのインタラクティブリベース(interactive rebase)は、コミット履歴を整理して、クリーンで理解しやすい履歴を作成するための必須機能です。無いと困ります。なんですけど、操作をミスると履歴が複雑になって、元の状態に戻せなくなっちゃうことがあります。そんな、インタラクティブリベースでわけわからなくなったときに、元の状態に戻す方法をこの記事で...
grep。ご存知だと思うんですが、小技を知っていると、作業が格段にスムーズになります。この記事では、grepの便利な小技を集めて解説します。上級者は大体この小技を無意識に使ってたりしますので参考にしてみてください
目次
grepとは?
grepの基本的な使い方
grep 小技集
grepの応用テクニック
grepを使いこなすためのヒント
...
どうもviつかってますか。viめっちゃ便利なんで、使ってほしいなと思ってます。
コンソール上での作業効率アップだけじゃなくて、日々の作業でも便利です。特に、効率的なコマンド操作を駆使することで、作業スピードと生産性が飛躍的に向上します。どういうエディターなのか、っていうのを解説してみました。
目次
基本操作
移動コマンド
編集コマンド
検索と置換
...
うちの会社ではLinuxやUnix系のインフラを利用する機会が多いです。
そのような環境でファイルやディレクトリを効率的に検索することは日常的なタスクです。そんな時に欠かせないのが「findコマンド」です。
ということで、findコマンドの基本から応用的な使い方まで、実務目線で使い方ガイド的なのを書いてみました。
目次
Findコマンドとは?
基本的な構文
...
こんにちは、亀井です。
ちょっと考えたんですけど、ウチっていわゆる受託開発をやっている会社なわけですが、品質には自信があるんです。なので、当社の自社コードと当社が納品した設定に起因する瑕疵担保期間を2年にしようと思います。
だって、品質に自信があるんだから1年でも2年でも一緒でしょ?ということです。
実際に当社で受託した案件で、そんなに深刻なバグって、出た記憶が無いんですよね。なので瑕疵担保...
SSH(Secure Shell)を使ってリモートサーバーに接続する際、セキュリティを保ちながら効率的に作業を行うための便利な機能の一つに「エージェントフォワード(Agent Forward)」があります。今回は、エージェントフォワードの基本概念から、Mac環境での設定方法、実際の使用例までをわかりやすく解説します。
エージェントフォワードとは?
エージェントフォワードは、SSHエー...
git定番のやつを解説です。
Gitを使っていて、「あ、やっぱり直前のコミット取り消したい!」と思うことは誰しもが経験するはずです。今回は、そんなときに使える定番の方法を解説します。誤ったコミットをなかったことにする方法から、内容はそのままでメッセージだけ修正する方法まで、シチュエーション別に説明します。
1. 直前のコミットを「なかったこと」にする
一番よくある「さっきのコミット、やっぱり...
ソフトウェア開発において、コードベースが大きくなると、特定の文字列やパターンを効率的に検索することが重要になります。そんな時に役立つのがgit grepです。しかし、「git grep」を使ったことがない方や、その使い方に戸惑っている方も多いのではないでしょうか。この記事では、git grepの基本的な使い方から応用テクニックまで、わかりやすく解説します。
目次
git g...
ソフトウェア開発において、バージョン管理システム「Git」は欠かせないツールです。しかし、Gitのコマンドや概念は初心者にとって難解に感じられることも少なくありません。そこで今回は、Gitの基本的な概念を日常生活にあるメタファー(比喩)を使ってわかりやすく解説します。これを読めば、Gitの世界がぐっと身近に感じられることでしょう。
目次
Gitとは?
リポジトリ(...
ターミナル作業を効率化するためのツールとして、「tmux」だけでなく「screen」も広く利用されています。これらのツールは、ターミナルマルチプレクサとして知られ、複数のセッションを管理・操作することができます。この記事では、screenの基本的な使い方と、tmuxとの比較を通じて、それぞれの特徴と利点を解説します。
目次
screenとは
screenの基本的な使...
運用作業やシステム管理を行う際、ターミナルでの効率的な作業は欠かせません。その中でも「tmux」は、ターミナルマルチプレクサとして多くのエンジニアに愛用されています。しかし、tmuxの独特な用語や操作方法に戸惑う初心者も少なくありません。この記事では、tmuxを運用作業で使う際に最低限知っておきたい基本的な使い方と用語の解説を行います。
目次
tmuxの基礎知識
t...
ターミナルでの作業を効率化するための強力なツールとして、多くの開発者やシステム管理者に愛用されているのが「tmux」です。しかし、まだtmuxを使ったことがない方も多いのではないでしょうか。この記事では、初心者でも簡単に始められるtmuxの使い方と、その便利さについて詳しく解説します。特に、リモートとの接続が切れたときにどれほど役立つかを具体的な事例を交えて紹介します。
目次
...
10,000時間の“名人方程式”は、もはやソフトウェア開発に当てはまらない
──労働時間の半減とスキル半減期が示す新しい熟練ライン
という事で、この業界、若手がとにかく挫折するんですよ。ブラックだからでは無いんです。なんでだろうなーと思っていて、ふとある記事がきっかけで、アハ体験的な気づきがあったので、ブログにまとめてみました。
TL;DR
普通の人が勉強しちゃいけない、時間を費やしてはいけ...