並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 299件

新着順 人気順

execute 意味の検索結果1 - 40 件 / 299件

  • アプリケーションにおける権限設計の課題 - kenfdev’s blog

    日々権限設計で頭を抱えてます。この苦悩が終わることは無いと思ってますが、新しい課題にぶつかっていくうちに最初のころの課題を忘れていきそうなので、現時点での自分の中でぐちゃぐちゃになっている情報をまとめようと思い、記事にしました。 所々で「メリット」「デメリット」に関連する情報がありますが、そのときそのときには色々と感じることがあっても、いざ記事にまとめるときに思い出せないものが多々ありました。フィードバックや自分の経験を思い出しながら随時更新する予定です。 TL;DR(長すぎて読みたくない) 想定する読者や前提知識 この記事での権限とは 権限の種類 ACL(Access Control List) RBAC(Role-Based Access Control) ABAC(Attribute-Based Access Control) どの権限モデルを採用するべきか 権限を適用する場面 機能

      アプリケーションにおける権限設計の課題 - kenfdev’s blog
    • Computer Scienceの学位を取るために学費無料のオンライン大学UoPeopleに入ってもうすぐ1年 - えんぴつぶろぐ

      この記事は社会人学生 Advent Calendar 2020 7日目の記事です。 米国のオンライン大学University of the People(以下、UoPeople)に入って約1年経った振り返り記事となります。 これまでのUoPeople関連の記事はこちら 自分について University of the Peopleとは 動機 入学するには 授業について 卒業までの所要期間 Computer Science専攻はどんなコースが受けられるのか これまでの進捗 これまでにかかった金額 課題がめっちゃ出る どうやって勉強時間を確保しているか よかったところ 学習内容への満足度は高い 英語のライティングスキルは多分あがった 日英両方でインプットするメリット 毎日強制的にアウトプットできる。 GPAのためなら頑張れる よくなかったところ National Accreditationなの

        Computer Scienceの学位を取るために学費無料のオンライン大学UoPeopleに入ってもうすぐ1年 - えんぴつぶろぐ
      • ロギングベストプラクティス - kawasima

        #翻訳 https://www.scalyr.com/blog/the-10-commandments-of-logging/ CC BY 4.0 @Brice Figureau 1.自分でログの書き出しをしない printfをつかったり、ログエントリを自分でファイルに書き出したり、ログローテションを自分でやったりしてはいけない。運用担当者にお願いして、標準ライブラリやシステムAPIコールを使うようにしよう。そうすれば、実行中のアプリケーションが他のシステムコンポーネントと適切に連携して、特別なシステム設定なしに適切な場所またはネットワークサービスにログを記録できるようになる。 ロギングライブラリを使いたければ、特にJavaの世界にはLog4j, JCL, slf4j, logbackなど多くのものが存在する。私はslf4jとlogbackを組み合わせて使うのが好きだ。とてもパワフルで、設

          ロギングベストプラクティス - kawasima
        • 中学英語レベルの純日本人理系大学生が、1ヶ月ちょいでAI駆使して卒論7割終わらせながらTOEIC 900超えた話 - Qiita

          中学英語レベルの純日本人理系大学生が、1ヶ月ちょいでAI駆使して卒論7割終わらせながらTOEIC 900超えた話PythonAITOEICChatGPTclaude はじめに データサイエンティストを目指して日々勉強している、慶應大学理工学部4年生(2023.11.14時点) 取得資格、コンペ優勝経験など、リアルタイムの情報は👇👇👇をみてね X: @A7_data←こういう者です。 プロフィールページ👇👇👇 ※全て、個人の意見です。個人差もあります。 TOEICとは TOEICは、Test of English for International Communicationの略で、非英語圏の人々がビジネスシーンで英語を使う能力を測るためのテスト。 リスニングとリーディングの2つのセクションで構成されており、それぞれ495点満点、合計990点が最高得点。 TOEICスコアは、企業

            中学英語レベルの純日本人理系大学生が、1ヶ月ちょいでAI駆使して卒論7割終わらせながらTOEIC 900超えた話 - Qiita
          • Spectre の脅威とウェブサイトが設定すべきヘッダーについて

            長い記事なので先に結論を書きます。 Spectre の登場で、ウェブサイトに必要とされるセキュリティ要件は増えました。具体的に必要な対策は下記の通りです。 すべてのリソースは Cross-Origin-Resource-Policy ヘッダーを使って cross-origin なドキュメントへの読み込みを制御する。 HTML ドキュメントには X-Frame-Options ヘッダーもしくは Content-Security-Policy (CSP) ヘッダーの frame-ancestors ディレクティブを追加して、cross-origin なページへの iframe による埋め込みを制御する。 HTML ドキュメントには Cross-Origin-Opener-Policy ヘッダーを追加して popup ウィンドウとして開かれた場合の cross-origin なページとのコミュニ

              Spectre の脅威とウェブサイトが設定すべきヘッダーについて
            • ソースコードで理解するクリーンアーキテクチャ - Sansan Tech Blog

              はじめに こんにちは。プロダクト開発部の荒川です。 これまで最年少を謳っていましたが、ついに新卒の子にその座を奪われてしまいました。とても残念です。 さて今回のテーマは、皆さんお馴染みクリーンアーキテクチャ(Clean Architecture)です。 クリーンアーキテクチャは一時期流行し、その流れに乗って私もある程度の理解はしていました。 しかし、それはあくまでも感覚的な理解であって、他人に説明や良さを語れるレベルまで自分の中で落としこめていませんでした。 そこでより具体性のあるソースコードを読み込むことで、アーキテクチャへの理解を深めたいと思います。 クリーンアーキテクチャとは? クリーンアーキテクチャの定義や解説に関しては、ネット上にいくらでも公開されているので、このエントリでは詳しく話しません。 私自身が勉強に使った書籍やサイトを記事末尾の「参照」に掲載しているので、そちらを参考に

                ソースコードで理解するクリーンアーキテクチャ - Sansan Tech Blog
              • Ubuntu 22.04 LTS サーバ構築手順書

                0 issue "letsencrypt.org" 0 issuewild "letsencrypt.org" 0 iodef "mailto:yourmail@example.jp" §OS再インストール さくらVPSのコントロールパネルから、OSを再インストールするサーバを選ぶ。 www99999ui.vs.sakura.ne.jp §OSのインストール操作 Ubuntu 22.04 LTS を選ぶ。 OSインストール時のパケットフィルタ(ポート制限)を無効にして、ファイアウォールは手動で設定することにする。 初期ユーザのパスワードに使える文字が制限されているので、ここでは簡単なパスワードにしておき、後ですぐに複雑なパスワードに変更する。 公開鍵認証できるように公開鍵を登録しておく。 §秘密鍵と公開鍵の作成 クライアントマシン側で生成した公開鍵を ~/.ssh/authorized_k

                  Ubuntu 22.04 LTS サーバ構築手順書
                • フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記

                  モチベーション なぜRustを選んだか? 私はQEMUは「アーキテクチャエミュレーション界のLLVM」だと思っている QEMUが高速な理由:TCG Binary Translation ゲスト命令(RISC-V) → TCG → ホスト命令(x86)の処理をRustで作ろう RISC-Vの命令をフェッチしてデコードする RISC-Vの命令をTCGに変換する TCGをx86に変換する 実装結果 Binary Translation実行を高速化するための様々なテクニック BasicBlock分まで複数命令をまとめて変換 TCG Block Chainingの実装 評価結果 TB Lookup and Jumpの実装 評価結果 まだ完成していないところ 一部の最適化はまだ未実装となっている ゲストアーキテクチャがx86のみとなっている。TCGによる複数プラットフォーム対応として、まずは環境のそろ

                    フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記
                  • Vimの思想について

                    ここでいくつかのルールとして motion-count-multiplied 例えば10jで十行下へ移動、d2kで上2行を削除など operator-doubled 例えばyy, dd, cc, >>とか、2回繰り返すとカーサーのある行に動作する upper case operator 例えばc->C、d->D, y->Yのように、現在のカーサーから行の最後まで動作するケースと、対になっている(逆の機能を持つ)ケース、例えばp->P, o->O, n->N, a->A, i->I, f->Fなど)に大まかに分けられる exclusive inclusive 例えば、yiw vs yaw, cib vs cabの違いで、テキストオブジェクトの内部(inner)だけか、境界線も含めるか(around) があります。これらのルールは他のプラグインにもよくみられるので、Vim wayに慣れればプラ

                      Vimの思想について
                    • 運用中のPostgreSQLのスキーマを無停止で安全に変更する | 株式会社ヌーラボ(Nulab inc.)

                      初めに こんにちは。ビジネスチャットサービスTypetalkを開発・運用している吉田です。Typetalkではデータの永続化ストレージとしてPostgreSQLを利用しています。扱うデータ量は多く、チャットというサービスの性質上書込み頻度はとても高いです。PostgreSQLを使い日々開発を進めていると、追加する機能によってはスキーマを変更する必要があります。メンテナンスを計画・告知してサービスを止めてしまえば、時間はかかるかもしれませんがスキーマの変更はそう難しくありません。しかしTypetalkはユーザーが日々の業務を進めるために利用しており、サービスが止まるとコミュニケーションが取れなくなります。業務を円滑に進めるためのビジネスチャットツールですので、極力サービスは止めたくありません(最後の計画メンテナンスは2019年6月30日で1年以上前となっています。)。本記事では以下の3つのケ

                        運用中のPostgreSQLのスキーマを無停止で安全に変更する | 株式会社ヌーラボ(Nulab inc.)
                      • リファクタリングチームに入ってから学んだ理解しやすいコードを書くための基本的なこと - クラウドワークス エンジニアブログ

                        こんにちは! 去年の4月に新卒入社してからお酒ばかり飲んでいるエンジニアのd4teです。 4月から11月まではUX改善チームにてお仕事検索画面のフロントエンド開発を担当しておりましたが、11月からはリファクタリングチームにてcrowdworks.jpのリファクタリングをしています。 現在のcrowdworks.jpの状況 過去の記事にもあるように、crowdworks.jpはサービスインから約8年が経過し、30万行を超えるモノリシックなRailsアプリケーションになってきていて、コード行数の増加量やファイル変更数の推移は年々鈍化してきています。 内部には開発生産性を低下させる技術的負債が溜まってきており、技術的な投資がしづらくなってきているという課題があります。 自分が所属しているチームは、外部から見た動作を変えずに内部のコードを整理するリファクタリングで技術的負債を解消し、開発生産性の向

                          リファクタリングチームに入ってから学んだ理解しやすいコードを書くための基本的なこと - クラウドワークス エンジニアブログ
                        • リンカ

                          ついに、リンカの説明をするときが来た。 ここに至るまでに、何度「リンカのところで説明する」と書いただろうか? ここまで読んできた人ならば、 リンカというものが、なにやら色々やっているんだな、というのはわかってきたのではないかと思う。 筆者が常々思っていることのひとつに、「C言語に関する書籍は、リンカの説明をおざなりにしすぎだ」というのがある。 多くのC言語の書籍は、 コンパイラがソースコードをアセンブリコードに変換します アセンブラがアセンブリコードを機械語に変換します リンカが機械語をリンクして実行ファイルが作られます と、いう解説がなされがちである。この説明を見たら、多くの人が、「え、リンクってなんですか?」と、思うに違いない。 アセンブラには、「人間が読めるニーモニックを、機械が読める機械語に変換する」みたいな、最低限の説明が付くものの、 リンカの説明は「リンクをします」のひとことだ

                          • n8n.io 入門 : IFTTT のようなワークフローを構築しよう - kakakakakku blog

                            「n8n.io」を使うと GitHub / Slack / Google Sheets など多くのサービス(ドキュメントを見ると 240 以上もインテグレーションできる!)を組み合わせて自由に「ワークフロー」を構築できる.関連サービスで言えば IFTTT のような感じ!例えば IFTTT Pro に課金せずにセルフホスティングできたりする.今回は「n8n.io 入門」を目的として Mac で Docker を使って「n8n.io」を試す.現状だと Docker と npm (npx) で試せる.なお,SaaS として使える「n8n.cloud」もある(最近まで coming soon になっていた). n8n.io n8n.io 入門 : 完成形 今回は「GitHub リポジトリに対する Star⭐/ Unstar⭐をトリガーに Slack 通知とコマンド実行に条件分岐をするワークフロー」

                              n8n.io 入門 : IFTTT のようなワークフローを構築しよう - kakakakakku blog
                            • ご主人様、小難しいDDDやクリーンアーキテクチャはお忘れになって、”削除しやすい設計”から始められてはいかが? - Qiita

                              ご主人様、小難しいDDDやクリーンアーキテクチャはお忘れになって、”削除しやすい設計”から始められてはいかが?LaravelDDD設計アーキテクチャCleanArchitecture ある日夢の中で設計に詳しい悪役令嬢が現れてこんなことを言い放ったので、考察してみましたという設定のポエムです。 問題提起 ドメイン駆動設計、オニオンアーキテクチャ、クリーンアーキテクチャといった考え方はもちろん重要なものの、僕は難しく考えずに「削除しやすいように機能を作る」のが第一歩として重要ではないかと考えています。 本記事では「削除しやすい設計」について持論を展開してみます。 ※議論のスコープはWebサービスに限定し、例示としてPHPのフレームワークであるLaravelを用います 削除しやすいことがなぜ重要か 一度開発した機能は、それで終わりではなく、改修、改善を繰り返し、そして場合によっては仕様が廃止さ

                                ご主人様、小難しいDDDやクリーンアーキテクチャはお忘れになって、”削除しやすい設計”から始められてはいかが? - Qiita
                              • CPUエミュレータをRustで自作する - Don't Repeat Yourself

                                この記事は Rust Advent Calendar 2020 ならびに CyberAgent Developers Advent Calendar 25日目の記事です。 今年のはじめの頃になりますが、『CPUの創り方』という本に載っている TD4 という CPU を実装してみました。TD4 は「とりあえず動作するだけの4bit CPU」の略です。この本に載っている CPU エミュレータを実際に実装してみました。ただし、本書には GUI が載っていましたが、それは省略しました。 CPUの創りかた 作者:渡波 郁発売日: 2003/10/01メディア: 単行本(ソフトカバー) 「最近話題の RISC-V などの CPU エミュレータを作ってみたいものの、いきなり作るにはハードルが高い。何か簡単なもので素振りをして CPU の動作の仕組みをまずは知りたい」という方にはかなりオススメできる教材だ

                                  CPUエミュレータをRustで自作する - Don't Repeat Yourself
                                • FastAPI入門 - モダンなPythonフレームワークの特性をチュートリアルで手軽に学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                  FastAPI入門 - モダンなPythonフレームワークの特性をチュートリアルで手軽に学ぶ PythonのWebフレームワークとしていま注目を集めるFastAPIは、シンプルにコードが書けるだけでなく、パフォーマンスが高いWebアプリケーションのバックエンドサーバーが構築可能です。同フレームワークの勘所をPythonスペシャリストの杜世橋さんが、初心者向けのハンズオン、そしてより実践的な画像への自動タグ付けサービス実装をとおして解説します。 FastAPIはいま非常に注目されているPythonのWebフレームワークの1つです。Flaskのようにシンプルに書ける一方でPythonのType Hintの機能をうまく活用し、HTTPのリクエスト/レスポンスをPythonの関数の引数/戻り値とシームレスにマッピングして非常に効率的に開発ができるのが最大の特徴です。非同期処理にも対応していてその名

                                    FastAPI入門 - モダンなPythonフレームワークの特性をチュートリアルで手軽に学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                  • Linuxプロセスアクセス制御の概要 - えんでぃの技術ブログ

                                    SELinuxシリーズ 本記事は、SELinuxシリーズの1記事目です。 Linuxプロセスアクセス制御の概要 ←今ココ SELinuxの概要 SELinux Type Enforcement SELinuxの実践 (参考) SELinuxのRBAC、UBAC、MLS、MCS (参考) SELinux Module Policyのソースコード読解、ビルド 参考URL 1〜3記事目は、4記事目を理解するための前提知識をカバーしています。 4記事目が最も重要で、SELinuxの具体的な操作方法やコマンド、トラブルシューティング手順を紹介しています。 5記事目以降は参考情報です。 SELinuxの関連記事は、SELinuxタグから探せます。 一連の記事はFedora環境を前提として書いています。 FedoraやRHELに類するディストリビューションであればほぼ同等の挙動になると思いますが、他のデ

                                      Linuxプロセスアクセス制御の概要 - えんでぃの技術ブログ
                                    • さようなら、TypeScript enum - 株式会社カブク

                                      フロントエンドエンジニアの今村です。TypeScriptではenumを使わずunion型を使いましょう、という話を書きます。 モチベーション 何を今さら、と思う方もいるかもしれません。 TypeScriptのunion型はenum的なものを表現可能であり、基本的にenumよりもunion型を使うべき、という意識を持っているTypeScriptプログラマーはすでに少なからずいるのではないかと思います。しかし、ではenumの使用はいかなる場合も避けるべきなのか、そうでないとしたらどのような基準でenumとunion型を使い分けるべきなのか、といった点について、広く合意の取れたガイドラインはなさそうです(少なくとも私は知りません)。この結果、コードレビューなどで少しやりづらさを感じることがあったので、白黒つけてしまいたいという気持ちからこのブログを書いています。 結論としては、enumは全面的に

                                        さようなら、TypeScript enum - 株式会社カブク
                                      • Python開発者のためのセキュアコーディングのコツ10個 - Qiita

                                        本記事は2021年9月27日に公開したPython security best practices cheat sheetを日本語化した内容です。 2019年、Snykは最初のPythonチートシートをリリースしました。それ以来、Pythonのセキュリティの多くの側面が変化しています。開発者向けセキュリティ企業として学んだこと、そしてPython特有のベストプラクティスに基づいて、Pythonのコードを安全に保つために、この最新のチートシートをまとめました。 【チートシート】2021年版Pythonセキュリティベストプラクティス 本記事では、下記に関するPythonのセキュリティに関するヒントを紹介します。 外部データを常にサニタイズする コードをスキャンする パッケージのダウンロードに注意 依存先パッケージのライセンスを確認する システム標準版のPythonを使用しない Pythonの仮

                                          Python開発者のためのセキュアコーディングのコツ10個 - Qiita
                                        • 「Auto-GPTとAgentGPTは別物です」という話

                                          ChatGPTを皮切りとしたAIブーム。流石にちょっと過熱気味になってきた印象があります。 中でも気になるのは「AutoGPT」の話題。Twitter上だと、 他にも、AgentGPTを使って「AutoGPTすごい!AGIだ!」としている投稿を多く見かけました。 ですが、「AgentGPTはAuto-GPTのブラウザ版」ではありません(少なくとも2023年4月15日時点は)。 両者とも似たアプローチはとっていますが、Auto-GPTは 「GPT-4に情報探索・処理や長期記憶の手段を持たせている」 という点が大きく異なります。 AgentGPTは、 ユーザーが設定したゴールをAIにいくつかの問い(タスク)に分解させる それぞれの問いに回答を出させ、その結果を踏まえて追加で必要な問いを考えさせてタスクリストに追加する という自問自答のループを回すことで思考を深めています。 一方、Auto-GP

                                            「Auto-GPTとAgentGPTは別物です」という話
                                          • はてなブログをECSに移行してリリース頻度も改善した話 - Hatena Developer Blog

                                            この記事ははてなエンジニア Advent Calendar 2022の26日目のエントリです。 こんにちは id:cohalz です。はてなブログでは2022年7月にインフラをAmazon EC2からAWS ECS(AWS Fargate)に移行するプロジェクトが完了しました。 プロジェクトは2021年9月から始まったので約10ヶ月間という大きなプロジェクトでした。 プロジェクト完了までに行ってきたことのうち、特に面白かったところなどをこの記事で実施した順に振り返ってみます。 はてなブログのインフラのこれまで アプリケーションを動かせるようにする ALBを追加する 検証環境を用意だけしておく プロキシの設定埋め込み 証明書の配信 アクセスログを配送できるようにする アクセスログの形式を新しくする EC2でもFirehoseを経由するように タイムゾーンをUTCに統一 FirehoseのLa

                                              はてなブログをECSに移行してリリース頻度も改善した話 - Hatena Developer Blog
                                            • 最大同時接続数を1に制限したRDSにRDS Proxyを構成して基本動作を押さえよう | DevelopersIO

                                              CX事業本部@大阪の岩田です。 社内で需要がありそうだったので、RDS Proxyの基本動作について簡単にまとめてみました。クライアントからの最大同時接続数を1に設定したRDSに対してRDS Proxyを構成し、クライアントアプリケーションに見立てたEC2からいくつかのパターンで接続を試行した結果をまとめています。 環境 今回検証に利用した環境です。 RDS for PostgreSQL 11.8-R1 インスタンスクラス db.t3.micro max_connections: 9 バックグラウンドでrdsadminユーザー、rdsproxyadminユーザーがDBに接続するのを考慮して9に設定しています。今回の環境であればmax_connectionsを9に設定することで非マスターユーザーからの同時接続数を1に制限することができます。 RDS Proxy エンジンの互換性: Postg

                                                最大同時接続数を1に制限したRDSにRDS Proxyを構成して基本動作を押さえよう | DevelopersIO
                                              • gRPC Internal - gRPC の設計と内部実装から見えてくる世界 | Wantedly Engineer Blog

                                                こんにちは、Wantedly の Infrastructure Team で Engineer をしている南(@south37)です。 今日は、WANTEDLY TECH BOOK 6 から「gRPC Internal」という章を抜粋して Blog にします。 「WANTEDLY TECH BOOK 1-7を一挙大公開」でも書いた通り、Wantedly では WANTEDLY TECH BOOK のうち最新版を除いた電子版を無料で配布する事にしました。Wantedly Engineer Blogでも過去記事の内容を順次公開予定であり、この Blog もその一環となっています。 Wantedly における Go 導入にまつわる技術背景 | Wantedly Engineer Blog (本記事は Go Conference 2019 Autumn にて無料配布した冊子『WANTEDLY TE

                                                  gRPC Internal - gRPC の設計と内部実装から見えてくる世界 | Wantedly Engineer Blog
                                                • 大実験!ChatGPTは競プロの問題を解けるのか (2024年5月版) - E869120's Blog

                                                  1. はじめに 2024 年 5 月 14 日、OpenAI 社から新たな生成 AI「GPT-4o」が発表され、世界に大きな衝撃を与えました。これまでの GPT-4 よりも性能を向上させただけでなく1、音声や画像のリアルタイム処理も実現し、さらに応答速度が大幅に速くなりました。「ついにシンギュラリティが来てしまったか」「まるで SF の世界を生きているような感覚だ」という感想も見受けられました。 しかし、いくら生成 AI とはいえ、競技プログラミングの問題を解くのは非常に難しいです。なぜなら競技プログラミングでは、問題文を理解する能力、プログラムを実装する能力だけでなく、より速く答えを求められる解法 (アルゴリズム) を考える能力も要求されるからです。もし ChatGPT が競技プログラミングを出来るようになれば他のあらゆるタスクをこなせるだろう、と考える人もいます。 それでは、現代最強の

                                                    大実験!ChatGPTは競プロの問題を解けるのか (2024年5月版) - E869120's Blog
                                                  • 素のRailsは十分に豊かである(翻訳)|TechRacho by BPS株式会社

                                                    はじめに 「Railsは関心の分離が不十分である」という批判をよく目にします。状況が深刻になったら、Railsに足りない別のピースを導入しなければならないというのです。しかし私たちはそうは思いません。 「素のRails(vanilla Rails1)ではここまでしかできない」みたいな批判を耳にすることがよくあります。Railsはアーキテクチャレベルで関心の分離が不十分なのだから、アプリはいずれメンテナンス不能になり、足りないピースを導入するという別のアプローチが必要になるというのです。 代表的なDDD(ドメイン駆動開発)書籍では、概念上の4つの層である「プレゼンテーション層」「アプリケーション層」「ドメイン層」「インフラストラクチャ層」について議論しています。 アプリケーション層は、ドメイン層と協調動作してビジネスタスクを実装します。しかし、Railsが提供しているのは「コントローラ」と「

                                                      素のRailsは十分に豊かである(翻訳)|TechRacho by BPS株式会社
                                                    • Rails+Next.jsでGraphQLを導入する時に考えたこと - Timee Product Team Blog

                                                      こんにちは、タイミー開発プラットフォームチームで業務委託として働いている宮城です。 タイミーはリリースから4年が経過したプロダクトで、2022年の前半から一部領域でGraphQLを利用し始め現在導入を進めています。 本記事では、GraphQLをプロダクトに導入する上で判断に迷った箇所や課題に対して、タイミーでの意思決定とその理由を紹介します。参考にしていただければ幸いです。 GraphQLの選定理由についてはこの記事では触れませんが、CTOの@kameike が以下のイベントで詳しく紹介する予定です。まだ参加申し込みは可能ですので、興味がある方はぜひ合わせてご覧ください。 timeedev.connpass.com なお、本記事のタイトルはソウゾウさんの以下の記事にインスパイアされています。 engineering.mercari.com GraphQLの「Getting Startedの

                                                        Rails+Next.jsでGraphQLを導入する時に考えたこと - Timee Product Team Blog
                                                      • プログラミング初心者は変数名やメソッド名を略さない方がいいよ、という話 - give IT a try

                                                        今回のエントリでは先日、僕が勤めているソニックガーデンで話題になったプログラミング関連の小ネタを書きます。 それは何かというと、「プログラミング初心者は変数名やメソッド名を略さない方がいい」という話です。 長い変数名やメソッド名はつい略したくなります。 実際、僕も長い名前を略すときはよくあります。 ですが、略称を使うのは長年の経験から「この略称は一般的だから誤解を招くことはきっと少ないだろう」とか「前後の文脈から、変数の中身は誰が見ても明らかだろう」という想像が付いた場合だけです。 一方、プログラミング初心者の人は経験が浅いため、「一般的かどうか」とか、「誤解が発生しないかどうか」といった判断ができません。 そのため、他の人が見たときに「え、何この変数名?」と思ってしまうような略称を付けてしまう恐れがあります。 たとえば、先日のコードレビューで、初心者の人がrev_noという名前の変数を定

                                                          プログラミング初心者は変数名やメソッド名を略さない方がいいよ、という話 - give IT a try
                                                        • Software Design連載 2021年10月号 スナップショットテストの可能性を追求する - MonotaRO Tech Blog

                                                          こんにちは、辰巳です。 第3回は「スナップショットテスト」をテーマにお送りします! 「組織が拡大する中で、十分な設計情報がない状況でも、複雑に改修が積み重なったソフトウェアをいかに安全かつ正確に変更できるか?」 本記事では、数多くの大幅なシステム変更の経験を経て、この課題に対してモノタロウがいま実践しているグッドプラクティスを紹介します。 本記事の初出は、 Software Design2021年10月号「Pythonモダン化計画(第3回)」になります。過去の連載記事は以下を参照ください。 第1回 Software Design連載 2021年8月号 Python製のレガシー&大規模システムをどうリファクタリングするか 第2回 Software Design連載 2021年9月号 「テストが無い」からの脱却 スナップショットテストの可能性を追求する モノタロウは、事業者向けの間接資材を販売

                                                            Software Design連載 2021年10月号 スナップショットテストの可能性を追求する - MonotaRO Tech Blog
                                                          • GitLab令和最初のリプレイス。フルコンテナ化ポスグレ移行 - pixiv inside

                                                            こんにちは、sue445です。 先日社内で使ってるGitLabのリプレイスをしたのでその辺の話をしたいと思います。 リプレイスの内容 今回のGitLabリプレイスでは主に下記を行いました。 サーバ移設に伴いURL以外全部変えた レガシーな環境で運用されていたGitLabを全てDockerコンテナに載せた MySQLからPostgreSQLに移行 以上を1時間弱のメンテでやりきった 構成 ざっくり書くと、SSL終端のフロントサーバのみ同じで、それ以外のバックエンドを全部変えました。 旧 APサーバ Debian Wheezy CPU: Intel Xeon E5-2640v2 * 2 Memory: 40GB Disk: 64G + 512G MySQL兼Redisサーバ Debian Wheezy CPU: Intel Xeon X3430 Memory: 8GB Disk: 256G M

                                                              GitLab令和最初のリプレイス。フルコンテナ化ポスグレ移行 - pixiv inside
                                                            • ivy が面白い

                                                              ivyとはなにか 機械学習の統一を目指すフレームワークです。現在、JAX, TensorFlow, PyTorch, Numpy をサポートしています。JAXはNumpy互換なので、実質的に Tensorflow&Pytorch の共通APIのフレームワーク(かなり乱暴なまとめ方)です。 研究のペーパーでよく見るのはPytorchですが、産業ではTensorflowがよく使われるようです。 下の表にもありますが、開発者の設計思想を読むと「書き換えの手間」が想像以上に労力を必要とする文面が多く見受けられます。 余談で手元にTensorflowとPytorchの本が2冊あるのですが、実装に互換性があればそういう悩みが減って深層学習の学習が身近になるかもしれないですね。 特に初学者は「最初にどの山に登るのがいいのか」で迷うと思うので。 ivy登場以前から、学習済みモデルを異なるプラットフォームで

                                                                ivy が面白い
                                                              • goquを駆使してgoでSQL構築も構造体マッピングもRDBテストもやる - エムスリーテックブログ

                                                                【Unit4 ブログリレー6日目】 こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 最近まで開発していたm3ラウンジでは、goからRDBを利用していました。 m3ラウンジでは、SQLの組みやすさやテストのしやすさの観点で検討した結果、goquを採用しましたので、 そこで得られた知見とその実装例を紹介します。 これから試してみる方(と将来m3ラウンジの開発に新たに入ることになったメンバー)の参考になるように、サンプルコードも説明も多くなってしまいかなり長いです。 お時間ある時にお読みいただければ。 名古屋城は、日本の城のひとつ。尾張国愛知郡名古屋(現在の愛知県名古屋市中区本丸・北区名城)にある。本文には特に関係ありません。 m3ラウンジ goqu 実例 modelの構造体 mapper mapperの実装 goquのSQLの結果から構造体へのマッピング

                                                                  goquを駆使してgoでSQL構築も構造体マッピングもRDBテストもやる - エムスリーテックブログ
                                                                • リファクタリング専門チームによるお金周りリファクタリング - クラウドワークス エンジニアブログ

                                                                  こんにちは、エンジニアの @MinoDriven です。 今年2019年4月にリファクタリング専門チームを発足しました。 crowdworks.jp の最重要機能であるお金周りの機能に関して、どのような技術アプローチでリファクタしているかを紹介致します。特に、Railsには適用困難と言われているドメイン駆動設計の考え方を取り入れた手法を解説致します。 目次 背景 リファクタリング専門チーム発足 技術的負債 リファクタリング対象選定 方針①:パレートの法則(80:20の法則) 方針②:リファクタリング選定基準3軸 「仕事周り」か「お金周り」か お金周りモデルのリファクタリングを妨げるConcern 課題①:ActiveRecord側の構造に依存したコード 課題②:型や構造のチェック(リスコフの置換原則違反) 課題③:重要業務概念の埋没 どのようにリファクタしたか 手法①:Concern側メソ

                                                                    リファクタリング専門チームによるお金周りリファクタリング - クラウドワークス エンジニアブログ
                                                                  • 一休のマネージャーは、コードを書く––EMが語る、マネジメントと組織文化

                                                                    一休のマネージャーは、コードを書く EMが語る、マネジメントと組織文化 株式会社一休、田中健介氏、浅野慧氏インタビュー 高級ホテル・高級旅館専門予約サイト「一休.com」をはじめ、高級レストラン予約サイト「一休.comレストラン」など、様々なサービスを運営する、株式会社一休。一休のサービス開発を支えるエンジニア組織はどのような文化なのか? 株式会社一休 レストラン事業本部 プロダクト開発部部長の田中健介氏と、浅野慧氏に、一休の開発文化と組織づくりの裏側について語っていただきました。 一休のEMが語る、マネージャーの仕事 ――それでは、お二人のポジションと、どんな仕事をしているのかを教えて下さい。 田中健介氏(以下、田中):田中健介と申します。一休には宿泊予約とレストラン予約のサービスがあり、私はレストラン予約サービスの開発の責任者をしています。 レストラン予約サービスのプロダクト開発部には

                                                                      一休のマネージャーは、コードを書く––EMが語る、マネジメントと組織文化
                                                                    • tblsとGitHub Actionsを使ってDBマイグレーションを含むPRには自動更新したER図を追加する - BASEプロダクトチームブログ

                                                                      BASEアドベントカレンダー2021 10日目の記事です。 BASEアドベントカレンダー2021 10日目 BASE BANKでエンジニアをしている @budougumi0617 です。 マイグレーションファイルが含まれたPull Request(PR)が作られたとき、自動更新したER図をPRに追加するGitHub Actionsを作りました。 本記事では紹介するGitHub Actionsを利用すると次のようなメリットが得られます。 マイグレーションファイルをPRに出すだけでPRに更新されたER図が追加される 開発者は面倒なER図の更新作業から開放される レビューアはマイグレーションファイルを含んだPRをER図を見ながらレビューできるようになる プロジェクト関係者は常にメインブランチのマイグレーションファイルの状態と一致したER図を確認できる サンプルPR 自動生成したER図 TL;DR

                                                                        tblsとGitHub Actionsを使ってDBマイグレーションを含むPRには自動更新したER図を追加する - BASEプロダクトチームブログ
                                                                      • RubyとWebAssemblyの関係についてわかる範囲でまとめる | うなすけとあれこれ

                                                                        はじめに 2021年1月にv1.0がリリースされたWasmerにRuby Gemが存在することに触発されて調べてみました。RubyとWebAssemblyが関わっているものについてわかる範囲でまとめ、軽くどのようなものかを書いていきます。 僕自身、業務はおろかプライベートでもWASMを書いたことはなく浅い理解しかしていないですが…… WebAssembly (WASM)とは WebAssembly は最近のウェブブラウザーで動作し、新たな機能と大幅なパフォーマンス向上を提供する新しい種類のコードです。基本的に直接記述ではなく、C、C++、Rust 等の低水準の言語にとって効果的なコンパイル対象となるように設計されています。 この機能はウェブプラットフォームにとって大きな意味を持ちます。 — ウェブ上で動作するクライアントアプリで従来は実現できなかった、ネイティブ水準の速度で複数の言語で記述

                                                                          RubyとWebAssemblyの関係についてわかる範囲でまとめる | うなすけとあれこれ
                                                                        • 「DDDで複数集約間の整合性を確保する方法」に対する考察 - かとじゅんの技術日誌

                                                                          久しぶりにブログ記事を書きますか。 ということで、松岡さん(id:little_hands)のブログ記事に対する考察記事です。 この記事は古くなったので、ぜひ以下も参照してください。 blog.j5ik2o.me little-hands.hatenablog.com 題材も松岡さんのブログ記事と同じもので考えます。 「実装方法1. ユースケースで複数集約を更新する」について考察したいと思います。 注意事項)この記事で使うトランザクションという用語は単なる一連の手続きという意味ではなく、ACID特性を持つRDBのトランザクションという意味です。 class CreateTaskUseCase1( private val taskRepository: TaskRepository, private val taskReportRepository: TaskReportRepository

                                                                            「DDDで複数集約間の整合性を確保する方法」に対する考察 - かとじゅんの技術日誌
                                                                          • CQRSはなぜEvent Sourcingになってしまうのか - かとじゅんの技術日誌

                                                                            CQRSはなぜEvent Sourcingになってしまうのか、まとめてみたいと思います。 なぜまとめるか、それはCQRSにとってEvent Sourcingはオプションだと誤解されている方が多いからです。この記事を書いてる本人も最初はそう思っていましたが、実際に開発・運用を経験してみるとCQRSにとってEvent Sourcingはほぼ必須で、認識を改めるべきだと気づきました。なので、原義に基づいたうえで、Event SourcingではないCQRSがなぜよくない設計になるのか解説します。 その前に松岡さんの記事について。 CQRSの領域ではモデルを完全に分ける 松岡さんの記事には”CQRSはモデルを完全に分ける必要はない”と書かれていますが、知識がないと誤解しがちですが文字のまま意味を取るといけません。こちらの言及は、システムのうち、モデルをC/Qに分割するCQRS領域とモデルを分割しな

                                                                              CQRSはなぜEvent Sourcingになってしまうのか - かとじゅんの技術日誌
                                                                            • GitHub Actionsのワークフローを利用してクロスブラウザのE2Eテストを自動化する - Money Forward Developers Blog

                                                                              こんにちは。 『マネーフォワード クラウド経費』のフロントエンドエンジニアをしている木村(@kimromi)です。 Ruby on Railsを利用してサービス開発を進めているプロダクトのフロントエンドの環境を整えていき、UIの改善やフロントエンド側の開発効率アップなどにつなげていくような動きを現在やっています。 なぜクロスブラウザのE2Eテストが必要になったか ある日、IE11のみでJavaScriptエラーが起こり動作しないとの連絡が入り、慌てて対象のプルリクエストをリバートしたということが起こりました。 原因としてはライブラリの追加によるものでした。 現在フロントエンドの改修を行っていく中で、ライブラリの追加やビルド方式の変更などドラスティックな変更をすることが多くなってきています。 そのたびにMicrosoftからダウンロードできるVM環境を立ち上げ手元で確認するのは手間がかかり確

                                                                                GitHub Actionsのワークフローを利用してクロスブラウザのE2Eテストを自動化する - Money Forward Developers Blog
                                                                              • 「DDDで複数集約間の整合性を確保する方法 Rev2」に対する考察 - かとじゅんの技術日誌

                                                                                どうも、かとじゅんです。 松岡さん(id:little_hands)が以下の記事を更新されたそうです。松岡さん自身が悩まれた中で検討したオプションであって、唯一の正解ではないと踏まえたうえで、率直な感想を述べたいと思います。結論からいうと、論旨は前回の記事と変わりませんが、コード例で具体的な考え方を示している点を工夫しています。 little-hands.hatenablog.com 前回の考察記事も古くなったので、最新の記事に併せて考察をまとめ直したいと思います。 blog.j5ik2o.me ドメインモデル ドメインモデル図が追加されていますね。以下の3つの集約があるそうです。「一つの集約にまとめればいいよね」という提案はなしという前提で考えます。 ユーザー タスク アクティビティ・レポート 「アクティビティ・レポート」は「タスク」もしくは「ユーザー」に関連を持つようです。 「これらの

                                                                                  「DDDで複数集約間の整合性を確保する方法 Rev2」に対する考察 - かとじゅんの技術日誌
                                                                                • Platform Engineering on Kubernetes を読んでCloud Native の現在地を理解する - じゃあ、おうちで学べる

                                                                                  はじめに 近年、Kubernetesの採用が進む中、複数のチームが関わり、複数のクラウドプロバイダーへのデプロイを行い、異なるスタックを扱う組織では、その導入の複雑さが新たな問題となっています。本書 『Platform Engineering on Kubernetes』は、Kubernetes に登場しつつあるベストプラクティスとオープンソースツールを活用し、これらのクラウドネイティブの問題を技術的に組織的にどのように解決するかを示してくれます。 learning.oreilly.com 本書では、Kubernetes上に優れたプラットフォームを構築するための要素を明確に定義し、組織の要件に合わせて必要なツールを体系的に紹介しており、実際の例とコードを交えながら各ステップをわかりやすく説明することで、最終的にはクラウドネイティブなソフトウェアを効率的に提供するための完全なプラットフォーム

                                                                                    Platform Engineering on Kubernetes を読んでCloud Native の現在地を理解する - じゃあ、おうちで学べる