Most of Slack runs on a monolithic service simply called “The Webapp”. It’s big – hundreds of developers create hundreds of changes every week. Deploying at this scale is a unique challenge. When people talk about continuous deployment, they’re often thinking about deploying to systems as soon as changes are ready. They talk about microservices and 2-pizza teams (~8 people). But what does continuo
Version 1.1.0 # Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Added - v1.1 Brazilian Portuguese translation. - v1.1 German Translation - v1.1 Spanish translation. - v1.1 Italian
PackerBuild and manage images as code
ひとつのソフトウェアコンポーネントが多くの開発者によって変更されると、品質に悪い影響を与えると経験的に感じている。設計に一貫性が失われることや、知識の浅い状態で変更することによるバグ混入の可能性が高まるからだ。 2011年9月に公開されたマイクロソフト社の調査結果、"Don’t Touch My Code! Examining the Effects of Ownership on Software Quality" は、この「コードのオーナーシップはソフトウェアの品質を左右する」という経験則を裏付けるものだった。全体のコミット数のうち5%未満の貢献にとどまる開発者が多いコンポーネントは、リリース前後における故障が増加するというものだ。 本稿では、このマイクロソフトによる調査結果を紹介し、それを踏まえた上で、ソフトウェアプロダクトの品質悪化を抑えるための組織やプロセス、アーキテクチャについ
こんにちは。ZOZOテクノロジーズ開発部の田島です。 今時のシステム開発ではさまざまなツールを利用することが当たり前になっています。 そして各種ツールは日々新しいものが開発され、今まで当たり前だったものがレガシーなツールと呼ばれることも珍しくありません。 弊社では、GitHubやCircleCI・Slackなど様々なツールを利用しています。 私達のチームでもこれらのツールを利用していますが、それ以外にもGitBucketやJenkins・Redmineを独自で管理し利用していました。 今回ある理由からそれらのツールをSaaSへ移行しました。その経緯と移行手順を紹介します。 概要 開発支援サーバの紹介 利用しているGitBucket・Jenkins・Redmineは開発支援サーバと呼ばれる一台のEC2インスタンスの上で動作していました。 やったこと これらのツールを以下の図のように、「Git
今年の初めからアメリカに引っ越したので社内の人とのやり取りをどうするかという悩みに現実的に直面し、この1年で色々試したのでセーブポイントとしてまとめておくことにした。(ブログの記事を書かなさすぎてはてな記法忘れつつある...) チームとミーティングの距離感 8人くらいの会社。誰もがSPOFで、何かに詳しい人間はだいたい一人に絞られる*1。会社として重要な箇所に一人だと心許ないというより、誰も休めなくなってしまうので概ねわかるだろうという他者を含めるか、共有するなりで冗長化して、2人以上がひとつの何かに取り組んでいる形を組織中に点在させている。 その2人の間や異なる担当間でそれぞれミーティングの時間を取っておきたいが、大仰に週例、月例、毎朝のスタンドアップみたいなミーティングをそっくり入れ込むにはちょっと負荷が大きいので何か工夫が必要だ。 勤務地は強制していない。オフィスはあるけれど必要にな
Paul Hammant's Blog: Google's Scaled Trunk-Based Development Update: See the new resource site for Trunk-Based Development called, err, TrunkBasedDevelopment.com and make sure to tell your colleagues about it and this high-throughput branching model. Google’s Published talks/info My knowledge about how Google developed software ended in 2009. They have talked publicly a number of times on the topi
Paul Hammant's Blog: Google's vs Facebook's Trunk-Based Development Update: See the new resource site for Trunk-Based Development called, err, TrunkBasedDevelopment.com and make sure to tell your colleagues about it and this high-throughput branching model. I’ve been pushing this branching model for something like 14 years now. It’s nice to see Facebook say a little more about their Trunk-Based De
agで特定の拡張子のファイルだけに対して再帰的に検索したいなと思っていたけどやり方がわからなかった。*.txtは可能だけど再帰的に検索してくれないし、**/*.txtは受け付けてくれないし……。Twitterでボヤいたら「ag -Gとかあるんだ」とかエアーを見たので調べてみたらまさにこれだった。 -Gオプションでは正規表現を使ってファイル名を指定する。 $ ag foo -G \.txt$ これで.txtで終わるファイルからのみ再帰的に検索できる。よく使うファイル名のパターンを指定済みのエイリアスをいくつか作っておくと良さそう。
Asciinemaの使い方、使われ方、使い勝手について。 使い方 Asciinemaという、端末上の操作を録画するツールとそのホスティングサービスがある。 「Record and share your terminal sessions, the right way」とのこと。 ざっくり言うとTerminal版Gifzoみたいなもので、こういう感じで利用できる。 # install sudo easy_install pip sudo pip install asciinema # usage - 新しいsessionが立ち上がり、exitするまで記録される asciinema rec 使われ方 例えば、AsciinemaはDockerのTutorialで使われている(またDockerか)。 Dockerは自分にとって新しい概念を導入するものだったので、 入力と出力の様子を見ながら外側から
mixiは新人研修用のトレーニングをgithubに公開しています。 公開していることは知っていたけれど、いざみてみると… とってもわかりやすく実践的!!! 普通に参考書で勉強するよりも企業が公開しているものだから、より実践的という感じもします。 自分はこのAndroidTrainingをやっているのですが、最後に課題もあり、到達度や理解度もすごく把握できていい感じです。 READMEもかなり充実しており、一通りを学べるように工夫されています。 mixiに入社した方がこれを一通りやったと思うと、大変な印象ですが…だからこそやったときに達成感がありそうです。 開発環境の構築から書かれているので、ほとんどつまづくことはありません。 かなり詳しくわかりやすく書かれている印象を受けました。 ちょっと初めて学習するには、難しい箇所もありますが適宜ぐぐって補えばよいでしょう。 ・AndroidTrain
昨今、プロジェクトごとに言語のバージョンや、各種設定、ライブラリを使い分けることが当たり前となってきている。 上記のような使い分けは、Visual Studio/Eclipse/Xcodeなど、IDEにひもづいたプロジェクトファイルがある環境では当たり前だった概念ではある。プロジェクトディレクトリトップに.xxxconfig的なファイルを置くという手法がデファクトスタンダードとなったことによって、コマンドライナー(ライフライナー的)たちの間でもそういった文化が広がりつつあると捉えている。 プログラミング言語について、Rubyのrvm/rbenvのように、複数のバージョンの実行系を気軽に切り替えられるようになってきている。また、Rubyのrvmでは.rvmrc、rbenvでは.rbenv-versionというファイル名で設定を記述していたものを、両者とも.ruby-versionというファイ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く