はじめに クリーンアーキテクチャは、ソフトウェア設計の分野で非常に重要な概念です。 しかし、その理解は容易ではなく、明確な正解が存在するわけではありません。 多くの人が異なる解釈を持ち、他の設計思想と混在していることもあります。 この記事では、自分なりの視点からクリーンアーキテクチャを解釈し、その整理した内容を共有します。 このアーキテクチャの目的は、システムの各層を独立させ、変更に強く、テストしやすい設計を実現することです。 この記事では、クリーンアーキテクチャの基本概念、Golangでの実装方法、およびディレクトリ構成について詳しく説明します。 なお、この記事では個人的な見解を述べており、必ずしも正解を書いているわけではありません。もし誤りがあれば、ぜひご指摘いただけると幸いです。 クリーンアーキテクチャの基本概念 クリーンアーキテクチャの元となったのは、ロバート・C・マーチン(通称「
このニュースのポイント Mistral AIがコーディング向け生成AIモデル「Codestral」を発表 Python、Javaなど人気の言語を含む80以上のプログラミング言語に精通 CodestralはHuggingFaceからダウンロード可能で、APIエンドポイントを通じて利用可能。8週間のベータ期間中は無料で利用できる 米Microsoftが支援するプランス企業のMistral AIは、Python、Java、C、C++、JavaScript、Bashなど、人気の言語を含む80以上のプログラミング言語に精通したコーディング向け生成AIモデル「Codestral」を発表しました。 Codestralは、コード生成タスク専用に設計された220億パラメーターのオープンウェイト生成AIモデルで、コード生成から完成までのタスクに特化しており、非商用ライセンスのもとで利用可能です。 Codest
Google Cloudは、日本時間4月10日未明から開催中のイベント「Google Cloud Next '24」で、最新のAIによるコーディング支援サービス「Gemini Code Assist」を発表しました。 Gemini Code Assistは、GitHub CopilotやAWS CodeWhispererなどと競合するサービスと位置づけられます。 Gemini Code Assistは最新AIモデル「Gemini」採用 Google Cloudは昨年(2023年)12月にAIによるコード補完やコード生成などを実現する「Duet AI for Developers」を正式リリースしています。今回発表されたGemini Code Assistは、同社の最新AIモデルである「Gemini」を採用したDuet AI for Developersの進化版だと説明されています。 参考:
ソーシャル経済メディア「NewsPicks」で推薦や検索などのアルゴリズム開発をしている北内です。Pythonは頻繁に新機能や便利なライブラリが登場し、ベストプラクティスの変化が激しい言語です。そこで、2024年2月時点で利用頻度の高そうな新機能、ライブラリ、ツールなどを紹介したいと思います。 この記事では広く浅く紹介することに重点を置き、各トピックについては概要のみを紹介します。詳細な使用方法に関しては各公式サイト等での確認をおすすめします。なお、本記事ではOSとしてmacOSを前提としています。 環境構築 Pythonの環境構築はpyenvとPoetryの組み合わせがもっとも標準的でしょう。 以下の手順でpyenvとPythonをインストールできます。 brew install pyenv # Bashの場合 echo 'eval "$(pyenv init -)"' >> ~/.ba
米Metaは8月24日(現地時間)、7月に発表したLLM(大規模言語モデル)の「Llama 2」上に構築したコーディングツール「Code Llama」をリリースしたと発表した。 Llama 2と同じコミュニティライセンスで、無料で研究および商用利用できる。 コーディング用生成AIモデルとしては、米Microsoft傘下のGitHubが6月にテクニカルプレビュー版を発表した「GitHub Copilot」がある。 Code Llamaは、プロンプトからコードを作成したり、特定の文字列を指定するとコードを完成させ、デバッグもできるとMetaは説明する。Python、C++、Java、PHP、Typescript (Javascript)、C#、Bashなどをサポートする。 パラメータ数が70億、130億、340億の3つのサイズでリリースする。各モデルは5000億トークンのコードとコード関連デー
皆さんはGitHub Copilotを使っていますか?VSCodeやIDEに拡張を入れると、生成AIとペアプロのようなことができるという、アレです。 最近はこれがないと仕事ができない。なかった時代を思い出せないという人が増えています。プログラミングの生産性に明確に差が生まれます。僕もその口です。 ただ、GitHub Copilotを使いこなせていないという話も度々聞きます。Copilotが提案してくれるコードが微妙で役に立たないというような感じです。 その差はどこにあるのか?を知りたくて6/24に試しにCopilotを使った動画を撮ってみました。実践的なCopilot実演動画というのはすごく珍しいらしく、GitHub dockyardというコミュニティの竣工イベントに登壇してみないか?というお声がけをいただいたので、8/5にGitHub Copilotを使いこなせるとどうなるのかというライ
Google、Python環境の「Colaboratory」にAIによる開発支援機能を搭載へ。自然言語からのコード生成、チャットボットによる質疑応答など Googleは今月(2023年5月)に開催したGoogle I/O 2023で、同社として最新の大規模AIモデル「PaLM 2」を発表しており、今回Colaboratoryに搭載されるのも、このPaLM 2に基づいてコードの生成用に作られたモデル「Codey」です。 このCodeyを用いて、Colaboratoryには数カ月以内にコード補完、自然言語によるコード生成、コード支援チャットボットなどの機能が搭載される予定です。 下記は「import data.csv as a dataframe」という自然言語での入力からコードが生成されたところ。
会社にデバッグの早い人と遅い人がいる。 二人を観察していると、色々な違いが見れて勉強になる。 いくつかまとめてみる。 ・デバッグが早い人はコードに着手する前に状況を整理する 期待動作はどのようなものか、現状の動作(バグ)はどんなものか、どんな条件でバグが生じるか、生じないかを整理する 他人からアサインされたタスクの場合、手早くこれらを質問して状況を確認する。 デバッグが遅い人は何も考えずにコードを触り始める。 「何をデバッグしているの?」と聞くと言語化出来ない。 場当たり的、五月雨式に質問する。 ・デバッグが早い人は仮説を持っている。 ざっくりと全体像を把握し、当たりをつけてから作業する。 全ての作業が仮説の検証作業。結果が出た時に次に何をすべきかも把握している。 デバッグが遅い人は自分でも何をやっているか分かっていない。 「よくわからないけど一応2回試してみた」とか言う。 「それは今何を
C/C++ on the bench, as US snoop HQ puts its trust in Rust, C#, Go, Java, Ruby, Swift The NSA has released guidance encouraging organizations to shift programming languages from the likes of C and C++ to memory-safe alternatives – namely C#, Rust, Go, Java, Ruby or Swift. "NSA recommends that organizations use memory safe languages when possible and bolster protection through code-hardening defense
Stop following tutorials designed for beginners. Start working on projects that actually challenge you. Become a better engineer through deliberate practice.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く