You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Go Conference 2023 ( 2023/06/02 Fri. ) https://gocon.jp/2023/ 登壇資料 株式会社アンドパッド プロダクトテックリード 小島 夏海 みなさん、Googleが公開したGo Style Guideは読みましたか? ソフトウェア開発は継続的な活動であり、一般的に複数人で行うことが多いです。 継続的に複数人で開発を行う場合、自分が書いたコードを他人が読んだり修正したりすることが非常に多いです。 そのため可読性の高いコードを書くことは開発効率やメンテナンス性の向上に役立ちます。 Goはシンプルな言語ですが、どのように書くべきか悩むことが全くないわけではなく、そのような時従来はEffective Go/Uber Go Style Guide/OSSコード等を参考にどのように書くか決めていたと思います。 これらに加え、昨年末にGoogleからG
MySQLの場合、--safe-updatesオプションを利用することでこういった不慮のUPDATE/DELETEを防げるようです
はじめに こんにちは、imamoto です。 今年もプロ野球が開幕し、すっかり春だなぁと感じる今日この頃です。 さて今回は、Go言語でのWebアプリ開発をした際のチーム内のノウハウを、GitHub上で公開してみた話を書いていきたいと思います。 目次 はじめに 目次 公開したGitHubリポジトリの紹介 資料の構成について モジュラーモノリスで実装した背景 ノウハウ公開に至った経緯 おわりに 公開したGitHubリポジトリの紹介 私はSRE課に所属しているのですが、SRE課ではGo言語でWebアプリを開発することが多いです。 独立した機能を持った複数のGo Moduleを、1つのモノリスなアプリケーションとしてデプロイする、 いわゆる モジュラーモノリス という設計でのアプリ開発にもチャレンジしているのですが、 その開発中にチームとして蓄積した実装ルールやノウハウのうち、汎用化できそうな部分
マイグレーションコード自作して File-Based Routing に自動移行!! ~250 ページの歴史的経緯を添えて~
Goが誕生したのはたったの10年前ですが、プログラミングの世界は現在と異なっていました。プロダクションソフトウェアは、通常C++かJavaで書かれており、GitHubは存在せず、ほとんどのコンピュータはまだマルチプロセッサではなく、Visual StudioとEclipse以外にIDEやその他のハイレベルなツールはほとんどなく、ましてやインターネット上で無償で利用できるものはほとんどありませんでした。 その一方で、私たちはサーバーソフトウェアの開発に使用する言語が必要以上に複雑であることに不満を感じていました。C、C++、Javaなどの言語が開発されて以来、コンピュータは劇的に速くなりましたが、プログラミング行為自体はそれほど進歩しませんでした。また、マルチプロセッサが一般的になりつつあることは明らかでしたが、ほとんどの言語には、それらで効率的かつ安全にプログラムするためのサポートはほとん
はじめに 最近、GoのNamed return valueに関する話題を見かけたり、コードレビューでNamed return valueについて説明をすることがありました。 せっかくなので、Named return valueのメリデメを自分の主観でまとめます。 Named return value Goでは、関数の戻り値に名前をつけて変数として利用することができます。 この仕組みをNamed return valueといいます。 メリット 変数名から、戻り値が何かわかる 関数の戻り値に名前をつけると、変数名から何の値かわかるようになります。 関数名や型から戻り値が何か明らかでないときに役立ちます。 具体例を示すために、Effective Goのサンプルコードを引用します。 nextInt関数はint型の変数を2つ返します。 しかし、nextIntという名前から何の値が返されるかはわかりま
どうも、Go信者のgureguです。今年初めて論理プログラミングをやってみて世界が変わりました。Go言語で論理プログラミングが出来るライブラリを紹介しようと思います。 ぼくのかんがえたさいきょのくみあわせ 課題: Go言語で書かれたソフトを拡張機能のようにカスタマイズしたい Go言語の特徴としては 制止的 コンパイル式 手続き型 標準ライブラリが優れている プラグインと言った拡張機能みたいな書き方は基本的に出来ない Prologの特徴は 動的 インタプリタ式 論理プログラミング 標準ライブラリ(ISO述語)は最低限の機能しかない プラグインとかスクリプトとしての使い方は簡単に出来る この正反対の言語2つを組み合わせたら最強になります。それぞれのメリデメをカバーが出来ます。 ichiban/prolog ichiban/prologはYutaka IchibangaseさんによるGoで実装さ
There are numerous blog posts about table-driven tests in Go. In this blog post, I want to show a technique we have recently started using in our unit tests. I saw it the first time when my friend Matt Layher introduced it to me at work, and since then, I gradually started using it in places where it's suitable. This technique comes especially handy for large structs with multiple nested fields. F
Documents The Style Guide outlines the foundation of Go style at Google. This document is definitive and is used as the basis for the recommendations in Style Decisions and Best Practices. Style Decisions is a more verbose document that summarizes decisions on specific style points and discusses the reasoning behind the decisions where appropriate. These decisions may occasionally change based on
この章のすべてのコードはここにあります 一部の企業は、インタビュープロセスの一環として、ローマ数字のカタを実行するように求めます。この章では、TDDでこれに取り組む方法を示します。 アラビア数字(数字0〜9)をローマ数字に変換する関数を記述します。 ローマ数字について聞いたことがない場合は、ローマ人が数字を書き留めた方法です。 あなたはシンボルを一緒に貼り付けることによってそれらを構築し、それらのシンボルは数字を表します つまりIは「1」です。IIIは「3」です。 簡単に見えますが、いくつか興味深いルールがあります。 Vは「5」を意味しますが、IVは「4」です( IIIIではありません)。 MCMLXXXIVは「1984」です。それは複雑に見え、これを最初から理解するためのコードをどのように書くことができるか想像することは困難です。 この本で強調しているように、ソフトウェア開発者にとって重
Lorca+SvelteKitでやってみる! https://github.com/zserge/lorca https://github.com/sveltejs/kit あらかじめ必要なもの go(version 1.17.2以降) nodejs(16.9.0以降),npm(7.21.1以降) Chrome/Chromium/Edgeのいずれか プロジェクトの開始 mkdir sample-gui cd sample-gui go mod init sample-gui npm init svelte@next frontend // Choice "Svelte app template" is "Skelton Project". // Choice "Use TypeScript" is No. // Choice "ESLint" is No. // Choice "Prett
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く