Stateパターンはオブジェクト指向において、オブジェクトがとりうる複数の状態に対して別々の振る舞いをさせたいときに私たちが用いるデザインパターンです。しかし、Stateパターンをどのように実装すべきなのかはプログラマーによって認識が分かれることがあります。本書では、Stateパターンにはどのような実現方法があるのか、並べて紹介します。
![Stateパターンの様々な解釈を通じて、私たちが何を警戒しているか考える](https://cdn-ak-scissors.b.st-hatena.com/image/square/456c124302f9548ddc8f38be87cdb6be1676ddcb/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--mhKeDDuu--%2Fg_center%252Ch_280%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYm9va19jb3Zlci8xMjY4YzM5YmQzLnBuZw%3D%3D%252Cw_200%2Fv1627283836%2Fdefault%2Fog-base-book_yz4z02.jpg)
Windowsを始め、Unixの影響を受けているOSが持つ機能に環境変数がある。環境変数は、実行するプログラムに対してなんらかの情報/パラメーターを与える方法。1979年に作られたVersion 7 Unixに搭載され、Unixの基本的な機能の1つとして今でも使われている。 プログラムに対して情報やなんらかのパラメーターを与える方法にはコマンドラインがあるが、環境変数は事前に定義しておくもので、複数回実行されるプログラムに常に同じ情報/パラメーターを指定する。あるいは、デフォルト値のように常に情報/パラメーターを指定するといった使い方をすることが多い。 典型的なUnix系のコンソールアプリケーションでは、コマンドラインのオプション指定の一部を環境変数から受け取ることができるものが多い。 Windowsでも、cmd.exeの組み込みコマンドである「dir」は、「DIRCMD」という環境変数か
2022 年 7 月から株式会社ログラスに業務委託として関わっている近藤です。 ログラスではスクラムによる開発体制を採用しています。この数ヶ月でスクラムイベントの 1 つであるスプリント・レトロスペクティブ(ふりかえり)の改善に取り組みました。この記事では主に次の対象者向けに、改善した内容について紹介します。 スクラムに取り組んでいる人 ふりかえりのやり方、効果に悩んでいて、改善したい人 ファシリテーションに興味がある人 ※ 以下、記事中ではレトロスペクティブのことを省略してレトロと呼びます。 経緯 改善前、レトロでは Miro を使った KPT[1] を次の流れで行っていました。 スプリントで完了したチケットの確認(Jira の Backlog 確認) KPT 作成の非同期ワーク[2](以下、KPT ワークと呼びます) 各参加者が KPT 内容を発表 付箋のグルーピング Try について
はじめに こんにちわ。IT業界15年、Web系10年のアラフォーです。 以前エンジニアの仕事を中心にやって来たが、現在スペシャリストとチーム長として働いてます。 スペシャリストなので、多分、技術的な記事になると思われると思いますが、そう期待している方を裏切ったかもしれないが、今回は我々アジャイル開発で使ってみた振り返りの手法について、いくつかをピックアップして話したいと思います。 振り返り手法の進め方など、たくさん記事が書かれているため、割愛させていただきます。 前提 我々のチームはアジャイル開発を採用しています。そのアジャイル開発の概念に対し、スクラムという手法を使っています。スプリント単位は一週間。時間が許す限り、毎週振り返りを行います。 チームの状況、プロジェクトの進捗などを把握するため、スクラムマスター資格を持っていない私がスクラムイベントと振り返りをファシリます。(草) 毎週同じ
こんにちは、ログラスで業務委託としてエンジニアをしております、やの(yamyanu)です。 本記事は株式会社ログラス Productチーム Advent Calendar 2022の9日目の記事になります。 はじめに みなさん、チームでふりかえりは実施していますか?ふりかえりはチームの開発プロセスを改善し、心理的安全性を確保することにも役立つとても良い活動だなと感じます。 しかし、同じ手法だけを行うと類似した観点での議論になってしまい効果が低下することもあります。そういった場合は、様々な手法を試し、自分のチームに合ったふりかえりにカスタマイズすることが重要です。 そこで今回は、3つの素晴らしいふりかえりに関する手法をご紹介します。それぞれの手法にお手軽度とうまくいった時の効果の度合いを載せていますので、ぜひ参考にしてみてください。 「Good Bad Fact Feel」: 気持ちもメンバ
こんにちは、リファクタリングが大好きなミノ駆動です。 この記事は READYFORアドベントカレンダー2022 、10日目の記事です。 これはなに? ろくに設計せずにシステム開発を進めると技術的負債が蓄積し、変更が難しくなってしまいます。 しかし設計を推進しようにも、周囲が設計is何を知らないと、なかなか理解を得られません。特にビジネス側や経営側はプログラムの内部構造を知らないわけですから、輪をかけて説得が困難です。 この記事は、ビジネス側や経営側など、非エンジニアサイドに対して技術的負債や設計を分かりやすく説明するための例えや手法をまとめたものです。 私が非エンジニアサイドへ説明するとき実際に活用しているもので、聞き手からも「分かりやすい」と好評を得ております。 この記事のゴール 以下を知ることがこの記事のゴールです。 技術的負債や設計について、非エンジニアサイドに理解を促すノウハウ ユ
オミータです。ツイッターで人工知能のことや他媒体の記事など を紹介しています。 @omiita_atiimoもご覧ください! 話題爆発中のAI「ChatGPT」の仕組みにせまる! 注意:ChatGPTはまだ論文が出ていないため、細かい箇所は不明です。本記事では公式から出た記事およびInstructGPTの論文をもとにChatGPTの仕組みを探っていきます 本記事の流れ: 忙しい方へ ChatGPTとは GPT-3 InstructGPT ChatGPT まとめと所感 参考 0. 忙しい方へ ChatGPTは、InstructGPTをベースとしたモデルだよ InstructGPTは、「人間の好みに合った文を出力するように微調整したGPT-3」だよ InstructGPTの学習では、以下の3つが重要だよ GPT-3の教師ありファインチューニング Reward Modelの学習 RLHF(=Re
フロントエンドの実装にオブジェクト指向をどのように取り入れるかを考えます。 動機 近年のフロントエンドは、Reactなどのフレームワークを使ったコンポーネントベースの設計が主流だと思います。コンポーネントは、HTMLによるマークアップ、CSSによるスタイリング、JavaScriptによる振る舞いがひとまとめにされた、再利用可能な部品です。 コンポーネントの設計を考えていると、次のような疑問が生じます。 何を基準にコンポーネントで分割すればよいか。 コンポーネントの粒度はどれくらいが適切なのか。 どのタイミングで抽象化すれば開発コストが無駄にならないか。 分業した際にコンポーネントの分割や粒度の基準をどのように統一するべきか。 そこで、いろいろ調べたり試したりしたところ、フロントエンドの設計にオブジェクト指向を取り入れることが、これらの答えの一つになるのではないかと考えました。 この記事では
こんにちは!スマートバンクでソフトウェアエンジニアをしている uribou です。 今回は、決済サービスの法的なスキームについて解説しようと思います! スマートバンクが運営する B/43 では、資金移動業というライセンスを利用して決済サービスを提供しています。一方で、一見 B/43 と同じようなサービスでも、違うライセンスで運営している事業者も存在します。 実は、このような裏側のスキームの違いが、プロダクトにおける機能差分として現れています。私自身はエンジニアですが、プロダクトを作る上で事業の法的なスキームを理解する必要がありました。しかし、プロダクトの視点から決済サービスの法的スキームを整理した資料は少なく、キャッチアップに苦労しました。 そこで、プロダクトサイドの視点から、決済サービスの法的スキームを整理してみたのが本記事になります。厳密性や網羅性には欠けるかもしれないですが、その分、
はじめに 今年新卒として入社し、初めてのQiitaアドベントカレンダー参加です。 本当は先週末に受けたAWS SysOps Administratorの合格体験記を書きたかったのですが、普通に落ちたので別のことを書いていきます(リベンジ頑張ります) 今回の記事のテーマは、タイトルにもある通り 質問力 です。 質問力とは まず、質問力とは、 物事の不明点や疑問点などを相手に問いかけるスキル のことだそうです。 そして、質問力を高めることで以下のメリットが期待できます。 信頼関係の構築 質問力を習得すると、相手の興味や関心、考え方について、会話の中から効果的に引き出すことができ、相手をより深く知ることができます。 より多くの情報取得 様々な切り口からより多くの情報を引き出すことができるようになります。 問題の解決 質問力を高めることで、課題や障害に対して的確に問い、深掘りすることができるため、
SIMカードがよくわからないので、総務省資料を見てふわっと理解した。 概要 eSIMは、コンシューマ(スマホ向け)と、M2M(機械向け)がある。 ・eSIMコンシューマ向け:申し込み・本人認証後に、QRコードを読んで、SIM製造ベンダのSM-DPにプロファイルを取りに行く。要Wi-Fi。 ・M2M(機械向け):管理者が、eSIMの有効化をすると、SM-DPにあるプロファイルがeSIMに降ってくる。 ・令和2年の資料を参照しているので、これの次世代のeSIM規格もあるらしい。 参考資料 [1]総務省 スイッチング円滑化タスクフォース(第1回) 事務局 https://www.soumu.go.jp/main_sosiki/kenkyu/denkitsushin_shijo/02kiban03_04000618.html [2]総務省 スイッチング円滑化タスクフォース(第2回) MNO htt
「iOS 11 Programming」刊行記念 Night でのLTの資料です。 https://peaks.connpass.com/event/74553/
はじめに 前回MicrosoftアカウントにてアプリにAzureActiveDirectoryB2Cの認証機能を追加しましたので、今回は他のプロバイダーのアカウントを認証できるようにしていきます。 今回追加するアカウントはおそらく認証アカウントで一番多いであろうGoogleの認証について紹介していきます。 サブスクリプションにAD B2Cの権限を追加 サブスクリプションの機能にAzureActiveDirectoryの権限を追加する必要があります。 Azureポータルから「サブスクリプション」→使用したいサブスクリプション名をクリックして、右側のメニューから「リソースプロバイダー」を選択し、「Microsoft.AzureActiveDirectory」を見つけ、クリック、上部の登録ボタンを押して、サブスクリプションに権限を追加します。 Azure Active Directory B2C
はじめに 最近スパイスカレーを食べるのはもちろん、作るのにもハマっている小林(@mako-makok)です。 近所のお気に入りのお店の閉店が決まってしまい、悲しみに暮れていますが頑張ってアドカレの記事を書きました。 この記事は株式会社ログラスProductチームの2022年12/18(日)の記事です。 株式会社ログラス Product チーム のカレンダー | Advent Calendar 2022 - Qiita なぜ今更Gradleかというと、最近社内で構築しているSheetlinというライブラリがあります。 ニッチな話になりますが、Sheetlin のインターフェース設計に関する話をKotlin Fest Reject Conference 2022でしてきたので、よろしければこちらもご覧ください。 そんなSheetlinですが、ビルドツールはGradleを利用しています。 私も雰
みなさまこんにちは、ログラスでシニアエンジニアリングマネージャーをしている飯田(@ysk_118)です。 本記事は 株式会社ログラス Productチーム Advent Calendar 2022 の16日目の記事です。 昨日は弊社エンジニア佐藤の ユーザーの価値と向き合う上でのBtoBとBtoCの違い でした!toB/toCの違いについては私も共感するところが大きかったです。 今回はマネージャーをしていると絶対に避けては通れない難しい業務のひとつである人事評価(以下、評価)について私の考え、そしてログラスで取り組んでいることをお伝えできればと思います。 形骸化した評価の悪さて、会社で仕事をしていると評価というイベントがあり、本記事を読んでいる人も多くの人が評価を受けたことがあるかと思います。 みなさんは評価についてどんな印象を持っていますでしょうか? 結果を一方的に伝えられる時間?それと
MacのMAMPで作ったローカルのテスト環境をHTTPS化したら、Chromeで「この接続ではプライバシーが保護されません NET::ERR_CERT_INVALID」と表示されてしまった。 困った事に、「詳細設定」を押しても「危険性を理解した上でアクセスする」のオプションがなく、どう頑張ってもテストサイトの画面が見れない...。 こんな時に強制的にスキップしてサイトを表示する方法をメモしておきます。 ChromeのNET::ERR_CERT_INVALIDをスキップする隠しコマンドChromeブラウザのエラーが表示されている画面で、 半角英数モードでthisisunsafeとキーボード入力するだけです。 「え、そんな隠しコマンドあったん?」とビックリしたのですが、騙されたと思って試してみてください。 入力が完了すると、直後に画面が自動的にリロードされ無事にサイトが表示されるようになりまし
この記事は「STORES Advent Calendar 2022」 12/17の記事です。また、「Engineering Manager Advent Calendar 2022」 カレンダー2の12/17の記事でもあります。 こんにちは!STORES エンジニアリング室の塩谷(@kwappa)です。この記事では、エンジニアリングマネージャーの中に棲んでいる「荒ぶる四天王」について考え、うまくつきあい、あわよくば手懐けてしまおう、という試みについてお伝えします。 エンジニアリングマネージャーのしごと この記事をご覧の方でしたら、今年8月にオライリーから発売された『エンジニアリングマネージャーのしごと』という書籍に興味がある、もしくはもう読んだのではないでしょうか。エンジニアリングマネージャー(以下EM)という重要だが定義がふわっとした仕事にどう取り組んだらいいかのガイドとなる、とてもいい
動画はこちら https://youtu.be/BdSB9yBilxY?t=3812 見せてやるよ、�EventBridge の本気ってやつをな / The art of EventBridge
はじめに インターネットではいろいろな個人の知識がブログなどで手軽に共有できます。 我々がお世話になっているQiitaもその一つですね。 とはいえエンジニアとしてはRFCなどの技術仕様が記載された文書も読まなければならない時もあります。 以前IPv6を勉強しようとRFCを読んでいたので、その内容とRFCのリンク(できれば日本語に翻訳されたもの)を添えてみようかと思います。 IPv6を勉強しようと思い書籍やブログを読んだことはあるけど実はRFCって読んだことないな、という方がリンクをポチポチすると楽しめるかもしれません。 RFCについては以下のリンクを参考にしていただければと思います。 JPNIC - RFCってなに? JPNIC - RFCの分類 ちなみに有名かと思いますがIPv6を勉強しようという方には小川晃通さんが執筆した「プロフェッショナルIPv6」という書籍がオススメです。 IPv
はじめに C#の簡易アプリが必要になったためRubyのSinatraやPHPのSlim、Flightの用に使える物はないか探してみたら、Minimal APIというものがあるようだったので動かした備忘録になります。 あくまでその時実装した内容についてのまとめになりますので、実運用で必要な機能(Asyncなど)は省いていますのでご了承ください。 まとめようと思ったきっかけは、Postのパラメータの取得方法についてのまとまった記事が見つからなかったためです。(動かすのに1日かかりました) 前提 .NET7 Ubuntu20.04 MySQL8.0 準備 .NETのインストールとMinimal APIの初期化はだいたいドキュメントの通りです wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-pro
はじめに 本記事はAdvent Calendar 2022の18日目の記事です。 音声データを扱うための前提知識 本記事は、Unityに関するものではあるが、「音声データ」というある程度ゲーム開発では馴染みのないものを扱うので、いくらか必要な知識が出てきます。 ここでは、厳密性にはあまり捉われず、理解しやすい形で広く浅くこれらを説明していきます。 すでに知っている方や、Unityでの実装部だけ知りたい方は、読み飛ばしちゃってください。 音声信号とは 音が空気の振動であることをご存知の方は多いと思います。音を電気信号に変換する装置がマイクです。マイクによって、その瞬間の音の振動の強度が電圧に変換されます。この電圧は時間によって変化するので、言い換えると、音声の信号は、時間と振幅(電圧)の2変数によって表される関数になります。一般に時間を横軸として、振幅(電圧)を縦軸として次のようなグラフで書
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く