並び順

ブックマーク数

期間指定

  • から
  • まで

281 - 320 件 / 4976件

新着順 人気順

commitの検索結果281 - 320 件 / 4976件

  • 【フロントエンド】プロジェクト初期に手を抜かないで - Qiita

    はじめに みなさんは新規サービスを立ち上げたことがありますか? 技術選定から環境構築、諸々の初期設定。大変なことが多いですよね。 僕はこの4年で、新規サービスを3つ、新規の管理画面系を1つ立ち上げたのですが、このプロジェクトの初動で毎回のように後悔をしてます。 特に、フロントエンド領域というのはJavaScriptという自由な言語の特色を色濃く反映しているのか、非常に自由度が高く、どのようにも書けてしまいます。 そんな僕からのアドバイス。 プロジェクトの初期は最大限頑張ること。 最低限ではなく、最大限を心がけるといいと思います。 今回は、理由とともにどんなことを気をつければいいのかという話ができればと思います。 新規サービスの環境構築は最大限頑張った方がいい理由 1. 人は増える。あなたと他の人を一緒にしてはいけない。 環境構築をするのは1人でも必ずあなたではない誰かがプロジェクトにアサイ

      【フロントエンド】プロジェクト初期に手を抜かないで - Qiita
    • git操作はGUIツール派な自分もCUIに乗り換えた便利git拡張まとめ - Qiita

      はじめに 自分は「楽でわかりやすい」という理由から、git操作にはGUIツールのSourcetreeを使用していました。 ただ、GUIツールを使えない状況などではCUIに直接gitコマンドを入力するわけで、GUIツールの恩恵を得られないことも多々ありました。 そこでいっそのこと、GUIツールを真似てgitコマンドを拡張し、CUIに乗り換えることにしました。 本記事は、その際に作成した拡張のまとめになります。 目次(〇〇したいところ) 拡張を作成するにあたって、GUIツールと同じように「gitコマンドでも〇〇したい!」と思ったところをピックアップしました。 このピックアップ項目をもとに、gitコマンドを拡張していきます。 (なので、この項目が本記事の目次でもあります) 〇〇したいところ 1. branch一覧から選んでcheckoutしたい 2. 差分の内容をもっと見やすくしたい 3. 差分

        git操作はGUIツール派な自分もCUIに乗り換えた便利git拡張まとめ - Qiita
      • git-sim: Visually simulate Git operations in your own repos

        Coding Essentials Guidebook for Developers This book covers core coding concepts and tools. It contains chapters on computer architecture, the Internet, Command Line, HTML, CSS, JavaScript, Python, Java, SQL, Git, and more. Learn more! Decoding Git Guidebook for Developers This book dives into the initial commit of Git's C code in detail to help developers learn what makes Git tick. If you're curi

          git-sim: Visually simulate Git operations in your own repos
        • Delta Lake とは何か - connecting the dots

          はじめに 環境情報 Delta Lake (デルタレイク) とは Delta Lake の実体 Delta Lake の構造 Parquet と Delta の相違点 Parquetとは何か Parquetの構造 Parquet と Delta の違い Delta Lake が生まれた経緯: データレイクと Delta Lake の違い データレイクのメリット データレイクの課題 *Parquetで構築した場合 Delta Lake の特徴 ACIDトランザクションの担保 スケーラブルなメタデータ管理 バッチとストリーミングワークロードの統合 タイムトラベル (バージョン管理) CONSTRAINT句のサポート DML (データ操作言語) のフルサポート UPDATE DELETE MERGE 柔軟なスキーマ管理 1. スキーマ エンフォースメント 2. スキーマ エボリューション ストレ

            Delta Lake とは何か - connecting the dots
          • Slim Framework と Docker を使って本格的にアプリを作ってみよう|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

            Slim Framework と Docker を使って本格的にアプリを作ってみよう はじめに Web アプリケーションの開発をするにあたっては勉強しなければならないことは多く、どう勉強すれば良いかはなかなか難しい問題です。初心者向けの解説は比較的たくさんあるのでとりあえずやってみるくらいは何とかなるものの、実戦的な開発がどうなっているかという総合的な話は実務を経験しないとわからないことが多いことでしょう。 ということで、本記事では最近流行の Docker と、そこそこ名前は見かける PHP のマイクロフレームワークの Slim Framework を使って実戦的な Web アプリの開発をしてみる(開発環境を作ってみる)こととします。実装的には、ドメイン実装としてユーザー登録、ログイン、ユーザー情報取得の3つのAPIを実装するところまでを取り扱います。また、静的解析を最大限活用してユニット

              Slim Framework と Docker を使って本格的にアプリを作ってみよう|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
            • Linus Torvalds氏、Gitのマージに関し「マージについて説明できないのならやらないほうがいい」ゴミだからとアドバイス | ソフトアンテナ

              ホームソフトウェアLinus Torvalds氏、Gitのマージに関し「マージについて説明できないのならやらないほうがいい」ゴミだからとアドバイス Linus Torvalds氏、Gitのマージに関し「マージについて説明できないのならやらないほうがいい」ゴミだからとアドバイス 2023 2/22 LinuxおよびGitを開発したLinus Torvalds氏が、Gitのマージに関して直々にアドバイスしていた事がわかり、注目を集めています(Phoronix)。 Linus Torvalds氏のGitマージに関する実践的なアドバイスは「もしマージのことを説明できないのなら、やらないことだ。これは本当に簡単なことです。マージの理由を説明しないままマージすることは絶対に許されない」というものです。 Linus氏はマージに対するコメントが十分に含まれていないプルリクエストを発見し、我慢の限界を突破し

                Linus Torvalds氏、Gitのマージに関し「マージについて説明できないのならやらないほうがいい」ゴミだからとアドバイス | ソフトアンテナ
              • git commit --fixupを使いましょう - Don't Repeat Yourself

                発端 Pull Request で force push されると差分がわからなくなるから困るんだけどみんなどうしてますか?— codehex.bsky(へっくす) (@codehex) 2024年2月25日 ポストの前提がちょっとわかりませんが、レビュー後にforce pushされると、どこに修正を入れたのかわからないケースだと仮定します。プルリクエストがまだドラフト状態でのforce pushやrebaseで困るケースはそんなにないと思うからです。 git commit --fixup このケースではgit commit --fixupが便利です。レビューで指摘が入ったコミットに対して--fixupをかけておき、レビュワーはfixupコミットの内容を確認します。レビュワーが確認してOKが出た段階で、git rebase -i --autosquashなどを使ってfixupコミットを元コ

                  git commit --fixupを使いましょう - Don't Repeat Yourself
                • ライセンスをつけないとどうなるの? - Qiita

                  GitHub上でプログラムを公開するとき、 どのライセンスを使えばいいのかわからない どうやってライセンスを設定すればいいのかわからない ライセンスというもの自体が難しそうでよくわからない などの理由で、ライセンスを設定しないままになっていることはないでしょうか? この記事では、個人の開発者によるプログラムにライセンスが設定されていなかった場合にどのようなことが起きるのか、という観点からスタートして、ライセンスについての理解を深めていこうと思います。1 注意1: この記事の執筆者は法律に関する専門家ではありません。法律やライセンスに関する言及や解釈は不正確である可能性があります。実際の問題に対しては専門家による助言を受けてください。 注意2: この記事の内容は執筆者個人の見解であり、所属企業・部門の見解を代表するものではありません。 ライセンスがないということ プログラムのソースコードは、

                    ライセンスをつけないとどうなるの? - Qiita
                  • 機械学習のための環境構築とその管理 - nykergoto’s blog

                    機械学習プロジェクトでは python を始めとした言語 + それに付随したライブラリを使います。 僕も python 触りたての頃はローカルマシン上にひとつ python 環境を作り、必要なライブラリをインストールして使っていました。環境の分離ということはあまり意識しておらず、やったとしてもプロジェクトごとに anaconda や pyenv, venv などで個別環境を作って切り分けるレベルでした。 しかし上記の方法だと困ったことが起ることがあります。例えば… global な環境が壊れてしまってすべて壊れる。 これは各環境が global な環境に依存しているために起こります。 python 以外の変更で環境は突如として壊れます。例えば brew install hoge したら Mecab が使えなくなっちゃったとかはあるあるだと思います >_< linux / Mac / Win

                      機械学習のための環境構築とその管理 - nykergoto’s blog
                    • Mirrativ のバックエンドで使っているGoライブラリを紹介する! - Mirrativ Tech Blog

                      こんにちは、バックエンドエンジニアの夏(なつ)です。今回はMirrativのバックエンドで使っているライブラリをご紹介します。 これらの記事のバックエンド版になります!(2年越し) tech.mirrativ.stream tech.mirrativ.stream ライブラリ一覧 https://pkg.go.dev/ オリジナルの The Go gopher(Gopherくん) は Renée French によるデザイン cloud.google.com/go/bigquery 分析チームが生成したユーザの特徴量などがBigQuery上に存在しているため、それらをバッチ処理でMySQL上に取得する際に利用しています。 tech.mirrativ.stream cloud.google.com/go/compute/metadata 開発環境などでしか動いてほしくない処理が本番環境上で動

                        Mirrativ のバックエンドで使っているGoライブラリを紹介する! - Mirrativ Tech Blog
                      • ECS インフラの変遷 - クックパッド開発者ブログ

                        技術部 SRE グループの鈴木 (id:eagletmt) です。 クックパッドでは Amazon ECS をオーケストレータとして Docker を利用しています。Docker 自体は2014年末から本番環境にも導入を始めていましたが当時はまだ ECS が GA になっておらず、別のしくみを作って運用していました。2015年4月に GA となった ECS の検討と準備を始め、2016年より本格導入へと至りました。クックパッドでは当初から Hako というツールを用いて ECS を利用しており、Hako の最初のコミットは2015年9月でした。 https://github.com/eagletmt/hako/commit/7f95497505ef78491f3f68e9d648204c7c9bb5e2 当時は ECS に機能が足りずに自前で工夫していた部分も多かったのですが、ECS やそ

                          ECS インフラの変遷 - クックパッド開発者ブログ
                        • Flutter前史: ChromeがFlutterになるまで

                          先日、とても面白い動画がYouTubeにアップされていました: スライド: Flutterがどのように現在の形になったのか、Flutterと名前が付く前の歴史を、当時のFlutterの開発者であるEric Seidel氏とAdam Barth氏が振り返った動画です。 これがとても面白く、前史を理解することで、Flutterが実はどのような位置づけにいるのか、Flutterが何であって何でないのか、よくわかる内容だったため記事にまとめたいと思います。 (筆者は英語がそこまで得意ではありません。解釈違いなどあればコメントで教えてください。また、分かりやすさのために沢山省略しています。ぜひ元動画も併せてみてください。) 全ての始まり: WebKitからBlinkがフォークされた 2013年4月3日、GoogleはChrome/Chromiumに使用するブラウザエンジンを、WebKitからフォーク

                            Flutter前史: ChromeがFlutterになるまで
                          • とほほのDocker入門 - とほほのWWW入門

                             とほほのDocker入門 トップ > Docker Docker Dockerとは インストール チュートリアル Dockerコマンド docker run/create docker ps/stats docker rm/start/stop... docker exec/attach docker cp/rename/update docker logs/port/top docker pull/push/search/login/logout docker images/rmi/history/commit/tag/build/trust docker volume docker network docker export/import/save/load Dockerfileによるビルド Docker Compose Podman 小技・ノウハウ集 Copyright (C)

                            • 完全にクラウドで完結する無料の Web 開発環境 2020 年春 - Qiita

                              目的 2020 年春時点での、ぼくのかんがえたさいきょうのうぇぶかいはつかんきょうを作ります。完全にクラウドで完結する Web 開発環境を無料で構築します。ここで言う「完全にクラウドで完結する」とは、環境をセットアップしてコードを書き、テストをして本番環境にデプロイするまでの全てをブラウザだけで完結することを指します。ローカルのコマンドラインツールやローカルで動く IDE などは一切使わないというのがポイントです。 つまり、Windows、Linux、Mac など OS の依存がないだけでなく、ブラウザが動く環境さえあれば良いので、iPad や Android タブレット、果てはネカフェの PC でもそのままに適用することが出来ます。また全ての環境がクラウド側にあるという事は、作業中の状態なども全てクラウド側にあるという事です。これはスタバでドヤるどころではない究極のノマド環境です。ネット

                                完全にクラウドで完結する無料の Web 開発環境 2020 年春 - Qiita
                              • Gitに慣れていない人がよくハマるパターンと対処法まとめ - Qiita

                                こんにちは、フロントエンドエンジニアのてりーです。 僕の詳しいプロフィールはこちら はじめに Gitって難しいですよね。本当に! プログラミング歴1年弱の自分がチーム開発に加わる様になってに一番不安なのはGitの扱いです。 ミスにビクビクしながら、日々を過ごしています。 そんな僕が、初学者向けに現場でうま〜く立ち回れる様に、Gitに慣れていない人がよくハマるパターンと対処法をまとめました。参考になれば幸いです。 作業ブランチ間違えて作業しちゃった!!パターン これは僕が一番やっちゃうやつです! 作業している途中や、git statusしている辺りでブランチを間違えていた事に気がつきます! 対処法 1 git stash -u 一旦、作業していた分を退避する 2 git switch 正しいブランチ名 正しいブランチに切り替える 3 git stash pop 退避していた分を正しいブランチ

                                  Gitに慣れていない人がよくハマるパターンと対処法まとめ - Qiita
                                • Terraformのリファクタリング始めました - VisasQ Dev Blog

                                  こんにちは、プラットフォーム開発グループ SREチームの西川 (@taxin_tt) です。 皆さんTerraform使ってますか? 弊社では既存サービスのマイクロサービス化を進めており、GCPベースのインフラはTerraformを利用して整備するようにしています。 一方で、サービス数の増加などに比例してtfファイルのコード量も増えていき、ディレクトリ構成や個別のリソースの定義などマイクロサービスのインフラ整備において負担になる部分があり、昨年末からSREチーム主導でリファクタリングを行っています。 今回は、そのリファクタリングの背景や進め方についてお話しできればと思います。 (本記事は、Terraform v1.3系を前提にしています。) リファクタリング後のTerraformのディレクトリ構成は下記をベースにしているので、下記の記事も合わせてどうぞ。 tech.visasq.com リ

                                    Terraformのリファクタリング始めました - VisasQ Dev Blog
                                  • Reactの状態を理解して適切にHooksを利用する

                                    Reactと状態は切っても切れない関係です。なぜなら、Reactは状態に基づいて画面を更新するコンポーネントベースのUIライブラリだからです🤝🏻 そんなReactの状態を管理・操作しやすくしてくれているのが、React 16.8から登場したフックです。それゆえ、フックを正しく利用するにあたってReactの状態の理解は非常に重要であり、Reactの状態の理解があやふやだと、予期せぬ挙動やバグのもとになりかねません。 今回の記事では、Reactの状態を理解しながら適切な箇所で適切なHooksを選択していくプロセスを再確認できた!自信を持ってReactをコントロールできるようになりそう!と言えることをゴールとしています🎉 今回使用した即席匿名メモアプリのコードベースです。 サークルでは、コミットに沿って説明をしていきました。(あくまで即席なので細かいこと気にしながら作ってませんorz) 【

                                      Reactの状態を理解して適切にHooksを利用する
                                    • OpenAI APIで英会話LINE Botを作る with Hono + Cloudflare Workers + Queues + D1 - $shibayu36->blog;

                                      Cloudflare Worker + D1 + Hono + OpenAIでLINE Botを作るを見て、Cloudflare Workersに興味を持った。そこでLINEで英会話や添削ができるbotを作ってみた。 作ったもの こんな形で英会話をしたり、英作文テーマを作ってくれたり、添削をしてくれたりする。 実際のコードは https://github.com/shibayu36/english-line-bot 。このコードをforkしてもらって、LINEチャネルの作成、Cloudflareへのデプロイ、src/prompt.tsのカスタマイズをすると、自分用のLINE botも作れると思う。 利用技術 OpenAI API Hono Cloudflare Workers Cloudflare Queues Cloudflare D1 開発Tips 基本的な作り方は Cloudflar

                                        OpenAI APIで英会話LINE Botを作る with Hono + Cloudflare Workers + Queues + D1 - $shibayu36->blog;
                                      • “Tao of Node - Design, Architecture & Best Practices” 日本語翻訳

                                        私が働いているAniqueという会社では、1年前に全てのソフトウェアでTypescriptを採用することにしました。私たちが開発している進撃の巨人のNFTサービス “Attack on Titan: Legacy” でも採用しています。 TypescriptではNestJSという素晴らしいAPIフレームワークを利用することができ、生産性高く開発を続けることができます。また、私たちはフロントエンドでNext.jsを利用しています。言語レベルでのコンテキストスイッチを抑えることで、一人のエンジニアがフロントエンドとバックエンドのどちらもの機能を開発する環境が作れました。 しかし、Nodeならではの作法や設計について、Web上にはたくさんの情報があるものの、あまりにも情報が多すぎて、まとまったプラクティスになかなか出会うことができませんでした。そのため、最初はチーム内での共通認識を作るのに苦労し

                                          “Tao of Node - Design, Architecture & Best Practices” 日本語翻訳
                                        • Four Keysを用いた改善活動のアンチパターンと、本質的な改善のために必要な「なぜ?」 - Agile Journey

                                          Agile Journeyをご覧のみなさん、はじめまして。株式会社リンクアンドモチベーションの川津(@KawatsuYusuke)です。こちらの記事では主に私たちがFour Keys メトリクスを元に、開発生産性向上を目指した活動に関する話題についてお伝えします。 と言っても、『LeanとDevOpsの科学』をはじめ、Four Keysの運用に関するトピックはすでに多く語られています。また、Four Keysは便利なメトリクスであるがゆえに、ときに「Four Keysを改善する」という手段が目的化してしまうことがあります。本稿では主にこれから開発生産性向上に取り組もうとしている方に向けて、私たちの取り組みと、体験したアンチパターンをもとに、「Four Keys改善の取り組みには "なぜ?" が大事」についてお伝えします。 私たちの開発生産性向上のはじまりと、目指すべき状態の設定 Four

                                            Four Keysを用いた改善活動のアンチパターンと、本質的な改善のために必要な「なぜ?」 - Agile Journey
                                          • npmとyarnの脆弱性とpostinstall - Cybozu Inside Out | サイボウズエンジニアのブログ

                                            フロントエンドエキスパートチームの小林(@koba04)です。 先日、npmから脆弱性についての発表がありました。 調べていく中でいくつか思うところがあったので解説も兼ねて書いていきたいと思います。 The npm Blog — Binary Planting with the npm CLI npmの利用者としてやるべきことは、 npmのバージョンを6.13.4以上にあげる yarnのバージョンを1.21.1以上にあげる です。 npmのバージョンが6.13.4になったNodeもv8, v10, v12, v13系でそれぞれリリースされたので、そちらを利用することも可能です (yarnのバージョンは別途あげる必要があります)。 nodejs.org npmによる発表では、今回発表された脆弱性は2件あるため、それぞれ個別に考えます。 binに任意のパスを指定出来る件 npmパッケージはpa

                                              npmとyarnの脆弱性とpostinstall - Cybozu Inside Out | サイボウズエンジニアのブログ
                                            • 「開発環境の使用状況分かるくん」を作って冗長コミュニケーションを無くした話 - 生涯未熟

                                              本記事は ミクシィグループ Advent Calendar 2021 の22日目の記事です。 前置き 私が現在所属しているプロジェクトでは「アプリケーション × 4 + 開発環境 × 3」という環境で開発しており、機能開発後のQA作業などのため常に3つある開発環境がどこかしら使われているという状況でした。 (ちなみに Fansta(ファンスタ) というプロジェクトですので、興味のある方は @syossan27 までご連絡を!) そのため開発環境の使用状況をtrelloを使い管理していましたが、新しく開発環境へデプロイする際にはSlackでデプロイしても大丈夫か尋ねる、という流れが定常化しておりました。 このままでも良いのですが、ここはエンジニアとしてこのような冗長コミュニケーションを無くすために技術を使おうじゃないかと思い立ち、カッとなって掲題の「開発環境の使用状況分かるくん」を作成し始め

                                                「開発環境の使用状況分かるくん」を作って冗長コミュニケーションを無くした話 - 生涯未熟
                                              • APIクライアント「Insomnia」で始める、チーム開発効率化 - JX通信社エンジニアブログ

                                                JX通信社の CTO の小笠原(@yamitzky)です。本日は、最近社内で検証している API クライアントの「Insomnia」や、Insomnia を活用したチームでの API 開発の効率化についてご紹介します。 Insomnia とは Insomnia は、オープンソースの API クライアントです。API 通信を GUI で直感的に検証・保存できる、というのが最も基本的な機能です。似たようなツールだと Postman などが有名だと思います。 insomnia.rest Insomnia は一般的な REST API だけでなく、GraphQL や gRPC の API にも対応したツールです。JX通信社では、NewsDigest や FASTALERT などのサービスで GraphQL を活用しているため、GraphQL にネイティブ対応しているのは非常に便利です。 Insom

                                                  APIクライアント「Insomnia」で始める、チーム開発効率化 - JX通信社エンジニアブログ
                                                • エンジニア採用でやってはいけないこと/やっていること|rapmaster1218

                                                  エンジニア採用自体は2012年頃からやっていて2013年は自チームの採用責任者をやったらスタートアップ2社でエンジニア採用の責任者をやってきました。 色々と面談をやってきて1つわかったことは面談もスキルでエンジニアとして優秀でも面談が得意とは限らないことです。 なので、面談も数をこなしてその分、振り返りをすればスキルとして身につくものだと考えています。 長年採用周りをやってきた中で見えてきたやってはいけないこととやっていることをまとめました。 やってはいけないこと人がいないからといって妥協して採用する 私も採用をやり始めた当初は結構、これをやってしまっていました。 目の前にプロジェクトがあって人がいない状況だと焦ってしまいこの人と働きたいなと思えてなくても妥協して採用してしまうことをやってしまいました。 結果、良いチームの中に1人だけ能力が追いついてない人材が入りチームが崩壊するという事が

                                                    エンジニア採用でやってはいけないこと/やっていること|rapmaster1218
                                                  • 個人運用k8sクラスタの構成要素の技術選定 - でこてっくろぐ ねお

                                                    これは、k8sクラスタを個人で運用する際に行った構成要素の技術選定の記録である。 技術選定の理由を書くのも見るのも楽しい、という心情のもとにここに公開する。 前提知識 以前、こんなエントリを書いた。 bitcoinのfull nodeをAWSでなるべく安く運用してみる - でこてっくろぐ ねお 上記の通り、個人でbitcoinのfull nodeという、状態をバリバリもつサービスを、AWSでのコスト面で最安を狙って作り運用を行っていた。 しかしその後、Oracle Cloudで運用したほうが安くなることに気づいたため引っ越した。 Oracle CloudではARMのVMが4台無料で使えて複数台構成が組め、AWSやGCP同様k8sのマネージドサービスもあり、また仕事でk8sを扱う部署に異動したのもあり、勉強のためk8sクラスタ上で運用することにした。 構成要素 以下の構成要素を選択している。

                                                      個人運用k8sクラスタの構成要素の技術選定 - でこてっくろぐ ねお
                                                    • Your API Shouldn't Redirect HTTP to HTTPS

                                                      TL;DR: Instead of redirecting API calls from HTTP to HTTPS, make the failure visible. Either disable the HTTP interface altogether, or return a clear HTTP error response and revoke API keys sent over the unencrypted connection. Unfortunately, many well-known API providers don't currently do so. Updated 2024-05-24: Added the Google Bug Hunter Team response to the report that the VirusTotal API resp

                                                        Your API Shouldn't Redirect HTTP to HTTPS
                                                      • Dockerでサクッと使い捨ての開発環境を用意する | DevelopersIO

                                                        もこです。 「各種アプリケーションのバージョン管理が面倒」 「Dockerfileにするほどでもないけどコンテナの中で実行したい」 などなど、作業マシンを汚したくないときなど結構あると思います。 Dockerfileなどでアプリケーションのみを入れたコンテナとは違う使い方をした、「作業用コンテナ」を作ってみました。 ベースのコンテナを作る まずは最新のUbuntuのコンテナの中に入ります docker run --name="dev_container" -it ubuntu:latest コンテナに入ったらパッケージを更新し、開発環境などに必要なパッケージ類をインストールしていきます。 apt update -y apt install curl vim git net-tools build-essential -y # などなど、必要なパッケージを入れていきます 今回はNode.js

                                                          Dockerでサクッと使い捨ての開発環境を用意する | DevelopersIO
                                                        • Gitのコミットログに詳細を書く習慣をつけている - freee Developers Hub

                                                          おはこんばんちは、SREの橋本です。この記事は、freee Developers Advent Calendar 2021の16日め記事となります。 わたしがソフトウェアエンジニアとして仕事をするうえで、コミットログを詳細に記述する習慣づけがあり、この機会にその具体例をあえて共有してみます*1。以降はとくに明示しない限り、組織全体でルールがあるわけではなく、あくまでわたしの一個人の意見である点に注意してください。 モチベーション freeeでは、Webサービスからインフラ基盤およびその監視設定を含めてコードで管理されており、GitHub上でのPull Requestでのレビューを必須としています。わたし自身は社内の立候補制異動制度*2によってWeb開発の現場とSREを行き来してきましたが、どちらもリファクタリングのためにゼロベースでコードを書き直すこともあれば、機能追加やバグフィックスのた

                                                            Gitのコミットログに詳細を書く習慣をつけている - freee Developers Hub
                                                          • こんなに辛いことになるから、最初にがんばろう / 辛い開発状況をどうにかするためにやった13のこと

                                                            こんにちは!sugitaniと申します。 これまで有名芸能人と通話ができる(かもしれない)ライブ配信アプリとか、オリジナルマンガの配信サービスとか、コメントが横に流れるライブ配信システムとかを作ってきました。(SUGARは今も作業してます) 最近ご縁がありましてUUUMの子会社で、簡単に有料フォロワー向けの投稿が行えるFOLLOW MEを主に開発していて、NFTでデジタルトレーディングカード(※)を売り買いすることができるHABETをIndieSquare社さんと協業で運営しているNUNW株式会社(5月にFOROから社名変更)に入社し半年くらい経っています。最近CTOに任命していただきました! ※NFTについては思うことがある開発者の皆様が多いと思っていますが、自分がどう思っているかは後述します 少し前に「スタートアップがまともなわけ無いから入るな」というインタビュー記事を書いて頂いたんで

                                                              こんなに辛いことになるから、最初にがんばろう / 辛い開発状況をどうにかするためにやった13のこと
                                                            • Facebookが障害で止まった日、プログラマはいつもより多くのプルリクエストをマージした。解析ツール企業が明らかに

                                                              Facebookが障害で止まった日、プログラマはいつもより多くのプルリクエストをマージした。解析ツール企業が明らかに Haystack社はGitHubのリポジトリを監視し、プルリクエストやマージなどをメトリクス化して分析することでプログラマの生産性やボトルネックなどを計測するサービスを提供しています。 同社は、Facebookが障害によって停止した日はいつもよりプルリクエストのマージが増加したと、ブログ「Facebook Outage Increased Developer Throughput by 32%」(Facebookの障害によりデベロッパーのスループットが32%増加した)で紹介しています。 Facebook Outage Increased Developer Throughput by 32%: https://t.co/GBlNpjpMx1 — Haystack (@use

                                                                Facebookが障害で止まった日、プログラマはいつもより多くのプルリクエストをマージした。解析ツール企業が明らかに
                                                              • Go公式のlinter、Golintが非推奨になった

                                                                Goが公式で出していたGolintがdeprecated/frozenしました。 メンテがされていない 2018年から実質的な変更が加わってない Issueも放置されているものが多い golang orgに存在するlinterなのでGoが公式として推奨しているlinterに見える Go が実際には保守されていないプログラムを公式として推奨しているように見えてしまう 開発者は合理的に異なるスタイルを採用したい場合がある Golint単体で特定の警告を無視したりするなどの機能を持っていない ということからattractive nuisance(魅力的な迷惑者)になっているというProposalでした。 Issueの議論を見てもdeprecate/frozenすることに対して否定的な意見は少なく、一年ほど前にapproveされました。(なので「非推奨にしよう」なったの自体は少し前の話です) そし

                                                                  Go公式のlinter、Golintが非推奨になった
                                                                • grepでは困難な、特定文字列の存在行から別の文字列が存在する行までの抽出 (Perlのflip-flop演算子の使い方) - 理系学生日記

                                                                  特定の文字列がある行から、別の特定の文字列がある行までを抽出したいということがよくあります。 これgrep等を使うと苦労する話なんですが、flip-flop演算子を使ったPerlのone-linerで可能です。 例えば昨日の記事ではgit help commitの中から--no-edit/オプションの説明を抽出しました。 これは--no-editという文字列が出てくるところから空行までを抽出すれば良い。これは以下のようにすれば可能です。 $ git help commit | perl -nle 'print if /--no-edit/ ... /^\s*$/' 解説自体に空行が混じるケースでは以下のようにすれば良いでしょう。 この例では、--cleanupという文字列が出現してから、次のオプション(-文字列形式)が出るまでを抽出しています。 $ git help commit | pe

                                                                    grepでは困難な、特定文字列の存在行から別の文字列が存在する行までの抽出 (Perlのflip-flop演算子の使い方) - 理系学生日記
                                                                  • GitHubのリリースノート自動生成機能からCHANGELOG.mdを生成する | おそらくはそれさえも平凡な日々

                                                                    tl;dr GitHubのリリースノート自動生成のAPIを用いてkeep a changelog形式のCHANGELOG.mdを出力するツールを作った https://github.com/Songmu/gh2changelog gh2changelog -all -unreleased とかで出力 細かいオプションはヘルプ等を参照のこと ghchに引数体系は近いです 本題 GitHubには、リリースノートを自動生成する機能がある。これは、リリース間でマージされたpull requestのタイトルを一覧し、リリース項目としてGitHub Releases上に出力してくれるものです。リポジトリ上に.github/release.yml設定ファイルを配置すれば、pull requestの作者やラベルを元にグルーピングしたり非表示にするといった出力内容のカスタマイズもできる。 このあたりの実際の

                                                                      GitHubのリリースノート自動生成機能からCHANGELOG.mdを生成する | おそらくはそれさえも平凡な日々
                                                                    • 未経験から1年でキャッチアップしたブロックチェーンの学習法をまとめてみた - Gaudiy Tech Blog

                                                                      こんにちは。エンタメ業界のDXを進めるブロックチェーンスタートアップ、Gaudiyで主にバックエンドを担当しているkei(@kei32bit)です。 自分がブロックチェーン技術をキャッチアップし始めたのは1年ほど前です。最初の半年間くらいは趣味として、その後はブロックチェーン企業に入って仕事でもブロックチェーンに触れるようになりました。 もちろん全部を理解しているわけではないですが、次に来そうなブロックチェーン技術を予測したり、自分なりにテーマ課題を立てて調べたりできるようになりました。 (以前投稿した記事) techblog.gaudiy.com 本記事では、この1年間で自分がどういう情報ソースを元にブロックチェーンを勉強したかを紹介したいと思います。 今からブロックチェーン技術をキャッチアップするエンジニアの方々にとって、自分のキャッチアップの方法がご参考になれば幸いです。 1. 良質

                                                                        未経験から1年でキャッチアップしたブロックチェーンの学習法をまとめてみた - Gaudiy Tech Blog
                                                                      • Ubie創業期にKotlinを導入した私が、社の技術選定の転換について思うこと|たろう|note

                                                                        Kotlinエバンジェリストとして、ガッカリしょんぼり…!? Ubieが、KotlinをやめてGoとNode.jsへの転換を決定したことについて、私がこれをどう受け止めたのか… こんにちは。私はたろうと言います。 Ubie株式会社 Ubie Discoveryに勤めるソフトウェアエンジニアです。 業務外では、Kotlinエバンジェリストとして講演や執筆を行なったり、技術カンファレンス「Kotlin Fest」の運営代表を務めたりしています。 先日「Ubie は Go と Node.js の会社になります」という記事が、同じくUbie Discoveryのyukuというソフトウェアエンジニアにより発信されました。 新しいアプリケーションを立ち上げる際には、その役割に応じてGoで書くかNode.jsで書くかの2択となり、今後はKotlinを使わない。記事の内容を噛み砕くと、そんな感じです。 私

                                                                          Ubie創業期にKotlinを導入した私が、社の技術選定の転換について思うこと|たろう|note
                                                                        • Slackはただのコミュニケーションツールじゃない、企業の技術を映す鏡だ - Qiita

                                                                          はじめに 当方フリーランスエンジニアで、現在転職(再就職)の予定は一切ありませんが、かなりたくさんの現場を経験した中で「Slackの活用方針は、その会社の技術への向き合い方を(ある程度)反映する」ってことが見えてきました。 もし今後僕が転職活動(再就職活動)をするなら「御社はどのようにSlackを活用していますか?」は必ず訊きます。絶対です。 例えば「高級な椅子やキーボードが支給されるか」っていうのも気になるところですが、それは転職面談だと聞きにくいですよね? それに比べると、"Slackの活用レベル" は訊きやすくて、かつ明確に色々な情報を教えてくれるな、と。 注意点 ここから便宜上Slack活用をレベルごとに分けて書いていきますが、例えば必ずしも「レベル2までしかSlackを活用していなければ、会社全体の技術水準はレベル2にすぎない」っていうことは無いっていうことをご理解ください。 正

                                                                            Slackはただのコミュニケーションツールじゃない、企業の技術を映す鏡だ - Qiita
                                                                          • 排他制御を行う GitHub Action を作った

                                                                            弊社では GitHub のレポジトリ管理に Terraform GitHub provider を使用しています。 いちいち手元で terraform plan や terraform apply を叩くのは面倒なので、 GitHub Actions を利用することを考えました。 tf ファイルと現実のリソースとの不整合を避けるために、 これらのコマンドは排他的に実行する必要があります。 例えば terraform apply を実行している最中に terraform plan を実行することはできません。 ここで問題になってくるのが GitHub Actions のジョブ並列数です。 2020-12-30 現在、GitHub Actions は同時に 20 並列まで実行可能ですが、逆に並列数を制限できないという贅沢な悩みがあります。 一応 Matrix Build の並列数を制限するオプ

                                                                            • Introducing Yarn 2 ! 🧶🌟

                                                                              Hi everyone! After exactly 365 days of very intensive development, I'm extremely happy to unveil the first stable release of Yarn 2. In this post I will explain what this release will mean for our community. Buckle up! If you're interested to know more about what will happen to Yarn 1, keep reading as we detail our plans later down this post: Future Plans. If you just want to start right now with

                                                                                Introducing Yarn 2 ! 🧶🌟
                                                                              • ようこそdotfilesの世界へ - Qiita

                                                                                はじめに 少し前から話題になっているが、日本の労働生産性はG7で最も低いらしい。 日本生産性本部資料より https://www.jpc-net.jp/intl_comparison/intl_comparison_2018_press.pdf 日本は人口減少に突入していることもあって、「作業の効率化」や「自動化・省力化」をいうフレーズをあらゆる業種で聞くようになった。 ITエンジニアは、あらゆる職業の中でも最も効率化、自動化をして生産性を高められるといっても過言ではないだろう。プログラマの三大美徳(「怠惰」「短気」「傲慢」)にもあるように、同じことを何度もやらない、楽をするためにがんばるという生産性を意識した感性が重要視されているからだ。 生産性を高めることで、勉強する時間が作れたり、新しいことを経験したりするなどしてさらにスキルアップができ、さらに生産性が上がるという好循環を作り出すこ

                                                                                  ようこそdotfilesの世界へ - Qiita
                                                                                • スプレッドシートの内容を GitHub のリポジトリに自動的に同期する仕組みを作った

                                                                                  [{ "teamName": "チームA", "players": ["Aさん", "Bさん", "Cさん", "Dさん"] }] スプレッドシートの内容を Node.js で取得 スプレッドシートの内容を Node.js で取得するために @googleapis/sheets を使用しました。 認証情報は Application Default Credentials (以下 ADC) が設定されていることを前提にしました。事前に認証情報に紐付いているメールアドレスに対して、スプレッドシートを閲覧できる権限を与えておく必要があります。 これにより以下のコードでスプレッドシートの内容を取得することができます。 const sheetId = ""; const auth = new GoogleAuth({ scopes: [ "https://www.googleapis.com/aut

                                                                                    スプレッドシートの内容を GitHub のリポジトリに自動的に同期する仕組みを作った