田舎で並行処理の夢を見る

試したこと、需要がないかもしれないけど細々とアウトプットしてます

golang

【goroutineによる並行処理】サンプルを作りながら学ぶgoroutine入門

golangを学ぶ上での壁goroutine golangを業務で使い始めてから約半年になりました。業務ではgolangを使ってWebsocketを使ったチャットサーバーを作っています。golangの文法は非常にシンプルで分かりやすくシンプルなので、可読性が非常に良いです。普通にgo…

【サンプルコード有り】golangで三項演算子っぽいものを記述する方法について

嫌だなぁと感じる場面 業務を進める中で、以下の様なコードを書くことが多かった。 drink := "" if orderNum { drink = "green tea" } else { drink = "tea" } orderNumの様な関数の引数で指定される値であったり、http経由で指定されたqueryによって値をセ…

【golang/Elixirのサンプル有り】何度も同じようなテストを書くのがつらいので無名関数を使って楽しくしよう

反応が良かったツイート テストを無名関数で書くと楽しいよという旨のツイートの反応が良かった。ただ言葉だけだと正確に情報が伝わらないので実際にどうやっているのかをコードに落としてみた テストケースを複数書くときは無名関数が凄く便利。わざわざ外…

数値をASCIIを用いてaからzまで(半角英字)の文字列に変換

何をしたいのか 業務で書いたコードなのだが、作成する元になったアイディアがボツになったため、お蔵入り。需要は無いだろうけど、せっかくなので当時、ググっても出てこなかったので公開しておこうと思う。1から始まる任意の数字をASCIIで定義されている数…

【サンプルコード有り】golangで複数条件のソートを無名関数を使っていい感じに実装してみた

何をしようとしているのか struct(以降、構造体と表記)を要素に持つ、配列をソートする必要がある場面に出くわした。通常というか一般的な数値や文字列のソートと異なり、構造体のAフィールドの値が大きい順番かつ、Bフィールドの値が小さい順かつ...のよう…

【サンプルコード有り】golangとclosureで作ったクールなカウンターをElixirで書き直した

closure(クロージャー)とは何か 難しい概念の説明は強いエンジニアや大学の賢い先生方にお任せするため、深い説明は行わない。ざっくりと言うと、関数の中である値を保持させておいて、その値を変化させる(操作する)ための変数を保持している関数の内部に用…

websocketを使ったgolang産チャットアプリのやらかしスレッド設計をkubernetesでスケール可能に修正した

機能に関する詳細 現在、業務でwebsocketを使用したチャットアプリケーションの開発に関わっている。自分が担当しているのはサーバーサイドのみで、実装はgolangを使用している。websocketのライブラリはgorilla/websocketを採用している github.com サーバ…